DKIM ค้นหาคีย์อย่างไร
ลายเซ็น DKIM ในข้อความระบุโดเมน (d=) และ selector (s=) ผู้รับจะนำทั้งสองค่ามารวมเป็น selector._domainkey.domain อ่านระเบียน TXT ที่ตำแหน่งนั้น และใช้คีย์สาธารณะในแท็ก p= เพื่อตรวจสอบลายเซ็น โดเมนหนึ่งสามารถเผยแพร่ selector ได้ไม่จำกัดจำนวน ดังนั้นบริการส่งอีเมลแต่ละรายจึงใช้คีย์ของตนเองได้ และสามารถหมุนเวียนคีย์โดยไม่มีช่วงหยุดให้บริการ
เครื่องมือตรวจสอบต้องใช้ selector เพราะ DNS ไม่มีวิธีแสดงรายการ selector ทั้งหมดของโดเมน จึงไม่มีข้อมูลให้สแกน selector ต้องมาจากลายเซ็นของข้อความจริง
คีย์ DKIM แบบใดไม่ปลอดภัยหรือใช้งานไม่ได้
RFC 8301 ระบุว่าคีย์ RSA ต้องมีความยาวอย่างน้อย 1024 บิต และควรยาว 2048 บิต ตัวตรวจสอบอาจไม่สนใจคีย์ที่สั้นกว่านี้ และเครื่องมือของเราก็ทำเช่นนั้น ดังนั้นคีย์ 512 บิตจึงถือว่าไม่มีลายเซ็นเลย คีย์ Ed25519 (RFC 8463) ถูกออกแบบมาให้สั้นและมีความแข็งแกร่ง แต่ยังไม่ใช่ผู้รับทุกรายที่ตรวจสอบคีย์ชนิดนี้ ด้วยเหตุนี้จึงมักเผยแพร่ควบคู่กับคีย์ RSA แทนที่จะใช้แทนคีย์ RSA
เครื่องมือตรวจสอบจะถอดรหัสคีย์ทั้งหมด เพราะระเบียนที่ถูกแบ่งระหว่างสตริง TXT อย่างไม่ถูกต้อง หรือ base64 ที่ถอดรหัสไม่ได้ คือคีย์ที่ผู้รับไม่สามารถใช้ได้ ค่า p= ที่ว่างหมายถึงคีย์ถูกเพิกถอนโดยตั้งใจ t=y ระบุว่าโดเมนยังอยู่ระหว่างการทดสอบ และ RFC 6376 §3.6.1 กำหนดให้ตัวตรวจสอบปฏิบัติต่ออีเมลจากโดเมนนั้นเหมือนอีเมลที่ไม่มีลายเซ็นทุกประการ