การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส
อัปเดตคู่มือการเข้ารหัสทั้งดิสก์ใน RuNet V0.2

กลยุทธ์คาวบอย:

[A] การเข้ารหัสบล็อกระบบ Windows 7 ของระบบที่ติดตั้ง
[B] การเข้ารหัสบล็อกระบบ GNU/Linux (เดเบียน) ระบบที่ติดตั้ง (รวมถึง /boot);
[C] การกำหนดค่า GRUB2 การป้องกัน bootloader พร้อมลายเซ็นดิจิทัล / การรับรองความถูกต้อง / การแฮช
[D] การลอก—การทำลายข้อมูลที่ไม่ได้เข้ารหัส
[E] การสำรองข้อมูลสากลของระบบปฏิบัติการที่เข้ารหัส
[F] โจมตี <ในรายการ [C6]> เป้าหมาย - GRUB2 bootloader;
[G] เอกสารที่เป็นประโยชน์

╭───โครงการ #ห้อง 40# : :
├──╼ ติดตั้ง Windows 7 - การเข้ารหัสระบบเต็มรูปแบบ ไม่ได้ซ่อนอยู่
├──╼ ติดตั้ง GNU/Linux แล้ว (การแจกแจงเดเบียนและอนุพันธ์) — การเข้ารหัสทั้งระบบ ไม่ถูกซ่อนไว้(/ รวมถึง /boot; swap);
├──╼ bootloaders อิสระ: ติดตั้ง bootloader ของ VeraCrypt ใน MBR, bootloader GRUB2 ได้รับการติดตั้งในพาร์ติชันเสริม
├──╼ไม่จำเป็นต้องติดตั้ง/ติดตั้งระบบปฏิบัติการใหม่
└──╼ซอฟต์แวร์เข้ารหัสที่ใช้: VeraCrypt; การเข้ารหัสลับ; กนูพีจี; ม้าน้ำ; ฮัชดีป; GRUB2 เป็นบริการฟรี/ฟรี

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

ลำดับการบูตพีซี (หนึ่งในตัวเลือก):

  • เปิดเครื่อง
  • กำลังโหลดบูตโหลดเดอร์ของ VeraCrypt (การป้อนรหัสผ่านที่ถูกต้องจะทำการบูต Windows 7 ต่อไป);
  • การกดปุ่ม "Esc" จะโหลดบูตโหลดเดอร์ GRUB2
  • ตัวโหลดบูต GRUB2 (เลือกการแจกจ่าย/GNU/Linux/CLI)จะต้องมีการรับรองความถูกต้องของ GRUB2 superuser <login/password>;
  • หลังจากการรับรองความถูกต้องและการเลือกการแจกจ่ายสำเร็จ คุณจะต้องป้อนข้อความรหัสผ่านเพื่อปลดล็อค “/boot/initrd.img”;
  • หลังจากป้อนรหัสผ่านที่ไม่มีข้อผิดพลาด GRUB2 จะ "ต้องการ" การป้อนรหัสผ่าน (ประการที่สาม รหัสผ่าน BIOS หรือรหัสผ่านบัญชีผู้ใช้ GNU/Linux – ไม่พิจารณา) เพื่อปลดล็อกและบูตระบบปฏิบัติการ GNU/Linux หรือการแทนที่คีย์ลับโดยอัตโนมัติ (รหัสผ่าน + กุญแจสองอันหรือรหัสผ่าน + กุญแจ);
  • การบุกรุกภายนอกในการกำหนดค่า GRUB2 จะหยุดกระบวนการบูต GNU/Linux

ลำบากเหรอ? ตกลง มาทำให้กระบวนการเป็นแบบอัตโนมัติกันเถอะ

เมื่อแบ่งพาร์ติชันฮาร์ดไดรฟ์ (ตาราง MBR) พีซีสามารถมีพาร์ติชั่นหลักได้ไม่เกิน 4 พาร์ติชั่น หรือ 3 พาร์ติชั่นหลักและ XNUMX พาร์ติชั่นขยาย รวมถึงพื้นที่ที่ไม่ได้ถูกจัดสรร ส่วนที่ขยายซึ่งแตกต่างจากส่วนหลักสามารถมีส่วนย่อยได้ (โลจิคัลไดรฟ์ = พาร์ติชันเสริม). กล่าวอีกนัยหนึ่ง “พาร์ติชันเสริม” บน HDD จะแทนที่ LVM สำหรับงานที่ทำอยู่: การเข้ารหัสระบบเต็มรูปแบบ หากดิสก์ของคุณแบ่งออกเป็น 4 พาร์ติชั่นหลัก คุณจะต้องใช้ lvm หรือการแปลง (พร้อมการจัดรูปแบบ) จากหลักไปจนถึงขั้นสูง หรือใช้ทั้งสี่ส่วนอย่างชาญฉลาดและปล่อยให้ทุกอย่างเป็นไปตามที่เป็นอยู่ เพื่อให้ได้ผลลัพธ์ที่ต้องการ แม้ว่าคุณจะมีพาร์ติชั่นเดียวบนดิสก์ Gparted จะช่วยคุณแบ่งพาร์ติชั่น HDD ของคุณ (สำหรับส่วนเพิ่มเติม) โดยไม่สูญเสียข้อมูล แต่ยังคงมีโทษเล็กน้อยสำหรับการกระทำดังกล่าว

โครงร่างโครงร่างฮาร์ดไดรฟ์ซึ่งสัมพันธ์กับบทความทั้งหมดจะถูกแสดงไว้ในตารางด้านล่าง

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส
ตาราง (หมายเลข 1) ของพาร์ติชัน 1TB

คุณควรมีสิ่งที่คล้ายกันด้วย
sda1 - พาร์ติชันหลักหมายเลข 1 NTFS (เข้ารหัส);
sda2 - เครื่องหมายส่วนขยาย;
sda6 - ดิสก์แบบลอจิคัล (ติดตั้ง GRUB2 bootloader แล้ว);
sda8 - swap (ไฟล์สลับที่เข้ารหัส/ไม่เสมอไป);
sda9 - ทดสอบดิสก์แบบลอจิคัล;
sda5 - โลจิคัลดิสก์สำหรับผู้อยากรู้อยากเห็น
sda7 - GNU/Linux OS (ถ่ายโอน OS ไปยังโลจิคัลดิสก์ที่เข้ารหัส)
sda3 - พาร์ติชันหลักหมายเลข 2 พร้อมระบบปฏิบัติการ Windows 7 (เข้ารหัส);
sda4 - ส่วนหลักหมายเลข 3 (มี GNU/Linux ที่ไม่ได้เข้ารหัส ซึ่งใช้สำหรับการสำรองข้อมูล/ไม่เสมอไป).

[A] การเข้ารหัสบล็อกระบบ Windows 7

A1. เวราคริปต์การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

ดาวน์โหลดได้จาก เว็บไซต์อย่างเป็นทางการหรือจากกระจก SourceForge เวอร์ชันการติดตั้งของซอฟต์แวร์เข้ารหัส VeraCrypt (ในขณะที่เผยแพร่บทความ v1.24-Update3 เวราคริปต์เวอร์ชันพกพาไม่เหมาะสำหรับการเข้ารหัสระบบ). ตรวจสอบผลรวมของซอฟต์แวร์ที่ดาวน์โหลด

$ Certutil -hashfile "C:VeraCrypt Setup 1.24.exe" SHA256

และเปรียบเทียบผลลัพธ์กับ CS ที่โพสต์บนเว็บไซต์ผู้พัฒนา VeraCrypt

หากติดตั้งซอฟต์แวร์ HashTab จะง่ายยิ่งขึ้น: RMB (การตั้งค่าเวราคริปต์ 1.24.exe)-properties - ผลรวมแฮชของไฟล์

ในการตรวจสอบลายเซ็นโปรแกรม จะต้องติดตั้งซอฟต์แวร์และคีย์ pgp สาธารณะของนักพัฒนาบนระบบ gnuPG; gpg4win.

A2. การติดตั้ง/ใช้งานซอฟต์แวร์ VeraCrypt ด้วยสิทธิ์ของผู้ดูแลระบบการเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

A3. การเลือกพารามิเตอร์การเข้ารหัสระบบสำหรับพาร์ติชันที่ใช้งานอยู่เวราคริปต์ – ระบบ – เข้ารหัสพาร์ติชันระบบ/ดิสก์ – ปกติ – เข้ารหัสพาร์ติชันระบบ Windows – มัลติบูต – (คำเตือน: “ไม่แนะนำให้ผู้ใช้ที่ไม่มีประสบการณ์ใช้วิธีนี้” และนี่เป็นเรื่องจริง เรายอมรับว่า “ใช่”) – ดิสก์สำหรับบูต (“ใช่” ถึงไม่เป็นเช่นนั้นก็ยัง “ใช่”) – จำนวนดิสก์ระบบ “2 หรือมากกว่า” – หลายระบบในดิสก์เดียว “ใช่” – โปรแกรมโหลดบูตที่ไม่ใช่ Windows “ไม่ใช่” (อันที่จริง "ใช่" แต่บูตโหลดเดอร์ของ VeraCrypt/GRUB2 จะไม่แชร์ MBR ระหว่างกัน แม่นยำยิ่งขึ้น เฉพาะส่วนที่เล็กที่สุดของโค้ดบูตโหลดเดอร์เท่านั้นที่ถูกจัดเก็บไว้ในแทร็ก MBR/บูต ส่วนหลักของมันคือ ที่อยู่ภายในระบบไฟล์) – มัลติบูต – การตั้งค่าการเข้ารหัส...

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

ในขั้นตอนถัดไปสู่การปกป้องข้อมูลแบบกำหนดเป้าหมาย ให้ดำเนินการ "ทดสอบ" และเลือกอัลกอริธึมการเข้ารหัส หากคุณมี CPU ที่ล้าสมัย อัลกอริธึมการเข้ารหัสที่เร็วที่สุดน่าจะเป็น Twofish หาก CPU ทรงพลัง คุณจะสังเกตเห็นความแตกต่าง: ตามผลการทดสอบ การเข้ารหัส AES จะเร็วกว่าคู่แข่งการเข้ารหัสลับหลายเท่า AES เป็นอัลกอริธึมการเข้ารหัสยอดนิยม ฮาร์ดแวร์ของ CPU สมัยใหม่ได้รับการปรับให้เหมาะสมเป็นพิเศษสำหรับทั้ง "ความลับ" และ "การแฮ็ก"

VeraCrypt รองรับความสามารถในการเข้ารหัสดิสก์ใน AES cascade(ทูฟิช)/และชุดค่าผสมอื่นๆ บนซีพียู Intel คอร์รุ่นเก่าเมื่อสิบปีที่แล้ว (ไม่รองรับฮาร์ดแวร์สำหรับการเข้ารหัส AES, A/T cascade) ประสิทธิภาพที่ลดลงนั้นแทบจะมองไม่เห็นเลย (สำหรับซีพียู AMD ในยุคเดียวกัน/~พารามิเตอร์ ประสิทธิภาพจะลดลงเล็กน้อย). ระบบปฏิบัติการทำงานแบบไดนามิกและมองไม่เห็นการใช้ทรัพยากรสำหรับการเข้ารหัสแบบโปร่งใส ในทางตรงกันข้าม ประสิทธิภาพลดลงอย่างเห็นได้ชัดเนื่องจากสภาพแวดล้อมเดสก์ท็อปทดสอบที่ไม่เสถียรที่ติดตั้ง Mate v1.20.1 (หรือ v1.20.2 ฉันจำไม่ได้แน่ชัด) ใน GNU/Linux หรือเนื่องจากการทำงานของรูทีนการวัดและส่งข้อมูลทางไกลใน Windows7↑ โดยทั่วไปแล้ว ผู้ใช้ที่มีประสบการณ์จะทำการทดสอบประสิทธิภาพของฮาร์ดแวร์ก่อนการเข้ารหัส ตัวอย่างเช่น ใน Aida64/Sysbench/systemd-analyze ตำหนิจะถูกเปรียบเทียบกับผลลัพธ์ของการทดสอบเดียวกันหลังจากการเข้ารหัสระบบ ดังนั้นจึงหักล้างความเชื่อผิดๆ ที่ว่า "การเข้ารหัสระบบเป็นอันตราย" การชะลอตัวของเครื่องและความไม่สะดวกจะสังเกตเห็นได้เมื่อสำรอง/กู้คืนข้อมูลที่เข้ารหัส เนื่องจากการดำเนินการ "การสำรองข้อมูลระบบ" ไม่ได้วัดเป็นมิลลิวินาที และ <ถอดรหัส/เข้ารหัสทันที> เดียวกันนั้นจะถูกเพิ่มเข้าไป ท้ายที่สุดแล้ว ผู้ใช้แต่ละคนที่ได้รับอนุญาตให้ปรับแต่งการเข้ารหัสจะปรับสมดุลอัลกอริธึมการเข้ารหัสกับความพึงพอใจของงานที่ทำอยู่ ระดับความหวาดระแวง และความสะดวกในการใช้งาน

