วิธีพิมพ์รหัสผ่านของไฟล์. gpg เฉพาะเมื่อเปิด


17

(ฉันเข้าใจความหมายของความปลอดภัยต่อไปนี้และฉันไม่เป็นไร)

ฉันมีไฟล์เข้ารหัสหนึ่งไฟล์ในไดเรกทอรีองค์กรของฉัน, diary.org.gpg. ฉันไม่เคยกำหนดค่าพิเศษใด ๆ เพื่อให้ใช้งานได้

  1. เมื่อใดก็ตามที่ฉันเข้าชมไฟล์ฉันจะขอรหัสผ่านการเข้ารหัส อันไหนดี
  2. เมื่อใดก็ตามที่ฉันบันทึกบัฟเฟอร์ฉันจะขอรหัสผ่านอีกครั้งสองครั้ง ซึ่งเป็นปัญหาของฉัน

โปรดทราบว่าฉันไม่ได้กำหนดค่าใด ๆ เพื่อให้ใช้งานได้ดังนั้นคำตอบใด ๆ เกี่ยวกับตัวแทนหรือการป้อนรหัสจะต้องมาพร้อมกับคำแนะนำการกำหนดค่า

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

ถาม:ฉันจะส่งรหัสผ่านโดยตรงจาก Emacs ไปยังระบบ / กระบวนการเข้ารหัสได้อย่างไรเมื่อบันทึกบัฟเฟอร์แทนที่จะได้รับพร้อมท์

ส่วนที่เหลือทั้งหมด (ค้นหารหัสผ่านในบัฟเฟอร์) ฉันสามารถคิดออกเอง ฉันหลงทางเมื่อพยายามทำความเข้าใจว่า Emacs เชื่อมต่อกับ gpg อย่างไร

โปรดทราบว่าฉันใช้ Ubuntu, Arch Linux และ Windows นี่คือเหตุผลว่าทำไมความคิดแรกของฉันจึงเป็นวิธีแก้ปัญหา emacs-centric
ฉันสามารถใช้งานโซลูชันที่ไม่ทำงานบน Windows ได้ตราบใดที่ฉันยังสามารถเข้าถึงไฟล์ในแบบแมนนวลได้


ฉันคิดว่านี่: orgmode.org/worg/org-tutorials/encrypting-files.html#sec-5คือสิ่งที่คุณต้องการ (gpg-agent)
wvxvw

@wvxvw บางที มันไม่ได้พูดอะไรเกี่ยวกับการออมดังนั้นฉันจะต้องลองดู
Malabarba

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

คุณอาจต้องการตั้งค่าgpg-agentอย่างถูกต้องเพื่อให้แคชคีย์ในขณะ? :)
Günther Noack

1
@wvxvw อาจจะเคยเป็นกรณีหรือไม่ ฉันพบว่าหน้าคู่มือของเครื่องมือนั้นมีรายละเอียดที่ค่อนข้างยุติธรรมและอินเทอร์เฟซ (CLI) คือสิ่งที่เราคาดหวังจากโปรแกรมที่ใช้เทอร์มินัล
ตำนาน 2k

คำตอบ:


12

การเข้ารหัสโดยใช้รหัสผ่าน + แป้น

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

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

  • บันทึกด้านล่างที่ด้านบนของไฟล์. gpg ของคุณ

-*- epa-file-encrypt-to: ("your@email.address") -*-

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

สิ่งเดียวที่จับได้คือคุณจะต้องไม่สูญเสียไฟล์พวงกุญแจที่ถูกบันทึกไว้~/.gnupg/โดยค่าเริ่มต้น

การตั้งค่า GPG

การตั้งค่า emacs

ไม่จำเป็นต้องทำการตั้งค่าสำหรับสิ่งนี้ใน emacs

ติดตั้งระบบ

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

เมื่อทำการตั้งค่าฉันต้องติดตั้งสิ่งต่อไปนี้:

  • gpgme-1.5.3
  • libgpg ข้อผิดพลาด-1.17
  • libksba-1.3.2
  • libassuan-2.2.0
  • libgcrypt-1.6.2
  • GnuPG-2.0.26
  • pinentry-0.9.0

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

เมื่อติดตั้งทุกอย่างแล้วให้ทำ

> gpg --gen-key

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

รหัสที่สร้างขึ้นจะถูกบันทึกไว้ใน~/.gnupg/ไดเรกทอรีของคุณ

การเปลี่ยนตำแหน่งของพวงกุญแจ

คุณสามารถเปลี่ยนสถานที่ตั้งของพวงกุญแจโดยการเปลี่ยนแปลงอย่างใดอย่างหนึ่ง$GNUPGHOMEใช้--homedirหรือตัวเลือกสำหรับการ--keyringgpg

