การเข้ารหัสฮาร์ดไดรฟ์ของคุณใน Linux การเข้ารหัสพาร์ติชัน การเข้ารหัสข้อมูลใน Debian

ไม่เป็นความลับเลยที่ทุกวันนี้การเข้ารหัสข้อมูลอาจเป็นวิธีเดียวที่จะบันทึกได้ วันนี้เราจะได้เรียนรู้วิธีสร้างพาร์ติชันที่เข้ารหัสใน Linux โดยใช้มาตรฐาน luks (Linux Unified Key Setup) ฉันจะจัดเตรียมภาพหน้าจอจากระบบปฏิบัติการ CentOS Linux เป็นตัวอย่าง

ก่อนอื่นเรามาเตรียมส่วนที่เราจะเข้ารหัสกันก่อน ฉันสร้างดิสก์ใหม่ภายในเครื่องเสมือนของฉัน เชื่อมต่อกับอินเทอร์เฟซ SATA และอุปกรณ์ /dev/sdb ปรากฏในระบบ

มาสร้างส่วนหลักกัน:

#fdisk /dev/sdb

เราสร้าง 1 พาร์ติชัน (sdb1) โดยจัดสรรพื้นที่ว่างทั้งหมดให้กับมัน

เยี่ยมมาก ตอนนี้มาฟอร์แมตพาร์ติชัน /dev/sdb1 โดยใช้การป้องกันการเข้ารหัสโดยใช้ข้อความรหัสผ่าน เราจะถูกขอให้ป้อนรหัสผ่าน ทำซ้ำสองครั้งเพื่อไม่ให้เกิดข้อผิดพลาด

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

อัลกอริธึมเริ่มต้นคือ AES 256 บิต หากจำเป็น คุณสามารถเลือกอัลกอริธึมอื่นได้โดยการระบุคีย์ -c อัลกอริธึม -s ความยาวคีย์

# cryptsetup -c aes -s 1024 --verbose --verify-passphrase luksFormat /dev/sdb1

จากนั้นเราจะเปิดใช้งานคอนเทนเนอร์ crypto ภายใต้ชื่อ safe:

# cryptsetup luksOpen /dev/sdb1 ปลอดภัย


ด้วยเหตุนี้ เราจึงสร้างอุปกรณ์บล็อกใหม่ในไดเร็กทอรี /dev/mapper/ ด้วยชื่อ safe

สร้างระบบไฟล์:

# mkfs.ext3 /dev/mapper/safe


จะเป็นอย่างไรถ้าเราต้องการให้พาร์ติชันของเราเปิดใช้งานทุกครั้งที่ระบบเริ่มทำงาน (แน่นอนว่าต้องขอรหัสผ่าน)?

มาแก้ไขไฟล์ /etc/crypttab ซึ่งคล้ายกับ /etc/fstab กันดีกว่า

# กลุ่ม /etc/crypttab

มาเพิ่มบรรทัดตรงนั้น:

ปลอดภัย /dev/sdb1 ไม่มี

และในไฟล์ /etc/fstab มีดังต่อไปนี้:

/dev/mapper/safe /safe ext3 ค่าเริ่มต้น 0 0

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

มาเพิ่มคีย์อื่นในคอนเทนเนอร์ crypto

โดยรวมแล้วคุณสามารถสร้างได้มากถึง 8 ปุ่ม โดยแต่ละปุ่มจะพอดีกับช่องของตัวเอง


คุณสามารถแสดงช่องที่ถูกครอบครองได้ดังนี้:

# cryptsetup luksDump /dev/sdb1


อย่างที่คุณเห็นช่อง 0 และ 1 ว่างแล้ว สามารถใช้ไฟล์คีย์แทนรหัสผ่านได้

คุณสามารถแสดงสถานะของ cryptocontainer ได้ดังนี้:

# สถานะการเข้ารหัสลับปลอดภัย

ตัวอย่างการปฏิบัติ

วัตถุประสงค์: ปกป้องอุปกรณ์ USB ของคุณจากการสอดรู้สอดเห็น

เชื่อมต่อแฟลชไดรฟ์กับระบบของเรา:


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

ดังนั้นเราสามารถแบ่งพาร์ติชั่นแฟลชไดรฟ์โดยใช้ fdisk เราสามารถปล่อยมันไว้เหมือนเดิมได้

# cryptsetup luksFormat /dev/sdc

ป้อนข้อความรหัสผ่าน


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

# cryptsetup luksOpen /dev/sdc แฟลช

ตอนนี้เราจะถูกถามถึงข้อความรหัสผ่าน หลังจากป้อนว่าอุปกรณ์ใหม่ /dev/mapper/ จะปรากฏในระบบ<имя>ในกรณีของเราแฟลช

มาสร้างระบบไฟล์บนอุปกรณ์นี้กัน:

# mkfs.ext3 /dev/mapper/flash

พร้อม. ถึงเวลาสร้างคีย์ที่จะใช้ในการเข้าถึงอุปกรณ์แล้ว คุณสามารถเตรียมคีย์ได้หลายคีย์ (รวมสูงสุด 8 ช่อง แม้ว่าช่องที่ 0 จะถูกครอบครองโดยข้อความรหัสผ่านแล้ว แต่สามารถลบได้)

# dd if=/dev/urandom of=~/keyfile.key bs=1 count=256

ดังนั้นเราจะสร้างไฟล์ขนาด 256 ไบต์ที่เต็มไปด้วยตัวเลขสุ่ม คุณสามารถตรวจสอบได้ดังนี้:

# xxd ~/keyfile.key


จริงหรือ. สุ่มให้สมบูรณ์ ตอนนี้สิ่งที่เหลืออยู่คือการเพิ่มคีย์นี้ลงในแฟลชไดรฟ์ของเรา

มาปิดการใช้งานคอนเทนเนอร์ crypto กันตอนนี้

# cryptsetup luks ปิดแฟลช

เพิ่มรหัส:

# cryptsetup luksAddKey /dev/sdc ~/keyfile.key


เราจะได้รับแจ้งให้ป้อนข้อความรหัสผ่านเพื่อให้แน่ใจว่าเราสามารถเข้าถึงที่เก็บข้อมูลนี้ได้

# cryptsetup luksDump /dev/sdc

ยอดเยี่ยม! ตอนนี้มาบันทึกกุญแจไว้ในที่ปลอดภัย เราจะต้องใช้มันเพื่อเข้าถึงคอนเทนเนอร์

ตัวอย่างที่ 1

ผู้ใช้ “A” ต้องการอัปโหลดไฟล์ไปยังแฟลชไดรฟ์โดยทราบข้อความรหัสผ่าน:


เราปลดล็อคมันโดยใช้รหัสผ่าน สร้างอุปกรณ์ mydisk จากนั้นติดตั้ง mydisk ในโฮมไดเร็กตอรี่ สร้างไฟล์ข้อความ hello.txt พร้อมเนื้อหา คอนเทนเนอร์ถูกปิดใช้งาน

ตัวอย่างที่ 2


เราปลดล็อคมันโดยใช้ไฟล์กุญแจและสร้างอุปกรณ์ flashka เราติดตั้งมันในโฮมไดเร็กทอรีของผู้ใช้ sergey อ่านไฟล์ - ทุกอย่างเรียบร้อยดี!

: - รัสเซีย

การพัฒนาเพจเสร็จสมบูรณ์แล้ว

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

การเข้ารหัสข้อมูลใน Debian

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

การเข้ารหัสโดยใช้ cryptsetup

มาติดตั้งส่วนประกอบที่จำเป็น:

# apt-get ติดตั้ง cryptsetup

ไวยากรณ์มาตรฐาน

