เป็นวิธีที่ดีในการเข้ารหัสไฟล์บางไฟล์ในยูนิกซ์คืออะไร? [ปิด]


44

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

คำตอบ:


51

ฉันใช้เพียง GnuPG สำหรับงานนี้ โฟลเดอร์จะได้รับการบรรจุลงในไฟล์เก็บถาวร TAR-GZ ก่อน:

tar czf files.tar.gz /path/to/my/files

หากยังไม่เสร็จสิ้นคุณจะต้องสร้างคู่คีย์ส่วนตัว / สาธารณะ GPG ก่อน:

gpg --gen-key

ทำตามคำแนะนำ. ค่าเริ่มต้นควรเพียงพอสำหรับการทดสอบครั้งแรก สิ่งนี้จะปรากฏขึ้น:

gpg (GnuPG) 2.0.18; ลิขสิทธิ์ (C) 2011 มูลนิธิซอฟต์แวร์เสรี, Inc.
นี่เป็นซอฟต์แวร์ฟรี: คุณสามารถเปลี่ยนแปลงและแจกจ่ายต่อได้
ไม่มีการรับประกันตามขอบเขตที่กฎหมายอนุญาต

กรุณาเลือกประเภทของคีย์ที่คุณต้องการ:
   (1) RSA และ RSA (ค่าเริ่มต้น)
   (2) DSA และ Elgamal
   (3) DSA (ลงชื่อเท่านั้น)
   (4) RSA (ลงชื่อเท่านั้น)
การเลือกของคุณ? 1
คีย์ RSA อาจมีความยาวระหว่าง 1024 ถึง 4096 บิต
คุณต้องการคีย์izeแบบใด? (2048) 4096
ขนาดคีย์ที่ร้องขอคือ 4096 บิต
โปรดระบุว่าคีย์ควรมีอายุเท่าใด
         0 = รหัสไม่หมดอายุ
        = คีย์หมดอายุใน n วัน
      w = คีย์หมดอายุใน n สัปดาห์
      m = คีย์หมดอายุใน n เดือน
      y = คีย์หมดอายุใน n ปี
รหัสถูกต้องหรือ (0)
รหัสไม่หมดอายุเลย
ถูกต้องหรือไม่ (y / N) y

GnuPG ต้องสร้าง ID ผู้ใช้เพื่อระบุคีย์ของคุณ

ชื่อจริง: คีย์เข้ารหัสไฟล์
ที่อยู่อีเมล: admin@company.org
ความคิดเห็น: คีย์การเข้ารหัสไฟล์
คุณเลือก USER-ID นี้:
    "คีย์เข้ารหัสไฟล์ (คีย์เข้ารหัสไฟล์)"

เปลี่ยน (N) ame, (C) omment, (E) mail หรือ (O) kay / (Q) uit? โอ

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

หากทุกอย่างเสร็จสิ้นสิ่งนี้จะปรากฏบนหน้าจอของคุณ:

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

gpg: ตรวจสอบ trustdb
gpg: จำเป็นต้องมี 3 ส่วน, จำเป็นต้องกรอก 1 รายการ, โมเดลการเชื่อถือ PGP
gpg: ความลึก: 0 ที่ถูกต้อง: 1 ลงนาม: 0 ความไว้วางใจ: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      ลายนิ้วมือที่สำคัญ = **** **** **** **** **** **** **** **** **** ****
คีย์การเข้ารหัสไฟล์ uid (คีย์การเข้ารหัสไฟล์) 
ย่อย ***** / ******** 2013-03-19

ตอนนี้คุณอาจต้องการส่งออกพับลิกคีย์ไฟล์เพื่อนำเข้าบนเครื่องอื่น:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

นี่File Encryption Keyคือชื่อที่ฉันป้อนในระหว่างกระบวนการสร้างคีย์

ตอนนี้ฉันกำลังใช้ GnuPG กับไฟล์เก็บถาวรที่สร้างขึ้นใหม่:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

ตอนนี้คุณมีfiles.tar.gz.gpgไฟล์ที่เข้ารหัส

คุณสามารถถอดรหัสได้ด้วยคำสั่งต่อไปนี้ (คุณจะถูกถามรหัสผ่านของคุณ):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

นั่นคือเวทมนตร์ทั้งหมด

ให้แน่ใจว่าคุณสำรองคีย์ของคุณ! และอย่าลืมข้อความรหัสผ่านของคุณ! หากไม่ได้สำรองหรือลืมคุณมีกิกะไบต์ของข้อมูลขยะ!

สำรองคีย์ส่วนตัวของคุณด้วยคำสั่งนี้:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