จากman gpg:

--keyring file

เพิ่มไฟล์ในรายการ keyrings ปัจจุบัน หากไฟล์เริ่มต้นด้วยเครื่องหมายตัวหนอนและเครื่องหมายทับไฟล์เหล่านี้จะถูกแทนที่ด้วยไดเรกทอรี $ HOME หากชื่อไฟล์ไม่มีเครื่องหมายทับจะถือว่าอยู่ในไดเรกทอรีหลักของ GnuPG ("~ / .gnupg" หาก --homedir หรือ $ GNUPGHOME ไม่ได้ใช้)

โปรดทราบว่าสิ่งนี้จะเพิ่มพวงกุญแจให้กับรายการปัจจุบัน หากเจตนาคือการใช้พวงกุญแจที่ระบุเพียงอย่างเดียวให้ใช้ - keyring พร้อมกับ --no-default-keyring

ใช้ GPG กับ emacs

ใน emacs คุณเพียงแค่สร้างไฟล์ที่มี.gpgนามสกุล ตัวอย่างเช่นถ้าไฟล์เดิมคุณจะเปลี่ยนชื่อไปauth.elauth.el.gpg

วางบรรทัดนี้ที่ด้านบนของไฟล์:

;; -*- epa-file-encrypt-to: ("your@email.address") -*-

โปรดทราบว่าฉันได้ใช้ Elisp ความคิดเห็นตัวอักษรเป็นไฟล์ตัวอย่างที่นี่คือ;;auth.el.gpg

ใช้ที่อยู่อีเมลที่แน่นอนที่คุณใช้ในช่วงเวลาของการสร้างคีย์

เมื่อคุณพยายามบันทึกมัน emacs จะแสดงพรอมต์นี้ในบัฟเฟอร์:

Select recipients for encryption.
If no one is selected, symmetric encryption will be performed.  
- `m' to mark a key on the line
- `u' to unmark a key on the line
[Cancel][OK]

  u <GPG KEY> <YOUR NAME> (<YOUR GPG KEY NAME>) <<YOUR GPG KEY EMAIL>>

mนำทางชี้ไปที่บรรทัดที่มีกุญแจสำคัญในการตี

นำทางชี้ไปที่ปุ่มและตี[OK]<return>

ตอนนี้คุณสามารถบันทึกไฟล์และฆ่าไฟล์บัฟเฟอร์นั้น

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

ข้อมูลเพิ่มเติม

  • นี่คือหนึ่งในบล็อกโพสต์ที่พูดถึง emacs และ GPG setup ซึ่งคุณสามารถอ้างอิงได้เช่นกัน
  • EasyPG - emacswiki.org

หากฉันทำไฟล์พวงกุญแจหายฉันจะยังสามารถเปิดไฟล์ที่เข้ารหัสด้วยรหัสผ่านปกติหรือมันจะหายไปตลอดกาลได้หรือไม่?
Malabarba

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

ฉันได้ทดสอบเอกสารที่เข้ารหัสแบบสมมาตรว่าสามารถพกพาได้ ฉันเข้ารหัสบางสิ่งใน emacs ใน Linux และเปิดโดยใช้หนึ่งในเครื่องมือถอดรหัสฟรีเดสก์จีพีจีฟรีมากมายสำหรับ windows มันขอพวงกุญแจและชี้ไปที่การสำรองข้อมูลของฉันใน Dropbox และใช้งานได้
Kaushal Modi

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

ดูเหมือนว่าฉันจะต้องไปกับคำตอบนี้หลังจากทั้งหมด คุณรู้หรือไม่ว่าฉันจะเปลี่ยนตำแหน่งของไฟล์พวงกุญแจได้อย่างไร
Malabarba

9

ปรากฎทั้งหมดที่ฉันต้องทำคือ

(setq epa-file-cache-passphrase-for-symmetric-encryption t)

โซลูชันนี้ใช้งานได้ทั้งบน Linux และ Windows และได้รับความอนุเคราะห์จาก Ted และ Michael ที่ help-gnu-emacs


ดีใจที่รู้ว่าสิ่งนี้เหมาะกับคุณ! ฉันมีการตั้งค่านี้ใน Emacs ของฉันตั้งค่าสำหรับปี แต่ในบางจุดมันก็หยุดทำงาน ฉันสงสัยว่ามันเกี่ยวข้องกับการใช้ gnome-keyring-daemon ของฉัน (ซึ่งทำหน้าที่เป็นพวงกุญแจ gpg ด้วย)
paprika

4
จาก docstring สำหรับepa-file-cache-passphrase-for-symmetric-encryption: "โปรดทราบว่าตัวเลือกนี้จะไม่มีผลหากคุณใช้ GnuPG 2.0"
Wilfred Hughes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.