2022年2月21日(月)SORACOM IoT Meetup 〜IoTデバイスセキュリティ勉強会!セキュアエレメントを学ぶ〜にて、ソラコム ソリューションアーキテクトの横田が発表した資料「セキュアエレメントをライブデモで解説!」を公開しました。 https://soracom.connpass.com/event/238001/
セキュアエレメントをライブデモで解説!株式会社ソラコムソリューションアーキテクト横田峻
View Slide
自己紹介横田峻 (shun)ソリューションアーキテクト株式会社リコーにて電子回路設計、組み込み・B2B向けWebソリューションのバックエンド開発などに従事したのち、ソラコムに入社(2019/9)得意領域はデバイス、クラウド
今回のデモの概要AES 秘密鍵Raspberry Pi セキュアエレメント内蔵暗号化/復号化0x1A2B...• RaspberryPiとセキュアエレメントでのテキストの暗号化・復号化• セキュアエレメント内のAES鍵は読み出すことができないため、暗号化/復号化のAPIが提供されている• cryptoauthlibで提供されるPythonのライブラリを利用
AES暗号方式AES 秘密鍵A0x1A2B...{"battery": 54,"latitude": 35.652748,"longitude": 139.750827}暗号化{"battery": 54,"latitude": 35.652748,"longitude": 139.750827}復号化AES 秘密鍵A{"battery": 54,"latitude": 35.652748,"longitude": 139.750827}復号化AES 秘密鍵B• 共通鍵暗号方式• 同じ鍵で暗号化/復号化を行う• 違う鍵だと正しく復号化できない
ATECC608B-TNGTLS• 利用製品はM5Stack用暗号認証ユニット(ATECC608B)• https://www.switch-science.com/catalog/7480/• 暗号化チップ : ATECC608B-TNGTLSU-G• 対応アルゴリズム方式 : ECC-P256(ECDH、ECDSA)、SHA256、AES128-GCM• 通信インターフェース : I2C(Grove互換)、最大バス速度 : 1 Mbps• 電源供給電圧 : 5 V DC• サイズ : 24 x 24 x 13 mm特徴• 証明書、KEYがプリインストール済み• Trust&GOプラットフォーム対応• AWS-IoT、Azure、Googleなどのクラウドプラットフォームで使用される標準的な証明書
内部EEPROMのデータ構造• スロットと呼ばれるパーティション16個• 各スロットにバイト列を保存する• 各スロットのバイト列の位置をブロックで指定スロットブロック
応用例:Arc.jsonの暗号化• 事前にSORACOM Arcの認証情報をセキュアエレメントで暗号化• 暗号化済みのArc.jsonをデバイスに保存• 接続を作るときはセキュアエレメントで復元する• 特定のハードウェアからしかArcの接続を作れない仕組み0x1A2B...暗号化Arc.jsonAES 秘密鍵 ATECC608B内蔵復号化Arc.jsonSORACOM Arc
まとめ• セキュアエレメントによって重要な情報(秘密鍵等)を読み出すことなく利用が可能• プロビジョニング済みのATECC608Bならば、プリインの鍵や証明書を利用できるので非常に簡単• ハードウェアによるセキュリティ強化が意外と簡単に実装ができる• 触ってみるとわかるのでぜひチャレンジしてみてください!
世界中のヒトとモノをつなげ共鳴する社会へ