- การใช้ logic analyzer ราคาถูกสามารถข้ามการเข้ารหัสดิสก์ทั้งลูกของ BitLocker บนคอมพิวเตอร์ที่มีชิป TPM แยกได้
- BitLocker จะสร้าง FVEK (Full Volume Encryption Key) ก่อน แล้วเข้ารหัสมันด้วย VMK (Volume Master Key) จากนั้นจึงเก็บไว้บนฮาร์ดดิสก์
- เมื่อเปิดใช้ TPM, VMK จะถูกเก็บไว้ใน TPM และระหว่างการบูตระบบจะดึง VMK จาก TPM มาใช้ถอดรหัสฮาร์ดดิสก์
- แต่ในกระบวนการดึง VMK นี้ มีการส่งข้อความในรูปแบบ plaintext
- เพื่อถอดข้อมูลนี้ ต้องจับคำสั่ง SPI ที่วิ่งระหว่าง CPU กับชิป TPM ด้วย logic analyzer
- การต่อ logic analyzer เข้ากับชิป TPM โดยตรงทำได้ยากมาก จึงเริ่มจากเชื่อมต่อกับชิปอื่นที่ใช้ SPI bus ร่วมกับ TPM เพื่อจับสัญญาณ
- ขั้นแรกคือต้องจับ SPI request ที่เข้าใจได้ง่าย แล้วถอดรหัส TIS ซึ่งเป็นอินเทอร์เฟซที่ใช้สื่อความหมายของการสื่อสารตามสเปก TPM
- ไม่มีวิธีง่าย ๆ ในการถอดรหัส TIS จึงต้องถอดด้วยมือ และจากนั้นจึงรู้ start byte ของสัญญาณ TPM
- จากนี้จึงเป็นขั้นตอนการจับคำสั่ง
TPM2_Unseal ที่ระบุไว้ในสเปก TPM 2.0 เพื่อดึงความลับออกมา
- ใช้ไบต์ที่ได้จาก TIS เพื่อค้นหาคำสั่ง TPM 2.0 แยกส่วน response แล้วใช้เครื่องมืออย่าง
tpmstream-web เพื่อแยก buffer ออกจาก response ของ TPM
- เมื่อได้คีย์แล้ว ก็สามารถเข้าถึงข้อมูลบนฮาร์ดดิสก์ได้
- ถอดฮาร์ดดิสก์ออกไปเชื่อมต่อกับระบบอื่น แล้วใช้เครื่องมืออย่าง
dislocker เพื่อสำรวจไฟล์ซิสเต็มที่ถูกเข้ารหัส
- ใช้วิธีดั้งเดิมคือสลับโปรแกรมบางตัวให้เป็น
cmd.exe เพื่อสร้าง system shell ที่ใช้งานได้จากหน้าจอล็อกอิน
- เมื่อได้
cmd ที่มีสิทธิ์ผู้ดูแลระบบแล้ว ก็ทำอะไรก็ได้
- สรุปคือ หากใช้ TPM แบบกายภาพ BitLocker จะอ่อนแอมาก จึงแนะนำให้ใช้ fTPM ที่รวมอยู่ใน CPU อย่างสมบูรณ์ ซึ่งทำให้การโจมตีลักษณะนี้เป็นไปไม่ได้
- หากต้องการใช้ BitLocker อย่างปลอดภัยบนระบบที่มี TPM แบบกายภาพ ควรกำหนด PIN หรือรหัสผ่าน
1 ความคิดเห็น
นี่เป็นอีกโพสต์หนึ่งในหัวข้อเดียวกัน
ดูเหมือนว่าปัญหานี้จะเกิดขึ้นเพราะมีเพียง Bitlocker เท่านั้นที่แปลกตรงไม่ใช้เซสชันที่เข้ารหัสซึ่ง TPM สร้างไว้เพื่อป้องกันการโจมตีแบบ man-in-the-middle
ว่ากันว่า systemd ไม่มีปัญหาแบบนี้เมื่อใช้ TPM และการเข้ารหัส LUKS
Bitlocker ดูเปราะบางมากทีเดียวในบางสถานการณ์ มากกว่าที่ผมคิดไว้
ทั้งที่เป็นโมดูลความปลอดภัยที่มีคำว่า Trusted อยู่ในชื่อแท้ ๆ เลยนึกว่าจะไม่มีปัญหาแบบนี้เสียอีก...