การรักษาความปลอดภัยระบบฝังตัวโดยใช้ PSoC 64

By Jacob Beningo

Contributed By DigiKey's North American Editors

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

นักออกแบบระบบที่ใช้ไมโครคอนโทรลเลอร์นั้นมีโซลูชันหลากหลายที่สามารถนำมาใช้เพื่อทำให้การใช้งานการรักษาความปลอดภัยง่ายขึ้น และให้เครื่องมือสำหรับดำเนินการนำมาใช้งานให้สำเร็จ ตัวอย่างเช่น ไมโครคอนโทรลเลอร์แบบซิงเกิลคอร์ สามารถใช้ Arm's TrustZone ซึ่งเป็นส่วนหนึ่งของสถาปัตยกรรม Armv8-M (และอื่น ๆ ) นอกจากนี้ยังมีวิธีแก้ปัญหาด้วยไมโครคอนโทรลเลอร์แบบมัลติคอร์

บทความนี้แสดงให้เห็นถึงวิธีการที่นักพัฒนาสามารถใช้โปรเซสเซอร์แบบมัลติคอร์เพื่อรักษาความปลอดภัยโซลูชันแบบฝังตัว โดยเฉพาะอย่างยิ่งจะตรวจสอบไมโครคอนโทรลเลอร์ความปลอดภัย Cypress PSoC 64 และเครื่องมือที่มีให้เพื่อใช้โซลูชันที่ปลอดภัย

พื้นฐานการรักษาความปลอดภัยแบบฝังตัว

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

SPE คือสภาพแวดล้อมการดำเนินการแบบแยกส่วนที่เก็บหน่วยความจำ ส่วนประกอบ และโค้ดแอปพลิเคชันแยกจาก NSPE ถือได้ว่า SPE ป็นตัวประมวลผลความปลอดภัย โดย SPE เรียกใช้โค้ดและการดำเนินการที่ปลอดภัย เช่น ระบบปฏิบัติการที่ปลอดภัย และ/หรือ Root of Trust (RoT) นอกจากนั้น SPE จะดำเนินการบริการที่เชื่อถือได้ เช่น การเข้ารหัส การจัดเก็บข้อมูลที่ปลอดภัย การรับรอง และการบันทึกที่ปลอดภัย การใช้งานที่เชื่อถือได้ที่เกี่ยวข้องกับการดำเนินการที่ปลอดภัยจำนวนจำกัดจะทำงานใน SPE

ในส่วนของ NSPE นั้น อาจถูกมองว่าเป็นสภาพแวดล้อมการดำเนินการที่มีคุณลักษณะหลากหลาย และเรียกใช้งานทุกอย่าง ยกเว้นการดำเนินการที่ปลอดภัย แท้จริงแล้ว NSPE เป็นโมเดลการเขียนโปรแกรมที่นักพัฒนาระบบฝังตัวส่วนใหญ่คุ้นเคย มี RTOS และส่วนประกอบส่วนใหญ่ของแอปพลิเคชัน

การแยกตามฮาร์ดแวร์เป็นหนึ่งในวิธีการหลักหรือแนวปฏิบัติที่ดีที่สุด ซึ่งจาก Arm® Platform Security Architecture (PSA) เพื่อสร้างระบบที่ปลอดภัย การแยกชั้นต่าง ๆ ที่เราเพิ่งพูดถึงสามารถเห็นได้ในภาพที่ 1 โดยมี PSoC 64 เป็นตัวอย่าง ในตัวอย่างนี้ SPE และ NSPE (1) ให้การแยกฮาร์ดแวร์โดยมีสภาพแวดล้อมรันไทม์บนตัวประมวลผลแยกกัน นอกจากการแยกรันไทม์แล้ว RoT และการบริการที่เชื่อถือได้ยังถูกแยกออกไปอีก (2) สุดท้ายนี้ แอปพลิเคชันที่เชื่อถือได้แต่ละรายการใน SPE จะถูกแยกออกโดยใช้เครื่องมือต่าง ๆ เช่น พาร์ติชันที่เชื่อถือได้และ MPU (3)

