คุณจะสำรองข้อมูลคีย์ส่วนตัวของ GPG ได้อย่างปลอดภัยได้อย่างไร


25

ผมพบว่าผู้จัดการรหัสผ่าน CLI ที่น่าสนใจมากที่เรียกว่าผ่าน ในการใช้งานคุณสร้างคู่คีย์ GPG2 และใช้เครื่องมือเพื่อช่วยคุณจัดเก็บรหัสผ่านในไฟล์ที่เข้ารหัส gpg2

ในการเข้ารหัสไฟล์ (เพิ่มรหัสผ่านใหม่) จะใช้รหัสสาธารณะ

ในการถอดรหัสไฟล์ (ดึงรหัสผ่านที่เก็บไว้) จะใช้ไพรเวตคีย์ซึ่งต้องใช้รหัสผ่าน

มันใช้งานได้ดี

ตอนนี้เครื่องมือกำลังจัดเก็บรหัสผ่านทั้งหมดของฉันฉันต้องการสำรองข้อมูลทั้งหมดนี้เพื่อที่ว่าหากคอมพิวเตอร์ของฉันล่มฉันจะไม่ถูกล็อคจากบัญชีออนไลน์ทั้งหมดของฉัน

เครื่องมือทำงานร่วมกับ git ได้อย่างดีดังนั้นฉันจึงสามารถส่งไฟล์. gpg ไปยัง repo git ส่วนตัวของฉันบนคอมพิวเตอร์เครื่องอื่นได้อย่างง่ายดาย จากสิ่งที่ฉันเข้าใจไฟล์เหล่านี้ไม่มีประโยชน์หากไม่มีคีย์ส่วนตัวเพื่อถอดรหัส

คำถามของฉันคือ: ฉันจะสำรองกุญแจส่วนตัวและกุญแจสาธารณะในวิธีที่ปลอดภัยได้อย่างไรเพื่อที่ฉันจะสามารถเรียกคืน "ฐานข้อมูล" ในเครื่องอื่นได้หากจำเป็น ฉันสามารถเก็บทั้งกุญแจสาธารณะและกุญแจส่วนตัวใน repo คอมไพล์ของฉันและนำเข้ามันในเครื่องอื่นในภายหลังได้หรือไม่? หรือถือว่าเป็นการปฏิบัติที่ไม่ปลอดภัยในการจัดเก็บคีย์ส่วนตัวใน repo คอมไพล์ส่วนตัวหรือไม่ git repo ต้องใช้รหัสผ่านในการเข้าถึง รหัสส่วนตัวถูกเข้ารหัสและต้องใช้รหัสผ่านเพื่อเปิด - มันปลอดภัยที่จะเก็บ?

คำตอบ:


10

การจัดเก็บคีย์ส่วนตัว PGP ในระบบควบคุมการแก้ไขไม่ได้ก่อให้เกิดปัญหาด้านความปลอดภัยที่สำคัญ การจัดเก็บคีย์ส่วนตัวในที่เก็บ git ในพื้นที่เป็นส่วนตัว (ไม่ได้เผยแพร่) ไม่ควรมีผลกระทบด้านความปลอดภัยที่มีนัยสำคัญเมื่อเทียบกับการจัดเก็บคีย์ส่วนตัวบนคอมพิวเตอร์เครื่องเดียวกัน แต่อยู่นอกที่เก็บ Git

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

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

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

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

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


6

ฉันกำลังพิจารณาการตั้งค่าที่คล้ายกันเมื่อเร็ว ๆ นี้ ก่อนที่จะแก้ไขคำถามของคุณให้ฉันชี้ให้เห็นว่าอะไรที่รบกวนจิตใจฉัน นี่คือคำอธิบายที่มีความยาวที่ดีที่นี่ ในระยะสั้นเมื่อผ่านการเรียก GPG มันจะทำการเข้ารหัสแบบไม่สมมาตร (RSA / EC) ที่ไม่จำเป็นภายใต้ประทุน ไม่จำเป็น - เพราะไม่มีฝ่ายที่ไม่น่าไว้วางใจที่นี่

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

