(57)【要約】      （修正有）【課題】耐タンパ性能が確保されていない汎用MCUでTPM［Trusted Platform Module］などのSE［Secure Element］を利用してセキュアブート（コード改ざん防止）を行なう場合に最大のリスクとなる、測定機能を含むCRTM（Core Root of Trust for Measurement）コードのバイパスを回避する技術を提供する。【解決手段】MCUの論理演算手段１００に含まれる一方向性関数１０２が、オブジェクトコード２０１またはデータに含まれる鍵情報[α]２０２と、コード測定手段３００において生成されたコード測定結果３０８から共通鍵暗号用の暗号鍵１０１を生成する。【効果】本システムに接続された外部機器で同様の処理により暗号鍵１０１を生成し相互の暗号通信に用いることにより、相互認証異常等によってオブジェクトコード改ざんを検出することが可能となる。【選択図】図２
2019092134.tif 000002
【特許請求の範囲】
【請求項１】
少なくともオブジェクトコード２０１とデータを含む不揮発性記憶手段２００、オブジェクトコード２０１に対する測定を実施するコード測定手段３００、及びオブジェクトコード２０１を実行する論理演算手段１００から構成されるシステムにおいて、論理演算手段１００に含まれる一方向性関数１０２が、オブジェクトコード２０１またはデータに含まれる鍵情報[α]２０２とコード測定結果３０８から共通鍵暗号用の暗号鍵を生成することを特徴とするシステム。
【請求項２】
前記第1項記載の一方向性関数１０２の入力としてシステム固有値が含まれることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
耐タンパ性能が確保されていない汎用MCU用の認証、及び送受信データの暗号化を対象とする。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
本発明の目的は、近年ITセキュリティの分野で注目を集めているマルウェア対策を提供することである。
【０００３】
本来、マルウェア対策としてはマルウェア自体の侵入を防御することが根本対策となるが、Xiongmai製のネットワークカメラ等［SOURCE：http://www.itmedia.co.jp/enterprise/articles/1610/25/news059.html］の近年のDDoS事例を見ると、アタック技術の進歩に防御技術が追い付かないケースが存在している。
【０００４】
本発明の目的は、ピアツーピア［Peer to Peer］またはマスタスレーブ形態の接続環境で、マルウェア侵入時に開局時の認証プロセスで上位装置がシステム異常を検知可能とする機能を提供することにある。
【０００５】
マルウェア対策の最終手段として、近年、TPM［Trusted Platform Module］を利用して起動時にオブジェクトコードの完全性証明を実施するセキュアブート技術が採用されているが、例えばソフトウェアをOSがRAM上に展開するケースでは、図１のアタックツリーに示すように、次のリスクが潜在的に存在する。
リスク_1：起動後に外部RAM上に展開されたコードをプロービングで直接書き換える
リスク_2：完全性証明の起点となるCRTM［Core Root of Trust for Measurement］をバイパスする
【０００６】
リスク_1については、USのRed Balloon Security社が開発したRun Time Detection技術が存在するが、リスク_2についてはTPMの標準化団体であるTCG［Trusted Computer Group］が刊行した標準書Trusted Platform Module Library  Part 1: Architecture（Family “2.0”、Level 00 Revision 01.38、September 29, 2016）の34.1 Introductionで次のように規定され、バイパスは考慮されていない。
【０００７】
A computer system reset puts the processor and chipset into a known state, and the processor (the root of trust for measurement) begins executing code provided by the platform manufacturer.
This initial code is the core root of trust for measurement (CRTM). It is code that must be trusted as there is no way to tell what that code is other than to rely on the manufacturer.
訳：コンピュータシステムのリセットは、プロセッサ及びチップセットを既知の状態とし、プロセッサ（RTM３０１）はプラットフォーム製造者が提供したコードの実行を開始する。
この初期コードはCRTMである。
製造者を信頼する以外に方策が無いため、信頼すべきコードでなければならない。
【０００８】
なお、CRTMとは、同標準で規定されているように、ブート時に実行されるソフトウェアであり、ブート領域が変更可能であるシステムでは、リスク_2のCRTMのバイパスが最大のリスクとなる。
【課題を解決するための手段】
【０００９】
本発明の構成を図２に示す。
【００１０】
システムは、CPUまたはFPGA等で構成される論理演算手段１００、FLASHメモリ等の不揮発性記憶手段２００、及びソフトウェア実装またはTPM等のデバイスで構成されるコード測定手段３００から構成される。
ここではコード測定手段３００にTPMを使用した場合を例として以下に構成を説明するが、コード測定手段３００は、FLASHまたはRAMインタフェースに直接接続され、転送と同時に測定を行うゲートアレイとすることもできる。
【００１１】
なお、コード測定手段３００にTPMを利用する理由としては、測定結果をUSのNIST［National Institute of Standards and Technology］が標準化したFIPS 140-2内で規定された暗号境界［cryptographic boundary］内５００で安全に管理可能である点が挙げられる。
また、TPMではRTM３０１［Root of Trust for Measurement］がコードをハッシュ関数３０４により測定し、測定結果（ステップＳ３０６）をPCR拡張関数３０５によってRTS３０２［Root of Trust for Storage］に含まれるPCR３０８［Platform Configuration Register］に格納し（ステップＳ３０７）、RTR３０３［Root of Trust for Reporting］が測定結果を出力する（ステップＳ３０９）構成となる。
【００１２】
通常のセキュアブート同様、論理演算手段１００は、不揮発性記憶手段２００に格納されたオブジェクトコード２０１をコード測定手段３００に転送し（ステップＳ２０３）、論理演算手段１００はPCR３０８から測定結果を取得し（ステップＳ３０９）、不揮発性記憶手段２００に含まれる鍵情報[α]２０２の取得（ステップＳ２０４）と共に一方向性関数Fdiv( )１０２に入力し、暗号鍵１０１を生成する（ステップＳ１０３）。
なお、暗号鍵１０１は暗号境界外４００に存在するため、安全性を考慮する場合、暗号鍵１０１及びFdiv( )１０２はJTAG等のデバッグ用インタフェースが無効化された論理演算手段１００のCPUの内部RAM内に格納する。
【００１３】
一方向性関数Fdiv( ) １０２としてはNISTでAES［Advanced Encryption Standard］等の暗号関数を用いることも可能だが、ここでは計算量を考慮し、AESと同等のセキュリティ強度［128 bit］を有するSHA-256を次式に従って使用したHMACとする。
Fdiv( 鍵情報[α]２０２, 測定結果Ｓ３０９ ) = HASH( 鍵情報[α]２０２ || 測定結果Ｓ３０９ )
ただし、HASH( )：SHA-256関数
【００１４】
ただし、鍵情報[α]２０２は暗号境界外４００の不揮発性記憶手段２００に格納され、露呈する可能性は否定できないため、露呈時の他システムへの影響を最小化するために、多様化（図３）を実施しても良い。
【発明の効果】
【００１５】
本システムに接続された外部機器でも本発明と同様の処理を行うことで、暗号鍵１０１を共有することが可能であり、本システムのオブジェクトコードが改ざんされた際には相互の暗号 / 復号結果に不整合が発生し、例えば相互認証異常等によってコード改ざんを検出することが可能となる。
【００１６】
また、論理演算手段１００、不揮発性記憶手段２００、コード測定手段３００で認証を行う場合、生成された暗号鍵１０１をコード測定手段３００に設定することで、コード測定手段３００及びコード測定手段３００が提供する他の暗号化手段を無効化することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】セキュアブートに対するアタックツリーの一例を示す図である。
【図２】本発明の全体像の一例を示す図である。
【図３】本発明の多様化方法の全体像の一例を示す図である。
【図４】本発明の多様化方法の鍵情報格納の一例を示す図である。
【図５】本発明の多様化方法の鍵情報生成の一例を示す図である。
【実施例】
【００１８】
以下、図３の鍵情報の多様化（全体図）を図４（鍵情報格納）と図５（鍵情報生成）を用いて説明する。
【００１９】
図４の論理演算手段１００はRAM上にn個（配列数）の鍵長［ここでは256 bit］サイズのエントリから構成される乱数配列領域１０６を確保し、乱数列で満たす。
【００２０】
なお、エントリはEntry_m［添え字mはエントリ番号（0, 1, 2 …）を示す］として記載される。
【００２１】
次に、論理演算手段１００は論理演算手段１００に格納されたデバイス情報等の変更不可能なユニーク値１０４から配列番号を生成する配列番号生成関数Fsel( )１０５によって使用する2エントリ(x,y)［図３ではEntry_1とEntry_n-2］を選定する。
【００２２】
なお、2エントリ［Entry_x及びEntry_y］を選定するFsel( )１０５の処理としては、例えば次式が挙げられる。
x=ユニーク値 mod n［ただし、ユニーク値１０４はunique_IDまたはユーザ規定値］
y=( x + z ) mod n［ただし、zは任意アルゴリズムでユニーク値から算出した固定値で、1 ≦ z ≦ n - 1］
【００２３】
次に論理演算手段１００はx番１０７のエントリを読み出し(β)(ステップＳ１０８)、不揮発性記憶手段２００に格納されている鍵情報［α］２０２と排他的論理和を取った結果(γ)(ステップＳ１０８ａ)をy番１０７aのエントリに格納した後(ステップＳ１０８ｂ)、乱数配列領域１０６を不揮発性記憶手段２００にコピー(コピー乱数配列領域１０６ａ)した後（ステップＳ１０９）、乱数配列領域１０６を論理演算手段１００からは消去する。
【００２４】
論理演算手段１００が不発性記憶手段２００に格納されたコピー乱数配列領域１０６ａから鍵情報[α]２０２を再生する場合には、図４の格納時と同様に、図５の論理演算手段１００に格納されているユニーク値１０４をFsel( )１０５によってエントリ番号(x,y)に変換し、不揮発性記憶手段２００に格納されているコピー乱数配列領域１０６ａを論理演算手段１００にコピー（再コピー乱数配列領域１０６ｂ）（ステップＳ１０９ａ）した後、x番１０７のエントリ（β）とy番１０７aのエントリ（γ）を読み出し（ステップＳ１１０〜Ｓ１１０ａ）、それらの排他的論理和を取ることで（ステップＳ１１０ｂ）不揮発性記憶手段２００にある鍵情報［α］２０２と同じ鍵情報[α]である生成鍵情報[α]２０２ａを論理演算手段１００に再生する。
【００２５】
なお、安全性を考慮する場合には、暗号鍵１０１と同様に図３の鍵情報の多様化は論理演算手段１００のCPUの内部RAMに格納する。
【００２６】
本処理を採用することで、攻撃者が論理演算手段１００〜不揮発性記憶手段２００間の信号を傍受してもシステム毎にユニークなコピー乱数領域１０６ａの鍵長 × nの乱数列が測定されるだけで(ステップＳ１１１)、鍵情報[α]２０２が信号上には出現しないことから中間者攻撃に対する耐性が確保可能となる。
【００２７】
また、生成にユニーク値１０４を使用しているため、仮に論理演算手段１００のCPU内部RAMから鍵情報[α]２０２を不正取得した場合でも、他の機器の不揮発性記憶手段間２００に格納されたコピー乱数配列領域１０６ａにフィードバックさせることは困難となる。
【符号の説明】
【００２８】
１００    論理演算手段
１０１     暗号鍵
１０２   一方向性関数Fdiv()
１０４    ユニーク値
１０５    配列番号生成関数Fsel( )
１０６   論理演算手段の乱数配列領域
１０６ａ   論理演算手段から不揮発性記憶手段へのコピー乱数配列領域
１０６ｂ  不揮発性記憶手段から論理演算手段へコピー乱数配列領域
１０７   select_Entry_x
１０７ａ   select_Entry_y
２００    不揮発性記憶手段
２０１     オブジェクトコード
２０２    鍵情報[α]
２０２ａ  生成鍵情報[α]
３００    コード生成手段
３０１    RTM [Core Root of Trust for Measurement]
３０２    RTS [Root of Trust for Storage]
３０３    RTR [Root of Trust for Reporting]
３０４    ハッシュ関数
３０５    ＰＣＲ拡張関数
４００    暗号境界外
５００    暗号境界内
【図１】
2019092134.tif 000003
【図２】
2019092134.tif 000004
【図３】
2019092134.tif 000005
【図４】
2019092134.tif 000006
【図５】
2019092134.tif 000007