MCU กับ Secure Element ต่างกันอย่างไร หน้าที่กระบวนการทำงานร่วมกันของทั้งสององค์ประกอบนี้ แต่ละส่วนสำคัญอย่างไร ในบทความนี้ผมจะมาอธิบายด้วยภาษาง่ายๆ ให้ทุกท่านได้เห็นภาพกัน
MCU คืออะไร?
MCU (Microcontroller Unit) คือชิปประมวลผลแบบ “จบในตัว” ในชิปเดียวจะมีครบทั้ง CPU RAM และอุปกรณ์สื่อสาร (USB, SPI, I2C)
อุปกรณ์ที่เราใช้ในชีวิตประจำวันไม่ว่าจะเป็น ไมโครเวฟ, รีโมตแอร์, เครื่องซักผ้า — เครื่องใช้ไฟฟ้าเหล่านี้ ทั้งหมดล้วยแล้วแต่ใช้ MCU เป็นองค์ประกอบทั้งสิ้น
ความเหมาะสมในการใช้ MCU กับ Trezor One
เหตุผลที่ Hardware Wallet รุ่นแรก อย่าง Trezor One เลือกใช้ MCU เพียงตัวเดียวเพราะโครงสร้างออกแบบง่าย ไม่มีการส่งข้อมูลข้ามชิปไปมาซึ่งทำให้ไม่เกิดการสื่อสารระหว่างชิปที่อาจถูกดักข้อมูลหรือแทรกแซงได้และการใช้ MCU จะประหยัดงบประมาณและพัฒนาเร็วเนื่องจากชิปหาได้ทั่วไป เพราะในตอนนั้นโจทย์ใหญ่ของการพัฒนาคือทำยังไงก็ได้ให้ Private Key นั้นแยกออกจากคอมพิวเตอร์ที่เชื่อมต่อกับอินเตอร์เน็ตตลอดเวลา
ข้อจำกัดของ MCU ใน Hardware Wallet
แต่ข้อจำกัดร้ายแรงของ MCU ทั่วไป คือมันไม่ได้ถูกออกแบบมาเพื่อป้องกันการโจมตีทางกายภาพ ผู้โจมตีหากเข้าถึงฮาร์ดแวร์ได้สามารถใช้อุปกรณ์และเทคนิคต่างๆในการแงะเอา Private Key ออกมาได้
จึงทำให้เกิดไอเดียในการเอา Secure Element Chip เข้ามาเสริมในสถาปัตยกรรมเดิมที่มีเพียง Micro Controller Unit
Secure Element (SE) คืออะไร
คือ ชิปที่เกิดมาเพื่อเก็บความลับโดยเฉพาะ มันถูกออกแบบให้ในเชิงกายภาพสามารถป้องกันการโจมตีในแบบต่างๆทางกายภาพได้ ซึ่งจะนำมาแก้ปัญหาจุดอ่อนที่ได้กล่าวมมาของ MCU
หน้าที่ของ SE มีแค่ไม่กี่อย่าง แต่สำคัญมากได้แก่:
- สร้างและเก็บ Private Key
- คำนวณคริปโตกราฟี
- ลงนามธุรกรรม (Signing)
และที่สำคัญที่สุดคือ กุญแจไม่สามารถอ่านออกจากชิปได้ ไม่ว่าด้วยวิธีใด มันจึงเป็นองค์ประกอบที่เข้ามาเติมเต็มให้ฮาร์ดแวร์วอลเล็ตนั้นปลอดภัยมากยิ่งขึ้น
สิ่งที่ทำให้ Secure Element ต่างจาก MCU
Secure Element ถูกออกแบบมาให้ป้องกันการโจมตีแบบต่างๆ มันสามารถตรวจจับการโจมตีได้และหากจำเป็น Secure Element มีกระบวนการในการทำลายข้อมูลที่อยู่ในตัวเองทันทีฃ
เราจะมั่นใจในตัว Secure Element ได้อย่างไร
เราจะมันใจได้อย่างไรว่า Secure Element จะไม่ทำอะไรแปลกๆเ พิ่มเติม หรือไปติดต่อกับสิ่งอื่นนอกชิปภายในอุปกรณ์
คำตอบคือในส่วนของโปรโตคอลการทำงาน และสถาปัตยกรรมของมัน โดยเงื่อนไขในการทำงานของมันที่ออกแบบมาเฉพาะจุด
มันมีระบบปฏิบัติการของตัวเอง มีหน่วยความจำที่เข้ารหัสตลอดเวลา มีวงจรตรวจจับความผิดปกติต่างๆ โดยโปรโตคอล หรือถ้าอธิบายง่ายๆคือภาษาการทำงานของมัน จะถูกเขียนมาเพื่อเพียงแค่หน้าที่ที่จำเป็นเท่านั้น
ทำให้มันจะเข้าใจแค่ในส่วนของหน้าที่ที่มันต้องทำคือเซ็นธุรกรรม และปกป้องคีย์ และการจะติดต่อกับอะไรนอกชิป เช่น การรับธุรกรรมมาเพื่อเซ็นต์ธุรกรรม
หลังจากน้นจะมี MCU เป็นคนส่งให้เสมอ MCU จะเป็นเหมือนหน้าบ้านที่ไม่สามารถลัดคิวตรงนี้ได้ และ Secure Element ก็เป็นตู้เซฟที่รู้สึกตัวได้เมื่อโดนโจมตี และไม่รับฟังคนอื่นนอกจาก MCU จะให้อะไรมันมาทำ
โดยมี Secure Channel Protocol (SCP03) ในการติดต่อกันระหว่าง MCU และ Secure Element เพื่อป้องกันการดักฟังระหว่างทาง เป็นโปรโตคอลเฉพาะที่มีเพียงมันที่เข้าใจกันเอง
ก่อนคุยกัน:
- MCU และ Secure Element ต้องพิสูจน์ตัวตนซึ่งกันและกัน
- สร้าง Session Key ใหม่ทุกครั้ง
ระหว่างคุย:
- ข้อมูลถูกเข้ารหัส (Encryption)
- มีการตรวจสอบความถูกต้อง
แม้จะเอาสายไปเสียบฟังบนบอร์ดก็จะเห็นแค่ข้อมูลเข้ารหัสทั้งหมด เนื่องจากมีโปรโตคอลเฉพาะ แนวคิดสำคัญของการออกแบบ:
“MCU โดนเจาะได้ แต่ SE นั้นยังปลอดภัย”
ผู้ผลิตฮาร์ดแวร์วอลเล็ตออกแบบโดยตั้งสมมติฐานว่า:
วันหนึ่ง MCU อาจถูกยึดครองได้
ดังนั้น:
MCU เป็นแค่ “คนส่งข้อความ”
ตรรกะสำคัญทั้งหมดอยู่ใน SE
SE ตัดสินใจเองว่าธุรกรรมถูกต้องหรือไม่
แม้เฟิร์มแวร์ MCU จะถูกแก้ไข แต่มันก็ยังไม่สามารถขอกุญแจจาก SE ได้
MCU เก่งเรื่องการสื่อสารและประสบการณ์ผู้ใช้แต่ไม่เหมาะกับการเก็บความลับเพราะจุดอ่อนขิงชิปด้านกายภาพ
Secure Element จึงถูกออกแบบมาให้ป้องกันการโจมตีระดับฮาร์ดแวร์โดยตรง จึงถูกนำมาใช้งานเฉพาะในส่วนของการป้องกันข้อมูลลับ
ในยุคนี้ ฮาร์ดแวร์วอลเล็ตทุกรุ่นจึงบรรจุ Secure Element ลงไปแล้วฮาร์ดแวร์วอลเล็ตรุ่นนิยม อย่าง Trezor One ที่ใช้ MCU ล้วน ๆ ก็ประกาศไม่ผลิตต่อแล้ว ดังนั้น กาาใส่ Secure Element เข้าไปใน ฮาร์ดแวร์วอลเล็ต และทำงานร่วมกันกับ MCU ปัจจุบันการเป็นมาตรฐานขั้นต่ำที่ผู้ผลิตแต่ละรายต้องมี






Share:
Hardware Wallet ทำงานยังไง? ทำไมถึงปลอดภัย