เป็นการดีกว่าที่จะปล่อยพารามิเตอร์ PIM ไว้เป็นค่าเริ่มต้น เพื่อที่ว่าเมื่อโหลดระบบปฏิบัติการ คุณไม่จำเป็นต้องป้อนค่าการวนซ้ำที่แน่นอนในแต่ละครั้ง เวราคริปต์ใช้การวนซ้ำจำนวนมากเพื่อสร้าง "แฮชที่ช้า" อย่างแท้จริง การโจมตี “หอยทากเข้ารหัสลับ” โดยใช้วิธี Bruteforce/rainbow tables นั้นสมเหตุสมผลเมื่อใช้ข้อความรหัสผ่านสั้นๆ “ธรรมดา” และรายการชุดอักขระส่วนตัวของเหยื่อเท่านั้น ราคาที่ต้องจ่ายสำหรับความแข็งแกร่งของรหัสผ่านคือความล่าช้าในการป้อนรหัสผ่านที่ถูกต้องเมื่อโหลดระบบปฏิบัติการ (การติดตั้งโวลุ่มของเวราคริปต์ใน GNU/Linux นั้นเร็วกว่ามาก)
ซอฟต์แวร์ฟรีสำหรับการโจมตีแบบ Brute Force (แยกข้อความรหัสผ่านจากส่วนหัวของดิสก์ VeraCrypt/LUKS) แฮชแคท John the Ripper ไม่รู้ว่าจะ "ทำลาย Veracrypt" ได้อย่างไร และเมื่อทำงานกับ LUKS จะไม่เข้าใจการเข้ารหัสของ Twofish

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

เมื่อเสร็จสิ้นการตั้งค่า/สร้าง “ข้อมูลเมตาที่ไม่ซ้ำกัน” ของพาร์ติชันที่เข้ารหัสไว้ เวราคริปต์จะเสนอให้รีสตาร์ทพีซีและทดสอบการทำงานของโปรแกรมโหลดบูต หลังจากรีบูต/เริ่ม Windows เวราคริปต์จะโหลดในโหมดสแตนด์บาย สิ่งที่เหลืออยู่คือการยืนยันกระบวนการเข้ารหัส - Y.

ในขั้นตอนสุดท้ายของการเข้ารหัสระบบ VeraCrypt จะเสนอให้สร้างสำเนาสำรองของส่วนหัวของพาร์ติชันที่เข้ารหัสที่ใช้งานอยู่ในรูปแบบของ "veracrypt Rescue disk.iso" - ต้องทำสิ่งนี้ - ในซอฟต์แวร์นี้จำเป็นต้องมีการดำเนินการดังกล่าว (ใน LUKS ตามข้อกำหนด - น่าเสียดายที่ละเว้น แต่เน้นย้ำในเอกสารประกอบ). ดิสก์กู้ภัยจะมีประโยชน์สำหรับทุกคนและมากกว่าหนึ่งครั้ง การสูญเสีย (ส่วนหัว/เขียน MBR ใหม่) สำเนาสำรองของส่วนหัวจะปฏิเสธการเข้าถึงพาร์ติชันที่ถอดรหัสอย่างถาวรด้วยระบบปฏิบัติการ Windows

A4. การสร้าง USB/ดิสก์ช่วยเหลือของ VeraCryptตามค่าเริ่มต้น VeraCrypt เสนอให้เบิร์นข้อมูลเมตา “ประมาณ 2-3MB” ลงในซีดี แต่ไม่ใช่ทุกคนที่มีดิสก์หรือไดรฟ์ DWD-ROM และการสร้างแฟลชไดรฟ์ที่สามารถบู๊ตได้ “VeraCrypt Rescue disk” จะสร้างความประหลาดใจทางเทคนิคสำหรับบางคน: Rufus /GUIdd-ROSA ImageWriter และซอฟต์แวร์อื่นที่คล้ายคลึงกันจะไม่สามารถรับมือกับงานนี้ได้ เนื่องจากนอกเหนือจากการคัดลอกข้อมูลเมตาออฟเซ็ตไปยังแฟลชไดรฟ์ที่สามารถบู๊ตได้ คุณจะต้องคัดลอก/วางรูปภาพนอกระบบไฟล์ของไดรฟ์ USB กล่าวโดยสรุป ให้คัดลอก MBR/ถนนไปยังพวงกุญแจอย่างถูกต้อง คุณสามารถสร้างแฟลชไดรฟ์ที่สามารถบูตได้จาก GNU/Linux OS โดยใช้ยูทิลิตี "dd" โดยดูที่เครื่องหมายนี้

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

การสร้างดิสก์ช่วยเหลือในสภาพแวดล้อม Windows จะแตกต่างออกไป ผู้พัฒนา VeraCrypt ไม่ได้รวมวิธีแก้ปัญหานี้ไว้ในทางการ เอกสาร โดย "ดิสก์ช่วยเหลือ" แต่เสนอวิธีแก้ปัญหาด้วยวิธีอื่น: เขาโพสต์ซอฟต์แวร์เพิ่มเติมสำหรับการสร้าง "ดิสก์ช่วยเหลือ usb" สำหรับการเข้าถึงฟรีบนฟอรัม VeraCrypt ของเขา ผู้จัดเก็บเอกสารของซอฟต์แวร์นี้สำหรับ Windows คือ "การสร้างดิสก์ช่วยเหลือ usb veracrypt" หลังจากบันทึกการกู้ภัย disk.iso กระบวนการเข้ารหัสระบบบล็อกของพาร์ติชันที่ใช้งานอยู่จะเริ่มขึ้น ในระหว่างการเข้ารหัส การทำงานของระบบปฏิบัติการจะไม่หยุดลง ไม่จำเป็นต้องรีสตาร์ทพีซี เมื่อเสร็จสิ้นการดำเนินการเข้ารหัส พาร์ติชันที่ใช้งานอยู่จะถูกเข้ารหัสโดยสมบูรณ์และสามารถใช้งานได้ หากบูตเดอร์ของ VeraCrypt ไม่ปรากฏขึ้นเมื่อคุณเริ่มพีซีและการดำเนินการกู้คืนส่วนหัวไม่ช่วย ให้ตรวจสอบแฟล็ก "บูต" จะต้องตั้งค่าเป็นพาร์ติชันที่มี Windows อยู่ (โดยไม่คำนึงถึงการเข้ารหัสและระบบปฏิบัติการอื่น ๆ ดูตารางที่ 1)
คำอธิบายการเข้ารหัสระบบบล็อกด้วย Windows OS เสร็จสมบูรณ์

[B]ลุคส์ การเข้ารหัส GNU/ลินุกซ์ (~เดเบียน) ระบบปฏิบัติการที่ติดตั้ง อัลกอริทึมและขั้นตอน

ในการเข้ารหัสการกระจาย Debian/อนุพันธ์ที่ติดตั้งไว้ คุณจะต้องแมปพาร์ติชันที่เตรียมไว้กับอุปกรณ์บล็อกเสมือน ถ่ายโอนไปยังดิสก์ GNU/Linux ที่แมป และติดตั้ง/กำหนดค่า GRUB2 หากคุณไม่มีเซิร์ฟเวอร์ Bare Metal และคุณให้ความสำคัญกับเวลาของคุณ คุณจะต้องใช้ GUI และคำสั่งเทอร์มินัลส่วนใหญ่ที่อธิบายไว้ด้านล่างมีไว้เพื่อให้ทำงานใน “โหมด Chuck-Norris”

B1. การบูทพีซีจาก usb GNU / Linux แบบสด

“ดำเนินการทดสอบการเข้ารหัสลับสำหรับประสิทธิภาพของฮาร์ดแวร์”

lscpu && сryptsetup benchmark

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

หากคุณเป็นเจ้าของรถยนต์ทรงพลังที่รองรับฮาร์ดแวร์ AES อย่างมีความสุข ตัวเลขจะมีลักษณะเหมือนทางด้านขวาของเทอร์มินัล หากคุณเป็นเจ้าของอย่างมีความสุข แต่ด้วยฮาร์ดแวร์โบราณ ตัวเลขจะมีลักษณะเหมือนด้านซ้าย

บี2. การแบ่งพาร์ติชันดิสก์ การติดตั้ง / ฟอร์แมต fs โลจิคัลดิสก์ HDD เป็น Ext4 (Gparted)

B2.1. การสร้างส่วนหัวพาร์ติชัน sda7 ที่เข้ารหัสฉันจะอธิบายชื่อของพาร์ติชัน ที่นี่และต่อไป ตามตารางพาร์ติชันของฉันที่โพสต์ด้านบน ตามเค้าโครงดิสก์ของคุณ คุณต้องเปลี่ยนชื่อพาร์ติชันของคุณ

การแมปการเข้ารหัสลับไดรฟ์แบบลอจิคัล (/dev/sda7 > /dev/mapper/sda7_crypt)
#สร้างพาร์ติชั่น “LUKS-AES-XTS” อย่างง่ายดาย

cryptsetup -v -y luksFormat /dev/sda7

ตัวเลือก:

* luksFormat - การเริ่มต้นของส่วนหัว LUKS;
* -y -รหัสผ่าน (ไม่ใช่คีย์/ไฟล์);
* -v -verbalization (แสดงข้อมูลในเทอร์มินัล);
* /dev/sda7 - โลจิคัลดิสก์ของคุณจากพาร์ติชันเสริม (ซึ่งมีการวางแผนในการถ่ายโอน/เข้ารหัส GNU/Linux).

อัลกอริธึมการเข้ารหัสเริ่มต้น <LUKS1: aes-xts-plain64, คีย์: 256 บิต, การแฮชส่วนหัวของ LUKS: sha256, RNG: /dev/urandom> (ขึ้นอยู่กับเวอร์ชันของการเข้ารหัส)

#Проверка default-алгоритма шифрования
cryptsetup  --help #самая последняя строка в выводе терминала.

หากไม่มีการสนับสนุนฮาร์ดแวร์สำหรับ AES บน CPU ทางเลือกที่ดีที่สุดคือการสร้าง "LUKS-Twofish-XTS-partition" แบบขยาย

B2.2. การสร้างขั้นสูงของ “LUKS-Twofish-XTS-partition”

cryptsetup luksFormat /dev/sda7 -v -y -c twofish-xts-plain64 -s 512 -h sha512 -i 1500 --use-urandom

ตัวเลือก:
* luksFormat - การเริ่มต้นของส่วนหัว LUKS;
* /dev/sda7 คือโลจิคัลดิสก์ที่เข้ารหัสในอนาคตของคุณ
* -v การใช้วาจา;
* -y ข้อความรหัสผ่าน;
* -c เลือกอัลกอริธึมการเข้ารหัสข้อมูล
* -s ขนาดคีย์การเข้ารหัส;
* -h อัลกอริธึมการแฮช / ฟังก์ชัน crypto, ใช้ RNG (--ใช้-urandom) เพื่อสร้างคีย์เข้ารหัส/ถอดรหัสเฉพาะสำหรับส่วนหัวของดิสก์แบบลอจิคัล ซึ่งเป็นคีย์ส่วนหัวรอง (XTS) คีย์หลักเฉพาะที่จัดเก็บไว้ในส่วนหัวของดิสก์ที่เข้ารหัส, คีย์ XTS รอง, ข้อมูลเมตาทั้งหมดนี้และรูทีนการเข้ารหัสที่ใช้คีย์หลักและคีย์ XTS รอง, เข้ารหัส/ถอดรหัสข้อมูลใด ๆ บนพาร์ติชัน (ยกเว้นชื่อส่วน) เก็บไว้ใน ~ 3MB บนพาร์ติชั่นฮาร์ดดิสก์ที่เลือก
* -i การวนซ้ำเป็นมิลลิวินาที แทนที่จะเป็น "จำนวน" (การหน่วงเวลาเมื่อประมวลผลข้อความรหัสผ่านส่งผลต่อการโหลดระบบปฏิบัติการและความแรงของการเข้ารหัสของคีย์) เพื่อรักษาความสมดุลของความแข็งแกร่งของการเข้ารหัส ด้วยรหัสผ่านง่ายๆ เช่น “รัสเซีย” คุณต้องเพิ่มค่า -(i) และด้วยรหัสผ่านที่ซับซ้อน เช่น “?8dƱob/øfh” ค่าจะลดลงได้
* — ใช้เครื่องกำเนิดตัวเลขสุ่ม urandom สร้างคีย์และเกลือ

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

B2.3. การเปรียบเทียบ

