บ้านเข้ารหัส eCryptfs - คำอธิบาย


9

ฉันพยายามเข้าใจว่า ecryptfs ทำงานอย่างไรภายในและเอกสารเกี่ยวกับ ecryptfs.org ไม่ได้ช่วย บางทีใครบางคนสามารถอธิบายว่ามันใช้งานได้จริงอย่างไร แน่นอนฉันรู้ถึงโครงสร้างไดเรกทอรี. Private / .ecryptfs ที่ซ่อนอยู่เหล่านี้ คำถามของฉันมีรายละเอียดเพิ่มเติม:

  • ระบบรู้ได้อย่างไรว่าบ้านของฉันถูกเข้ารหัสและถอดรหัสเมื่อฉันเข้าสู่ระบบ
  • มันจะค้นหาไดเรกทอรีหลักได้อย่างไร (ที่มีข้อมูลที่เข้ารหัสแล้วจุดเมานท์มัน (บางครั้งมันเป็นบ้านบางครั้ง / home / ส่วนตัว) ไดเรกทอรีที่มีวลีรหัสผ่านห่อ ฯลฯ ) โดยทั่วไปแล้วไดเรกทอรีเหล่านี้จะอยู่ใน /home/.ecryptfs/ และเชื่อมโยงเข้าไปในบ้าน คีย์ตำแหน่งใด ชื่อไดเรกทอรี ".ecryptfs" และ ".Private" ถูกสงวนไว้และฮาร์ดโค้ดหรือกำหนดค่าได้หรือไม่
  • เกี่ยวกับพวงกุญแจ: สมมติว่าฉันมีหลายคีย์ในพวงกุญแจของฉัน - มันจะจับคู่คีย์ที่เหมาะสมกับไดเรกทอรีที่เข้ารหัสได้อย่างไร

คำตอบ:


11

สิ่งนี้อธิบายถึงการตั้งค่าโฮมที่เข้ารหัสมาตรฐาน หากคุณต้องการใช้วลีรหัสผ่านหรือโฟลเดอร์อัลกอริทึมการเข้ารหัสขนาดคีย์ ฯลฯ ที่แตกต่างกันคุณสามารถใช้mount.ecryptfsโดยตรง

เมื่อคุณสร้างผู้ใช้ที่มีหน้าแรกที่เข้ารหัสหรือใช้ecryptfs-migrate-homeกับผู้ใช้ที่มีอยู่ก็จะใช้ eCryptfs และตั้งค่าไดเรกทอรี/home/.ecryptfs/ที่มีโฟลเดอร์ที่มี "บ้านจริง" ของผู้ใช้ใหม่/home/.ecryptfs/user/ประกอบด้วย:

  • ไฟล์ที่เข้ารหัสจริงของคุณใน/home/.ecryptfs/user/.Private/และไดเรกทอรี eCryptfs config /home/.ecryptfs/user/.ecryptfs/ประกอบด้วย:

    • auto-mount - หากมีอยู่มันจะบอกecryptfs-mount-privateให้ทำงานในการเข้าสู่ระบบการติดตั้งโฟลเดอร์ส่วนตัว (บ้าน) ดูman ecryptfs-mount-private

    • auto-umount - หากมีอยู่ระบบจะบอกecryptfs-umount-privateให้เรียกใช้เมื่อออกจากระบบโดยยกเลิกการต่อเชื่อมโฟลเดอร์ส่วนตัว (home) ดูman ecryptfs-umount-private

    • Private.mnt - ไฟล์กำหนดค่าที่อ่านโดยmount.ecryptfs_privateเข้าสู่ระบบที่กำหนดว่าควรจะติดตั้งไดเรคทอรี่ที่เข้ารหัสของคุณไว้ที่ใด หากคุณเข้ารหัสโฮมไดเร็กตอรี่ของคุณ$HOMEไว้
    • Private.sig - มีลายเซ็นของวลีรหัสผ่านของจุดติดตั้ง มันมีกลไกที่ปลอดภัยและปลอดภัยสำหรับ eCryptfs เพื่อตรวจสอบว่าคุณใช้คีย์ที่ถูกต้องหรือไม่ (ดูQ เกี่ยวกับ Private.sig และ Private.mnt )
    • wra -passphrase - eCryptfs passphrase ที่แท้จริง (สุ่ม), เข้ารหัส ("ถูกล้อม") ด้วย passphrase สำหรับล็อกอินของคุณ

ไดเรกทอรีบ้านปกติที่/home/user/มีเพียงการเชื่อมโยงไป /home/.ecryptfs/user/.ecryptfsและ/home/.ecryptfs/user/.Privateและสองการเชื่อมโยงต่อไปยังแฟ้มช่วยเหลือและ/usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(แค่วิ่งecryptfs-mount-private)

eCryptfs ตั้งค่าPAM (ดูไฟล์ใน/etc/pam.d/) เพื่อค้นหาโฟลเดอร์ภายในบ้านที่เข้ารหัสโดยอัตโนมัติ/home/.ecryptfs/และติดตั้ง & ขยายโฟลเดอร์บ้านที่เข้ารหัสในการเข้าสู่ระบบ / ออกจากระบบขึ้นอยู่กับว่ามีอยู่หรือไม่auto-mountและauto-umountไฟล์ ดูซอร์สโค้ด eCryptfs และสคริปต์ preinst และ postrm ของแพ็คเกจ (ลิงก์ด้านบน) สำหรับรายละเอียดเพิ่มเติมและคลิปนี้จากman ecryptfs-setup-private:

