説明

プログラム秘匿装置

【課題】機器が実行するプログラムの秘匿性が高く、かつ、取り扱いが簡便なプログラム秘匿装置を得る。
【解決手段】機器側認証手段101とカード側認証手段201により認証を行い、認証が正常に行われた場合、プログラム読み出し手段102は、ICカード200に対してプログラムの読出し要求を行う。ICカード200のプログラム転送手段202は、機器100からの読出し要求に応じてカード側記憶手段203よりプログラムを読出し、これを機器100に転送する。機器100側ではプログラムを受け取ると、これを機器側記憶手段103に記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、機器が実行するプログラムを第三者に対して秘匿するプログラム秘匿装置に関するものである。
【背景技術】
【0002】
近年の機器においては、その機能の大部分をソフトウェアにより実現している。これらの機器の機能を実現するソフトウェアは、当該機器の工場出荷時、製造メーカが製作し、機器の記憶装置に書込みを実施する。当該機器のユーザが、製造メーカに対してさえも動作(プログラム)を秘匿したい場合、例えばユーザ独自のデータ処理の方式を一般に公開したくないような場合であっても、製造メーカにデータ処理の手順を情報秘匿契約を締結した上で開示し、プログラムを製造・書込みを依頼するよりほか方法が無かった。
この場合、ユーザが秘匿したいデータ処理方法が製造メーカに存在し、事故あるいは悪意により流出する危険性があった。
【0003】
また、新たにユーザが機能を追加したい場合においても、上記の製作時と同様に、ソフトウェアを変更する情報を製造メーカに公開する必要があり、従って、この場合も流出の危険性があった。更に、仮にユーザがプログラムの一部を修正し、機器の記憶装置に書き込むことができる場合でも、その機器が故障し、製造メーカに返却して修理する必要が生じた場合は、製造メーカは機器からプログラムを読み出すことが可能であり、ユーザが秘匿したい情報が流出する危険性があった。
【0004】
一方、機器の記憶装置内に存在するプログラムも、既に公開されている読出し手順や、プログラムの命令文を解読(いわゆるリバースエンジニアリング)することで、ユーザが秘匿したいプログラムやデータの内容が知られてしまう危険性がある。リバースエンジニアリング対策としては、記憶装置内に存在するプログラムやデータを暗号化して記憶しておき、実際に使用する際に復号して実行できる形にプログラムやデータを変換する技術が実用化されている。
また、機器内のデータをICカードに格納された暗号キーを用いて暗号化するシステムがあった(例えば、特許文献1参照)。
【0005】
【特許文献1】特開2003−348098号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来の機器内に存在するプログラムやデータを暗号化して記憶する方法では、暗号/復号を行うための鍵の取り扱いや管理に十分な注意が必要であった。また、上記特許文献に記載されているようなICカードに格納された暗号キーを用いて暗号化する装置であっても、このような技術は、カード内のプログラムやデータの秘匿を目的としたものではないため、例えば、あるカードを特定の機器に対してのみ使用できるようにするといったことはできず、このような点からプログラムやデータの秘匿性が十分とはいえないものであった。
【0007】
この発明は上記のような課題を解決するためになされたもので、機器が実行するプログラムの秘匿性が高く、かつ、取り扱いが簡便なプログラム秘匿装置を得ることを目的とする。
【課題を解決するための手段】
【0008】
この発明に係るプログラム秘匿装置は、機器が実行するプログラムを格納するICカードを設け、機器は、予め保有する認証鍵を用いてICカードへの認証要求を行い、この要求に対するICカードからの認証結果を取得する機器側認証手段と、機器側認証手段で認証が正常に行われたことが確認された場合に、ICカードよりプログラムを読み出すプログラム読出し手段とを備え、ICカードは、機器より認証要求があった場合、予め保有する認証鍵を用いて認証を行い、正常か否かの認証結果を出力するカード側認証手段と、機器よりプログラムの読出し要求があった場合、格納するプログラムを機器に転送するプログラム転送手段とを備えたものである。
【発明の効果】
【0009】
この発明のプログラム秘匿装置は、機器とICカードとで認証を行い、認証が正常に行われた場合に、ICカードに格納したプログラムを機器に転送するようにしたので、機器が実行するプログラムの秘匿性が高く、かつ、認証鍵等の取り扱いを簡便とすることができる。
【発明を実施するための最良の形態】
【0010】
実施の形態1.
図1は、この発明の実施の形態1によるプログラム秘匿装置を示す機能ブロック図である。
図において、プログラム秘匿装置は、機器100、ICカード200、データ書込み装置300からなる。機器100は、プログラムを実行する機器であり、ICカード200は、機器100で実行するプログラムを保有する装置である。また、データ書込み装置300は、ICカード200に対して、認証鍵とプログラムデータとを書き込むと共に、機器100に対して認証鍵を書き込む装置である。
【0011】
機器100は、機器側認証手段101、プログラム読出し手段102、機器側記憶手段103を備えている。機器側認証手段101は、データ書込み装置300によって予め格納された認証鍵を用いてICカード200に対して認証要求を行い、ICカード200との認証処理を行う手段である。プログラム読出し手段102は、機器側認証手段101によってICカード200との認証が正常に行われたと判定された場合は、ICカード200よりプログラムを読み出す手段である。機器側記憶手段103は、プログラム読出し手段102によって読み出されたプログラムを記憶するための手段である。
【0012】
ICカード200は、カード側認証手段201、プログラム転送手段202、カード側記憶手段203を備えている。カード側認証手段201は、機器100の機器側認証手段101より認証要求があった場合に、データ書込み装置300より書き込まれ、予め格納する認証鍵を用いて認証を行い、その認証結果を機器側認証手段101に出力する手段である。プログラム転送手段202は、プログラム読出し手段102よりプログラム読出し要求があった場合に、カード側記憶手段203に格納されているプログラムを機器100に転送する手段である。カード側記憶手段203は、秘匿対象となるプログラムを格納する記憶手段である。
【0013】
図2は、機器100とICカード200とのハードウェア構成図である。
図2において、機器100は、中央演算処理装置(CPU)111と内蔵記憶装置112とインタフェース部113とを備えており、インタフェース部113にICカード200が着脱自在に接続されるよう構成されている。CPU111は、内蔵記憶装置112に記憶されたプログラムに従って、機器100としての機能を実現するための動作を行うプロセッサである。内蔵記憶装置112は、機器100としての機能を実現するための各種のプログラムを格納する記憶装置である。この内蔵記憶装置112は、例えばバッテリバックアップメモリで構成され、機器100を分解した場合に内蔵記憶装置112への電源供給が停止され、その記憶内容が失われるよう構成されている。尚、バッテリバックアップメモリは公知であるため、図2ではそのバックアップについての構成は図示省略している。インタフェース部113は、ICカード200を着脱自在に接続するためのコネクタとしての機能を有すると共に、データ書込み装置300等、外部装置とのインタフェース機能を有するものである。
【0014】
図3は、ICカード200のハードウェア構成図である。
図示のように、ICカード200は、フラッシュメモリ211、中央演算処理装置(CPU)212、インタフェース部213を備えている。フラッシュメモリ211は、不揮発性メモリの一種であり、電源が供給されなくとも記憶内容を保持することができるメモリである。このフラッシュメモリ211には、機器100の機能を実現するための機器プログラムデータ401と、認証機能を実現するための認証鍵402と、認証処理プログラム403と、インタフェース部213を介してフラッシュメモリ211に対するデータの読出し、書込みあるいは消去するための読出し/書込みプログラム404が記録されている。CPU212は、ICカード200における認証演算やフラッシュメモリ211へのアクセス制御を行うためのプロセッサであり、インタフェース部213は、機器100等、外部装置とのインタフェース機能を実現するものである。ICカード200におけるデータのやり取りは、このインタフェース部213を介してのみであり、それ以外にデータの読出し/書込みのためのインタフェースは存在しない。
【0015】
また、図1に示した機器100における機器側認証手段101とプログラム読出し手段102は、図2に示したCPU111と内蔵記憶装置112で実現され、機器側記憶手段103は、内蔵記憶装置112に相当するものである。即ち、機器側認証手段101及びプログラム読出し手段102は、内蔵記憶装置112に記憶されたそれぞれの機能に対応するプログラムと、これらのプログラムをCPU111が実行することにより実現されている。
【0016】
更に、図1に示したICカード200におけるカード側認証手段201とプログラム転送手段202は、フラッシュメモリ211とCPU212とで実現され、カード側記憶手段203はフラッシュメモリ211に相当するものである。即ち、カード側認証手段201は、フラッシュメモリ211内に記憶された認証処理プログラム403をCPU212が実行することによって実現され、プログラム転送手段202は、読出し/書込みプログラム404をCPU212が実行することによって実現されている。
【0017】
次に、データ書込み装置300とICカード200及び機器100との接続構成について説明する。
図4は、機器100とICカード200とデータ書込み装置300のハードウェア構成図である。
データ書込み装置300は、インタフェース部311、CPU312、カード用インタフェース部313、内蔵記憶装置314を備えている。インタフェース部311は、機器100といった外部装置とのデータのやり取りを行うための機器インタフェースであり、例えばUSBインタフェースからなる。CPU312は、内蔵記憶装置314に格納された各種のプログラムを実行してデータ書込み装置300としての機能を実現するためのプロセッサである。カード用インタフェース部313は、ICカード200を着脱自在に接続し、データのやり取りを行うためのカード用コネクタ等からなるカードインタフェースである。内蔵記憶装置314は、機器100の機能を実現する機器プログラムデータ501と、カード用インタフェース部313を介してICカード200へプログラムデータを書き込むICカード書込み用プログラム502と、機器100とICカード200とに共通の認証鍵を生成する認証鍵生成プログラム503と、生成された認証鍵をインタフェース部311を介して機器100に伝送する認証鍵伝送プログラム504を搭載する記憶装置である。
【0018】
図4における機器100の構成は、図2と同様にCPU111、内蔵記憶装置112、インタフェース部113及びICカードコネクタ113aを備えている。ここで、インタフェース部113は、例えばUSBインタフェースからなり、ICカードコネクタ113aは、機器100にICカード200を接続するためのコネクタである。
【0019】
次に、実施の形態1のプログラム秘匿装置の動作について説明する。
最初に、データ書込み装置300による機器100及びICカード200への書込動作について説明する。
図5は、データ書込み装置300による機器100及びICカード200への書込シーケンスを示す説明図である。
データ書込み装置300は、先ず、CPU312がICカード書込み用プログラム502を実行し、ICカード200に対して、カード内のフラッシュメモリ211に記憶されている機器プログラムデータ401及び認証鍵402を消去する命令を送信する(ステップST100)。ICカード200は、CPU212が読出し/書込みプログラム404を実行して、機器プログラムデータ401及び認証鍵402の消去(ステップST101)を行い、この処理が完了すると消去完了応答をデータ書込み装置300に送信する(ステップST102)。消去完了応答を受けたデータ書込み装置300は、CPU312が認証鍵生成プログラム503を実行して、所定の認証鍵を生成する(ステップST103)。そして、データ書込み装置300は、CPU312が認証鍵伝送プログラム504を実行して、生成された認証鍵をICカード200へ送信する(ステップST104)。これを受信したICカード200は、フラッシュメモリ211に認証鍵402を記録する(ステップST105)。
【0020】
また、データ書込み装置300は、ステップST103で生成した同じ認証鍵を機器100へも同時に送信し(ステップST104)、これを受信した機器100は、内蔵記憶装置112に認証鍵を記録する(ステップST106)。更に、データ書込み装置300は、認証演算に使用する乱数を発生させ、この乱数と認証鍵を用いて認証演算処理を施した認証子とを合わせ、認証要求としてICカード200に送信する(ステップST107)。認証要求を受信したICカード200は、CPU212が認証処理プログラム403を実行し、予め受信していた認証鍵と、認証要求に含まれる乱数とを用いて認証演算処理を行い、認証子を算出する(ステップST108)。そして、データ書込み装置300から送付された認証子と、ICカード200内で算出した認証子が一致するか否かの判定を行い(ステップS109)、認証子が一致しなければ、認証否定応答を送信し(ステップST110)、これを受信したデータ書込み装置300は異常終了となる(ステップST111)。あるいは、再度、ステップST107から繰り返すようにしてもよい。
【0021】
ステップST109において、認証子が一致したならば、認証正常応答を送信し(ステップST112)、これを受信したデータ書込み装置300は、ICカード書込み用プログラム502をCPU312が実行して、内蔵記憶装置314に記憶してある機器プログラムデータ501をICカード200に転送する処理を開始する(ステップST113)。ICカード200は、機器プログラムデータ501を受信すると、CPU212が読出し/書込みプログラム404を実行して、フラッシュメモリ211に機器プログラムデータ401として記憶させる処理を行う(ステップST114)。機器プログラムデータ501の転送が完了したことを検知したICカード200は、書込み完了通知をデータ書込み装置300に送信する(ステップST115)。書込み完了通知を受信したデータ書込み装置300は正常に書込み処理を終了する(ステップST116)。
【0022】
書込みが完了したICカード200は、データ書込み装置300から取外し、機器100のICカードコネクタ113aに装着することで、ICカード200に書き込んだ機器100の機器プログラムデータ401をCPU111が読み出す準備が整ったこととなる。
【0023】
次に、ICカード200が機器100に接続され、ICカード200のフラッシュメモリ211に記憶された機器プログラムデータ401を読み出す動作を説明する。
図6は、ICカード200から機器プログラムデータ401を読み出す際の動作シーケンスを示す説明図である。
本発明では、機器100がICカード200から機器プログラムデータ401を読み出す際には、必ず認証処理を行い、機器100とICカード200の双方に記憶されている認証鍵が一致しなければ、それ以降の読出し処理に移行できないよう構成されている。
【0024】
機器100はICカード200が接続されると、CPU111は、先ず、認証演算に使用する乱数を発生させ、この乱数と内蔵記憶装置112に記憶してある認証鍵を用いて認証演算処理を施した認証子を合わせ、認証要求としてICカードに送信する(ステップST200)。認証要求を受信したICカード200は、CPU212が認証処理プログラム403を実行し、フラッシュメモリ211に記憶してある認証鍵402と、認証要求に含まれる乱数を用いて認証演算処理を行い、認証子を算出する(ステップST201)。機器100から送付された認証子と、ICカード200内で算出した認証子が一致するか否かの判定を行い(ステップST202)、認証子が一致しなければ、認証否定応答を送信し(ステップST204)、これを受信した機器100は異常終了となる(ステップST203)。あるいは、再度、ステップST200から繰り返すように実行させてもよい。
【0025】
ステップST202において、認証子が一致したならば、認証正常応答を送信し(ステップST205)、これを受信した機器100は、ICカード200のフラッシュメモリ211に記憶されている機器プログラムデータ401を機器100に転送する処理の開始要求をICカードに送信する(ステップST206)。転送開始要求を受信したICカード200は、CPU212が読出し/書込みプログラム404を実行して、フラッシュメモリ211から機器プログラムデータ401を読出し、機器100に送信する処理を行う(ステップST207)。機器プログラムデータ401を受信した機器100は、内蔵記憶装置112に書込み処理を行う(ステップST208)。機器プログラムデータ401の転送が完了したことを検知したICカード200は、読出し完了通知を機器100に送信する(ステップST209)。読出し完了通知を受信した機器100は正常に読出し処理を終了し(ステップST210)、内蔵記憶装置112に書き込んだ機器プログラムデータをCPU111が実行し、機器100の機能を実現する(ステップST211)。
【0026】
以上説明したように、ICカード200は、外部からの信号のやり取りがインタフェース部213を介して、尚かつCPU212の処理を経なければフラッシュメモリ211に記憶された認証鍵402にたどり着くことができない。
このように、ICカード200への機器プログラムデータ401の書込み及びICカード200からの機器プログラムデータ401の読出しを構成することで、ICカード200と機器100の双方の認証鍵が一致しない限り、認証処理が正常に終了せず、機器プログラムデータ401を読み出すことはできなくなる。
従って、例えば、ICカード200を万が一、紛失し、第三者がこのICカード200を収得し、同じ規格の機器に装着しても、ICカード200に書き込まれた認証鍵402は、データ書込み装置300によるICカード200への書込み時に一回毎に別の認証鍵が書き込まれるため、認証処理が正常に終了せず、機器プログラムデータ401を読み出すことはできない。
【0027】
以上のように、実施の形態1のプログラム秘匿装置によれば、プログラムを実行する機器と、機器で実行するプログラムを格納するICカードとを備え、機器は、予め保有する認証鍵を用いてICカードへの認証要求を行い、この要求に対するICカードからの認証結果を取得する機器側認証手段と、機器側認証手段で認証が正常に行われたことが確認された場合に、ICカードよりプログラムを読み出すプログラム読出し手段とを備え、ICカードは、機器より認証要求があった場合、予め保有する認証鍵を用いて認証を行い、正常か否かの認証結果を出力するカード側認証手段と、機器よりプログラムの読出し要求があった場合、格納するプログラムを機器に転送するプログラム転送手段とを備えたので、機器が実行するプログラムの秘匿性が高く、かつ、認証鍵等の取り扱いが簡便であるという効果がある。
【0028】
また、実施の形態1のプログラム秘匿装置によれば、認証鍵を生成し、認証鍵を機器とICカードに対して書き込むデータ書込み装置を備えたので、認証鍵の管理を容易かつ確実に行うことができる。
【0029】
また、実施の形態1のプログラム秘匿装置によれば、機器が保有する認証鍵は、機器を分解することで記憶内容が消去される記憶装置に記憶するようにしたので、認証鍵の安全性をより高めることができる。
【0030】
また、実施の形態1のプログラム秘匿装置によれば、データ書込み装置は、ICカードを接続するカードインタフェースと、機器を接続する機器インタフェースとを備え、これらカードインタフェースおよび機器インタフェースを介して、ICカードおよび機器に対して認証鍵を同時に書き込むようにしたので、認証鍵の管理をより簡単かつ確実に行うことができる。
【0031】
尚、上記実施の形態1では、データ書込み装置300の機器プログラムデータ501をそのままICカード200のフラッシュメモリ211に書き込むようにしたが、データ書込み装置300で書込み処理を実施する際に、認証鍵で暗号化してフラッシュメモリ211に記憶させ、機器100でICカード200から読出す際に、機器100側で記憶している認証鍵で暗号を復号した後に、機器100の内蔵記憶装置112に書き込む構成としてもよい。このように構成すれば、機器プログラムデータの安全性をより高めることができる。
【図面の簡単な説明】
【0032】
【図1】この発明の実施の形態1によるプログラム秘匿装置を示す機能ブロック図である。
【図2】この発明の実施の形態1によるプログラム秘匿装置の機器とICカードのハードウェア構成図である。
【図3】この発明の実施の形態1によるプログラム秘匿装置のICカードのハードウェア構成図である。
【図4】この発明の実施の形態1によるプログラム秘匿装置の機器とICカードとデータ書込み装置との接続を示す構成図である。
【図5】この発明の実施の形態1によるプログラム秘匿装置の書込み動作を示す説明図である。
【図6】この発明の実施の形態1によるプログラム秘匿装置の読出し動作を示す説明図である。
【符号の説明】
【0033】
100 機器、101 機器側認証手段、102 プログラム読出し手段、103 機器側記憶手段、200 ICカード、201 カード側認証手段、202 プログラム転送手段、203 カード側記憶手段、401,501 機器プログラムデータ、402 認証鍵、403 認証処理プログラム、404 読出し/書込みプログラム、502 ICカード書込み用プログラム、503 認証鍵生成プログラム、504 認証鍵伝送プログラム。