cryptsetup open /dev/sda7 sda7_crypt
#выполнение данной команды запрашивает ввод секретной парольной фразы.

ตัวเลือก:
* เปิด - จับคู่ส่วน "กับชื่อ";
* /dev/sda7 - ดิสก์แบบลอจิคัล;
* sda7_crypt - การแมปชื่อที่ใช้ในการเมานต์พาร์ติชันที่เข้ารหัสหรือเริ่มต้นเมื่อระบบปฏิบัติการบูท

B2.4. การจัดรูปแบบระบบไฟล์ sda7_crypt เป็น ext4 การติดตั้งดิสก์ในระบบปฏิบัติการ(หมายเหตุ: คุณจะไม่สามารถทำงานกับพาร์ติชันที่เข้ารหัสใน Gparted ได้)

#форматирование блочного шифрованного устройства
mkfs.ext4 -v -L DebSHIFR /dev/mapper/sda7_crypt 

ตัวเลือก:
* -v -วาจา;
* -L - ป้ายกำกับไดรฟ์ (ซึ่งแสดงใน Explorer ท่ามกลางไดรฟ์อื่น ๆ )

ถัดไป คุณควรติดตั้งอุปกรณ์บล็อกที่เข้ารหัสเสมือน /dev/sda7_crypt เข้ากับระบบ

mount /dev/mapper/sda7_crypt /mnt

การทำงานกับไฟล์ในโฟลเดอร์ /mnt จะเข้ารหัส/ถอดรหัสข้อมูลใน sda7 โดยอัตโนมัติ

สะดวกกว่าในการแมปและติดตั้งพาร์ติชันใน Explorer (นอติลุส/caja GUI)พาร์ติชันจะอยู่ในรายการการเลือกดิสก์อยู่แล้ว เหลือเพียงการป้อนข้อความรหัสผ่านเพื่อเปิด/ถอดรหัสดิสก์ ชื่อที่ตรงกันจะถูกเลือกโดยอัตโนมัติ ไม่ใช่ "sda7_crypt" แต่เป็นชื่อ /dev/mapper/Luks-xx-xx...

B2.5. การสำรองข้อมูลส่วนหัวของดิสก์ (ข้อมูลเมตา ~ 3MB)หนึ่งในที่สุด สำคัญ การดำเนินการที่ต้องทำโดยไม่ชักช้า - สำเนาสำรองของส่วนหัว "sda7_crypt" หากคุณเขียนทับ/ทำให้ส่วนหัวเสียหาย (เช่น การติดตั้ง GRUB2 บนพาร์ติชัน sda7 เป็นต้น)ข้อมูลที่เข้ารหัสจะสูญหายไปโดยสิ้นเชิงโดยไม่มีความเป็นไปได้ในการกู้คืน เนื่องจากจะไม่สามารถสร้างคีย์เดิมขึ้นมาใหม่ได้ คีย์จะถูกสร้างขึ้นไม่ซ้ำกัน

#Бэкап заголовка раздела
cryptsetup luksHeaderBackup --header-backup-file ~/Бэкап_DebSHIFR /dev/sda7 

#Восстановление заголовка раздела
cryptsetup luksHeaderRestore --header-backup-file <file> <device>

ตัวเลือก:
* luksHeaderBackup — คำสั่ง header-backup-file -backup;
* luksHeaderRestore — คำสั่ง header-backup-file -restore;
* ~/Backup_DebSHIFR - ไฟล์สำรอง;
* /dev/sda7 - พาร์ติชันที่จะบันทึกสำเนาสำรองส่วนหัวของดิสก์ที่เข้ารหัส
ในขั้นตอนนี้ <การสร้างและแก้ไขพาร์ติชันที่เข้ารหัส> เสร็จสมบูรณ์

B3. การพอร์ตระบบปฏิบัติการ GNU/Linux (sda4) ไปยังพาร์ติชันที่เข้ารหัส (sda7)

สร้างโฟลเดอร์ /mnt2 (หมายเหตุ - เรายังคงใช้งาน usb แบบสดอยู่ โดยติดตั้ง sda7_crypt ที่ /mnt)และเมานต์ GNU/Linux ของเราใน /mnt2 ซึ่งจำเป็นต้องเข้ารหัส

mkdir /mnt2
mount /dev/sda4 /mnt2

เราดำเนินการถ่ายโอนระบบปฏิบัติการที่ถูกต้องโดยใช้ซอฟต์แวร์ Rsync

rsync -avlxhHX --progress /mnt2/ /mnt

ตัวเลือก Rsync มีอธิบายไว้ในย่อหน้าที่ E1

นอกจากนี้ จำเป็น จัดเรียงข้อมูลพาร์ติชันดิสก์แบบลอจิคัล

e4defrag -c /mnt/ #после проверки, e4defrag выдаст, что степень дефрагментации раздела~"0", это заблуждение, которое может вам стоить существенной потери производительности!
e4defrag /mnt/ #проводим дефрагментацию шифрованной GNU/Linux

ทำให้เป็นกฎ: ทำ e4defrag บน GNU/LInux ที่เข้ารหัสเป็นครั้งคราวหากคุณมี HDD
การถ่ายโอนและการซิงโครไนซ์ [GNU/Linux > เข้ารหัส GNU/Linux] เสร็จสมบูรณ์ในขั้นตอนนี้

ที่ 4. การตั้งค่า GNU/Linux บนพาร์ติชัน sda7 ที่เข้ารหัส

หลังจากถ่ายโอน OS สำเร็จแล้ว /dev/sda4 > /dev/sda7 คุณจะต้องเข้าสู่ระบบ GNU/Linux บนพาร์ติชั่นที่เข้ารหัส และดำเนินการกำหนดค่าเพิ่มเติม (โดยไม่ต้องรีบูทพีซี) สัมพันธ์กับระบบที่เข้ารหัส นั่นคืออยู่ใน usb แบบสด แต่ดำเนินการคำสั่ง "สัมพันธ์กับรูทของระบบปฏิบัติการที่เข้ารหัส" “chroot” จะจำลองสถานการณ์ที่คล้ายกัน เพื่อรับข้อมูลอย่างรวดเร็วว่าระบบปฏิบัติการใดที่คุณใช้งานอยู่ในปัจจุบัน (เข้ารหัสหรือไม่ เนื่องจากข้อมูลใน sda4 และ sda7 ได้รับการซิงโครไนซ์)ยกเลิกการซิงโครไนซ์ระบบปฏิบัติการ สร้างในไดเรกทอรีราก (sda4/sda7_crypt) ไฟล์มาร์กเกอร์เปล่า เช่น /mnt/encryptedOS และ /mnt2/decryptedOS ตรวจสอบอย่างรวดเร็วว่าคุณใช้ OS ใด (รวมถึงอนาคตด้วย):

ls /<Tab-Tab>

B4.1. “การจำลองการเข้าสู่ระบบระบบปฏิบัติการที่เข้ารหัส”

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

B4.2. การตรวจสอบว่างานนั้นดำเนินการกับระบบที่เข้ารหัส

ls /mnt<Tab-Tab> 
#и видим файл "/шифрованнаяОС"

history
#в выводе терминала должна появиться история команд su рабочей ОС.

B4.3. การสร้าง/กำหนดค่าการแลกเปลี่ยนที่เข้ารหัส แก้ไข crypttab/fstabเนื่องจากไฟล์ swap ได้รับการฟอร์แมตทุกครั้งที่ระบบปฏิบัติการเริ่มทำงาน จึงไม่สมเหตุสมผลที่จะสร้างและแมปการสลับกับโลจิคัลดิสก์ในตอนนี้ และพิมพ์คำสั่งตามในย่อหน้า B2.2 สำหรับ Swap คีย์เข้ารหัสชั่วคราวจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อเริ่มต้นแต่ละครั้ง วงจรชีวิตของคีย์สลับ: การถอนการเชื่อมต่อ/การถอดพาร์ติชันการแลกเปลี่ยน (+ล้างแรม); หรือรีสตาร์ทระบบปฏิบัติการ การตั้งค่าการแลกเปลี่ยนโดยเปิดไฟล์ที่รับผิดชอบในการกำหนดค่าอุปกรณ์ที่เข้ารหัสแบบบล็อก (คล้ายกับไฟล์ fstab แต่รับผิดชอบเรื่อง crypto)

nano /etc/crypttab 

เราแก้ไข

#"ชื่อเป้าหมาย" "อุปกรณ์ต้นทาง" "ไฟล์คีย์" "ตัวเลือก"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

ตัวเลือก
* swap - ชื่อที่แมปเมื่อเข้ารหัส /dev/mapper/swap
* /dev/sda8 - ใช้โลจิคัลพาร์ติชันของคุณเพื่อสลับ
* /dev/urandom - ตัวสร้างคีย์เข้ารหัสแบบสุ่มสำหรับการแลกเปลี่ยน (ทุกครั้งที่บูตระบบปฏิบัติการใหม่ จะมีการสร้างคีย์ใหม่) ตัวสร้าง /dev/urandom มีการสุ่มน้อยกว่า /dev/random เนื่องจากทั้งหมด /dev/random ถูกใช้เมื่อทำงานในสถานการณ์หวาดระแวงที่เป็นอันตราย เมื่อโหลดระบบปฏิบัติการ /dev/random จะทำให้การโหลดช้าลงเป็นเวลาหลาย ± นาที (ดูการวิเคราะห์ระบบ).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -พาร์ติชันรู้ว่าเป็น swap และมีการจัดรูปแบบ "ตาม"; อัลกอริธึมการเข้ารหัส

#Открываем и правим fstab
nano /etc/fstab

เราแก้ไข

# swap เปิด / dev / sda8 ระหว่างการติดตั้ง
/dev/mapper/swap ไม่มีการแลกเปลี่ยน sw 0 0

/dev/mapper/swap คือชื่อที่ตั้งไว้ใน crypttab

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

fallocate -l 3G /swap #создание файла размером 3Гб (почти мгновенная операция)
chmod 600 /swap #настройка прав
mkswap /swap #из файла создаём файл подкачки
swapon /swap #включаем наш swap
free -m #проверяем, что файл подкачки активирован и работает
printf "/swap none swap sw 0 0" >> /etc/fstab #при необходимости после перезагрузки swap будет постоянный

การตั้งค่าพาร์ติชั่น swap เสร็จสมบูรณ์

B4.4. การตั้งค่า GNU/Linux ที่เข้ารหัส (การแก้ไขไฟล์ crypttab/fstab)ไฟล์ /etc/crypttab ตามที่เขียนไว้ข้างต้น อธิบายอุปกรณ์บล็อกที่เข้ารหัสที่ได้รับการกำหนดค่าระหว่างการบูตระบบ

#правим /etc/crypttab 
nano /etc/crypttab 

หากคุณจับคู่ส่วน sda7>sda7_crypt เหมือนในย่อหน้า B2.1

# "ชื่อเป้าหมาย" "อุปกรณ์ต้นทาง" "ไฟล์คีย์" "ตัวเลือก"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

หากคุณจับคู่ส่วน sda7>sda7_crypt เหมือนในย่อหน้า B2.2

# "ชื่อเป้าหมาย" "อุปกรณ์ต้นทาง" "ไฟล์คีย์" "ตัวเลือก"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

หากคุณจับคู่ส่วน sda7>sda7_crypt ในย่อหน้า B2.1 หรือ B2.2 แต่ไม่ต้องการป้อนรหัสผ่านอีกครั้งเพื่อปลดล็อคและบูตระบบปฏิบัติการ แทนที่จะใช้รหัสผ่าน คุณสามารถแทนที่คีย์ลับ/ไฟล์สุ่มได้

# "ชื่อเป้าหมาย" "อุปกรณ์ต้นทาง" "ไฟล์คีย์" "ตัวเลือก"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

ลักษณะ
* ไม่มี - รายงานว่าเมื่อโหลดระบบปฏิบัติการ จำเป็นต้องป้อนข้อความรหัสผ่านลับเพื่อปลดล็อครูท
* UUID - ตัวระบุพาร์ติชัน หากต้องการค้นหา ID ของคุณ ให้พิมพ์เทอร์มินัล (คำเตือนว่าจากนี้เป็นต้นไป คุณกำลังทำงานในเทอร์มินัลในสภาพแวดล้อม chroot และไม่ใช่ในเทอร์มินัล usb ที่ใช้งานจริงอื่น)

fdisk -l #проверка всех разделов
blkid #должно быть что-то подобное 

/dev/sda7: UUID=«81048598-5bb9-4a53-af92-f3f9e709e2f2» TYPE=«crypto_LUKS» PARTUUID=«0332d73c-07»
/dev/mapper/sda7_crypt: LABEL=«DebSHIFR» UUID=«382111a2-f993-403c-aa2e-292b5eac4780» TYPE=«ext4»

