Shufflecake เครื่องมือสำหรับสร้างวอลุ่มที่ซ่อนอยู่

ชัฟเฟิลเค้ก

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

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

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

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

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

Shufflecake และโมดูลเคอร์เนลได้รับการทดสอบเฉพาะบน Debian และ Ubuntuที่ใช้เคอร์เนลเวอร์ชัน 5.13 และ 5.15 เท่านั้น (Ubuntu 22.04 รองรับ) ควรทราบว่าโครงการนี้ยังคงเป็นเพียงต้นแบบที่กำลังพัฒนาและไม่ควรนำไปใช้จัดเก็บข้อมูลที่ละเอียดอ่อน

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

เกี่ยวกับ ชัฟเฟิลเค้ก

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

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

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

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

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

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

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

หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google