Tags:
Node Thumbnail

เมื่อต้นปีนี้ กูเกิลเคยโชว์ Titan ชิปความปลอดภัยที่พัฒนาขึ้นเอง เพื่อสร้างความน่าเชื่อถือให้กับคลาวด์ Google Cloud Platform

ล่าสุดกูเกิลเผยรายละเอียดเพิ่มเติมของ Titan ว่าออกแบบมันขึ้นเพื่อสร้างความน่าเชื่อถือ (root of trust) ที่ระดับต่ำที่สุดเท่าที่เป็นไปได้ที่ระดับฮาร์ดแวร์ หน้าที่ของมันคือตรวจสอบว่าเซิร์ฟเวอร์เครื่องนั้นถูกบูตขึ้นมาในสภาวะที่ปลอดภัย (secure boot) ไม่โดนฝังมัลแวร์มาระหว่างทาง ไม่ว่าจะเป็นระดับของ OS หรือเฟิร์มแวร์

แนวคิดเรื่องการใช้ชิปพิเศษทำ secure boot ไม่ใช่เรื่องใหม่ ผู้ผลิตฮาร์ดแวร์หลายรายทำกันมานานแล้ว แต่ Titan พิเศษกว่านั้นเพราะมีฟีเจอร์ใหม่ 2 อย่างคือ 1) การซ่อมแซมตัวเอง (remediation) ในกรณีเฟิร์มแวร์มีบั๊ก และ 2) คุณสมบัติที่เรียกว่า first-instruction integrity ที่ต้องอธิบายกันยาวหน่อย

No Description

องค์ประกอบของ Titan ประกอบด้วย

  • หน่วยประมวลผลหลัก (secure application processor)
  • หน่วยประมวลผลสำหรับการเข้ารหัส (cryptographic co-processor)
  • ฮาร์ดแวร์สุ่มตัวเลข (random number generator)
  • ตัวจัดการลำดับชั้นของคีย์ (key hierarchy)
  • แรมแบบ SRAM (static ram)
  • สตอเรจแฟลช (flash)
  • หน่วยความจำแบบอ่านอย่างเดียว (read-only memory block)

ความปลอดภัยของ Titan เริ่มตั้งแต่ขั้นตอนการผลิต โดยมันจะฝังโค้ดที่แก้ไขไม่ได้ (เรียกว่า boot ROM) มาตั้งแต่โรงงาน ชิปทุกตัวจะถูกตรวจสอบความถูกต้องของโค้ดส่วนนี้ เพื่อการันตีความน่าเชื่อถือตั้งแต่ฐานราก

เมื่อ Titan บูตตัวเองขึ้นมา มันจะมีระบบตรวจสอบหน่วยความจำที่ทำงานทุกครั้ง เช็คหน่วยความจำทุกประเภทว่าไม่ถูกแก้ไข จากนั้นขั้นถัดไปคือโหลดเฟิร์มแวร์ (ที่ฝังอยู่ในหน่วยความจำแฟลชของชิป) ขึ้นมา แต่ถึงแม้ว่าเฟิร์มแวร์จะอยู่ในแฟลช ตัว boot ROM ก็จะไม่เชื่อถือเฟิร์มแวร์นี้ และตรวจสอบเฟิร์มแวร์ทุกครั้งด้วย public key

เมื่อ Titan โหลดเฟิร์มแวร์ (ที่ตรวจสอบแล้วว่าปลอดภัย) มันเข้าสู่การตรวจสอบกระบวนการบูตของเซิร์ฟเวอร์ โดยสื่อสารกับซีพียูหลักของเซิร์ฟเวอร์ผ่านบัส Serial Peripheral Interface (SPI) และทำหน้าที่ "สังเกต" กระบวนการบูตของเฟิร์มแวร์เซิร์ฟเวอร์

คุณสมบัติ first-instruction integrity ของ Titan คือมันสามารถเข้าไปตรวจสอบไฟล์เฟิร์มแวร์ในหน่วยความจำแฟลชของเซิร์ฟเวอร์ได้โดยตรง ไม่จำเป็นต้องรอเซิร์ฟเวอร์โหลดเฟิร์มแวร์เข้ามาก่อน และสามารถสั่งให้ฮาร์ดแวร์ที่ทำหน้าที่บูต (Baseboard Management Controller หรือ BMC) "หยุดรอ" การตรวจสอบเฟิร์มแวร์ให้เสร็จก่อนค่อยเริ่มบูตได้ด้วย ฟีเจอร์นี้ทำให้ Titan สามารถรู้ได้ว่าเฟิร์มแวร์ที่จะถูกบูตมีข้อมูลอะไรบ้างตั้งแต่ไบต์แรก และถ้าหากเฟิร์มแวร์ถูกแก้ไขโดยผู้ประสงค์ร้าย Titan ก็รู้ได้ก่อนบูตเลย

ที่มา - Google Cloud Platform Blog

Get latest news from Blognone

Comments

By: loptar on 28 August 2017 - 10:04 #1004411
loptar's picture

ถ้าจะแฮ๊ก ก็ต้องหาทางฝังไว้ตั้งแต่โรงงานผลิตชิปละซิเนี่ย

By: Hoo
AndroidWindows
on 28 August 2017 - 15:51 #1004464

ง่ายที่สุดคือทำ hacked firmware
ยากสุดคือหา private key ที่จะรับรอง firmware ที่ว่า...