บรรทัดนี้สามารถมองเห็นได้เมื่อขอ blkid จากเทอร์มินัล usb แบบสดโดยติดตั้ง sda7_crypt)
คุณรับ UUID จาก sdaX ของคุณ (ไม่ใช่ sdaX_crypt!, UUID sdaX_crypt - จะถูกทิ้งไว้โดยอัตโนมัติเมื่อสร้างการกำหนดค่า grub.cfg)
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks การเข้ารหัสในโหมดขั้นสูง
* /etc/skey - ไฟล์คีย์ลับซึ่งจะถูกแทรกโดยอัตโนมัติเพื่อปลดล็อคการบูตระบบปฏิบัติการ (แทนการป้อนรหัสผ่านที่ 3) คุณสามารถระบุไฟล์ใดๆ ได้ถึง 8MB แต่ข้อมูลจะถูกอ่าน <1MB

#Создание "генерация" случайного файла <секретного ключа> размером 691б.
head -c 691 /dev/urandom > /etc/skey

#Добавление секретного ключа (691б) в 7-й слот заголовка luks
cryptsetup luksAddKey --key-slot 7 /dev/sda7 /etc/skey

#Проверка слотов "пароли/ключи luks-раздела"
cryptsetup luksDump /dev/sda7 

มันจะมีลักษณะดังนี้:

(ทำเองและดูเอง)

cryptsetup luksKillSlot /dev/sda7 7 #удаление ключа/пароля из 7 слота

/etc/fstab มีข้อมูลที่อธิบายเกี่ยวกับระบบไฟล์ต่างๆ

#Правим /etc/fstab
nano /etc/fstab

# "ระบบไฟล์" "จุดเมานท์" "ประเภท" "ตัวเลือก" "ถ่ายโอนข้อมูล" "ผ่าน"
# / was on / dev / sda7 ระหว่างการติดตั้ง
/dev/mapper/sda7_crypt / ext4 ข้อผิดพลาด = remount-ro 0 1

ตัวเลือก
* /dev/mapper/sda7_crypt - ชื่อของการแมป sda7>sda7_crypt ซึ่งระบุไว้ในไฟล์ /etc/crypttab
การตั้งค่า crypttab/fstab เสร็จสมบูรณ์

B4.5. การแก้ไขไฟล์การกำหนดค่า ช่วงเวลาสำคัญB4.5.1. แก้ไขการกำหนดค่า /etc/initramfs-tools/conf.d/resume

#Если у вас ранее был активирован swap раздел, отключите его. 
nano /etc/initramfs-tools/conf.d/resume

และแสดงความคิดเห็น (ถ้ามี) "#" บรรทัด "ดำเนินการต่อ" ไฟล์จะต้องว่างเปล่าโดยสมบูรณ์

B4.5.2. แก้ไขการกำหนดค่า /etc/initramfs-tools/conf.d/cryptsetup

nano /etc/initramfs-tools/conf.d/cryptsetup

ควรตรงกัน

# /etc/initramfs-tools/conf.d/cryptsetup
การเข้ารหัสลับ=ใช่
ส่งออก CRYPTSETUP

B4.5.3. แก้ไขการกำหนดค่า /etc/default/grub (การกำหนดค่านี้รับผิดชอบต่อความสามารถในการสร้าง grub.cfg เมื่อทำงานกับการเข้ารหัส /boot)

nano /etc/default/grub

เพิ่มบรรทัด “GRUB_ENABLE_CRYPTODISK=y”
ค่า 'y', grub-mkconfig และ grub-install จะตรวจสอบไดรฟ์ที่เข้ารหัสและสร้างคำสั่งเพิ่มเติมที่จำเป็นในการเข้าถึงไดรฟ์เหล่านั้นในเวลาบูต (insmods ).
จะต้องมีความคล้ายคลึงกัน

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || สะท้อน Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=ผู้ขาย"
GRUB_CMDLINE_LINUX="สแปลชที่เงียบสงบ noautomount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. แก้ไขการกำหนดค่า /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

ตรวจสอบว่าสายนั้น แสดงความคิดเห็น <#>
ต่อไปในอนาคต (และถึงตอนนี้พารามิเตอร์นี้จะไม่มีความหมายใด ๆ แต่บางครั้งก็รบกวนการอัปเดตอิมเมจ initrd.img)

B4.5.5. แก้ไขการกำหนดค่า /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

เพิ่ม

KEYFILE_PATTERN=”/etc/skey”
UMASK=0077

สิ่งนี้จะบรรจุคีย์ลับ "skey" ไว้ใน initrd.img ซึ่งจำเป็นต้องใช้คีย์เพื่อปลดล็อกรูทเมื่อระบบปฏิบัติการบูท (หากไม่ต้องการกรอกรหัสผ่านอีกครั้ง กุญแจ “สกาย” จะถูกแทนที่ด้วยตัวรถ)

B4.6. อัปเดต /boot/initrd.img [เวอร์ชัน]หากต้องการบรรจุรหัสลับลงใน initrd.img และใช้การแก้ไขการตั้งค่าการเข้ารหัส ให้อัปเดตรูปภาพ

update-initramfs -u -k all

เมื่ออัปเดต initrd.img (อย่างที่เขาว่ากันว่า “เป็นไปได้ แต่ก็ไม่แน่นอน”) คำเตือนที่เกี่ยวข้องกับ cryptsetup จะปรากฏขึ้นหรือเช่นการแจ้งเตือนเกี่ยวกับการสูญเสียโมดูล Nvidia ซึ่งเป็นเรื่องปกติ หลังจากอัพเดตไฟล์แล้วให้ตรวจสอบว่าได้อัพเดตจริงแล้วดูเวลา (สัมพันธ์กับสภาพแวดล้อม chroot./boot/initrd.img) คำเตือน! ก่อน [update-initramfs -u -k all] ต้องแน่ใจว่าได้ตรวจสอบว่า cryptsetup เปิดอยู่ /dev/sda7 sda7_crypt - นี่คือชื่อที่ปรากฏใน /etc/crypttab ไม่เช่นนั้นหลังจากรีบูตจะเกิดข้อผิดพลาด busybox)
ในขั้นตอนนี้ การตั้งค่าไฟล์การกำหนดค่าเสร็จสมบูรณ์

[C] การติดตั้งและกำหนดค่า GRUB2/การป้องกัน

ค1. หากจำเป็น ให้ฟอร์แมตพาร์ติชันเฉพาะสำหรับบูตโหลดเดอร์ (พาร์ติชันต้องมีขนาดอย่างน้อย 20MB)

mkfs.ext4 -v -L GRUB2 /dev/sda6

ค2. เมานต์ /dev/sda6 ไปที่ /mntดังนั้นเราจึงทำงานใน chroot จากนั้นจะไม่มีไดเร็กทอรี /mnt2 ในรูท และโฟลเดอร์ /mnt จะว่างเปล่า
เมานต์พาร์ติชัน GRUB2

mount /dev/sda6 /mnt

หากคุณติดตั้ง GRUB2 เวอร์ชันเก่ากว่าไว้ในไดเร็กทอรี /mnt/boot/grub/i-386-pc (สามารถใช้แพลตฟอร์มอื่นได้ เช่น ไม่ใช่ “i386-pc”) ไม่มีโมดูลการเข้ารหัส (โดยสรุป โฟลเดอร์ควรมีโมดูล รวมถึง .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; Signature_test.mod) ในกรณีนี้ต้องเขย่า GRUB2

apt-get update
apt-get install grub2 

สำคัญ! เมื่ออัปเดตแพ็คเกจ GRUB2 จากที่เก็บเมื่อถูกถามว่า "เกี่ยวกับการเลือก" ตำแหน่งที่จะติดตั้ง bootloader คุณต้องปฏิเสธการติดตั้ง (เหตุผล - พยายามติดตั้ง GRUB2 - ใน "MBR" หรือบน usb แบบสด). มิฉะนั้น คุณจะสร้างความเสียหายให้กับส่วนหัว/ตัวโหลดของ VeraCrypt หลังจากอัปเดตแพ็คเกจ GRUB2 และยกเลิกการติดตั้งแล้ว จะต้องติดตั้งบูตโหลดเดอร์ด้วยตนเองบนโลจิคัลดิสก์ ไม่ใช่ใน MBR หากพื้นที่เก็บข้อมูลของคุณมี GRUB2 เวอร์ชันล้าสมัย ให้ลอง อัปเดต มาจากเว็บไซต์อย่างเป็นทางการ - ยังไม่ได้ตรวจสอบ (ทำงานร่วมกับบูตโหลดเดอร์ GRUB 2.02 ~BetaX ล่าสุด)

ค3. การติดตั้ง GRUB2 ลงในพาร์ติชันเสริม [sda6]คุณต้องมีพาร์ติชันที่เมาท์ [รายการ C.2]

grub-install --force --root-directory=/mnt /dev/sda6

ตัวเลือก
* —บังคับ - การติดตั้ง bootloader ข้ามคำเตือนทั้งหมดที่มีอยู่เกือบตลอดเวลาและบล็อกการติดตั้ง (ธงที่จำเป็น)
* --root-directory - การติดตั้งไดเรกทอรี ไปที่รูทของ sda6
* /dev/sda6 - พาร์ติชั่น sda Raj ของคุณ (อย่าพลาด <space> ระหว่าง /mnt /dev/sda6)

ค4. การสร้างไฟล์กำหนดค่า [grub.cfg]ลืมคำสั่ง "update-grub2" ไปเลย และใช้คำสั่งสร้างไฟล์การกำหนดค่าแบบเต็ม

grub-mkconfig -o /mnt/boot/grub/grub.cfg

หลังจากเสร็จสิ้นการสร้าง/อัปเดตไฟล์ grub.cfg แล้ว เทอร์มินัลเอาต์พุตควรมีบรรทัดที่มีระบบปฏิบัติการที่พบในดิสก์ (“ grub-mkconfig” อาจจะค้นหาและรับระบบปฏิบัติการจาก usb แบบสดหากคุณมีแฟลชไดรฟ์มัลติบูตที่ใช้ Windows 10 และการกระจายแบบสดจำนวนมากซึ่งเป็นเรื่องปกติ) หากเทอร์มินัล "ว่างเปล่า" และไม่มีการสร้างไฟล์ "grub.cfg" จะเป็นกรณีเดียวกันเมื่อมีข้อบกพร่องของ GRUB ในระบบ (และน่าจะเป็นตัวโหลดจากสาขาทดสอบของที่เก็บ) ติดตั้ง GRUB2 ใหม่จากแหล่งที่เชื่อถือได้
การติดตั้ง "การกำหนดค่าอย่างง่าย" และการตั้งค่า GRUB2 เสร็จสมบูรณ์

C5. การทดสอบพิสูจน์ระบบปฏิบัติการ GNU/Linux ที่เข้ารหัสเราทำภารกิจ crypto สำเร็จอย่างถูกต้อง ทิ้ง GNU/Linux ที่เข้ารหัสไว้อย่างระมัดระวัง (ออกจากสภาพแวดล้อม chroot)

umount -a #размонтирование всех смонтированных разделов шифрованной GNU/Linux
Ctrl+d #выход из среды chroot
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a #размонтирование всех смонтированных разделов на live usb
reboot

หลังจากรีบูตพีซีแล้ว bootloader ของ VeraCrypt ควรโหลดขึ้นมา
การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

*การป้อนรหัสผ่านสำหรับพาร์ติชันที่ใช้งานอยู่จะเริ่มโหลด Windows
*การกดปุ่ม "Esc" จะถ่ายโอนการควบคุมไปยัง GRUB2 หากคุณเลือก GNU/Linux ที่เข้ารหัส - ต้องใช้รหัสผ่าน (sda7_crypt) เพื่อปลดล็อค /boot/initrd.img (หาก grub2 เขียน uuid "ไม่พบ" - นี่คือ ปัญหากับ grub2 bootloader ควรติดตั้งใหม่ เช่น จากสาขาทดสอบ/เสถียร เป็นต้น)
การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

*ขึ้นอยู่กับวิธีที่คุณกำหนดค่าระบบ (ดูย่อหน้า B4.4/4.5) หลังจากป้อนรหัสผ่านที่ถูกต้องเพื่อปลดล็อคอิมเมจ /boot/initrd.img คุณจะต้องใช้รหัสผ่านเพื่อโหลดเคอร์เนล OS/รูท หรือข้อมูลลับ คีย์จะถูกแทนที่โดยอัตโนมัติ " skey" ทำให้ไม่จำเป็นต้องป้อนข้อความรหัสผ่านอีกครั้ง
การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส
(หน้าจอ “การแทนที่รหัสลับอัตโนมัติ”)

*ต่อไปจะเป็นกระบวนการที่คุ้นเคยในการโหลด GNU/Linux ด้วยการตรวจสอบบัญชีผู้ใช้
การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

