JP2008504617A - セキュリティモジュール及びそのようなセキュリティモジュールのカスタマイズ方法 - Google Patents
セキュリティモジュール及びそのようなセキュリティモジュールのカスタマイズ方法 Download PDFInfo
- Publication number
- JP2008504617A JP2008504617A JP2007518597A JP2007518597A JP2008504617A JP 2008504617 A JP2008504617 A JP 2008504617A JP 2007518597 A JP2007518597 A JP 2007518597A JP 2007518597 A JP2007518597 A JP 2007518597A JP 2008504617 A JP2008504617 A JP 2008504617A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- security module
- dummy
- codes
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Microcomputers (AREA)
Abstract
本発明は、1つのマイクロプロセッサと、少なくとも1つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールに関する。このセキュリティモジュールは、識別手段が、モジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの独自の集合で構成され、プログラムメモリ内に保存されることを特徴とする。本発明は、1つのマイクロプロセッサと、少なくとも1つの運用プログラムを含む1つのプログラムメモリを備えるセキュリティモジュールを独自の識別子によりカスタマイズする方法にも関する。本発明の方法は、ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程を含むことを特徴とする。
Description
本発明は、少なくとも1つのマイクロプロセッサとプログラムメモリを備えるセキュア化されたセキュリティモジュールの分野に関する。本発明はまた、そのようなセキュリティモジュールのカスタマイズ、並びに内容が公開されたセキュリティモジュールの識別にも関する。
これらのセキュリティモジュールは、暗号化操作を行うシステム内で使用され、シングルブロックの形態で納入される。これらのモジュールは単体のシリコンチップ上に作製されるか、担体上に組み付けられ樹脂内に埋め込まれるか、種々の要素を覆い割り込みの試みがある時ヒューズとして作用するシートにより保護される。
これらのセキュリティモジュールは、特に起動プログラムと単一の又は複数の運用プログラムを含むプログラムメモリを有する。起動プログラムはプロセッサの起動時又は毎回のリセット時に実行される。この起動プログラムはROMタイプのメモリ内に保存される。即ち、読込みアクセスしかできない。
運用プログラムは、通常、EEPROM、NVRAM、又はフラッシュタイプの書換え可能型メモリ内に保存される。
起動プログラムは、その確認を終了すると、所定のアドレスにて運用プログラムの実行を開始する。
セキュリティモジュールのメモリの内容を知るための既知のアタックのうちの1つは、プロセッサの制御を握ることが可能になるメモリのオーバフローなどのセキュリティリークを探すことである。一旦この制御の把握が成功すると、メモリの内容を外部に転送すること、並びにセキュリティのメカニズム及び使用されている鍵を分析することが可能である。
メモリの内容を知ることにより、プロセッサが制御する種々の権利及びサービスへのアクセスを管理するのに用いる鍵を得ることができる。従って、管理センターにより指令されて鍵の変更が生じる場合、この変更指令はプログラムメモリ内に存在する鍵により暗号化される。この鍵を使用することにより、鍵の変更メッセージを復号すること、及びこの新しい鍵の内容を更新することも可能になる。
従って、不正を働く者によりセキュリティモジュールのセキュリティが一度侵害されると、変更手段(例えば新しい送信鍵)はこの者が既に所有する鍵を使用するので、管理センターによって開始される全ての変更はセキュリティに対しては効果がないことが確かめられる。従ってこの者は更新メッセージを復号すること、及びその送信鍵を変更することができる。
セキュリティモジュールのセキュリティが侵害され、プログラムメモリの内容が知られると、このモジュールのセキュリティを侵害した不正を働いた者が、プログラムメモリの内容に対応する情報処理コードを特にインタネットなどのネットワーク上で公開するということが起こる。これにより、未使用のカードを所有する第三者がこれらのコードをコピーし、完璧に機能するクローンカードを全面的に不正な方法で作り出すことができるようになる。
これらの不正な行為を制限するための手段の1つは、モジュールの安全性を向上させ、このモジュールのセキュリティを侵害することが極めて難しくなるようにすることである。
これらの不正な行為を著しく制限するための別の手段は、セキュリティが侵害されクローン化を可能にさせてしまったセキュリティモジュールを検出し、このモジュール、並びにこのモジュールにより作製されたクローンの機能を無効化することでこのモジュールに働きかけることにある。
米国特許US6725374(特許文献1)は、先行技術のモジュールと比較してセキュリティの向上を目的とする上述の第1手段を使用するセキュリティモジュールについて記述している。実際、この特許において記述されているモジュールにおいては、例えば電気消費量など鍵を抽出するのに使用することができる情報をスクランブルする「スクランブル」要素をモジュールの情報処理コードに付加することにより、鍵を見つけ出すことがより難しくなっている。これらのスクランブル要素は、実行順序がプログラムの進行に対して重要性をもたないモジュールで形成される。これらの要素はランダムに使用されるので、同一の2つの入力信号を処理しても同一の2つの出力信号が生成されるわけではない。このようにより難しくなってもなお、ある者がセキュリティモジュールの内容を判定できるようになった場合、このコードは第三者により公開され再使用されることがあるが、その場合でも、公開されたコードの発生源を見出すことは不可能である。
本発明は、上述の第2手段を使用すること、即ち不正行為に用いられたモジュールを検出することができる手段をモジュール内に導入することを意図するものである。
周知のように各セキュリティモジュールは独自の識別番号を含む。一般的に、あるセキュリティモジュールから情報処理コードを抽出することができる者は、このモジュールの内容についての比較的簡略な分析からそのモジュールの独自の番号を検出することもできる。この独自の番号は情報処理コードの公開時にも公開されない。
このため、不正を働く者を識別すること、並びに出所となるモジュール及びそのクローンを無効にすることができない。
米国特許US6725374
本発明の目的は、不正を働く第三者がセキュリティモジュールの識別子を引き出したとしても、このモジュールのコードを不正に公開した際、このモジュールを識別する手段を含む方法及びセキュリティモジュールを提案することである。従って本発明においては、セキュリティモジュールのクローン化防止策は、これらのモジュールのセキュリティを向上させることではなく、クローン化のために用いられたモジュールの検出を容易にし、その結果、これらのモジュールの機能を無効にすることを内容とする。
欧州特許EP1178406は、プリント回路の独自のシリアルナンバーがメモリに記憶される方法について記述している。この発明においては、まずバーコードからシリアル番号が読み込まれ、次にデジタル情報に変換される。これらの情報は場合によっては暗号化され、その後、単一の又は複数のメモリに入力される。この発明の目的は、シリアルナンバーの検出を難しくすること、及び無許可の者がこのシリアルナンバーを知り変更することを防止することである。シリアルナンバーを隠すためにシリアルナンバーは大容量メモリに記憶され、その結果、他の記憶された全ての情報の中でこのシリアルナンバーを割り出すことが困難になる。シリアルナンバーを知り変更することを防止するためにシリアルナンバーが暗号化される。
シリアルナンバーを隠すことによっても本発明の問題を満足のいく方法で解決することはできない。事実、シリアルナンバーはメモリの所与のロケーションに、ある値として記憶される。ある者、又はある者のグループがシリアルナンバーのロケーションを割り出すと、このロケーションは公開される可能性がある。従って、クローン化されたセキュリティモジュールを作製するのに必要な情報処理コードが公開された時は、セキュリティモジュールが検出されるのを防止するためには、このロケーションの内容を公開しないようにすればよい。
本発明の目的は、1つのマイクロプロセッサと、少なくとも1つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールであって、この識別手段が、モジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの集合で構成され、プログラムメモリ内に保存されることを特徴とするセキュリティモジュールにより達成される。
この目的は、1つのマイクロプロセッサと、少なくとも1つの運用プログラムを含む1つのプログラムメモリを備え、
‐ ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、
‐ このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程と
を含むことを特徴とする、独自の識別子によるセキュリティモジュールのカスタマイズ方法によっても達成される。
‐ ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、
‐ このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程と
を含むことを特徴とする、独自の識別子によるセキュリティモジュールのカスタマイズ方法によっても達成される。
本発明の目的は、情報処理コードが一般人からアクセス可能であるようにされた、請求項1から6のいずれか1項において規定されたようなセキュリティモジュールの識別方法であって、
‐ 一般人からアクセス可能であるようにされた情報処理コードの中からダミー情報処理コードを抽出する工程と、
‐ 前記セキュリティモジュールの識別手段を導くようあらかじめ決められた規定に従って前記ダミー情報処理コードを処理する工程と
を含む方法によっても達成される。
‐ 一般人からアクセス可能であるようにされた情報処理コードの中からダミー情報処理コードを抽出する工程と、
‐ 前記セキュリティモジュールの識別手段を導くようあらかじめ決められた規定に従って前記ダミー情報処理コードを処理する工程と
を含む方法によっても達成される。
本発明のカスタマイズ方法は、不正を働く第三者からはダミー情報処理コードがプログラムの一部を成すものとみなされ、従ってクローンモジュールの再生に必要であるように思われるということがその主な特長である。
これらのダミー情報処理コードは運用プログラム内に紛れ込んでいるので、モジュールが良好に作動するのに真に必要な情報はどれであるか、また識別番号を生成するのに使用される情報はどれであるかを判別することが難しい。
本発明によるセキュリティモジュール並びにこれに関連する方法により、不正にアクセスしたセキュリティモジュールの情報処理コードの公開という不正を働く者に対し、セキュリティモジュールの独自の識別番号又は番号を決定することを可能にする情報も公開させるように駆り立てることができる。このおかげで、元のセキュリティモジュールがどこにあるかを判定することが比較的容易である。そこを起点として、この元のモジュール、並びにこのモジュールにより作製することができたクローンを無効にすることができる方法が存在する。これらの方法のうちの1つは、同じ出願人の欧州特許出願EP04100969.7にて記述されている。
本発明は、非限定的例として示した添付の図面を参照して行う以下の詳細な説明により、より良く理解されよう。
図1を参照すると、セキュリティモジュールSMは、セキュア化されたプロセッサモジュールである。そのためセキュリティモジュールは、少なくとも1つのマイクロプロセッサCPU、及び特に運用プログラムを含むプログラムメモリを有する。図示する実施形態では、プログラムメモリは第1の起動エリアZ1と第2の作業エリアZ2を含む。第1の起動エリアはその全体又は一部がROMメモリ、即ち書込み不可メモリで構成される。特に変数用として、ある部分がRAM又はEEPROMメモリエリアを含むことができる。この部分は、セキュリティモジュールの電源入りの際に最初に実行されるので、「起動」エリアと呼ばれる。
従来、セキュリティモジュールは、読取り専用メモリエリアに記憶することができる独自の識別番号UA1を含むことができる。通常、この番号UA1は例えばセキュリティモジュール自体又は添付書類に印刷することができるシリアルナンバーの形態でユーザーがアクセスすることができる。
作業エリアZ2は運用プログラム及びデータを含む。このエリアは不揮発性メモリで構成されるが、EEPROM等の書込みの可能性を有する。エリアZ2はRAMのような揮発性メモリも含むことができる。実際にはこのエリアは通常均一ではなく、ROM、RAM、EEPROM、NVRAM又はフラッシュ等、複数のメモリを含むことができる。
マイクロプロセッサCPUは、起動時又は再起動(リセット)時に、自動的に第1エリアZ1に向けられる。第1のセキュリティ関連の作業が行われるのはそこである。これらの作業は第1メモリエリアを使用することになるが、必要であれば作業エリアZ2も使用する。
図1においてI/Oブロックは、モジュールSMの外部への通信手段を示すが、これは、暗号化機能及びメモリ内に保存されている権利を使用するのに不可欠な手段である。また、上で記述したようなセキュリティリークによってエリアZ2からデータが偶発的に抽出される場合もここを介して行われる。
上で示したように、作業エリアZ2はモジュールの運転のための運用プログラムを含む。図2及び図3により、運用プログラムの構造の一実施形態を詳細に示す。この運用プログラムは、そのようなプログラムのコンパイルの前に置かれるのであれば、決められた機能を有する命令ラインの形態で表すことができる情報処理コードで構成される。
説明をわかりやすくするために、命令が、ある所定のシンタックスを満たす命令ブロックB1、B2、B3に配分されていると仮定する。
本発明のモジュール内には、少なくとも2種類の命令ラインが共存する。第1の種類は、決められた基準に従いマイクロプロセッサにより実行され、プログラムの動作にとって「有用」な結果を生み出す、実ラインと呼ばれる従来の命令に相当する。第2の種類の命令は、マイクロプロセッサによって実際に実行されず、及び/又は結果を直接生み出さない命令である。一方、以下の文中ではダミーラインと呼ぶこれらの命令ラインは、当該セキュリティモジュールに組み合わせられる独自の識別手段UA2を形成するのに使用される。実際には、ダミーラインは、マイクロプロセッサにより実行されない命令とするか、実際に実行されるが、運用プログラムの進行に影響を与える結果を生み出さない命令とすることができる。別の言い方をすれば、これらのコードの存在の有無に関わらず、プログラムの動作は同じである。「ダミーコード」又は「ダミーライン」という用語は、これら2つの実施形態を包含するものとして理解しなければならない。
図2に示す実施形態を特に参照すると、運用プログラムはある数の実命令ブロックB1、B2を含み、これらはプログラムルーチン、並びに命令ブロックB3を形成するダミー情報処理コードの集合を形成することができ、この命令ブロックは従来の命令ブロックと同じ態様を有するが、各モジュール毎に異なる。これらの情報処理コードはマイクロプロセッサによる実行に適し、前記マイクロプロセッサのシンタックスに対応するので、ただコードを分析しただけでは、実行されるであろう実コードや、実行されない或いは運用プログラムに対し影響を与えないダミーコードを割り出すことは不可能である。このダミーの集合に含まれる命令は、通常、マイクロプロセッサによって実行されないダミーラインであるか、それらを実行してもプログラムの動作には影響が及ばない。即ちこれらの命令はモジュールの独自の識別手段UA2を形成することにしか用いられない。実命令は図2及び図3においてRで示す実ラインで形成され、ダミーラインはこれらの図において符号Fで示してある。好ましくは、この命令ブロックB3は、よりうまく隠すよう、運用プログラムに挿入される。識別手段を形成するのに用いられるダミー情報処理コードも、例えばレジスター値又は変数値を含むことができる。
図3に示すような実施の変形形態によれば、ダミーラインが運用プログラムのメモリ内に一緒にまとめられる先の例とは異なり、セキュリティモジュールは、実命令Rの中に分配されたある数のダミー命令ラインFを含む。これらのダミーラインは、独自であり各セキュリティモジュール毎に異なる情報処理コードの集合を形成する。
通常、命令ラインは順番に実行されるため、これらの命令ラインが実行されないこと、又はそれらを実行することにより運用プログラムの良好な進行に影響が及ばないようにすることが重要である。また、不正を働く者によってこれら専用の情報処理コードが検出されないようにする、或いは検出が難しいようにすることも同じく重要である。
これらの制約を解消するためのものとして複数の実施形態が利用可能である。実施形態のうちの1つにおいては、ダミーラインは、当該ラインがダミーであり、従ってマイクロプロセッサにより実行してはならないことを示す特別な情報を含むことができる。
別の実施形態によれば、実命令によっては、ダミーラインのロケーションに関する手がかりを含むものがある。そのような手がかりは、例えば、決められたメモリロケーションに配置されたラインは処理してはならないことを示す命令の形態にすることができる。
ダミーラインを処理しないようにする命令は、例えばある条件が満たされた時、当該ラインをジャンプしなければならないことを示すことにより隠すことができる。そうすることにより、この条件が常に満足されるよう手筈を整えることが可能である。また、次のラインがダミーであることを示す手がかりを実ラインに付加することも可能である。
別の実施形態によれば、情報処理コード内のいかななるものもダミーラインと実ラインを区別しない。セキュリティモジュールは、マイクロプロセッサが実行してはならない情報処理コードのロケーションを示す記憶情報を含む。
上で簡単に記述したような変形形態もまた、マイクロプロセッサにより実際に実行されるがプログラムのその後の実行に対しては影響を及ぼさない命令をダミーラインとして使用することにある。そのような命令を、プログラムが次のラインに移行しなければならないことを示す手がかりとすることができる。例えば、条件付きジャンプの形態の命令を書込むことにより、ある決められた条件が満たされる時のみ次のラインへの移行が行われるように指示することにより、この条件が常に満たされるように準備しながら、この種の「無用」な命令を突き止めにくくすることはもちろん可能である。別の形態は、ある条件が満たされる時、この条件が決して満たされないように準備しながら、任意のあらかじめ決められたアドレスにプログラムを送ることにある。また別の形態は、重要でないとわかっているメモリロケーションを変更することにある。これらの「無用」な命令は、運用プログラムの実行の結果に影響を与えることなく削除することができるので、文中では、「マイクロプロセッサによる運用プログラムの実行に対し影響を及ぼさない」と記載してある。
不正を働く者によるダミーラインの検出を困難にする極めて好適な方法は、逆コンパイルされた情報処理コードの理解を著しく複雑にする方法である難読化或いは隠蔽である。
本発明の一変形形態によれば、ダミーラインのうちの一部のみがセキュリティモジュールの識別に用いられるようにすることも可能である。セキュリティモジュールの識別に用いられないダミーラインは、情報処理コードの理解を困難にするために、また、機能クローンを作成することができるようにする場合に公開しなければならない情報は何か、またセキュリティモジュールの独自の識別番号も露見されることを欲しない場合に省略しなければならない情報は何かを不正者が検出することを妨げるために、もっぱら存在する。
そのような追加のダミーラインは、モジュールがダミーブロックを含む実施形態にも、また、命令が実命令内に散在している実施形態にも挿入することができる。
例えば図2に示す実施形態及び図3に示す実施形態など2つの実施形態を組み合わせることもできること、即ち、他のダミー命令を実命令の中に配分しながら、ダミー命令をある決まった1つのブロックに入れることが可能であることに留意すべきである。
また、複数の識別手段を生成すること、或いは同じ独自の識別手段UA2を複数回生成することが可能な情報を入力し、その結果、ダミーラインのうちのいつくかが検出され従って公開されなくても、識別手段UA2を割り出すことが可能であるようにすることも可能である。
本発明によるセキュリティモジュールの実施には、モジュールに特有なデータを入力するカスタマイズ工程が含まれる。本発明は、情報処理コードが公開されたモジュールを検出する工程にも関連付けられる。この検出工程は、公開された情報からセキュリティモジュールに固有なデータを抽出することを内容とする。
本発明によるカスタマイズ方法の主な内容は、情報処理コードの独自の集合を生成し、次にこれらのコードをプログラムメモリ内に書込むことである。
このカスタマイズ方法はまず、選択されたセキュリティモジュールの種類によって変わり、特に、ダミー情報処理コードのロケーションによって変わる。例えば、ダミーコードが分離されたブロックの形態でプログラムメモリ内に置かれた場合、ダミーコードはブロックの形態で生成され、次にモジュール内に入力することができる。
ダミーコードが実情報処理コード内に分散している時、運用プログラムを形成する実コードは、空きロケーションを含むように記憶される。次にダミーコードが生成され、これらの空きロケーションに挿入される。
マイクロプロセッサによって実際に実行されるコードがダミーコードとなる実施形態においては、これらのコードは運用プログラムの進行には何ら影響を及ぼさないので、コードディレクトリを使用することが可能である。このディレクトリーは、運用プログラムの進行に影響を及ぼさないあらかじめ決められた情報処理コードの集合を含む。上述のように、これらのコードは、条件付きジャンプ、メモリエリアへの値の書込み、値の変更、その他、命令の実行の有無に関わらず、プログラムの進行を変更しない命令を含むことができる。
また、ディレクトリーに含まれているダミーコードから識別手段を自動的に生成する方法を用意することも可能である。例えば、空いている命令ライン数及び場合によっては挿入するブロックのサイズを知ることにより、運用プログラムの空ラインを挿入し各セキュリティモジュールが独自の命令の集合を使用するよう、ライブラリーの命令の中からある数のコードを取り出すことが可能である。このユニーク性は、使用する情報処理コードによって実現することも、これらのコードの使用順によっても実現することも可能である。図4はこの方法の概略図であり、図中の符号10はダミーコードF1、F2、...のディレクトリを示す。符号11は運用プログラムを形成する実情報処理コードR1、R2、...を示す。これらのコードは空のメモリロケーションを含む。
セキュリティモジュールのカスタマイズ化の際には、ディレクトリーに記憶されているダミーコードの中から、ある数の情報処理コードが選択され、その結果、2つのセキュリティモジュールが同じコードを含まないようになる。これらのコードは運用プログラムの空きメモリロケーションに入力される。図4に示す例では、符号SM1、SM2、SM3を有するセキュリティモジュールのダミーコードはそれぞれ集合(F1、F1、F3)、(F3、F2、F4)及び(F3、F3、F1)である。
更に本カスタマイズ方法は、ダミー情報処理コードの検出をより複雑することをねらいとする工程を含むことができる。特に、ダミーコードがブロックの形態で、ある決まったメモリロケーション内にまとめられている時は、セキュリティが侵害された2つのセキュリティモジュールの情報処理コードを単純に比較するだけで、不正を働く者がダミーコードを割り出すことができるようになり、その結果、これらを公開するようになるような事態を防止するのが適切である。この問題を解決するには、難読化又は隠蔽が特に適している。
上述のような、情報処理コードが公開されたモジュールを検出する工程は、公開された情報からセキュリティモジュールの独自の識別手段を抽出して、元のモジュールの所有者を見つけること、及びモジュール並びにモジュールにより作成されたクローンの無効にすることを内容とする。
この検出する工程の主な内容は、公開された情報処理コードを、カスタマイズ工程時にセキュリティモジュール内に入力されたコードと比較することである。このために種々の手段を用意することが可能である。特に、公開されたコードと生成されたコードの「1ラインずつ」の比較が可能である。この比較を行う別の方法は公開されたコードからダミーコードを抽出し、次に、これらのダミーコードに、ある演算を適用することである。実行可能な基本的演算は、ダミーコードを形成するビットの連結である。別の演算は、命令ブロックの署名(ハッシュ)を決めることでもある。実際には、ある独自の命令ブロックから独自の値を得ることができる任意の演算を使用することができる。この演算はカスタマイズ工程の際生成された情報コードに適用され、次にユニーク値が比較される。
まき散らされたダミー命令は先の例の場合と同様に図2に示すようにして処理され、その結果、セキュリティモジュールの独自の識別手段UA2が特定される。
セキュリティが侵害されたセキュリティモジュールの識別手段が特定されたら、元のセキュリティモジュール、並びにこの元のモジュールからクローン化されたモジュールを無効にすることが可能である。
上では詳細に記述しなかったその他の具体的な実施の変形形態も本発明の一部を成すものである。特に、1つのセキュリティモジュールに対し複数の識別手段を生成することができるダミー情報処理コードを入力することが可能である。例として、個別命令ブロックにより第1識別を構成し、公開コードにより、別の識別手段を構成することが可能である。
また、冗長ダミーコードを入力して、公開時にダミーコードの一部が削除されても識別手段を抽出できるようにすることも可能である。
独自のセキュリティモジュールについてではく、あるセキュリティモジュールのグループについて同一の識別手段UA2が使われるようにすることが可能である。これは、モジュールのグループが同一人、より詳細には同一のエンティティに所属する場合には有利である。上の種々のモードの組み合わせも同じく可能であり、例えば、あるセキュリティモジュールはあるモジュールグループに共通な第1識別手段と、モジュール毎に独自の第2識別手段を含むことができる。
また、識別手段UA2は、レジスタ内の値を示す情報処理コードを基にして画定することもできる。
一般的に、識別手段UA2は、セキュリティモジュールに従来含まれている識別手段UA1の代りとなるものではない。識別手段UA1はモジュール内にあり、モジュールが例えばチップカード又は鍵の形状を有する場合、モジュール上に印刷することができる。
一方、識別手段UA2は機密が保たれたままであり、第2識別番号UA2が存在することすら機密が保たれる。
Claims (14)
- 1つのマイクロプロセッサと、少なくとも1つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールであって、この識別手段(UA2)がモジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの集合で構成され、プログラムメモリ内に保存されることを特徴とするセキュリティモジュール。
- 前記情報処理コードが専用の命令ブロック内に置かれることを特徴とする、請求項1記載のセキュリティモジュール。
- 前記ダミー情報処理コードが運用プログラムを形成する情報処理コード内に配分されることを特徴とする、請求項1記載のセキュリティモジュール。
- 前記ダミー情報処理コードが前記マイクロプロセッサによって実行されないことを特徴とする、請求項2又は3記載のセキュリティモジュール。
- 前記マイクロプロセッサによって実行される運用プログラムの進行は前記ダミー情報処理コードによっては変更されないことを特徴とする、請求項2又は3記載のセキュリティモジュール。
- 更に前記モジュールがセキュリティモジュールの運転にも識別手段の形成にも使用されないダミー情報処理コードの集合を含むことを特徴とする、請求項1記載のセキュリティモジュール。
- 1つのマイクロプロセッサと、少なくとも1つの運用プログラムを含む1つのプログラムメモリを備え、
‐ ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、
‐ このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程と
を含むことを特徴とする、独自の識別子によるセキュリティモジュールのカスタマイズ方法。 - 前記専用のメモリロケーション内に配置されたダミー情報処理コードが前記マイクロプロセッサによって実行されないことを特徴とする、請求項7記載のカスタマイズ方法。
- 前記専用のメモリロケーション内に配置されたダミー情報処理コードが、前記マイクロプロセッサによる運用プログラムの実行に影響を及ぼさないことを特徴とする、請求項7記載のカスタマイズ方法。
- 前記独自の集合を形成する前記ダミー情報処理コードが情報処理コードライブラリーの中から選択されることを特徴とする、請求項8又は9記載のカスタマイズ方法。
- 前記ダミー情報処理コードが、運用プログラムを構成する情報処理コードとは異なる命令ブロックを形成することを特徴とする、請求項7記載のカスタマイズ方法。
- 前記ダミー情報処理コードが運用プログラムを構成する情報処理コードの中に分散していることを特徴とする、請求項7記載のカスタマイズ方法。
- 情報処理コードが、これらのコードによって形成されるプログラムの構造を隠すよう処理されることを特徴とする、請求項7から12のいずれか1項記載のカスタマイズ方法。
- 情報処理コードが一般人からアクセス可能であるようにされた、請求項1から6のいずれか1項において規定されたようなセキュリティモジュールの識別方法であって、
‐ 一般人からアクセス可能であるようにされた情報処理コードの中からダミー情報処理コードを抽出する工程と、
‐ 前記セキュリティモジュールの識別手段を導くようあらかじめ決められた規定に従って前記ダミー情報処理コードを処理する工程
を含む前記方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04103053A EP1612637A1 (fr) | 2004-06-29 | 2004-06-29 | Module de sécurité et méthode de personnalisation d'un tel module de sécurité |
PCT/EP2005/052988 WO2006000584A1 (fr) | 2004-06-29 | 2005-06-27 | Module de sécurité et méthode de personnalisation d'un tel module de sécurité |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008504617A true JP2008504617A (ja) | 2008-02-14 |
Family
ID=34929271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007518597A Pending JP2008504617A (ja) | 2004-06-29 | 2005-06-27 | セキュリティモジュール及びそのようなセキュリティモジュールのカスタマイズ方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20060020549A1 (ja) |
EP (2) | EP1612637A1 (ja) |
JP (1) | JP2008504617A (ja) |
KR (1) | KR101226854B1 (ja) |
CN (1) | CN101484864A (ja) |
AT (1) | ATE530975T1 (ja) |
CA (1) | CA2572023A1 (ja) |
ES (1) | ES2375484T3 (ja) |
TW (1) | TW200607294A (ja) |
WO (1) | WO2006000584A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010268417A (ja) * | 2009-04-16 | 2010-11-25 | Toshiba Corp | 記録装置及びコンテンツデータ再生システム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015301B2 (en) * | 2003-09-30 | 2011-09-06 | Novell, Inc. | Policy and attribute based access to a resource |
US7299493B1 (en) * | 2003-09-30 | 2007-11-20 | Novell, Inc. | Techniques for dynamically establishing and managing authentication and trust relationships |
US7467415B2 (en) * | 2003-09-30 | 2008-12-16 | Novell, Inc. | Distributed dynamic security for document collaboration |
US20090249085A1 (en) * | 2004-06-29 | 2009-10-01 | Nagracard S.A. | Security module and personalization method for such a security module |
US8007358B2 (en) * | 2005-11-22 | 2011-08-30 | Igt | Regulated gaming—multi-act games |
US7664937B2 (en) * | 2007-03-01 | 2010-02-16 | Microsoft Corporation | Self-checking code for tamper-resistance based on code overlapping |
JP2008253297A (ja) * | 2007-03-30 | 2008-10-23 | Univ Kansai Medical | 医療用チューブ |
AU2008203513A1 (en) | 2007-08-14 | 2009-03-05 | Aristocrat Technologies Australia Pty Limited | A gaming system and a method of gaming |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10293687A (ja) * | 1997-04-18 | 1998-11-04 | Nippon Telegr & Teleph Corp <Ntt> | プログラム著作権保護方法及び装置 |
JP2004038966A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ |
JP2004046708A (ja) * | 2002-07-15 | 2004-02-12 | Sony Corp | ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4430728A (en) * | 1981-12-29 | 1984-02-07 | Marathon Oil Company | Computer terminal security system |
US4802217A (en) * | 1985-06-07 | 1989-01-31 | Siemens Corporate Research & Support, Inc. | Method and apparatus for securing access to a computer facility |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
US6032257A (en) * | 1997-08-29 | 2000-02-29 | Compaq Computer Corporation | Hardware theft-protection architecture |
DE19837808A1 (de) * | 1998-08-20 | 2000-02-24 | Orga Kartensysteme Gmbh | Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger |
US6968459B1 (en) * | 1999-12-15 | 2005-11-22 | Imation Corp. | Computing environment having secure storage device |
US7003107B2 (en) * | 2000-05-23 | 2006-02-21 | Mainstream Encryption | Hybrid stream cipher |
US6629061B1 (en) * | 2000-07-31 | 2003-09-30 | Avaya Technology Corp. | Automatic concealment of product serialization information |
EP1209635A1 (fr) * | 2000-11-24 | 2002-05-29 | eSecurium SA | Télécommande securisée |
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US6968454B2 (en) * | 2001-12-27 | 2005-11-22 | Quicksilver Technology, Inc. | Apparatus, method and system for generating a unique hardware adaptation inseparable from correspondingly unique content |
CA2415334C (en) * | 2002-12-31 | 2012-04-24 | Protexis Inc. | System for persistently encrypting critical software data to control operation of an executable software program |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP2004312267A (ja) * | 2003-04-04 | 2004-11-04 | Sony Corp | 画像伝送システム,撮像装置,撮像装置ユニット,鍵生成装置,およびプログラム |
US7409545B2 (en) * | 2003-09-18 | 2008-08-05 | Sun Microsystems, Inc. | Ephemeral decryption utilizing binding functions |
-
2004
- 2004-06-29 EP EP04103053A patent/EP1612637A1/fr not_active Withdrawn
-
2005
- 2005-06-22 TW TW094120847A patent/TW200607294A/zh unknown
- 2005-06-27 EP EP05771823A patent/EP1761835B1/fr not_active Revoked
- 2005-06-27 AT AT05771823T patent/ATE530975T1/de not_active IP Right Cessation
- 2005-06-27 KR KR1020067027797A patent/KR101226854B1/ko not_active IP Right Cessation
- 2005-06-27 JP JP2007518597A patent/JP2008504617A/ja active Pending
- 2005-06-27 CA CA002572023A patent/CA2572023A1/en not_active Abandoned
- 2005-06-27 ES ES05771823T patent/ES2375484T3/es active Active
- 2005-06-27 US US11/166,126 patent/US20060020549A1/en not_active Abandoned
- 2005-06-27 CN CNA2005800220034A patent/CN101484864A/zh active Pending
- 2005-06-27 WO PCT/EP2005/052988 patent/WO2006000584A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10293687A (ja) * | 1997-04-18 | 1998-11-04 | Nippon Telegr & Teleph Corp <Ntt> | プログラム著作権保護方法及び装置 |
JP2004038966A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ |
JP2004046708A (ja) * | 2002-07-15 | 2004-02-12 | Sony Corp | ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010268417A (ja) * | 2009-04-16 | 2010-11-25 | Toshiba Corp | 記録装置及びコンテンツデータ再生システム |
Also Published As
Publication number | Publication date |
---|---|
WO2006000584A1 (fr) | 2006-01-05 |
EP1761835A1 (fr) | 2007-03-14 |
US20060020549A1 (en) | 2006-01-26 |
CN101484864A (zh) | 2009-07-15 |
EP1612637A1 (fr) | 2006-01-04 |
KR20070020093A (ko) | 2007-02-16 |
ES2375484T3 (es) | 2012-03-01 |
KR101226854B1 (ko) | 2013-01-25 |
CA2572023A1 (en) | 2006-01-05 |
ATE530975T1 (de) | 2011-11-15 |
TW200607294A (en) | 2006-02-16 |
EP1761835B1 (fr) | 2011-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008504617A (ja) | セキュリティモジュール及びそのようなセキュリティモジュールのカスタマイズ方法 | |
KR101256149B1 (ko) | 프로그램 카운터 인코딩을 이용한 간접 함수 호출 보호 방법 및 보호 장치 | |
US7721114B2 (en) | Method for using shared library in tamper resistant microprocessor | |
EP1785902B1 (en) | Decryption key table access control on ASIC or ASSP | |
US20030120938A1 (en) | Method of securing software against reverse engineering | |
JP5616528B2 (ja) | ソフトウェアの完全性を保証するためのプロセッサにより実施される方法 | |
EP2300952B1 (en) | A method for adapting and executing a computer program and computer program product and computer architecture therefor | |
WO2006115219A1 (ja) | プログラム難読化装置及び難読化方法 | |
JP5118036B2 (ja) | 命令生成装置、命令生成方法、プログラムおよび集積回路 | |
US20110271350A1 (en) | method for protecting software | |
EP2264640B1 (en) | Feature specific keys for executable code | |
US20170068804A1 (en) | Method for Protecting a Computer Program From Being Influenced, and Computer System | |
WO2009121933A1 (en) | Security module for audio/video data processing unit | |
US20090249085A1 (en) | Security module and personalization method for such a security module | |
JP2008502969A (ja) | セキュリティモジュール内に組み込まれたソフトウェアのセキュアな更新方法 | |
US20090300754A1 (en) | Protecting a Program Interpreted by a Virtual Machine | |
EP2393031A1 (en) | Method for activating at least a function on a chipset and chipset for the implementation of the method | |
US20060149942A1 (en) | Microcontroller and assigned method for processing the programming of the micro-con- troller | |
CN112685697B (zh) | 一种防止安卓应用被破解篡改的方法及终端 | |
JP2000000369A (ja) | 遊技制御装置 | |
JP2004103027A (ja) | 遊技制御装置 | |
JP2007248990A (ja) | 組み込み装置、実行データ生成方法、実行データ生成プログラム、認証サーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110726 |