มีระบบไฟล์แบบเขียนอย่างเข้ารหัสสำหรับ Linux หรือไม่


14

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

สิ่งนี้มีอยู่บน Linux หรือไม่? หรือถ้าไม่อะไรจะเป็นทางเลือกที่ดีที่สุดในการสร้างไฟล์บันทึกที่เข้ารหัส?

วิธีแก้ปัญหาปัจจุบันของฉันประกอบด้วยเพียงการไพพ์ข้อมูลผ่านgpg --encryptซึ่งใช้งานได้ แต่ยุ่งยากมากเนื่องจากคุณไม่สามารถเข้าถึงระบบไฟล์โดยรวมได้อย่างง่ายดายคุณต้องไพพ์แต่ละไฟล์gpg --decryptด้วยตนเอง


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

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

คำตอบ:


4

... ฉันต้องการให้ข้อมูลไม่สามารถเข้าถึงได้แม้ว่าระบบจะถูกโจมตีอย่างสมบูรณ์

สิ่งนี้เป็นไปไม่ได้ หากระบบนั้นถูกโจมตีอย่างสมบูรณ์ดังนั้นสิ่งที่ "ตามคำนิยาม" สามารถเข้าถึงได้ - รวมถึงคีย์เข้ารหัส

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

คุณต้องจัดส่งข้อมูลที่คุณต้องการป้องกันนอกระบบ + อย่าเขียนข้อมูลลงในสื่อกลางบนระบบนั้นหากคุณไม่ต้องการให้รูทเข้าระบบ rsyslogสนับสนุนสิ่งนี้อย่างชัดเจนเกี่ยวกับการบันทึกและคุณสามารถเข้ารหัสการเชื่อมต่อระหว่างแหล่งที่มาและซิงค์ด้วย OpenVPN stunnelหรือคล้ายกัน ฉันแน่ใจว่ามีตัวเลือกการโอน "ทางเดียว" อื่น ๆ



"เพราะพวกเขาต้องอาศัยอยู่ใน RAM เพื่อถอดรหัสระบบไฟล์" นี่อาจเป็นจริงกับ LUKS โดยเฉพาะ แต่ไม่ใช่โดยทั่วไป: asymmetric crypto ถูกออกแบบมาเพื่อจุดประสงค์นั้นอย่างแน่นอน (ผู้ที่ถือกุญแจสาธารณะสามารถเข้ารหัส แต่ไม่ถอดรหัส)
Clément

3

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


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

แน่นอนไฟล์นี้สามารถอยู่ในระบบไฟล์ที่เข้ารหัส


คุณสามารถเมาท์ระบบไฟล์ด้วย umask ที่กำหนดไม่อนุญาตให้ผู้ใช้เปลี่ยนการอนุญาต
nos

และมีเพียงเจ้าของไฟล์ (หรือ superuser) เท่านั้นที่สามารถเปลี่ยนการอนุญาต
กอริลลา

ฉันคิดว่า OP พยายามปกป้องตัวเองจากการถูกโจมตี
Clément

1
umask 0477 && touch file && echo test > file && cat file

มีประโยชน์เช่นกัน ไฟล์ใด ๆ ที่สร้างขึ้นภายในกระบวนการปัจจุบันจะมีโหมด 0200

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