ฉันสามารถปิดใช้งานการเข้ารหัสดิสก์เต็มรูปแบบได้หรือไม่


41

ฉันเพิ่งติดตั้ง Ubuntu 12.10 และต้องใช้วลีรหัสผ่านเพื่อบู๊ต (ฉันติดตั้งด้วยระบบไฟล์ที่เข้ารหัส)

ฉันต้องติดตั้งใหม่เพื่อเปลี่ยนเป็นระบบไฟล์ที่ไม่ได้เข้ารหัสแบบมาตรฐานหรือไม่?


คุณเข้ารหัสการติดตั้ง Ubuntu ทั้งหมดหรือเพียงแค่ไดเรกทอรีบ้านของคุณ
Flimm

ฉันเข้ารหัสระหว่างการติดตั้งดังนั้นฉันจึงคาดเดาการติดตั้งทั้งหมด
Zzealdor

3
ฉันเป็นผู้ใช้ใหม่ดังนั้นฉันไม่แน่ใจว่าสิ่งต่าง ๆ ทำงานบน Linux ได้อย่างไร (เบื่อหน่ายกับ Microsoft ทั้งหมด)
Zzealdor

@ Rinzwind อาจจะไม่ วิธีนี้ (ecryptfs) เข้ารหัสโฮมไดเรกทอรีและไม่ต้องการรหัสผ่านเพิ่มเติม ใช้รหัสผ่านการเข้าสู่ระบบ
Jan

1
@ user163872: Ubuntu รุ่นใหม่ (12 และ 13) ช้ามากในคอมพิวเตอร์เก่าเช่นเน็ตบุ๊ค คุณควรติดตั้ง Lubuntu ซึ่งออกแบบมาเพื่อความเร็วและรันได้อย่างรวดเร็วบนคอมพิวเตอร์เก่า / ช้าลงแม้มี RAM ต่ำ (เช่น 512MB) Lubuntu นั้นเกือบจะเหมือนกับ Ubuntu ทั่วไป - เดสก์ท็อป / เมนูแตกต่างกันเล็กน้อย แต่ทุกอย่างที่ทำงานบน Ubuntu ปกติมันจะทำงานได้ใน Lubuntu ด้วย
lara

คำตอบ:


22

หาก Ubuntu ขอรหัสผ่านการเข้ารหัสระหว่างการบู๊ต (เช่นบนคอนโซลข้อความก่อนที่หน้าจอการเข้าสู่ระบบจะปรากฏขึ้น) แสดงว่ามีการใช้วิธีการเข้ารหัสดิสก์เต็มรูปแบบ (มีมากกว่าหนึ่งวิธีในการทำสิ่งนี้ แต่ฉันจะเก็บคำตอบทั่วไปไว้) การเข้ารหัสนั้นจัดการโดยเลเยอร์ซอฟต์แวร์พิเศษระหว่างระบบไฟล์และฮาร์ดไดรฟ์แบบฟิสิคัลไม่ใช่ระบบไฟล์

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

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

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


3
ในทางทฤษฎีคุณไม่ควรทำเช่น "dd if = / dev / mapper / sda5_crypt ของ = / dev / sda5 bs = 32M"
รอย

@ Roy ฉันคิดว่ามันจะทำงานถ้าหากต่อไปนี้เป็นจริง: 1. ddและไดรเวอร์พื้นฐานไม่ได้เขียนจนกว่าพวกเขาจะอ่านแต่ละบล็อกเสร็จแล้ว (อาจมีธงและการตั้งค่าเพื่อให้แน่ใจว่านี่) 2. การอ่าน / เขียน บล็อกไม่ทับขอบของบล็อกเข้ารหัส (สามารถตรวจสอบได้อาจเกี่ยวข้องกับคณิตศาสตร์) 3. ข้อมูลส่วนหัวที่สำคัญที่จำเป็นสำหรับการถอดรหัสจะไม่ถูกเขียนทับก่อนที่จะเสร็จสิ้น (ตรวจสอบรูปแบบการเข้ารหัสพื้นฐานซึ่งอาจดำเนินการตั้งแต่ต้นจนจบ) ฉันคิดว่ามันเป็นไปได้ แต่จะต้องมีการตั้งค่าและการวิเคราะห์อย่างระมัดระวังมากขึ้น
fuzzyTew

