ทำไม GPG / PGP โดยค่าเริ่มต้นใช้คีย์ที่แตกต่างกันสำหรับการลงนาม / การเข้ารหัส?


22

หากคุณสร้างคีย์ GPG ใหม่โดยค่าเริ่มต้นคุณจะได้รับคู่คีย์หลักที่ลงนามเท่านั้นและคู่ของคีย์ย่อยการเข้ารหัสเท่านั้น

pub  2048R/XXXXXXXX  created: 2013-02-09  expires: 2014-02-09  usage: SC  
sec  2048R/XXXXXXXX           2013-02-09 [expires: 2014-02-09]

sub  2048R/ZZZZZZZZ  created: 2013-02-09  expires: 2014-02-09  usage: E
ssb  2048R/ZZZZZZZZ           2013-02-09 [expires: 2014-02-09]  

(ผลผลิตรวมจากgpg --list-keysและgpg --list-secret-keys)

นอกจากนี้ยังแนะนำให้ไม่ใช้คีย์หลักของคุณสำหรับการลงชื่อปกติ (ของเมล / ข้อมูล) แต่เพื่อสร้างคีย์ย่อยการลงชื่อเท่านั้นอื่นและลบ / สำรองข้อมูลมาสเตอร์คีย์ของคุณไปยังตำแหน่งที่ปลอดภัยและออฟไลน์เท่านั้นที่จะใช้สำหรับการลงชื่อคีย์ .

นี่เป็นเหตุผลที่ปลายทางการเข้ารหัสส่วนใหญ่เป็นแล็ปท็อป / โทรศัพท์หรืออุปกรณ์มือถือออนไลน์อื่น ๆ ที่วางกุญแจส่วนตัวของคุณซึ่งเสี่ยงต่อการถูกขโมยหรือสูญหาย ด้วยคีย์หลักที่เก็บไว้อย่างปลอดภัยคุณสามารถเพิกถอนคีย์ย่อยที่สูญหายไปและไม่ทำให้ลายเซ็นของคีย์ของคุณหลวม

ดังนั้นในขณะที่การแยกคีย์ย่อย <-> คีย์หลักมีความชัดเจนสำหรับฉันฉันไม่เข้าใจว่าทำไมจึงมีความสำคัญในการแยกคีย์การเซ็นชื่อและการเข้ารหัส (แม้ว่าพวกเขาจะเป็นทั้งคีย์ย่อย) ใครสามารถอธิบายได้ว่าทำไมสิ่งนี้จึงเป็นสิ่งจำเป็นหรืออย่างน้อยสิ่งที่ได้เปรียบคือจากมุมมองด้านความปลอดภัยหรือในทางปฏิบัติ?

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

pub  2048R/YYYYYYYY  created: 2013-08-13  expires: 2014-08-13  usage: SCEA
sub  2048R/VVVVVVVV  created: 2013-08-13  expires: 2014-08-13  usage: SEA 

2
มีคำตอบที่ดีสำหรับคำถามนี้ที่Security.SEในกรณีที่ใครสนใจ
GnP

คำตอบ:


9

ในสหราชอาณาจักรพระราชบัญญัติระเบียบอำนาจสอบสวน พ.ศ. 2543กล่าวว่า

49 (9) การบอกกล่าวตามหัวข้อนี้ไม่จำเป็นต้องเปิดเผยคีย์ใด ๆ ซึ่ง -

(a) มีวัตถุประสงค์เพื่อใช้เพื่อจุดประสงค์ในการสร้างลายเซ็นอิเล็กทรอนิกส์เท่านั้น และ

(b) ไม่ได้ใช้เพื่อวัตถุประสงค์อื่นใด

... ซึ่งหมายความว่ารัฐบาลสหราชอาณาจักรอาจบังคับให้คุณมอบคีย์ถอดรหัสของคุณ (ถ้าคุณเป็นผู้อยู่อาศัย) แต่ในบางกรณีพวกเขาไม่ได้รับอนุญาตให้ปลอมตัวคุณด้วยรหัสเซ็นชื่อของคุณ


