ฉันจะป้อนคีย์ DKIM ที่แข็งแกร่ง (ยาว) ใน DNS ได้อย่างไร


19

ฉันกำลังพยายามป้อนคีย์ DKIM 4028 บิตลงใน DNS และดูเหมือนว่าฉันเกินขีด จำกัด UDP 512 ไบต์และขนาดบันทึกสูงสุดสำหรับระเบียน TXT

บางคนสร้างคีย์ขนาดใหญ่อย่างถูกต้อง (ด้วยขนาดที่เข้ารหัสที่ใหญ่กว่า) และนำเข้าสู่ DNS ได้อย่างไร


ต้องการรายละเอียดเพิ่มเติม; ซอฟต์แวร์เซิร์ฟเวอร์ DNS คืออะไร
JGurtz

1
คุณเคยคิดขนาดสำคัญของคุณอย่างถี่ถ้วนหรือไม่? สถานะ RFC: "ผู้ตรวจสอบจะต้องสามารถตรวจสอบลายเซ็นด้วยคีย์ได้ตั้งแต่ 512 บิตถึง 2048 บิตและพวกเขาอาจตรวจสอบลายเซ็นได้ด้วยคีย์ที่ใหญ่ขึ้น" ดังนั้นรหัสยาวของคุณอาจไม่ได้รับการยืนยัน
HTTP500

@JGurtz เรากำลังใช้ "UltraDNS" เป็นบริการโฮสต์
goodguys_activate

@ Jason - เราสามารถทำได้ 2048 แต่ฉันคิดว่าความยาวบิตอาจเกินขีด จำกัด แพ็กเก็ต UDP
goodguys_activate

1
บางทีคุณควรพิจารณาว่าปัญหาที่คุณสร้างขึ้นโดยใช้กุญแจยาวที่ผิดปกตินั้นมีมากกว่าข้อดีที่คุณหวังว่าจะได้รับจากมัน
John Gardeniers

คำตอบ:


25

คุณต้องแยกพวกมันในช่องข้อความ ฉันเชื่อว่า 2048 เป็นข้อ จำกัด ในทางปฏิบัติสำหรับขนาดที่สำคัญ แยกฟิลด์ข้อความออกเป็นส่วน ๆ 255 อักขระหรือน้อยกว่า มีค่าใช้จ่ายสำหรับการแยกแต่ละครั้ง

มีสองรูปแบบสำหรับฟิลด์ยาว

TXT "ส่วนที่หนึ่ง" \ "ส่วนที่สอง"

TXT ("ส่วนที่หนึ่ง" "ส่วนที่สอง")

ซึ่งทั้งสองอย่างนี้จะรวมกันเป็น รายละเอียดเพิ่มเติมจาก Zytrax

เพื่อสร้างรายการ dkim ของฉันฉันใส่ไฟล์กุญแจสาธารณะของฉันและห่อมันไว้ในเครื่องหมายคำพูด
ไฟล์กุญแจสาธารณะของฉันมีดังต่อไปนี้:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

หลังจากแก้ไขคีย์ในไฟล์โซน dns ของฉันจะปรากฏดังนี้:

dkim3._domainkey        IN      TXT     ("v=DKIM1; t=s; p=" 
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3"
"q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0"
"ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB")

DNS ส่งคืนดังนี้

 bill:~$ host -t TXT dkim3._domainkey.systemajik.com
 dkim3._domainkey.systemajik.com descriptive text "v=DKIM1\; t=s\; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3" "q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0" "ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB"

DNS ถือว่าเป็นสตริงที่มีความยาวหนึ่งตัวโดยไม่มีช่องว่างเพิ่มเติมที่มีการรวมบรรทัด " "ลำดับทั้งหมดจะถูกละเว้น


คุณยกตัวอย่างได้ไหม สำหรับสิ่งนี้ฉันไม่สามารถหาวิธีที่จะทำให้ชัดเจนว่าส่วนที่ 1 และส่วนที่ 2 คือ .... #threadnecro
janw

1
@janw ฉันได้เพิ่มหนึ่งในกุญแจของฉันเป็นตัวอย่าง คีย์นี้มีเพียง 1024 บิต
BillThor

5
Tnx สำหรับการตอบกลับอย่างรวดเร็ว แต่คีย์นี้เหมาะกับคีย์ 255 ดังนั้นฉันยังไม่เข้าใจว่าคุณแบ่งออกเป็นหลายคีย์ได้อย่างไร
janw