เพื่อบรรเทาความอ่อนแอนี้อย่างน้อยคุณจะทำคือการเก็บกุญแจสาธารณะ GPG คุณใช้กับพาสส่วนตัวเป็นอย่างดีเพราะสำหรับอินสแตนซ์ (ศักยภาพ) การโจมตีควอนตัมต้องการคีย์สาธารณะนี้: ดูที่นี่

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

ออฟไลน์โซลูชั่นสำรองข้อมูลเป็นจำนวนมาก, ทนายความ, ชั้นใต้ดิน ฯลฯดูที่นี่ แต่ห้องใต้ดินไม่เหมาะสำหรับทุกคนดังนั้นให้ฉันแนะนำวิธีแก้ปัญหาออนไลน์:

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

  • สร้าง tarball ด้วยคีย์ลับ GPG ที่ส่งออกและอาจเป็นข้อมูลรับรอง SSH ของคุณ

  • เข้ารหัสด้วยรหัสผ่านของคุณแบบสมมาตร: gpg --symmetric --armor.

  • สร้างบัญชีโฮสติ้ง git ฟรี

  • สร้างพื้นที่เก็บข้อมูลสาธารณะที่สามารถโคลนได้โดยไม่ต้องมีข้อมูลประจำตัว

  • ใส่ลูกทาร์เข้ารหัสและหุ้มเกราะไว้ที่นั่น

วิธีดึงข้อมูลหลังจาก "ความผิดพลาดไม่ดี":

  • บูตแท่ง USB แบบสด

  • โคลน repo สาธารณะ

  • gpg --decrypt.

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

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


4

ใช้ตัวเลือกฉันก็คือ: พิมพ์ที่สำคัญของคุณบนกระดาษ

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


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

ข้อดีคือมันทนทานกว่าและคุณสามารถตรวจสอบได้ว่ามันยังอ่านได้ด้วยตาของคุณเองโดยไม่ใช้คอมพิวเตอร์ หากฉันมีเงินดอลลาร์สำหรับฟลอปปี้ดิสก์ซีดีหรือดีวีดีที่ฉันใช้ซึ่งตอนนี้มีข้อผิดพลาดของข้อมูลที่ไม่สามารถกู้คืนได้ คุณไม่ต้องพิมพ์อะไรเลย! PaperBack พิมพ์เป็นรหัส 2D พร้อมเพิ่มการแก้ไขข้อผิดพลาด คุณเพียงสแกนหรือถ่ายภาพและโปรแกรมจะแปลงกลับเป็นสิ่งที่คุณให้มันพิมพ์ก่อน
Josef พูดว่า Reinstate Monica

แน่นอนว่าคุณยังมีเทคโนโลยีในการทำเช่นนั้น
แผนที่

ความน่าจะเป็นที่ฉันสามารถรับ Windows VM หรือ Linux พร้อมไวน์ได้อย่างง่ายดายพร้อมสำเนาของซอฟต์แวร์โอเพนซอร์ซในระยะเวลา 20 ปีนั้นในความคิดของฉันสูงกว่าความน่าจะเป็นที่ฉันจะได้รับฮาร์ดแวร์เพื่ออ่านฟลอปปี้ดิสก์ / ซีดี /ดีวีดี. เพียงสมมติผมว่าปี 1990 ตอนนี้ผมยังสามารถเรียกใช้ซอฟต์แวร์จากด้านหลังแล้วในเบราว์เซอร์ของฉัน แต่โชคดีที่ได้รับฮาร์ดแวร์ที่ช่วยให้คุณอ่านฟล็อปปี้ดิสก์ขนาด 5 1/4 นิ้วด้วยพีซีที่ทันสมัยของคุณ
Josef พูดว่า Reinstate Monica

2

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

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


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

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

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

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