みなさん、こんにちは。コラボゲートの三井です。私たちは、「分散型ID」技術を活用したE2Eセキュリティソリューション「UNiD(ゆにっど)」を提供し、安全性と利便性を両立するデータソリューションの実現を支援しています。
本記事では、高い注目が集まる「E2Eセキュリティ」の必要性と構築の課題についてご説明し、弊社ソリューションをご紹介します。最後に、お手元のPCでお試しできるチュートリアルをご案内します。
IoTには「E2Eセキュリティ」が必須
セキュリティを取り巻く重要な三つの変化に対応するために、多くのメーカーが「E2Eセキュリティ」に取り組んでいます。本章では、この重要な三つの変化とIoTに「E2Eセキュリティ」が必須となる理由についてご説明します。
1-1. 脅威の変化
近年、セキュリティ対策が十分ではないエンドポイントデバイスを狙ったなりすまし攻撃によるインシデント事例が急増しています。デバイスへのなりすまし攻撃が成功すると、セキュアであるはずのネットワーク内を自由に移動することができ、データ漏洩・改竄、マルウェア感染拡大、ランサムウェア攻撃などがいとも簡単にできてしまいます。ファイヤーウォールやVPNに代表される従来型のセキュリティ(境界防御モデル)では、これらの脅威を防ぐことができません。こうした脅威の変化に対して、正しいアプローチでセキュリティ対策に取り組む必要があります。
1-2. セキュリティの変化
従来型のセキュリティ(境界防御モデル)とは対照的に、ネットワークを信頼せず、すべてのデバイスとトラフィックを都度検証することで脅威を防ぐセキュリティ(ゼロトラストモデル)に高い注目が集まっています。下図のように、1. デバイスのRoTによる保護、2. デジタル署名に基づく相互認証、3. 署名付き暗号化メッセージの仕組みを構築することで、デバイスを狙ったなりすまし攻撃を防ぎ、データ漏洩・改竄、マルウェア感染拡大、不正ソフトウェアの更新などの脅威を防ぐことができます。このアプローチをここでは「End-to-End(E2E)セキュリティ」と呼びます。
1-3. 国際標準規格の変化
IoTセキュリティの国際標準規格(e.g. NIST SP800, IEC62443, ETSI EN 303 645, PSA Certified)では、1. デバイスのRoTによる保護、2. パスワードではなくデジタル署名に基づく相互認証、3. 検証されたソフトウェアの安全なアップデートが共通するセキュリティ基本要件として定義されています。NIST SP800は米国内の政府調達基準ですが、米国外の民間企業であっても準拠しなければ、様々な産業のサプライチェーンから退場させられる可能性があります。メーカーは「E2Eセキュリティ」のアプローチを採用し、これらのセキュリティ基本要件を満たすことで、国際的なサプライチェーンの信頼を獲得していく必要があります。
1-4. IoTには「E2Eセキュリティ」が必須
以上の重要な三つの変化に対応するため、多くのトップティアメーカーが「E2Eセキュリティ」に取り組んでいます。特に、データソリューションを中期経営戦略の軸に据えるメーカーにとって、①経営リスクに直結するインシデントリスクの低減、②安全で便利な顧客体験、③革新的なビジネスモデルを実現するためにデバイスとクラウド間の「E2Eセキュリティ」は必須となるデジタル・インフラになります。
E2Eセキュリティ構築の課題
本章では、「E2Eセキュリティ」に関する重要な要素技術をピックアップし、設計・開発・運用の課題についてご説明します。
2-1. 「E2Eセキュリティ」の要素技術
IoT製品開発のなかで「E2Eセキュリティ」を構築するには、4つの共通する要素技術を検討していくことになります。
1. デバイスID・暗号鍵管理
デバイスの識別子と暗号鍵は、チップの製造時あるいはデバイスの製造時にインジェクションされるか、ハードウェア固有鍵(HUK)あるいはデバイス固有機能(PUF)から生成されます。暗号鍵は、ソフトウェア攻撃やチップの外部インターフェイスからの測定などの物理攻撃から保護される必要があります。RoTで保護されたデバイスの識別子と暗号鍵管理には、OSやCPUアーキテクチャーを理解し、製品ライフサイクルを考慮した設計・開発・運用を行う必要があります。この識別子と暗号鍵管理に関する要素技術開発には高い専門性と開発リソースを必要とし、100人月以上の開発工数が発生する可能性があります。
2. プロビジョニング
デジタル署名に基づく相互認証には、デバイスIDと公開鍵を紐づけ、その公開鍵の正しさを検証する仕組みが必要です。認証局(CA)でデバイス証明書を発行し、デバイスごとに暗号鍵とその証明書をインジェクションすることが一般的です。このプロビジョニング作業には、一台当たり$5以上のコストがかかり、暗号鍵や証明書を取り扱うプロセスとサプライチェーンに脆弱性が存在します。
3. デバイス認証・認可
パスワードではなくデジタル署名に基づく相互認証の仕組みが強く推奨されます。デバイスがなりすまし攻撃された場合に備えて、デバイスの属性情報と振る舞いから、動的にポリシー適用を行い、適切にアクセス制御するコントロールプレーンが必要になります。セキュリティの観点では、未知の脅威からの防御に加えて、検知・対応・復旧の仕組みを考慮したシステム設計を行う必要があります。これには組み込み・ネットワーク・クラウドセキュリティにまたがる幅広い専門性と開発リソースを必要とします。
4. 信頼できるメッセージ通信
現代のIoTシステムにおいて、デバイスがセンシングするデータは、複数のネットワーク境界を超えて、Brokerやメッセージキューやデータセンターを経由し、最終目的地に届けられることが一般的です。近年、クラウドサービスが普及し、そのシステム構成は複雑化するばかりです。それぞれの経路のトランスポートと通信プロトコル(TCP, UDP, HTTP, HTTPS, MQTT, MQTTS)に合わせて、信頼できるメッセージ通信を構築・運用するには高いコストがかかります。
2-2. E2Eセキュリティ構築の課題
このように「E2Eセキュリティ」を構築・運用するには、高い専門性と膨大な開発リソースを必要とすることがわかります。さらに、多くの要素技術はOSやCPUやトランスポートに強く依存するため、製品ラインナップごとに個別に開発リソースを必要とします。
トップティアメーカーでさえ、セキュリティ専門家と開発リソースが枯渇しており、あらゆる製品ラインナップに対して適切に「E2Eセキュリティ」の構築を行うことが困難です。
UNiDのご紹介
UNiDはこうした市場のペインポイントを解決するために生まれました。セキュリティの専門家でなくても、デバイスに「UNiD EDGE」を導入し、「UNiD」プラットフォームを活用することで、最短1日で「E2Eセキュリティ」を構築することができます。本章では、UNiDの特徴とソリューション、メーカーがUNiDを導入するベネフィットをご紹介します。
3-1. UNiDの特徴
UNiDの最大の特徴は、「分散型ID」に基づくE2Eセキュリティソリューションです。「分散型ID」とは検証可能な分散型デジタルIDを可能にする新しいタイプの識別子です。W3C・DIFなどの標準化団体にて国際標準化が進み、2022年6月30日にW3C勧告となりました。W3C勧告であるHTMLやXMLと同様に、国際的に十分な信頼性があると認められた技術仕様となります。
弊社は2019年からDIF( https://identity.foundation/)に加盟し、この「分散型ID」技術の国際標準化を推進してきました。UNiDはこの「分散型ID」の特徴を活用し、従来型デジタルIDの弱点を克服する唯一のソリューションを提供します。
3-2. UNiDソリューションのご紹介
1. デバイスID・暗号鍵管理
開発者はデバイスに「UNiD EDGE」を導入することで、安全なデバイスIDと暗号鍵管理を実現します。「UNiD EDGE」は、デバイス内部で自律的に真正乱数から複数の暗号鍵ペアと識別子を生成します。生成した秘密鍵をRoTで保護し、安全な暗号鍵管理を実現します。「UNiD EDGE」は、RoT(Linux TPM, ARM Cortex TrustZone, Renesas SCEなど)に対応する Extensions を提供し、主要な組み込みOSとCPUに対応します。現在は、Linux Kernel x86 (32bit), x86-64 (64bit), FreeRTOS – ARM Cortex-M33 (32bit)に対応し、Rust, C, NodeJSの開発言語に対応します。「UNiD EDGE」のソースコードは こちらから確認できます。
2. プロビジョニング
開発者はデバイスに「UNiD EDGE」を導入することで、プロビジョニングを自動化します。「UNiD EDGE」が導入されたデバイスは、複数の暗号鍵ペアを生成し、公開鍵情報を含むペイロードをUNiD Network(DID Registry, DPKI)に登録します。UNiD Network上で、デバイスの識別子(DIDs)と公開鍵情報を含むJSONオブジェクト(DID Document)が生成され、この生成オペレーションの履歴がパブリックブロックチェーン(Bitcoin)に記録されます。この仕組みによりデバイスIDと公開鍵情報との紐付きを担保します。通信相手は、デバイスの識別子(DIDs)から対応するDID Documentを解決し公開鍵を取得することができます。これまでの認証局やPKIやインジェクション作業を不要にすることでプロビジョニングコストを削減し、サプライチェーンの脆弱性を排除することができます。詳しくは、 オフィシャルドキュメントをご参照ください。
3. デバイス認証・認可
開発者は「UNiD EDGE」と「UNiD HUB」をつなぐことで、デバイスの認証・認可を実現します。「UNiD HUB」は、デバイスとの相互認証、動的アクセス制御、メッセージルーティングの機能を担うコントロールプレーンです。開発者は、製品ごとに「UNiD HUB」を作成し、「UNiD EDGE」の初期プロファイルを取得します。このプロファイルには「UNiD HUB」のエンドポイント、DID、シークレットIDなどの情報が含まれます。「UNiD EDGE」に初期プロファイルを設定することで、「UNiD EDGE」と「UNiD HUB」との相互認証を実現します。「UNiD EDGE」は署名付き暗号化メッセージを「UNiD HUB」に送信し、「UNiD HUB」はこれを復号・署名検証することで、デバイスを認証します。開発者は、「UNiD HUB」からデバイスのアクセスポリシーを変更することができます。
4. 信頼できるメッセージ通信
開発者は「UNiD EDGE」を導入したデバイス間の信頼できるE2Eメッセージ通信を実現します。下図のように、デバイスは通信相手の識別子(DIDs)から暗号用の公開鍵情報を取得し、共通鍵を生成します(ECDH)。デバイスは、署名付き暗号化メッセージを「UNiD HUB」に送信し、「UNiD HUB」はそのメッセージを通信相手にルーティングします。通信相手は、受け取ったメッセージを共通鍵で復号し、署名検証します。「UNiD HUB」は通過するデータの中身を知ることはできません。この仕組みを「E2Eメッセージングプロトコル」と呼びます。
この分散型IDに基づく「E2Eメッセージングプロトコル」には、二つのメリットがあります。一つ目は、メッセージそのものにデジタル署名+暗号化処理を施すので、あらゆるトランスポートに対して透過的に活用することができます。つまり、開発者はトランスポートを意識することなく、信頼できるE2Eメッセージ通信を実現することができます。二つ目に、「UNiD EDGE」が導入されたデバイス間であれば、NAT/Firewallを超えたE2Eメッセージ通信を容易に構築できます。たとえば、クラウドに保管できない機微なデータを扱うシステムにおいて、下図のように、お客さまのIoTデバイスと自社サーバー間でE2Eメッセージ通信を構築し、アフターサービスやクロスセル提案を効率的に行うシステムを容易に実現することができます(図中の「U」は「UNiD EDGE」が導入されたデバイスを示す)。
3-3. UNiDを導入するベネフィット
開発者は、デバイスに「UNiD EDGE」を導入するだけで、簡単に「E2Eセキュリティ」を構築し、信頼できるメッセージ通信を実現することができます。以下に「UNiD」を導入するメーカーのベネフィットをまとめます。
- 現代の脅威に対応するベストプラクティスの導入(インシデントリスク低減)
- 初期開発コストを抑えながら「E2Eセキュリティ」を構築
- 幅広い製品ラインナップに導入可能
- さまざまな社内リソースやクラウドサービスとの連携が容易
- 信頼できる自由なデータ流通を実現
- 国際標準規格に準拠
Renesas RA6M5 + UNiDのDEMO動画
Renesas社製 RA6M5, FreeRTOS – ARM Cortex-M33 (32bit) に「UNiD EDGE」を導入し、デバイス管理システムを構築するプロトタイプのデモ動画になります。
開発者はプロファイルが設定されたコンパイル済みの「UNiD EDGE」をダウンロードし、「Renesas RA6M5」の統合開発環境「e2 Studio」にて、「UNiD EDGE」ライブラリを組み込みます。アプリケーションをビルドすることで、デバイスIDと暗号鍵ペアを生成し、プロビジョニングを実行し、「UNiD HUB」と相互認証後に、センシングデータをクラウドサーバー(デバイス管理システム)に送信します。
Renesas社とのこれまでの取り組みが評価され、2022年6月に、国内スタートアップして初となる「 Renesas Ready Partner」に認定されました。
今後、「E2Eセキュリティ」に関する共同開発を進め、Renesas社製 RA/RX/RZ ユーザーが、セキュリティスタックを意識することなく、デバイスとクラウドの信頼できる自由なE2Eメッセージ通信を実現できる開発環境の提供を目指します。
チュートリアル
本チュートリアルは、お手元のPCに「UNiD EDGE(Docker Containerで配布)」を立ち上げ、デモ環境として準備した「Web App」とのE2Eメッセージングを行います。
以下の手順に従い、お手元のPCに「UNiD EDGE」を立ち上げ、curl
コマンドを利用して署名付き暗号化メッセージを「Web App」に送信します。「Web App」側で受け取ったメッセージを復号・署名検証することで、メッセージを表示することを確認します。
Terminal Sessionsの様子はこちらから確認できます( https://asciinema.org/a/516337)。
5-1. 前提条件
Docker version 20.10.13 以降
Dockerの取得方法についてはこちらをご参照ください: https://docs.docker.com/engine/install/
5-2. Docker イメージ取得
$ docker pull getunid/demo:latest
5-3. コンテナ実行
$ docker run --interactive --tty getunid/demo:latest bash
5-4. UNiD EDGE Agent の起動
$ unid-agent --daemonize
「UNiD EDGE Agent」をデーモンモードで起動すると、「UNiD HUB」との相互認証を行い、Unix Domain Socket を作成後、クライアントからの通信を待ち受ける状態になります。
ソケットファイルの位置
/unid-agent.sock
5-5. DID の作成
curl
コマンドでデバイス識別子(DIDs)・暗号鍵を生成し、プロビジョニングを実行します。
$ curl -X POST -H 'content-type: application/json' \ --unix-socket /unid-agent.sock 'http:/local/identifiers'
5-6. メッセージ送信
curl
コマンドで Web App にメッセージ送信します。
$ curl -X POST -H 'content-type: application/json' \ -d '{"message":{"key":"value"}, "to_did":"did:unid:test:EiBLjgg5Ueuj5qU7Ce2ARPMlJAHb1nGyLhWcZ2U4qadHLA"}' \ --unix-socket /unid-agent.sock 'http:/local/transfer'
送信するメッセージは Request Body に JSON 形式で設定します。JSON の内容 (“key” / “value”) には任意の値を設定できます。
メッセージ例
$ curl -X POST -H 'content-type: application/json' \ -d '{"message":{"message":"hello unid"}, "to_did":"did:unid:test:EiBLjgg5Ueuj5qU7Ce2ARPMlJAHb1nGyLhWcZ2U4qadHLA"}' \ --unix-socket /unid-agent.sock 'http:/local/transfer'
5-7. メッセージの確認
https://demo.getunid.io にアクセスして、送信したメッセージを確認できます。
シンプルな実装で、デバイス識別子・暗号鍵生成とプロビジョニング、デバイスとWeb Appとの信頼できるE2Eメッセージングを実現することができます。
5-8. Contribution
「UNiD」プロジェクトのソースコードは こちらから確認できます。
プロジェクトに関心のある方はぜひ「Github Star」をお送りください。プロジェクト参加、コントリビューションも歓迎しております。
まとめ
以上、デバイスとクラウドを繋ぐ「E2Eセキュリティ」の必要性と構築に関する課題、「UNiD」の特徴と利用方法についてご説明してきました。現在、要素技術検証と試作段階で利用できる開発ライセンスを提供しています。機能要件を満たすことが確認できたら、そのまま商用ライセンスに移行することができるので、無駄なく開発を進めることができます。「UNiD」に関するご質問・お問い合わせは、 contact@collabogate.com宛にお送りください。
ウェビナー
DX時代に向けた、IoTデバイスとクラウド間の信頼できるデータ連携
この度「Renesas Ready Partner」認定を記念し、IoTセキュリティの現状および「E2Eセキュリティ」の構築方法について幅広く知っていただくことを目的としたオンラインセミナーを、次の日程にて開催いたします。IoTソリューションの設計・開発に携わる皆様のご参加をお待ち申し上げております。
【公開期間】2022年9月30日(金)13:00 – 2022年10月7日(金)13:00
【講演企業】コラボゲートジャパン株式会社 / ルネサス エレクトロニクス株式会社 / テセラ・テクノロジー株式会社
【参加登録】2022年9月29日(木)13:00まで
こちらも是非
“もっと見る” ブログ
センサーのすべてがわかる!組み込み技術者のための基礎知識
私たちの生活を豊かにするために欠かせないセンサー。そんなセンサーの仕組みや種類について、分かりやすく解説していきます。
【フーリエ級数編6:フーリエ級数実践編】イメージでしっかりつかむ信号処理〜基礎から学ぶFFT〜
オイラーの公式は本当に重要&有用なものなので、しつこいようですがもう少しその意味を掘り下げておきたいと思います。話が脱線しているように見えるかもしれませんが、オイラーの公式と複素数についてしっかりイメージを固めておくことがこの後の話で大切になってきます。
ブラシレスモーター制御用MCUをささっと動かしてみよう!【RL78編】
私の主観としては、”モーター制御用途でも十分使用可能な超汎用MCU”です。現状最も人に勧められるMCUの1つです。2つめのリンク stmcu.jpは、ログインする事でリファレンスマニュアルやペリフェラルの使い方に関する日本語資料が閲覧できますので、ユーザー登録をおススメします。