1
ไม่ใช่ DNS ที่ไม่สนใจ" "ลำดับและคุณพิสูจน์ได้จริงในใบเสนอราคาล่าสุดของคุณ เป็นSPF RFC 4408ส่วน 3.1.3 ซึ่งกำหนดว่าการต่อข้อมูลควรใช้โดยแอปพลิเคชันที่อ่านระเบียน DNS สำหรับการตรวจสอบ SPF
Phil

3
@Alnitak RFC บังคับสำหรับกรณีนี้คือtools.ietf.org/html/rfc6376#section-3.6 สตริงจะถูกต่อกันโดยไม่มีช่องว่างระหว่างกัน SPF และรูปแบบอื่น ๆ เป็นไปตามกฎเดียวกันที่อนุญาตให้มีการหยุดพักในสถานที่โดยพลการ ซึ่งสามารถทำได้เพื่อให้สามารถอ่านได้หรือเพื่อ จำกัด ขนาดของเรกคอร์ด
BillThor


1

หากคุณใช้ poweradmin UI สำหรับ pdns คุณสามารถป้อนสตริง dkim ทั้งหมดในฟิลด์อินพุต

v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxtR3bw1Kbh1B7q4+5aWjTj2YEFwv230gcv+NMp4KouOSLdIr0mCMiwDZpY+7zCdks0zMXtz+F5TPij/NkSAxIKBbJqbIO3mvAhgeI0Vy5aQ5prwnIyXUj54po6AsXbv5Ud2tFbGSsdIhvWiC755d3WaFs8mdWFkpSxprlW6PobCzOWDayWGCvsNfHpjmTxHZinkd3TmLQqE/O6Nb1YnRwQwUCLioSyudV+5Bd2+rXZ2V9FYAOiK2aQi2aSTiUaLCVxft9H6xen3JDaKsuu43QMBrhydoJOCV2QaY82IxqE3GgZrlADu6YEOfotdwD2aA9GRwVB88GqdXL8HwgEGTbwIDAQAB

0

ไม่เป็นไรถ้าบันทึกมีค่ามากกว่าขีด จำกัด UDP 512- ไบต์เนื่องจาก DNS จะใช้ TCP

สิ่งนี้ควรมีความโปร่งใสต่อผู้ใช้ แต่บางครั้งอุปกรณ์ไฟร์วอลล์ที่บั๊กกี้ (เช่น Cisco PIX / ASA) จะกรอง / บล็อกข้อความค้นหาขนาดใหญ่เหล่านี้


0

ฉันรู้ว่าโพสต์นี้โบราณ แต่ฉันพบว่าวันนี้เมื่อสอบถาม "คีย์บิต DKIM 2048 ด้วย UltraDNS" ทีม DNS ของฉันพยายามแยกคีย์ออกเป็นสองส่วนโดยมีเครื่องหมายคำพูดล้อมรอบและเว้นวรรคระหว่างกัน นั่นเป็นสาเหตุให้ UltraDNS ให้บริการ 3 แพ็คเก็ต (อันที่อยู่ตรงกลางว่างเปล่า) ซึ่งทำให้เกิดผลการตรวจสอบที่ไม่สอดคล้องกัน

สิ่งที่ใช้ได้ผลสำหรับฉันในแผงควบคุม UltraDNS เพียงเพื่อส่งเรกคอร์ดทั้งหมดในเครื่องหมายคำพูดโดยไม่มีชุดคำพูดหลายตัวคั่น ฯลฯ ทำงานตามที่คาดไว้ตอนนี้


-1

หากคุณใช้ MySQL / MariaDB เป็นแบ็กเอนด์ DNS ของคุณเช่น PowerDNS คุณสามารถปรับขนาดคอลัมน์เนื้อหาของคุณ

ความยาวเนื้อหา PowerDNS เริ่มต้นคือ VARCHAR (255)

ดังนั้นลายเซ็น DKIM ของคุณจะถูกตัดออกเป็น 255 อักขระ

เพื่อแก้ไขปัญหานี้

เพียงแค่เปลี่ยนขนาดเนื้อหาผ่าน MySQL CLI / MariaDB CLI

mysql -u root -p

USE powerdns;
alter table records modify column content text not null;

รีสตาร์ทบริการ DNS ของคุณ (เช่น PowerDNS)

service pdns restart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.