[ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เชี่ยวชาญด้านความปลอดภัย / เข้ารหัสลับและจัดการกับคำถามสถาปัตยกรรมความปลอดภัยเช่นนี้ทุกวัน]
คุณพบปัญหาในการจัดเก็บข้อมูลรับรองในลักษณะที่กระบวนการไม่ต้องใส่ข้อมูลสามารถเข้าถึงได้ แต่ผู้โจมตีไม่สามารถทำได้ นี่เป็นปัญหาที่ทราบกันดีและยากมากในการแก้ปัญหา
หากอุปกรณ์ IoT ของคุณมีที่เก็บฮาร์ดแวร์ในตัวมาเธอร์บอร์ดเช่น TPMs บางตัวหรือเทียบเท่ากับ Keystore ที่ได้รับการสนับสนุนฮาร์ดแวร์ Androidหรือ Apple Secure Enclave คุณสามารถใช้มันได้
ด้วยเซิร์ฟเวอร์แบบดั้งเดิมคุณสามารถใช้ HSM หรือสมาร์ทการ์ดได้ แต่โซลูชันซอฟต์แวร์เต็มรูปแบบเดียวที่ฉันรู้คือการหาคีย์ AES จาก "ลายนิ้วมือฮาร์ดแวร์" ที่สร้างขึ้นโดยการรวมหมายเลขซีเรียลของอุปกรณ์ฮาร์ดแวร์ทั้งหมด จากนั้นใช้ปุ่ม AES เพื่อเข้ารหัสข้อมูลรับรอง กระบวนการที่ทำงานบนเซิร์ฟเวอร์เดียวกันสามารถสร้างคีย์ AES ขึ้นใหม่และถอดรหัสข้อมูลประจำตัวได้ แต่เมื่อคุณแตกไฟล์จากเซิร์ฟเวอร์ก็จะไม่สามารถถอดรหัสได้
IoT ขว้างประแจเข้าไปด้วยเหตุผลสองประการ:
การสันนิษฐานว่าหมายเลขซีเรียลของฮาร์ดแวร์อาจไม่ซ้ำกันและ
ซึ่งแตกต่างจากเซิร์ฟเวอร์ผู้โจมตีมีการเข้าถึงทางกายภาพกับอุปกรณ์ดังนั้นอาจจะได้รับเปลือกบนอุปกรณ์เพื่อเรียกใช้โปรแกรมถอดรหัส
ทั้งการเข้ารหัสฮาร์ดแวร์ (TPMs) และการเข้ารหัส "ฮาร์ดแวร์ลายนิ้วมือ" นั้นน่าสับสนที่สุดเพราะโดยพื้นฐานแล้วหากกระบวนการในท้องถิ่นสามารถถอดรหัสข้อมูลได้ผู้โจมตีสามารถเรียกใช้กระบวนการในเครื่องนั้นสามารถถอดรหัสได้
ดังนั้นเคล็ดลับมาตรฐานดูเหมือนจะไม่ทำงานที่นี่ คำถามแรกที่คุณต้องถามตัวเองคือ:
- รูปแบบการคุกคามของฉันคืออะไร / โครงการนี้อยู่ใน
Secure <--> Convenient
ระดับใด?
ท้ายที่สุดฉันคิดว่าคุณต้องตัดสินใจsecurity > convenience
และมีมนุษย์ป้อนข้อมูลประจำตัวหลังจากบูตแต่ละครั้ง (ใช้คำตอบของ @BenceKaulics ) หรือคุณตัดสินใจว่าsecurity < convenience
และใส่ข้อมูลประจำตัวในอุปกรณ์อาจใช้สิ่งที่สับสนถ้าคุณ รู้สึกว่าสร้างความแตกต่าง
นี่เป็นปัญหาที่ยากขึ้นโดยธรรมชาติของอุปกรณ์ IoT
เพื่อความสมบูรณ์โซลูชันทางอุตสาหกรรมที่สมบูรณ์สำหรับปัญหานี้คือ:
- มอบกุญแจสาธารณะ RSA ให้กับอุปกรณ์ IoT แต่ละเครื่องในเวลาที่ผลิต บันทึกกุญแจสาธารณะนี้ใน db กับหมายเลขซีเรียลของอุปกรณ์
- จัดเก็บข้อมูลประจำตัวที่ละเอียดอ่อนบนเซิร์ฟเวอร์ที่เหมาะสมลองเรียกมันว่า "เกตเวย์"
- เมื่ออุปกรณ์ IoT ตรวจสอบสิทธิ์กับเกตเวย์ (โดยใช้คีย์ RSA) เกตเวย์จะเปิดเซสชันโดยใช้ข้อมูลรับรองที่เก็บไว้และส่งโทเค็นเซสชันกลับไปยังอุปกรณ์
- เพื่อความปลอดภัยที่ดีที่สุดเกตเวย์เป็นเกตเวย์แบบฟิสิคัล (หรือ VPN) เพื่อให้ทราฟฟิกทั้งหมดจากอุปกรณ์ IoT ผ่านเกตเวย์และคุณสามารถควบคุมกฎไฟร์วอลล์และสิ่งต่างๆได้มากขึ้น - ป้องกันอุปกรณ์ไม่ให้มีช่องสัญญาณโดยตรง (ไม่ใช่ VPN) การเข้าถึงอินเทอร์เน็ต
วิธีนี้และผู้โจมตีที่บุกรุกอุปกรณ์สามารถเปิดเซสชัน แต่ไม่สามารถเข้าถึงข้อมูลประจำตัวได้โดยตรง