20

ด้านล่างนี้เป็นโซลูชันของฉันที่ใช้งานได้ โปรดจำไว้ว่าฉันไม่ใช่ผู้เชี่ยวชาญ Linux ดังนั้นจึงไม่ใช่ทางออกที่ดีที่สุด ไม่สามารถหาสิ่งที่ดีกว่าอยู่ดี

การโอนย้ายการติดตั้ง FDE ไปยังพาร์ติชันที่ไม่ได้เข้ารหัส

หมายเหตุ : เมื่อใดก็ตามที่ฉันพูดฉันหมายถึง

/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition

การคัดลอกข้อมูลจากระบบไฟล์รูทที่เข้ารหัส

บูตจากซีดีสด ฉันใช้ Ubuntu 13.10 32bit desktop ISO

เมานต์พาร์ติชันของคุณ:

sudo cryptsetup luksOpen /dev/sda5 crypt1

คัดลอกข้อมูลต้นทางไปยังพาร์ติชั่นปลายทางและบันทึก dd PID ไปยังตัวแปร pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

สิ่งนี้จะ ping กระบวนการ dd แต่ละวินาทีด้วยสัญญาณ USR1 และสถานะผลลัพธ์ dd:

while sudo kill -USR $pid; do sleep 1; done

ทางเลือกในการตรวจสอบ DD

หากคุณไม่ชอบ 'วิธีการ' ข้างต้นคุณสามารถใช้นาฬิกาได้ เปิดหน้าต่างเทอร์มินัลอื่นและรับ PID:

pgrep -l '^dd$' | awk '{ print $1 }'

แทนที่ด้วย ID กระบวนการของคุณ:

watch kill -USR1 <pid>

คุณควรเห็นผลลัพธ์ใน terminal dd ของคุณในแต่ละ 2s

การกำหนดค่าระบบไฟล์รูทและพาร์ติชันใหม่

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

sudo mount /dev/sda3 /mnt

หลังจากนั้นยกเลิกการต่อเชื่อมพาร์ติชันของคุณ:

sudo umount /dev/sda3

พาร์ทิชัน crypt ที่วางจำหน่าย:

sudo cryptsetup luksClose /dev/sda5

เรียกใช้ gparted ลบพาร์ติชัน LUKS ของคุณ (ทั้งแบบขยายและแบบลอจิก) ปรับขนาด / dev / sda3 ของคุณแล้วเลื่อนไปทางซ้าย สร้างพาร์ติชันสลับ

หมายเหตุ: การย้าย / dev / sda3 ของคุณไปทางซ้ายอาจใช้เวลานาน สำหรับฉันมันใช้เวลา 30 นาทีในพาร์ติชั่น 120GB และไดรฟ์ SSD หากคุณมี 500GB + HDD จะต้องรอเป็นเวลาสองสามชั่วโมง คุณอาจต้องการสร้าง swap ก่อนพาร์ติชันของคุณแทนที่จะย้าย / dev / sda3

สร้างระบบไฟล์ swap ใหม่บนพาร์ทิชัน swap ของคุณ:

sudo mkswap /dev/sda2 

และเก็บที่ใดที่หนึ่ง UUID

รับรูทพาร์ติชันของคุณ UUID:

sudo blkid /dev/sda3

แก้ไข fstab:

sudo nano /etc/fstab

ลบหรือใส่ความคิดเห็น overlayfs และบรรทัด tmpfs

เพิ่มการแทนที่บรรทัดด้วยผลลัพธ์ blkid:

UUID=<uuid_root> /  ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0

ลบไฟล์:

rm /etc/crypttab

อัปเดต initramfs ของคุณเพื่อหลีกเลี่ยงข้อผิดพลาดเช่น "cryptsetup: evms_activate ไม่พร้อมใช้งาน":

sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all

หมายเหตุสุดท้ายและการแก้ไขปัญหา

