Score:1

AWS IoT - คีย์เฉพาะสำหรับแต่ละอุปกรณ์ - การเข้ารหัสข้อมูล

ธง rs

(อาจไม่ใช่บอร์ดที่เหมาะสมที่จะถาม แต่ไปที่นี่)

ฉันกำลังออกแบบโซลูชัน IoT โดยมี RPi เป็นไคลเอ็นต์และ AWS เป็นเซิร์ฟเวอร์ บนฮาร์ดแวร์ไคลเอนต์ ฉันมีไฟล์ ชิปความปลอดภัย ที่สามารถสร้างและจัดเก็บ ECC, RSA, AES Keys/Pairs ได้อย่างปลอดภัย และสามารถดำเนินการเข้ารหัสต่างๆ ได้ เช่น ECDH, ECDSA, KeyGen เป็นต้น

วัตถุประสงค์ที่กว้างขึ้นของฉันในด้านคลาวด์มีดังต่อไปนี้:

  1. ในฝั่ง AWS Server ฉันต้องการสร้างคีย์ ECC ที่ไม่ซ้ำต่ออุปกรณ์ เก็บไว้ใน HSM ดำเนินการ ECDH เพื่อสร้างคีย์สมมาตรสำหรับการเข้ารหัส ฉันไม่ต้องการให้ใคร (รวมถึงฉัน) เข้าถึงคีย์ส่วนตัวที่สร้างโดย KMS (หรือบริการ AWS อื่น ๆ - เข้ารหัสหรืออย่างอื่น)
  2. ฉันต้องการให้การดำเนินการเข้ารหัสและถอดรหัสดำเนินการโดยบริการของ AWS (โดยเฉพาะอย่างยิ่งในฮาร์ดแวร์เฉพาะที่สร้างขึ้นสำหรับงานนั้น) นี่คือเพื่อหลีกเลี่ยงการใช้ข้อบกพร่องในรหัสของฉันในทางที่ผิด
  • แม้ว่าฉันสามารถสร้างคีย์การเข้ารหัสข้อมูลโดยใช้ KMS ได้ แต่ฉันเชื่อว่าฉันต้องถอดรหัสคีย์ส่วนตัวในโค้ดเพื่อใช้งาน หมายความว่าฉันสามารถเข้าถึงคีย์ส่วนตัวได้
  • ฉันยังไม่พบวิธีทำ ECDH จากนั้น อย่างปลอดภัย เก็บคีย์ที่สร้างขึ้นในกระบวนการนั้น

คุณช่วยฉันต่อไปนี้ได้ไหม:

  1. จะสร้างและจัดเก็บคีย์ ECC สำหรับ ECDH และ ECDSA อย่างปลอดภัยได้อย่างไร
  2. มีบริการใดบ้างที่สามารถช่วยฉันดำเนินการเข้ารหัส (เข้ารหัส ถอดรหัส ECDH ECDSA ฯลฯ) โดยที่ฉันไม่ต้องเขียนโค้ดให้
ขอบคุณ!
ทีซี
fgrieu avatar
ng flag
เนื่องจากคุณกล่าวถึง HSM ทางฝั่ง AWS แนวทางปฏิบัติที่ดีที่สุดคือการสร้าง จัดเก็บ และใช้คีย์ภายใน HSM ทำให้คุณไม่มีทางจัดการกับคีย์ได้ในทางใดทางหนึ่ง (ข่าวดีก็คือ คุณไม่จำเป็นต้อง/มีคีย์ที่สอดคล้องกัน ความพยายาม/ความรู้/ความเสี่ยง) การมี crypto ทั้งหมดใน HSM เป็นตัวเลือกการออกแบบที่กำหนด ซึ่งมาพร้อมกับข้อจำกัดและประโยชน์ HSM จะทำการเข้ารหัส คุณต้องการอ่าน[เอกสารประกอบของซัพพลายเออร์](https://aws.amazon.com/cloudhsm/) และฉันเกรงว่าคำถามด้านการปฏิบัติและด้านไอทีอาจเบี่ยงเบนประเด็นไป
Score:1
ธง vu

จะสร้างและจัดเก็บคีย์ ECC สำหรับ ECDH และ ECDSA อย่างปลอดภัยได้อย่างไร

เนื้อหาคู่คีย์สำหรับ ECDH และ ECDSA นั้นเหมือนกัน สามารถใช้ได้ทั้งในอัลกอริทึม แต่แนวทางปฏิบัติมาตรฐานคือการสร้างคีย์แยกต่างหากสำหรับวัตถุประสงค์ที่แยกกัน

สำหรับการจัดเก็บ คุณต้องศึกษาคู่มือสำหรับ HSM ของคุณ

  • หาก HSM ของคุณสามารถจัดเก็บได้โดยตรง ให้จัดเก็บโดยตรง

  • หาก HSM ของคุณสามารถเก็บได้เฉพาะคีย์เข้ารหัส ให้เข้ารหัสคีย์ ECC ของคุณโดยใช้คีย์เข้ารหัสนั้นและจัดเก็บไว้ใน NVRAM บางชนิด จากนั้นจึงเก็บคีย์เข้ารหัสไว้ใน HSM

หากคุณต้องการเอกสารมาตรฐาน: นี่คือ ลิงค์.

มีบริการใดบ้างที่สามารถช่วยฉันดำเนินการเข้ารหัส (เข้ารหัส ถอดรหัส ECDH ECDSA ฯลฯ) โดยที่ฉันไม่ต้องเขียนโค้ดให้

คุณสามารถใช้ห้องสมุด มีห้องสมุดหลายแห่งที่นั่น บางแห่งที่โดดเด่น ได้แก่ :

  • OpenSSL - เป็นที่รู้จักกันดี แต่มีช่องโหว่ร้ายแรง "HeartBleed" ที่ค้นพบในปี 2014

  • LibreSSL - ทางแยกของ OpenSSL ที่ดูแลโดยนักพัฒนา OpenBSD

  • NSS - (บริการรักษาความปลอดภัยเครือข่าย) จาก Mozilla

Teja avatar
rs flag
ขอบคุณสำหรับคำตอบ. คำถามของฉันคือเพิ่มเติมเกี่ยวกับวิธีการทำให้เสร็จใน AWS [AWS KMS](https://aws.amazon.com/kms/) ทำให้ฉันมีตัวเลือกในการสร้างคีย์ อย่างไรก็ตาม ฉันสามารถเข้าถึงกุญแจส่วนตัวซึ่งเป็นสิ่งที่ฉันไม่ต้องการได้ (ในกรณีของคำขอทางกฎหมาย ฉันสามารถยอมจำนนได้เฉพาะข้อมูลที่เข้ารหัส หากฉันไม่สามารถเข้าถึงกุญแจได้ ฉันจะไม่สามารถส่งมอบได้ ถึงใครก็ตาม)

โพสต์คำตอบ

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