จะมีวลีรหัสผ่านที่แตกต่างกันสำหรับคีย์ย่อย gpg ได้อย่างไร


16

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

ขณะนี้มีวลีรหัสผ่านเดียวสำหรับกุญแจทั้งหมด ฉันไม่ต้องการระบุวลีรหัสผ่านนี้ในไฟล์กำหนดค่าที่จะเสี่ยงกับคีย์หลักเช่นกัน

ดังนั้นฉันคิดว่าฉันได้กำหนดวลีรหัสผ่านที่แตกต่างกันสำหรับคีย์ย่อยโดยทำ:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

แต่นี่เป็นการเปลี่ยนวลีรหัสผ่านสำหรับคีย์อื่นเช่นกัน

ฉันจะตั้งวลีรหัสผ่านแยกสำหรับแต่ละคีย์ได้อย่างไร

คำตอบ:


14

ไม่สามารถตั้งค่าวลีรหัสผ่านสำหรับคีย์ย่อยแต่ละรายการได้ด้วย GnuPG แต่มีวิธีแก้ปัญหาซึ่งดูเหมือนกับแนวปฏิบัติที่ดีในกรณีนี้:

  1. ส่งออกคีย์ย่อยของตัวเลือก (ในตัวอย่างคีย์ย่อยนั้นมี ID 0xDEADBEEF) อย่าลืมเครื่องหมายอัศเจรีย์ทำให้แน่ใจว่า GnuPG ใช้งานได้จริงกับคีย์ย่อยของตัวเองและไม่ใช้คีย์หลักที่เป็นของ!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    คีย์ย่อยจะมีคีย์หลักสาธารณะและคีย์หลัก "คีย์ - สตับ" ส่วนตัวติดอยู่ แต่ไม่ใช่คีย์หลักส่วนตัว

  2. นำเข้าคีย์ย่อยไปยังโฮมไดเรกทอรี GnuPG อื่น ตัวอย่างคาดว่าคุณจะอยู่ในไดเรกทอรีรากโครงการของคุณและมีโฟลเดอร์etcสำหรับสิ่งที่คล้ายกับพวงกุญแจนี้

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. เปลี่ยนวลีรหัสผ่านของคีย์ย่อยที่แยกจากกัน

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. แทนที่จะใช้พวงกุญแจ "ปกติ" ของคุณให้อ้างอิงไปยังไดเรกทอรี GnuPG ที่แยกต่างหากดังกล่าวข้างต้น

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


1
สิ่งนี้ไม่ทำงานกับ GnuPG 2.2.4 ไม่สามารถพูดว่า "ต้องการรหัสลับในการทำเช่นนี้" เศร้ามาก: '(
steinybot

ดังนั้นฉันต้องใช้คีย์ gpg ที่ไม่มีรหัสผ่านสำหรับการเซ็นสัญญา repo อัตโนมัติหรือไม่
SuperSandro2000

ไม่มีคุณยังสามารถ gpg-agentpre-แคชใช้รหัสผ่าน gpg-preset-passphraseมีลักษณะที่
Jens Erat

5

A ใช้จากวันที่ (2013) gnupg.org เก็บจดหมายอธิบายวิธีแก้ปัญหาที่น่าอึดอัดใจสำหรับการทำรหัสผ่านที่แยกต่างหากสำหรับคีย์ย่อย
หมายถึงข้อ จำกัด ไม่ได้อยู่ในโครงสร้างข้อมูลของชุดคีย์ (เช่นการจัดกลุ่มคีย์ย่อยหลัก) แต่เฉพาะในซอฟต์แวร์อินเตอร์เฟสสำหรับการสร้างและแก้ไขชุดคีย์

คำพูดจากการอ้างอิง:

สวัสดี

เป็นไปได้หรือไม่ที่จะมีคีย์หลักและคีย์ย่อยหลายคีย์ที่มีคีย์ย่อยมีวลีรหัสผ่านที่แตกต่างกัน (เช่นสั้นกว่า) กว่าคีย์หลัก

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

แต่ GnuPG ไม่รองรับสิ่งนี้โดยตรง

1) ส่งออกคีย์ลับ (- ส่งออกลับโดยไม่ต้อง - เกราะ)

2) เปลี่ยนข้อความรหัสผ่าน

3) ส่งออกอีกครั้ง (เป็นไฟล์อื่นแน่นอน)

4) ใช้ gpgsplit กับไฟล์ทั้งสอง (ในไดเรกทอรีต่าง ๆ ) ผลลัพธ์จะเป็นดังนี้:

000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig

5) ตอนนี้คุณผสมส่วนประกอบของสองกลุ่ม: mkdir รวม mv a / 000001 * a / 000002 * a / 000003 * รวม / mv b / 000004 * b / 000005 * รวม / cd รวม / cat *> different_passphrases.gpg

6) ลบคีย์ออกจาก secring: --delete-secret-key

7) นำเข้าอันใหม่: gpg - นำเข้า different_passphrases.gpg

Hauke ​​Laging

ฉันยังไม่ได้ยืนยันการดำเนินการนี้เป็นการส่วนตัวเพียงรายงานสิ่งที่ฉันได้อ่าน

การขาดข้อกำหนดและการอภิปรายในเอกสารประกอบของ GnuPG เกี่ยวกับหัวข้อสำคัญนี้น่าผิดหวัง

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