/dev/sda2- มาป้อนคำสั่งกัน:

# cryptsetup สร้าง sda2_crypt /dev/sda2

คำสั่งนี้จะสร้างการเชื่อมต่อที่เข้ารหัสไปยังดิสก์ของเรา ในแค็ตตาล็อก /dev/ผู้ทำแผนที่อุปกรณ์ใหม่จะปรากฏขึ้นพร้อมชื่อที่เราขอ: /dev/ผู้ทำแผนที่/sda2_cryptการเข้าถึงที่เราใช้การเข้าถึงดิสก์ที่เข้ารหัส ในกรณีของ LUKS จะเป็นชื่อ /dev/ผู้ทำแผนที่/sda2_crypt

หากมีระบบไฟล์บนดิสก์อยู่แล้ว และเราต้องการบันทึกข้อมูลในนั้น เราจำเป็นต้องเข้ารหัสเพื่อใช้ในภายหลัง:

# dd if=/dev/sda2 จาก=/dev/mapper/sda2_crypt

หากคุณสร้างดิสก์ใหม่บนพาร์ติชันว่าง คุณสามารถฟอร์แมตดิสก์ได้:

# mkfs.ext3 /dev/mapper/sda2_crypt

หลังจากนั้นคุณสามารถเมานต์ดิสก์นี้ได้ทุกที่:

# เมานต์ /dev/mapper/sda2_crypt /path/to/mount/point

ตรวจสอบความสมบูรณ์ของข้อมูล (ตามปกติ ควรใช้เฉพาะในสถานะที่ไม่ได้ต่อเชื่อมเท่านั้น):

# fsck.ext3 /dev/mapper/sda2_crypt

และแม้กระทั่งถอดรหัสกลับหากเราไม่ต้องการใช้การเข้ารหัสอีกต่อไป:

# dd if=/dev/mapper/sda2_crypt ของ=/dev/sda2

ไวยากรณ์ LUKS

ขั้นตอนข้างต้นสามารถทำได้ตามมาตรฐาน LUKS

เริ่มต้นส่วน:

cryptsetup luksFormat /dev/sda2

เราเชื่อมต่อกับระบบ:

cryptsetup luksOpen /dev/sda2 sda2_crypt.php

รูปแบบ:

mkfs.ext4 -v -L ข้อมูล /dev/mapper/sda2_crypt

เราเมานต์:

เมานต์ /dev/mapper/sda2_crypt /mnt/data

พาร์ติชันสามารถปิดใช้งานได้ด้วยตนเองบนระบบ

cryptsetup luksClose sda2_crypt

การเชื่อมต่อเมื่อเริ่มต้น

ไฟล์ที่ใช้เพื่อการนี้คือ การเข้ารหัสลับ.

สำหรับดิสก์ของเรา เราจะเขียนบรรทัดต่อไปนี้ลงไป:

nano /etc/crypttab # ชื่อพารามิเตอร์คีย์อุปกรณ์ mapper / ตัวเลือก # ด้วยไวยากรณ์มาตรฐาน sda2_crypt /dev/sda2 none aes-cbc-plain:sha256 # และ\หรือภายใต้มาตรฐาน LUKS sda2_crypt /dev/sda2 none luks

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

หากเราต้องการเมานต์ด้วยตนเอง เราจะเพิ่มตัวเลือก noautoในช่อง "พารามิเตอร์/ตัวเลือก"

การเชื่อมต่อพาร์ติชันที่เข้ารหัสด้วยตนเองโดยใช้ข้อมูลจาก /etc/crypttab

cryptdisks_start msda2_crypt

และตัดการเชื่อมต่อจาก fs ที่ติดตั้งไว้ล่วงหน้า

cryptdisks_stop sda2_crypt

หากต้องการเมานต์ fs บนพาร์ติชันที่เข้ารหัสที่เชื่อมต่อโดยอัตโนมัติ ให้เพิ่มบรรทัดไปที่ /etc/fstab

/dev/mapper/sda2_crypt /mnt/data ext4 ค่าเริ่มต้น 0 0

การทำงานกับคีย์ใน LUKS

พาร์ติชัน LUKS รองรับ 8 คีย์ที่แตกต่างกัน ซึ่งแต่ละคีย์มีขนาดพอดีกับช่องของตัวเอง

เราดูรายการคีย์ที่ใช้

การเข้ารหัสลับ luksDump /dev/sda2

LUKS สามารถใช้คีย์ได้ 2 ประเภท ได้แก่ ข้อความรหัสผ่านและไฟล์

คุณสามารถเพิ่มคำหลักได้

การเข้ารหัสลับ luksAddKey /dev/sda2

คุณสามารถเพิ่มไฟล์คีย์ (2048 บิต) และตั้งค่าสิทธิ์การเข้าถึงได้

dd if=/dev/urandom ของ=/root/ext2.key bs=512 count=4 cryptsetup luksAddKey /dev/sda2 /root/ext2.key chmod 400 /root/sda2.key cryptsetup -d /root/sda2.key luksOpen /dev/sda2 sda2_crypt.php

หากต้องการเชื่อมต่อเมื่อเริ่มใช้คีย์ ให้แก้ไข /etc/crypttab

นาโน /etc/crypttab sda2_crypt /dev/sda2 /root/sda2.key luks

คุณสามารถลบข้อความรหัสผ่านหรือคีย์ออกจากส่วนได้

การเข้ารหัสลับ luksKillSlot /dev/sda2 1

การติดตั้งฉุกเฉินในการจำหน่าย "ต่างประเทศ"

ไม่มีใครรอดพ้นจากปัญหาต่างๆ และบางครั้งคุณจำเป็นต้องเข้าถึงพาร์ติชันที่เข้ารหัสจากดิสก์ LiveCD ฉุกเฉิน

บูต เชื่อมต่อพาร์ติชันเข้ากับระบบและติดตั้ง fs:

cryptsetup luksOpen /dev/sda2 sda2_crypt mount -t ext4 /dev/mapper/sda2_crypt /mnt/สำรอง

หลังเลิกงาน ให้ถอนการต่อเชื่อม fs และตัดการเชื่อมต่อพาร์ติชันที่เข้ารหัสออกจากระบบ

umount /mnt/backup cryptsetup luksปิด sda2_crypt

ข้อความแสดงข้อผิดพลาดเมื่อปิดเครื่อง

หากพาร์ติชั่นรูทถูกเข้ารหัส ข้อความจะปรากฏขึ้นเมื่อปิดระบบ

การหยุดดิสก์เข้ารหัสลับในช่วงต้น... ล้มเหลว

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

สถานการณ์ที่คล้ายกันเกิดขึ้นเมื่อใช้ซอฟต์แวร์ RAID ที่มีพาร์ติชันรูท 8)

การเข้ารหัสโดยใช้โมดูล loop-aes

การเข้ารหัสพาร์ติชันฮาร์ดไดรฟ์หรือแฟลชไดรฟ์โดยใช้รหัสผ่าน

ในเรื่องนี้ วิธีวิธีการเข้ารหัสที่อธิบายไว้ AES256สามารถใช้วิธีอื่นในทำนองเดียวกันได้ (แทนที่ชื่อวิธีด้วยวิธีที่เหมาะสม) เราจะต้องมีแพ็คเกจดังต่อไปนี้:

# apt-get ติดตั้ง loop-aes-utils loop-aes-modules-`uname -r`

บันทึก: หากคุณใช้เคอร์เนลที่ที่เก็บไม่มีโมดูล loop-aes-modules ที่จำเป็น คุณสามารถติดตั้งโมดูลด้วยคำสั่งต่อไปนี้:

# apt-get ติดตั้งผู้ช่วยโมดูล loop-aes-source # ผู้ช่วยโมดูล a-i loop-aes