*หลังจากที่ผู้ใช้ให้สิทธิ์และเข้าสู่ระบบระบบปฏิบัติการแล้ว คุณจะต้องอัปเดต /boot/initrd.img อีกครั้ง (ดูข4.6)

update-initramfs -u -k all

และในกรณีมีบรรทัดเพิ่มเติมในเมนู GRUB2 (จากปิ๊กอัพ OS-m พร้อม usb สด) กำจัดพวกเขา

mount /dev/sda6 /mnt
grub-mkconfig -o /mnt/boot/grub/grub.cfg

สรุปโดยย่อของการเข้ารหัสระบบ GNU/Linux:

  • GNU/Linuxinux ได้รับการเข้ารหัสอย่างสมบูรณ์ รวมถึง /boot/kernel และ initrd;
  • รหัสลับถูกบรรจุใน initrd.img;
  • รูปแบบการอนุญาตปัจจุบัน (ป้อนรหัสผ่านเพื่อปลดล็อค initrd; รหัสผ่าน/กุญแจเพื่อบูตระบบปฏิบัติการ; รหัสผ่านสำหรับการอนุญาตบัญชี Linux).

การเข้ารหัสระบบ "การกำหนดค่า GRUB2 อย่างง่าย" ของพาร์ติชันบล็อกเสร็จสมบูรณ์

ค6. การกำหนดค่า GRUB2 ขั้นสูง การป้องกัน Bootloader พร้อมลายเซ็นดิจิทัล + การป้องกันการรับรองความถูกต้องGNU/Linux ได้รับการเข้ารหัสอย่างสมบูรณ์ แต่ไม่สามารถเข้ารหัส bootloader ได้ - เงื่อนไขนี้ถูกกำหนดโดย BIOS ด้วยเหตุนี้ จึงไม่สามารถบูตแบบเข้ารหัสแบบ chained ของ GRUB2 ได้ แต่การบูตแบบ chained แบบธรรมดานั้นเป็นไปได้/มีอยู่ แต่จากมุมมองด้านความปลอดภัยก็ไม่จำเป็น [ดู พี เอฟ].
สำหรับ GRUB2 ที่ “มีช่องโหว่” นักพัฒนาได้ใช้อัลกอริธึมการป้องกัน bootloader “ลายเซ็น/การรับรองความถูกต้อง”

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

ค6.1 การป้องกันการรับรองความถูกต้องของ Bootloaderตรวจสอบว่าคุณทำงานในเทอร์มินัลบนระบบปฏิบัติการที่เข้ารหัส

ls /<Tab-Tab> #обнаружить файл-маркер

สร้างรหัสผ่าน superuser สำหรับการอนุญาตใน GRUB2

grub-mkpasswd-pbkdf2 #введите/повторите пароль суперпользователя. 

รับแฮชรหัสผ่าน บางอย่างเช่นนี้

grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

เมานต์พาร์ติชัน GRUB

mount /dev/sda6 /mnt 

แก้ไขการกำหนดค่า

nano -$ /mnt/boot/grub/grub.cfg 

ตรวจสอบการค้นหาไฟล์ว่าไม่มีการตั้งค่าสถานะใด ๆ ใน "grub.cfg" (“-unrestricted” “-user”,
เพิ่มในตอนท้ายสุด (ก่อนบรรทัด ### END /etc/grub.d/41_custom ###)
"ตั้งค่า superusers="root"
แฮชรูทของpassword_pbkdf2"

มันควรจะเป็นแบบนี้

# ไฟล์นี้มีวิธีง่ายๆ ในการเพิ่มรายการเมนูที่กำหนดเอง เพียงพิมพ์คำว่า
# รายการเมนูที่คุณต้องการเพิ่มหลังความคิดเห็นนี้ ระวังอย่าให้เปลี่ยนแปลง
# บรรทัด 'exec tail' ด้านบน
### จบ /etc/grub.d/40_custom ###

### เริ่มต้น /etc/grub.d/41_custom ###
ถ้า [ -f ${config_directory}/custom.cfg ]; แล้ว
แหล่งที่มา ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; แล้ว
แหล่งที่มา $prefix/custom.cfg;
fi
ตั้งค่า superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### จบ /etc/grub.d/41_custom ###
#

หากคุณมักจะใช้คำสั่ง “grub-mkconfig -o /mnt/boot/grub/grub.cfg” และไม่ต้องการเปลี่ยนแปลง grub.cfg ทุกครั้ง ให้ป้อนบรรทัดด้านบน (รหัสผ่านการเข้าใช้งาน) ในสคริปต์ผู้ใช้ GRUB ที่ด้านล่างสุด

nano /etc/grub.d/41_custom 

แมว <<EOF
ตั้งค่า superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

เมื่อสร้างการกำหนดค่า “grub-mkconfig -o /mnt/boot/grub/grub.cfg” บรรทัดที่รับผิดชอบในการรับรองความถูกต้องจะถูกเพิ่มลงใน grub.cfg โดยอัตโนมัติ
ขั้นตอนนี้จะทำให้การตั้งค่าการตรวจสอบสิทธิ์ GRUB2 เสร็จสมบูรณ์

ค6.2. การป้องกัน Bootloader ด้วยลายเซ็นดิจิทัลจะถือว่าคุณมีคีย์เข้ารหัส pgp ส่วนตัวอยู่แล้ว (หรือสร้างคีย์ดังกล่าว) ระบบจะต้องติดตั้งซอฟต์แวร์เข้ารหัส: gnuPG; คลีโอพัตรา/เกรดเฉลี่ย; ม้าน้ำ ซอฟต์แวร์ Crypto จะทำให้ชีวิตของคุณง่ายขึ้นมากในเรื่องดังกล่าว Seahorse - แพ็คเกจเวอร์ชันเสถียร 3.14.0 (เวอร์ชันที่สูงกว่า เช่น V3.20 มีข้อบกพร่องและมีข้อบกพร่องที่สำคัญ)

ต้องสร้าง/เปิดใช้งาน/เพิ่มคีย์ PGP ในสภาพแวดล้อม su เท่านั้น!

สร้างคีย์เข้ารหัสส่วนบุคคล

gpg - -gen-key

ส่งออกคีย์ของคุณ

gpg --export -o ~/perskey

ติดตั้งโลจิคัลดิสก์ใน OS หากยังไม่ได้ติดตั้ง

mount /dev/sda6 /mnt #sda6 – раздел GRUB2

ทำความสะอาดพาร์ติชัน GRUB2

rm -rf /mnt/

ติดตั้ง GRUB2 ใน sda6 โดยวางคีย์ส่วนตัวของคุณไว้ในอิมเมจ GRUB หลัก "core.img"

grub-install --force --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" -k ~/perskey --root-directory=/mnt /dev/sda6

ตัวเลือก
* --force - ติดตั้ง bootloader โดยข้ามคำเตือนทั้งหมดที่มีอยู่ตลอดเวลา (ธงที่จำเป็น)
* —modules="gcry_sha256 gcry_sha512 Signature_test gcry_dsa gcry_rsa" - สั่งให้ GRUB2 โหลดโมดูลที่จำเป็นล่วงหน้าเมื่อพีซีเริ่มทำงาน
* -k ~/perskey -path ไปยัง "คีย์ PGP" (หลังจากบรรจุคีย์ลงในรูปภาพแล้วสามารถลบออกได้)
* --root-directory - ตั้งค่าไดเร็กทอรีบูตเป็นรูทของ sda6
/dev/sda6 - พาร์ติชัน sdaX ของคุณ

การสร้าง/อัพเดต grub.cfg

grub-mkconfig  -o /mnt/boot/grub/grub.cfg

เพิ่มบรรทัด “trust /boot/grub/perskey” ต่อท้ายไฟล์ “grub.cfg” (บังคับใช้คีย์ pgp) เนื่องจากเราติดตั้ง GRUB2 ด้วยชุดโมดูล ซึ่งรวมถึงโมดูลลายเซ็น “signature_test.mod” จึงไม่จำเป็นต้องเพิ่มคำสั่ง เช่น “set check_signatures=enforce” ลงในการกำหนดค่า

มันควรมีลักษณะเช่นนี้ (สิ้นสุดบรรทัดในไฟล์ grub.cfg)

### เริ่มต้น /etc/grub.d/41_custom ###
ถ้า [ -f ${config_directory}/custom.cfg ]; แล้ว
แหล่งที่มา ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; แล้ว
แหล่งที่มา $prefix/custom.cfg;
fi
เชื่อถือ /boot/grub/perskey.php
ตั้งค่า superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### จบ /etc/grub.d/41_custom ###
#

เส้นทางไปยัง "/boot/grub/perskey" ไม่จำเป็นต้องชี้ไปยังพาร์ติชันดิสก์เฉพาะ เช่น hd0,6 สำหรับ bootloader เอง "root" เป็นเส้นทางเริ่มต้นของพาร์ติชันที่ติดตั้ง GRUB2 (ดูชุดเน่า=..)

การลงนาม GRUB2 (ไฟล์ทั้งหมดในไดเร็กทอรี /GRUB ทั้งหมด) ด้วยคีย์ "เพอร์สกี้" ของคุณ
วิธีแก้ปัญหาง่ายๆ ในการลงนาม (สำหรับหอยโข่ง/นักสำรวจคาจา): ติดตั้งส่วนขยาย “ม้าน้ำ” สำหรับ Explorer จากพื้นที่เก็บข้อมูล ต้องเพิ่มรหัสของคุณลงในสภาพแวดล้อม su
เปิด Explorer ด้วย sudo “/mnt/boot” – RMB – ลงชื่อ บนหน้าจอจะเป็นแบบนี้ครับ

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

กุญแจสำคัญคือ “/mnt/boot/grub/perskey” (คัดลอกไปยังไดเร็กทอรีด้วง) จะต้องลงนามด้วยลายเซ็นของคุณเอง ตรวจสอบว่าลายเซ็นไฟล์ [*.sig] ปรากฏในไดเร็กทอรี/ไดเร็กทอรีย่อย
โดยใช้วิธีการที่อธิบายไว้ข้างต้น ลงชื่อ “/boot” (เคอร์เนลของเรา initrd) หากเวลาของคุณมีค่า วิธีนี้ไม่จำเป็นต้องเขียนสคริปต์ทุบตีเพื่อเซ็นชื่อ "ไฟล์จำนวนมาก"

เพื่อลบลายเซ็น bootloader ทั้งหมด (ถ้ามีอะไรผิดพลาด)

rm -f $(find /mnt/boot/grub -type f -name '*.sig')

เพื่อไม่ให้ลงนามใน bootloader หลังจากอัปเดตระบบ เราจะหยุดแพ็คเกจการอัปเดตทั้งหมดที่เกี่ยวข้องกับ GRUB2

apt-mark hold grub-common grub-pc grub-pc-bin grub2 grub2-common

ในขั้นตอนนี้ <ปกป้อง bootloader ด้วยลายเซ็นดิจิทัล> การกำหนดค่าขั้นสูงของ GRUB2 เสร็จสมบูรณ์

C6.3. การทดสอบการพิสูจน์ของ GRUB2 bootloader ได้รับการป้องกันด้วยลายเซ็นดิจิทัลและการรับรองความถูกต้องด้วง2. เมื่อเลือกการกระจาย GNU/Linux หรือเข้าสู่ CLI (บรรทัดคำสั่ง) จะต้องได้รับอนุญาตจากผู้ใช้ระดับสูง หลังจากป้อนชื่อผู้ใช้/รหัสผ่านที่ถูกต้อง คุณจะต้องใช้รหัสผ่านเริ่มต้น

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส
สกรีนช็อตของการรับรองความถูกต้องของ GRUB2 superuser ที่สำเร็จ

หากคุณแก้ไขไฟล์ GRUB2 ใดๆ/ทำการเปลี่ยนแปลงกับ grub.cfg หรือลบไฟล์/ลายเซ็น หรือโหลด module.mod ที่เป็นอันตราย คำเตือนที่เกี่ยวข้องจะปรากฏขึ้น GRUB2 จะหยุดการโหลดชั่วคราว

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส
ภาพหน้าจอ ความพยายามที่จะรบกวน GRUB2 "จากภายนอก"

ระหว่างการบูต "ปกติ" "โดยไม่มีการบุกรุก" สถานะรหัสออกจากระบบคือ "0" ดังนั้นจึงไม่ทราบว่าการป้องกันใช้งานได้หรือไม่ (นั่นคือ "มีหรือไม่มีการป้องกันลายเซ็น bootloader" ในระหว่างการโหลดปกติสถานะจะเป็น "0" เหมือนกัน - นี่ถือว่าแย่)

จะตรวจสอบการป้องกันลายเซ็นดิจิทัลได้อย่างไร?

วิธีที่ไม่สะดวกในการตรวจสอบ: ปลอม/ลบโมดูลที่ใช้โดย GRUB2 เช่น ลบลายเซ็น luks.mod.sig และรับข้อผิดพลาด

วิธีที่ถูกต้อง: ไปที่ bootloader CLI แล้วพิมพ์คำสั่ง

trust_list

ในการตอบสนอง คุณควรได้รับลายนิ้วมือ "perskey" หากสถานะเป็น "0" การป้องกันลายเซ็นจะไม่ทำงาน ให้ตรวจสอบย่อหน้า C6.2 อีกครั้ง
ในขั้นตอนนี้ การกำหนดค่าขั้นสูง “การป้องกัน GRUB2 ด้วยลายเซ็นดิจิทัลและการรับรองความถูกต้อง” เสร็จสมบูรณ์

C7 วิธีอื่นในการปกป้อง bootloader GRUB2 โดยใช้การแฮชวิธีการ "การป้องกัน/การรับรองความถูกต้องของ CPU Boot Loader" ที่อธิบายไว้ข้างต้นเป็นวิธีคลาสสิก เนื่องจากความไม่สมบูรณ์ของ GRUB2 ในสภาวะหวาดระแวงจึงเสี่ยงต่อการถูกโจมตีจริง ซึ่งฉันจะให้ไว้ด้านล่างในย่อหน้า [F] นอกจากนี้ หลังจากอัปเดตระบบปฏิบัติการ/เคอร์เนลแล้ว จะต้องเซ็นชื่อบูตโหลดเดอร์อีกครั้ง

การปกป้อง bootloader ของ GRUB2 โดยใช้การแฮช

ข้อดีเหนือคลาสสิก:

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

ข้อเสียมากกว่าคลาสสิก

  • การปลอมลายเซ็น (ตามทฤษฎีแล้ว เป็นไปได้ที่จะค้นหาการชนกันของฟังก์ชันแฮชที่กำหนด)
  • ระดับความยากเพิ่มขึ้น (เมื่อเทียบกับรุ่นคลาสสิก จำเป็นต้องมีทักษะเพิ่มเติมเล็กน้อยใน GNU/Linux OS)

แนวคิดการแฮชของ GRUB2/พาร์ติชั่นทำงานอย่างไร

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

สิ่ง.การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

การตรวจสอบที่คล้ายกันนี้เกิดขึ้นสี่ครั้งต่อวัน ซึ่งจะไม่โหลดทรัพยากรระบบ
การใช้คำสั่ง “-$ check_GRUB” การตรวจสอบทันทีจะเกิดขึ้นได้ทุกเมื่อโดยไม่ต้องบันทึก แต่ด้วยข้อมูลที่ส่งออกไปยัง CLI
การใช้คำสั่ง “-$ sudo Signature_GRUB” บูตโหลดเดอร์/พาร์ติชั่น GRUB2 จะถูกเซ็นชื่อใหม่ทันทีและการบันทึกที่อัปเดต (จำเป็นหลังจากอัปเดต OS/บูต) และชีวิตดำเนินต่อไป

การใช้วิธีการแฮชสำหรับ bootloader และส่วนต่างๆ

0) มาลงนาม GRUB bootloader/partition โดยการติดตั้งมันใน /media/username ก่อน

-$ hashdeep -c md5 -r /media/username/GRUB > /podpis.txt

1) เราสร้างสคริปต์โดยไม่มีส่วนขยายในรูทของ OS ที่เข้ารหัส ~/podpis ใช้สิทธิ์ด้านความปลอดภัย 744 ที่จำเป็นและการป้องกันที่เข้าใจผิดได้