แผนภาพของการใช้งานที่ปลอดภัยที่ใช้การแยกตามฮาร์ดแวร์รูปที่ 1: การใช้งานที่ปลอดภัยใช้การแยกตามฮาร์ดแวร์เพื่อแยกสภาพแวดล้อมการดำเนินการ 1) แยก NSPE และ SPE 2) แยก RoT และการบริการที่เชื่อถือ 3) แยกแอปพลิเคชันที่เชื่อถือได้ (แหล่งที่มารูปภาพ: Arm/Cypress)

PSoC 64 เป็นไมโครคอนโทรลเลอร์แบบดูอัลคอร์ที่ NSPE ทำงานบนโปรเซสเซอร์ Arm Cortex®-M4 และ SPE ทำงานบนโปรเซสเซอร์ Arm Cortex-M0+ โดยที่ Arm Cortex-M0+ ใช้งานฟังก์ชันความปลอดภัยทั้งหมด และสามารถสื่อสารกับ Cortex-M4 ผ่านบัสการสื่อสารระหว่างโปรเซสเซอร์ (IPC) โดยสถาปัตยกรรมจะจำกัดการเข้าถึง SPE ซึ่งเป็นฮาร์ดแวร์แยก

ในการเริ่มต้นใช้งาน PSoC 64 นักพัฒนาจะต้องการตรวจสอบชุดเริ่มต้น PSoC 64 Secure Boot Pioneer Kit

PSoC 64 Secure Boot Pioneer Kit

ชุดเริ่มต้น PSoC 64 Secure Boot Pioneer Kit (รูปที่ 2) มีทุกสิ่งที่นักพัฒนาจำเป็นต้องใช้เพื่อเริ่มต้นในการรักษาความปลอดภัยในการใช้งานของตน รายการแรก มีโมดูล PSoC 64 ที่มีไมโครคอนโทรลเลอร์ PSoC 64 หน่วยความจำภายนอก และวงจรสนับสนุนทั้งหมด (แสดงในสีแดง) หน่วยความจำภายนอกสามารถใช้เพื่อจัดเก็บโค้ดแอปพลิเคชันหรือใช้เพื่อจัดเก็บอิมเมจเฟิร์มแวร์ใหม่สำหรับการอัพเดตเฟิร์มแวร์แบบ Over the Air (FOTA) ที่ปลอดภัย

รูปภาพของชุดเริ่มต้น PSoC 64 Secure Boot Pioneer Kit รูปที่ 2: ชุดเริ่มต้น PSoC 64 Secure Boot Pioneer Kit มีทุกสิ่งที่นักพัฒนาจำเป็นต้องใช้เพื่อเริ่มต้นพัฒนาแอปพลิเคชัน IoT ที่ปลอดภัย (แหล่งที่มารูปภาพ: Cypress)

ถัดไปมีโมดูล Wi-Fi ที่ช่วยให้นักพัฒนาสามารถเชื่อมต่อบอร์ดกับเครือข่ายได้ โมดูล Wi-Fi มีประโยชน์อย่างยิ่งสำหรับการใช้งาน IoT ที่บอร์ดจะเชื่อมต่อกับบริการคลาวด์ เช่น AWS หรือ Azure บอร์ดพัฒนารองรับ Amazon FreeRTOS ซึ่งเราจะพูดถึงในหัวข้อถัดไป

สุดท้ายชุดเริ่มต้นรองรับความสามารถในการขยายที่หลากหลาย เช่น ส่วนหัวของพิน, ส่วนหัว Arduino และเซ็นเซอร์มากมาย นักพัฒนาสามารถใช้แถบเลื่อนแบบสัมผัสบนบอร์ดและปุ่มสัมผัส ปุ่มกด โพเทนชิออมิเตอร์ และอื่น ๆ อีกมากมาย นอกจากนั้นยังมีการตั้งค่าบอร์ดให้ปรับแต่งได้ง่ายสำหรับแทบทุกการใช้งาน

ชุดซอฟต์แวร์รักษาความปลอดภัย PSoC 64

การออกแบบแอปพลิเคชันฝังตัวที่ปลอดภัยอาจใช้เวลานานและท้าทาย นักพัฒนาควรมองหาโซลูชันที่ช่วยลดต้นทุนและเวลาในการออกสู่ตลาด ขณะเดียวกันก็ทำให้มั่นใจว่าการใช้งานของตนปลอดภัย เพื่อช่วยในเรื่องนี้ PSoC 64 มีซอฟต์แวร์มากมายที่ช่วยให้นักพัฒนาสามารถสร้างการใช้งานที่ปลอดภัยได้อย่างรวดเร็ว

