SRAMベースのPUFキーおよびTrustZoneアイソレーションによるIoTセキュリティの簡単な実現
DigiKeyの北米担当編集者の提供
2019-09-05
モノのインターネット(IoT)を中心に構築される設計は複雑さが増しており、システムセキュリティの確保やローカル/リモートへの容赦ない攻撃のチェック用に強化されたソリューションが求められています。しかし、リソース面で制約のあるIoTデバイスへのセキュリティ導入は遅々として進まず、緩く作られたソフトウェアパッチかまたは複雑な暗号化アルゴリズムを主軸にした高度で高額なチップに限られています。開発者がセキュリティを速やかに導入、実装しようとすると、より包括的で使いやすいソリューションが必要になります。
各種の技術、たとえばスタティックランダムアクセスメモリ(SRAM)に基づくPUF(physical unclonable function)やArmのTrustZoneなどが登場して進化を遂げ、組み込み/IoT開発者のセキュリティニーズを満たしています。この記事では、PUFとTrustZoneを紹介し、NXP Semiconductors、Microchip Technology、Maxim Integratedのソリューションを使用してそれらを適用する方法について述べます。
SRAM PUF技術
SRAM PUFは、従来の暗号化に代わるライトな認証で、NXPのLPC55S6xファミリなどのセキュリティ中心のチップに統合されており、root of trust(信頼性の根幹)とプロビジョニングを実現できます(図1)。
図1:LPC55S6xファミリ MCUのブロック図。SRAMベースのPUF技術などのセキュリティビルディングブロックの統合が示されています。(画像提供:NXP)
PUF技術は、不揮発性メモリの従来のキーストレージとは異なります。従来のキーストレージでは、OEMが従来のヒューズベースの手法またはワンタイムプログラマブル(OTP)メモリ技術によってセキュリティキーを注入します。新たに登場したPUF技術では、SRAMビットセルに固有の自然でランダムな電気的変化に着目し、その固有の「フィンガープリント」を秘密の暗号キーに変換して、それがセキュリティサブシステムの基盤の役割を担います。この安全かつ高品質なキーは、同じ暗号化キーとして毎回あらゆる状況で作り直すことができます。この手法には次のような多くの利点があります。
- セキュアでない可能性がある環境でサードパーティキーを扱う必要がない
- チップ生産時にキーストレージとプロビジョニングシステムをロードする必要がない
- サプライチェーンの後半段階でインストールするか、展開するデバイスへのレトロフィットも可能
- 個々のSRAMチップに物理的にアクセスしないと、これらのセキュリティキーの解読はほぼ不可能
- キーは必要な場合にのみ生成され、システムに格納されたままにならない
- キーは永続的に保存されずデバイスがアクティブでないと存在しないので、攻撃者がメモリ内容に物理的に不正侵入するのが非常に困難
ArmのTrustZone
超低電力組み込みアプリケーション向けに最適化されたTrustZone技術は、Arm Cortex®-M23およびCortex-M33プロセッシングプラットフォームに利用されており、ブートコード、セキュア構成、セキュリティキー、暗号化ライブラリ、ファームウェアアップデートなどの安全面で重要なルーチンを、保護された環境に配置します(図2)。たとえばTrustZone対応のマイクロコントローラでは、ミッションクリティカルなコードを大規模コードスタックから分離した後に完全にテストし、開発で生じたバグに影響されるのを防ぎます。
図2:TrustZoneにより複数のソフトウェアセキュリティ領域が有効になり、それぞれがセキュアなメモリとI/Oへのアクセスを信頼できるソフトウェア環境のみに制限します。(画像提供:NXP)
機密データ/コードについては、TrustZoneは、ソフトウェア設計の重要な部分を隔離し、ユーザーレベルソフトウェアからの読み書きが保護されている環境のハードウェアスーパーバイザでそのソフトウェアを実行することにより、TrustZone自体の安全性を確保します。
TrustZoneを使用する開発者は、メモリをセキュア領域と非セキュア領域に分割できるため、認証がなければデバッグを試みる操作でさえも安全なコードやデータからブロックできます。また、非セキュアステートのCPUは、非セキュアメモリからのデータのみにアクセスできるので、非セキュアプログラムメモリからのみ実行できます。
重要なのは、TrustZoneはこれらのセキュリティ機能を提供しながらも、セキュア領域と非セキュア領域の両方で少ない割り込み待ち時間を維持し続けることです。その上、コードオーバーヘッド、サイクルオーバーヘッド、または仮想化に基づくソリューションの複雑さなどの負担がありません。
PUFおよびTrustZoneの物理的な実装
NXPは、PUFを発明したIntrinsic IDのハードIP(およびサポートソフトウェアライブラリ)を統合し、NXPのLPC55SxxマイクロコントローラにPUFを実装しています(図3)。Intrinsic IDの組み込みハードウェアIP、QuiddiKeyは、キー生成、キーストレージ、デバイス認証、キーのプロビジョニング、およびチップ資産管理に対処します。
図3:NXPはIntrinsic IDのハードIPおよびサポートソフトウェアライブラリを統合し、NXPのLPC55SxxマイクロコントローラにPUFを実装しています。IPはキーの生成と管理に対処します。(画像提供:Intrinsic ID)
NXPは、TrustZoneもLPC55Sxxマイクロコントローラに採用しています。TrustZoneのCPU中心のIoTセキュリティへのアプローチでは、組み込み設計のセキュア部分と非セキュア部分が分離されます。
たとえば、Microchip TechnologyのSAM L10/11マイクロコントローラに実装されているTrustZoneはシステム全体の保護を構成し、そこではIoT設計をセキュアステートと非セキュアステートに分割することが可能になります。しかし、セキュアなコードと非セキュアなコードの両方が1つのCPUで実行されるので、組み込み実装が効率的になります。
このCPU中心のアプローチが重要視される背景には、プロトコルスタックがWi-Fi、Bluetooth、TLS(トランスポートレイヤセキュリティ)などのコネクティビティ技術に欠かせない役割を果たす中で、最新型マイクロコントローラでソフトウェア量が急増していることがあります。このようにコードベースが増加すると、IoTデバイスが悪意的な攻撃の的になる可能性が著しく増加します。たとえば、スマートホームやスマートビルディングでは、破損したプロトコルスタックにより、ネット接続されたドアロック、ガレージドア開閉装置、防犯カメラがきわめて脆弱になります。
しかし、IoT開発者がミッションクリティカルなコードをTrustZoneで保護された環境に移せば、サードパーティのプロトコルスタックにバグがあってもデバイス機能に深刻な影響を与えません。
ボードレベルのセキュリティ
IoTセキュリティパラダイムのもう1つのわかりやすいパターンは、セキュリティや通信プロトコルにまつわる複雑さを克服しエッジ同士およびクラウドとエッジ間の通信を簡素化する、リファレンス設計の可用性に関連しています。Maxim IntegratedのMAXREFDES155# DeepCover®リファレンス設計、およびMicrochipのAC164164 PIC®-IoT WG開発ボードをその例として取り上げます。
MAXREFDES155#セキュリティ設計では、Arm mbed™シールドが300mmケーブルを使用してセンサのエンドポイントに接続されています。センサエンドポイントは、DS28C36 DeepCoverセキュアオーセンティケータ、赤外線(IR)温度センサ、およびIRセンサ用の照準レーザーで構成されています(図4)。
図4:Maxim IntegratedのMAXREFDES155# DeepCover IoT組み込みセキュリティリファレンス設計は、Arm mbedシールド、I2Cで接続されたセンサエンドポイント、Wi-Fiによるクラウドへのコネクティビティで構成されています。(画像提供:Maxim Integrated)
DS28C36セキュリティチップには、2つの認証済み汎用入出力(GPIO)ピンがあり、オプションでセキュアステート制御とレベルセンシングを備えます。これにより、IoT開発者は電気的に消去可能な認証済みプログラマブル読み取り専用メモリ(EEPROM)設定と17ビットのデクリメント専用カウンタを使用して、周辺モジュールの使用を監視し制限できます。DS28C36によって使いやすくなるアプリケーションには、双方向認証や、暗号化キーなどのシステムデータのセキュアストレージ、ミッションクリティカルデータの検証、セキュアブート、最終製品の使用管理などがあります。
MAXREFDES155#リファレンス設計に使われるmbedシールドには、DeepCoverセキュリティコプロセッサ、Wi-Fi通信、液晶ディスプレイ(LCD)、押ボタン制御、およびステータス発光ダイオード(LED)が含まれています。リファレンス設計はテストにすぐに使えるMAX32600MBED# mbed開発ボードを使用し、シールドのWi-Fi回路によりウェブサーバとの通信が容易になります。
MAXREFDES155#の設計では、mbedシールド上のセキュリティコプロセッサはDS28C36オーセンティケータチップのコンパニオンとして機能します。また、ハッシュベースのメッセージ認証コード(HMAC)や楕円曲線デジタル署名アルゴリズム(ECDSA)の演算(いずれもDS28C36のセキュリティ動作の一部)に関連する要求を促します。
コプロセッサには、IoT設計者が暗号化エンジンを実装し、連邦情報処理標準/米国立標準技術研究所(FIPS/NIST)の真の乱数発生器(RNG)を統合するのに役立つ、暗号化ツールのコアセットがあります。公開および秘密のセキュリティキーは、NISTが定義した基準に従って機能し、その基準には、双方向非対称キー認証モデルをサポートするECDSA署名生成/検証メカニズムのFIPS 186が含まれます。
クラウドリンクセキュリティの簡素化
MicrochipのAC164164 PIC-IoT WG開発ボードには同様の要素が含まれますが、このボードではGoogle CloudなどのクラウドプラットフォームへのIoTノードのリンクを簡素化することが主眼となります。この開発プラットフォームは同社のPICマイクロコントローラを中心に構築されており、ATECC608Aコプロセッサを使用して、大規模なソフトウェアフレームワークとリアルタイムオペレーティングシステム(RTOS)プラットフォームにともなうセキュリティの脆弱性に対処します。
IoT設計プラットフォームのAC164164では、エッジ-クラウド間リンクのセキュリティがセキュアエレメントにより確保されますが、このエレメントはGoogle Cloud IoT Coreサービス用に事前登録されており、ゼロタッチプロビジョニングですぐに使用できます。開発ボードには、ATECC608Aセキュリティコプロセッサとともに、PIC24FJ128GA705マイクロコントローラが搭載されており、複雑なアプリケーションをより少ないコードと低消費電力で処理します。
完全認証済みのIEEE 802.11b/g/n IoT Wi-Fiコントローラは、IoTノードをGoogle Cloudにリンクします。これによりIoT開発者は、ワイヤレスネットワーキングプロトコル、セキュリティ、ハードウェア互換性の専門知識を必要とせずに、安全なIoT製品設計を実現できます。
まとめ
IoT設計でメインプロセッサまたはマイクロコントローラのコンパニオンチップとしての役割を持つ専用セキュリティチップの登場により、開発者はセキュリティの専門家でなくても、IoTノードのセキュリティやエンドポイント/クラウドプラットフォームへのリンクのセキュリティを確保できるようになりました。PUFやTrustZoneなどのコンプリメンタリ技術の統合により、低電力、低コストのマイクロコントローラのセキュリティ面の信頼性が大幅に強化され、IoTセキュリティへの要求が高まる状況にも対応できます。
さらに、リファレンス設計と開発ボードを利用する場合、幅広いIoTアプリケーションでさまざまなレベルの組み込み保護機能を活用することによって、セキュリティをさらに簡単に実装できるようになります。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。


