เผยแพร่ Shufflecake ซึ่งเป็นชุดเครื่องมือสำหรับสร้างพาร์ติชันดิสก์ที่เข้ารหัสที่ซ่อนอยู่

บริษัทตรวจสอบความปลอดภัย Kudelski Security ได้เผยแพร่เครื่องมือที่เรียกว่า Shufflecake ซึ่งช่วยให้คุณสามารถสร้างระบบไฟล์ที่ซ่อนอยู่ซึ่งกระจัดกระจายไปตามพื้นที่ว่างบนพาร์ติชันที่มีอยู่ และแยกไม่ออกจากข้อมูลที่เหลือแบบสุ่ม พาร์ติชันถูกสร้างขึ้นในลักษณะที่หากไม่ทราบรหัสการเข้าถึง เป็นการยากที่จะพิสูจน์ว่ามีอยู่จริงแม้ว่าจะทำการวิเคราะห์ทางนิติวิทยาศาสตร์ก็ตาม รหัสของยูทิลิตี้ (shufflecake-userland) และโมดูลเคอร์เนล Linux (dm-sflc) เขียนด้วยภาษา C และเผยแพร่ภายใต้ลิขสิทธิ์ GPLv3 ซึ่งทำให้ไม่สามารถรวมโมดูลเคอร์เนลที่เผยแพร่ในเคอร์เนล Linux หลักได้เนื่องจากความไม่เข้ากันกับ ใบอนุญาต GPLv2 ที่ให้เคอร์เนลมา

โปรเจ็กต์นี้อยู่ในตำแหน่งที่เป็นโซลูชันขั้นสูงกว่า Truecrypt และ Veracrypt สำหรับการซ่อนข้อมูลที่ต้องมีการป้องกัน ซึ่งได้รับการสนับสนุนดั้งเดิมสำหรับแพลตฟอร์ม Linux และช่วยให้คุณสามารถวางพาร์ติชั่นที่ซ่อนอยู่บนอุปกรณ์ได้มากถึง 15 พาร์ติชั่น ซ้อนกันภายในเพื่อสร้างความสับสนในการแยกวิเคราะห์ ของการดำรงอยู่ของพวกเขา หากการใช้ Shufflecake นั้นไม่ได้เป็นความลับ ดังที่สามารถตัดสินได้ เช่น จากการมีอยู่ของยูทิลิตี้ที่เกี่ยวข้องในระบบ ก็จะไม่สามารถกำหนดจำนวนพาร์ติชันที่ซ่อนอยู่ทั้งหมดที่สร้างขึ้นได้ พาร์ติชันที่ซ่อนอยู่ที่สร้างขึ้นสามารถจัดรูปแบบได้ตามดุลยพินิจของผู้ใช้เพื่อรองรับระบบไฟล์ใด ๆ เช่น ext4, xfs หรือ btrfs แต่ละพาร์ติชันจะถือเป็นอุปกรณ์บล็อกเสมือนที่แยกจากกันโดยมีคีย์ปลดล็อคของตัวเอง

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

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

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

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

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

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

การใช้งาน Shufflecake มีประสิทธิภาพค่อนข้างสูง แต่เนื่องจากมีค่าใช้จ่าย ทำให้ปริมาณงานช้ากว่าประมาณสองเท่าเมื่อเทียบกับการเข้ารหัสดิสก์ตามระบบย่อย LUKS การใช้ Shufflecake ยังส่งผลให้มีค่าใช้จ่ายเพิ่มเติมสำหรับ RAM และพื้นที่ดิสก์ในการจัดเก็บข้อมูลบริการ ปริมาณการใช้หน่วยความจำประมาณ 60 MB ต่อพาร์ติชัน และพื้นที่ดิสก์ที่ 1% ของขนาดทั้งหมด สำหรับการเปรียบเทียบ เทคนิค WORAM ซึ่งมีจุดประสงค์คล้ายกัน ส่งผลให้ช้าลง 5 ถึง 200 เท่า โดยสูญเสียพื้นที่ดิสก์ที่ใช้งานได้ 75%

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

ที่มา: opennet.ru

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