皆さん こんにちは これからSTM32トラストをご紹介します短い時間ではございますが どうぞよろしくお願い致します話の流れです まずSTM32トラストの概要 組み込みセキュリティの考え方を話します後半はSTM32のセキュリティ機能を話しますSTM32トラストとは何ですかというとSTM32のセキュリティに焦点を当てて情報 ソフトウェア ハードウェアを一つにまとめた設計開発支援パッケージがSTM32トラストになります組み込みセキュリティ何もしないで 自動でできるといいんですが実際にはそうではなくて 検討して 設計して 作り込む必要がありますでもどうやったらいいか分からないよ という声あると思いますその悩みを解決するのをSTM32トラストがお手伝いします製品ライフサイクルの初めの段階 使用を決めたり 設計する段階で必要な組み込みセキュリティの知識 こちらについては日本語に翻訳済みのアプリケーションノートで 学習できますそれだけでは物足りないという場合 演習を図難に盛り込んだ無料のオンラインセミナーありますのでこれで知識を深めることができます開発段階では 実装に飽くだす クリプトライブラリなどを提供しています量産で 工場で暗号化したファーメアで 書き込みをやりたいという場合はSFIという仕組みが使えます市場に出荷した後 アップデートを暗号化したファーメアでやりたいという場合は SBSFUという仕組みが使えます最後の廃棄 IoTデバイスの場合はセキュアなネットワーク通信の 見元証明のために証明書入っています廃棄する前に この証明書執行させておかないと捨てた後に家庭に抜かれて 使われてしまう恐れあります廃棄も含めて 全部まとめて面倒を見てほしいという場合はSTのパートナー企業である 指きたせいあいコーポレーションの様のエッジトラスト これが有効です組み込みセキュリティを考えるとき 流れがあります守りたいものは何か どんな攻撃は予想されるかどう対策すれば攻撃を防げるか という流れですこの流れに沿って アプリケーションノート AN-5156は書かれていますので 組み込みセキュリティの知識STM32のセキュリティ機能に関する知識 これを スムーズに学習することができます無料のオンラインセミナー これは知識ゼロの状態から学習できるようになっています また 8個のパートに分かれていますので知識レベルに応じて 必要なパートだけ学習するといったことも可能ですオンライントレーニングの内容を 少しご紹介しますまず初めに AN-5技術の基礎を学んだ後 端根上でオープンSSLのコマンドを使って 演習をやりますその後 マイコン評価ボードを使いながらSTM32のセキュリティ機能を学んでいきます最後のパート8では STM32で セキュアなネットワーク通信でAmazon AWSのクラウドに接続して データを更新するという半存演習をやりますSTM32にはハードウェア AN-5機能を 内容しているもの 指定内容の2種類あります 内容していないものを選んじゃったんだけど AN-5機能を使いたいという場合 このクリプトライブラリを使うとこういった AN-5機能 ソフトウェアで 補うことができます製品を作るときに セキュリティ企画への対応を視聴になるときがあると思いますSTはその企画対応を役立つようにマイコンの認証 セジップという認証取得に力を入れていますこのセジップというセキュリティ認証 どんなものか ご説明します既に何かのセキュリティ企画に対応していてまた別な企画に対応しないといけなくなった っていう場合に既に対応済みの企画の 取得したときの知識ノウハウ経験というのを スムーズに再利用できることを目的にしたセキュリティ認証が セジップになりますグローバルプラットフォームという 標準化組織が策定したセキュリティ認証で 昔からある ISO15408コモンクライテリアを ベースにしていますがこれは中小論で分かりにくいのでアームPSAなどの内容がより具体的な 最近のセキュリティ認証の内容を取り込むことで 分かりやすくしてあります細かく分割されたセキュリティ 要求事項で構成されていて現在グローバルプラットフォームを 中心にこのセジップのセキュリティ要求事項と セキュリティ企画の要求事項のマッピングを進めていますSFIセキュアファーメアインストールは 工場で暗号化したファーメアで書き込みをやりたいときに 使える仕組みです暗号化したファーメアを電子メールなどで 工場に送りますこの暗号化したファーメア 複合化するための鍵についてはスマートカードに書き込んで 工場に送りますこのスマートカードの中の鍵を マイコンに安全に送るためにマイコンのセキュアロム領域に RSSというコードが入っていますこのRSSを使うと スマートカードからマイコンへ安全に鍵を送ることができます複合化の鍵もらった後 暗号化したファーメアを受け取ってマイコン内部で複合化しながら フラッシュでメモリに書き込んでいきますその後 書き込みが終わったら プロテクションをかけます最後に複合化の鍵を消すというのが SFIの流れになりますSFIではスマートカードを使いますが カードごとに何回SFI実行できるか 回数決まっていますその回数に応じて カードの値段も異なりますSVSFUはセキュアブート機能と セキュアファーメアアップデート機能を盛り込んだフラッシュメモリから起動するブートローダーになりますセキュアブートの機能を簡単にご紹介しますファーメア本体とファーメア本体から作った照明 2つ書き込まれていて照明をもとにファーメアに改ざんがないことを確認できたときに初めて起動を許可するというのが セキュアブートの機能になりますセキュアファーメアアップデート機能は 外部から マイコンの外部から暗号化したファーメアをシリアウ通信でマイコン内部にダイオンロードしてマイコン内部で複合化して クラッシュメモリに書き込む仕組みですデフォルトではUARTでのダウンロードができますペットはUSBやSPIなどのダウンロードを作り込むことでそれらの通信でダウンロードできるようになりますファーメアの暗号化 これはファーメアをビルドしたとき自動で暗号化するような仕組みが この開発プロジェクトの中に仕込まれていますSTMさんにトラストについては以上になりますここから組み込みセキュリティの考え方を話します安全という日本語 ワイエージ賞を引くとセキュリティセフティ2つ役を出てきますが英語の定義では意味違います セキュリティは左側です盛りたいものがあって 攻撃があって その間にあるのがセキュリティになりますIoT端末への攻撃例です端末からファーメアデータ読み取られてしまうとコピー品作られる恐れがありますまた端末に攻撃をプログラムを仕込まれてしまうと端末が管理している情報を解断される恐れがあります汎用マイコンへの攻撃 2種類あります1つ目 ソフトウェアによる攻撃これはJタグやブートローダーでマイコン内部のメモリーを読みかけするのが主な攻撃内容になります2つ目 物理攻撃これは色々種類がありますが例えばフォルトインジェクションというものこれはマイコンの電源品に定格外の電源を短い時間入れるというのを繰り返してCPUのご動作を吹き起こしてそれを攻撃に利用する物理攻撃になりますこの物理攻撃に対する対策汎用マイコンほとんど入ってませんがSTM3215の場合多くの物理攻撃に対する対策が盛り込まれています有名な防御の仕方 2つご紹介します1つ目 セキュアブートファーメアがあってこのファーメアからメーカーが保持している鍵で署名を作りますこの署名とファーメア2つ書き込んで署名を使ってファーメアに会談がないことを確認できたとき初めて起動を許可するというのがセキュアブートになります署名のない適当なファーメアを書き込んでも起動できなくすることができますこのセキュアブートに対応したファーメアがSTの場合はSBSFUが対応しています有名な防御の仕方 2つ目セキュリティアイソレーションこれがどうなるのかモデルを使ってご説明しますIoT端末があって内部にマイコンが入っていますマイコンに外付けフラッシュメモリがつながっていますマイコンはセンサーを使って水の使用料をチェックしてマイコン内部に記録していますその記録している情報無線通信でサーバーに送るというモデルだと思ってくださいハッカーたちは外部フラッシュを張り替えたりジュータグアクセスやブートローダバファオーバーフローなどで攻撃プログラムを仕込んできます仕込んだプログラムの起動ですがパソコンなどで有名なスタックオーバーフローマイコンの場合も使われる恐れあります組み込みの場合もう一つ注意が必要ながフォールドインジェクションになりますフォールドインジェクションで攻撃に利用しますこの例では汎用レジスターへの労働この命令コードの2ビットを5人式させるとプログラムカウンターへの労働に変わりますこのプログラムカウンターに攻撃をプログラムのアドレスが入ると起動されてしまうという例ですこういう攻撃毎回成功するわけではないのですが可能性がゼロではないとハッカーたちはあらゆる手順を自動化して回し続けるということをやってきますこれは攻撃例ですデータ改造されたり大事なデータ外部に送信されてしまうといった恐れありますセキュリティアイソレーションですが好き勝手にアクセスされたくないメモリーやペリフェラルこれらにアクセスするとき開発者があらかじめ決めてある手続きに従った時だけアクセスを許可するその手続きを無視してアクセスした時はリセットをかけるというのがセキュリティアイソレーションの考え方になります開発者があらかじめ決めてある手続き具体例としてアームトラスト像の場合はセキュア呼び出しが該当しますコアテックスMメモリープロテクションユニットでアイソレーションをしている場合はスーパーバイザーコールがそのあらかじめ決めてある手続きに該当しますアイソレーションの実現方法アーム3種類提唱していますMPUメモリープロテクションユニットによるアイソレーションですこれは保護次第メモリーやペリフェラルこのアクセスをメモリーMPUで特権アクセスだけ許可するように設定しておきますそして特権出ないモードで動作しておいて保護したところにアクセスする時はスーパーバイザーコールでモードを変えて特権アクセスするというアイソレーション方法になりますこれはだいたいどのSTM32でもやれます3つ目はデュアルコアこれはマイコンの設計段階で片方のコアから使いアクセスできないメモリーやペリフェラルを設計段階で作っておくというものですこれに対応しているのがSTM32WLWBになります3つ目のトラストドーンこれはデュアルコアのアイソレーションをシングルコアでより柔軟にできるようにしたものですこれに対応しているのがSTM32L5U5になります4つ目持っていますST独自のアイソレーション技術でファイヤーウォールというものがあります機能的にはトラストドーンのサブセットでSTM32L4L0で使います組み込みセキュリティの考え方については以上になりますここからSTM32のセキュリティ機能をご紹介しますSTM32のセキュリティ機能いくつかあるんですが単体で個別に使ってしまうと効果が弱いですこれに複数組み合わせで重ねて使うことでセキュリティを強化することができますという例になりますこの表はそれぞれのSTM32がどのセキュリティ機能を使えるかをまとめた表になりますSTM32U5が現時点では一番多くのセキュリティ機能を使いますこのスライドは先ほどの一覧表の説明をまとめたものになります資料配布後必要に応してご覧ください最後にSTM32U5の新しいセキュリティ機能を4つご紹介しますその前にトラストゾーンとは何か簡単にご説明しますトラストゾーンとはアドレス空間上の2位の位置に2位の大きさでアクセスしにくいエリアを作る仕組みがトラストゾーンになりますトラストゾーンができる以前はアクセスのしにくさは特権化そうでないかのトラストゾーンではセキュアステートというものを追加してアクセスのしにくさを4段階に拡張していますSTM32U5の新しいセキュリティ機能1つ目特権アクセスメモリですこれは4段階に拡張したアクセスのしにくさのどこにどのペリフェラルをどこにどのメモリのどの領域を割り当てるかというのトラストゾーンの枠組みで一括で設定管理できるようにしたものです2つ目内部タンパー検知はジェタグポート電源ピンジャンクション温度アンゴーハードウェアに対するフォルトインジェクションを検知する仕組みですフォルトを検知するとアンゴーハードウェアのレジスターだったりエスラムの内容を自動で消去するようになっています3つ目RDPジェタグアクセス禁止これはRDPレベルいくつかあるんですが鍵認証を通ったときにRDPレベルに戻せるという機能になります今までのSTM32ではRDPレベル2にしてしまうと元に戻せなかったんですがU5マイコンでは鍵認証を通すと低いレベルに戻す戻せるように改善されています最後の4つ目がSEQUIESですSTM32U5マイコンには普通のAESペリフェラルとSEQUIESペリフェラル2つ入っていますその違いは何ですかというとSEQUIESのほうはハードや鍵は使えますですのでユーザー鍵用意する必要はありませんハードや鍵でデータを暗号化複合化することができますその他にSEQUIESは普通のAESペリフェラルを支援する機能がありますのでそこだけお見せしますAESペリフェラルが使う鍵ありますこの鍵生ままで保存しとくと危ないのでSEQUIESのハードや鍵を使って暗号化しますそしてフラッシュメモリで保管しますAESがこのフラッシュメモリの鍵使いたいという場合SEQUIESのハードや鍵を使って複合化しますただ複合化した結果は外に出さずにJTAGやソフト屋では読めない特殊な経路でAESペリフェラルに渡すということができるようになっています最後におさらいをさせてくださいSTM32トラストとは組み込みセキュリティにマトを絞ってSTM32の情報ソフトウェアハードウェアなどを一つにまとめた設計開発支援パッケージがSTM32トラストです以上になりますご清聴いただきましてありがとうございました