[T] เขา pam_ecryptfs.so โมดูลไปยังสแต็ค PAM ซึ่งจะใช้ข้อความรหัสผ่านเข้าสู่ระบบโดยอัตโนมัติเพื่อแกะข้อความรหัสผ่านที่เมานท์เพิ่มรหัสผ่านวลีรหัสผ่านเคอร์เนลของผู้ใช้และดำเนินการติดตั้งโดยอัตโนมัติ ดูที่ pam_ecryptfs (8)

  • หน้าความช่วยเหลือของ Ubuntu นี้มีคำแนะนำเกี่ยวกับวิธีการ " เมานต์ระบบไฟล์ที่เข้ารหัสโดยอัตโนมัติ ecryptfs ตอนบูต ... โดยใช้/root/.ecryptfsrcไฟล์ที่มีตัวเลือกการเมานท์พร้อมกับไฟล์รหัสผ่านที่อยู่ในคีย์ USB "

เมื่อแกะเสร็จแล้วคีย์จะถูกเก็บไว้ในเคอร์เนลผู้ใช้ของคุณคุณสามารถดูได้keyctl showเนื่องจากถ้าใช้รูทรูท ( sudo keyctl show) ผู้ดูแลระบบจะสามารถค้นหาวลีรหัสผ่านได้ คุณสามารถใช้ecryptfs-unwrap-passphraseเพื่อดูรหัสผ่าน ecryptfs จริง eCryptfs ถอดรหัสไฟล์ของคุณโดยใช้ลายเซ็นที่สำคัญการจับคู่ (ตัวเลือก ecryptfs ecryptfs_sig=(fekek_sig)และecryptfs_fnek_sig) Private.sigในแฟ้ม


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

อูบุนตูมีไฟล์ความช่วยเหลือที่ดีเช่นไฟล์ที่เข้ารหัสในบ้านของคุณและeCryptfs ในคู่มือ

Arch Linux มีความช่วยเหลือที่ดีเยี่ยมดูhttps://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

และเห็นmanหน้าสำหรับecryptfs(ออนไลน์หรือบนระบบของคุณ) ecryptfs-setup-privateและเครื่องมือทั้งหมดของมันโดยเฉพาะอย่างยิ่ง

คุณสามารถเพิ่มผู้ใช้ใหม่ด้วยหน้าแรกที่เข้ารหัสโดยใช้adduser --encrypt-home(สำหรับข้อมูลเพิ่มเติมอ้างถึงตัวเลือก -b ของecryptfs-setup-private) และดูวิธีการตั้งค่าไฟล์สำหรับตัวคุณเอง และเพื่อให้เท้าของคุณเปียกด้วยรายละเอียดทั้งหมดที่คุณอาจไม่อยากรู้ดูซอร์สโค้ด :


ใน / etc / crypttab ฉันมีเพียงหนึ่งแถวสำหรับ cryptswap; ไม่มีอะไรพิเศษใน fstab เช่นกัน บ้านของฉันถูกเข้ารหัส ยังไม่มีความคิดว่าระบบจะรู้ได้อย่างไรว่าบ้านของฉันได้รับการเข้ารหัสและจำเป็นต้องมีรหัสพิเศษเมื่อเข้าสู่ระบบ
ardabro

ฉันคิดว่ามันจะทำโดยอัตโนมัติเมื่อดูที่ @login คุณอ่านวิธีใช้ของ archlinux แล้วไม่มีอะไรในนั้นที่นั่นมีประโยชน์อะไรบ้าง? แต่โปรดนิยาม "sth พิเศษ" ฉันและ "Professor google" ไม่คุ้นเคย ย่อมาจาก "บางสิ่งที่พิเศษ"? เช่นอะไร?
Xen2050

sth พิเศษคือการใช้คีย์และติดตั้งไดเรกทอรีเข้ารหัสซึ่งเป็นเส้นทางพิเศษในกระบวนการเข้าสู่ระบบ Arch wiki มีประโยชน์มาก นอกจากนี้ฉันได้ทำการตรวจสอบบางอย่างในซอร์สโค้ด ecryptfs แต่ฉันก็ยังไม่รู้ว่าคำสั่ง "ถ้า" สำคัญในกระบวนการเข้าสู่ระบบคืออะไรและมันตรวจสอบอะไร
ardabro

ฟังดูคล้ายกับว่า linux จะค้นหาและใช้โฟลเดอร์บ้านใด ๆ ฉันคิดว่าข้อมูลบางอย่างถูกเก็บไว้ใน/etc/passwd(home & shell อย่างน้อย) ซึ่งดูแตกต่างจากผู้ใช้ที่เข้ารหัสภายในหรือไม่ ฉันจะเพิ่มข้อมูลเล็กน้อยเกี่ยวกับเคอร์เนลพวงกุญแจในคำตอบของฉันเช่นกัน ecryptfs เก็บกุญแจไว้ที่นั่น
Xen2050

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