Рейтинг:4

Как проверить сгенерированные opendkim ключи RSA

флаг cv

Я пытаюсь диагностировать ошибки проверки OpenDKIM (см. этот вопрос). Глубоко в чреве зверя я нахожусь в точке, где пытаюсь убедиться, что сгенерированные ключи действительно верны.

Я генерирую свои ключи с помощью opendkim-genkey -r -d example.com. Это создает два файла. Один из них — закрытый ключ RSA (файл default.private):

-----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ RSA-----
MIICXAIBAAKBgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFx
scSNjfC4QHRECMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6vi
GPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMwIDAQAB
AoGAVSjAvnwlHqEEJVAPNSLwj4Gic9BXeXwakB2fXRSi1YadcEwMNRfJE9fHs2n3
5v4VK60IJbP+05U0wwV5c6t5AgZqpP0GBW8CKUr3BwaF2cJbd+uOXlAm4cx6/S1E
Ocoku0c/vrr3mkO41IuBkB+FRm0y7WXFi7e7M32Tictt0CkCQQDzE08wRLNXxkaM
ЛЮДМвCtlNzACcmkU73NAHDHhwtrJMMLp7q/s4VIDbmhysoNBblNHJQvA/7zVd13
1CGxbh8/AkEA1IajRLNJ6XTuv9RmK1622BDWix4ogEvbev/zR8ti2JifO6A5gv+L
na5hVAATo563pWjtNZW3sAVKqN7juN5HDQJAP1xKKP/Pa9LQMtxbHoFZwTVrcVdb
y0zUzaoOu8PU0yHrAY/AGxY1aLnDKIxOrKRQT+xiJ/s3qsA4EXMnMTPOSwJBAK5N
dl6EBRyZsK5YDyuG1MNEnBEhPOpsTKgGf4rkfj9SfVYzxLdxyxoZyO1R2smZBNl+
wv3tuud8j40MsQwQEYkCQBCzH+1IaxoMsSggutvEvqz2SqkFbD5rq/+uL6P6xyYg
PHCYIWomK8zOlmnO+bfbRIzQb7I81vOFq2sr0yQLK+0=
-----КОНЕЦ ЗАКРЫТОГО КЛЮЧА RSA-----

и один генерирует DNS-запись DKIM, которая, как я полагаю, содержит открытый ключ:

default._domainkey В TXT ("v=DKIM1; k=rsa; s=email; "
      "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMwIDAQAB" )  ; ----- Ключ DKIM по умолчанию для example.com

Я предполагаю, что запись «p =» является открытым ключом, но если это так, я не могу понять, как проверить, совпадают ли они. Я думал, что смогу сделать это с ssh-keygen -y -f default.private, однако вывод этого явно отличается от того, что находится в разделе "p=" записи DNS (это даже не та же длина):

# ssh-keygen -y -f default.private 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMw==

Итак, что здесь происходит? Разве ssh-keygen не подходит для этого (может быть, мне стоит что-то сделать с OpenSSL?)? Разве "p=" не является открытым ключом? Или на самом деле мои закрытый и открытый ключи не совпадают?

Спасибо!

PS, возможно, это не связано с тем, что я предполагаю, что открытый ключ, сгенерированный opendkim, всегда одинаков для первых 34 символов — MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ и всегда заканчивается на ИДАКАБ.

флаг br
Ключи SSH разные. См. хороший ответ здесь: https://superuser.com/questions/1679344/for-valid-pem-i-get-unable-to-load-private-key-by-openssh?noredirect=1#comment2577724_1679344
Рейтинг:4
флаг br

Вы можете сравнить модуль обоих, как показано ниже:

Возьмите открытый ключ из вашей записи DNS. Это строка внутри р=, как ты говоришь. Имейте в виду, что иногда он возвращается в виде двух строк, которые вам нужно соединить. Вам нужно только содержимое, меньше двойных кавычек. Сохраните это локально, как открытый.ключ.b64.

Преобразование в формат DER с помощью:

openssl enc -base64 -d -in public.key.b64 -out public.key

Просмотрите модуль этого открытого ключа с помощью:

openssl rsa -pubin -inform DER -in public.key -noout -modulus

Просмотрите модуль вашего закрытого ключа с помощью:

openssl rsa -in private.key -noout -modulus

Вывод обоих будет похож на следующий и должен совпадать:

Modulus=B475A0F01B6DE62AB578E27CF2DF8F760C9C10DF52E69F4ED2FEA6912D8528F5860F6C1AB3F7DD88D4C63A1DA5A848D7655192FF6040E0405826648047EB25ECB0F56FDCB825987D48FA3953DCB04F78521F607137179C7EE081C48AF7DFB2F130E3001B80433977E962D900B9AFC9808F39B3D041213D39B5FA447EE39E838E67D5CD2EA373D68CFDB2DF3CD0260C6D7C88A7415195EEB85DBD31594E11D4BAD49C52098A8E77B56D034B04234A9064C92DBEB6A7B745EB9821446A56FF34284A0AA27768E55BF263E8D2F3B7BE52ECBE3F4590BAF7AD33DDECAD997DC61B8EAD2854714B13FAF7035758A21651740A9B36077ABC715080243626A1B3661233

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.