กลับไปหน้าบทความ

อ่าน 3 นาที

เทรเซอร์

TRESOR ( คำย่อแบบเรียกซ้ำ ของ "TRESOR Runs Encryption Securely Outside RAM" และยังเป็นคำภาษาเยอรมันที่แปลว่า ตู้เซฟ ) เป็น แพตช์ เคอร์เนล Linux ที่ให้ การเข้ารหัส โดยใช้ CPU...

เทรเซอร์

TRESOR ( คำย่อแบบเรียกซ้ำของ "TRESOR Runs Encryption Securely Outside RAM" และยังเป็นคำภาษาเยอรมันที่แปลว่าตู้เซฟ ) เป็น แพตช์ เคอร์เนล Linuxที่ให้การเข้ารหัสโดยใช้CPU เพียงอย่างเดียว เพื่อป้องกันการโจมตีแบบ Cold Bootบนระบบคอมพิวเตอร์ โดยทำการเข้ารหัสภายในรีจิสเตอร์ของ CPUแทนที่จะเป็นหน่วยความจำเข้าถึงแบบสุ่ม (RAM) เป็นหนึ่งในสองวิธีแก้ปัญหาที่เสนอสำหรับคอมพิวเตอร์ทั่วไป อีกวิธีหนึ่งเรียกว่า "frozen cache" ซึ่งใช้แคชของCPUแทน[ 1 ]ได้รับการพัฒนามาจากAESSEซึ่งเป็นรุ่นก่อนหน้า นำเสนอในงานEuroSec 2010 และงานUSENIX Security 2011 [ 2 ]ผู้เขียนระบุว่าอนุญาตให้ถือว่า RAM ไม่น่าเชื่อถือจากมุมมองด้านความปลอดภัยโดยไม่ขัดขวางระบบ

แรงจูงใจ

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

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

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

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

แนวทางของ TRESOR

TRESOR เป็นวิธีการแก้ปัญหาความไม่ปลอดภัยด้วยซอฟต์แวร์ โดยการจัดเก็บและประมวลผลคีย์การเข้ารหัสเกือบทั้งหมดบนCPUเท่านั้น และในรีจิสเตอร์ที่เข้าถึงได้เฉพาะ ระดับสิทธิ์สูงสุด ( ring 0 ) เท่านั้น ยกเว้นช่วงเวลาสั้นๆ ในการคำนวณเริ่มต้นเมื่อเริ่มเซสชัน วิธีนี้ทำให้มั่นใจได้ว่าคีย์การเข้ารหัสจะไม่สามารถเข้าถึงได้โดย โค้ด ในพื้นที่ผู้ใช้หรือหลังจากการโจมตีแบบ cold boot TRESOR เขียนขึ้นเป็นแพตช์สำหรับเคอร์เนลที่จัดเก็บคีย์การเข้ารหัสในรีจิสเตอร์ดีบัก x86และใช้การสร้าง คีย์แบบรอบ ทันที (on-the-fly round key generation) ความเป็นอะตอมิก (atomicity)และการบล็อกการเข้าถึงรีจิสเตอร์ดีบักของptrace ตามปกติ เพื่อความปลอดภัย

TRESOR ได้รับการกล่าวถึงล่วงหน้าจากวิทยานิพนธ์ในปี 2010 ของ Tilo Muller ซึ่งวิเคราะห์ปัญหาการโจมตีแบบ Cold Boot เขาได้สรุปว่า โปรเซสเซอร์ x86 สมัยใหม่ มีพื้นที่รีจิสเตอร์สองส่วนที่การเข้ารหัสเคอร์เนลบน CPU เป็นไปได้จริง ได้แก่ รีจิสเตอร์ SSEซึ่งสามารถทำให้มีสิทธิ์พิเศษได้โดยการปิดใช้งานคำสั่ง SSE ทั้งหมด (และโปรแกรมใดๆ ที่พึ่งพาคำสั่งเหล่านั้น) และรีจิสเตอร์ดีบักซึ่งมีขนาดเล็กกว่ามากแต่ไม่มีปัญหาดังกล่าว เขาปล่อยให้ผู้อื่นตรวจสอบในส่วนหลัง และพัฒนาการ แจกจ่าย ต้นแบบที่เรียกว่าParanoixโดยอิงตามวิธีการรีจิสเตอร์ SSE [ 3 ]