กรอกเนื้อหา

#!/bin/bash

#Проверка всего раздела выделенного под загрузчик GRUB2 на неизменность.
#Ведется лог "о вторжении/успешной проверке каталога", короче говоря ведется полный лог с тройной вербализацией. Внимание! обратить взор на пути: хранить ЦП GRUB2 только на зашифрованном разделе OS GNU/Linux. 
echo -e "******************************************************************n" >> '/var/log/podpis.txt' && date >> '/var/log/podpis.txt' && hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB' >> '/var/log/podpis.txt'

a=`tail '/var/log/podpis.txt' | grep failed` #не использовать "cat"!! 
b="hashdeep: Audit failed"

#Условие: в случае любых каких-либо изменений в разделе выделенном под GRUB2 к полному логу пишется второй отдельный краткий лог "только о вторжении" и выводится на монитор мигание gif-ки "warning".
if [[ "$a" = "$b" ]] 
then
echo -e "****n" >> '/var/log/vtorjenie.txt' && echo "vtorjenie" >> '/var/log/vtorjenie.txt' && date >> '/var/log/vtorjenie.txt' & sudo -u username DISPLAY=:0 eom '/warning.gif' 
fi

เรารันสคริปต์จาก suการแฮชของพาร์ติชัน GRUB และโปรแกรมโหลดบูตจะถูกตรวจสอบ บันทึกบันทึก

มาสร้างหรือคัดลอก “ไฟล์ที่เป็นอันตราย” [virus.mod] ไปยังพาร์ติชัน GRUB2 และทำการสแกน/ทดสอบชั่วคราว:

-$ hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB

CLI ต้องเห็นการบุกรุกของ -ป้อมปราการ- ของเรา#ตัดบันทึกใน CLI

Ср янв  2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Moved from /media/username/GRUB/1nononoshifr
/media/username/GRUB/boot/grub/i386-pc/mda_text.mod: Ok
/media/username/GRUB/boot/grub/grub.cfg: Ok
hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 325
Files partially matched: 0
            Files moved: 1
        New files found: 0
  Known files not found: 0

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

2) ใส่ gif ที่นี่ > ~/warning.gif ตั้งค่าการอนุญาตเป็น 744

3) การกำหนดค่า fstab เพื่อติดตั้งพาร์ติชัน GRUB อัตโนมัติเมื่อบู๊ต

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 ค่าเริ่มต้น 0 0

4) การหมุนบันทึก

-$ sudo nano /etc/logrotate.d/podpis 

/var/log/podpis.txt {
ประจำวัน
หมุน 50
ขนาด 5M
วันที่
อัด
delaycompress
olddir /var/log/old.olddir
}

/var/log/vtorjenie.txt {
รายเดือน
หมุน 5
ขนาด 5M
วันที่
olddir /var/log/old.olddir
}

5) เพิ่มงานให้กับ cron

-$ sudo crontab -e

รีบูต '/สมัครสมาชิก'
0 */6 * * * '/podpis

6) การสร้างนามแฝงถาวร

-$ sudo su
-$ echo "alias подпись_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias проверка_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash

หลังจากอัพเดตระบบปฏิบัติการ -$ apt-get upgrade ลงนามพาร์ติชัน GRUB ของเราอีกครั้ง
-$ подпись_GRUB
ณ จุดนี้ การป้องกันแฮชของพาร์ติชัน GRUB เสร็จสมบูรณ์

[D] Wiping - การทำลายข้อมูลที่ไม่ได้เข้ารหัส

ลบไฟล์ส่วนตัวของคุณออกอย่างสมบูรณ์เสียจน “แม้แต่พระเจ้าก็ไม่สามารถอ่านมันได้” ตามที่ Trey Gowdy โฆษกของเซาท์แคโรไลนากล่าว

ตามปกติแล้วจะมี “ตำนานและ. ตำนาน" เกี่ยวกับการกู้คืนข้อมูลหลังจากที่ถูกลบออกจากฮาร์ดไดรฟ์แล้ว หากคุณเชื่อใน cyberwitchcraft หรือเป็นสมาชิกของชุมชน Dr web และไม่เคยลองกู้คืนข้อมูลหลังจากที่ถูกลบ/เขียนทับ (เช่น การกู้คืนโดยใช้ R-studio)ดังนั้นวิธีที่เสนอไปอาจไม่เหมาะกับคุณ ให้ใช้วิธีที่อยู่ใกล้คุณที่สุด

หลังจากถ่ายโอน GNU/Linux ไปยังพาร์ติชันที่เข้ารหัสได้สำเร็จ สำเนาเก่าจะต้องถูกลบออกโดยไม่มีความเป็นไปได้ในการกู้คืนข้อมูล วิธีการทำความสะอาดแบบสากล: ซอฟต์แวร์สำหรับซอฟต์แวร์ GUI ฟรีของ Windows/Linux BleachBit.
อย่างรวดเร็ว จัดรูปแบบส่วนข้อมูลที่ต้องถูกทำลาย (ผ่าน Gparted) เปิด BleachBit เลือก "ล้างพื้นที่ว่าง" - เลือกพาร์ติชัน (sdaX ของคุณพร้อมสำเนา GNU/Linux ก่อนหน้า)กระบวนการปอกจะเริ่มขึ้น BleachBit - ล้างดิสก์ในรอบเดียว - นี่คือสิ่งที่ "เราต้องการ" แต่! วิธีนี้ใช้งานได้ในทางทฤษฎีเท่านั้นหากคุณฟอร์แมตดิสก์และทำความสะอาดด้วยซอฟต์แวร์ BB v2.0

ความระมัดระวัง! BB เช็ดดิสก์โดยทิ้งข้อมูลเมตาไว้ ชื่อไฟล์จะถูกเก็บรักษาไว้เมื่อข้อมูลถูกกำจัด (Ccleaner - ไม่ทิ้งข้อมูลเมตา)

และความเชื่อผิด ๆ เกี่ยวกับความเป็นไปได้ในการกู้คืนข้อมูลนั้นไม่ใช่เรื่องโกหกทั้งหมดBleachbit V2.0-2 เดิมเป็นแพ็คเกจ OS Debian ที่ไม่เสถียร (และซอฟต์แวร์อื่นที่คล้ายคลึงกัน: sfill; wipe-Nautilus - ก็ถูกพบในธุรกิจสกปรกนี้เช่นกัน) จริงๆ แล้วมีข้อผิดพลาดร้ายแรง: ฟังก์ชัน "การล้างพื้นที่ว่าง" มันทำงานไม่ถูกต้อง บน HDD/แฟลชไดรฟ์ (ntfs/ext4). ซอฟต์แวร์ประเภทนี้เมื่อทำการล้างพื้นที่ว่างจะไม่เขียนทับดิสก์ทั้งหมดตามที่ผู้ใช้หลายคนคิด และบางส่วน (มากมาย) ระบบปฏิบัติการ/ซอฟต์แวร์ข้อมูลที่ถูกลบจะถือว่าข้อมูลนี้เป็นข้อมูลที่ไม่ถูกลบ/ข้อมูลผู้ใช้ และเมื่อล้าง "OSP" จะข้ามไฟล์เหล่านี้ ปัญหาคือว่าหลังจากทำความสะอาดดิสก์เป็นเวลานาน "ไฟล์ที่ถูกลบ" สามารถกู้คืนได้ แม้จะเช็ดแผ่นดิสก์ไปแล้วมากกว่า 3 รอบก็ตาม
บน GNU/Linux ที่ Bleachbit 2.0-2 ฟังก์ชั่นการลบไฟล์และไดเร็กทอรีอย่างถาวรทำงานได้อย่างน่าเชื่อถือ แต่ไม่ได้ล้างพื้นที่ว่าง เพื่อการเปรียบเทียบ: บน Windows ใน CCleaner ฟังก์ชัน “OSP สำหรับ ntfs” ทำงานได้อย่างถูกต้อง และพระเจ้าจะไม่สามารถอ่านข้อมูลที่ถูกลบได้จริงๆ

ดังนั้นเพื่อลบออกอย่างทั่วถึง "ประนีประนอม" ข้อมูลเก่าที่ไม่ได้เข้ารหัส Bleachbit ต้องการการเข้าถึงข้อมูลนี้โดยตรงจากนั้นใช้ฟังก์ชัน “ลบไฟล์/ไดเร็กทอรีอย่างถาวร”
หากต้องการลบ “ไฟล์ที่ถูกลบโดยใช้เครื่องมือระบบปฏิบัติการมาตรฐาน” ใน Windows ให้ใช้ CCleaner/BB พร้อมกับฟังก์ชัน “OSP” ใน GNU/Linux เกี่ยวกับปัญหานี้ (ลบไฟล์ที่ถูกลบ) คุณต้องฝึกฝนด้วยตัวเอง (การลบข้อมูล + ความพยายามอิสระในการกู้คืนและคุณไม่ควรพึ่งพาเวอร์ชันซอฟต์แวร์ (หากไม่ใช่บุ๊กมาร์กแสดงว่าเป็นข้อบกพร่อง))ในกรณีนี้เท่านั้นที่คุณจะสามารถเข้าใจกลไกของปัญหานี้และกำจัดข้อมูลที่ถูกลบออกไปได้อย่างสมบูรณ์

