มีเครื่องมือในการเข้ารหัสไฟล์หรือไดเรกทอรีหรือไม่?


66

วิธีที่นิยมที่สุดในการเข้ารหัสไฟล์หรือโฟลเดอร์แต่ละรายการคืออะไร?


คำถามไม่ชัดเจน คุณต้องการเข้ารหัสและถอดรหัสไฟล์ด้วยตนเองหรือไม่?
psusi

4
แทนที่จะเป็น 'ที่โด่งดังที่สุด' การหาทางออกให้เหมาะกับความต้องการของคุณอาจเป็นประโยชน์ (ตามคำถามของ psusi) คุณกำลังมองหาการรวมกันของง่าย, เชื่อถือได้, พื้นเมือง, ปลอดภัย, รวดเร็วและโอเพนซอร์สหรือไม่? ทั้งหมดหรือบางส่วน
belacqua

7
ฉันต้องการเพิ่มข้อสังเกตที่ตรงกันข้ามกับสิ่งที่คำตอบอ้างว่า TrueCrypt ไม่ถือเป็นซอฟต์แวร์ฟรีหรือโอเพ่นซอร์สโดย Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / etc
JanC

คำตอบ:


46

GnuPG (GPG) สามารถใช้การเข้ารหัสแบบอสมมาตรและสมมาตร การเข้ารหัสลับแบบอสมมาตรเกี่ยวข้องกับคีย์สองปุ่มกุญแจสาธารณะสำหรับการเข้ารหัสและคีย์ส่วนตัวสำหรับการถอดรหัส ดูคำตอบ djeikybในหน้านี้สำหรับการใช้คีย์แบบไม่สมมาตร

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

สำหรับรายละเอียดของ KDF GnuPG ของดูโพสต์นี้ Crypto Stack แลกเปลี่ยน ตัวอย่างการใช้การเข้ารหัสแบบสมมาตร:

gpg --symmetric < unencrypted_file > encrypted_file

ถอดรหัส:

gpg --decrypt < encrypted_file > decrypted_file

โปรดทราบว่าgpgแคช symkey โดยค่าเริ่มต้น (พฤติกรรมเอกสาร) เพื่อหลีกเลี่ยงที่จะใช้--no-symkey-cacheตัวเลือกตามที่อธิบายไว้ในคำตอบที่เกี่ยวข้อง

หน้าคู่มือของ GPG


คำตอบเก่าสำหรับผู้ใช้ที่สามารถเลือกคีย์ที่ดีได้โปรดดูหมายเหตุด้านล่าง

สำหรับไฟล์เดียวopensslมีประโยชน์มากโดยเฉพาะเมื่อส่งไฟล์ผ่านช่องทางที่ไม่ปลอดภัย (เช่นอีเมล) ได้ฟรี (เป็นเงินและเป็นอิสระ) ซึ่งแตกต่างจาก Truecrypt ซึ่งให้เงินฟรีเท่านั้น

หมายเหตุ : รหัสผ่านที่คุณป้อนที่นี่จะได้รับการประมวลผลโดยหนึ่ง MD5ซ้ำ1 หากคุณเลือกรหัสผ่าน "123456" คุณจะมีความปลอดภัยน้อยมาก

การเข้ารหัสลับ:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

คุณจะถูกขอรหัสผ่านซึ่งคุณต้องป้อนสองครั้ง

ถอดรหัส:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

หน้าคู่มือสำหรับโปรแกรมเข้ารหัส

1 openssl encใช้ฟังก์ชันย่อยที่กำหนดโดย-mdตัวเลือก (md5 ค่าเริ่มต้น) และเรียกฟังก์ชั่นEVP_BytesToKey()ที่มีการนับซ้ำ 1 นี้สามารถพบได้ในแหล่ง OpenSSL apps/enc.cที่


มีวิธีการทำเช่นนี้โดยไม่ passpharse หรือไม่?
Assaf Lavie

@Assaf Lavie: OpenSSL ไม่สนับสนุนไฟล์คีย์หากคุณหมายถึงแม้ว่าจะสามารถอ่านรหัสผ่านจากบรรทัดแรกของไฟล์ อ่านหน้าคู่มือในOpenSSL ส่วนผ่านการขัดแย้งวลี
Lekensteyn

นอกจากนี้คุณสามารถใช้แฟ
ล็

@ v2r หากต้องการเพิ่มสำหรับผู้อ่านเพิ่มเติม: -abase64-encodes อินพุต (นามแฝง-base64) เพื่อถอดรหัสคุณต้องเพิ่ม-aตัวเลือกด้วย
Lekensteyn

1
@Lucio aes-256เป็นนามแฝงสำหรับaes-256-cbcไม่มีความแตกต่าง CBCเป็นโหมดการทำงานสำหรับยันต์บล็อค ดูหน้าคู่มือของenc(1)รายการ ciphers ที่รองรับ
Lekensteyn

30

ฉันใช้ม้าน้ำสำหรับสิ่งนี้ นี่คือ Gnome front-end สำหรับ GnuPG และผสานรวมกับ nautilus ได้ดี:การรวม Nautilus

ในการรับการรวม nautilus ให้ติดตั้งแพคเกจseahorse-nautilusจาก Software Center: seahorse-nautilus ติดตั้งม้าน้ำ - หอยโข่ง


3
งานนี้เท่านั้นถ้าคุณมีปุ่ม GPGs สร้างขึ้นในระบบของคุณ ...
hhlp

3
@hhlp: คำตอบของ djeikyb อธิบายถึงวิธีการทำเช่นนั้น
idbrii

1
ฉันต้องการเข้ารหัสคีย์ GPG ของฉัน
KI4JGT

19
  • แอปเพล็ตถาดระบบ EncFS สำหรับcryptkeeper GNOME

TrueCrypt : ยกเลิกunsecureแหล่งที่มาใช้ได้ฟรีแวร์ดิสก์ซอฟต์แวร์การเข้ารหัส


2
+1, การเข้ารหัส - มีหรือไม่มี GUI - มีประโยชน์มากและเพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่
loevborg

3
Cryptkeeper นั้นยอดเยี่ยม - ง่ายมีประสิทธิภาพและง่ายต่อการติดตั้งด้วย Dropbox ( askubuntu.com/questions/19613/… )
Scaine

TrueCrypt ไม่ได้บรรจุใน Ubuntu (หรือการแจกจ่ายอื่น ๆ ที่สำคัญ) สำหรับข้อกังวลด้านลิขสิทธิ์
MagicFab

2
TrueCrypt ไม่ใช่โอเพ่นซอร์ส en.wikipedia.org/wiki/…
yuric

4
'คำเตือน: การใช้ TrueCrypt ไม่ปลอดภัย' - TrueCrypt
user457015

16

วิธีการ cli จะเป็นGnuPGและอาจจะ tar นี่คือคู่มือสั้น ๆ สำหรับการอ้างอิงคุณควรอ่านเอกสาร

gpg --gen-keyการทำงานครั้งแรก ทำตามคำแนะนำเพื่อสร้างคู่กุญแจสาธารณะ / ส่วนตัวของคุณ ตอนนี้คุณสามารถเข้ารหัสไฟล์: gpg -e foo.txt. foo.txt.gpgนี้จะสร้างไฟล์ที่เรียกว่า GnuPG ไม่ได้ลบไฟล์ที่ไม่ได้เข้ารหัสดั้งเดิมขึ้นอยู่กับคุณว่าคุณต้องการให้มันลอยอยู่หรือเปล่า การถอดรหัส foo.txt.gpg gpg foo.txt.gpgเรียกใช้ การถอดรหัสจะแจ้งให้คุณก่อนเขียนทับไฟล์ที่มีอยู่

หากคุณต้องการเข้ารหัสไดเรกทอรีให้ทาก่อน:

tar -cf foo.tar foo/
gpg -e foo.tar

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


