เหตุผลที่เป็นไปไม่ได้ก็อย่างที่คนอื่นๆ กล่าวไว้ ข้อความที่เซ็นชื่อไม่สามารถปลอมแปลงได้ แน่นอน ผู้โจมตีสามารถลงนามในข้อความใดๆ ก็ได้ แต่ต้องใช้คีย์ส่วนตัวที่เป็นของคีย์สาธารณะ/ใบรับรองของตนเท่านั้น
สิ่งที่เกิดขึ้นคือ:
- อลิซลงนามในข้อความด้วยคีย์ส่วนตัวของเธอ โดยระบุคีย์สาธารณะ / ใบรับรองของเธอ
- อลิซเข้ารหัสข้อความที่เซ็นชื่อด้วยคีย์สาธารณะของ Bob (เนื่องจาก PGP ใช้ sign-then-encrypt)
- Bob ได้รับข้อความและถอดรหัสโดยใช้คีย์ส่วนตัวของเขา
- Bob ได้รับ ID คีย์ของ Alice และค้นหาคีย์สาธารณะ / ใบรับรองของเธอ โดยพบว่าเป็นของเธอ
- Bob ยืนยันว่าลายเซ็นใต้ข้อความนั้นเป็นของ Alice
ตอนนี้ Malory (MitM ที่ใช้ชื่อปกติ) สามารถส่งข้อความเข้ารหัสถึง Bob ได้อย่างชัดเจน แต่เธอไม่สามารถถอดรหัสข้อความของ Alice ได้ เนื่องจากเธอไม่มีรหัสส่วนตัวของ Bob
เกี่ยวกับการสร้างลายเซ็น: Malory สามารถใส่ลายเซ็นของเธอเองและเปลี่ยน ID ได้ แต่ข้อความนั้นจะไม่มาจากอลิซ
แน่นอนว่าสิ่งนี้จำเป็นต้องให้รหัสสาธารณะ/ใบรับรองของอลิซเป็นที่รู้จักและไว้วางใจล่วงหน้าโดย Bob มิฉะนั้น Malory สามารถสร้างคู่กุญแจและส่งรหัสสาธารณะ/ใบรับรองไปยัง Bob โดยแอบอ้างเป็นอลิซ ด้วย PGP ที่สร้างความไว้วางใจโดยใช้เว็บแห่งความไว้วางใจ
เนื่องจากเว็บแห่งความไว้วางใจนั้นไม่เคยมีความปลอดภัยเพียงพอสำหรับ PGP จึงขอแนะนำอย่างยิ่งให้สร้างความไว้วางใจโดยตรง เช่น โดยส่งใบรับรองทางไปรษณีย์แล้วตรวจสอบลายนิ้วมือที่สำคัญทางโทรศัพท์ PGP ได้รับการออกแบบโดยคำนึงถึงสิ่งนี้ (เช่น การสร้างระบบตรวจสอบลายนิ้วมือที่ง่าย และต้องการให้คีย์สาธารณะ/ใบรับรองที่เชื่อถือได้อย่างชัดเจนภายในที่เก็บที่เชื่อถือได้)