ฉันยังไม่ได้ทดสอบ Bleachbit v3.0 ปัญหาอาจได้รับการแก้ไขแล้ว
Bleachbit v2.0 ทำงานได้อย่างตรงไปตรงมา

ในขั้นตอนนี้ การล้างดิสก์เสร็จสิ้น

[E] การสำรองข้อมูลสากลของระบบปฏิบัติการที่เข้ารหัส

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

คำชี้แจงปัญหาการสำรองข้อมูลอุปกรณ์บล็อกที่เข้ารหัส:

  1. ความเป็นสากล - อัลกอริธึม/ซอฟต์แวร์สำรองข้อมูลเดียวกันสำหรับ Windows/Linux
  2. ความสามารถในการทำงานในคอนโซลด้วย usb GNU/Linux แบบสดใดๆ โดยไม่จำเป็นต้องดาวน์โหลดซอฟต์แวร์เพิ่มเติม (แต่ยังคงแนะนำ GUI);
  3. ความปลอดภัยของสำเนาสำรอง - “รูปภาพ” ที่เก็บไว้จะต้องได้รับการเข้ารหัส/ป้องกันด้วยรหัสผ่าน
  4. ขนาดของข้อมูลที่เข้ารหัสจะต้องสอดคล้องกับขนาดของข้อมูลจริงที่กำลังคัดลอก
  5. การแยกไฟล์ที่จำเป็นออกจากสำเนาสำรองได้อย่างสะดวก (ไม่จำเป็นต้องถอดรหัสทั้งส่วนก่อน)

ตัวอย่างเช่น การสำรอง/กู้คืนผ่านยูทิลิตี้ “dd”

dd if=/dev/sda7 of=/путь/sda7.img bs=7M conv=sync,noerror
dd if=/путь/sda7.img of=/dev/sda7 bs=7M conv=sync,noerror

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

ตัวอย่างเช่น การสำรองข้อมูล GNU/Linux ผ่านตัวเก็บถาวร [tar" | gpg] สะดวก แต่สำหรับการสำรองข้อมูล Windows คุณต้องหาวิธีแก้ปัญหาอื่น - มันไม่น่าสนใจ

E1. การสำรองข้อมูลสากล Windows/Linux ลิงก์ rsync (Grsync)+โวลุ่มของ VeraCryptอัลกอริทึมสำหรับการสร้างสำเนาสำรอง:

  1. การสร้างคอนเทนเนอร์ที่เข้ารหัส (ปริมาณ/ไฟล์) เวราคริปต์สำหรับระบบปฏิบัติการ;
  2. ถ่ายโอน/ซิงโครไนซ์ระบบปฏิบัติการโดยใช้ซอฟต์แวร์ Rsync ไปยังคอนเทนเนอร์เข้ารหัสลับของ VeraCrypt
  3. หากจำเป็น ให้อัปโหลดโวลุ่มของเวราคริปต์ไปที่ www.

การสร้างคอนเทนเนอร์เวราคริปต์ที่เข้ารหัสมีลักษณะเฉพาะของตัวเอง:
สร้างวอลลุ่มแบบไดนามิก (การสร้าง DT ใช้ได้เฉพาะใน Windows เท่านั้น และสามารถใช้ได้ใน GNU/Linux ด้วย);
สร้างวอลุ่มปกติ แต่มีข้อกำหนดของ "ตัวละครหวาดระแวง" (ตามผู้พัฒนา) – การจัดรูปแบบคอนเทนเนอร์

ไดนามิกวอลุ่มถูกสร้างขึ้นแทบจะทันทีใน Windows แต่เมื่อคัดลอกข้อมูลจาก GNU/Linux > VeraCrypt DT ประสิทธิภาพโดยรวมของการสำรองข้อมูลจะลดลงอย่างมาก

มีการสร้างโวลุ่ม Twofish ขนาด 70 GB ปกติ (สมมติว่าเป็นพลังงานพีซีโดยเฉลี่ย) เป็น HDD ~ ภายในครึ่งชั่วโมง (การเขียนทับข้อมูลคอนเทนเนอร์เดิมในการผ่านครั้งเดียวเกิดจากข้อกำหนดด้านความปลอดภัย) ฟังก์ชั่นการจัดรูปแบบวอลลุ่มอย่างรวดเร็วเมื่อสร้างได้ถูกลบออกจาก VeraCrypt Windows/Linux แล้ว ดังนั้นการสร้างคอนเทนเนอร์จึงทำได้ผ่าน "การเขียนใหม่เพียงครั้งเดียว" หรือการสร้างไดนามิกวอลุ่มที่มีประสิทธิภาพต่ำเท่านั้น

สร้างวอลลุ่มของเวราคริปต์ปกติ (ไม่ใช่ไดนามิก/ntfs)ไม่น่าจะมีปัญหาใดๆ

กำหนดค่า/สร้าง/เปิดคอนเทนเนอร์ใน VeraCrypt GUI> GNU/Linux live usb (โวลุ่มจะถูกเมาท์ไปที่ /media/veracrypt2 โดยอัตโนมัติ ส่วนโวลุ่ม Windows OS จะถูกเมาท์ไปที่ /media/veracrypt1) การสร้างการสำรองข้อมูลที่เข้ารหัสของ Windows OS โดยใช้ GUI rsync (แกรซิงค์)โดยทำเครื่องหมายในช่อง

การเข้ารหัสดิสก์เต็มรูปแบบของระบบที่ติดตั้ง Windows Linux มัลติบูตที่เข้ารหัส

รอให้กระบวนการเสร็จสิ้น เมื่อการสำรองข้อมูลเสร็จสมบูรณ์ เราจะมีไฟล์ที่เข้ารหัสหนึ่งไฟล์

ในทำนองเดียวกัน ให้สร้างสำเนาสำรองของระบบปฏิบัติการ GNU/Linux โดยยกเลิกการเลือกช่องทำเครื่องหมาย “ความเข้ากันได้ของ Windows” ใน rsync GUI

ความระมัดระวัง! สร้างคอนเทนเนอร์ Veracrypt สำหรับ “การสำรองข้อมูล GNU/Linux” ในระบบไฟล์ ext4. หากคุณสำรองข้อมูลไปยังคอนเทนเนอร์ ntfs เมื่อคุณกู้คืนสำเนาดังกล่าว คุณจะสูญเสียสิทธิ์/กลุ่มทั้งหมดในข้อมูลทั้งหมดของคุณ

คุณสามารถดำเนินการทั้งหมดในเทอร์มินัลได้ ตัวเลือกพื้นฐานสำหรับ rsync:
* -g -บันทึกกลุ่ม;
* -P —ความคืบหน้า — สถานะของเวลาที่ใช้ในการทำงานกับไฟล์
* -H - คัดลอกฮาร์ดลิงก์ตามที่เป็นอยู่;
* -a -โหมดเก็บถาวร (แฟล็ก rlptgoD หลายรายการ);
* -v -วาจา

หากคุณต้องการเมานต์ “โวลุ่ม Windows VeraCrypt” ผ่านคอนโซลในซอฟต์แวร์การตั้งค่าการเข้ารหัส คุณสามารถสร้างนามแฝง (su)

echo "alias veramount='cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt && mount /dev/mapper/ Windows_crypt /media/veracrypt1'" >> .bashrc && bash

ตอนนี้คำสั่ง "ภาพ veramount" จะแจ้งให้คุณป้อนข้อความรหัสผ่านและไดรฟ์ข้อมูลระบบ Windows ที่เข้ารหัสจะถูกติดตั้งในระบบปฏิบัติการ

แมป/เมานต์โวลุ่มระบบของ VeraCrypt ในคำสั่ง cryptsetup

cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt
mount /dev/mapper/Windows_crypt /mnt

แมป/เมานต์พาร์ติชัน/คอนเทนเนอร์ของ VeraCrypt ในคำสั่ง cryptsetup

cryptsetup open --veracrypt --type tcrypt /dev/sdaY test_crypt
mount /dev/mapper/test_crypt /mnt

แทนที่จะเป็นนามแฝง เราจะเพิ่ม (สคริปต์เพื่อเริ่มต้น) วอลุ่มระบบที่มี Windows OS และดิสก์ ntfs ที่เข้ารหัสแบบลอจิคัลให้กับการเริ่มต้น GNU/Linux

สร้างสคริปต์และบันทึกไว้ใน ~/VeraOpen.sh

printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sda3 Windows_crypt && mount /dev/mapper/Windows_crypt /media/Winda7 #декодируем пароль из base64 (bob) и отправляем его на запрос ввода пароля при монтировании системного диска ОС Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/КонтейнерНтфс #аналогично, но монтируем логический диск ntfs.

เราแจกจ่ายสิทธิ์ที่ "ถูกต้อง":

sudo chmod 100 /VeraOpen.sh

สร้างไฟล์ที่เหมือนกันสองไฟล์ (ชื่อเดียวกัน!) ใน /etc/rc.local และ ~/etc/init.d/rc.local
การกรอกไฟล์

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh -c "sleep 1 && '/VeraOpen.sh'" #после загрузки ОС, ждём ~ 1с и только потом монтируем диски.
exit 0

เราแจกจ่ายสิทธิ์ที่ "ถูกต้อง":

sudo chmod 100 /etc/rc.local && sudo chmod 100 /etc/init.d/rc.local 

เพียงเท่านี้ ตอนนี้เมื่อโหลด GNU/Linux เราไม่จำเป็นต้องป้อนรหัสผ่านเพื่อเมานต์ดิสก์ ntfs ที่เข้ารหัส ดิสก์จะถูกเมาท์โดยอัตโนมัติ

หมายเหตุสั้น ๆ เกี่ยวกับสิ่งที่อธิบายไว้ข้างต้นในย่อหน้า E1 ทีละขั้นตอน (แต่ตอนนี้สำหรับ OS GNU/Linux)
1) สร้างโวลุ่มใน fs ext4 > 4gb (สำหรับไฟล์) Linux ใน Veracrypt [Cryptbox]
2) รีบูตเป็น usb แบบสด
3) ~$ cryptsetup เปิด /dev/sda7 Lunux #mapping พาร์ติชั่นที่เข้ารหัส
4) ~$ mount /dev/mapper/Linux /mnt #mount พาร์ติชั่นที่เข้ารหัสไปที่ /mnt
5) ~$ mkdir mnt2 #การสร้างไดเร็กทอรีสำหรับการสำรองข้อมูลในอนาคต
6) ~$ cryptsetup open —veracrypt —พิมพ์ tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #แมปโวลุ่ม Veracrypt ที่ชื่อว่า “CryptoBox” และเมานต์ CryptoBox ไปที่ /mnt2
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #backup การดำเนินการของพาร์ติชันที่เข้ารหัสไปยังโวลุ่ม Veracrypt ที่เข้ารหัส

