Enviar pesquisa
Carregar
Secure element for IoT device
•
7 gostaram
•
2,028 visualizações
Kentaro Mitsuyasu
Seguir
2019/12/14 IoTSecJP
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014
Nov Matake
IoTデバイスセキュリティ
IoTデバイスセキュリティ
Kentaro Mitsuyasu
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Keycloak入門
Keycloak入門
Hiroyuki Wada
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
Masaru Kurahayashi
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
Kuniyasu Suzaki
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi
Recomendados
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014
Nov Matake
IoTデバイスセキュリティ
IoTデバイスセキュリティ
Kentaro Mitsuyasu
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Keycloak入門
Keycloak入門
Hiroyuki Wada
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
Masaru Kurahayashi
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
Kuniyasu Suzaki
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
Kuniyasu Suzaki
入門!Jenkins
入門!Jenkins
Shuntaro Saiba
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Jun Kurihara
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
Shinichiro Kosugi
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
Naohiro Fujie
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
FlutterでBLEを いい感じにする
FlutterでBLEを いい感じにする
chigichan24
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
Naohiro Fujie
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
階層的決定性ウォレットを理解しよう
階層的決定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
Akira Kanaoka
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Shinya Yamaguchi
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
デバイス内データの安全な保管を考える
デバイス内データの安全な保管を考える
Kentaro Mitsuyasu
Build secure io t gateway
Build secure io t gateway
Kentaro Mitsuyasu
Mais conteúdo relacionado
Mais procurados
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
Kuniyasu Suzaki
入門!Jenkins
入門!Jenkins
Shuntaro Saiba
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Jun Kurihara
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
Shinichiro Kosugi
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
Naohiro Fujie
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
FlutterでBLEを いい感じにする
FlutterでBLEを いい感じにする
chigichan24
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
Naohiro Fujie
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
階層的決定性ウォレットを理解しよう
階層的決定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
Akira Kanaoka
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Shinya Yamaguchi
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
Mais procurados
(20)
Keycloak拡張入門
Keycloak拡張入門
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
入門!Jenkins
入門!Jenkins
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
FlutterでBLEを いい感じにする
FlutterでBLEを いい感じにする
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
TLS, HTTP/2演習
TLS, HTTP/2演習
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
階層的決定性ウォレットを理解しよう
階層的決定性ウォレットを理解しよう
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
IDベース暗号の概観と今後の展望(次世代セキュア情報基盤ワークショップ )
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Semelhante a Secure element for IoT device
デバイス内データの安全な保管を考える
デバイス内データの安全な保管を考える
Kentaro Mitsuyasu
Build secure io t gateway
Build secure io t gateway
Kentaro Mitsuyasu
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
IoTビジネス共創ラボ
AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介
Yukinobu Mine
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
Hibino Hisashi
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
NVIDIA Japan
コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めよう
Shin-ya Koga
サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順
IDC Frontier
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
Azure IoT Edge and IoT Hub - IoT Algyan
Azure IoT Edge and IoT Hub - IoT Algyan
Atomu Hidaka
enebular と Azure IoT で遠隔地にあるデバイスを扱う
enebular と Azure IoT で遠隔地にあるデバイスを扱う
Kazumi IWANAGA
Embedded Technology 2014 Smart Japan Aliance IoT Azure
Embedded Technology 2014 Smart Japan Aliance IoT Azure
Atomu Hidaka
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
Kentaro NOMURA
みんなのブログ紹介
みんなのブログ紹介
Sanae Taniguchi
Serverless x IoT = "IoT Scale" backend
Serverless x IoT = "IoT Scale" backend
Motokatsu Matsui
Japan MVP Community Connection 2017 Autumn smart Demonstration
Japan MVP Community Connection 2017 Autumn smart Demonstration
Atomu Hidaka
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
グローバルセキュリティエキスパート株式会社(GSX)
Semelhante a Secure element for IoT device
(20)
デバイス内データの安全な保管を考える
デバイス内データの安全な保管を考える
Build secure io t gateway
Build secure io t gateway
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めよう
サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Azure IoT Edge and IoT Hub - IoT Algyan
Azure IoT Edge and IoT Hub - IoT Algyan
enebular と Azure IoT で遠隔地にあるデバイスを扱う
enebular と Azure IoT で遠隔地にあるデバイスを扱う
Embedded Technology 2014 Smart Japan Aliance IoT Azure
Embedded Technology 2014 Smart Japan Aliance IoT Azure
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
みんなのブログ紹介
みんなのブログ紹介
Serverless x IoT = "IoT Scale" backend
Serverless x IoT = "IoT Scale" backend
Japan MVP Community Connection 2017 Autumn smart Demonstration
Japan MVP Community Connection 2017 Autumn smart Demonstration
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
Último
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Último
(8)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
Secure element for IoT device
1.
セキュアエレメントと IoTデバイスセキュリティ 光安 健太郎
2.
Agenda • 自己紹介 • 昨今の話のまとめときっかけ •
IoTセキュリティの潮流 • セキュアエレメントについて ATECC608A Deep Dive • 結果 • 展望 • まとめ
3.
自己紹介 インフラの出身で、サイバートラストというLinuxと電子認証局のビジネスを している会社で働いています。 自宅でいろいろやってきました。 自宅外向けDNS AD構築(Samba4) Nextcloudサーバー運用 自宅Gluster分散ファイルシステム構築(infiniband) Jupyter notebook GPU
機械学習サーバー(nvidia Geforce RTX2070) Volumio Airplayサーバー https://www.slideshare.net/KentaroM itsuyasu1/ss-12042350
4.
昨今の話のまとめときっかけ IoTベンチャーでのいたましい事故 物を作るところから、自宅で趣味からセキュリティを検討しておこう。 そんな難しい話じゃないですよ。クライアント認証 はしてません。デバイス側のリソースが厳しいため、 サーバ証明書のフィンガープリントをハードコード してました(証明書チェーンは見ない)。サーバ証 明書はAWS ACMなんですけど、よりによって1年っ ていう短い設定かつ、自動更新(つづく)
5.
IoTセキュリティの潮流 証明書、各クラウドベンダーの接続方法 代表的なAWS IoT,Azure IoTともにX509証明書による接続 クラウド側からデバイスの証明書と秘密鍵をダウンロードし、 デバイスに格納、接続時に使用する。 デバイス側は悪意のあるものに渡った時に秘密鍵を守れない。 それを守る方法として
Hardware Root-of-Trustという仕組みで 秘密鍵を守ることが望ましい。 参考資料: IoT開発におけるセキュリティ設計の手引き 独立行政法人情報処理推進機構 https://www.ipa.go.jp/security/iot/iotguide.html 対応している仕組み: Arm Trustzoneとしてチップ内部に融合 セキュアエレメントとしての専用チップ
6.
セキュアエレメント比較 ATECC608A SE050(C) Optiga
Trust X メーカー Microchip NXP Infineon インターフェース I2C 暗号演算 楕円暗号(ECC) 楕円暗号(ECC)、RSA 楕円暗号(ECC) 楕円暗号 NIST P-256 ECC NIST (192 to 521 bit) Brainpool (160 to 512 bit) Twisted Edwards Ed25519 Montgomery Curve25519 Koblitz (192 to 256 bit) Barreto-Naehrig Curve 256 bit NIST P-256, P-384 RSA暗号 - up to 4096 bit - 共通鍵暗号 AES-128 AES 128, 192 and 256 bit and DES keys with single DES, 2K3DES and 3K3DES AES-128 ハッシュ SHA-256 SHA-224/256/384/512 SHA-256 記憶領域 1.1KB 50KB 10KB 価格(1個当たり) 87円 476円 244円 パッケージ 8pin SOIC,DFN 20pin QFN 10pin DFN 製品ファミリ 限定機能のみの ATECC108Aなど 限定機能のみのSE050(A)、SE050(B) 温度環境対応品 採用実績 Google Coral SoM,Arduino MKR Wifi Amazon Dash Button 2nd gen.(ATECC108A) ZYMBIT security module NervesKey for NervesHub Adafruit ATECC608 Breakout Coldcard Bitcoin hardware wallet etc. ー ー 対応規格 ー Security certification CC EAL6+ (HW+JCOP) JavaCard version 3.0.5 GlobalPlatform specification version GP 3.0 Security certification CC EAL6+
7.
セキュアエレメントのセットアップ ■上からATECC608A,Optiga Trust X,SE050 それぞれ面実装パッケージのため、変換基盤へ はんだ付け。 基本は3.3VとGND、I2C
SCL,SDAを接続させて 通信するが、 Optiga Trust XはRSTピンのGPIO制御、 SE050はPin15 VOUT をPin18 VCCへの接続が 必要。 ホストはESP32-DevKitC I2Cは100kHzでピン21,22へ接続 ■開発環境 VSCode+platformio ESP-IDF 3.30
8.
セキュアエレメントのセットアップ ■デバイスの認識: まずESP32からI2CScanner(arduinoのサンプルプログラム)を実行し、 I2Cバス上にデバイスが見つけられるかテスト。 ATECC608A: Scanning... device found on
I2C port 0 at address 0x60 ! done SE050: Scanning... device found on I2C port 0 at address 0x48 ! done Optiga Trust XはI2CScannerではデバイスが見つからない。 メーカーライブラリでパスするかどうかを確認する。 https://github.com/Infineon/arduino-optiga-trust-x/blob/master/examples/selfTest/selfTest.ino
9.
セキュアエレメントの組み込み構成 ■セキュアエレメント共通で、RTOS環境はMbedTLSのECDH関数、ECDSA関数を セキュアエレメントが使用する関数に置き換える。 Linux環境はOpenSSLが持つ外部エンジンを使用するコマンドへ実装している。 ESP32,ARM Cortex-M セキュアエレメント MbedTLS 専用ライブラリ(C,Python) RTOS(FreeRTOS) OpenSSL ARM Cortex-A Linux I2C
I2C タイマー タイマー MBEDTLS_ECDH_GEN_PUBLIC_ALT MBEDTLS_ECDSA_SIGN_ALT engine
10.
ATECC608A Deep Dive ■ATECC608Aを使って、セキュアエレメントの基本機能とセキュリティ対策 シーンを検討する。 1、サーバー・クライアント認証、TLS通信暗号化 2、機密情報保存 3、AES暗号化 4、中間CAの秘密鍵秘匿
11.
サーバー・クライアント認証、 TLS通信暗号化 ■セキュアエレメントの機能を使いデバイス秘密鍵を隠して、なりすましを防ぐ シーン
12.
サーバー・クライアント認証、 TLS通信暗号化 VPSサーバー+ ドメイン取得 ngrok1.7を使い MQTTS、HTTPS トンネリング
13.
サーバー・クライアント認証、 TLS通信暗号化 ■ホームIoTゲートウェイの作成 機能: • BME280による気温、湿度、気圧の測定 • 赤外線LEDによるリモートコントロール •
ボタンによるプッシュ動作送信 • MQTTメッセージによるLED点灯 • Wifiプロビジョニングモード • OTA機能搭載 • デバイス証明書ローリング対応 仕様: • USB5V電源で動作 • MQTTSにてMosquittoへ接続
14.
サーバー・クライアント認証、 TLS通信暗号化 ■Kicad5.1.2にて設計、elecrowへ発注 ATECC608A以外はほとんど秋月電子
15.
動作フローチャート MQTT イベントハンドラ GPIOボタン イベントハンドラ Wifi接続 Wifiプロビジョニング開始 ATECC608AへWifi SSID,Pass書き込み サーバー接続、 MQTTイベントハンドラ起動 再起動リモコン(RMT)BME280初期化 GPIOボタン が押された 自分のシリアル宛 のメッセージ サブスクライブ タスクフラグを確認 BME280 測定しパブリッシュ、 ウェイト ボタン押下をパブリッシュ
LED点灯、消灯 エアコン操作 (RMTタスク生成) OTAフラグ キーローリングフラグ 証明書受領フラグ I2Cバス初期化 ATECC608A初期化 ATECC608AからWifi SSID,Pass読み取り GPIO初期化 GPIOボタンが押されているか MQTT停止→公開鍵生成→ MQTT再開とパブリッシュ MQTT停止→ATECC608A 証明書更新→MQTT再開 MQTT接続終了→OTAサーバーへ https接続、ファームダウンロード+ インストール 再起動 キーローリング 証明書受領 OTA # Espressif ESP32 Partition Table # Name Type SubType Offset Size nvs data nvs 0x9000 0x4000 otadata data ota 0xd000 0x2000 phy_init data phy 0xf000 0x1000 factory 0 00x10000 1M ota_0 0ota_0 0x110000 1M ota_1 0ota_1 0x210000 1M
16.
温度測定 以下2ついずれかのモジュールの搭載に対応。 1分ごとに計測データをMQTTにて送信
17.
赤外線リモコン ダイキンエアコンの赤外線リモコンを解析、 ESP-IDFのRMT関数で実装。
18.
プロビジョニング シリアルコンソールを経由してpem(base64)の 公開鍵と証明書を交換。 -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQasdaghadJKNIWfEtPt61Y6O8NoQVhkrQhrracCRmGgb kinXThlKUkdB0i7uUakzcSIdonsgpdzagdPNIDW8SkGUmGz8jcDSJM2PsouJ9tA== -----END
PUBLIC KEY----- -----BEGIN CERTIFICATE----- MIIBizCCATKgAwIBAgIQXttAp9UKPvc3FMEUZoYdrjAKBggqhkjOPQQDAjAuMREw DwYDVQQKDAhrbXdlYm5ldDEZMBcGA1UEAwwQa213ZWJuZXQgUm9vdCBDQTAeFw0x OTEwMTAyMTA4MzlaFw00NDEwMTAyMTA4MzlaMC4xETAPBgNVBAoMCGttd2VibmV0 OQIHOFEROLFKFJiiphpiwgeknvspdisbpdwnepIHPIEgwkEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEtPt61Y6O8NoQVhkIIPDSUGpou998HHIDPGwEjolKUkdB0i7uUakzcJTUP4gB aJv+kwpghwpedkjwgpkjPKJPEHGIPEihp98887889ewwIHEWBBYEFNQOhdv0lGYauUlM NRYzPg8fVWdgMA8GyioigGipugPGERJhwGWRPihgWoewoZIzj0EAwIDRwAwRAIge3M2 ePvfCr/eCDah5c3XEC8Pto2q2WBNbSL5ZpNWH7ACIHnnFVqZ4Z6Rq3Rw76OLOzKV wXTxzegp/jDA+XDKExLA -----END CERTIFICATE-----
19.
証明書更新(キーローリング) ① ② ③ ATECC608A スロット内 秘密鍵 3つのスロットから順番に 公開鍵を取り出し、署名 して証明書を作成して 書き戻す
20.
サーバー・クライアント認証、 TLS通信暗号化 Pythonで署名、 証明書作成 OTAファーム ウェア置き場 デバイス公開鍵 受領
21.
サーバー・クライアント認証、 TLS通信暗号化 ■証明書の構造: tbsCertificate シリアル番号 証明書発行日、有効期限 公開鍵 CN コモンネーム など… signatureAlgorithm ecdsa-with-SHA256(一例) signatureValue 署名データ SHA256で ハッシュ化署名対象 CA 署名
22.
サーバー・クライアント認証、 TLS通信暗号化 ATECC608が対応できる楕円曲線暗号を選択 secp256r1 別名 prime256v1
または NIST P-256(RFC4492) 256bitの秘密鍵と256bit(X)+256bit(Y)の公開鍵で構成される。 それぞれ、32バイト、64バイトとなる。 また、署名は256bit(r)+256bit(s)だが、ASN.1という形式で保存されており、 数バイトの変動がある。 ASN.1のヘッダー(オフセット計算)を付加して72~73ビット程度。
23.
サーバー・クライアント認証、 TLS通信暗号化 ■デバイスの内部概要:合計約1.1KBのEEPROMメモリを持つ。 スロ ット ブロッ ク バイト ビット 名前
説明 0-7 2 36 288 Private or Secret Key Can also be used for data. 8 13 416 3328 Data 読み取りと書き込みは、他のすべてのスロットと同じ方 法で制限されるように設定できます。このスロットが鍵 として使用されている場合は、秘密鍵または秘密鍵の格 納に不要な残りのバイトは無視されます。 9- 14 3 72 576 Public Key, Signature or Certificate このデバイスでサポートされている曲線の場合、これら のスロットは、ECDSA公開鍵のX成分とY成分、または ECDSA署名のR成分とS成分の両方を入れるのに十分な大 きさです。 15 3 72 576 Private Data, Secret Key, Signature, or Certificate これが128カウント制限使用機能(セクション限定使用 キー(スロット15のみ))をサポートする唯一のスロッ トです。この機能が必要ない場合は、スロット9~14と 同じ目的で使用できます。
24.
サーバー・クライアント認証、 TLS通信暗号化 ■証明書の格納: 用意した証明書テンプレートに対して、 1、シリアル番号 2、公開鍵、署名 3、証明書発行日、有効期限 をデバイス内に保存する。 4、デバイス公開鍵は、アクセス禁止に設定された秘密鍵スロットから 計算して抽出 5、Subject/Auth Key IDは、それぞれの公開鍵から計算されて抽出
25.
サーバー・クライアント認証、 TLS通信暗号化 ■TLS1.2通信のパケットキャプチャ ESP32:192.168.1.93 Mosquittoブローカー:192.168.1.84
26.
サーバー・クライアント認証、 TLS通信暗号化 ■サーバーからの受信内容に署名して返送 ECDSA MBEDTLS_ECDSA_SIGN_ALT
27.
サーバー・クライアント認証、 TLS通信暗号化 ■共通鍵の鍵交換による暗号化 ECDH計算 秘密鍵 公開鍵 デバイス側 公開鍵
秘密鍵 サーバー側 秘密鍵 公開鍵公開鍵 秘密鍵 共通鍵 共通鍵 鍵計算 鍵計算 プリマスターシークレ ットとして通信を暗号 化する共通鍵となる ATECC608が担当 MBEDTLS_ECDH_GEN_PUBLIC_ALT
28.
サーバー・クライアント認証、 TLS通信暗号化 ■クライアント認証を有効にしたMosquittoへ接続し、Node-REDで視覚化
29.
機密情報保存 ■AESなど32バイト(256ビット)の鍵情報をセキュアエレメントに隠したい。 ホストマイコンからI2Cで鍵情報を送る際、ロジアナで読み取られないように I2C経路を暗号化したい。 機密情報 ㊙
30.
機密情報保存 ■atcab_write_encとatcab_read_encという関数を使用する。 メッセージ認証コード (MAC) 機密情報 ㊙ IO保護キー
31.
機密情報保存 ■まずIO保護キーをATECC608Aへ送り、専用スロットに保存し、共通の鍵とす る。使い捨てOK。 機密情報 ㊙ IO保護キー IO保護キー 読み出し禁止 スロット (書き込みはOK)
32.
機密情報保存 ■次にメッセージ認証コード(MAC)を作り、機密情報とXORを取り、IO保護キー と計算した結果をI2CでATECC608Aへ送り、復号してスロットに保存される。 メッセージ認証コードはATECC608A側で固有SNなどからSHA256で生成される。 読み出しはこの反対を行う。 メッセージ認証コード (MAC) 機密情報 ㊙ IO保護キー IO保護キー 読み出し禁止 スロット (書き込みはOK) メッセージ認証コード (MAC)
33.
AES暗号化 ■デバイスが使用するWifi接続情報、個人情報等、鍵以外の 一般機密情報を安全に配置したい。 暗号の基本:暗号化したいデータを暗号化(Encrypt)して、復号するための 鍵を入手する。その鍵を使ってのみ復号できる。 Encrypt Decrypt Plain Text Cipher Text Plain Text
34.
AES暗号化 ■今回、AES-GCMという暗号を使用する。 AESは共通鍵暗号で、ブロック暗号といわれるデータを128ビットのブロックで 暗号化するアルゴリズム。
35.
AES暗号化 ■今回、AES-GCMという暗号を使用する。 GCMはブロック暗号の暗号利用モードの一つ。1ブロック128ビット(16バイト) より大きいデータを暗号化する際にどういう風にブロックを関連させるかを決定
36.
IoTデバイス AES暗号化 ■鍵が簡単に見れてはまずいので、隠す必要がある。 デバイス内に鍵を置き、データはデバイス内、外に置けるが 解読できるのは暗号化したデバイスのみという状態を作る Cipher Text ノムラテック カギの収納BOX NEW キーストック
ハンディ
37.
AES暗号化 ■ATECC608の持つAES-GCM機能を使用する。 •AES-128: encrypt/decrypt, galois field
multiply for GCM
38.
中間CAの秘密鍵秘匿 ■ESP32のデータを集約して処理するラズパイをゲートウェイとして 複数台のESP32のデバイス証明書を管理したい。 ラズパイ ルートCA機 ラズパイ 中間CA機 ESP32+ ATECC608A ルートCA証明書 ルートCA秘密鍵 中間CA証明書 中間CA秘密鍵 署名 署名 デバイス証明書 デバイス秘密鍵 ATECC608A内フラッシュ
39.
中間CAの秘密鍵秘匿 ■ラズパイ中間CA側にもATECC608Aを接続し、秘密鍵を隠す HSM(ハードウェアセキュリティモジュール)として使用する。 ラズパイ 中間CA機 ESP32+ ATECC608A 中間CA証明書 中間CA秘密鍵 CN、有効期限を 設定し署名 デバイス証明書 デバイス秘密鍵 ATECC608A内フラッシュATECC608A内フラッシュ デバイスから 公開鍵を送付 デバイス証明書として ESP32に返送
40.
中間CAの秘密鍵秘匿 ■ラズパイのI2Cへ、ATECC608Aを接続、pythonで証明書を作成する スクリプトへATECC608Aで署名するコマンドを割り込ませる。 Python:cryptography cryptography.hazmat.backends.default_backend() •公開鍵読み込み •署名用秘密鍵読み込み x509.CertificateBuilder() •シリアル番号、証明書発行日、有効期限 •CN コモンネーム •サブジェクトキーID •署名者ID •Etc… Signコマンド tbsCertificate シリアル番号 証明書発行日、有効期限 公開鍵 CN コモンネーム など… signatureAlgorithm ecdsa-with-SHA256(一例) signatureValue 署名データ 中間CA秘密鍵 ATECC608A内フラッシュ デバイス証明書
SHA256ハッシュを署名
41.
展望 ESP32のセキュアなブートローダー IoTセキュリティについて継続勉強中。 ブログやっているのでいろいろ教えてください。 https://kmitsu76.hatenablog.com/ https://qiita.com/kmitsu76 https://limitedresults.com/2019/11/pwn- the-esp32-forever-flash-encryption-and- sec-boot-keys-extraction/ Pwn the ESP32
Forever: Flash Encryption and Sec. Boot Keys Extraction
42.
まとめ クラウド接続が増加してくるIoTデバイスでのセキュアエレメントの実装は 必要な技術要素となる可能性がある。 かなり大変だけどいったんやっておけば安心してデータをやり取りできる。 日本のスタートアップIoTを安全に!
Baixar agora