1
น่าสนใจ ... สิ่งนี้จะนำไปใช้กับคีย์ส่วนตัวของ Bitcoin เช่นกัน (ใช้สำหรับการลงชื่อเท่านั้นไม่ใช้สำหรับการเข้ารหัส)
Jonathan Cross

... และมันมีลักษณะเช่นนี้ได้รับการยกเว้นการเข้าพักในสถานที่ใน2016 การกระทำ

8

ฉันไม่รู้ว่าทำไม GPG / PGP ทำสิ่งที่มันทำ แต่แรงจูงใจที่เป็นไปได้สำหรับสิ่งนี้คือการกู้คืนระบบ คุณอาจต้องการส่งสำเนาของรหัสส่วนตัวของคุณให้กับเพื่อนสนิทที่ไว้ใจได้ดังนั้นหากอุกกาบาตของคุณถูกโจมตีคุณจะยังสามารถอ่านข้อความเก่าที่บันทึกไว้ในระบบคลาวด์ได้ (ในทำนองเดียวกันคุณอาจต้องให้รหัสการเข้ารหัส1 กับเจ้านายของคุณเพื่อให้เขาสามารถอ่านอีเมลของคุณได้หลังจากที่คุณจากไป)

แต่ไม่มีเหตุผลที่ใครจะมีสำเนาของคู่กุญแจเซ็นสัญญาของคุณ
________________
1  “คุณอาจจะต้องให้คีย์การเข้ารหัสของคุณ” เพื่อใครสักคน - ดูคำตอบของ TEV


2

คำตอบง่าย ๆ ก็คือยิ่งคุณใช้คีย์มากเท่าไหร่ข้อมูลที่คุณรั่วไหลเกี่ยวกับคีย์ก็ยิ่งมากขึ้นเท่านั้น

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

เพื่อการโต้แย้งสมมติว่าใช้กุญแจ 10,000 ครั้งหมายความว่าคุณรั่วไหลข้อมูลทั้งหมดที่จำเป็นสำหรับบางคนเพื่อสร้างคีย์นั้นใหม่ การใช้รหัสเดียว> 9999 ครั้งอาจหมายความว่ามีบุคคลอื่นที่อาจปลอมตัวเป็นคุณและถ่ายทอดลายเซ็นที่เชื่อถือได้ของคุณไปยังกุญแจหรือเอกสารของบุคคลที่สามที่ทำให้เครือข่ายที่เชื่อถือได้ทั้งหมดของคุณเชื่อว่าบุคคลนี้เป็นคุณหรือเอกสารมาจากคุณ

อย่างไรก็ตามหากคุณกำลังเข้ารหัสด้วยคีย์เดียวกันนั้นถึงเกณฑ์ที่รวดเร็วยิ่งขึ้น

เพื่อหลีกเลี่ยงความรำคาญที่อาจเกิดขึ้นคีย์ที่สองจะถูกสร้างขึ้นซึ่งจะใช้สำหรับการเข้ารหัส / ถอดรหัสเท่านั้นซึ่งจะใช้ในการเข้ารหัสข้อมูลเช่นเดียวกับคุณ เมื่อใช้งานคีย์นี้ไปแล้ว 9999 ครั้งคุณจะสามารถหมดอายุคีย์นี้ได้โดยไม่สูญเสียความน่าเชื่อถือทั้งหมดที่คุณมอบให้กับคีย์การลงชื่อที่ถูกต้อง คุณ rekey สร้างคีย์การเข้ารหัสใหม่และเซ็นชื่อด้วยคุณเซ็นชื่อคีย์เพื่อแสดงว่านี่เป็นคีย์การเข้ารหัสที่เชื่อถือได้ซึ่งทุกคนสามารถตรวจสอบได้

แก้ไข:

เกี่ยวกับเรื่องการอ่านสิ่งที่ผมเขียนข้างต้นและความเป็นส่วนตัว GNU Handbook , ข้อสรุปของฉันคือการที่subเป็นคีย์ส่วนตัวและpubจะต้องเป็นคีย์สาธารณะ @GnP คำตอบนี้:

" The keyword pub identifies the public master signing key, and the keyword sub identifies a public subordinate key."


l สมมติว่าคนส่วนใหญ่จะใช้วิธีเซ็นชื่อบ่อยกว่านั้นก็คือกุญแจเข้ารหัสเนื่องจากเมล์เกือบทั้งหมดจะถูกเซ็นชื่อ แต่มีเพียงบางอันเท่านั้นที่จะถูกเข้ารหัส ในกรณีนี้ค่าเริ่มต้น gpg เป็นวิธีที่ผิดเช่น encr คีย์นั้นง่ายต่อการเปลี่ยนแปลงในขณะที่รหัสการลงชื่อไม่ได้เป็น
Chaos_99

ตามปกติคุณจะเข้ารหัสด้วยกุญแจสาธารณะของคนอื่นมันฟังดูค่อนข้างสมเหตุสมผลและอาจมีเหตุผลที่ดีสำหรับสิ่งนี้ที่ฉันไม่ทราบในปัจจุบัน
Daniël W. Crompton

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

1
ทั้งมาสเตอร์และคีย์ย่อยเป็นคีย์ PAIRS ที่ใช้ได้กับคีย์สาธารณะและไพรเวต ตัวย่อสำหรับไพรเวตมาสเตอร์คือ 'วินาที' สำหรับคีย์ย่อยส่วนตัว 'ssb' gpg --list-secret-keysทั้งสองสามารถมองเห็นได้ด้วย gpg --list-keysรายชื่อดังกล่าวข้างต้นแสดงให้เห็นปุ่มเพียงประชาชนกลับโดย
Chaos_99

1
"ยิ่งคุณใช้รหัสมากเท่าไหร่ข้อมูลที่คุณรั่วไหลมากขึ้นเกี่ยวกับกุญแจ" คุณมีแหล่งข้อมูลสำหรับการอ้างสิทธิ์นั้นหรือไม่
GnP

0

หากคุณสร้างคีย์ GPG ใหม่โดยค่าเริ่มต้นคุณจะได้รับคู่คีย์หลักที่ลงนามเท่านั้นและคู่ของคีย์ย่อยการเข้ารหัสเท่านั้น

ข้อความสามารถ:

  • ไม่ได้ลงนามและไม่ได้เข้ารหัส
  • ลงนามและไม่ได้เข้ารหัส
  • ไม่ได้ลงนามและเข้ารหัส
  • เซ็นชื่อและเข้ารหัส

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

หากการลงชื่อคุณกำลังสร้างเอกลักษณ์ / การรับรองและโดยการเข้ารหัสคุณกำลังทำให้ข้อความเป็นส่วนตัวความสามารถในการเข้ารหัส แต่ไม่ใช่การลงชื่อช่วยให้คุณสามารถส่งข้อความส่วนตัวที่ไม่จำเป็นต้องเกี่ยวข้องกับตัวตนของคุณหรือรับรองโดยคุณ คุณต้องการแยกคีย์ในกรณีนี้


2
แก้ไขให้ถูกต้องหากฉันผิด แต่ฉันเชื่อว่าเมื่อคุณเข้ารหัสข้อความคุณใช้รหัส(สาธารณะ) ของผู้รับดังนั้นเมื่อออกจากมือคุณจะไม่สามารถติดตามได้ คีย์การเข้ารหัสของคุณสำหรับผู้อื่นในการส่งข้อความที่เข้ารหัสให้คุณ
สกอตต์

@Scott ใช่ แต่คนส่วนใหญ่มักจะมีชุดคีย์เริ่มต้นเช่นกันเพื่อให้พวกเขาสามารถอ่านสิ่งที่อยู่ในกล่องจดหมายออกและมักจะระบุลายเซ็นเริ่มต้น แม้ว่าในกรณีเหล่านั้นจะใช้รหัสคีย์ของคีย์หลัก / ใบรับรองเพื่อเลือกคีย์ย่อยที่ถูกต้อง
Ben
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.