TPM คืออะไร ? ทำให้คอมพิวเตอร์เราปลอดภัยขึ้นได้ยังไง ?

TPM หรือ Trusted Platform Module เป็นอุปกรณ์ที่เมื่อก่อนไม่ค่อยได้รับความสนใจในกลุ่มผู้ใช้ทั่วไปสักเท่าไหร่ มักจะอยู่ในกลุ่มของธุรกิจซะเยอะ แต่ตั้งแต่วันที่ Windows 11 ออกมา บังคับให้เครื่องจะต้องมี TPM 2.0 จึงสามารถที่จะใช้งานได้ วันนี้เรามาดูกันดีกว่าว่า มันคืออะไร และ ทำไมถึงเป็นอุปกรณ์ที่ทำให้คอมพิวเตอร์ของเราปลอดภัยมากขึ้น

ถ้าเราไม่มี TPM จะเป็นอย่างไร ?

ก่อนเราจะไปดูตัว TPM กัน เราขอเล่าก่อนดีกว่าว่า ถ้าเกิด เราไม่มี TPM เราจะเจอปัญหาอะไรบ้าง อะไรคือสิ่งที่ทำให้ TPM เกิดขึ้นมา

ปกติเวลาเราจะ เก็บซ่อน หรือรักษาความลับ สิ่งนึงที่เราทำได้คือ การเข้ารหัส (Encryption) ซึ่งการจะทำแบบนั้นได้ มันจะต้องมีของอยู่ทั้งหมด 3 อย่างด้วยกันคือ ตัวข้อมูลเอง, วิธีการเข้ารหัส และสุดท้ายสำคัญมากคือ กุญแจ (Key)

2 อย่างแรกที่บอก มันไม่น่ามีปัญหาอะไร ตัวข้อมูลเราก็เตรียมมารอได้อยู่แล้ว ส่วนวิธีการ มันเป็นเรื่องที่บอกกันได้อยู่แล้ว แต่ประเด็นสำคัญคือ Key เพราะถ้าคนที่ไม่ดีเข้ามา ก็สามารถเอา Key ไปเพื่อถอดรหัสข้อมูลได้ทั้งหมด แล้วเราจะเข้ารหัสทำไมแต่แรก ดังนั้น เป็นชิ้นส่วนสำคัญ

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

เอาให้ลึกกว่าเดิมอีก ถ้าเราเอาไปเก็บใน Primary Storage หรือ RAM ในคอมพิวเตอร์ทั่ว ๆ ไป และ Unified Memory บน Apple Silicon ละ แน่นอนว่า พอมันเป็น Memory แบบนี้ ทุก ๆ Application สามารถเข้าถึงได้ ทำให้อาจจะมีคนเขียนโปรแกรมเข้ามาเพื่อพยายาม Overflow และ พยายามลัดเลาะเพื่อจะดึง Key ออกไปได้อยู่ดี

หนักกว่านั้น นอกจากจะดึง Key ออกไป อาจจะมีการแทรกอะไรบางอย่างกลับเข้าไปอีก ทำให้เกิดคำถามว่า แล้วเราจะมั่นใจได้ยังไงว่า ไอ้สิ่งที่เราเก็บไว้ ในที่นี้คือ Key อย่างแรกมันเป็น Key จริง ๆ และ มันเป็น Key ที่ถูกต้อง การป้องกันตัวเอง (System Integrety Protection) ทำได้ยากมาก ๆ

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

Trusted Platform Module (TPM)

เพื่อเป็นการแก้ปัญหาที่เราเล่ากันไปก่อนหน้านี้ ทำให้ TPM เลยเกิดขึ้นมา ถ้าเราไม่สามารถเก็บ หรือทำอะไรในเครื่องแล้วปลอดภัย เราก็แยกออกมาเป็น Hardware อีกชุดซะสิ ตัวมันเหมือนคอมพิวเตอร์ขนาดย่อม ๆ เลย ภายในของมันมีพวก ชุดคำสั่งสำหรับการทำ Random Generator และพวก การเข้าและถอดรหัส แบบต่าง ๆ เช่น SHR-1 เป็นต้น

เพื่อให้มันมีความปลอดภัยมากขึ้น พื้นฐานสุด ๆ เลยคือ การทำให้ Feature ของเจ้า Hardware ตัวนี้จะน้อยมาก ๆ ทำอะไรได้โคตรน้อยมาก ๆ เกิดมาทำเท่าที่ต้องทำเลย ไม่มีอะไรมากกว่านั้น

หนึ่งใน Feature ที่มันไม่ควรมีที่สุดคือการเข้าถึง Key เพราะถ้าเข้าได้ แล้วเราจะแยก Hardware ออกมาทำไม เราก็แค่เปลี่ยนที่เก็บ แต่เราก็เข้าถึงมันได้อยู่ดี ดังนั้นมันจะต้องทำให้เข้าถึงไม่ได้ แต่ปัญหาคือ เราจะทำยังไง ให้เราสามารถใช้กุญแจที่อยู่ใน TPM ได้

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

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

อ้าว แล้วถ้าเราทำแบบนั้น มันก็ไม่ยากปะ เราก็เข้าไปหาไฟล์ของ Key ที่โดนเข้ารหัสผ่าน TPM มา แล้วเราก็ป้อนให้ TPM บอกว่า เอาไปถอดรหัสซะนะ มันก็จบแล้วเหรอ มันง่ายไปน่ะ จริง ๆ แล้ว ใน TPM สามารถทำสิ่งนึงที่เราเรียกว่า Sealing ได้