【特許請求の範囲】
【請求項1】
プログラムを実行する機器と、
前記機器で実行するプログラムを格納するICカードとを備え、
前記機器は、
予め保有する認証鍵を用いて前記ICカードへの認証要求を行い、この要求に対する前記ICカードからの認証結果を取得する機器側認証手段と、
前記機器側認証手段で認証が正常に行われたことが確認された場合に、前記ICカードより前記プログラムを読み出すプログラム読出し手段とを備え、
前記ICカードは、
前記機器より認証要求があった場合、予め保有する認証鍵を用いて認証を行い、正常か否かの認証結果を出力するカード側認証手段と、
前記機器よりプログラムの読出し要求があった場合、格納するプログラムを当該機器に転送するプログラム転送手段とを備えたプログラム秘匿装置。
【請求項2】
認証鍵を生成し、当該認証鍵を機器とICカードに対して書き込むデータ書込み装置を備えたことを特徴とする請求項1に記載のプログラム秘匿装置。
【請求項3】
機器が保有する認証鍵は、当該機器を分解することで記憶内容が消去される記憶装置に記憶することを特徴とする請求項1または請求項2に記載のプログラム秘匿装置。
【請求項4】
データ書込み装置は、ICカードを接続するカードインタフェースと、機器を接続する機器インタフェースとを備え、これらカードインタフェースおよび機器インタフェースを介して、前記ICカードおよび前記機器に対して認証鍵を同時に書き込むことを特徴とする請求項2または請求項3に記載のプログラム秘匿装置。
【請求項5】
データ書込み装置は、プログラムを所定の認証鍵で暗号化してICカードに書込み、
機器は、前記ICカードより前記暗号化したプログラムを読出した場合、保有する認証鍵で復号することを特徴とする請求項1から請求項4のうちのいずれか1項記載のプログラム秘匿装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2008−217236(P2008−217236A)
【公開日】平成20年9月18日(2008.9.18)
【国際特許分類】
【出願番号】特願2007−51649(P2007−51649)
【出願日】平成19年3月1日(2007.3.1)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】