(หน้า/วินาที/ ความระมัดระวัง! หากคุณกำลังถ่ายโอน GNU/Linux ที่เข้ารหัสจากสถาปัตยกรรม/เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง เช่น Intel > AMD (นั่นคือ ปรับใช้การสำรองข้อมูลจากพาร์ติชันที่เข้ารหัสหนึ่งไปยังอีกพาร์ติชันที่เข้ารหัส Intel > AMD) อย่าลืม หลังจากถ่ายโอนระบบปฏิบัติการที่เข้ารหัสแล้ว ให้แก้ไขคีย์ทดแทนที่เป็นความลับแทนรหัสผ่าน คีย์ก่อนหน้า ~/etc/skey - จะไม่พอดีกับพาร์ติชันที่เข้ารหัสอื่นอีกต่อไป และไม่แนะนำให้สร้างคีย์ใหม่ "cryptsetup luksAddKey" จากใต้ chroot - อาจเกิดข้อผิดพลาดได้ เพียงใน ~/etc/crypttab ระบุแทน “/etc/skey” ชั่วคราว “none” " หลังจากรีบูตและเข้าสู่ระบบระบบปฏิบัติการแล้ว ให้สร้างคีย์ไวด์การ์ดลับของคุณอีกครั้ง)

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

[F] โจมตี GRUB2 bootloader

รายละเอียดหากคุณปกป้อง Bootloader ของคุณด้วยลายเซ็นดิจิทัลและ/หรือการรับรองความถูกต้อง (ดูข้อ C6)ดังนั้นสิ่งนี้จะไม่ป้องกันการเข้าถึงทางกายภาพ ข้อมูลที่เข้ารหัสจะยังคงไม่สามารถเข้าถึงได้ แต่การป้องกันจะถูกข้ามไป (รีเซ็ตการป้องกันลายเซ็นดิจิทัล) GRUB2 อนุญาตให้อาชญากรไซเบอร์ฉีดโค้ดของเขาลงใน bootloader โดยไม่ทำให้เกิดความสงสัย (เว้นแต่ผู้ใช้จะตรวจสอบสถานะ bootloader ด้วยตนเองหรือสร้างโค้ดสคริปต์ที่กำหนดเองที่แข็งแกร่งสำหรับ grub.cfg)

อัลกอริธึมการโจมตี ผู้บุกรุก

* บูทพีซีจาก usb สด การเปลี่ยนแปลงใด ๆ (ผู้ฝ่าฝืน) ไฟล์จะแจ้งให้เจ้าของพีซีทราบเกี่ยวกับการบุกรุก bootloader แต่การติดตั้ง GRUB2 ใหม่อย่างง่าย ๆ จะทำให้ grub.cfg (และความสามารถในการแก้ไขในภายหลัง) จะทำให้ผู้โจมตีสามารถแก้ไขไฟล์ใดๆ ได้ (ในสถานการณ์นี้เมื่อโหลด GRUB2 ผู้ใช้จริงจะไม่ได้รับการแจ้งเตือนสถานะจะเหมือนเดิม <0>)
* ติดตั้งพาร์ติชันที่ไม่ได้เข้ารหัส เก็บ “/mnt/boot/grub/grub.cfg”
* ติดตั้ง bootloader อีกครั้ง (ลบ "perskey" ออกจากอิมเมจ core.img)

grub-install --force --root-directory=/mnt /dev/sda6

* ส่งคืน “grub.cfg” > “/mnt/boot/grub/grub.cfg” แก้ไขหากจำเป็น เช่น เพิ่มโมดูล “keylogger.mod” ของคุณลงในโฟลเดอร์ที่มีโมดูลตัวโหลดใน “grub.cfg” > บรรทัด "insmod keylogger" หรือตัวอย่างเช่นหากศัตรูฉลาดแกมโกงหลังจากติดตั้ง GRUB2 ใหม่แล้ว (ลายเซ็นทั้งหมดยังคงอยู่) มันสร้างอิมเมจ GRUB2 หลักโดยใช้ "grub-mkimage พร้อมตัวเลือก (-c)" ตัวเลือก “-c” จะช่วยให้คุณสามารถโหลดการกำหนดค่าของคุณก่อนที่จะโหลด “grub.cfg” หลัก การกำหนดค่าสามารถประกอบด้วยเพียงบรรทัดเดียว: การเปลี่ยนเส้นทางไปยัง “modern.cfg” ใดๆ ผสมกับไฟล์ ~400 ไฟล์ (โมดูล+ลายเซ็น) ในโฟลเดอร์ "/boot/grub/i386-pc" ในกรณีนี้ ผู้โจมตีสามารถแทรกโค้ดที่กำหนดเองและโหลดโมดูลได้โดยไม่กระทบต่อ “/boot/grub/grub.cfg” แม้ว่าผู้ใช้จะใช้ “hashsum” กับไฟล์และแสดงไฟล์นั้นบนหน้าจอชั่วคราวก็ตาม
ผู้โจมตีไม่จำเป็นต้องแฮ็กข้อมูลเข้าสู่ระบบ/รหัสผ่านของผู้ใช้ระดับสูงของ GRUB2 เขาเพียงแค่ต้องคัดลอกบรรทัด (รับผิดชอบในการรับรองความถูกต้อง) "/boot/grub/grub.cfg" ไปที่ "modern.cfg" ของคุณ

ตั้งค่า superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

และเจ้าของพีซีจะยังคงได้รับการรับรองว่าเป็นผู้ใช้ระดับสูงของ GRUB2

กำลังโหลดโซ่ (bootloader โหลด bootloader อื่น)ตามที่ฉันเขียนไว้ข้างต้นไม่สมเหตุสมผล (มีจุดประสงค์เพื่อจุดประสงค์อื่น). ไม่สามารถโหลด bootloader ที่เข้ารหัสได้เนื่องจาก BIOS (การบูตลูกโซ่รีสตาร์ท GRUB2 > GRUB2 ที่เข้ารหัส ข้อผิดพลาด!). อย่างไรก็ตาม หากคุณยังคงใช้แนวคิดเรื่องการโหลดแบบลูกโซ่ คุณสามารถมั่นใจได้ว่าเป็นแบบที่เข้ารหัสที่กำลังโหลดอยู่ (ไม่ทันสมัย) "grub.cfg" จากพาร์ติชันที่เข้ารหัส และนี่ก็เป็นความรู้สึกผิด ๆ เกี่ยวกับความปลอดภัยด้วย เพราะทุกสิ่งที่ระบุไว้ใน "grub.cfg" ที่เข้ารหัส (การโหลดโมดูล) รวมเข้ากับโมดูลที่โหลดจาก GRUB2 ที่ไม่ได้เข้ารหัส

หากคุณต้องการตรวจสอบสิ่งนี้ ให้จัดสรร/เข้ารหัสพาร์ติชันอื่น sdaY คัดลอก GRUB2 ลงไป (การดำเนินการด้วงติดตั้งบนพาร์ติชันที่เข้ารหัสไม่สามารถทำได้) และใน "grub.cfg" (การกำหนดค่าที่ไม่ได้เข้ารหัส) เปลี่ยนบรรทัดเช่นนี้

เมนู 'GRUBx2' -- คลาสนกแก้ว -- คลาส gnu-linux -- คลาส gnu -- คลาสระบบปฏิบัติการ $ menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
โหลด_วิดีโอ
อินสโมด gzio
ถ้า [ x$grub_platform = xxen ]; จากนั้น insmod xzio; อินสโมด โซปิโอ; ฟิ
insmod part_msdos
insmod cryptodisk
อินสโมด ลักซ์
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ต่อ 2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
ปกติ /boot/grub/grub.cfg
}

สตริง
* insmod - โหลดโมดูลที่จำเป็นสำหรับการทำงานกับดิสก์ที่เข้ารหัส
* GRUBx2 - ชื่อของบรรทัดที่แสดงในเมนูการบูต GRUB2
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -ดู fdisk -l (sda9);
* ตั้งค่ารูท - ติดตั้งรูท;
* ปกติ /boot/grub/grub.cfg - ไฟล์กำหนดค่าที่ปฏิบัติการได้บนพาร์ติชันที่เข้ารหัส

ความมั่นใจว่าเป็น "grub.cfg" ที่เข้ารหัสซึ่งโหลดนั้นเป็นการตอบสนองเชิงบวกต่อการป้อนรหัสผ่าน/ปลดล็อค "sdaY" เมื่อเลือกบรรทัด "GRUBx2" ในเมนู GRUB

เมื่อทำงานใน CLI เพื่อไม่ให้สับสน (และตรวจสอบว่าตัวแปรสภาพแวดล้อม "set root" ทำงานหรือไม่) สร้างไฟล์โทเค็นเปล่า เช่น ในส่วนที่เข้ารหัส “/shifr_grub” ในส่วนที่ไม่ได้เข้ารหัส “/noshifr_grub” กำลังตรวจสอบใน CLI

cat /Tab-Tab

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

วิธีที่ง่ายที่สุดในการตรวจสอบว่าการป้องกันลายเซ็นดิจิทัลกำลังทำงานอยู่ (ไม่รีเซ็ต)และไม่มีใครบุกรุก bootloader ให้ป้อนคำสั่งใน CLI

list_trusted

เพื่อเป็นการตอบสนอง เราได้รับสำเนา "เพอร์สคีย์" ของเรา หรือไม่ก็ไม่ได้รับอะไรเลยหากเราถูกโจมตี (คุณต้องตรวจสอบ "set check_signatures=enforce").
ข้อเสียที่สำคัญของขั้นตอนนี้คือการป้อนคำสั่งด้วยตนเอง หากคุณเพิ่มคำสั่งนี้ใน "grub.cfg" และป้องกันการกำหนดค่าด้วยลายเซ็นดิจิทัล แสดงว่าเอาต์พุตเบื้องต้นของสแน็ปช็อตคีย์บนหน้าจอมีเวลาสั้นเกินไป และคุณอาจไม่มีเวลาดูเอาต์พุตหลังจากโหลด GRUB2 .
ไม่มีใครอ้างสิทธิ์เป็นพิเศษ: นักพัฒนาในตัวเขา เอกสาร ข้อ 18.2 ประกาศอย่างเป็นทางการ

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

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

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

สรุป:

1) การเข้ารหัสระบบบล็อกสำหรับ Windows นั้นใช้งานง่ายกว่า และการป้องกันด้วยรหัสผ่านเดียวนั้นสะดวกกว่าการป้องกันด้วยรหัสผ่านหลายรหัสด้วยการเข้ารหัสระบบบล็อก GNU/Linux พูดตามตรงว่าอย่างหลังนั้นเป็นแบบอัตโนมัติ

2) ฉันเขียนบทความตามความเกี่ยวข้องและมีรายละเอียด ง่าย คำแนะนำเกี่ยวกับการเข้ารหัสทั้งดิสก์ VeraCrypt/LUKS บนเครื่องเดียวในบ้าน ซึ่งดีที่สุดใน RuNet (IMHO) คู่มือนี้มีความยาว > 50 อักขระ ดังนั้นจึงไม่ครอบคลุมบทที่น่าสนใจบางบท เช่น นักเข้ารหัสที่หายตัวไป/เก็บตัวอยู่ในเงามืด เกี่ยวกับความจริงที่ว่าในหนังสือ GNU/Linux หลายเล่มพวกเขาเขียนน้อย/ไม่ได้เขียนเกี่ยวกับการเข้ารหัส เกี่ยวกับมาตรา 51 ของรัฐธรรมนูญแห่งสหพันธรัฐรัสเซีย โอ การออกใบอนุญาต/ห้าม การเข้ารหัสในสหพันธรัฐรัสเซียเกี่ยวกับสาเหตุที่คุณต้องเข้ารหัส “root/boot” คู่มือนี้ค่อนข้างครอบคลุมแต่มีรายละเอียดมาก (อธิบายแม้แต่ขั้นตอนง่ายๆ)ในทางกลับกัน สิ่งนี้จะช่วยคุณประหยัดเวลาได้มากเมื่อคุณเข้าถึง "การเข้ารหัสจริง"

3) ทำการเข้ารหัสดิสก์แบบเต็มบน Windows 7 64 GNU/ลินุกซ์นกแก้ว 4x; GNU/เดเบียน 9.0/9.5

4) ทำการโจมตีสำเร็จ ของเขา GRUB2 บูตโหลดเดอร์

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

6) ปรับปรุงและปรับปรุงคู่มือของฉันซึ่งเกี่ยวข้องในปี 2020

[G] เอกสารที่เป็นประโยชน์

  1. คู่มือผู้ใช้ TrueCrypt (กุมภาพันธ์ 2012 RU)
  2. เอกสารของเวราคริปต์
  3. /usr/share/doc/cryptsetup(-run) [ทรัพยากรท้องถิ่น] (เอกสารรายละเอียดอย่างเป็นทางการเกี่ยวกับการตั้งค่าการเข้ารหัส GNU/Linux โดยใช้ cryptsetup)
  4. การเข้ารหัสลับคำถามที่พบบ่อยอย่างเป็นทางการ (เอกสารโดยย่อเกี่ยวกับการตั้งค่าการเข้ารหัส GNU/Linux โดยใช้ cryptsetup)
  5. การเข้ารหัสอุปกรณ์ LUKS (เอกสารประกอบของ Archlinux)
  6. คำอธิบายโดยละเอียดของไวยากรณ์ cryptsetup (หน้าคนโค้ง)
  7. คำอธิบายโดยละเอียดของ crypttab (หน้าคนโค้ง)
  8. เอกสารอย่างเป็นทางการของ GRUB2.

แท็ก: การเข้ารหัสดิสก์แบบเต็ม, การเข้ารหัสพาร์ติชัน, การเข้ารหัสดิสก์ Linux แบบเต็ม, การเข้ารหัสระบบ LUKS1 เต็มรูปแบบ

เฉพาะผู้ใช้ที่ลงทะเบียนเท่านั้นที่สามารถเข้าร่วมในการสำรวจได้ เข้าสู่ระบบ, โปรด.

คุณกำลังเข้ารหัสหรือไม่?

  • ลด 17,1%ฉันเข้ารหัสทุกสิ่งที่ฉันสามารถทำได้ ฉันหวาดระแวง14

  • ลด 34,2%ฉันเข้ารหัสเฉพาะข้อมูลที่สำคัญ28

  • ลด 14,6%บางครั้งฉันก็เข้ารหัส บางครั้งฉันก็ลืม12

  • ลด 34,2%ไม่ ฉันไม่เข้ารหัส มันไม่สะดวกและมีราคาแพง28

ผู้ใช้ 82 คนโหวต งดออกเสียง 22 ราย

ที่มา: will.com

เพิ่มความคิดเห็น