ผู้พัฒนาได้ระบุว่า "การรัน TRESOR บน CPU 64 บิตที่รองรับAES-NIจะไม่มีผลกระทบต่อประสิทธิภาพเมื่อเทียบกับการใช้งานAES ทั่วไป " [ 4 ]และทำงานได้เร็วกว่าการเข้ารหัสมาตรฐานเล็กน้อย แม้ว่าจะต้องมีการคำนวณคีย์ใหม่ ซึ่งเป็นผลลัพธ์ที่ทำให้ผู้เขียนประหลาดใจในตอนแรกเช่นกัน[ 2 ]

ช่องโหว่ที่อาจเกิดขึ้น

บทความของผู้เขียนระบุรายละเอียดดังต่อไปนี้:

  • แม้ว่าจะไม่สามารถตัดความเป็นไปได้ที่ข้อมูลจาก CPU จะรั่วไหลไปยัง RAM ได้ แต่ก็ไม่พบกรณีใดๆ ที่เกิดขึ้นระหว่างการทดสอบอย่างเป็นทางการ คาดว่าหากเกิดกรณีดังกล่าวขึ้นจะสามารถแก้ไขได้ด้วยการอัปเดตแพทช์
  • การเข้าถึงคีย์การเข้ารหัสในระดับรูทผ่านเคอร์เนลของระบบที่กำลังทำงานอยู่นั้น สามารถทำได้โดยใช้โมดูลเคอร์เนลที่โหลดได้หรือหน่วยความจำเสมือน ( /dev/kmem ) และหน่วยความจำทางกายภาพ ( /dev/mem ) หากคอมไพล์ระบบรองรับสิ่งเหล่านี้ แต่โดยทั่วไปแล้วดูเหมือนว่าจะไม่สามารถเข้าถึงได้ด้วยวิธีใดๆ ที่ทราบในระบบที่กำลังทำงานอยู่ตามปกติ
  • สถานะการนอนหลับและการใช้พลังงานต่ำ ของ ACPI : - ในโปรเซสเซอร์จริง ค่าในรีจิสเตอร์จะถูกรีเซ็ตเป็นศูนย์ในระหว่างสถานะ ACPI S3 (ระงับการทำงานไปยัง RAM) และ S4 (ระงับการทำงานไปยังดิสก์) เนื่องจาก CPU จะปิดการทำงานในระหว่างสถานะเหล่านี้
  • การโจมตีขณะบูตเครื่องเย็น (Cold boot attacks) บนซีพียู: - บนโปรเซสเซอร์จริง ค่าในรีจิสเตอร์จะถูกล้างเป็นศูนย์ทั้งในการรีเซ็ตฮาร์ดแวร์และการรีเซ็ตซอฟต์แวร์ (" Ctrl-Alt-Delete ") อย่างไรก็ตาม ปัจจุบันรีจิสเตอร์ของซีพียูมีความเสี่ยงในเครื่องเสมือนเนื่องจากจะถูกรีเซ็ตในระหว่างการจำลองการรีเซ็ตฮาร์ดแวร์ แต่จะไม่ถูกรีเซ็ตในระหว่างการรีเซ็ตซอฟต์แวร์ ผู้เขียนเห็นว่านี่เป็นข้อบกพร่องที่เห็นได้ชัดในหลายๆ การใช้งานของเครื่องเสมือน แต่ขอตั้งข้อสังเกตว่าระบบเสมือนจะมีความเสี่ยงโดยเนื้อแท้แม้ว่าจะแก้ไขปัญหานี้แล้วก็ตาม เนื่องจากรีจิสเตอร์ทั้งหมดในเครื่องเสมือนน่าจะสามารถเข้าถึงได้โดยใช้ระบบโฮสต์
  • TRESOR ทนทานต่อการโจมตีแบบจับเวลาและการโจมตีแบบใช้แคชโดยการออกแบบคำสั่ง AES-NI ซึ่ง CPU รองรับส่วนขยายชุดคำสั่ง AES [ 5 ]โปรเซสเซอร์ที่สามารถจัดการส่วนขยาย AES ได้ ณ ปี 2011 ได้แก่ Intel WestmereและSandy Bridge (ยกเว้น i3 บางรุ่น) และรุ่นต่อมาAMD Bulldozerและโปรเซสเซอร์VIA PadLock บางรุ่น
  • ในปี 2012 เอกสารชื่อ TRESOR-HUNT แสดงให้เห็นว่าการโจมตี DMAสามารถทำลายระบบนี้ได้อย่างไร โดยการแทรกโค้ดที่จะทำงานอย่างมองไม่เห็นที่วงแหวน 0 (ระดับสิทธิ์สูงสุด) โค้ดนี้จะข้าม "การล็อกเอาต์" ที่กำหนดโดย TRESOR ทำให้สามารถอ่านคีย์จากรีจิสเตอร์ดีบักและถ่ายโอนไปยังหน่วยความจำปกติได้ เอกสารยังเสนอวิธีการบรรเทาการโจมตีดังกล่าวอีกด้วย[ 6 ]

