การเข้ารหัสดิสก์แบบเต็มพร้อมการพิสูจน์ตัวจริงด้วยรหัสผ่านใน Linux


16

ฉันมีการตั้งค่าการเข้ารหัสดิสก์มาตรฐานที่เป็นธรรมใน Debian 5.0.5: /bootพาร์ติชันที่ไม่ได้เข้ารหัสและเข้ารหัสsdaX_cryptที่มีพาร์ติชันอื่นทั้งหมด

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

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

อย่างที่ฉันเห็นมันเป็นปัญหาของมัน

  1. ฉันต้องใช้เวลาในการหาบิตและชิ้นส่วนทั้งหมดเพื่อให้ทำงานได้
  2. หากมีการอัปเดตซึ่งสร้างใหม่initrdฉันต้องสร้างพาร์ติชันสำหรับบู๊ตบน USB ใหม่ซึ่งน่าเบื่อ

คำถาม: มีโซลูชั่น low-upkeep แบบมาตรฐานสำหรับสิ่งที่ฉันต้องการทำหรือไม่? หรือฉันควรมองที่อื่นทั้งหมด?

คำตอบ:


7

คุณสามารถตั้งค่าระบบของคุณให้ใช้รหัสแทนรหัสผ่านและเปลี่ยนสคริปต์เพื่อค้นหาคีย์นี้ในแท่ง USB ฉันพบคำอธิบายโดยละเอียดสำหรับกระบวนการนี้ใน Debian Lenny ในตอนท้ายมีบันทึกย่อบางส่วนที่อธิบายถึงการเปลี่ยนแปลงที่จำเป็นสำหรับ Debian รุ่นใหม่


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

ตกลงแม้ว่าจะไม่มีวิธี "มาตรฐาน" แต่ดูเหมือนว่าจะใช้ได้
Alex B

5

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

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

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

ก็สงสารผมไม่เคยเห็น Trusted Computing นำไปใด ๆใช้งานที่ดีซึ่งอันที่จริงอาจจะเป็นประโยชน์สำหรับผู้ใช้


ที่สำคัญคือไม่มากวางรอบใน plaintext กว่า SSH สำคัญของคุณวางรอบใน plaintext ~/.sshใน ฉันแค่ต้องการที่จะบูทเซิร์ฟเวอร์หัวขาดที่มีการเข้ารหัสดิสก์เต็มรูปแบบและนำกุญแจออกมา ฉันรู้ว่าผู้โจมตีสามารถปรับเปลี่ยนพาร์ติชั่นบู๊ตที่ไม่ได้เข้ารหัสและขโมยกุญแจได้ (เช่นเดียวกับเวอร์ชั่นรหัสผ่านปกติของซอฟต์แวร์) แต่ฉันแค่ป้องกันการโจรกรรม
Alex B

อันที่จริงแล้ว TPM กลับมาจาก DRM และกับรัฐบาลและองค์กรต่างๆ มีระบบปฏิบัติการมากมายที่สามารถใช้เพื่อเก็บรหัสลับฉันไม่รู้ว่ามีระบบป้องกันความสมบูรณ์หรือไม่ (เช่นไม่ให้ผู้โจมตีแทรก keylogger ใน/boot)
Gilles 'หยุดความชั่วร้าย'

@AlexB: เซิร์ฟเวอร์ของคุณมี TPM หรือไม่ ถ้าเป็นเช่นนั้นคุณอาจจะสามารถทำในสิ่งที่คุณต้องการด้วยTrusted ด้วง
Gilles 'หยุดความชั่วร้าย'

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

@strugee: ถ้าคุณใช้ LUKS การ zeroing out ส่วนหัว LUKS จะทำให้ทั้งเล่มไม่สามารถกู้คืนได้ หากคุณใช้ dm-crypt ธรรมดาที่ไม่มีส่วนหัวแล้วใช่มันยังคงสามารถกู้คืนได้ในภายหลังด้วยรหัสผ่าน
Jay Sullivan

5

Mandos (ซึ่งฉันและคนอื่น ๆ เขียน) แก้ปัญหานี้ได้ดีมาก:

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

กล่าวโดยสรุปเซิร์ฟเวอร์การบูตจะได้รับรหัสผ่านบนเครือข่ายอย่างปลอดภัย ดู README สำหรับรายละเอียด


1
แม้ว่าซอฟต์แวร์ฟรีนี้ระบุว่านี่เป็นผลิตภัณฑ์ของคุณจะได้รับการชื่นชมถ้าไม่จำเป็นจริงๆ ลิงก์ README / FAQ ที่อ่านได้มากขึ้นและคำอธิบายสั้น ๆ เกี่ยวกับวิธีการทำงานของ Mandos ก็จะได้รับการชื่นชมเช่นกัน
Gilles 'หยุดความชั่วร้าย'

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