Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoT のセキュリティアーキテクチャと実装モデル on Azure

435 views

Published on

※de:code 2017 で使用した資料です

Published in: Technology
  • Be the first to comment

IoT のセキュリティアーキテクチャと実装モデル on Azure

  1. 1. 転送 アプリ
  2. 2. The Internet of Things (IoT), which excludes PCs, tablets and smartphones, will grow to 26 billion units installed in 2020. http://www.gartner.com/newsroom/id/2636073 Gartner NewsRoom より
  3. 3. • 安全でないクラウドとモバイル API • 不十分な透過的暗号化 • 不十分な認証と認可の仕組み
  4. 4. 安価なデバイスに高価値のセキュリティをもたらすための研究を開始 ネットワークに接続されたすべてのデバイスに最高水準のセキュリティを組み込むことができるように The Seven Properties of Highly Secure Devices 7 つのプロパティ ハードウェアに組み込まれた Root of Trust(RoT) 小型の Trusted Computing Base(TCB) 多層防御 区画化 証明書ベースの認証 更新可能なセキュリティ 障害報告
  5. 5. このような捉え方はセキュリティ設計を間違える
  6. 6. IoT のセキュリティは物理アクセスとデータの両方を守る必要がある OT Security :物理的な安全性を守る IT Security :データの気密性を守る IT Security OT Security IoT Security
  7. 7. 信頼の境界信頼の境界 • それぞれのレイヤ(Zone)の安全性を考慮する • 境界を遷移する過程でデータや情報は STRIDE の影響を受ける 信頼の境界 信頼の境界信頼の境界
  8. 8. なりすまし (Spoofing identity): 攻撃者が、ソフトウェア レベルまたはハードウェア レベルでデバイ スから暗号化を抽出し、その抽出元となったデバイスの ID を使用して、システムにアクセスする。 改ざん (Tampering with data): デバイス上で実行されているソフトウェアの一部または全部が、攻撃 者によって差し替えられる。 否認(Reputation)ログなどが保存されておらず証明する手段を持たない。「誰か」が何らかの攻 撃的行動をしたにもかかわらず、それを証明できない場合、否認が発生する。否認を否定することを非否認 (non reputation)という。 情報漏えい (Information disclosure): デバイス上の改変されたソフトウェアから、許可していない 相手へのデータ漏えい。 サービス拒否 (Denial of service): 妨害電波、妨害パケット、ケーブルの切断によって、デバイスの機 能が停止したり、通信できない状態にする。 特権の昇格 (Elevation of privilege): 特定の働きをするデバイスが、特殊な権限によって想定外の目 的に利用される。たとえば半開状態となるようにプログラムされているバルブが、意図的に全開にされる可能性 がある。
  9. 9. Policies, Procedures, Guidance Cloud ServicesCloud Gateways Defense in Depth ~ 多層防御 Field GatewaysDevices Physical Global Network Application Data PhysicalPhysical Local NetworkLocal Network Edge Application DataData Host Host Host Physical Data Application Host データ保護、改ざん防止 アクセスコントロール 信頼できるプラットフォーム 安全なネットワーク、 セグメント分け、プロトコル セキュアコード、アプリ認可 不正侵入検知 パケット暗号化、プロトコル Local Network Identity and Access Control統合的な IAM
  10. 10. https://azure.microsoft.com/ja-jp/campaigns/mydriving/
  11. 11. 転送 アプリ ODB : On-board Diagnostic Viewer アプリ Edge App
  12. 12. 転送 アプリ 出力のみ • デバイスを認証するための識別情報 信頼の境界信頼の境界
  13. 13. キーの強度 暗号鍵の共有(ペアリング)
  14. 14. リスク 対応策 具体的な実装 S デバイスまたはその一部が他の デバイスに差し替えられる可能 性があり、意図したデバイスが 通信しているという確信はどの ようにすれば得られるか? デバイスに ID を割り当てて 本物であることを確認 トランスポート層セキュリティ (TLS) または IPSec を使ってデバイスを認証。 完全な非対称 暗号を扱うことのできないデバイスでは、イン フラストラクチャが事前共有キー (PSK) の使用 をサポートしている必要がある。Azure AD。 T R I D 物理干渉によってデバイスが改 ざんされる可能性がある。改ざ んされないという保証はある か? 改ざん防止機構をデバイスに 適用する。たとえば、デバイ スからキーや他の暗号マテリ アルを抽出することがきわめ て困難または不可能な仕組み にする。 • TPM(Trusted Platform Module) • デバイスのメモリの暗号化 • デバイスのキー管理、 コード署名 E 外部ソース (または侵害された センサー) からのコマンドに よって本来であれば利用できな い操作を攻撃者に許すことにな る。 デバイスへのアクセス制御を 行うための認可スキームを設 ける。 • デバイス認証と認可。 • Azure AD
  15. 15. SIM Field Gateway Zone Wifi Cloud Gateway
  16. 16. 転送アプリ 信頼の境界 暗号化 Protocol Port HTTPS 443 AMQPS 5671 AMQPS over Web Sockets 443 MQTT 8883
  17. 17. リスク 対応策 具体的な実装 S 何者かがフィールド ゲート ウェイになりすまして、不正 なデータを送り込む クラウド ゲートウェイに対し てフィールド ゲートウェイが 本物であることを証明する (証明書, PSK, クレームなど) • TLS RSA/PSK, IPSec, RFC 4279 • TPM を利用できるのがベスト • IPSec の LowPAN 拡張によって ワイヤレス センサー ネットワー ク (WSN) をサポート。 T R I D なりすましによる攻撃。一見 フィールド ゲートウェイと通 信しているかのようにクラウ ド ゲートウェイに見せかけて 情報を漏えいさせたり、デー タを改ざんする。 改ざんされないようにフィー ルド ゲートウェイを保護する • メモリの暗号化 • TPM • 認証 E フィールドゲートウェイの権 限が不正に昇格され、クラウ ドゲートウェイのAPIに不正に アクセス フィールド ゲートウェイにア クセス制御機構を導入する • Azure AD
  18. 18. • 透過モードの場合、デバイスID 単位の通信が識別可能 • 非透過モードの場合、クラウドゲートウェイで識別できるのはフィールドゲート ウェイ
  19. 19. 転送 アプリ セキュリティ上の ゲートウェイ
  20. 20. 転送 アプリ ⑤アプリ認証③ アプリ利用認可 ③ アプリ利用認可 ④ アプリ配布 ① ユーザー認証 ⑥アプリ認可
  21. 21. 転送アプリ 代行 azure-devices.net AccessKey /api/provision Azure Device Client PCL Azure Mobile SDK Protocol Port HTTPS 443 AMQPS 5671 AMQPS over Web Sockets 443 MQTT 8883
  22. 22. 対称デバイスキー 署名をチェックす ることでデバイス の正当性を確認 • X.509証明書によるデバイス認証も、当然、サポートされています
  23. 23. /devices/{deviceId}/messages/events azure-devices.net 転送 アプリ
  24. 24. • 暗号化通信のプロトコル • データ改ざんの防止 • 物理的なアクセスができないようになっている • デバイスプロビジョニングの制御 転送 アプリ
  25. 25. y/r0PdttVL3yNyYHXJUuQVgJykRt8+fbT213JCdhb14= oCXywSv62XD9VkyuRUM9cWQgR9qWrCdHnfP7dSBg4mo= HostName=mydriving-hoge.azure-devices.net; SharedAccessKeyName=device; SharedAccessKey=oCXywSv62XD9VkyuRUM9cWQgR9qWrCdHnfP7dSBg4mo= Provisioningに必要なアクセス許可 デバイス(フィールドゲートウェイ)に 必要なアクセス許可
  26. 26. • クラウドサービス間の密な連携 • Azure AD に保護された認証と認可
  27. 27. IT Security OT Security IoT Security
  28. 28. http://download.microsoft.com/download/6/3/A/63AFA3DF-BB84-4B38-8704- B27605B99DA7/Microsoft%20SDL%20Cryptographic%20Recommendations.pdf 推奨 備考 SSL/TLS TLS 1.2 should be enabled TLS 1.1, TLS 1.0 は下位互換のためだけ に使用。SSL 3 と SSL 2 は無効にする。 Symmetric Block Ciphers 対称ブロック暗号 Advanced Encryption Standard (AES), 128 bit key. 3DES は下位互換のために使用。 DES, DESX, RC2, and Skipjack は推奨さ れない。既存データの複合のためだ けに使用する。 Cipher Modes 暗号利用モード Cipher Block Chaining (CBC) Ciphertext Stealing (CTS) XEX-Based Tweaked-Codebook with Ciphertext Stealing (XTS) 初期ベクトル(IV) 乱数ジェネレーターを使用 非対称暗号化アルゴリズム RSA - 必ず OAEP または RSA-PSS でパディングする。PKCS #1 v1.5 は互換性を維持するときのみ。キー長 2048 bit以上 ECDSA(楕円曲線署名)ー キー長 256 bit 以上。NISTが認可した カーブ(P-256, P-384, or P521)のみを使用。 ECDH (楕円ディーフィーヘルマン鍵共有)- キー長 256 bit 以上、NISTが認可した カーブ(P-256, P-384, or P521)のみを使用。 Integer Diffie-Hellman - キー長 2048 bit 以上、グループパラメタは既知のもの(例えばRFC 7919)か、信頼できる団体によって生成されたもの キーの有効期間 非対称鍵は最大5年、推奨1年 対称鍵は最大3年、推奨1年 必ずキーの入れ替えをサポートする こと。キーの有効期限が切れた場合 には絶対に使用しないこと。 乱数ジェネレーター CNG - BCryptGenRandom + BCRYPT_USE_SYSTEM_PREFERRED_RNG CAPI - CryptGenRandom Win32/64(Legacy) RtlGenRandom in kernel mode Win32/64(New) - BCryptGenRandom or CryptGenRandom, Rand() は使用すべきではない .NET - RNGCryptoServiceProvider or RNGCng. Windows Store Apps - CryptographicBuffer.GenerateRandom or CryptographicBuffer.GenerateRandomNumber. The SystemPrng function is recommended for kernel-mode code. rand, System.Random (.NET), GetTickCount and GetTickCount64 は非 推奨 DUAL_EC_DRBG アルゴリズムも非推 奨
  29. 29. アンマネージドコードについては以下を参照 http://download.microsoft.com/download/6/3/A/63AFA3DF-BB84-4B38-8704- B27605B99DA7/Recommended%20Tools,%20Compilers%20and%20Options%20for%20x86,%20x64%20and%20ARM.p df
  30. 30. https://www.microsoft.com/en-us/SDL/adopt/tools.aspx ツール 機能 Microsoft Threat Modeling Tool 2016 システムのセキュリティ設計についての情報交換を行い、脅威モデルを作 成および分析する BinSkim Binary Analyzer バイナリを分析して、SDL の要件と推奨事項に準拠して開発されているこ とを確認する FxCop マネージドコードアセンブリ(.NET Framework共通言語ランタイムを対 象とするコード)を分析し、設計、ローカライゼーション、パフォーマン ス、セキュリティ向上などに関する情報をレポートする Attack Surface Analyzer Windowsオペレーティングシステム上のシステム状態、ランタイムパラ メータ、およびセキュリティ保護可能なオブジェクトに加えられた変更を 探す Code Analysis for C/C++ 誤ったコードの使用法を探す Application Verifier 通常のアプリケーションテストでは識別が困難な微妙なプログラミングエ ラーの発見を支援するネイティブコードのランタイム検証ツール SiteLock ATL Template ActiveXコントロールの使用をドメイン名またはセキュリティゾーンの所定 の一覧に制限できます。
  31. 31. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×