Sealing

เพื่อให้เข้าใจง่ายขึ้น อยากให้นึกภาพว่า การเข้ารหัสที่เราทำไป เหมือนกับการเล่นแปลงสารในจดหมาย แต่จดหมายที่เราส่งไป เราไม่รู้เลยว่าจดหมายที่เราส่งไปนั้นจริง ๆ แล้วมันโดนแอบเปิดไว้ก่อนหรือไม่

ดังนั้น พวกจดหมายสำคัญ ๆ เวลาเราส่งเราเลยทำการ Sealing หรือปิดผนึก ประโยชน์แรกคือ การป้องกันการเปิดจากคนอื่น และ เป็นการยืนยันว่า จดหมายฉบับนี้จะถูกเปิดระหว่างทางหรือไม่

ใช่แล้ว Sealing ใน TPM ก็ไม่ต่างกัน แต่แทนที่เราจะใช้ครั่งหรือแม่กุญแจพวกนั้น เราก็ใช้ Key อื่น ๆ มาเพื่อเป็นตัวช่วยในการยืนยันแทน เช่นการใช้ Configuration บางอย่างบน TPM หรือจะเป็น ID อะไรบางอย่างที่ Generate จาก Hardware อาจจะมีการรวม ID จากหลาย ๆ  Hardware แล้ว Hash ก็ได้ เพื่อเป็นการผูกว่า ต้องเป็น เครื่อง ๆ นี้ ที่มี Configuration แบบนี้ ๆ ถึงจะถอดและเข้ารหัสได้เท่านั้น

ดังนั้น ถ้าขาด Configuration ถึงเราจะมี Key ที่ผ่านการเข้ารหัสจาก TPM แล้วเขียนโปรแกรมมาเพื่อเอาไฟล์นั้นเข้า TPM เพื่อถอดรหัส มันก็จะไม่สำเร็จนั่นเอง

TPM หน้าตาเป็นยังไง ?

ลักษณะของมันเล็กมาก ๆ คือเป็น Chip ตัวนึง สำหรับใน Motherboard หลาย ๆ รุ่นในปัจจุบันเขาจะทำการ Built-in TPM Hardware เข้ามาใน Motherboard แล้ว เราสามารถตรวจสอบกับเว็บของ Brand Motherboard ของเราได้เลย ตัวอย่างเช่น ASUS Motherboard ที่ออกตั้งแต่ปี 2015 จะมี TPM Hardware 2.0 หมดเลย

แต่สำหรับเครื่องที่ไม่มี TPM Hardware มันจะมี Hardware Module ตัวเล็ก ๆ ให้เราสามารถเอามาเสียบกับ Motherboard ของเราได้ เท่านี้ เราก็สามารถใช้งานได้แล้ว

นอกจากนั้น ใน CPU บางตัวก็ยังมีการเตรียมพวกชุดคำสั่งพิเศษที่ทำหน้าที่คล้ายกับ TPM เช่นใน Intel มี Intel Trusted Execution Technology (TXT) หรือใน AMD ก็ไม่น้อยหน้ามี AMD Platform Security Processor (PSP)

เราเอา TPM มาทำให้ระบบ และ ข้อมูลของเราปลอดภัยขึ้นได้ยังไง ?

ในเมื่อมันสามารถเข้ารหัสได้ ดังนั้น Application พื้นฐานที่สุด ก็น่าจะเป็นการเข้ารหัสข้อมูลของเราเหมือนกับในเครื่อง Mac ที่มี Secure Enclave และ FileVault เพื่อเข้ารหัสข้อมูลในเครื่องทั้งหมด ฝั่ง Windows ก็มี BitLocker เหมือนกัน ที่ทำหน้าที่เดียวกันเป๊ะ ๆ โดย พวกข้อมูลก็จะโดนเข้ารหัสโดยการใช้ Key ตัวนึงที่อยู่ภายใน TPM คือ Secure Root Key (SRK) ดังนั้นข้อมูลของเราก็จะมีความปลอดภัยมากขึ้น ถ้าโดนถอดอุปกรณ์ในการจัดเก็บข้อมูลไป

แต่ในแง่ของระบบเอง อย่างตัวระบบปฏิบัติการ (OS) ก็นำมาใช้ เช่น Windows ก็อาจจะใช้เป็นพวก DRM ในการยืนยันพวก License ต่าง ๆ หรือจะเป็นพวกการทำ System Integrety Protection หรือการป้องกันตัวระบบ เป็นการยืนยันว่าระบบไม่ได้โดนแอบโม หรือเปลี่ยนแปลง เพื่อความปลอดภัย ป้องกันการโดนเจาะ หรือ การโจรกรรมต่าง ๆ ที่เกิดขึ้นได้

สรุป

Trusted Platform Module (TPM) เป็น Hardware ตัวนึงที่เข้ามาช่วยในการรักษาความลับ เป็นตัวกลางในการเข้ารหัส ทำให้ข้อมูล และ เครื่องของเราปลอดภัยมากขึ้นจาก การโจรกรรมข้อมูล และ การโจมตีหลาย ๆ อย่างได้อย่างไม่น่าเชื่อเลยละ ตัวมันเล็กนิ๊ดเดียวอยู่ใน Motherboard ในเครื่องคอมพิวเตอร์ของเราแค่นั้นเอง วันนี้น่าจะพอทำให้รู้จักกับเจ้า TPM จิ๋ว ๆ