(57)【要約】  産業用途を有する埋込みソフトウェアコードを無許可のアクセスおよび無断利用から保護するためのシステムが開示されている。本発明によるコード安全性のために、システムは、自動アプリケーションで実行される埋込みソフトウェアのための保護を提供する。本発明によれば、コードは複数のセグメントに分割され、アルゴリズムの部分は複数の環境内に分配されて実行され、コードのハッキングを防止する。【選択図】図１
2014531663.tif 000002
【特許請求の範囲】
【請求項１】
埋込みソフトウェアコードの保護のためのシステムであって、
（ａ）埋込みソフトウェアコードを複数のユーザ定義セグメントに保存させるセキュリティ手段（１００）と制御論理回路（１１０）とを備えており、前記セキュリティ手段（１００）におけるコード実行のための命令は、前記制御論理回路（１１０）のメモリから取り出され、あるいはその反対の形態にて取り出されることを特徴としており、
（ｂ）前記セキュリティ手段（１００）を前記制御論理回路（１１０）に接続し、前記埋込みコードの前記複数のセグメントとデータとが高速で伝送されることを特徴とするコミュニケーションバス（１３０）と、
（ｃ）前記埋込みソフトウェアコードを分配し、該埋込みソフトウェアコードを複数の環境内で実行するための、前記コミュニケーションバス（１３０）を介して前記セキュリティ手段（１００）に接続されている前記制御論理回路（１１０）を含む自動システム（１２０）をさらに含んで成り、前記埋込みソフトウェアコードは、改ざん、窃盗、あるいは前記コミュニケーションバス（１３０）の破壊または切断があった場合に自己破壊することを特徴とするシステム。
【請求項２】
前記自動システム（１２０）に埋め込まれた前記ソフトウェアコードの前記セグメントは、窃盗、改ざん、あるいは前記コミュニケーションバス（１３０）の破壊または切断があった場合に前記セキュリティ手段（１００）側にて自己破壊することを特徴とする請求項１記載のシステム。
【請求項３】
前記自動システム（１２０）に埋め込まれた前記ソフトウェアコードは暗号化され、高速で伝送されることを特徴とする請求項１記載のシステム。
【請求項４】
前記ユーザ定義セグメントは本システムの起動時に前記コミュニケーションバスを介して伝送され、前記コードは前記制御論理回路（１１０）と前記セキュリティ手段（１００）の間で分配されることを特徴とする請求項１記載のシステム。
【請求項５】
前記セキュリティ手段（１００）はドングルまたはハードウェアトークンであることを特徴とする請求項２記載のシステム。
【請求項６】
前記コミュニケーションバス（１３０）はＣＡＮバスであることを特徴とする請求項１記載のシステム。
【請求項７】
前記システムが、暗号および解読を消去するために、選択的に監視役タイマーを備えていることを特徴とする請求項２記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、ハードウェア装置に埋め込まれたソフトウェアコードをハッキングおよび無許可のアクセスから保護するための産業利用性を有したシステムに関する。本発明はさらに、様々な自動システムに埋め込まれたソフトウェアコードを保護する方法にも関する。
【背景技術】
【０００２】
発明の背景
ハッキングからアプリケーションコードを保護することは、ソフトウェアアプリケーションにとって非常に重要なことである。安全ではないアプリケーションコードは、常に、ハッキング、改変あるいはリバースエンジニアリングによる解読のリスクを抱える。ハッキング、改変または解読されたソースコードは使用されているアプリケーションに大きな影響を及ぼし、それが使用されている装置にもダメージを与えることがある。
【０００３】
現在、様々なアプリケーションに埋め込まれるソフトウェアコードの保護のために、異なる製造業者によって様々な解決策が提供されている。アプリケーションコードを保護するために様々なセキュリティコードおよびセキュリティ手段（セキュリティデバイス）が市場に出回っている。しかし、実際には、それら入手可能なセキュリティコードのほとんどは様々な技術の駆使を介して将来的にハッキングされる運命にある。コード保護のための現存するシステムは確実なものではなく、やがては屈服する。よって、信頼性が高く、様々な状況下でアプリケーションコードを保護することができるコード保護用のシステムが求められている。
【０００４】
現在、自動車アプリケーションにおける電子機器およびソフトウェアの利用は急速に増加している。自動車での最新ドライバー補助機能および補助性能に対する増加しつつある需要に伴い、自動車または自動アプリケーション形態でのソフトウェアおよび埋め込み型アプリケーションの利用も大きく増大した。ソフトウェアおよび組み込み型ソリューションは、パワートレーン、電子制御装置（ＥＣＵ）、エンジン制御装置、ブレーキ制御機能部、誘導システム、視聴機器、等々の自動車部品において様々なアプリケーション形態で益々多用されている。自動車用アプリケーションでのソフトウェアおよびアプリケーションコードの増加する利用に伴い、これらコードの保護および安全（セキュリティ）が主要な関心事になっている。従って、自動車用アプリケーションにおける様々なソフトウェアコードに対するタッピング、改ざん、解読、ハッキング、および類似した侵略脅威からの保護を提供する方法の需要が存在する。
【０００５】
アプリケーションを安全に保ち、ハッカーによるアクセスを不能に保つ一つの方法はコードを二つの作業環境内に分割することであり、この技術は、ＳＩＧＢＪＯＲＮＳＥＮ、Ｓｉｇｕｒｄ、他によって試行された（米国特許出願第２００４／０１９３９８７号参照）。
【０００６】
さらに別な試みは米国特許出願第２００４／００９８６１３号において開示されている。そこではコードが一つの部分に分割され、一方のコード部分は一つの装置に埋め込まれ、他方のコード部分は接続可能で保護されている装置に保存される。開示内容によれば、いずれの装置も他方のプロセッサの機能を呼び出さない限り実行できない命令のセット（インストラクションセット）を含んでいる。
【０００７】
上述の方法は確固たるものではない。なぜなら、米国特許出願第２００４／０１９３９８７号で使用されているようなスマートカードは現在ハッキングが可能であり、その安全性が脅かされている。一方、米国特許出願第２００４／００９８６１３号の場合には接続可能で保護されている装置がウィルスプログラムによって改変され、あるいは環境因子によって破損または改変される可能性が常に存在する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願第２００４／０１９３９８７号
【特許文献２】米国特許出願第２００４／００９８６１３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、タッピング、改ざん、解読、ハッキング、および他の類似した脅威から自動アプリケーションの様々な埋め込みコードを保護するための確実なシステムが必要とされている。
【００１０】
上述に鑑み、本発明は、動的な分散環境および異なる環境での実行によって自動システムのための埋め込み型ソフトウェアアプリケーションを保護する新規なシステムを提案する。
【課題を解決するための手段】
【００１１】
概要
本発明は、異なる自動アプリケーションに埋め込まれたソフトウェアコードを無許可のアクセスから保護するシステムを提供する。本発明は自動システムと制御論理回路（Control Logic, コントロールロジック）にコミュニケーションバス（通信バス）によって接続されたセキュリティ手段を（Security Device）含んでいる。
【００１２】
一つの特徴では本発明は、自動システムに埋め込まれたソフトウェアコードの確実な安全性のためのシステムを提供する。このシステムは、コードの窃盗、改ざん、リバースエンジニアリング、またはハッキングが試行された場合に自己破壊するコードの提供を含んでいる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明による埋め込み型ソフトウェアコードの保護のためのシステムのブロック図である。
【発明を実施するための形態】
【００１４】
図１で図示したように本発明のシステムは自動システム１２０を含む。本発明は、無許可のアクセスを防止するため、コードを含んだ制御論理回路１１０と、コミュニケーションバス１３０で制御論理回路１１０に接続されたセキュリティ手段１００とを含む。
【００１５】
詳細な説明
様々な自動システムが、様々なソフトウェアコード及び／又はアルゴリズム、コード、データおよび命令のセットを構築する埋め込みアプリケーションを含む機能部を有した装置を提供している。これらコードの安全性は、それらをハッキングから保護するために非常に重要な要素である。ハッキングはアプリケーションコードを改ざんさせ、リエンジニアリングさせてアプリケーションにダメージを与え、装置自身にもダメージを及ぼす可能性がある。よって、本発明のシステムは自動システムの埋込みソフトウェアコードを安全に保つ。
【００１６】
図１で図示するように、本発明の一つの実施形態では、埋込みソフトウェアコードを含む自身の制御論理回路１１０を有した自動システム１２０と、制御論理回路１１０にコミュニケーションバス（１３０）で接続されたセキュリティ手段１００を含み、無許可のアクセスを防止する。
【００１７】
一つの実施形態では本発明のシステムは、制御論理回路１１０とセキュリティ手段１００のごとく、複数の環境に分配して実行させるために埋込みソフトウェアコードを複数のユーザ定義セグメント（user defined segments, ユーザに定義されたセグメント）に分割させるセキュリティ手段１００を含む。コミュニケーションバス１３０は埋込みコードの複数のセグメントを高速伝送させる。暗号化されたデータはコミュニケーションバス１３０で伝送され、受領側で解読される。セキュリティ手段１００と制御論理回路１１０はデータを高速伝送させる任意のネットワークで接続できる。セキュリティ手段１００の校正データ（calibration data, キャリブレーションデータ）は校正ツールを介して設定される。このシステムへの入力インターフェースとして様々なセンサーが使用できる。特定アプリケーションの安全要件に基づいて、ユーザ／プログラマーは埋込みソフトウェアのセグメントをセキュリティ手段１００と制御論理回路１１０の間で分配する。その後にこれらはシステム内に凍結される。選択的な実施形態では、改ざんまたはその試みが検出された場合には、必要に応じて監視役（ｗａｔｃｈ  ｄｏｇ）が暗号および解読の消去のために提供される。
【００１８】
一つの実施形態では、ソフトウェアコードの分割と実行は異なる制御手段（コントローラ）すなわち異なる環境で実施され、コードをハッキングから保護する。コアコード、データおよび命令のセットは、全てユーザ定義セグメントに分配され、制御論理回路１１０とセキュリティ手段１００の２つの異なる環境内で実行される。埋込みアプリケーションの複数のセグメントの分配と実行をコーディネートするため、知られた様々なハンドシェークプロトコルが利用できる。１実施例では本発明のシステムには、窃盗、改ざん、コミュニケーションバスの接続破壊または解除、あるいはハッキングの類似行為の試行時にアプリケーションコードが自己破壊する機能が提供されている。
【００１９】
一つの実施形態では、このシステムは、ドングル（ハードウェアキー）、ハードウェアトークンまたは制御論理回路１１０に接続可能な任意の他の類似装置から選択されるセキュリティ手段１００を含む。この制御論理回路１１０は、ソフトウェアアプリケーションの要求に応じて様々な知られたプロセッサおよび制御手段から選択できる。これらセキュリティ手段１００と制御論理回路１１０はコミュニケーションバス１３０を介して接続される。コミュニケーションバスは任意のネットワークであるか、高速でデータを伝送させるバスでよく、好適にはＣＡＮバスである。セキュリティ手段１００で実行される命令は制御論理回路１１０から得られ、制御論理回路１１０で実行される命令はセキュリティ手段１００から得られる。
【００２０】
一つの好適な実施形態では、このセキュリティ手段１００を用いて、ユーザはアプリケーションの要求に応じて埋込みソフトウェアコードを異なるセグメントに分割する。これらセグメントは自動システムの起動中にコミュニケーションバス１３０で伝送され、コードは制御論理回路１１０とセキュリティ手段１００の間に分配される。続いてコードはセキュリティ手段１００と制御論理回路１１０の異なる環境内で実行される。セキュリティ手段１００でのプログラム実行のための命令は制御論理回路のメモリから取り出され、制御論理回路１１０のための命令はセキュリティ手段のメモリから取り出される。
【００２１】
セキュリティ手段１００と制御論理回路１１０は、ソフトウェアアプリケーションの要求に応じて様々なプロセッサおよび制御手段を含むことができる。ハッキング、改ざんまたは侵入の場合には、コミュニケーションバス１３０を介して伝送されているコードのセグメントはセキュリティ手段１００側にて、または制御論理回路１１０側にて、あるいはそれら両方にて自己破壊する。
【００２２】
さらに埋込みソフトウェアコードを無許可のアクセスから保護するための本発明のシステムは、ソフトウェアおよび埋込みアプリケーションの使用を含む任意のアプリケーションのため、すなわち保護されなければならないソフトウェアコードのために利用できる。要求に応じてコアアルゴリズムも、二つの異なる制御手段ばかりではなく複数の異なる制御手段内にて、よって複数の異なる環境内にて分配され、実行できる。本発明のシステムは、製造業者が安全機能を提供していない場合の全てにおいて利用性が発揮できるだけの汎用性を備えている。上述の方法は以下の適用事例で例示される。
【実施例】
【００２３】
適用事例１：
状況：ハイブリッド車の場合、制御手段はエンジンとモータの使用の制御に関してバイタルソースコードを含む。さらにハイブリッド車のエネルギー装置のモニタリングおよび最適利用性もハイブリッド車の制御手段に含まれる様々なソースコードによって制御される。従って制御手段は、燃料効率を増加させ、ハイブリッド車の性能を向上させるのに必要な全てのキーソースコード（key source codes）を含む。しかし、市場で入手できるこれらのほとんどの制御手段は第三者によって製造されており、制御手段に含まれるコードの安全アクセスを有することは不可能である。
【００２４】
方策：
本発明によれば、埋込みアプリケーションのそれら複数のセグメントはハイブリッド車のセキュリティ手段とマイクロコントローラ（多くの場合モータコントローラ、モータ制御手段）間に分配され、２つの異なる環境において実行され、要求される保護を提供する。
【００２５】
適用事例２：
状況：
洗濯機の回転制御回路（スピンロジック、spin logic)がライバル会社間で異なっており、リバースエンジニアリングからの保護が必要である。
【００２６】
方策：
バスによって相互通信する２つのマイクロコントローラ（ＣＡＮ／ＳＰＩ）を有することができる。これらマイクロコントローラ（制御用マイコン）の一方の主要な役割は回転制御回路であり、他方のマイクロコントローラはモータ制御用とすることができる。
【００２７】
キーパラメータを共有するこれら２つの制御手段の間に機密の（ｐｒｏｐｒｉｅｔａｒｙ、保護される、所有される）暗号化されたプロトコルを有するであろう。回転制御回路に必要なパラメータ処理は両方のマイクロコントローラに分配され、暗号化される機密プロトコルと共有されるであろう。例えば、ユーザは埋込みアプリケーションコードを回転制御回路コードと、保護装置１００に伝送できる洗浄機能コードとに分割でき、リンスコードおよびドライコードは制御論理回路１１０に伝送できる。
【００２８】
この種のメカニズムがあれば、ソフトウェア／ハードウェアを複製あるいは複写しようとする場合、回転作業のロジックをリバースエンジニアリングすることは非常に困難であろう。これが本発明の実施形態により保護されるコアアルゴリズムである。
【００２９】
適用事例３：
シナリオ：
ＳＯＣ、ＳＯＨコードが機密であり、製造業者はこれらコードの保護を望む。
【００３０】
方策：
バスによって相互通信する２つのマイクロコントローラ（ＣＡＮ／ＳＰＩ）が利用できる。
【００３１】
一方のマイクロコントローラの主要な任務はＳＯＣとＳＯＨの決定であり、他方のマイクロコントローラの主要な任務はバッテリのパラメータのデータ取得である。
【００３２】
機密の暗号化されたプロトコルはこれら２つの制御手段の間で共有される。パラメータ処理はＳＯＣおよびＳＯＨアルゴリズムの利用を必要とし、これらは両方のマイクロコントローラに分配され、暗号化される機密プロトコルによって共有される。
【００３３】
ここで説明しているシステムを備えれば、ソフトウェア／ハードウェアを複製または複写する試みが為されても、本発明の実施例によって保護されているコアコードであるＳＯＣ、ＳＯＨのロジックをリバースエンジニアリングすることは非常に困難であると考えられる。
【００３４】
以上、本発明の実施例で示された利用形態は、上述されたように、図１を利用して説明されているが、本発明の利用形態を制限することは意図されていない。当業者であれば本発明の範囲から逸脱せずに実施例を変更できるであろう。本発明はアルゴリズムまたはソフトウェアコードに関係しないが、本発明は、ハッキング、改ざん、スパイ行為、侵入、リバースエンジニアリング、等の犯罪行為および不法行為によって産業および商業環境で益々脅威に曝されているアルゴリズムとソフトウェアコードに保護と安全を提供する。本発明は、産業市場で益々盛んなそのような不法行為および電子窃盗行為に対するセキュリティ手段として機能する。
【図１】
2014531663.tif 000003
【国際調査報告】
2014531663.tif 000004
2014531663.tif 000005
2014531663.tif 000006