ดูเพิ่มเติม

เอกสารอ้างอิงและหมายเหตุ

  1. ^ Erik Tews (ธันวาคม 2010). "Crypto Talk ที่ 27C3: FrozenCache – การลดผลกระทบจากการโจมตีขณะบูตเครื่องสำหรับซอฟต์แวร์เข้ารหัสแบบเต็มดิสก์ วันที่ 3 เวลา 23:00 น. ห้อง 2" . การประชุม Chaos Communication Congressครั้งที่ 27 .
  2. ^ a b Müller, Tilo; Freiling, Felix C.; Dewald, Andreas (2011). "TRESOR รันการเข้ารหัสอย่างปลอดภัยนอก RAM" (PDF) . เอกสารฉบับร่าง .
  3. ^ Müller, Tilo (พฤษภาคม 2010). "การใช้งาน AES ที่ทนทานต่อการบูตเย็นในเคอร์เนล Linux" (PDF) . วิทยานิพนธ์ .
  4. ^ "TRESOR รันการเข้ารหัสอย่างปลอดภัยนอก RAM "
  5. ^ผู้เขียนอ้างอิง Intel : Shay Gueron, เอกสารไวท์เปเปอร์ชุดคำสั่งมาตรฐานการเข้ารหัสขั้นสูงของ Intel (AES) ฉบับปรับปรุง 3.0: "นอกเหนือจากการปรับปรุงประสิทธิภาพแล้ว คำสั่ง AES ยังให้ประโยชน์ด้านความปลอดภัยที่สำคัญอีกด้วย การทำงานในเวลาที่ไม่ขึ้นกับข้อมูลและไม่ใช้ตาราง ช่วยกำจัดภัยคุกคามหลักๆ ที่เกี่ยวข้องกับเวลาและแคช ซึ่งเป็นภัยคุกคามต่อการใช้งานซอฟต์แวร์ AES ที่ใช้ตาราง"
  6. ^ Blass, Erik-Oliver; Robertson, William (2012-12-03). "TRESOR-HUNT: การโจมตีการเข้ารหัสที่จำกัดด้วย CPU" . ACSAC 2012 : 71– 78. doi : 10.1145/2420950.2420961 .
  • หน้าหลักของ TRESOR
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=TRESOR&oldid=1355709173 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เทรเซอร์

TRESOR ( คำย่อแบบเรียกซ้ำ ของ "TRESOR Runs Encryption Securely Outside RAM" และยังเป็นคำภาษาเยอรมันที่แปลว่า ตู้เซฟ ) เป็น แพตช์ เคอร์เนล Linux ที่ให้ การเข้ารหัส โดยใช้ CPU...

แรงจูงใจ

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

แนวทางของ TRESOR

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

ช่องโหว่ที่อาจเกิดขึ้น

บทความของผู้เขียนระบุรายละเอียดดังต่อไปนี้: