ลายเซ็นดิจิทัลถูกมองว่าเป็นพัฒนาการที่สำคัญที่สุดในการเข้ารหัสคีย์สาธารณะ Sun Developer Network กล่าวว่า “ลายเซ็นดิจิทัลคือสตริงของบิตที่คำนวณจากข้อมูลบางส่วน (ข้อมูลที่ “ลงนาม”) และคีย์ส่วนตัวของเอนทิตี สามารถใช้ลายเซ็นเพื่อตรวจสอบว่าข้อมูลมาจากเอนทิตี และไม่ได้รับการแก้ไขระหว่างทาง” (The Java Tutorial, nd) ลายเซ็นดิจิทัลควรมีคุณสมบัติในการตรวจสอบผู้แต่ง การตรวจสอบวันที่และเวลาของลายเซ็น การรับรองความถูกต้องของเนื้อหา ณ เวลาที่ลงนาม รวมถึงการตรวจสอบโดยบุคคลที่สามเพื่อแก้ไขข้อพิพาท ตามคุณสมบัติเหล่านี้ มีข้อกำหนดหลายประการสำหรับลายเซ็นดิจิทัล ข้อกำหนดข้อแรกคือลายเซ็นต้องเป็นรูปแบบบิตที่ขึ้นอยู่กับข้อความที่เซ็นชื่อ มีการประกาศข้อกำหนดต่อไปเพื่อป้องกันการปลอมแปลงและการปฏิเสธ ระบุว่าลายเซ็นต้องใช้ข้อมูลบางอย่างที่ไม่ซ้ำกันของผู้ส่ง ข้อกำหนดที่สามคือการสร้างลายเซ็นดิจิทัลนั้นต้องค่อนข้างง่าย การรับรู้และตรวจสอบลายเซ็นดิจิทัลนั้นค่อนข้างง่ายเป็นอีกข้อกำหนดหนึ่ง ข้อกำหนดข้อที่ห้าระบุว่าการปลอมแปลงลายเซ็นดิจิทัลนั้นต้องไม่สามารถคำนวณได้ ไม่ว่าจะโดยการสร้างข้อความใหม่สำหรับลายเซ็นดิจิทัลที่มีอยู่หรือโดยการสร้างลายเซ็นดิจิทัลปลอมสำหรับข้อความที่กำหนด ข้อกำหนดสุดท้ายคือต้องจัดเก็บสำเนาของลายเซ็นดิจิทัลในทางปฏิบัติ มีการเสนอแนวทางมากมายสำหรับการนำลายเซ็นดิจิทัลไปใช้ และแนวทางเหล่านี้ตกอยู่ในแนวทางลายเซ็นดิจิทัลโดยตรงและโดยอนุญาโตตุลาการ (Stallings, 2003)
ลายเซ็นดิจิทัลโดยตรงเกี่ยวข้องกับการสื่อสารระหว่างฝ่ายต้นทางและปลายทางเท่านั้น และแผนลายเซ็นดิจิทัลโดยอนุญาโตตุลาการรวมถึงการใช้อนุญาโตตุลาการ ลายเซ็นดิจิทัลโดยตรงสร้างขึ้นโดยการเข้ารหัสข้อความทั้งหมดหรือรหัสแฮชของข้อความด้วยคีย์ส่วนตัวของผู้ส่ง สามารถรักษาความลับเพิ่มเติมได้โดยการเข้ารหัสข้อความทั้งหมดและเพิ่มลายเซ็นโดยใช้รหัสสาธารณะของผู้รับหรือรหัสลับที่ใช้ร่วมกันระหว่างผู้ส่งและผู้รับ จุดอ่อนอย่างหนึ่งในรูปแบบลายเซ็นโดยตรงคือผู้ส่งสามารถปฏิเสธการส่งข้อความได้ในภายหลัง จุดอ่อนอีกประการหนึ่งคือการคุกคามคีย์ส่วนตัวที่ถูกขโมยและส่งข้อความโดยใช้ลายเซ็น จุดอ่อนทั้งสองประการเป็นสาเหตุหลักสำหรับรูปแบบลายเซ็นดิจิทัลโดยอนุญาโตตุลาการ ในรูปแบบอนุญาโตตุลาการ ข้อความของผู้ส่งจะต้องผ่านผู้ชี้ขาดก่อน ซึ่งจะทำการทดสอบหลายชุดเพื่อตรวจสอบต้นทางและเนื้อหาก่อนที่จะส่งไปยังผู้รับ เนื่องจากอนุญาโตตุลาการมีบทบาทสำคัญอย่างยิ่ง ผู้ส่งและผู้รับจึงต้องมีความไว้วางใจในอนุญาโตตุลาการนี้เป็นอย่างมาก ความไว้วางใจในอนุญาโตตุลาการนี้ทำให้ผู้ส่งมั่นใจได้ว่าไม่มีใครปลอมแปลงลายเซ็นของเขาได้ และรับรองผู้รับว่าผู้ส่งไม่สามารถปฏิเสธลายเซ็นของเขาได้ (Stallings, 2003)
ปัญหาของการโจมตีซ้ำเป็นปัญหาหลักเมื่อต้องรับมือกับการพิสูจน์ตัวตนร่วมกัน เมื่อทั้งสองฝ่ายยืนยันตัวตนของอีกฝ่ายและแลกเปลี่ยนคีย์เซสชัน ปัญหาหลักเกี่ยวกับการพิสูจน์ตัวตนร่วมกันอยู่ที่การแลกเปลี่ยนคีย์: การรักษาความลับและลำดับเวลา เส้นเวลามีความอ่อนไหวต่อการโจมตีซ้ำซึ่งรบกวนการดำเนินการโดยการนำเสนอข้อความที่ปรากฏเป็นของแท้แต่ไม่ใช่ การโจมตีซ้ำประเภทหนึ่งคือการโจมตีแบบกดตอบกลับที่สามารถเกิดขึ้นได้ใน Denning protocol โปรโตคอล Denning ใช้การประทับเวลาเพื่อเพิ่มความปลอดภัย ปัญหาที่นี่เกี่ยวข้องกับการพึ่งพานาฬิกาที่ซิงโครไนซ์ทั่วทั้งเครือข่าย มีการระบุไว้ว่า “…นาฬิกาที่แจกจ่ายอาจไม่ตรงกันอันเป็นผลมาจากการก่อวินาศกรรมหรือความผิดพลาดในนาฬิกาหรือกลไกการซิงโครไนซ์” (Stallings, 2003 p. 387) Li Gong กล่าวว่า “…ผู้รับยังคงอ่อนแอที่จะยอมรับข้อความเป็นข้อความปัจจุบัน แม้ว่าผู้ส่งจะตรวจพบข้อผิดพลาดของนาฬิกาและซิงโครไนซ์นาฬิกาใหม่ เว้นแต่ว่าข้อความที่โพสต์นั้นไม่ถูกต้องในขณะเดียวกัน” ซึ่งไม่น่าเป็นไปได้ หากนาฬิกาของผู้ส่งเดินเร็วกว่าผู้รับและข้อความถูกดักฟัง ฝ่ายตรงข้ามสามารถเล่นข้อความซ้ำได้เมื่อการประทับเวลากลายเป็นปัจจุบัน การโจมตีประเภทนี้เรียกว่าการโจมตีแบบกดเล่นซ้ำ
เพื่อจัดการกับข้อกังวลของการโจมตีแบบหยุดเล่นซ้ำ จึงมีการนำเสนอโปรโตคอลที่ได้รับการปรับปรุง นี่คือขั้นตอนโดยละเอียด
1. “A เริ่มต้นการแลกเปลี่ยนการรับรองความถูกต้องโดยสร้าง nonce, Na และส่งสิ่งนั้นพร้อมตัวระบุไปยัง B ในรูปแบบข้อความธรรมดา nonce นี้จะถูกส่งกลับไปยัง A ในข้อความที่เข้ารหัสซึ่งมีคีย์เซสชัน ทำให้ A มั่นใจในไทม์ไลน์
2. B แจ้งเตือน KDC ว่าจำเป็นต้องใช้คีย์เซสชัน ข้อความถึง KDC รวมถึงตัวระบุและ nonce, Nb nonce นี้จะถูกส่งกลับไปยัง B ในข้อความที่เข้ารหัสซึ่งมีคีย์เซสชัน เพื่อให้ B มั่นใจในความตรงเวลา ข้อความของ B ที่ส่งถึง KDC ยังรวมถึงบล็อกที่เข้ารหัสด้วยรหัสลับที่ B และ KDC ใช้ร่วมกัน บล็อกนี้ใช้เพื่อสั่งให้ KDC ออกหนังสือรับรองให้กับ A; บล็อกระบุผู้รับที่ต้องการของข้อมูลประจำตัว เวลาหมดอายุที่แนะนำสำหรับข้อมูลประจำตัว และไม่ได้รับจาก A
3. KDC ส่งผ่านไปยัง nonce ของ AB และบล็อกที่เข้ารหัสด้วยรหัสลับโดย A สำหรับการรับรองความถูกต้องในภายหลังดังที่จะเห็น KDC ยังส่งบล็อก A ที่เข้ารหัสด้วยรหัสลับที่ A และ KDC แบ่งปัน บล็อกนี้ยืนยันว่า B ได้รับข้อความเริ่มต้น (IDB) ของ A และข้อความนี้เป็นข้อความทันเวลาไม่ใช่ข้อความซ้ำ (Na) และให้ A มีคีย์เซสชัน (KS) และเวลาจำกัดในการใช้งาน (Tb)
4. A ส่งตั๋วไปยัง B พร้อมกับ nonce ของ B ซึ่งเข้ารหัสหลังด้วยคีย์เซสชัน ตั๋วให้รหัสลับ B ที่ใช้ในการถอดรหัส EKS[Nb] เพื่อกู้คืน nonce ข้อเท็จจริงที่ว่า nonce ของ B ถูกเข้ารหัสด้วยคีย์เซสชันเป็นการรับรองว่าข้อความนั้นมาจาก A และไม่ใช่การเล่นซ้ำ” (Stallings, 2003 pgs. 387-388)
โปรโตคอลนี้ไม่เสี่ยงต่อการโจมตีแบบระงับการเล่นซ้ำ เนื่องจากข้อเท็จจริงที่ว่าผู้รับจะเลือกในอนาคตนั้นเป็นสิ่งที่คาดเดาไม่ได้สำหรับผู้ส่ง (Gong, nd)
โดยสรุป ลายเซ็นดิจิทัลถูกมองว่าเป็นการพัฒนาที่สำคัญที่สุดในการเข้ารหัสคีย์สาธารณะ และรวมถึงแนวทางลายเซ็นดิจิทัลโดยตรงและโดยอนุญาโตตุลาการ ลายเซ็นดิจิทัลโดยตรงเกี่ยวข้องกับการสื่อสารระหว่างฝ่ายต้นทางและปลายทางเท่านั้น และแผนลายเซ็นดิจิทัลโดยอนุญาโตตุลาการรวมถึงการใช้อนุญาโตตุลาการ การโจมตีระงับการเล่นซ้ำอาจเกิดขึ้นได้หากนาฬิกาของผู้ส่งเร็วกว่าผู้รับและข้อความถูกดักฟัง สิ่งนี้ทำให้ฝ่ายตรงข้ามสามารถเล่นข้อความซ้ำได้เมื่อการประทับเวลากลายเป็นปัจจุบัน ปัญหานี้แก้ไขได้ด้วยการใช้โปรโตคอลที่ใช้การประทับเวลาที่ไม่ต้องการนาฬิกาที่ซิงโครไนซ์ เนื่องจากเครื่องรับ B ตรวจสอบเฉพาะการประทับเวลาที่สร้างขึ้นเอง (Stallings, 2003)
ผลงานที่อ้างถึง
กงลี่ (น.). ความเสี่ยงด้านความปลอดภัยขึ้นอยู่กับนาฬิกาที่ซิงโครไนซ์ ORA Corporation และมหาวิทยาลัยคอร์เนล สืบค้นเมื่อ 5 พฤศจิกายน 2548 จาก https://portal.acm.org
สตอลลิงส์, วิลเลียม. (2546). การเข้ารหัสและการรักษาความปลอดภัยเครือข่าย: หลักการและวิธีปฏิบัติ นิวเจอร์ซีย์: Pearson Education, Inc.
การสอน Java (nd) เครือข่ายนักพัฒนาซัน สืบค้นเมื่อ 5 พฤศจิกายน 2548 จาก http://java.sun.com/docs/books/tutorial/index.html