2
ข้อดีของวิธีนี้คือ: ก่อนอื่นไม่จำเป็นต้องติดตั้งแพ็คเกจเพิ่มเติม ประการที่สองมันไม่จำเป็นต้องเข้าถึงราก ฉันจะเพิ่มการบีบอัดให้กับคำสั่ง tar (xz หรือ gz)
Panther

12

นอกจากนี้ยังมีeCryptfsซึ่ง Ubuntu ใช้ในการเข้ารหัส Home Directory

คุณสามารถเลือกการเข้ารหัสไดเรกทอรีบ้านที่ติดตั้งหรือคุณสามารถตั้งค่าไดเรกทอรีเดียว$HOME/Privateโดยค่าเริ่มต้นโดยใช้ยูทิลิตี้ecryptfs-setup-private โฟลเดอร์นี้สามารถกำหนดค่าให้เมาท์โดยอัตโนมัติเมื่อเข้าสู่ระบบและยกเลิกการต่อเชื่อมเมื่อออกจากระบบ ทุกไฟล์และโฟลเดอร์เดียวภายใน$HOME/Privateเรียกซ้ำจะถูกเข้ารหัส


น่าเสียดายที่ eCryptfs ช้ามาก นอกจากนี้ยังมีข้อบกพร่องเล็กน้อยในรุ่นล่าสุด
ruX

ในทางตรงกันข้ามหาก eCryptfs ใด ๆ เร็วกว่า gpg โดยค่าเริ่มต้น gpg จะพยายามบีบอัดก่อนเข้ารหัส และตอนนี้ eCryptfs นั้นถูกใช้โดย Android ส่วนใหญ่
Xen2050

2

นอกจากนี้คุณยังสามารถใช้ "ลายเซ็นเชิงวิชาการ" เพื่อใช้การเข้ารหัสแบบวงรีรูปไข่ด้วย wxWidgets GUI มันเป็นโอเพนซอร์ส แต่ไม่ได้อยู่ในที่เก็บ มันส่วนใหญ่จะเข้ารหัส ECC ไม่สมมาตรลายเซ็นและการประทับเวลา แต่เครื่องมือนี้ยังมีรายการเมนูสำหรับเรียกใช้ Gnupg (RSA) และการเข้าถึงโดยตรงไปยังการเข้ารหัสสมมาตรของไฟล์ที่เสนอ AES และอัลกอริธึมอื่น ๆ หน้าแรกของมันอยู่ที่นี่: https://www.academic-signature.org

ฉันใช้มันมากมายในการปกป้องไฟล์ระหว่างทางและสำหรับการเซ็นเอกสารทางวิชาการแบบดิจิทัล (ใบรับรองผลการเรียนตัวอักษรคำแนะนำรายการเกรด ฯลฯ )


1

ฉันได้รับคำแนะนำอื่น ๆ และสร้างเชลล์สคริปต์ง่ายๆ (สำหรับคนขี้เกียจ)

https://github.com/orionM/ssl-crypt-tools

สนุก


1
hmm, สคริปต์ทุบตีโดยใช้openssl aes-256-cbc ...คุณรู้ว่าแทนที่จะใช้if [ $? -ne 0 ] ; then... fiคุณสามารถใช้||? และมีบางคนที่คิดว่า OpenSSL "* มีข้อบกพร่องด้านความปลอดภัยที่สำคัญหลายอย่างในปีที่ผ่านมา [ Heartbleed ] ในขณะที่เอกสาร Snowden แสดงว่า GPG เป็นหนึ่งในไม่กี่โปรแกรมที่อาจทำให้ NSA เมื่อใช้งานอย่างถูกต้อง ส้วมซึมที่สมบูรณ์และมีการครอบคลุมการทดสอบที่แย่มาก (การเปิดเผย: [เขา] ทำงาน [s] ใน "OpenSSL sucks; มาซ่อมมันกันเถอะ" โปรเจค) - jbarlow * "
Xen2050
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.