ดังนั้นฉันจึงใช้กูเกิลในสมองของฉันเกี่ยวกับความเป็นไปได้ของการพยายามเลียนแบบโดยผู้โจมตี MITM รูปแบบรหัสผ่านครั้งเดียวของ Lamport.
นี่คือสถานการณ์ของฉัน:
สมมติว่าเรามีการตั้งค่าไคลเอนต์และเซิร์ฟเวอร์ ได้รับ nonce $n$และฟังก์ชันแฮช $h()$ลูกค้าคำนวณแฮชของ $n$ หลายครั้ง (พูด $100$) และส่งที่อินสแตนซ์แรก $H^{(100)}$ ที่ไหน $H^{(100)}=h^{(100)}(n)$. อันดับแรก เซิร์ฟเวอร์ตรวจสอบตัวตนของลูกค้าสำหรับค่าที่ไคลเอนต์ระบุแรกได้อย่างไร $H^{(100)}$? ลายเซ็นดิจิตอล / ใบรับรอง?
สำหรับการรับรองความถูกต้องในภายหลัง ลูกค้าจะส่ง $H^{(99)}$ และเซิร์ฟเวอร์จะคำนวณ $h(H^{(100)})$ และถ้าการคำนวณตรงกับค่าที่เซิร์ฟเวอร์เก็บไว้ (เช่น $H^{(100)}$) เซิร์ฟเวอร์รับรองความถูกต้องของไคลเอนต์
ตอนนี้สมมติว่ามีผู้โจมตีอยู่ตรงกลางของการสื่อสาร ผู้โจมตีไม่สามารถสกัดกั้นได้ $H^{(99)}$ จากลูกค้าและส่ง $H^{(99)}$ ไปยังเซิร์ฟเวอร์ จึงปลอมตัวเป็นไคลเอ็นต์สำหรับเซสชันเฉพาะนี้เท่านั้น โดยที่ $i$ เป็น $99$. นี่หมายความว่าเซิร์ฟเวอร์ตรวจสอบสิทธิ์ผู้โจมตีแทนไคลเอนต์ การเลียนแบบนี้เป็นไปได้หรือไม่? และถ้าเป็นเช่นนั้น OTP ของ Lamport จะป้องกันสิ่งนี้ได้อย่างไร
การใช้ลายเซ็นดิจิทัลหรือการเข้ารหัสคีย์สาธารณะสำหรับการตรวจสอบสิทธิ์ทุกครั้งดูเหมือนจะไม่ใช่แนวคิดของ Lamport ในการใช้รูปแบบ OTP ของเขา ความเข้าใจของฉันเกี่ยวกับ OTP ของ Lamport คือการใช้ฟังก์ชันแฮชเท่านั้น