มันใช้ได้ผลสำหรับฉัน แต่มีโอกาสที่การทำตามขั้นตอนอาจไม่เหมาะกับคุณ ก่อนที่ฉันจะหาวิธีการ update-initramfs ฉันได้ติดตั้งเคอร์เนลอีกสองสามครั้งก็ทำการแก้ไขด้วง อย่างไรก็ตามมันไม่ควรเป็นกรณีสำหรับคุณ โปรดจำไว้ว่าคำแนะนำข้างต้นอาจจะลบข้อมูลของคุณจึงควรระมัดระวังและทำให้การสำรองข้อมูล , ก่อนที่จะดำเนินการต่อไปว่า

ในกรณีที่คุณมีปัญหาเคอร์เนล (chrooted และ / boot mount):

uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

แน่นอนแทนที่ linux-image-3.XY-ZZ ด้วยวันที่เคอร์เนลของคุณจาก uname

หรือด้วง (นอก chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

รายละเอียดเพิ่มเติม: https://help.ubuntu.com/community/Boot-Repair

โชคดี


1
ฉันเชื่อว่าคุณต้องแทนที่ UUID ของ swap partition /etc/initramfs-tools/conf.d/resumeด้วยตนเองและฉันขอแนะนำให้คัดลอกเนื้อหาระบบไฟล์ด้วยcp -aหรือrsync -aจะเร็วกว่าทั่วไปและปลอดภัยกว่าสำหรับ SSD
LiveWireBT

ขอบคุณที่ทำให้ผู้ใช้มีความละเอียดยิ่งขึ้น ฉันไม่ได้ทำการเปลี่ยนแปลงต่อ แต่ก็กลัวด้วยการใช้ cp หรือ rsync คิดว่า dd (สำเนาดิบจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่ง) เป็นเครื่องมือที่เหมาะสมสำหรับงานดังกล่าว ฉันกำลังทำสิ่งนั้นกับ VM แต่อิมเมจวางอยู่บน SSD คุณช่วยอธิบายรายละเอียด: "ปลอดภัยกว่าสำหรับ SSD" ได้ไหม
NeverEndingQueue

ใช้การddคัดลอกพาร์ทิชันทั้งหมดแม้กระทั่งบล็อกที่ควรจะว่างเปล่าซึ่งทำให้การเขียนที่ไม่จำเป็นไปยัง SSD (และในบางพาร์ติชันนั้นยังเป็นอันตรายต่อประสิทธิภาพการเขียนไปยังเซลล์เกือบทั้งหมด) ไม่กี่ปีที่ผ่านมาฉันและคนอื่น ๆ ก็พบว่าการคัดลอกddและเปิดใช้งาน TRIM (ตัวเลือกยกเลิก EXT4) จะทำให้ TRIM ลบบล็อกที่คิดว่าว่างเปล่าและทำให้คุณติดตั้งไม่ได้หลังจากสองสามชั่วโมง
LiveWireBT

ในวิธีการตรวจสอบครั้งแรกควรเป็น USR1 แทน USR ฉันรู้ว่ามันชัดเจน แต่อาจเป็นปัญหาสำหรับมือใหม่เช่นฉัน;)
goodfellow

9

ในกรณีที่ตกลงเพื่อให้การเข้ารหัส แต่การปิดพรอมต์ข้อความรหัสผ่านวิธีการที่ง่ายกว่าคือการตั้งรหัสผ่านที่ไม่สำคัญเช่น "รหัสผ่าน" แล้วบันทึกรหัสผ่านเล็กน้อยใน initramfs ใน cleartext ปิดการใช้งานรหัสผ่านการเข้ารหัส LUKS

เป็นหลักเพิ่มเบ็ดสคริปต์ซึ่งจะเพิ่ม "keyscript" เพื่อ initramfs โดยปกติสคริปต์เหล่านี้จะใช้ในการรับรหัสผ่านทาง Bletooth จากอุปกรณ์ USB ฯลฯ แต่ในกรณีนี้ให้พิมพ์รหัสผ่านเล็กน้อย

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