JP6023689B2 - 電子デバイス、認証方法、プログラム - Google Patents
電子デバイス、認証方法、プログラム Download PDFInfo
- Publication number
- JP6023689B2 JP6023689B2 JP2013234296A JP2013234296A JP6023689B2 JP 6023689 B2 JP6023689 B2 JP 6023689B2 JP 2013234296 A JP2013234296 A JP 2013234296A JP 2013234296 A JP2013234296 A JP 2013234296A JP 6023689 B2 JP6023689 B2 JP 6023689B2
- Authority
- JP
- Japan
- Prior art keywords
- secret key
- authentication
- external terminal
- authentication code
- electronic device
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 102220182833 rs540520068 Human genes 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 102220154437 rs886061310 Human genes 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Description
本発明は、電子デバイス、電子デバイスと外部端末間の認証方法、およびそのプログラムに関する。
従来、ICカード乗車券、クレジットカードの認証、自動車の盗難防止システムであるイモビライザーシステムなどにおいて電子デバイスが外部端末を認証する内部認証システムが利用されている。内部認証において、外部端末は端末内で生成したランダムな値(入力)とあらかじめ電子デバイスと共有した秘密鍵とを用いて暗号演算を行う。外部端末は当該暗号演算結果を電子デバイスに送信する。電子デバイスは外部端末からの入力に対して暗号演算を行った結果を比較する。この比較によって電子デバイスが外部端末を認証することが行われている。
電子デバイスが使用する秘密鍵は、数値の列として電子デバイスの記憶領域(メモリ)のいずれかのアドレスに物理的に格納されている。電子デバイスに温度変化や衝撃等の物理的作用が加わることによって秘密鍵が壊れる、つまり秘密鍵としてメモリに格納された数値列の一部が変更される場合がある。この場合、電子デバイスは秘密鍵を用いて外部端末を認証することができなくなってしまう。
このため、秘密鍵が壊れやすい環境での利用が想定される電子デバイスにおいては、複数個の同じ値の秘密鍵を、それぞれ内部メモリ(例えば、EEPROM)の異なる物理アドレスに格納し、仮に1つの秘密鍵が壊れたとしても他の秘密鍵で正しく認証できるような実装方法が採用されている。
例えば、非特許文献1の電子キー端末は、メモリ内に3個の同一の値の秘密鍵を格納している。この電子キー端末は、まず一つ目の秘密鍵を用いて外部端末との認証を行う。もし一つ目の秘密鍵が壊れていた場合は認証に失敗するので、電子キー端末は、二つ目の秘密鍵を用いて認証を行う。二つ目の秘密鍵も壊れており、再度認証に失敗した場合は、電子キー端末は、三つ目の秘密鍵を用いて認証を行う。このように従来の電子キー端末は、認証が成功するまで、複数個の秘密鍵を用いて繰り返し認証を実行することとしていた。電子キー端末内に複数個格納された秘密鍵を順番に利用することにより、これらの秘密鍵が全て壊れない限り、電子キー端末が外部端末を認証できるようになっていた。
Atmel Corporation, " Open Source Immobilizer Protocol Stack "、[online]、[平成 25年 10月 29日検索]、インターネット〈URL:http://www.atmel.com/tools/OPENSOURCEIMMOBILIZERPROTOCOLSTACK.aspx〉
電子デバイスが複数の秘密鍵を保持することによって、セキュリティ面において問題が生じる場合がある。例えば、攻撃者と呼ばれる不正な装置(端末)は、既知の手法を用いて電子デバイスに格納された秘密鍵の数値列の一部を既知の値(例えば0)に改竄することができる場合がある。秘密鍵の数値列の一部を改竄して固定することによって、改竄されていない数値の組み合わせを総当たり可能な組み合わせ数に絞り込むことができる。攻撃者は、改竄されていない数値に対して総当たり攻撃を実行して、改竄されていない数値(秘密鍵の一部)を取得することができる。秘密鍵がメモリ内に1つだけ格納されている場合は、上述の総当たり攻撃によっても、攻撃者は秘密鍵の数値列の全てを取得することができないため問題はなかった。しかし、電子デバイス内に秘密鍵が複数個格納されている場合は、攻撃者は複数の秘密鍵のそれぞれに対して改竄の位置をずらしながら総当たり攻撃を逐次実行していくことにより、秘密鍵の全ての値を取得することができる場合がある。
また、上述のように、電子デバイスが複数の秘密鍵を保持することによっても、メモリ内に格納されている全ての秘密鍵が壊れた場合は正しい認証ができなくなることも問題であった。
そこで本発明では、内部認証システムの安全性と耐久性を改善する電子デバイスを提供することを目的とする。
本発明の電子デバイスは、外部端末と認証を行う装置であって、秘密鍵記憶部と、データ受信部と、暗号演算部と、認証部と、上書き部とを含む。
秘密鍵記憶部は、予め外部端末と共有された複数の秘密鍵を記憶する。データ受信部は、外部端末から認証開始コマンド、乱数、認証用符号を受信する。暗号演算部は、全ての秘密鍵を用いて、乱数に暗号演算を行って暗号演算結果を取得する。認証部は、認証用符号と、暗号演算結果とを照合する。上書き部は、暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする。
本発明の電子デバイスによれば、内部認証システムの安全性と耐久性を改善することができる。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
図1、図2、図3を参照して、攻撃者に対する安全性およびその他の外的要因に対する耐久性を改善した実施例1の内部認証システムについて説明する。図1は、本実施例の内部認証システムであるイモビライザーシステムの概略を示す図である。図2は、本実施例の電子デバイス、外部端末の構成を示すブロック図である。図3は、実施例1の電子デバイス、外部端末の動作を示すフローチャートである。図1に示すように、イモビライザーシステムは電子デバイス(自動車の電子キー)1、外部端末(自動車)9を含む構成である。本内部認証システムは、例えばAdvanced Encryption Standard (AES)暗号演算により実装可能である。認証に際し、外部端末9は、電子デバイス1に対して、認証開始コマンド、乱数(チャレンジ)、認証用符号(暗号演算結果)を送信する。
図2に示すように電子デバイス1は、第1暗号演算部84、第1秘密鍵記憶部841、データ受信部85、認証部86、上書き部17を含む構成である。外部端末9は、乱数生成部91、第2暗号演算部94、第2秘密鍵記憶部941、データ送信部95を含む構成である。第1秘密鍵記憶部841には、予め外部端末9と共有された複数の秘密鍵が記憶されている。より詳細には、第1秘密鍵記憶部841には、電子デバイス用の秘密鍵であるオリジナルの第1秘密鍵およびその複製が格納されている。複製はいくつあってもよい。例えばオリジナルの第1秘密鍵を1つ、その複製の個数を2つとしてもよい。複製もオリジナルと同じように秘密鍵として機能するため、これらを呼び分ける必要がないときは、オリジナルも複製も単に第1秘密鍵と呼ぶ。従って、オリジナルの第1秘密鍵とその複製を総称するとき、単に複数の第1秘密鍵とも呼ぶ。第2秘密鍵記憶部941には、外部端末用の秘密鍵である第2秘密鍵が格納されている。第2秘密鍵の個数は任意である。電子デバイスと外部端末の間では予め秘密鍵が共有されているものとする。つまり第1秘密鍵と第2秘密鍵とは等しい。
まず、外部端末9の乱数生成部91はランダムな値を生成する(S91)。このランダムな値を以下、乱数、もしくはチャレンジと呼ぶ。外部端末9の第2暗号演算部94は、あらかじめ電子デバイス1と共有した第2秘密鍵を用いて、生成した乱数(チャレンジ)を暗号演算する(S94)。暗号演算は、例えばAESの暗号アルゴリズムに従って実行される。なお、ステップS94で用いられる暗号アルゴリズムと、後述するステップS84で用いられる暗号アルゴリズムは同一である必要がある。当該演算の結果を認証用符号と呼ぶ。外部端末9のデータ送信部95は電子デバイス1に、認証開始コマンド、生成した乱数、認証用符号を送信する(S95)。
一方、電子デバイス1のデータ受信部85は、外部端末9から認証開始コマンド、乱数、認証用符号を受信する(S85)。電子デバイス1の第1暗号演算部84は、全ての第1秘密鍵を用いて、外部端末9から受信した乱数に暗号演算を行って暗号演算結果を取得する(S84)。ステップS84で用いられる暗号アルゴリズムは、ステップS94で用いられた暗号アルゴリズムと同じものとする。暗号演算は、例えばAESの暗号アルゴリズムに従って実行される。電子デバイス1の認証部86は、外部端末9と電子デバイス1間の認証を実行する機能を備える。電子デバイス1の認証部86は、外部端末9から受信した認証用符号と、自端末における暗号演算結果とを照合して認証を実行する(S86)。認証部86は、認証用符号と全ての演算結果が等しい場合には(S861Y)、次の処理に進む。次の処理とは、認証に関するその他の諸々の処理のことである。これらの処理は本発明の要点ではないため、説明を略する。なお、本明細書において割愛された認証動作がすべて正常に終了した場合、電子デバイス1はレスポンスを出力する。一方、認証用符号と全ての演算結果のうち等しくないものがある場合であって(S861N)、演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合には(S862Y)、上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする(S17)。一方、ステップS861Nの場合において、演算結果のうち認証用符号と一致するものが一つもない場合(S862N)、電子デバイス1の処理はストップする(エラー)。
このように、本実施例の電子デバイス1によればオリジナルの第1秘密鍵やその複製のうち、いずれかの第1秘密鍵が故障していても認証を実行することができ、電子デバイスの耐久性が向上する。
<外部端末が攻撃者であった場合>
以下、図4、図5を参照して、外部端末が攻撃者であった場合について説明する。図4は、本実施例の電子デバイス1、外部端末(攻撃者)5の構成を示すブロック図である。図5は、本実施例の電子デバイス1、外部端末(攻撃者)5の動作を示すフローチャートである。外部端末5は、正規の外部端末の挙動を模倣し、電子デバイス1のデータ内容の一部を改竄可能な端末(攻撃者)である。外部端末5は、秘密鍵改竄部50、乱数生成部91、第2暗号演算部94、仮定秘密鍵記憶部941、データ送信部95、エラー判定部56、仮定秘密鍵変更部57を含む構成であって、秘密鍵改竄部50、エラー判定部56、仮定秘密鍵変更部57以外の構成は、前述した外部端末9と同じである。
以下、図4、図5を参照して、外部端末が攻撃者であった場合について説明する。図4は、本実施例の電子デバイス1、外部端末(攻撃者)5の構成を示すブロック図である。図5は、本実施例の電子デバイス1、外部端末(攻撃者)5の動作を示すフローチャートである。外部端末5は、正規の外部端末の挙動を模倣し、電子デバイス1のデータ内容の一部を改竄可能な端末(攻撃者)である。外部端末5は、秘密鍵改竄部50、乱数生成部91、第2暗号演算部94、仮定秘密鍵記憶部941、データ送信部95、エラー判定部56、仮定秘密鍵変更部57を含む構成であって、秘密鍵改竄部50、エラー判定部56、仮定秘密鍵変更部57以外の構成は、前述した外部端末9と同じである。
<外部端末5>
以下、図6、図7、図8を参照して外部端末5の処理の詳細を説明する。図6は、第1秘密鍵を格納するメモリ内のアドレスを例示する図である。図7は、オリジナルの第1秘密鍵の一部が改竄された場合について例示する図である。図8は、オリジナルの第1秘密鍵の改竄箇所と異なる位置で第1の複製が改竄された場合について例示する図である。
以下、図6、図7、図8を参照して外部端末5の処理の詳細を説明する。図6は、第1秘密鍵を格納するメモリ内のアドレスを例示する図である。図7は、オリジナルの第1秘密鍵の一部が改竄された場合について例示する図である。図8は、オリジナルの第1秘密鍵の改竄箇所と異なる位置で第1の複製が改竄された場合について例示する図である。
図6の例では、第1秘密鍵が16個の8ビットの16進数の数値列で表現されている。オリジナルの第1秘密鍵は物理アドレス0780-078Fに、その第1の複製(COPY1)は物理アドレス0790-079Fに、その第2の複製(COPY2)は物理アドレス07A0-07AFに、それぞれ記憶されている。物理アドレス0780-078F, 0790-079F, 07A0-07AFは前述した第1秘密鍵記憶部841内のアドレスである。図6の例では、第1秘密鍵となる16個の数値(DATA1-16)はそれぞれ0x2b, 0x7e, 0x15, 0x16, 0x6c, 0xd2, 0x21, 0x11, 0x39, 0x9d, 0x45, 0x1f, 0xe0, 0x8f, 0xc3, 0xf5である。なお、外部端末5の仮定秘密鍵記憶部941には外部端末(攻撃者)が仮定した秘密鍵の初期値が記憶されている。外部端末(攻撃者)が仮定した秘密鍵を以下仮定秘密鍵と呼ぶ。仮定秘密鍵は前述した第2秘密鍵と同様に用いられる。仮定秘密鍵の初期値については、第1秘密鍵の改竄箇所と対応する箇所については、改竄後の第1秘密鍵と等しくなるように設定されているものとする。ここでは16個の数値(DATA1-16)が全て0x00であるものとする。
外部端末5の秘密鍵改竄部50は、秘密鍵の一部を取得することを目的として、電子デバイス1の第1秘密鍵記憶部841に格納されたオリジナルの第1秘密鍵の一部である、例えばDATA5-16を全てゼロ(0x00)に改竄する(S50、図7参照、黒塗り箇所は攻撃者が改竄した箇所を示す)。改竄値はゼロ(0x00)でなくてもよく、任意の値でよい。前述した仮定秘密鍵のDATA5-16の初期値は、改竄後の第1秘密鍵のDATA5-16と等しくなるように設定されているものとする。次に、外部端末5は前述同様にステップS91、S94、S95を実行することにより認証を試みる。エラー判定部56は、認証開始後、所定時間に渡り無応答が続いた場合には、エラーと判定する。一方、電子デバイス1から前述のレスポンスを取得した場合(S56N)、外部端末5は、その時の仮定秘密鍵のDATA1-4を真正な秘密鍵の一部として記憶し(S941)、処理はスタートに戻る。エラー判定部56がエラーと判定した場合には(S56Y)、仮定秘密鍵変更部57は、自端末の仮定秘密鍵記憶部941に記憶された仮定秘密鍵の一部であるDATA1-4を、次の値に変更(インクリメント)し(S57)、処理はステップS94に戻る。この例では、仮定秘密鍵のDATA1-4は、DATA1-4=(0x00, 0x00, 0x00, 0x00)を初期値としているため、エラー判定部56はエラーと判定し(S56Y)、秘密鍵変更部57は、仮定秘密鍵の一部DATA1-4を、次の値である(0x00, 0x00, 0x00, 0x01)に変更し(S57)、処理はステップS94に戻る。外部端末5は仮定秘密鍵のDATA1-4を(0x00,0x00,0x00,0x00)から(0xFF,0xFF,0xFF,0xFF)まで変えながら、総当たり攻撃(S94〜S57)を繰り返し実行する。第1秘密鍵におけるDATA1-4は、(0x2b, 0x7e, 0x15, 0x16)であるため、仮定秘密鍵のDATA1-4が、(0x2b, 0x7e, 0x15, 0x16)となるまで、前述の総当たり攻撃(S94〜S57)は繰り返される。第1秘密鍵のDATA1-4と、仮定秘密鍵の対応する箇所であるDATA1-4とが等しくなるとき、電子デバイス1は、前述の諸々の認証処理を経てレスポンスを出力し(S56N)、外部端末5は、その時の仮定秘密鍵のDATA1-4を真正な秘密鍵の一部として記憶し(S941)、処理はスタートに戻る(スタートへ)。このようにして、外部端末(攻撃者)5は、最大でも232通りという現実的に計算可能な試行回数で、第1秘密鍵の最初の4つの数値を取得することができる。
ステップS56Nを得て、処理がスタートに戻った場合、外部端末5の秘密鍵改竄部50は、電子デバイス1の第1秘密鍵記憶部841に格納された第1の複製に対して、次に取得しようとする数値列以外の部分に改竄(変更)を行う。前述の例では、DATA1-4が取得済みであるため、秘密鍵改竄部50は、例えば図8に示すようにDATA9-16を全てゼロ(0x00)に改竄する(S50)。図8において黒塗り箇所は攻撃者が改竄した箇所を示す。以下、前述同様に外部端末5は、総当たり攻撃(S94〜S57の繰り返し実行)を実行することによって、第1の複製の一部であるDATA5-8を取得しようとする。しかしながら外部端末5は、後述する電子デバイス1の処理によって、その攻撃をガードされ、正しいDATA5-8を取得することができない。
<電子デバイス1>
引き続き図4、図5を、新たに図9を参照して電子デバイス1の動作について説明する。図9は、攻撃者から総当たり攻撃を受けた後、本実施例の電子デバイス1により上書きされた第1、第2の複製を例示する図である。図5に示すように、電子デバイス1は、前述の電子デバイス1と同様にステップS85〜S861を実行する。認証用符号と全ての演算結果のうち等しくないものがある場合であって(S861N)、演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合には(S862Y)、上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする(S17)。従って、前述の総当たり攻撃の例の場合、外部端末(攻撃者)5が第1秘密鍵の一部であるDATA1-4の取得に成功したとき、認証用符号と暗号演算結果の一部が一致するため(S862Y)、電子デバイス1の上書き部17は、図9に示すように他の第1秘密鍵を、認証用符号と一致する演算結果の演算に使用された改竄後の第1秘密鍵の値である(0x2b, 0x7e, 0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)に上書き(更新)する。図9の黒塗り箇所は攻撃者の改竄および電子デバイスの上書きにより生じた変更箇所を示す。これにより、オリジナル、複製ともにDATA5-16が改竄後の値(0x00)に上書き(更新)される。このように、電子デバイス1の上書き部17は、第1秘密鍵に対して総当たり攻撃が仕掛けられた場合には、最初に総当たり攻撃が行われた箇所のみを残して、残りを全て改竄後の値に上書きしてしまう。従って、外部端末(攻撃者)5はオリジナルの第1秘密鍵及びその複製におけるデータ改竄位置をシフトさせながら総当たり攻撃を行ったとしても、残りの正しい数値を取得することができない。また、これに伴って電子デバイス1に記憶された第1秘密鍵は全て故障してしまうため、電子デバイス1も使用不可能となる。
引き続き図4、図5を、新たに図9を参照して電子デバイス1の動作について説明する。図9は、攻撃者から総当たり攻撃を受けた後、本実施例の電子デバイス1により上書きされた第1、第2の複製を例示する図である。図5に示すように、電子デバイス1は、前述の電子デバイス1と同様にステップS85〜S861を実行する。認証用符号と全ての演算結果のうち等しくないものがある場合であって(S861N)、演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合には(S862Y)、上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする(S17)。従って、前述の総当たり攻撃の例の場合、外部端末(攻撃者)5が第1秘密鍵の一部であるDATA1-4の取得に成功したとき、認証用符号と暗号演算結果の一部が一致するため(S862Y)、電子デバイス1の上書き部17は、図9に示すように他の第1秘密鍵を、認証用符号と一致する演算結果の演算に使用された改竄後の第1秘密鍵の値である(0x2b, 0x7e, 0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)に上書き(更新)する。図9の黒塗り箇所は攻撃者の改竄および電子デバイスの上書きにより生じた変更箇所を示す。これにより、オリジナル、複製ともにDATA5-16が改竄後の値(0x00)に上書き(更新)される。このように、電子デバイス1の上書き部17は、第1秘密鍵に対して総当たり攻撃が仕掛けられた場合には、最初に総当たり攻撃が行われた箇所のみを残して、残りを全て改竄後の値に上書きしてしまう。従って、外部端末(攻撃者)5はオリジナルの第1秘密鍵及びその複製におけるデータ改竄位置をシフトさせながら総当たり攻撃を行ったとしても、残りの正しい数値を取得することができない。また、これに伴って電子デバイス1に記憶された第1秘密鍵は全て故障してしまうため、電子デバイス1も使用不可能となる。
<外部端末が攻撃者でなく第1秘密鍵に改変が生じた場合>
以下、図10を参照して外部端末が攻撃者ではない正規な端末であって、オリジナルの第1秘密鍵またはその複製に攻撃以外の理由で改変が生じた場合について説明する。図10は、攻撃以外の要因で第1秘密鍵の一部が変更された場合について例示する図である。ここでは、本実施例の電子デバイス1と前述した攻撃者でない外部端末9が認証を行う場合について説明する。ここでは電子デバイス1の第1秘密鍵の数値列の一部に攻撃以外の要因で改変が生じたものとする。攻撃以外の要因として、例えば温度変化や衝撃等の物理的作用による改変が挙げられる。図10の例では、第1の複製のDATA5に改変が生じている(図中黒塗り部分)。このような場合にも電子デバイス1は前述と同じ動作を実行して、改変箇所を修復することができる。具体的には、外部端末9は前述したステップS91、S94、S95を実行して、電子デバイス1に認証開始コマンド、乱数、認証用符号を送信する。電子デバイス1は、前述したステップS85〜S862を実行する。図10の例の場合、オリジナルの第1秘密鍵、第2の複製には改変が生じていないため、オリジナルの第1秘密鍵、第2の複製による暗号演算結果と認証用符号とは一致し、第1の複製による暗号演算結果と認証用符号とは一致しない(S862Y)。この場合、前述同様に電子デバイス1の上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)する(S17)。この上書き動作によって、図10の例における第1の複製のDATA5に生じていた改変箇所の修復がなされる。図10の例に限らず、オリジナルの第1秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復は可能である。この場合、前述同様に電子デバイス1は、ステップS85〜S862を実行する。オリジナルの第1秘密鍵自身に改変が生じている場合でも、第1の複製や、第2の複製には改変が生じていない場合、暗号演算結果の一部と認証用符号とは一致し(S862Y)、電子デバイス1の上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)する(S17)。このように、オリジナルの第1秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復がなされる。本実施例の電子デバイス1は、オリジナルの第1秘密鍵およびその複製の全てに「同時に」改変が生じない限り、適切に改変箇所を修復することができる。
以下、図10を参照して外部端末が攻撃者ではない正規な端末であって、オリジナルの第1秘密鍵またはその複製に攻撃以外の理由で改変が生じた場合について説明する。図10は、攻撃以外の要因で第1秘密鍵の一部が変更された場合について例示する図である。ここでは、本実施例の電子デバイス1と前述した攻撃者でない外部端末9が認証を行う場合について説明する。ここでは電子デバイス1の第1秘密鍵の数値列の一部に攻撃以外の要因で改変が生じたものとする。攻撃以外の要因として、例えば温度変化や衝撃等の物理的作用による改変が挙げられる。図10の例では、第1の複製のDATA5に改変が生じている(図中黒塗り部分)。このような場合にも電子デバイス1は前述と同じ動作を実行して、改変箇所を修復することができる。具体的には、外部端末9は前述したステップS91、S94、S95を実行して、電子デバイス1に認証開始コマンド、乱数、認証用符号を送信する。電子デバイス1は、前述したステップS85〜S862を実行する。図10の例の場合、オリジナルの第1秘密鍵、第2の複製には改変が生じていないため、オリジナルの第1秘密鍵、第2の複製による暗号演算結果と認証用符号とは一致し、第1の複製による暗号演算結果と認証用符号とは一致しない(S862Y)。この場合、前述同様に電子デバイス1の上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)する(S17)。この上書き動作によって、図10の例における第1の複製のDATA5に生じていた改変箇所の修復がなされる。図10の例に限らず、オリジナルの第1秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復は可能である。この場合、前述同様に電子デバイス1は、ステップS85〜S862を実行する。オリジナルの第1秘密鍵自身に改変が生じている場合でも、第1の複製や、第2の複製には改変が生じていない場合、暗号演算結果の一部と認証用符号とは一致し(S862Y)、電子デバイス1の上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)する(S17)。このように、オリジナルの第1秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復がなされる。本実施例の電子デバイス1は、オリジナルの第1秘密鍵およびその複製の全てに「同時に」改変が生じない限り、適切に改変箇所を修復することができる。
このように、本実施例の電子デバイス1によれば、上書き部17が、暗号演算結果の一部と認証用符号とが一致する場合(S862Y)に、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)するため、総当たり攻撃を仕掛けた攻撃者に第1秘密鍵を知られることを防ぎ、攻撃以外の要因でいずれかの第1秘密鍵に改変が生じた場合であってもその改変を自動修復することができるため、内部認証システムの安全性と耐久性を同時に改善することができる。本実施例の電子デバイス1は、上述した一つのアルゴリズムによって、二つの課題(総当たり攻撃からの防御、秘密鍵の修復)を同時に解決している。また、本実施例の電子デバイス1のアルゴリズムは、既存の認証プロトコルで用いる情報を基にしているため、実装が容易である。本発明技術は、電子デバイスが外部環境の影響を受け、秘密鍵が壊れやすい状況である自動車のイモビライザーシステムへの応用が特に有効である。
以下、図11、図12を参照して実施例2の電子デバイスについて説明する。図11は、本実施例の電子デバイス2、外部端末9の構成を示すブロック図である。図12は、本実施例の電子デバイス2、外部端末9の動作を示すフローチャートである。図11に示すように、本実施例の電子デバイス2は、秘密鍵比較部21、第1暗号演算部24、第1秘密鍵記憶部841、データ受信部85、認証部86、上書き部17を含む構成であって、秘密鍵比較部21が追加されている点、第1暗号演算部84が第1暗号演算部24に変更されている点以外は、前述した電子デバイス1と同じである。また、外部端末9は、実施例1で述べた外部端末9と同じである。
電子デバイス2の秘密鍵比較部21は、第1秘密鍵記憶部841に記憶された複数の第1秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい第1秘密鍵同士の群を生成し、それぞれの群から第1秘密鍵を一つずつ選択する(S21)。第1暗号演算部24は、ステップS21において選択された第1秘密鍵の全てを用いて、外部端末5から受信した乱数に暗号演算を行って、第1秘密鍵ごとに暗号演算結果を取得する(S24)。認証部86は、外部端末5から受信した認証用符号と全ての暗号演算結果とを照合して認証を実行する(S86)。上書き部17は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き(更新)する(S17)。
具体的には、秘密鍵比較部21は、認証開始コマンド、認証用符号の受信をトリガとして、格納された複数の第1秘密鍵同士が全て一致しているかを確認する。例えば、図7の例において物理アドレス0780-078Fに格納されている16個の数値列をK(0)、物理アドレス0790-079Fに格納されている16個の数値列をK(1)、物理アドレス07A0-07AFに格納されている16個の数値列をK(2)とする。図7の例では、K(0)とK(1)、K(0)とK(2)は一致せず、K(1)とK(2)が一致するため、秘密鍵比較部21は、K(0)を一つの群とし、K(1)とK(2)を一つの群として生成し、前半の群からはK(0)を選択し、後半の群からはK(1)を選択する。第1暗号演算部24は、選択されたK(0),K(1)を全て用いてAES暗号演算を行う。この手順により、暗号演算の演算量を削減することができる。この例では、第1暗号演算部24は、3番目の第1秘密鍵(第2の複製、K(2))を用いて行うAES暗号演算を省略することができる。
本実施例の電子デバイス2は、暗号演算の前に第1秘密鍵そのものの値を比較し、一致するものがあれば、演算結果が同じになるものとし、暗号演算を省略したため、実施例1の効果に加え、暗号演算を効率化することができる。本実施例の電子デバイス2によれば、全ての第1秘密鍵に変化がない時は、一致を確認する処理のオーバーヘッドのみとすることができるため、通常の認証プロトコルからの全体のオーバーヘッドを少なくすることができる。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
Claims (5)
- 外部端末と認証を行う電子デバイスであって、
予め外部端末と共有された複数の秘密鍵を記憶する秘密鍵記憶部と、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信部と、
前記全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算部と、
前記認証用符号と、前記暗号演算結果とを照合する認証部と、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書き部と、
を含む電子デバイス。 - 外部端末と認証を行う電子デバイスであって、
予め外部端末と共有された複数の秘密鍵を記憶する秘密鍵記憶部と、
前記複数の秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい秘密鍵同士の群を生成し、それぞれの群から秘密鍵を一つずつ選択する秘密鍵比較部と、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信部と、
前記選択された全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算部と、
前記認証用符号と、前記暗号演算結果とを照合する認証部と、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書き部と、
を含む電子デバイス。 - 予め外部端末と共有された複数の秘密鍵を用いて、外部端末と認証を行う認証方法であって、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信ステップと、
前記全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算ステップと、
前記認証用符号と、前記暗号演算結果とを照合する認証ステップと、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書きステップと、
を含む認証方法。 - 予め外部端末と共有された複数の秘密鍵を用いて、外部端末と認証を行う認証方法であって、
前記複数の秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい秘密鍵同士の群を生成し、それぞれの群から秘密鍵を一つずつ選択する秘密鍵比較ステップと、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信ステップと、
前記選択された全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算ステップと、
前記認証用符号と、前記暗号演算結果とを照合する認証ステップと、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書きステップと、
を含む認証方法。 - コンピュータを、請求項1又は2に記載の電子デバイスとして機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234296A JP6023689B2 (ja) | 2013-11-12 | 2013-11-12 | 電子デバイス、認証方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234296A JP6023689B2 (ja) | 2013-11-12 | 2013-11-12 | 電子デバイス、認証方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015095770A JP2015095770A (ja) | 2015-05-18 |
JP6023689B2 true JP6023689B2 (ja) | 2016-11-09 |
Family
ID=53197900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013234296A Expired - Fee Related JP6023689B2 (ja) | 2013-11-12 | 2013-11-12 | 電子デバイス、認証方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6023689B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4216914B2 (ja) * | 1997-10-17 | 2009-01-28 | 株式会社リコー | ネットワークシステム |
JP2003143130A (ja) * | 2001-11-01 | 2003-05-16 | Assist Plan:Kk | 常時認証システム、常時認証方法、icカードの常時認証システム、icカードの常時認証方法 |
JP4576894B2 (ja) * | 2004-06-14 | 2010-11-10 | ソニー株式会社 | 情報管理装置及び情報管理方法 |
JP4666240B2 (ja) * | 2008-07-14 | 2011-04-06 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および情報処理システム |
-
2013
- 2013-11-12 JP JP2013234296A patent/JP6023689B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015095770A (ja) | 2015-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6719079B2 (ja) | 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム | |
US10474823B2 (en) | Controlled secure code authentication | |
US10841102B2 (en) | Method and system for creating and checking the validity of device certificates | |
US8082450B2 (en) | Method for creating a secure counter on an on-board computer system comprising a chip card | |
US9756033B2 (en) | Information recording apparatus with shadow boot program for authentication with a server | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
US20100250936A1 (en) | Integrated circuit, encryption communication apparatus, encryption communication system, information processing method and encryption communication method | |
US20120066515A1 (en) | Electronic device, key generation program, recording medium, and key generation method | |
WO2011152065A1 (ja) | コントローラ、制御方法、コンピュータプログラム、プログラム記録媒体、記録装置及び記録装置の製造方法 | |
JP2013519929A (ja) | 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法 | |
JP2005341552A (ja) | 証明書失効リストの分配管理方法 | |
CN109328444B (zh) | 保护设备和加密狗及其使用方法 | |
JP5861597B2 (ja) | 認証システムおよび認証方法 | |
US20100250949A1 (en) | Generation, requesting, and/or reception, at least in part, of token | |
WO2017000648A1 (zh) | 一种被加固软件的认证方法及装置 | |
US20090287917A1 (en) | Secure software distribution | |
US20150127930A1 (en) | Authenticated device initialization | |
JP6387908B2 (ja) | 認証システム | |
CN105577644A (zh) | 一种加密认证方法和系统 | |
JP5183517B2 (ja) | 情報処理装置及びプログラム | |
CN110599172A (zh) | 基于区块链的资产信息处理方法和装置、设备和存储介质 | |
WO2019142307A1 (ja) | 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム | |
US11838282B2 (en) | Information recording apparatus with server-based user authentication for accessing a locked operating system storage | |
CN115514492A (zh) | Bios固件验证方法、装置、服务器、存储介质和程序产品 | |
JP2008033512A (ja) | セキュリティチップ及びプラットフォーム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6023689 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |