セッションアンケートにご協力ください
 専用アプリからご回答いただけます。
decode 2017
 スケジュールビルダーで受講セッションを
登録後、アンケート画面からご回答ください。
 回答時間はたったの 15 秒!
Ask the Speaker のご案内
本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて
ご説明させていただきます。是非、お立ち寄りください。
転送
アプリ
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 より
• 安全でないクラウドとモバイル API
• 不十分な透過的暗号化
• 不十分な認証と認可の仕組み
安価なデバイスに高価値のセキュリティをもたらすための研究を開始
ネットワークに接続されたすべてのデバイスに最高水準のセキュリティを組み込むことができるように
The Seven Properties of Highly Secure Devices
7 つのプロパティ
ハードウェアに組み込まれた Root of Trust(RoT)
小型の Trusted Computing Base(TCB)
多層防御
区画化
証明書ベースの認証
更新可能なセキュリティ
障害報告
このような捉え方はセキュリティ設計を間違える
IoT のセキュリティは物理アクセスとデータの両方を守る必要がある
OT Security :物理的な安全性を守る
IT Security :データの気密性を守る
IT Security
OT Security IoT Security
信頼の境界信頼の境界
• それぞれのレイヤ(Zone)の安全性を考慮する
• 境界を遷移する過程でデータや情報は STRIDE の影響を受ける
信頼の境界 信頼の境界信頼の境界
なりすまし (Spoofing identity): 攻撃者が、ソフトウェア レベルまたはハードウェア レベルでデバイ
スから暗号化を抽出し、その抽出元となったデバイスの ID を使用して、システムにアクセスする。
改ざん (Tampering with data): デバイス上で実行されているソフトウェアの一部または全部が、攻撃
者によって差し替えられる。
否認(Reputation)ログなどが保存されておらず証明する手段を持たない。「誰か」が何らかの攻
撃的行動をしたにもかかわらず、それを証明できない場合、否認が発生する。否認を否定することを非否認
(non reputation)という。
情報漏えい (Information disclosure): デバイス上の改変されたソフトウェアから、許可していない
相手へのデータ漏えい。
サービス拒否 (Denial of service): 妨害電波、妨害パケット、ケーブルの切断によって、デバイスの機
能が停止したり、通信できない状態にする。
特権の昇格 (Elevation of privilege): 特定の働きをするデバイスが、特殊な権限によって想定外の目
的に利用される。たとえば半開状態となるようにプログラムされているバルブが、意図的に全開にされる可能性
がある。
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
https://azure.microsoft.com/ja-jp/campaigns/mydriving/
転送
アプリ
ODB : On-board Diagnostic
Viewer
アプリ
Edge
App
転送
アプリ
出力のみ
• デバイスを認証するための識別情報
信頼の境界信頼の境界
キーの強度
暗号鍵の共有(ペアリング)
リスク 対応策 具体的な実装
S デバイスまたはその一部が他の
デバイスに差し替えられる可能
性があり、意図したデバイスが
通信しているという確信はどの
ようにすれば得られるか?
デバイスに ID を割り当てて
本物であることを確認
トランスポート層セキュリティ (TLS) または
IPSec を使ってデバイスを認証。 完全な非対称
暗号を扱うことのできないデバイスでは、イン
フラストラクチャが事前共有キー (PSK) の使用
をサポートしている必要がある。Azure AD。
T
R
I
D
物理干渉によってデバイスが改
ざんされる可能性がある。改ざ
んされないという保証はある
か?
改ざん防止機構をデバイスに
適用する。たとえば、デバイ
スからキーや他の暗号マテリ
アルを抽出することがきわめ
て困難または不可能な仕組み
にする。
• TPM(Trusted Platform Module)
• デバイスのメモリの暗号化
• デバイスのキー管理、 コード署名
E 外部ソース (または侵害された
センサー) からのコマンドに
よって本来であれば利用できな
い操作を攻撃者に許すことにな
る。
デバイスへのアクセス制御を
行うための認可スキームを設
ける。
• デバイス認証と認可。
• Azure AD
SIM
Field Gateway
Zone
Wifi
Cloud
Gateway
転送アプリ
信頼の境界
暗号化
Protocol Port
HTTPS 443
AMQPS 5671
AMQPS over Web Sockets 443
MQTT 8883
リスク 対応策 具体的な実装
S 何者かがフィールド ゲート
ウェイになりすまして、不正
なデータを送り込む
クラウド ゲートウェイに対し
てフィールド ゲートウェイが
本物であることを証明する
(証明書, PSK, クレームなど)
• TLS RSA/PSK, IPSec, RFC
4279
• TPM を利用できるのがベスト
• IPSec の LowPAN 拡張によって
ワイヤレス センサー ネットワー
ク (WSN) をサポート。
T
R
I
D
なりすましによる攻撃。一見
フィールド ゲートウェイと通
信しているかのようにクラウ
ド ゲートウェイに見せかけて
情報を漏えいさせたり、デー
タを改ざんする。
改ざんされないようにフィー
ルド ゲートウェイを保護する
• メモリの暗号化
• TPM
• 認証
E フィールドゲートウェイの権
限が不正に昇格され、クラウ
ドゲートウェイのAPIに不正に
アクセス
フィールド ゲートウェイにア
クセス制御機構を導入する
• Azure AD
• 透過モードの場合、デバイスID 単位の通信が識別可能
• 非透過モードの場合、クラウドゲートウェイで識別できるのはフィールドゲート
ウェイ
転送
アプリ
セキュリティ上の
ゲートウェイ
転送
アプリ
⑤アプリ認証③ アプリ利用認可
③ アプリ利用認可
④ アプリ配布
① ユーザー認証
⑥アプリ認可
転送アプリ
代行
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
対称デバイスキー
署名をチェックす
ることでデバイス
の正当性を確認
• X.509証明書によるデバイス認証も、当然、サポートされています
/devices/{deviceId}/messages/events
azure-devices.net
転送
アプリ
• 暗号化通信のプロトコル
• データ改ざんの防止
• 物理的なアクセスができないようになっている
• デバイスプロビジョニングの制御
転送
アプリ
y/r0PdttVL3yNyYHXJUuQVgJykRt8+fbT213JCdhb14=
oCXywSv62XD9VkyuRUM9cWQgR9qWrCdHnfP7dSBg4mo=
HostName=mydriving-hoge.azure-devices.net; SharedAccessKeyName=device;
SharedAccessKey=oCXywSv62XD9VkyuRUM9cWQgR9qWrCdHnfP7dSBg4mo=
Provisioningに必要なアクセス許可
デバイス(フィールドゲートウェイ)に
必要なアクセス許可
• クラウドサービス間の密な連携
• Azure AD に保護された認証と認可
IT Security
OT Security IoT Security
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 アルゴリズムも非推
奨
アンマネージドコードについては以下を参照
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
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コントロールの使用をドメイン名またはセキュリティゾーンの所定
の一覧に制限できます。
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

[SC14] IoT のセキュリティアーキテクチャと実装モデル