วิธีสำรองและกู้คืนคีย์ GPG ของคุณบน Linux
เผยแพร่แล้ว: 2022-08-18 ความเป็นส่วนตัวเป็นประเด็นร้อนมากขึ้น บน Linux คำสั่ง gpg
ให้ผู้ใช้เข้ารหัสไฟล์โดยใช้การเข้ารหัสคีย์สาธารณะ ซึ่งในกรณีนี้การสูญเสียคีย์การเข้ารหัสจะเป็นหายนะ ต่อไปนี้เป็นวิธีสำรองข้อมูล
OpenPGP และ GNU Privacy Guard
ข้อดีอย่างหนึ่งของไฟล์อิเล็กทรอนิกส์มากกว่าสำเนาที่เป็นกระดาษคือ คุณสามารถเข้ารหัสไฟล์อิเล็กทรอนิกส์เพื่อให้เข้าถึงได้โดยบุคคลที่ได้รับอนุญาตเท่านั้น ถ้าตกไปอยู่ในมือผิดก็ไม่เป็นไร เฉพาะคุณและผู้รับเท่านั้นที่สามารถเข้าถึง เนื้อหา ของไฟล์ได้
มาตรฐาน OpenPGP อธิบายระบบการเข้ารหัสที่เรียกว่าการเข้ารหัสคีย์สาธารณะ การใช้งาน GNU Privacy Guard ของมาตรฐานนั้นส่งผลให้เกิด gpg
ซึ่งเป็นเครื่องมือบรรทัดคำสั่งสำหรับการเข้ารหัสและถอดรหัสตามมาตรฐาน
มาตรฐานกำหนดโครงร่างการเข้ารหัสคีย์สาธารณะ แม้ว่าจะเรียกว่า "กุญแจสาธารณะ" แต่ก็มีกุญแจสองดอกที่เกี่ยวข้อง แต่ละคนมีกุญแจสาธารณะและกุญแจส่วนตัว กุญแจส่วนตัวตามชื่อจะไม่เปิดเผยหรือส่งต่อให้ใคร สามารถใช้กุญแจสาธารณะร่วมกันได้อย่างปลอดภัย อันที่จริงต้องแชร์กุญแจสาธารณะเพื่อให้โครงการทำงานได้
เมื่อไฟล์ถูกเข้ารหัส ไพรเวตคีย์ของผู้ส่งและพับลิกคีย์ของผู้รับจะถูกใช้ในกระบวนการเข้ารหัส จากนั้นไฟล์จะถูกส่งไปยังผู้รับ พวกเขาใช้คีย์ส่วนตัวและคีย์สาธารณะของผู้ส่งเพื่อถอดรหัสไฟล์
คีย์สาธารณะและคีย์ส่วนตัวถูกสร้างขึ้นเป็นคู่ที่ตรงกันและเชื่อมโยงกับข้อมูลเฉพาะตัว แม้ว่าคุณจะไม่ส่งข้อมูลที่มีความละเอียดอ่อนให้ผู้อื่น คุณสามารถใช้ข้อมูลเหล่านี้บนคอมพิวเตอร์ของคุณเองเพื่อเพิ่มชั้นการป้องกันเพิ่มเติมให้กับเอกสารส่วนตัว
การเข้ารหัสใช้อัลกอริธึมระดับโลกและฟังก์ชันการเข้ารหัส หากไม่มีกุญแจสาธารณะและส่วนตัวที่เหมาะสม คุณจะไม่สามารถเข้าถึงไฟล์ที่เข้ารหัสได้ และหากคุณทำกุญแจหาย นั่นก็เพื่อคุณเช่นกัน การสร้างคีย์ใหม่จะไม่ช่วย ในการถอดรหัสไฟล์ของคุณ คุณต้องมีคีย์ที่ใช้ในกระบวนการเข้ารหัส
จำเป็นต้องพูด การสำรองข้อมูลคีย์ของคุณมีความสำคัญอย่างยิ่ง เช่นเดียวกับการรู้วิธีคืนค่าคีย์เหล่านั้น นี่คือวิธีการทำงานเหล่านี้ให้สำเร็จ
ไดเร็กทอรี .gnupg
คีย์ของคุณถูกเก็บไว้ในไดเร็กทอรีชื่อ ".gnupg" ในโฮมไดเร็กตอรี่ของคุณ ไดเร็กทอรีนี้จะเก็บกุญแจสาธารณะของใครก็ตามที่ส่งไฟล์ที่เข้ารหัสถึงคุณ เมื่อคุณนำเข้ากุญแจสาธารณะ กุญแจเหล่านี้จะถูกเพิ่มไปยังไฟล์ฐานข้อมูลที่จัดทำดัชนีในไดเร็กทอรีนั้น
แน่นอนว่าไม่มีสิ่งใดในไดเร็กทอรีนี้ถูกจัดเก็บเป็นข้อความธรรมดา เมื่อคุณสร้างคีย์ GPG คุณจะได้รับข้อความรหัสผ่าน หวังว่าคุณจะจำข้อความรหัสผ่านนั้นได้ คุณจะต้องการมัน รายการในไดเร็กทอรี ".gnugp" ไม่สามารถถอดรหัสได้หากไม่มี
หากเราใช้ยูทิลิตี้ tree
เพื่อดูไดเร็กทอรี เราจะเห็นโครงสร้างของไดเร็กทอรีย่อยและไฟล์ คุณจะพบ tree
ในที่เก็บของการแจกจ่ายของคุณ หากคุณยังไม่มีต้นไม้นั้นในคอมพิวเตอร์ของคุณ
ต้นไม้ .gnupg
เนื้อหาของแผนผังไดเร็กทอรีคือ:
- openpgp-revocs.d : ไดเรกทอรีย่อยนี้มีใบรับรองการเพิกถอนของคุณ คุณจะต้องใช้สิ่งนี้หากคีย์ส่วนตัวของคุณกลายเป็นความรู้ทั่วไปหรือถูกบุกรุก ใบรับรองการเพิกถอนของคุณจะใช้ในกระบวนการเลิกใช้คีย์เก่าและใช้คีย์ใหม่
- private-keys-v1.d : ไดเร็กทอรีย่อยนี้เก็บคีย์ส่วนตัวของคุณ
- pubring.kbx : ไฟล์ที่เข้ารหัส ประกอบด้วยคีย์สาธารณะ รวมทั้งของคุณ และข้อมูลเมตาบางส่วนเกี่ยวกับคีย์เหล่านี้
- pubring.kbx~ : นี่คือสำเนาสำรองของ “pubring.kbx” มีการอัปเดตก่อนทำการเปลี่ยนแปลงใน “pubring.kbx”
- trustdb.gpg : สิ่งนี้ถือเป็นความสัมพันธ์ที่เชื่อถือได้ที่คุณสร้างขึ้นสำหรับคีย์ของคุณเองและสำหรับคีย์สาธารณะที่เป็นที่ยอมรับของบุคคลอื่น
คุณควรสำรองข้อมูลโฮมไดเร็กทอรีของคุณเป็นประจำอย่างสม่ำเสมอ รวมถึงไฟล์และโฟลเดอร์ที่ซ่อนอยู่ นั่นจะสำรองไดเรกทอรี ".gnupg" อย่างแน่นอน
แต่คุณอาจคิดว่าคีย์ GPG ของคุณมีความสำคัญเพียงพอที่จะรับประกันการสำรองข้อมูลของตนเองเป็นระยะ หรือบางทีคุณอาจต้องการคัดลอกคีย์จากเดสก์ท็อปไปยังแล็ปท็อป เพื่อให้คุณมีคีย์ดังกล่าวในเครื่องทั้งสองเครื่อง คุณเป็นคุณทั้งสองเครื่อง
กำหนดคีย์ที่จะสำรองข้อมูล
เราสามารถขอให้ gpg
บอกเราว่าคีย์ใดอยู่ในระบบ GPG ของคุณ เราจะใช้ตัวเลือก --list --list-secret-keys
และ --keyid-format LONG
gpg --list-secret-keys --keyid-format LONG
เราได้รับแจ้งว่า GPG กำลังดูภายในไฟล์ “/home/dave/.gnupg/pubring.kbx”
สิ่งที่ปรากฏบนหน้าจอไม่ใช่คีย์ลับที่แท้จริงของคุณ
- บรรทัด "sec" (ความลับ) แสดงจำนวนบิตในการเข้ารหัส (4096 ในตัวอย่างนี้) ID คีย์ วันที่สร้างคีย์ และ "[SC]" "S" หมายถึงคีย์สามารถใช้สำหรับลายเซ็นดิจิทัลและ "C" หมายถึงสามารถใช้สำหรับการรับรองได้
- บรรทัดถัดไปคือลายนิ้วมือที่สำคัญ
- บรรทัด "uid" เก็บ ID ของเจ้าของคีย์
- บรรทัด "ssb" จะแสดงคีย์ย่อยลับเมื่อสร้างและ "E" ตัว “E” ระบุว่าสามารถใช้สำหรับการเข้ารหัสได้
หากคุณได้สร้างคู่คีย์หลายคู่เพื่อใช้กับข้อมูลเฉพาะตัวที่แตกต่างกัน คู่คีย์เหล่านั้นก็จะแสดงอยู่ในรายการด้วย มีคู่คีย์เพียงคู่เดียวที่จะสำรองข้อมูลสำหรับผู้ใช้รายนี้ ข้อมูลสำรองจะรวมคีย์สาธารณะที่เป็นของบุคคลอื่นที่เจ้าของคีย์นี้ได้รวบรวมและตัดสินใจไว้วางใจ
สำรอง
เราสามารถขอให้ gpg
สำรองคีย์ทั้งหมดสำหรับข้อมูลประจำตัวทั้งหมด หรือให้สำรองคีย์ที่เกี่ยวข้องกับข้อมูลประจำตัวเดียว เราจะสำรองคีย์ส่วนตัว คีย์ลับ และไฟล์ฐานข้อมูลที่เชื่อถือได้
หากต้องการสำรองคีย์สาธารณะ ให้ใช้ตัวเลือก --export
เราจะใช้ --export-options backup
options เพื่อให้แน่ใจว่ามีการรวมข้อมูลเมตาเฉพาะของ GPG ทั้งหมดเพื่อให้สามารถนำเข้าไฟล์บนคอมพิวเตอร์เครื่องอื่นได้อย่างถูกต้อง
เราจะระบุไฟล์เอาต์พุตด้วยตัวเลือก --output
ถ้าเราไม่ทำเช่นนั้น ผลลัพธ์จะถูกส่งไปยังหน้าต่างเทอร์มินัล
gpg --export --export-options backup --output public.gpg
หากคุณต้องการสำรองคีย์สำหรับข้อมูลประจำตัวเดียว ให้เพิ่มที่อยู่อีเมลที่เชื่อมโยงกับคีย์ในบรรทัดคำสั่ง หากคุณจำไม่ได้ว่าที่อยู่อีเมลใด ให้ใช้ตัวเลือก --list-secret-keys
ตามที่อธิบายข้างต้น
gpg --export --export-options สำรอง --output public.gpg [email protected]
ในการสำรองคีย์ส่วนตัวของเรา เราจำเป็นต้องใช้ตัวเลือก --export-secret-keys
แทน --export
ตรวจสอบให้แน่ใจว่าคุณบันทึกสิ่งนี้ไปยังไฟล์อื่น
gpg --export-secret-keys --export-options backup --output private.gpg
เนื่องจากนี่คือคีย์ส่วนตัวของคุณ คุณจะต้องตรวจสอบสิทธิ์กับ GPG ก่อนจึงจะดำเนินการต่อได้
โปรดทราบว่าระบบจะ ไม่ถามรหัสผ่านของคุณ สิ่งที่คุณต้องป้อนคือ ข้อความรหัสผ่าน ที่คุณให้ไว้เมื่อคุณสร้างคีย์ GPG เป็นครั้งแรก ผู้จัดการรหัสผ่านที่ดีช่วยให้คุณเก็บข้อมูลดังกล่าวไว้เป็นบันทึกที่ปลอดภัยได้ เป็นสถานที่ที่ดีในการจัดเก็บ
หากยอมรับข้อความรหัสผ่าน การส่งออกจะเกิดขึ้น
ในการสำรองความสัมพันธ์ที่เชื่อถือได้ เราต้องส่งออกการตั้งค่าจากไฟล์ “trustdb.gpg” ของคุณ เรากำลังส่งออกไปยังไฟล์ชื่อ “trust.gpg” นี่คือไฟล์ข้อความ สามารถดูได้โดยใช้ cat
gpg --export-ownertrust > trust.gpg
cat trust.gpg
นี่คือสามไฟล์ที่เราสร้างขึ้น
ls -hl *.gpg
เราจะย้ายข้อมูลเหล่านี้ไปยังคอมพิวเตอร์เครื่องอื่นและกู้คืน สิ่งนี้จะสร้างตัวตนของเราบนเครื่องนั้น และทำให้เราสามารถใช้คีย์ GPG ที่มีอยู่ของเราได้
หากคุณไม่ได้ย้ายกุญแจไปยังคอมพิวเตอร์เครื่องอื่น และคุณกำลังสำรองข้อมูลไว้เพราะคุณต้องการให้แน่ใจเป็นทวีคูณว่าปลอดภัย ให้คัดลอกไปยังสื่ออื่นๆ และจัดเก็บไว้อย่างปลอดภัย แม้ว่าพวกเขาจะตกไปอยู่ในมือที่ไม่ถูกต้อง กุญแจสาธารณะของคุณก็ยังเป็นสาธารณะอยู่ดี ดังนั้นจึงไม่มีอันตรายที่นั่น และหากไม่มีข้อความรหัสผ่าน คีย์ส่วนตัวของคุณจะไม่สามารถกู้คืนได้ แต่ยังคงรักษาข้อมูลสำรองของคุณให้ปลอดภัยและเป็นส่วนตัว
เราได้คัดลอกไฟล์ไปยังคอมพิวเตอร์ Manjaro 21 แล้ว
ls *.gpg
โดยค่าเริ่มต้น Manjaro 21 ใช้ Z เชลล์ zsh
ซึ่งเป็นสาเหตุที่ทำให้ดูแตกต่างออกไป แต่สิ่งนี้ไม่สำคัญ มันจะไม่กระทบอะไรเลย สิ่งที่เราทำอยู่ภายใต้โปรแกรม gpg
ไม่ใช่เชลล์
ในการนำเข้าคีย์ของเรา เราต้องใช้ตัวเลือก --import
gpg --import public.gpg
รายละเอียดของคีย์จะแสดงขึ้นเมื่อมีการนำเข้า ไฟล์ “trustdb.gpg” ก็ถูกสร้างขึ้นสำหรับเราเช่นกัน การนำเข้าคีย์ส่วนตัวนั้นง่ายเหมือนกัน เราใช้ตัวเลือก --import
อีกครั้ง
gpg --import private.gpg
เราได้รับแจ้งให้ป้อนข้อความรหัสผ่าน
พิมพ์ลงในช่อง "รหัสผ่าน" กดปุ่ม "Tab" แล้วกด "Enter"
รายละเอียดของคีย์ที่นำเข้าจะปรากฏขึ้น ในกรณีของเรา เรามีคีย์เดียวเท่านั้น
ในการนำเข้าฐานข้อมูลความน่าเชื่อถือของเรา ให้พิมพ์:
gpg --import-ownertrust trust.gpg
เราสามารถตรวจสอบว่าทุกอย่างนำเข้าอย่างถูกต้องโดยใช้ --list-secret-keys
ตัวเลือกอีกครั้ง
gpg --list-secret-keys --keyid-format LONG
สิ่งนี้ให้ผลลัพธ์เดียวกันกับที่เราเห็นบนคอมพิวเตอร์ Ubuntu ของเราก่อนหน้านี้
ปกป้องความเป็นส่วนตัวของคุณ
ตรวจสอบให้แน่ใจว่าคีย์ GPG ของคุณปลอดภัยโดยสำรองข้อมูลไว้ หากคุณมีภัยพิบัติทางคอมพิวเตอร์หรือเพียงแค่อัปเกรดเป็นรุ่นที่ใหม่กว่า ตรวจสอบให้แน่ใจว่าคุณรู้วิธีโอนคีย์ของคุณไปยังเครื่องใหม่
ที่เกี่ยวข้อง: วิธีสำรองข้อมูลระบบ Linux ของคุณด้วยrsync