0Pricing
Cyber Security Academy · บทเรียน

การลงลายมือชื่อ DKIM

การลงลายมือชื่อข้อความด้วยการเข้ารหัส

การลงลายมือชื่อ DKIM เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

สิ่งที่ DKIM มอบให้

DKIM (อีเมลที่ระบุผู้ส่งด้วย DomainKeys) จะแนบลายเซ็นเข้ารหัสไปกับอีเมลขาออก ผู้รับสามารถตรวจสอบลายเซ็นนั้นเพื่อยืนยันสองสิ่ง:

  • ข้อความได้รับอนุญาตอย่างแท้จริงจากโดเมนที่ลงลายเซ็น
  • เนื้อหาที่ลงลายเซ็น ไม่ได้ถูกแก้ไข ระหว่างทาง

ในขณะที่ SPF อนุญาตให้ เซิร์ฟเวอร์ ส่งอีเมล DKIM จะยืนยันตัวตนของ ตัวข้อความเอง และลายเซ็นนั้นยังคงใช้ได้เมื่อมีการส่งต่อ

พื้นฐานการเข้ารหัสด้วย key สาธารณะ

DKIM อาศัยการเข้ารหัสแบบอสมมาตร เจ้าของโดเมนถือ คู่ key ดังนี้:

  • key ส่วนตัวจะถูกเก็บเป็นความลับบนเซิร์ฟเวอร์อีเมลขาออก และใช้เพื่อลงลายเซ็น
  • key สาธารณะเผยแพร่ไว้ใน DNS และทุกคนสามารถใช้เพื่อตรวจสอบ

เนื่องจากมีเพียงผู้ถือ key ส่วนตัวเท่านั้นที่สร้างลายเซ็นที่ถูกต้องได้ การตรวจสอบที่สำเร็จจึงพิสูจน์ได้ว่าข้อความมาจากโดเมนที่ถูกต้อง

กระบวนการลงลายเซ็น

เมื่อเซิร์ฟเวอร์ขาออกส่งข้อความ เซิร์ฟเวอร์จะคำนวณลายเซ็นจากส่วนหัวและเนื้อหาที่เลือกไว้ จากนั้นเพิ่มส่วนหัว ลายเซ็น DKIM

Steps on the sender side:
1. Select headers to sign (From, Subject, Date, ...)
2. Hash the message body
3. Build the DKIM-Signature header with those fields
4. Sign the hash with the private key
5. Attach the signature to the outgoing message

ส่วนประกอบของส่วนหัวลายเซ็น DKIM

ส่วนหัวลายเซ็น DKIM มีพารามิเตอร์ที่ผู้รับจำเป็นต้องใช้ในการตรวจสอบ:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=company.com;        domain that signed
  s=mail2024;           selector (which key)
  h=from:subject:date;  signed headers
  bh=base64bodyhash;    body hash
  b=base64signature     the signature itself

ตัวเลือกและ key สาธารณะใน DNS

ตัวเลือก (แท็ก s=) จะบอกผู้รับว่าต้องดึง key สาธารณะรายการใด โดย key จะอยู่ในตำแหน่ง DNS ที่คาดเดาได้:

Location:  <selector>._domainkey.<domain>

Example DNS TXT record:
mail2024._domainkey.company.com.  IN  TXT \
  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."

  p = the base64-encoded public key

กระบวนการตรวจสอบ

เมื่อได้รับข้อความ เซิร์ฟเวอร์ตรวจสอบจะย้อนกระบวนการดังกล่าว:

  • อ่านโดเมน d= และตัวเลือก s= จากลายเซ็น DKIM
  • ดึง key สาธารณะจาก selector._domainkey.domain ใน DNS
  • คำนวณแฮชเนื้อหาและแฮชส่วนหัวใหม่
  • ใช้ key สาธารณะตรวจสอบว่าลายเซ็นตรงกัน

หากลายเซ็นถูกต้อง DKIM จะผ่าน หากข้อความถูกแก้ไขหรือใช้ key ผิดรายการ การตรวจสอบจะไม่ผ่าน

แฮชเนื้อหาตรวจจับการแก้ไขดัดแปลง

ฟิลด์แฮชเนื้อหาคือสิ่งที่ทำให้ตรวจพบการแก้ไขดัดแปลงใน DKIM ผู้ส่งจะคำนวณแฮชของเนื้อหาและใส่แฮชนั้นไว้ในข้อมูลที่ลงลายเซ็น

หากมีผู้แก้ไขเนื้อหาข้อความระหว่างทาง แฮชที่ผู้รับคำนวณใหม่จะไม่ตรงกับ bh ที่ลงลายเซ็นไว้ และการตรวจสอบจะไม่ผ่าน นี่คือวิธีที่ DKIM มอบ ความสมบูรณ์ ไม่ใช่เพียงการยืนยันแหล่งที่มาเท่านั้น

การทำให้เป็นรูปแบบมาตรฐาน

เซิร์ฟเวอร์อีเมลระหว่างทางมักทำการเปลี่ยนแปลงเล็กน้อยที่ไม่เป็นอันตราย เช่น ปรับการตัดบรรทัดใหม่หรือเปลี่ยนช่องว่าง เพื่อไม่ให้การเปลี่ยนแปลงเหล่านี้ทำให้ลายเซ็นที่ถูกต้องใช้ไม่ได้ DKIM จึงใช้ การทำให้เป็นรูปแบบมาตรฐาน (แท็ก c=)

  • แบบเข้มงวด — เคร่งครัด การเปลี่ยนแปลงเกือบทุกอย่างจะทำให้ลายเซ็นไม่ผ่าน
  • แบบผ่อนปรน — ยืดหยุ่นต่อช่องว่างและการเปลี่ยนตัวพิมพ์เล็กใหญ่ของส่วนหัว

การนำไปใช้ส่วนใหญ่มักใช้ relaxed/relaxed เพื่อให้ทำงานได้อย่างน่าเชื่อถือกับโครงสร้างพื้นฐานอีเมลที่หลากหลาย

ตัวเลือกช่วยให้หมุนเวียน key ได้

ตัวเลือกไม่ได้เป็นเพียงป้ายกำกับ แต่ช่วยให้ หมุนเวียน key ได้อย่างปลอดภัย คุณควรเปลี่ยน key DKIM เป็นระยะเพื่อลดความเสี่ยง หาก key รายการใดรั่วไหล

กระบวนการหมุนเวียนมีดังนี้:

  • สร้างคู่ key ใหม่ด้วยตัวเลือกใหม่ เช่น mail2025
  • เผยแพร่ key สาธารณะรายการใหม่ใน DNS
  • เปลี่ยนผู้ลงลายเซ็นให้ใช้ตัวเลือกใหม่
  • เก็บตัวเลือกเดิมไว้ใน DNS จนกว่าอีเมลที่กำลังส่งอยู่จะถูกส่งถึงผู้รับ จากนั้นจึงลบออก

การใช้ตัวเลือกใหม่ช่วยป้องกันช่วงว่างที่ไม่สามารถตรวจสอบลายเซ็นได้

DKIM ยังคงใช้ได้เมื่อส่งต่อ

ต่างจาก SPF, DKIM ยังคงใช้ได้เมื่อมีการส่งต่อ ลายเซ็นจะเดินทางไปพร้อมกับข้อความ ดังนั้นตราบใดที่ส่วนหัวและเนื้อหาที่ลงลายเซ็นไม่ได้ถูกแก้ไข ข้อความที่ส่งต่อก็ยังคงผ่านการตรวจสอบ

คุณสมบัตินี้ช่วยชดเชยจุดอ่อนของ SPF ได้อย่างเหมาะสม เมื่อมีการส่งต่อข้อความ SPF อาจไม่ผ่านเพราะ IP ที่เชื่อมต่อเปลี่ยนไป แต่ DKIM ยังคงผ่านได้ ทำให้ DMARC ยอมรับอีเมลที่ถูกต้อง

ข้อจำกัดของ DKIM

DKIM มีประสิทธิภาพสูง แต่ยังไม่สมบูรณ์เมื่อใช้เพียงลำพัง:

  • DKIM พิสูจน์ว่าโดเมนหนึ่งลงลายเซ็นให้ข้อความ แต่ไม่ได้บังคับว่าโดเมนที่ลงลายเซ็นต้องตรงกับ ส่วนหัวผู้ส่งที่แสดงให้เห็น ซึ่งก็คือการจัดแนวของ DMARC
  • ผู้โจมตีสามารถลงลายเซ็นให้อีเมลด้วย key DKIM ที่ถูกต้องของโดเมนตนเองได้
  • หาก key ส่วนตัวรั่วไหล ผู้โจมตีจะปลอมแปลงลายเซ็นที่ถูกต้องได้จนกว่าจะเลิกใช้ key ดังกล่าวด้วยการหมุนเวียน

ต้องใช้ DKIM ร่วมกับ DMARC จึงจะป้องกันการปลอมแปลงได้อย่างมีประสิทธิผล

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับ DKIM

สรุป

คุณได้เรียนรู้วิธีที่ DKIM ลงลายเซ็นให้ข้อความ:

  • DKIM แนบลายเซ็นเข้ารหัสเพื่อพิสูจน์แหล่งที่มาและ ความสมบูรณ์
  • key ส่วนตัวใช้ลงลายเซ็นบนเซิร์ฟเวอร์ ส่วน key สาธารณะเผยแพร่ไว้ใน DNS ภายใต้ ตัวเลือก
  • แฮชเนื้อหาตรวจจับการแก้ไขดัดแปลง ส่วน การทำให้เป็นรูปแบบมาตรฐานรองรับการเปลี่ยนแปลงเล็กน้อยที่ไม่เป็นอันตราย
  • ตัวเลือกช่วยให้ หมุนเวียน keyได้อย่างปลอดภัย และ DKIM ยังคงใช้ได้เมื่อส่งต่อ ในกรณีที่ SPF ไม่ผ่าน
  • DKIM ยังคงต้องอาศัย การจัดแนวของ DMARC เพื่อเชื่อมลายเซ็นกับผู้ส่งที่แสดงให้เห็น

ถัดไป คุณจะเชื่อม SPF และ DKIM เข้าด้วยกันด้วยนโยบาย DMARC และการรายงาน

คำถามที่พบบ่อย

บทเรียน “การลงลายมือชื่อ DKIM” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การลงลายมือชื่อ DKIM” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การลงลายมือชื่อ DKIM”

การลงลายมือชื่อข้อความด้วยการเข้ารหัส คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การลงลายมือชื่อ DKIM” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การปลอมแปลงอีเมลทำงานอย่างไร
  2. ระเบียน SPF
  3. การลงลายมือชื่อ DKIM
  4. นโยบายและการรายงาน DMARC
← กลับไปที่ Cyber Security Academy