ตัวอย่างเช่น CySecureTools ให้ชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์สำหรับสร้างคีย์และใบรับรอง ตลอดจนเครื่องมือสำหรับแอปพลิเคชันการลงชื่อเข้าใช้และการจัดเตรียมไมโครคอนโทรลเลอร์ Cypress เครื่องมือนี้ช่วยให้นักพัฒนาสามารถโอน Cypress RoT แล้วเพิ่มสินทรัพย์ความปลอดภัยของตนเอง ข้อมูลเกี่ยวกับวิธีการตั้งค่าและใช้งาน CySecureTools สามารถพบได้ในไฟล์ README ที่เก็บ github

เครื่องมือที่นักพัฒนา IoT จะพบว่ามีประโยชน์คือการสนับสนุนสำหรับ AWS โดยใช้ FreeRTOS ใน github มีตัวอย่างที่เป็นประโยชน์สำหรับการใช้ FreeRTOS และ AWS กับ PSoC 64 ตัวอย่างแรกที่นักพัฒนาจะสนใจคือแอปพลิเคชัน “Hello World” ที่ส่งข้อความ MQTT จาก PSoC 64 ไปยัง AWS Cloud ตัวอย่างนี้อนุญาตให้นักพัฒนาดำเนินการตามขั้นตอนการเตรียมใช้งาน การสร้างคีย์ และขั้นตอนการปรับใช้ ในตอนท้ายของตัวอย่าง นักพัฒนามีอุปกรณ์ฝังตัวที่ปลอดภัยซึ่งเชื่อมต่อกับ AWS รายละเอียดเกี่ยวกับวิธีการเริ่มต้นสามารถพบได้ในคู่มือชุด เริ่มต้นใช้งาน CY8CKIT-064S0S204343

การใช้งานที่ปลอดภัยด้วย Trusted Firmware-M (TF-M)

PSoC 64 ช่วยให้นักพัฒนามีเฟรมเวิร์กการรักษาความปลอดภัยแบบสำเร็จรูปที่สามารถปรับแต่งให้เหมาะกับการใช้งานได้อย่างง่ายดาย นักพัฒนาอาจพบว่ามีประโยชน์ที่จะเข้าใจสิ่งที่เกิดขึ้นเบื้องหลังจากมุมมองของซอฟต์แวร์ โดยเฉพาะอย่างยิ่ง เฟิร์มแวร์ PSoC 64 ใช้ประโยชน์จากเฟรมเวิร์กการรักษาความปลอดภัยพื้นฐานแบบโอเพนซอร์สที่เรียกว่า Trusted Firmware-M หรือ TF-M

TF-M คือการใช้งานอ้างอิงของเฟรมเวิร์กการรักษาความปลอดภัย Arm PSA IoT Security Framework มีเครื่องมือรักษาความปลอดภัยที่เป็นประโยชน์สำหรับนักพัฒนา เช่น การรับรองอุปกรณ์ การยืนยันเฟิร์มแวร์ บริการเข้ารหัส การจัดการความลับของอุปกรณ์ และการแบ่งพาร์ติชั่นที่ปลอดภัย เป็นต้น Cypress ใช้ประโยชน์จาก TF-M เพื่อสร้างเฟรมเวิร์กความปลอดภัยเพื่อให้นักพัฒนาสามารถใช้งานได้ในแอปพลิเคชันของตน

นักพัฒนาสามารถปรับเปลี่ยนเฟรมเวิร์กการรักษาความปลอดภัยโดยเพิ่มโค้ดของตนเอง เพิ่มโปรไฟล์ความปลอดภัย และอื่น ๆ อีกมากมาย อย่างไรก็ตาม โปรดจำไว้ว่ายิ่งมีการแก้ไขซอฟต์แวร์ SPE มากเท่าใด โอกาสที่ช่องโหว่เพิ่มขึ้นก็ยิ่งมากขึ้นเท่านั้น นักพัฒนาจำเป็นต้องชั่งน้ำหนักความเสี่ยงที่เกี่ยวข้องกับการเปลี่ยนแปลง การเพิ่ม หรือการลบเฟิร์มแวร์พื้นฐานอย่างรอบคอบ