ระยะเริ่มแรก

ในระยะเริ่มแรก เราเตรียมดิสก์ให้ใช้งานได้โดยใช้การเข้ารหัส

ให้เราเลือกพาร์ติชั่นของดิสก์ (หรือแฟลชไดรฟ์) ที่เราต้องการเข้ารหัส เช่น มันจะเป็น /dev/sda2- มาป้อนคำสั่งกัน:

# losstup -e AES256 -T /dev/loop0 /dev/sda2

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

ตอนนี้เราสามารถฟอร์แมตอุปกรณ์ได้:

# mkfs.ext3 /dev/loop0

เราสามารถติดตั้งมันได้:

# mount /dev/loop0 /path/to/mount

เราสามารถปิดการใช้งานการเข้ารหัสได้:

# losstup -d /dev/loop0

และที่สำคัญที่สุดคือเราสามารถเข้ารหัสพาร์ติชั่นได้ ไม่มีการสูญเสียข้อมูล:

# dd if=/dev/sda2 จาก=/dev/loop0

และถอดรหัสด้วยหากเราตัดสินใจว่าการเข้ารหัสไม่ใช่วิธีการของเรา:

# dd if=/dev/loop0 จาก=/dev/sda2

ส่วนที่ดีที่สุดคือเราสามารถตรวจสอบความสมบูรณ์ของระบบไฟล์ได้:

# fsck.ext3 /dev/loop0

คุณลักษณะนี้ไม่สามารถใช้ได้ในทุกวิธีการเข้ารหัสพาร์ติชัน

ใช้ทุกวัน

หากคุณมีรายการเกี่ยวกับส่วนนี้แล้ว /dev/sda2ในตัวคุณ /etc/fstabจากนั้นคุณเพียงแค่ต้องเพิ่มตัวเลือกต่างๆ และหากไม่เป็นเช่นนั้น ให้เขียนดังนี้:

/dev/sda2 /path/to/mount ext3 วนซ้ำ, การเข้ารหัส = AES256 0 0

ตอนนี้เมื่อโหลดระบบปฏิบัติการ คุณจะถูกขอให้ใส่รหัสผ่านเพื่อติดตั้ง

หากคุณไม่ต้องการให้กระบวนการดาวน์โหลดถูกขัดจังหวะด้วยการร้องขอรหัสผ่าน คุณสามารถเพิ่มตัวเลือกได้ noauto,ผู้ใช้ในบันทึก /etc/fstab:

/dev/sda2 /path/to/mount ext3 loop,encryption=AES256,noauto,user 0 0

แน่นอนคุณสามารถเมานต์ได้ด้วยตนเอง (หรือจากสคริปต์):

# mount /dev/sda2 /path/to/mount -o loop,encryption=AES256

การติดตั้งระบบไฟล์หลายระบบ

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

สมมติว่าเรามีพาร์ติชันที่เข้ารหัส /dev/sda2ซึ่งเราเมานท์ลงในไดเร็กทอรีทุกครั้งที่เราบูต /mnt1- ฮาร์ดไดรฟ์ใหม่ปรากฏขึ้น /dev/sdb1และเราต้องการให้ติดตั้งลงในไดเร็กทอรีโดยอัตโนมัติ mnt2เมื่อติดตั้งอันแรก แน่นอนคุณสามารถสร้างระบบทั่วไปตามสิ่งที่ต้องการได้ แอลวีเอ็มอย่างไรก็ตาม คุณสามารถใช้เส้นทางที่ง่ายกว่า:

ลงทะเบียนใน fstabบางอย่างเช่นบรรทัดต่อไปนี้:

/dev/sda2 /mnt1 ext3 noatime,exec,loop,encryption=AES256 0 0 /dev/sdb1 /mnt2 ext3 noatime,exec,loop,encryption=AES256,cleartextkey=/mnt1/key.txt 0 0

เมื่อทำการโหลด ระบบจะเมานต์จุดต่างๆ ในลำดับเดียวกันกับที่อธิบายไว้ใน fstabดังนั้น หากไม่ได้เมาต์พาร์ติชันแรก คีย์สำหรับเมานต์พาร์ติชันที่สองจะยังคงไม่พร้อมใช้งาน และพาร์ติชันที่สองจะไม่เมานต์ด้วย

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

/dev/sda2 /mnt1 ext3 noatime,exec,loop,encryption=AES256 0 0 /dev/sdb1 /mnt2 ext3 noatime,exec,loop,encryption=AES256,gpgkey=/mnt1/key.gpg 0 0

หมายเหตุ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริธึมการเข้ารหัสที่รองรับ โปรดดูที่ ผู้ชายกำลังสูญเสียคุณสามารถดูคำอธิบายตัวเลือกโปรแกรมอื่นๆ ได้ที่นี่ สูญเสีย.

หากคุณประสบปัญหาในการติดตั้งโมดูล AES โปรดอ่านเอกสารประกอบที่มาพร้อมกับแพ็คเกจ วนซ้ำ-aes-แหล่งที่มา.

GRUB และดิสก์รูทที่เข้ารหัส

เมื่อติดตั้งพาร์ติชันรูทบนดิสก์ที่เข้ารหัส GRUB อาจแสดงข้อความเส็งเคร็งในเมนูหลัก สิ่งนี้เกิดขึ้นเนื่องจากแบบอักษรมาตรฐาน /usr/share/grub/unicode.pf2 ไม่พร้อมใช้งาน การคัดลอกแบบอักษร

cp /usr/share/grub/unicode.pf2 /boot/grub/

ระบุการตั้งค่า

นาโน /etc/default/grub GRUB_FONT=/boot/grub/unicode.pf2

ใช้การตั้งค่า:

อัปเดตด้วง

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

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

ประสิทธิภาพลดลงเล็กน้อย อย่างน้อยก็จนกว่าจะมีการใช้ SWAP SWAP เป็นพาร์ติชันดิสก์หรือไฟล์พิเศษที่ระบบปฏิบัติการจะย้าย RAM แต่ละบล็อกไปเมื่อมี RAM ไม่เพียงพอสำหรับการเรียกใช้แอปพลิเคชัน SWAP จะถูกเข้ารหัสเช่นกันหากคุณเลือกการเข้ารหัสของโฮมไดเร็กทอรีในตัวติดตั้ง และโหมดสลีปหยุดทำงาน

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

1.3 การเข้ารหัสใน gnome – Seahorse

Linux Mint มียูทิลิตี้รหัสผ่านและคีย์ในตัวหรือ Seahorse ด้วยความสามารถนี้ ผู้ใช้สามารถดำเนินการโดยใช้คีย์ รหัสผ่าน และใบรับรองทั้งหมดที่มีอยู่ในระบบปฏิบัติการนี้

โดยพื้นฐานแล้ว Seahorse เป็นแอปพลิเคชันสำหรับ GNOME (GNOME เป็นสภาพแวดล้อมเดสก์ท็อปฟรีสำหรับระบบปฏิบัติการที่คล้ายกับ Unix) ซึ่งเป็นส่วนหน้าของ GnuPG (โปรแกรมฟรีสำหรับการเข้ารหัสข้อมูลและสร้างลายเซ็นดิจิทัลอิเล็กทรอนิกส์) และได้รับการออกแบบมาเพื่อจัดการคีย์การเข้ารหัสและ รหัสผ่าน โดยมาแทนที่ GNOME Keyring ซึ่งถูกแทนที่โดยสิ้นเชิงใน GNOME 2.22 แม้ว่าจะมีการประกาศย้อนกลับไปใน GNOME 2.18 ก็ตาม ช่วยให้คุณสามารถดำเนินการทั้งหมดที่จำเป็นต้องทำก่อนหน้านี้บนบรรทัดคำสั่งและรวมไว้ภายใต้อินเทอร์เฟซเดียว:

    จัดการความปลอดภัยของสภาพแวดล้อมการทำงานของคุณและคีย์ OpenPGP และ SSH

    เข้ารหัส ขยาย และสแกนไฟล์และข้อความ

    เพิ่มและตรวจสอบลายเซ็นดิจิทัลลงในเอกสาร

    ซิงโครไนซ์คีย์กับเซิร์ฟเวอร์คีย์

    สร้างและเผยแพร่คีย์

    สำรองข้อมูลสำคัญ

    เพิ่มลงในรูปภาพใน GDK ที่รองรับเป็น ID รูปภาพ OpenGPG

1.4 ทรูคริปต์

TrueCrypt มีอินเทอร์เฟซแบบกราฟิกที่ค่อนข้างสะดวก แต่น่าเสียดายที่นักพัฒนาได้รวมฮาร์ดโค้ดกับตัวจัดการไฟล์ Nautilus ไว้ในโค้ด

คุณสามารถใช้วิธีต่างๆ เพื่อเข้ารหัสข้อมูลได้

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

การสร้างพาร์ติชั่น/ไฟล์ที่เข้ารหัส

การสร้างไฟล์คีย์:

truecrypt -create-keyfile /home/user/test/file ,โดยที่ file คือชื่อของไฟล์คีย์

การสร้างคอนเทนเนอร์ ในกรณีนี้คือส่วน:

sudo truecrypt -k /home/user/test/file -c /dev/sda9

แทนที่จะใช้พาร์ติชัน /dev/sda9 คุณยังสามารถระบุไฟล์ได้ เช่น /home/user/test/cryptofile แต่ในกรณีนี้ คุณจะต้องระบุขนาดของมัน โดยจะทำโดยใช้พารามิเตอร์ -size=5G ก่อน พารามิเตอร์ -c ตัวอย่างด้านบนจะสร้างไฟล์เข้ารหัสขนาด 5GB บางครั้ง TrueCrypt ยอมรับขนาดเป็นไบต์เท่านั้น สำหรับ 5 GB คุณสามารถคำนวณค่าล่วงหน้าและระบุ -size=5368709120 หรือเขียนดังนี้: -size=`echo 1024^3*5 | ก่อนคริสต์ศักราช

ไฟล์คีย์ที่สร้างไว้แล้วจะถูกใช้สำหรับการเข้ารหัส

เมื่อสร้าง คุณจะได้รับแจ้งให้เลือกประเภทคอนเทนเนอร์ (ปกติ/ซ่อน) ระบบไฟล์ (FAT, ext2/3/4 หรือไม่มี FS) ในตัวอย่างนี้ โหมดที่ไม่ใช้ FS ถูกเลือกไว้ คุณยังจะได้รับตัวเลือกอัลกอริธึมการเข้ารหัส (เช่น AES) รวมถึงอัลกอริธึมแฮช (เช่น SHA-1) สำหรับการเข้ารหัสสตรีมข้อมูล

TrueCrypt ใช้เพื่อเข้ารหัสข้อมูลได้ทันที กล่าวคือ คุณสามารถติดตั้งคอนเทนเนอร์และทำงานกับไฟล์ในนั้นได้ตามปกติ (เปิด/แก้ไข/ปิด/สร้าง/ลบ) ซึ่งสะดวกมาก

สร้างพาร์ติชัน/ไฟล์ที่เข้ารหัสแล้ว ตอนนี้ หากคุณต้องการฟอร์แมตระบบไฟล์ภายใน (ต่อไปนี้จะเรียกว่า FS) คุณควรดำเนินการดังต่อไปนี้

เลือกส่วนที่ต้องการโดยใช้ Truecrypt:

truecrypt -k /home/user/test/file /dev/sda9

ตามค่าเริ่มต้น อุปกรณ์ที่สร้าง Truecrypt /dev/mapper/truecrypt0 จะถูกใช้งาน เมื่อเข้าถึงอุปกรณ์นี้ คุณจะสามารถเปลี่ยน FS ในคอนเทนเนอร์ที่เข้ารหัสได้ เช่น ในกรณีนี้จำเป็นต้องทำสิ่งนี้

sudo mkfs.ext4 -v /dev/mapper/truecrypt0

นี่คือวิธีการสร้าง ext4 FS ภายในคอนเทนเนอร์ที่เข้ารหัสนี้

ต่อไป เนื่องจากคอนเทนเนอร์นี้ "แนบ" กับอุปกรณ์แล้ว /dev/mapper/truecrypt0 สิ่งที่เหลืออยู่คือเพียงติดตั้งมันเข้ากับไดเร็กทอรีบางส่วน ไดเร็กทอรีเมาต์นี้ต้องมีอยู่แล้วบนระบบ

sudo mount /dev/mapper/truecrypt0 /mnt/crypto.phpโดยที่ /mnt/crypto คือไดเร็กทอรีที่ติดตั้งคอนเทนเนอร์ที่เข้ารหัสไว้

ทรูคริปโต -d

ตอนนี้หากไม่ทราบไฟล์คีย์และรหัสผ่าน จะไม่มีใครสามารถอ่านข้อมูลที่ซ่อนอยู่ได้

การแนะนำ

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

ในเดือนธันวาคม พ.ศ. 2548 สถาบัน Ponemon ได้ทำการสำรวจผู้เชี่ยวชาญด้านความปลอดภัยของข้อมูลต่างๆ เกี่ยวกับการเข้ารหัสและการปกป้องข้อมูล ในบรรดาผู้ตอบแบบสอบถาม 6,298 ราย มีเพียง 4 เปอร์เซ็นต์ของผู้ตอบแบบสอบถามที่ใช้การเข้ารหัสทั่วทั้งองค์กร จากการสำรวจเดียวกัน มีเหตุผลหลักสามประการที่ทำให้มีการต่อต้านกฎการเข้ารหัสอย่างเป็นทางการอย่างต่อเนื่อง:

  • 69% ของผู้ตอบแบบสอบถามกล่าวถึงปัญหาด้านประสิทธิภาพ
  • 44% ของผู้ตอบแบบสอบถามกล่าวถึงปัญหาในการดำเนินการ
  • 25% ของผู้ตอบแบบสอบถามพูดถึงค่าใช้จ่ายสูงในการใช้อัลกอริธึมการเข้ารหัส

ในหลายประเทศ องค์กรต่างๆ ต้องเผชิญกับแรงกดดันหลายประการในการเพิ่มความโปร่งใสในการทำงาน แต่ในทางกลับกัน พวกเขามีความรับผิดชอบตามกฎหมายสำหรับความล้มเหลวในการรับรองความปลอดภัยของข้อมูลที่เป็นความลับ โดยเฉพาะกรณีของร้านรองเท้าของบริษัท DSW ในสหรัฐอเมริกา)

คณะกรรมาธิการการค้าแห่งสหพันธรัฐของสหรัฐอเมริกายื่นฟ้อง DSW โดยกล่าวหาว่าไม่สามารถจัดให้มีระดับความปลอดภัยของข้อมูลที่เพียงพอ และล้มเหลวในการใช้มาตรการที่เพียงพอเพื่อสร้างระบบที่เพียงพอเพื่อจำกัดการเข้าถึงข้อมูลนี้ รวมถึงการป้องกันการเชื่อมต่อเครือข่ายระหว่างร้านค้าและสำนักงานที่ไม่น่าพอใจ คอมพิวเตอร์ ในกรณีของ DSW อาชญากรสามารถเข้าถึงบัตรเครดิตประมาณ 1.4 ล้านใบและบัญชีเช็คประมาณ 96,000 บัญชีได้ และก่อนที่จะบรรลุข้อตกลงระหว่างบริษัทกับ FTC บัญชีเหล่านี้ได้ถูกนำไปใช้อย่างผิดกฎหมายแล้ว

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

ผู้บริโภคเริ่มคิดถึงอันตรายที่เกี่ยวข้องกับการขโมยข้อมูลส่วนบุคคล ข้อมูลเจ้าของ และหมายเลขบัตรเครดิตมากขึ้นเรื่อยๆ และความกลัวเหล่านี้มีสาเหตุมาจากรายงานการขายข้อมูลประเภทนี้จำนวนมหาศาลที่ถูกขโมยจากสถาบันที่ได้รับความไว้วางใจในข้อมูลอันมีค่าดังกล่าว

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

ปัญหาด้านเทคนิคการเข้ารหัส

จำเป็นต้องมีฟังก์ชันการเข้ารหัสในระบบคอมพิวเตอร์ที่มีผู้ใช้หลายรายสมัยใหม่ โดยที่ข้อมูล กระบวนการ และข้อมูลผู้ใช้จะถูกแยกออกจากกันตามตรรกะ ในการตรวจสอบผู้ใช้ในระบบดังกล่าว การเข้าสู่ระบบและรหัสผ่านจะถูกแฮชและเปรียบเทียบกับแฮชที่มีอยู่แล้วในระบบ (หรือแฮชถูกใช้เพื่อถอดรหัสคีย์เซสชัน ซึ่งจากนั้นจะถูกตรวจสอบความถูกต้อง) เพื่อป้องกันการดูข้อมูลส่วนบุคคลโดยไม่ได้รับอนุญาต แต่ละไฟล์หรือทั้งส่วนอาจถูกจัดเก็บไว้ในคอนเทนเนอร์ที่เข้ารหัส และโปรโตคอลเครือข่าย เช่น SSL\TLS และ IPSec อนุญาต หากจำเป็น เพื่อเสริมการป้องกันการเข้ารหัสของอุปกรณ์ต่างๆ (/dev/random, /dev/urandom ฯลฯ) โดยใช้อัลกอริธึมแบบโมดูลาร์ที่ทำงานร่วมกับเคอร์เนลระบบปฏิบัติการ .

เป้าหมายของเทคโนโลยีการเข้ารหัสดิสก์คือการป้องกันการเข้าถึงข้อมูลส่วนบุคคลโดยไม่พึงประสงค์ และเพื่อลดความเสียหายจากการสูญเสียทรัพย์สินทางปัญญาอันเนื่องมาจากการเข้าถึงที่ผิดกฎหมายหรือการโจรกรรมอุปกรณ์ทางกายภาพ ระบบปฏิบัติการ Linux พร้อมเคอร์เนลเวอร์ชัน 2.6.4 นำเสนอโครงสร้างพื้นฐานการเข้ารหัสขั้นสูงที่ปกป้องข้อมูลส่วนบุคคลของซอฟต์แวร์หลายชั้นอย่างง่ายดายและเชื่อถือได้ มีมาตรฐานทั้งหมดสำหรับการจัดเก็บข้อมูลที่เข้ารหัสในระดับต่ำ เช่น Linux Unified Key Setup (LUKS) และการใช้งานในระดับผู้ใช้ เช่น ระบบไฟล์ EncFS และ CryptoFS ซึ่งในทางกลับกันจะขึ้นอยู่กับ Fast Userspace ระบบไฟล์ (FUSE) สำหรับ Linux แน่นอนว่าระบบการเข้ารหัสใดๆ สามารถต้านทานการแฮ็กได้พอๆ กับรหัสผ่านและคีย์การเข้าถึงเท่านั้น การใช้เทคโนโลยีการเข้ารหัสมีสามระดับหลัก:

  • ระดับไฟล์และระบบไฟล์ (การเข้ารหัสไฟล์ต่อไฟล์, คอนเทนเนอร์ไฟล์);
  • ระดับบล็อกต่ำ (คอนเทนเนอร์พร้อมระบบไฟล์)
  • ระดับฮาร์ดแวร์ (อุปกรณ์เข้ารหัสเฉพาะ)

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

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

เทคโนโลยีการเข้ารหัสบางอย่างนั้นฟรีและรวมอยู่ในการแจกแจงหลายรายการ อย่างไรก็ตาม Windows เวอร์ชันล่าสุดมาพร้อมกับระบบไฟล์พิเศษที่รองรับ Encrypted File System (EFS) Fedora รองรับตัวเลือกการเข้ารหัสมากมาย รวมถึง LUKS (คุณสามารถเปิดใช้งานการรองรับ LUKS บน Windows ได้ หากคุณใช้ระบบไฟล์ FAT หรือ FAT32 และแอปพลิเคชัน FreeOTFE) และ FUSE และ EncFS มีอยู่ในแพ็คเกจพิเศษ CryptoFS ยังสามารถติดตั้งได้โดยการดาวน์โหลดจาก เว็บไซต์อย่างเป็นทางการ .

โครงสร้างพื้นฐาน FUSE ประกอบด้วยโมดูลเคอร์เนลที่โหลดได้และไลบรารีพื้นที่ผู้ใช้ที่ทำหน้าที่เป็นพื้นฐานสำหรับทั้งระบบไฟล์ CryptoFS และระบบไฟล์ที่เข้ารหัส (EncFS) ตามโครงสร้างแล้ว FUSE จะไม่ส่งผลกระทบต่อซอร์สโค้ดเคอร์เนลและในขณะเดียวกันก็ให้ความยืดหยุ่นสูงสำหรับการใช้งานส่วนเพิ่มเติมที่น่าสนใจมากมาย เช่น ระบบไฟล์ Secure Shell (SSHFS)

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

ระบบไฟล์ EncFS ยังเป็นการใช้งานพื้นที่ผู้ใช้โดยอิงตามไลบรารี FUSE ซึ่งให้การป้องกันการโจรกรรมข้อมูลและทำงานบนหลักการเข้ารหัสแบบไฟล์ต่อไฟล์ โดยสืบทอดโครงสร้างมาจากเวอร์ชันก่อนหน้า แต่มีการปรับปรุงทั้งรูปแบบและฟังก์ชัน ระบบไฟล์ EncFS สามารถขยายได้แบบไดนามิกเพื่อตอบสนองความต้องการของผู้ใช้ที่เพิ่มขึ้น ไฟล์สามารถเข้ารหัสตามพารามิเตอร์ต่างๆ (เช่น เมื่อเนื้อหาเปลี่ยนแปลง ตามคุณลักษณะ ฯลฯ) โดยพื้นฐานแล้ว พื้นที่จัดเก็บข้อมูลสำหรับ EncFS อาจเป็นอะไรก็ได้ตั้งแต่อิมเมจ ISO ไปจนถึงพาร์ติชันเครือข่าย หรือแม้แต่ระบบไฟล์แบบกระจาย

ระบบไฟล์ทั้งสองทำงานแบบ end-to-end และสามารถใช้บนระบบไฟล์อื่นๆ และนามธรรมเชิงตรรกะ เช่น ระบบไฟล์เจอร์นัลหรือแบบขยาย ซึ่งสามารถกระจายผ่านสื่อกายภาพหลายสื่อผ่านตัวจัดการโลจิคัลพาร์ติชัน (LVM) ). ภาพประกอบต่อไปนี้แสดงวิธีการทำงานของระบบไฟล์ตามแผนผัง: ในไดอะแกรมนี้ ไดเร็กทอรีที่มองเห็นจะมีป้ายกำกับว่า /mount (ชั้นข้อมูลข้อความธรรมดา EncFS)

การซ้อนทับ Userspace แสดงการโต้ตอบระหว่าง FUSE และ EncFS

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


LUKS ทำงานโดยไม่มีความรู้ที่แน่นอนเกี่ยวกับรูปแบบระบบไฟล์

LUKS ได้รับการออกแบบตาม Trusted Key Setup #1 (TKS1) และเข้ากันได้กับ Windows โดยใช้รูปแบบระบบไฟล์ทั่วไป (FAT/FAT32) ระบบนี้เหมาะอย่างยิ่งสำหรับผู้ใช้มือถือ รองรับการออกและเพิกถอนคีย์ Gnu Privacy Guard (GPG) และไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น LUKS มีความสามารถมากกว่าการใช้งานอื่นๆ ที่อธิบายไว้ในบทความนี้ นอกจากนี้ LUKS ยังสนับสนุนโซลูชันจำนวนมากสำหรับการสร้างและจัดการอุปกรณ์ที่เข้ารหัสของ LUKS

ระบบไฟล์ CryptoFS ยอมรับเฉพาะรหัสผ่าน ในขณะที่สื่อที่เข้ารหัสด้วย LUKS ใช้งานได้กับคีย์ PGP (Pretty Good Privacy) ใดๆ ที่มีรหัสผ่านจำนวนเท่าใดก็ได้ EncFS ยังใช้รหัสผ่านเพื่อป้องกันไฟล์ แต่จะเปิดคีย์ที่จัดเก็บไว้ในไดเร็กทอรีรากที่เกี่ยวข้อง

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

ทดสอบการกำหนดค่า

แพลตฟอร์มทดสอบของเราคือแล็ปท็อป Dell Latitude C610 ซึ่งล้าสมัยเล็กน้อย แต่ก็ยังเป็นตัวแทนของเทคโนโลยีสไตล์ปี 2002 ที่ค่อนข้างรวดเร็ว เมื่อใช้พลังงานจากแบตเตอรี่ C610 จะลดความถี่โปรเซสเซอร์ลงเหลือ 733 MHz ดังนั้นในระหว่างการทดสอบ เราไม่ได้ถอดปลั๊กแล็ปท็อปออกจากเต้ารับ ตารางต่อไปนี้แสดงการกำหนดค่าแล็ปท็อป

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

การติดตั้ง

LUKS, FUSE และ EncFS มีอยู่ใน Fedora ดังนั้นจึงไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม แต่จะต้องดาวน์โหลด CryptoFS แยกต่างหาก

การคอมไพล์ CryptoFS จากซอร์สโค้ดนั้นค่อนข้างง่าย คลายซิปไฟล์เก็บถาวร รันสคริปต์การกำหนดค่าในไดเร็กทอรีปลายทาง จากนั้นรัน make ดังที่แสดงในภาพประกอบ ไฟล์การกำหนดค่าประกอบด้วยพารามิเตอร์สี่ตัว ได้แก่ รหัสเข้ารหัส อัลกอริธึมการแยกข้อความ ขนาดบล็อก และจำนวนเกลือการเข้ารหัส


กระบวนการติดตั้งสำหรับ CryptoFS นั้นง่ายดาย

การตั้งค่าประกอบด้วยการระบุเส้นทางของไดเรกทอรีเริ่มต้นและสิ้นสุด (สำหรับข้อมูลที่เข้ารหัสและไม่ได้เข้ารหัส) จากนั้นคุณสามารถรันคำสั่ง cryptofs ได้ดังแสดงในรูปต่อไปนี้


การตั้งค่า CryptoFS

จากนั้นคุณสามารถรันคำสั่ง mount หลังจากนั้นคุณจะสามารถเห็นพาร์ติชันที่เมาท์ได้

ขั้นแรกตรวจสอบให้แน่ใจว่าได้โหลดโมดูลเคอร์เนล FUSE (ฟิวส์ modprobe) แล้ว EncFS ทำให้กระบวนการสร้างคอนเทนเนอร์ที่เข้ารหัสง่ายขึ้น ดังที่เห็นในภาพประกอบต่อไปนี้


หากคุณข้ามขั้นตอนการติดตั้งคีย์ (ซึ่งเฉพาะในแต่ละสถานการณ์) ก็สามารถกำหนดค่า LUKS ได้อย่างง่ายดายดังที่แสดงด้านล่าง


การทดสอบและการวิเคราะห์ประสิทธิภาพ

ความแตกต่างด้านประสิทธิภาพระหว่างการติดตั้งแบบเนทีฟและการติดตั้งในสภาพแวดล้อมที่เข้ารหัส LUKS นั้นค่อนข้างน้อย โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงความแตกต่างที่เห็นได้ชัดเจนระหว่างโซลูชันพื้นที่ผู้ใช้ ในการประเมินประสิทธิภาพของระบบไฟล์ที่เข้ารหัสทีละรายการ เราใช้ Iozone สำหรับการทดสอบ จะใช้บันทึกตั้งแต่ 4 KB ถึง 16 MB ขนาดไฟล์จะแตกต่างกันไปตั้งแต่ 64 KB ถึง 512 MB และผลลัพธ์จะแสดงเป็น KB/s

บทสรุป

อย่างน้อยที่สุดเมื่อใช้ LUKS คุณก็ไม่ต้องกังวลเรื่องประสิทธิภาพ แม้ว่าการสูญเสียประสิทธิภาพบางส่วนจะเกิดจากการเข้ารหัสข้อมูล "โปร่งใส" ก็ตาม ระบบ LUKS ติดตั้งง่ายและสะดวก และสามารถใช้ได้ทั้งบน Linux และ Windows

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

แต่คุณควรจำไว้ว่าการเข้ารหัสข้อมูลไม่ใช่ยาครอบจักรวาล เนื่องจากการเข้ารหัสดำเนินการอย่างโปร่งใส โปรแกรมโทรจันใดๆ ที่ทำงานในนามของผู้ใช้จึงสามารถเข้าถึงข้อมูลที่เข้ารหัสได้

ความเห็นของบรรณาธิการ

CryptoFS และ EncFS เป็นการใช้งานพื้นที่ผู้ใช้ ตามที่เราอธิบายไว้ก่อนหน้านี้ การออกแบบและการนำไปใช้งานนั้นเรียบง่าย แต่ต้องแลกมาด้วยประสิทธิภาพและความสามารถ สิ่งนี้ชัดเจนเป็นพิเศษเมื่อเปรียบเทียบกับ LUKS ไม่เพียงแต่เร็วขึ้นอย่างเห็นได้ชัด แต่ยังรองรับคีย์ PGP ตั้งแต่หนึ่งคีย์ขึ้นไปและสามารถใช้ได้ทั่วทั้งพาร์ติชัน

คอนเทนเนอร์ Userspace มีความสำคัญสำหรับผู้ใช้ที่ต้องการปกป้องข้อมูลส่วนบุคคลในสภาพแวดล้อมที่มีผู้ใช้หลายคนเป็นหลัก และใครบ้างที่ต้องปกป้องข้อมูลของตน แม้แต่ผู้ดูแลระบบก็ไม่สามารถเข้าถึงทรัพยากรฮาร์ดแวร์หรือซอฟต์แวร์ได้ นอกเหนือจากประโยชน์ด้านประสิทธิภาพและการรองรับข้ามแพลตฟอร์มแล้ว LUKS ยังทำงานร่วมกับระบบการจัดการคีย์ GNOME และ PGP ได้เป็นอย่างดี และความง่ายในการใช้งานพาร์ติชั่น LUKS ที่เข้ารหัสทุกวันนั้นน่าประทับใจมาก อย่างไรก็ตาม EncFS รองรับ Pluggable Authentication Module (PAM) ภายใต้ Linux ในสภาพแวดล้อมที่เหมาะสม


ผู้เขียน : นิธิศ ทิวารี
วันที่เผยแพร่: 04 กุมภาพันธ์ 2558
การแปล: N.Romodanov
วันที่แปล: มีนาคม 2558

TrueCrypt ไม่ได้รับการสนับสนุนอีกต่อไป แต่ dm-crypt และ LUKS เป็นตัวเลือกโอเพ่นซอร์สที่ยอดเยี่ยมสำหรับการเข้ารหัสและการใช้ข้อมูลที่เข้ารหัส

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

ในเดือนพฤษภาคมของปีนี้ การพัฒนา TrueCrypt ซึ่งเป็นเครื่องมือเข้ารหัสดิสก์โอเพ่นซอร์สที่รู้จักกันดีได้หยุดการพัฒนา อย่างที่หลาย ๆ คนรู้ดีว่านี่เป็นหนึ่งในเครื่องมือที่เชื่อถือได้ซึ่งออกแบบมาสำหรับการเข้ารหัสดิสก์ เป็นเรื่องน่าเศร้าที่เห็นเครื่องมือที่มีความสามารถขนาดนี้หายไป แต่ความยิ่งใหญ่ของโลกโอเพ่นซอร์สก็มีเครื่องมือโอเพ่นซอร์สอื่นๆ อีกหลายตัวที่สามารถช่วยให้คุณได้รับความปลอดภัยด้วยการเข้ารหัสดิสก์ที่มีตัวเลือกการกำหนดค่ามากมาย เราจะดูสองรายการ - dm-crypt และ LUKS - เป็นทางเลือกแทน TrueCrypt สำหรับแพลตฟอร์ม Linux เริ่มต้นด้วยการดู dm-crypt อย่างรวดเร็วแล้วตามด้วย LUKS

นี่คือข้อมูลพื้นฐานเกี่ยวกับอุปกรณ์ที่ใช้ LUKS ซึ่งระบุถึงการเข้ารหัสที่ใช้ โหมดการเข้ารหัส อัลกอริธึมแฮช และข้อมูลการเข้ารหัสอื่นๆ

ทรัพยากร

ขั้นตอนที่ 01:กำลังพิจารณา Dm-crypt

ชื่อแอป dm-crypt ย่อมาจาก device mapper-crypt ตามชื่อที่แนะนำ มันขึ้นอยู่กับการแมปอุปกรณ์ ซึ่งเป็นเฟรมเวิร์กเคอร์เนล Linux ที่ได้รับการออกแบบมาเพื่อแมปอุปกรณ์บล็อกกับอุปกรณ์บล็อกเสมือนระดับที่สูงกว่า เมื่อทำการแมปอุปกรณ์ คุณสามารถใช้ฟังก์ชันเคอร์เนลได้หลายอย่าง เช่น dm-cache (สร้างไดรฟ์ข้อมูลแบบไฮบริด), dm-verity (ออกแบบมาเพื่อตรวจสอบความสมบูรณ์ของบล็อก ซึ่งเป็นส่วนหนึ่งของ Chrome OS) และ Docker ที่ได้รับความนิยมอย่างมาก เพื่อวัตถุประสงค์ในการเข้ารหัส dm-crypt ใช้เฟรมเวิร์ก Crypto API ของเคอร์เนล Linux

โดยสรุป แอปพลิเคชัน dm-crypt คือระบบย่อยการเข้ารหัสระดับเคอร์เนลที่ให้การเข้ารหัสดิสก์แบบโปร่งใส ซึ่งหมายความว่าสามารถเข้าถึงไฟล์ได้ทันทีหลังจากติดตั้งดิสก์ - ผู้ใช้ปลายทางจะไม่เห็นความล่าช้า ในการเข้ารหัสโดยใช้ dm-crypt คุณสามารถระบุหนึ่งในการเข้ารหัสแบบสมมาตร โหมดการเข้ารหัส คีย์ (ทุกขนาดที่ถูกต้อง) โหมดการสร้าง IV จากนั้นสร้างอุปกรณ์บล็อกใหม่ใน /dev ตอนนี้ การเขียนใดๆ ลงในอุปกรณ์นี้จะถูกเข้ารหัส และการอ่านใดๆ จะถูกถอดรหัส คุณสามารถต่อเชื่อมระบบไฟล์บนอุปกรณ์นี้ได้ตามปกติ หรือคุณสามารถใช้อุปกรณ์ dm-crypt เพื่อสร้างการออกแบบอื่นๆ เช่น โวลุ่ม RAID หรือ LVM ตารางการค้นหา dm-crypt มีการกำหนดไว้ดังนี้:

ที่นี่ start-sector โดยทั่วไปจะเป็น 0 size คือขนาดอุปกรณ์ในภาคส่วน และชื่อเป้าหมายคือชื่อที่คุณต้องการตั้งให้กับอุปกรณ์ที่เข้ารหัส ตารางการแมปเป้าหมายประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:

[<#opt_params> ]

ขั้นตอนที่ 02:เมื่อพิจารณาถึง LUKS

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

ด้วยเหตุผลเหล่านี้เองที่เทคนิค LUKS (Linux Unified Key Setup) ถือกำเนิดขึ้น LUKS เป็นมาตรฐานการเข้ารหัสฮาร์ดไดรฟ์ Linux และการกำหนดมาตรฐานช่วยให้สามารถใช้งานร่วมกันได้ระหว่างการแจกแจงที่แตกต่างกัน รองรับการใช้คีย์และรหัสผ่านหลายรายการด้วย ในฐานะที่เป็นส่วนหนึ่งของมาตรฐานนี้ ส่วนหัว LUKS จะถูกเพิ่มลงในข้อมูลที่เข้ารหัส และส่วนหัวนี้ประกอบด้วยข้อมูลทั้งหมดที่จำเป็นสำหรับการกำหนดค่า เมื่อมีส่วนหัวพร้อมข้อมูล ผู้ใช้จึงสามารถสลับไปใช้การแจกจ่ายอื่นได้อย่างง่ายดาย ปัจจุบันโครงการ dm-crypt ขอแนะนำให้ใช้ LUKS เป็นวิธีที่ต้องการในการกำหนดค่าการเข้ารหัสดิสก์ มาดูวิธีการติดตั้งยูทิลิตี้ cryptsetup และวิธีใช้เพื่อสร้างโวลุ่มแบบ LUKS

ขั้นตอนที่ 03:การติดตั้ง

ฟังก์ชันระดับเคอร์เนลที่ใช้ใน dm-crypt มีอยู่แล้วในลีนุกซ์รุ่นต่างๆ; เราต้องการเพียงอินเทอร์เฟซสำหรับพวกเขาเท่านั้น เราจะใช้ยูทิลิตี้ cryptsetup ซึ่งคุณสามารถสร้างโวลุ่มโดยใช้ dm-crypt ซึ่งเป็นมาตรฐาน LUKS รวมถึงแอปพลิเคชัน TrueCrypt รุ่นเก่าที่ดี หากต้องการติดตั้ง cryptsetup บนการแจกแจง Debian/Ubuntu คุณสามารถใช้คำสั่งต่อไปนี้:

$ sudo apt-get อัปเดต $ sudo apt-get ติดตั้ง cryptsetup

คำสั่งแรกซิงโครไนซ์ไฟล์ดัชนีจรวดกับเนื้อหาของที่เก็บ: รับข้อมูลเกี่ยวกับเวอร์ชันล่าสุดของแพ็คเกจที่มีอยู่ทั้งหมด คำสั่งที่สองจะดาวน์โหลดและติดตั้งแพ็คเกจ cryptsetup บนคอมพิวเตอร์ของคุณ หากคุณใช้การกระจาย RHEL/Fedora/CentOS คุณสามารถใช้คำสั่ง yum เพื่อติดตั้งยูทิลิตี้ cryptsetup

$ yum ติดตั้ง cryptsetup-luks

ขั้นตอนที่ 04:การสร้างไฟล์เป้าหมาย

เมื่อติดตั้งยูทิลิตี้ cryptsetup สำเร็จแล้ว เราต้องสร้างไฟล์เป้าหมายที่จะจัดเก็บคอนเทนเนอร์ LUKS แม้ว่าจะมีหลายวิธีในการสร้างไฟล์ดังกล่าว แต่ก็มีเงื่อนไขหลายประการที่ต้องปฏิบัติตามเมื่อสร้างไฟล์:

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

คำสั่ง dd สามารถช่วยให้เราสร้างไฟล์ที่ตรงตามเงื่อนไขข้างต้นได้ แม้ว่าจะค่อนข้างช้าก็ตาม เพียงใช้กับไฟล์อุปกรณ์พิเศษ /dev/random ที่ระบุเป็นอินพุต และไฟล์เป้าหมายที่ระบุเป็นเอาต์พุต คำสั่งตัวอย่างมีลักษณะดังนี้:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M นับ=128

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

ขั้นตอนที่ 05:สร้าง LUKS dm-crypt

เมื่อคุณสร้างไฟล์เป้าหมายแล้ว คุณจะต้องสร้างพาร์ติชัน LUKS ในไฟล์นั้น ส่วนนี้ทำหน้าที่เป็นชั้นฐานที่สร้างการเข้ารหัสข้อมูลทั้งหมด นอกจากนี้ ส่วนหัวของส่วนนี้ (ส่วนหัว LUKS) ยังมีข้อมูลทั้งหมดที่จำเป็นสำหรับความเข้ากันได้กับอุปกรณ์อื่น หากต้องการสร้างพาร์ติชัน LUKS ให้ใช้คำสั่ง cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

เมื่อคุณตกลงว่าข้อมูลภายในไฟล์ฐานจะถูกลบอย่างถาวร ป้อนข้อความรหัสผ่าน จากนั้นยืนยัน พาร์ติชัน LUKS จะถูกสร้างขึ้น คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยคำสั่งไฟล์ต่อไปนี้:

$filebasefile

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

ขั้นตอนที่ 06:สร้างและเมานต์ระบบไฟล์

ขณะนี้คอนเทนเนอร์ LUKS ที่เราสร้างในขั้นตอนก่อนหน้าพร้อมให้ใช้งานในรูปแบบไฟล์แล้ว ในตัวอย่างของเรา นี่คือ /home/nitish/basefile ยูทิลิตี้ cryptsetup ช่วยให้คุณสามารถเปิดคอนเทนเนอร์ LUKS เป็นอุปกรณ์อิสระ เมื่อต้องการทำเช่นนี้ อันดับแรกแมปไฟล์คอนเทนเนอร์กับชื่ออุปกรณ์ จากนั้นจึงต่อเชื่อมอุปกรณ์ คำสั่งแสดงมีลักษณะดังนี้:

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

ขั้นตอนที่ 07:ระบบไฟล์ - ต่อ

ขณะนี้ไฟล์คอนเทนเนอร์ LUKS พร้อมใช้งานบนระบบในฐานะอุปกรณ์ปกติ ก่อนที่เราจะใช้มันสำหรับการดำเนินการตามปกติ เราต้องฟอร์แมตมันและสร้างระบบไฟล์ก่อน คุณสามารถใช้ระบบไฟล์ใดก็ได้ที่ได้รับการสนับสนุนบนระบบของคุณ ในตัวอย่างของฉัน เราใช้ ext4 เพราะเป็นระบบไฟล์ใหม่ล่าสุดสำหรับระบบ Linux

$ mkfs.ext4 -j /dev/mapper/volume1

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

$mkdir/mnt/files

ตอนนี้มาเมานต์:

หากต้องการตรวจสอบข้าม ให้ใช้คำสั่ง df –h คุณจะเห็นอุปกรณ์ "/dev/mapper/volume1" ที่ท้ายรายการอุปกรณ์ที่เมาท์ จะเห็นได้ว่าส่วนหัว LUKS กินพื้นที่ในอุปกรณ์ไปแล้ว

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

ขั้นตอนที่ 08:การใช้ไดรฟ์ที่เข้ารหัส

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

หากต้องการเข้าถึงไฟล์ LUKS ของคุณ ให้ทำดังต่อไปนี้ทุกครั้งที่คุณเปิดคอมพิวเตอร์ จากนั้นปิดไฟล์อย่างปลอดภัยก่อนปิดคอมพิวเตอร์:

เปิดไฟล์ LUKS (เช่น /home/nitish/basefile) และป้อนรหัสผ่าน คำสั่งมีลักษณะดังนี้:

$ cryptsetup luksOpen /home/nitish/basefile เล่มที่ 1

เมื่อเปิดไฟล์แล้ว ให้เมานต์มัน (หากไฟล์ไม่เมาต์โดยอัตโนมัติ):

$ เมานต์ /dev/mapper/volume1 /mnt/files

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

เมื่อเสร็จแล้ว ให้ยกเลิกการต่อเชื่อมอุปกรณ์ดังนี้:

$ จำนวน /mnt/files

หลังจากยกเลิกการต่อเชื่อมสำเร็จ ให้ปิดไฟล์ LUKS:

$cryptsetup luksปิดปริมาณ1

ขั้นตอนที่ 09:สำรองข้อมูล

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

หากต้องการสร้างการสำรองข้อมูลของไฟล์ส่วนหัว LUKS ให้ระบุพารามิเตอร์ luksHeaderBackup ในคำสั่ง:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

หรือหากคุณต้องการกู้คืนไฟล์จากข้อมูลสำรอง ให้ระบุพารามิเตอร์ luksHeaderRestore ในคำสั่ง:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

หากต้องการตรวจสอบไฟล์ส่วนหัว LUKS และตรวจสอบให้แน่ใจว่าไฟล์ที่คุณกำลังจัดการนั้นสอดคล้องกับอุปกรณ์ LUKS จริง คุณสามารถใช้พารามิเตอร์ isLuks

$ sudo cryptsetup -v isLuks /home/nitish/basefile

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

$ cat /home/nish/basefile > basefile.img

ขั้นตอนที่ 10:การตั้งค่าต่างๆ

มีการตั้งค่าอื่นๆ หลายประการที่อาจเป็นประโยชน์เมื่อใช้การเข้ารหัส LUKS dm-crypt มาดูพวกเขากันดีกว่า

หากต้องการดัมพ์ส่วนหัว LUKS คำสั่ง cryptsetup จะมีตัวเลือก luksDump จะช่วยให้คุณสามารถถ่ายภาพไฟล์ส่วนหัว LUKS ของอุปกรณ์ที่คุณใช้ได้ คำสั่งตัวอย่างมีลักษณะดังนี้:

$ cryptsetup luksDump /home/nitish/basefile.php

ในตอนต้นของบทความนี้ เราได้กล่าวถึงว่า LUKS รองรับหลายคีย์ เรามาดูการดำเนินการนี้กันตอนนี้โดยการเพิ่มช่องคีย์ใหม่ ( หมายเหตุผู้แปล: ช่องคีย์ - พื้นที่คีย์):

$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile

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

คุณสามารถลบช่องกุญแจได้ดังนี้:

$ cryptsetup luksRemoveKey /home/nitish/basefile.php

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