ข้อดี

  • ผู้เข้ารหัสไม่จำเป็นต้องทราบข้อมูลที่ละเอียดอ่อนเกี่ยวกับการเข้ารหัส - การเข้ารหัสเสร็จสิ้นด้วยกุญแจสาธารณะ (คุณสามารถสร้างคู่กุญแจในเวิร์กสเตชันท้องถิ่นของคุณและโอนกุญแจสาธารณะไปยังเซิร์ฟเวอร์ของคุณเท่านั้น)
  • รหัสผ่านจะไม่ปรากฏในไฟล์สคริปต์หรืองาน
  • คุณสามารถมีตัวเข้ารหัสบนระบบใดก็ได้ที่คุณต้องการ
  • หากคุณเก็บคีย์ส่วนตัวและข้อความรหัสผ่านเป็นความลับทุกอย่างดีและยากที่จะประนีประนอม
  • คุณสามารถถอดรหัสด้วยไพรเวตคีย์บนแพลตฟอร์ม Unix, Windows และ Linux โดยใช้การนำ PGP / GPG ที่เฉพาะเจาะจงมาใช้
  • ไม่จำเป็นต้องมีสิทธิ์พิเศษในการเข้ารหัสและถอดรหัสระบบ, ไม่มีการติดตั้ง, ไม่มีคอนเทนเนอร์, ไม่มีระบบไฟล์พิเศษ

1
โปรดทราบว่าขึ้นอยู่กับข้อมูลมันอาจเร็วกว่าที่จะรันtarโดยไม่ใช้zสวิตช์เพื่อหลีกเลี่ยงการบีบอัดข้อมูล
l0b0

28

สำหรับส่วนของฉันฉันส่วนใหญ่ใช้สองวิธี:

วิธีแรก: tar และ openssl

ทาร์ไดเร็กทอรี

tar cvf backup.tar /path/to/folder

คุณสามารถลบสวิตช์ [v] ออกจากคำสั่ง tar เพื่อปิดโหมด verbose

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

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

คุณสามารถเปลี่ยน aes-128-cbc เป็นวิธีการเข้ารหัสอื่น ๆ openssl รองรับ (openssl --help)

ถอดรหัส

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

มันจะถามรหัสผ่าน

วิธีที่สอง: การเข้ารหัส zip

zip -r -0 -e backup.zip /path/to/folder

มันจะถามรหัสผ่าน

  • -r หมายถึงแบบเรียกซ้ำ (แผนผังโฟลเดอร์ทั้งหมด)
  • -0 หมายถึงร้านค้าเท่านั้น (ไม่บีบอัดเร็วขึ้น)
  • -e หมายถึงการเข้ารหัสที่เก็บถาวร

ข้อดีอย่างหนึ่งของสิ่งนี้: มันจะทำงานได้ดีขึ้นกับระบบที่ใช้ windows


3
การให้รหัสผ่านบนบรรทัดคำสั่งไม่ใช่ความคิดที่ดี รหัสผ่านยังคงอยู่ในประวัติเชลล์
pbies

1
ควรสังเกตว่าzipการเข้ารหัสนั้นมีข่าวลือว่าสามารถถอดรหัสได้
คิวเมนตัส

22

หากคุณไม่ต้องการเข้ารหัสไฟล์ของคุณด้วยคู่คีย์สาธารณะ / ส่วนตัวและใช้การเข้ารหัสแบบสมมาตรพร้อมวลีรหัสผ่านแทนให้ใช้คำสั่งต่อไปนี้:

gpg --symmetric --cipher-algo aes256 files.tar.gz

คุณจะถูกถามถึงวลีรหัสผ่าน หลังจากนั้นไฟล์ที่เข้ารหัสfiles.tar.gz.gpgจะถูกสร้างขึ้น

ในการถอดรหัสใช้คำสั่ง

gpg --decrypt files.tar.gz.gpg > files.tar.gz

2

คุณสามารถใช้โซลูชัน truecrypt ที่ง่ายและดีมาก มันมีแพ็คเกจสำหรับคอนโซลใช้เท่านั้น มันง่ายมากที่จะเรียนรู้และใช้งาน http://www.truecrypt.org


4
ตั้งแต่วันที่ 28 พฤษภาคม 2014 TrueCrypt ไม่มีอีกแล้ว ดูen.wikipedia.org/wiki/TrueCrypt
Bryce

2

สำหรับวัตถุประสงค์ดังกล่าวผมจะแนะนำการเข้ารหัส FUSE (เช่นEncFS ) - ข้อมูลขนาดเล็กที่ฉันจะใช้จีพีจี

มันถูกนำไปใช้ในพื้นที่ของผู้ใช้ดังนั้นคุณไม่ต้องการสิทธิ์พิเศษใด ๆ



1

วิธีง่ายๆในการเข้ารหัสไฟล์หนึ่งไฟล์คือ:

gpg -c filename.ext

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

gpg filename.ext.gpg

filename.extซึ่งจะสร้าง โปรดทราบว่าไฟล์ที่ไม่ได้เข้ารหัสจะไม่ปลอดภัยและข้อมูลที่เกี่ยวข้องจะยังคงอยู่ในสื่อจัดเก็บข้อมูลของคุณแม้หลังจากการลบ คอนเทนเนอร์ gpg เท่านั้นที่ปลอดภัย EncFSเป็นอีกทางเลือกที่ใช้งานได้จริงสำหรับการเข้ารหัสบนคลาวด์ที่ระดับไฟล์

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