เคล็ดลับและลูกเล่นสำหรับการรักษาความปลอดภัยระบบฝังตัว

นักพัฒนาที่ต้องการรักษาความปลอดภัยให้กับระบบฝังตัวเป็นครั้งแรกนั้น ยังต้องพิจารณาอีกมาก ต่อไปนี้คือ “เคล็ดลับและกลเม็ด” หลายประการที่สามารถทำให้การพัฒนาง่ายขึ้นและเร็วขึ้น:

  • จำลองภัยคุกคามและการวิเคราะห์ความปลอดภัย (TMSA) ในช่วงแรกของการพัฒนา
  • นำบอร์ดพัฒนามาทดสอบอุปกรณ์ RoT, Secure Bootloader, กระบวนการจัดเตรียมอุปกรณ์ และการอัปเดตเฟิร์มแวร์
  • อย่าใช้งานการรักษาความปลอดภัยเพียงอย่างเดียว! ให้ใช้ประโยชน์จากโอเพ่นซอร์สที่มีอยู่และรักษาความปลอดภัยสแต็คเฟิร์มแวร์เพื่อลดการทำงานซ้ำ
  • อย่าลืมนึกถึงวงจรชีวิตของอุปกรณ์ รวมถึงการเลิกใช้งานอย่างปลอดภัย
  • สำรวจเครื่องมือต่าง ๆ เช่น CySecureTools เครื่องมือดังกล่าวมาพร้อมกับตัวอย่างเทมเพลตความปลอดภัย ซอฟต์แวร์ และตัวอย่าง
  • เมื่อทำการโคลน FreeRTOS github ให้โคลนเวอร์ชันที่ติดแท็กล่าสุด การโคลนเมนไลน์ที่ใช้งานอยู่มักส่งผลให้เกิดการพบเครื่องมือที่เข้ากันไม่ได้และจุดบกพร่องที่ยังอยู่ในระหว่างดำเนินการ
  • เริ่มโครงการโดยเดินผ่านชุดเริ่มต้นใช้งาน Cypress CY8CKIT-064S0S2-4343W โดยให้ข้อมูลที่จำเป็นทั้งหมดเพื่อให้การใช้งานพื้นฐานทำงาน จากนั้นจะแก้ไขเพื่อวัตถุประสงค์เฉพาะของผลิตภัณฑ์

นักพัฒนาที่ปฏิบัติตาม "เคล็ดลับและกลเม็ด" เหล่านี้จะพบว่าพวกเขาประหยัดเวลาและความท้อแท้ได้ไม่น้อย

สรุป

ความปลอดภัยไม่จำเป็นต้องเป็นเรื่องยาก นักพัฒนาระบบสมองกลฝังตัวควรเน้นที่ตัวสร้างความแตกต่างของผลิตภัณฑ์ ซึ่งเป็นเคล็ดลับของพวกเขา ในกรณีส่วนใหญ่ นั่นไม่ใช่การรักษาความปลอดภัย บทความนี้สำรวจวิธีที่ PSoC 64 สามารถช่วยให้นักพัฒนารักษาความปลอดภัยแอปพลิเคชันของตนได้อย่างรวดเร็ว โดยไม่เพียงแต่ให้สภาพแวดล้อมการแยกโดยใช้ฮาร์ดแวร์เท่านั้น แต่ยังมีกรอบงานของเครื่องมือซอฟต์แวร์อีกด้วย โซลูชันฮาร์ดแวร์และซอฟต์แวร์ร่วมกันช่วยให้นักพัฒนามีวงจรการพัฒนาความปลอดภัยที่เร่งขึ้น

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo เป็นที่ปรึกษาด้านซอฟต์แวร์แบบฝังตัว เขาได้ตีพิมพ์บทความมากกว่า 200 บทความเกี่ยวกับเทคนิคการพัฒนาซอฟต์แวร์แบบฝังตัวเป็นวิทยากรและผู้ฝึกสอนด้านเทคนิคที่เป็นที่ต้องการและสำเร็จการศึกษา 3 ปริญญา รวมถึง ปริญญาโทวิศวกรรมศาสตร์จากมหาวิทยาลัยมิชิแกน

About this publisher

DigiKey's North American Editors