- 公開日:2020年01月23日
- | 更新日:2022年12月01日
IoTデバイスにおける ハードウエア・セキュリティ機能の活用
- ライター:Nomoto
- その他
前回の記事、、『IoTデバイスのセキュリティとデバイスメーカーの取り組み』において、Texas Instruments社(以下、TI社)から提供されているWi-Fi製品CC32xxS/Sに搭載されるセキュリティ機能をご紹介しました。本記事では、これらのセキュリティ機能を、どのように活用したらよいかについてご紹介します。
また、本記事はサイバートラスト社のご協力のもと、作成されています。サイバートラスト社は、日本初の商用電子認証局として 20 年以上にわたり提供している認証・セキュリティサービスと、ミラクル・リナックスのカーネル技術やオープンソースソフトウェア(OSS)の知見を応用したオンプレミス、クラウド、組込み領域向けの Linux/OSS サービスを展開しています。
Root of Trustの定義と必要性
IoTデバイスのセキュリティを語るうえで、重要である”Root of Trust”という用語はご存じでしょうか?『Root of Trust』(以下、RoT)という用語は、汎用制御システムのセキュリティ標準規格である『ISO/IEC62443』においても使われているとおり、日本語では、『信頼の基点』と訳され、NIST(アメリカ国立標準技術研究所)では、以下のように定義されています。
RoTとは、デバイスの信頼性を保証するための、ハードウェア/ソフトウェアコンポーネントを指します。
- 物理・論理攻撃に対し、安全な設計がされていること。
- 小さく、かつ、保護されていること。
- ハードウェアで実装するか、ハードウェアで保護することが望ましい。
また、RoTは、セキュリティ上重要な、以下のような機能を提供します。
- ソフトウェアの完全性検証
- デバイス認証機能
- 暗号、認証、検証鍵の保護
図1.Root of Trustの定義
ソフトウェアの完全性検証とは、セキュアブート、および、セキュアアップデート機構を指します。セキュアブートとは、デバイス起動時に、OS、アプリケーションが改ざんされていないことを検証してから起動する仕組みであり、セキュアアップデートとは、OS、アプリケーション更新時に、更新情報が改ざんされていないこと、信頼できる提供元から提供されていることを検証する仕組みを指します。これらの完全性を確認する際に使用するのが、『検証鍵』であり、改ざんから保護する仕組みが求められます。また、IoTの世界では、クラウド上のサーバには、インターネットを通じた様々な不正アクセスに晒されますので、IoTデバイスのなりすまし対策としてのデバイス認証も重要な機能となります。『認証鍵』や『暗号鍵』は、改ざんからの保護だけでなく、不正アクセス(読取りや利用、改ざん)に対して、隠ぺいする仕組みも必要となります。
なお、本記事においては、上記 『検証鍵』、『認証鍵』を『Trust Anchor』と呼ぶこととします。
では、なぜIoTデバイスには、RoTが必要となるのでしょうか。以前の記事 『IoTに求められるセキュリティとは何か?』でもご紹介しましたが、IoTデバイスは、人間の操作を介さずに自律的に動作をし、また、屋外等の第三者から物理的なアクセスが容易な場所に設置するケースが多いため、強固なセキュリティを備える必要があります。自律的に動作するということは、起動時にIDパスワードのような外部の認証情報を使うことができないため、デバイスの中に認証情報や完全性を保証する機構を保持する必要があり、かつ、物理的な攻撃に備え、認証情報の読取りや改ざんを防ぐ仕組みを持つ必要があります。
TI社CC32xxS/SFが搭載するセキュリティ機能
RoTを実際のシステムで使用する場合、カタログには表れない、以下のような機能要件を満たす必要があります。
- OS、アプリケーションから使用するためのミドルウェアが提供されていること
- ICチップ製造時点で、固有のID、認証鍵が格納されていること
- 複数の暗号、認証、検証鍵を保持する領域が用意されていること
- 暗号、認証鍵については、セキュアエレメント内部で生成が可能なこと
- 後から生成した暗号、認証、検証鍵は、電源が切れた状態でも保持されること
ICチップベンダ各社よりセキュリティ機能を搭載したICチップが提供されていますが、セキュリティ専用チップを除いた場合、上記を全て満たす製品は意外と少ないことがわかります。その中で、TI社製CC32xxS/SFは、全てを満たす製品です。具体的には、TI社製のCC32xxS/SFは、ICチップ製造時点で、固有のID、認証鍵(ECC p-256秘密鍵)、セキュアブート・セキュアアップデートで使用するための検証鍵が格納されています。また、TLS通信等、認証で使用する鍵の生成、保持領域が確保されており、OS、アプリケーションの処理で利用するためのミドルウェア(TI-TLS、mbed TLS等)が提供されています。
IoTデバイスのライフサイクル管理
上述の通り、TI社製のCC32xxS/SFは、IoTデバイスに求められるセキュリティ機能を搭載していますが、これらをシステムとして活用するためには、IoTデバイスだけでは実現できず、以下のような仕組みが必要となります。
- 『Trust Anchor』を、外部で安全に管理、更新、無効化し、かつ、その情報をクラウドサービスに提供する仕組み
- 安全にOS、アプリケーションを更新する仕組み
これらの仕組みを、トラストサービスとライフサイクル管理と呼んでいます。IoTデバイス製造時、安全な環境で『Trust Anchor』を生成しサーバ上に保管、クラウドサービス等に認証情報として提供します。長期間同じ鍵を使い続けることは解読の危険性が高まるため、定期的な『Trust Anchor』の更新も必要であり、また、IoTデバイスの廃棄、リユース時の不正利用を防止するための無効化処理も必要となります。OS、アプリケーションの更新の際は、改ざん検知と提供元の確認を行う事は当然ながら、これらの情報が流出することは、知的財産の流出だけでなく、保護機構を解読され攻撃の足掛かりにもなるため、提供先が正規のデバイスであることを確認することも重要です。
サイバートラスト社では、これらトラストサービスとライフサイクル管理を容易に実現するためのプラットフォームとして、「セキュアIoTプラットフォーム」というASP型のサービスをご用意しています。
IoTデバイス側の実装についてはSDKをご提供しており、簡単なAPIにて、これらの機能が利用可能となります。また、認証局については、国際標準規格であるWeb Trust for CA/EV認定を取得している設備、運用手順にて運営されています。
図2. IoTデバイスのセキュリティ管理
さいごに
いかがだったでしょうか?この記事では以下の内容をご紹介しました。
- IoTデバイスにおけるRoTの必要性
- TI社CC32xxS/SFが搭載するセキュリティ機能はRoTの要件を満たす
- ICチップが搭載するセキュリティ機能を活用するには、トラストサービスとライフサイクル管理の仕組みが必要である
また、IoTに関連した記事としてこちらもご一読ください。
サイバートラスト社が提供する「セキュアIoTプラットフォーム」の内容については、以下のセミナーにて、ハンズオンを含め詳しくご紹介予定ですので、ご参加の程、お待ちしております。