JP2021125824A - 認証システムおよび認証方法 - Google Patents
認証システムおよび認証方法 Download PDFInfo
- Publication number
- JP2021125824A JP2021125824A JP2020019092A JP2020019092A JP2021125824A JP 2021125824 A JP2021125824 A JP 2021125824A JP 2020019092 A JP2020019092 A JP 2020019092A JP 2020019092 A JP2020019092 A JP 2020019092A JP 2021125824 A JP2021125824 A JP 2021125824A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- information processing
- public key
- computer
- challenge code
- 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
Landscapes
- Telephonic Communication Services (AREA)
Abstract
【課題】デジタル署名を使用してユーザを認証する。
【解決手段】情報処理装置は、制御装置、通信装置、および記憶装置を含む。記憶装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶する。通信装置は、処理要求を受信する。制御装置は、チャレンジコードを生成する。通信装置は、チャレンジコードを送信し、レスポンスを受信し、レスポンスは、チャレンジコードから生成されたハッシュ値および署名を含み、署名は、秘密鍵から生成される。制御装置は、生成されたチャレンジコードからハッシュ値を生成し、生成されたハッシュ値および署名から公開鍵を復元し、公開鍵と関連付けられたユーザ情報を特定する、ことによって処理要求を許可するか否かを判定する。
【選択図】図3
【解決手段】情報処理装置は、制御装置、通信装置、および記憶装置を含む。記憶装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶する。通信装置は、処理要求を受信する。制御装置は、チャレンジコードを生成する。通信装置は、チャレンジコードを送信し、レスポンスを受信し、レスポンスは、チャレンジコードから生成されたハッシュ値および署名を含み、署名は、秘密鍵から生成される。制御装置は、生成されたチャレンジコードからハッシュ値を生成し、生成されたハッシュ値および署名から公開鍵を復元し、公開鍵と関連付けられたユーザ情報を特定する、ことによって処理要求を許可するか否かを判定する。
【選択図】図3
Description
本開示は、認証システムおよび認証方法に関し、特に、デジタル署名を使用してユーザを認証する認証システムおよび認証方法に関する。
インターネットを利用した電子商取引サービスが飛躍的な速度で普及している。電子商取引サービスでは、ユーザは、コンピュータネットワーク上での電子的な情報通信によって商品やサービスを売買することができる。ユーザは、電子商取引サービスを利用する際、コンピュータデバイス(パーソナルコンピュータおよびスマートフォンなど)を使用して、サービスを提供するサーバコンピュータと通信する。
電子商取引サービスでは、ユーザの認証を行うためにユーザIDおよびパスワードが使用されることが多い。近年では多数の種類の電子商取引サービスを利用することが多いことから、ユーザにとっては、それぞれの電子商取引サービスに対して設定したユーザIDおよびパスワードを管理することが煩雑である。全ての電子商取引サービスにおいて同一のユーザIDおよびパスワードを設定することは、セキュリティの関連から問題が大きい。
"Certicom Research", http://perso.univ-rennes1.fr/sylvain.duquesne/master/standards/sec2_final.pdf)
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
上述したように、多数の電子商取引サービスにおいて、ユーザIDおよびパスワードを使用せずにユーザを認証することができることが望ましい。しかしながら、パスワードなどは、ユーザのみが知り得る秘密情報であり、そのような秘密情報を使用して認証を行うことによって一定のセキュリティを確保している。
特許文献1は、ネットワークサービスを使用して、パスワードなしのログイン用にモバイルデバイスをコンピュータとペアリングするための技術を開示している。特許文献1に開示された技術では、1)コンピューティングデバイスが、コンピュータ認証データおよび公開鍵を含むペアリング要求をネットワークサーバに送信し、2)ネットワークサーバが、モバイルデバイスをコンピューティングデバイスとペアリングし、3)モバイルデバイスが、コンピュータの公開鍵に基づくパスワード暗号鍵を暗号化して、暗号化されたパスワード暗号鍵、モバイル公開鍵、およびモバイル認証データをコンピューティングデバイスに転送し、4)コンピューティングデバイスが、コンピュータ認証データを使用して、モバイル認証データを検証し、5)ネットワークサーバが、コンピュータの公開鍵を使用して暗号化されたパスワード暗号鍵を復号し、パスワード暗号鍵を使用して、ログインパスワードを暗号化する。
特許文献1に開示された技術では、コンピュータデバイスがパスワードを使用してログインを行うので、パスワードを使用しないで認証を行うものではない。また、2つのデバイス(コンピューティングデバイスおよびモバイルデバイス)において公開鍵および認証データなどを生成しているので、全体的な処理の複雑度および負荷が高い。
実施形態に係る情報処理装置は、制御装置、通信装置、および記憶装置を備えた情報処理装置であって、前記記憶装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶し、前記通信装置は、処理要求を受信し、前記制御装置は、チャレンジコードを生成し、前記通信装置は、前記チャレンジコードを送信し、レスポンスを受信し、前記レスポンスは、前記チャレンジコードから生成されたハッシュ値および署名を含み、前記署名は、前記秘密鍵から生成され、前記制御装置は、前記生成されたチャレンジコードからハッシュ値を生成し、前記生成されたハッシュ値および前記署名から前記公開鍵を復元し、前記公開鍵と関連付けられた前記ユーザ情報を特定する、ことによって前記処理要求を許可するか否かを判定する。
また、実施形態に係る方法は、情報処理装置によって実行される方法であって、前記情報処理装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶した記憶装置を含み、処理要求を受信するステップと、チャレンジコードを生成するステップと、前記チャレンジコードを送信するステップと、レスポンスを受信するステップであって、前記レスポンスは、前記チャレンジコードから生成されたハッシュ値および署名を含み、前記署名は、前記秘密鍵から生成される、ステップと、前記生成されたチャレンジコードからハッシュ値を生成し、前記生成されたハッシュ値および前記署名から前記公開鍵を復元し、前記公開鍵と関連付けられた前記ユーザ情報を特定する、ことによって前記処理要求を許可するか否かを判定するステップと、含む。
実施形態に係る認証システムによれば、一定のセキュリティを確保しつつ、パスワードなどの秘密情報を使用せずに認証を行うことができる。
<第1の実施形態>
以下、添付図面を参照して、第1の実施形態に係る認証システムを説明する。第1の実施形態では、ユーザが、サーバコンピュータによって提供される電子商取引サービスなどのサービスを利用するために認証を受ける例を説明する。ユーザは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを使用して、サーバコンピュータによる認証を受ける。
以下、添付図面を参照して、第1の実施形態に係る認証システムを説明する。第1の実施形態では、ユーザが、サーバコンピュータによって提供される電子商取引サービスなどのサービスを利用するために認証を受ける例を説明する。ユーザは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを使用して、サーバコンピュータによる認証を受ける。
図1は、第1の実施形態に係る認証システム100の全体の構成の例を示す。認証システム100は、サーバコンピュータ1、(第1の)コンピュータデバイス(認証コンピュータ)2、および(第2の)コンピュータデバイス(サービス利用コンピュータ)3を備える。サーバコンピュータ1、コンピュータデバイス2、コンピュータデバイス3は、インターネットなどを含むネットワーク4を介して相互に接続される。
サーバコンピュータ1は、上述したサービスを提供するための情報処理装置である。サーバコンピュータは、サービスを提供するためのウェブサイトを実装し、コンピュータデバイス3に表示するためのウェブインタフェースを生成および送信する。ユーザは、ウェブインタフェースへの入力を通じてサービスを利用することができる。ユーザは、サービスにおいて一意なユーザIDが割り当てられており、ユーザは、サービスを利用する際、サーバコンピュータ1によって認証を受ける必要がある。なお、サーバコンピュータ1は、単独のコンピュータデバイスで実装されてもよく、または複数のコンピュータデバイスで実装されてもよい。
コンピュータデバイス(認証コンピュータ)2は、ユーザが認証を受けるために使用される情報処理装置である。コンピュータデバイス2は、サーバコンピュータ1がユーザを認証するために、サーバコンピュータ1と所定の情報を交換する。コンピュータデバイス2は、ラップトップ型もしくはノート型のパーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなど、通信機能および演算機能を有するいずれかのコンピュータデバイスであってもよい。
コンピュータデバイス(サービス利用コンピュータ)3は、ユーザがサービスを利用するために使用される情報処理装置である。コンピュータデバイス3は、サーバコンピュータ1が実装するウェブサイトにアクセスする。コンピュータデバイス3も、ラップトップ型もしくはノート型のパーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなど、通信機能および演算機能を有するいずれかのコンピュータデバイスであってもよい。
次に、図2を参照して、認証システム100を構成するコンピュータデバイスの詳細な構成の例を説明する。図2に示すように、サーバコンピュータ1は、制御装置11、メモリ12、記憶装置13、および通信装置14を備える。それらの構成要素は、内部バスを介して相互に結合される。
制御装置11は、プロセッサなどにより実装され、中央処理装置(CPU)、グラフィックプロセシングユニット(GPU)、および1つもしくは複数の制御装置コアを含んでもよい。制御装置11は、記憶装置13に記憶された所定のプログラム(OSおよびアプリケーションプログラム)を実行することによって、サーバコンピュータ1の動作を制御する。メモリ12は、揮発性または不揮発性メモリ、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM、またはキャッシュメモリを含んでもよい。メモリ12は、制御装置11が実行するプログラムデータを一時的に記憶する。
記憶装置13は、サーバコンピュータ1に内蔵された記憶装置である。記憶装置13は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、およびフラッシュドライブを含んでもよい。サーバコンピュータ1は、データベースマネジメントシステム(DBMS)を実装し、記憶装置13は、データベーステーブル13aも記憶してもよい。通信装置14は、ネットワークインタフェースカード(例えば、LANカード)などで実装され、ネットワーク4を介してコンピュータデバイス2およびコンピュータデバイス3とデータを送受信する。
コンピュータデバイス2は、制御装置21、メモリ22、記憶装置23、通信装置24、表示装置25、およびカメラ26を備える。それらの構成要素は、内部バスを介して相互に結合される。
制御装置21は、制御装置11と同様にCPUなどで実装される。制御装置21は、記憶装置23に記憶された所定のプログラムを実行することによって、コンピュータデバイス2の動作を制御する。メモリ22は、メモリ12と同様に、揮発性または不揮発性メモリなどを含み、制御装置21が実行するプログラムデータを一時的に記憶する。記憶装置23は、記憶装置13と同様に内蔵された記憶装置である。通信装置24は、通信装置14と同様に、LANカードなどで実装され、ネットワーク4を介してサーバコンピュータ1とデータを送受信する。
表示装置25は、後述する二次元コードなどを表示するディスプレイスクリーンである。カメラ26は、二次元コードを読み出すための、CCD(Charged-coupled devices)またはCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を有する撮像デバイスである。二次元コードが表示装置25に表示されると、ユーザは、カメラ26を使用して二次元コードを撮像し、制御装置21に二次元コードの画像を送信する。二次元コードの画像が制御装置21に送信されると、後述する認証処理が実行される。
コンピュータデバイス3は、コンピュータデバイス2と同等の構成を含み、少なくとも通信機能、演算機能、および画像表示機能を有する。
次に、図3を参照して、本実施形態に従って認証システム100が実行する処理の例を説明する。図3に示す処理では、ユーザがサービスを利用するためにサーバコンピュータ1によって実装されたウェブサイト(以下、「サービスウェブサイト」)にログイン(アクセス)するための認証を受ける例を説明する。サービスウェブサイトへのアクセスは、コンピュータデバイス3によって実行されるものとする。
まず、コンピュータデバイス2の制御装置21は、公開鍵および秘密鍵のペアを生成する(ステップS301)。生成した公開鍵および秘密鍵のペアは、記憶装置23に記憶される。公開鍵および秘密鍵のペアは、楕円曲線暗号化方式などの公知の公開鍵暗号化方式を利用して生成される。例えば、楕円曲線は、非特許文献1および2において開示されたsecp256k1曲線などが使用されてもよい。楕円曲線のパラメータ(ベースポイントG(x,y)および位相n)は、サーバコンピュータ1とコンピュータデバイス2との間で予め定義されているものとする。
秘密鍵は、例えば、式(1)によって表される楕円曲線(secp256k1曲線)上の座標である。
y2=x3+7 式(1)
公開鍵は、秘密鍵曲線座標と曲線定義内のベースポイントG(x,y)を乗算することによって、生成される座標である。
y2=x3+7 式(1)
公開鍵は、秘密鍵曲線座標と曲線定義内のベースポイントG(x,y)を乗算することによって、生成される座標である。
なお、公開鍵および秘密鍵のペアは、コンピュータデバイス3など、コンピュータデバイス2以外のユーザが使用するデバイスによって生成されてもよい。ペアのうちの少なくとも秘密鍵は、認証処理の時点でコンピュータデバイス2に記憶されているものとする。また、秘密鍵がコンピュータデバイス2以外のデバイスによって生成された場合、秘密鍵がコンピュータデバイス2に記憶された時点で当該デバイスから削除されることが望ましい。
次に、制御装置21は、ユーザについてのユーザ情報を生成する(ステップS302)。ユーザ情報は、コンピュータデバイス2の表示装置25に表示された入出力インタフェースを介してユーザによって入力されるユーザ情報である。ユーザ情報は、例えば、ユーザID、コンピュータデバイスID(IPアドレスおよびMACアドレスなど)、サービスにおける利用権限、ならびに利用時間などを含む。なお、ユーザ情報は、コンピュータデバイス3を介して入力されてもよく、後述する処理によって、少なくとも認証処理の時点でサーバコンピュータ1に記憶されているものとする。
次に、通信装置24は、公開鍵およびユーザ情報をサーバコンピュータ1に送信する(ステップS303)。サーバコンピュータ1の通信装置14が公開鍵およびユーザ情報を受信すると、制御装置11は、公開鍵とユーザ情報とを関連付けて記憶装置13に記憶する(ステップS304)。なお、公開鍵およびユーザ情報は、DBMSによって管理され、データベーステーブル13aに記憶されてもよい。
ステップS301乃至S304の処理は、後述するステップS305以降の処理とは別個に実行されてもよい。つまり、ユーザが認証処理を受ける時点で、公開鍵およびユーザ情報がサーバコンピュータ1の記憶装置13に記憶されているものとする。また、ユーザが認証処理を受ける時点で、秘密鍵がコンピュータデバイス2の記憶装置23に記憶されているものとする。
ステップS305では、ユーザは、サービスウェブサイトへのログインを試みる、つまり、コンピュータデバイス3は、サービスウェブサイトにアクセスを試みる。サービスウェブサイトへのアクセスとは、サービスウェブサイトが記憶された位置を示すURLにコンピュータデバイス3がアクセスすることを意味する。このときに、コンピュータデバイス3は、サーバコンピュータ1に処理要求(アクセス要求)を送信する。
次に、サーバコンピュータ1の通信装置14が処理要求を受信すると、制御装置11は、サービスウェブサイトのURLを符号化した二次元コードを生成する(ステップS306)。次に、通信装置14は、二次元コードをコンピュータデバイス3に送信する(ステップS307)。コンピュータデバイス3が二次元コードを受信すると、二次元コードは、コンピュータデバイス3の表示装置(図示しない)に表示される。
なお、本実施形態では二次元コードが表示される例を説明したが、そのような例に限定されず、URLを符号化した任意の形式のコード、またはURLそのものが表示されてもよい。つまり、コンピュータデバイス3からの処理要求に応答して、サーバコンピュータ1は、コンピュータデバイス3がアクセスを試みたサービスウェブサイトの位置を示す情報を含む電文をコンピュータデバイス3に送信する。また、上述した情報は、電子メールなどの形式で送信されてもよい。
次に、ユーザは、コンピュータデバイス2のカメラ26を使用して二次元コードを撮像する。二次元コードが撮像されると、カメラ26は、撮像した二次元コードに対応する画像を生成する。そして、制御装置21は、画像から二次元コードを復号して読み出す(ステップS308)。二次元コードを読み出すと、コンピュータデバイス2は、URLが示すサービスウェブサイトにアクセスする、つまり、通信装置24は、サーバコンピュータ1に認証要求を送信する(ステップS309)。
ステップS305乃至S309の処理によって、コンピュータデバイス3が処理要求を送信し、それに対するサーバコンピュータ1からの返信に応答して、コンピュータデバイス2が認証要求を送信することができる。上述した例に加えまたはその代わりに、以下のような例によって、上述した処理が実行されてもよい。
例えば、サーバコンピュータ1は、コンピュータデバイス3からの処理要求に応答して、URLなどのコードをコンピュータデバイス2に送信してもよい。コンピュータデバイス2は、このコードを読み出して、認証要求を送信する。また、サーバコンピュータ1は、コンピュータデバイス3からの処理要求に応答して、認証要求を送信することを示す所定の電文をコンピュータデバイス2に送信してもよい。コンピュータデバイス2の通信装置24は、この電文に応答して、認証要求を送信する。
図3の説明に戻り、サーバコンピュータ1の通信装置14が認証要求を受信すると、制御装置11は、チャレンジコードを生成する(ステップS310)。チャレンジコードは、乱数に基づいた任意のデータ列であってもよく、またはUUID(Universally Unique Identifier)などが使用されてもよい。チャレンジコードについては、都度異なる値が生成される。チャレンジコードが生成されると、通信装置14は、チャレンジコードをコンピュータデバイス2に送信する(ステップS311)。
コンピュータデバイス2の通信装置24がチャレンジコードを受信すると、制御装置21は、チャレンジコードに基づいてハッシュ値を生成する(ステップS312)。ハッシュ値は、SHA−256などの暗号学的ハッシュ関数を使用して生成される。そして、制御装置21は、記憶装置23に記憶された秘密鍵を使用して、ハッシュ値に署名(S,R)を付加する(ステップS313)。
署名(S,R)は、ステップS301において使用された楕円曲線暗号化方式(楕円曲線は、secp256k1曲線)を使用した楕円曲線DSA(Elliptic Curve Digital Signature Algorithm)に基づいて生成されるデジタル署名である。楕円曲線DSAに基づいて、署名(S,R)が生成される。楕円曲線DSAにより、後述するように、ハッシュ値および署名(S,R)から、公開鍵を復元することができる。つまり、本実施形態では、チャレンジコードから生成されたハッシュ値および秘密鍵から生成された署名から、秘密鍵に対応する公開鍵を復元することができる楕円曲線暗号化方式を採用する。
署名(S,R)は、式(2)に従って生成されてもよい。
式(2)において、hは、ステップS312において生成されたハッシュ値からの位相nの桁数(ビット長)の値であり、kは、ステップS301において生成された秘密鍵であり、qは、ステップS310において受信されたチャレンジコードである。式(2)に従ってSを算出した後、Rを算出することができる。
次に、コンピュータデバイス2の通信装置24は、ハッシュ値および署名(S,R)をレスポンスとしてサーバコンピュータ1に送信する(ステップS314)。サーバコンピュータ1の通信装置14がレスポンスを受信すると、制御装置11は、ステップS310において生成したチャレンジコードに基づいてハッシュ値を生成する。このハッシュ値は、ステップS312において生成されたハッシュ値と同一のアルゴリズムにより生成され、同じ値を有することになる。
そして、制御装置11は、レスポンスに付加された署名および生成したハッシュ値から公開鍵を復元し、署名(S,R)を検証する(ステップS315)。上述したように、署名は、楕円曲線DSAに基づいたデジタル署名である。よって、楕円曲線DSAに基づいて、秘密鍵に対応する公開鍵を復元することができ、署名を検証することができる。署名を検証することによって、ユーザが正当なユーザであることを確認することができる。
署名の検証は、式(3)に従ってQを算出し、算出したQが、受信した署名(S,R)のRと等しいか否かを判定する。つまり、レスポンスに含まれる署名Rと生成した署名Qとを比較することによって、署名を検証する。
Sは、署名(S,R)のSであり、hは、ステップS315において生成されたハッシュ値から位相nの桁数(ビット長)の値であり、Gは、ベースポイント(x,y)であり、Kは、公開鍵である。よって、式(3)のQを受信した署名(S,R)のRに置き換えて、最初に公開鍵Kを復元し、公開鍵Kに基づいてQを算出する。
次に、制御装置11は、復元した公開鍵に基づいて、記憶装置13に記憶されたユーザ情報を取り出す(ステップS316)。上述したように、公開鍵とユーザ情報とが関連付けて記憶されているので、公開鍵を復元することによって対応するユーザ情報を取り出す、つまり、公開鍵を復元することによって対応するユーザを特定する。
ユーザ情報を取り出すと、制御装置11は、ユーザ情報において定義された利用権限および/または利用時間に基づいて、ステップS306において受信した処理要求(サービスウェブサイトへのアクセス)を許可/拒否する(ステップS317)。例えば、処理要求が送信された時間が、利用時間の範囲外であると、制御装置11は、コンピュータデバイス3にエラー応答を送信してもよい。
アクセスの許可について、例えば、制御装置11は、ステップS307においてコンピュータデバイス3の表示装置上で二次元コードが表示された画面から、サービスウェブサイトにログインした状態を示す画面に遷移させてもよい(遷移した画面をコンピュータデバイス3に送信する)。また、ユーザ情報にIPドレスなど、コンピュータデバイス3を識別する情報が含まれる場合、制御装置11は、当該情報に基づいてコンピュータデバイス3と、ログイン後の操作について通信してもよい。
以上のように、第1の実施形態に係る認証システムを説明した。第1の実施形態に係る認証システムでは、サーバコンピュータ1は、コンピュータデバイス3からの処理要求に応じて、コンピュータデバイス2から送信された情報に基づいて公開鍵を復元し、公開鍵に関連付けられたユーザを特定することによってユーザを認証する。そして、サーバコンピュータ1は、ユーザを認証すると、コンピュータデバイス3からの要求を許可する。署名の検証に使用される秘密鍵は、コンピュータデバイス2にのみ記憶され、コンピュータデバイス3には記憶されない。
上述した構成によって、ユーザは、パスワードなどの秘密情報を使用することなく、サーバコンピュータ1による認証処理を受けることができる。また、コンピュータデバイス3が盗難された場合でも、秘密鍵を記憶したコンピュータデバイス2が盗難されない限り、第三者による不正使用を防止することができる。
なお、本実施形態では、コンピュータデバイス3が盗難された場合などに対処するために、コンピュータデバイス2およびコンピュータデバイス3を使用して認証を行っているが、コンピュータデバイス3のみが使用されてもよい。この場合、コンピュータデバイス3が秘密鍵を生成し、署名を付加したハッシュ値をサーバコンピュータ1に送信する。
また、本実施形態では、復元した公開鍵からユーザ情報を特定しているが、処理を加速化するために、コンピュータデバイス3から送信される処理要求にユーザIDが含まれてもよい(つまり、ユーザがコンピュータデバイス3を介してユーザIDを入力する)。ユーザIDが入力されると、サーバコンピュータ1の制御装置11は、ユーザIDに基づいて対応するユーザ情報を簡易に取り出すことができる。
さらに、上述したステップS305乃至S317の処理が実行される時間を一定の時間に制限してもよい。例えば、ステップS305乃至S317の処理が予め定められた時間内に完了しない場合(制御装置11がタイマを加算し、タイマが予め定められた時間を超えるか否かを判定する)、制御装置11は、コンピュータデバイス3にエラー応答を送信してもよい。このような構成によって、悪意のある第三者による総当たり攻撃などを防止することができる。
上述した認証システム100は、サーバコンピュータ1によって実行されるコンピュータプログラムによって実装されるが、当該コンピュータプログラムは、非一時的記憶媒体に記憶されてもよい。コンピュータデバイス2によって実行されるコンピュータプログラムも同様である。非一時的記憶媒体の例は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリ装置、内蔵ハードディスクおよび取外可能ディスク装置などの磁気媒体、光磁気媒体、ならびにCD−ROMディスクおよびデジタル多用途ディスク(DVD)などの光学媒体などを含む。
<第2の実施形態>
次に、第2の実施形態に係る認証システムを説明する。第2の実施形態では、ユーザが、自動車などの車両のドアロックを解除するために認証を受ける例を説明する。ユーザは、遠隔デバイスを使用して、車載デバイスによる認証を受ける。
次に、第2の実施形態に係る認証システムを説明する。第2の実施形態では、ユーザが、自動車などの車両のドアロックを解除するために認証を受ける例を説明する。ユーザは、遠隔デバイスを使用して、車載デバイスによる認証を受ける。
図4は、第2の実施形態に係る認証システム200の全体の構成の例を示す。認証システム200は、車両5に設けられた車載デバイス6およびドアユニット7、ならびに遠隔デバイス8を備える。
車載デバイス6は、車両5内の任意の位置に設置される。車載デバイスは、ユーザを認証し、ドアユニット7などの構成要素を制御する情報処理装置である。車載デバイス6は、ドアユニット7および遠隔デバイス8と通信する。ドアユニット7との通信は、通信ケーブルなどを介して行われ、遠隔デバイス8との通信は、無線で行われる。
ドアユニット7は、車両5のドアを開閉する機械的構造を有する。ドアユニット7は、車載デバイス6からの指示に応じてドアを開閉する。遠隔デバイス8は、ユーザが車両5のドアを開閉することなどを遠隔で制御する情報処理装置(コンピュータデバイス)である。
次に、図5を参照して、認証システム100を構成する各種デバイスの詳細な構成の例を説明する。図5に示すように、車載デバイス6は、制御装置61、メモリ62、記憶装置63、通信装置64、および入出力(I/O)装置65を備える。それらの構成要素は、内部バスを介して相互に結合される。
制御装置61は、プロセッサなどにより実装され、中央処理装置(CPU)、グラフィックプロセシングユニット(GPU)、および1つもしくは複数の制御装置コアを含んでもよい。制御装置61は、記憶装置63に記憶された所定のプログラムを実行することによって、車両5の構成要素(ドアユニット7など)の動作を制御する。メモリ62は、揮発性または不揮発性メモリ、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM、またはキャッシュメモリを含んでもよい。メモリ62は、制御装置61が実行するプログラムデータを一時的に記憶する。
記憶装置63は、車載デバイス6に内蔵された記憶装置である。記憶装置63は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、およびフラッシュドライブを含んでもよい。通信装置64は、通信ケーブルを介してドアユニット7とデータを送受信する。
I/O装置65は、ドアを開閉することを指示する信号をドアユニット7に出力する。ドアユニット7は、指示信号に応じて、ロック機構(図示しない)を駆動してドアを開閉する。表示装置66は、後述するユーザ情報を入力するための入出力インタフェースを表示するディスプレイスクリーンである。ユーザ情報が入力されると、ユーザ情報が記憶装置63に記憶される。
遠隔デバイス8は、制御装置81、メモリ82、記憶装置83、通信装置84、および操作ボタン85を備える。それらの構成要素は、内部バスを介して相互に結合される。
制御装置81は、制御装置61と同様にCPUなどで実装される。制御装置81は、記憶装置83に記憶された所定のプログラムを実行することによって、遠隔デバイス8の動作を制御する。メモリ82は、メモリ62と同様に、揮発性または不揮発性メモリなどを含み、制御装置81が実行するプログラムデータを一時的に記憶する。記憶装置83は、記憶装置83と同様に内蔵された記憶装置である。通信装置84は、所定の周波数を有する電波を介して通信装置64と通信して、データを送受信する。
操作ボタン85は、ユーザが車両5のドアを開閉するためのボタンである。ユーザが操作ボタンを押下すると、後述する認証処理が実行されて、制御装置61がドアを開閉することを指示する信号をドアユニット7に出力する。なお、操作ボタンに加えまたはそれに代えて、遠隔デバイス8は、車両5が放射する電波を検知するセンサを備え、遠隔デバイス8が車両5からの電波を検知することによって認証処理がトリガされるようにしてもよい。
次に、図6を参照して、本実施形態に従って認証システム100が実行する処理の例を説明する。図6に示す処理では、ユーザが車両5のドアを開錠するために車載デバイス6によって認証を受ける例を説明する。
まず、遠隔デバイス8の制御装置81は、公開鍵および秘密鍵のペアを生成する(ステップS601)。生成した公開鍵および秘密鍵のペアは、記憶装置83に記憶される。公開鍵および秘密鍵のペアは、第1の実施形態で説明した方式で生成される。
なお、公開鍵および秘密鍵のペアは、図示しないコンピュータデバイス(スマートフォンまたはタブレットなど)によって生成されてもよい。この場合、上述したコンピュータデバイスと遠隔デバイス8とが無線によって通信し、認証処理の時点で、生成された秘密鍵が遠隔デバイス8に送信および記憶されているものとする。また、秘密鍵がコンピュータデバイスによって生成された場合、秘密鍵が遠隔デバイス8に記憶された時点で当該デバイスから削除されることが望ましい。
次に、車載デバイス6の制御装置61は、ユーザ情報を生成する(ステップS602)。ユーザ情報は、車載デバイス6の表示装置66に表示された入出力インタフェースを介してユーザによって入力されるユーザ情報である。ユーザ情報は、例えば、ユーザID、コンピュータデバイスID(IPアドレスおよびMACアドレスなど)、ならびに速度制限、走行時間制限、および走行時間などを含む利用権限などを含む。なお、ユーザ情報は、上述したコンピュータデバイスを介して入力されてもよい。この場合、上述したコンピュータデバイスと車載デバイス6とが無線によって通信し、認証処理の時点で、入力されたユーザ情報が車載デバイス6に送信および記憶されているものとする。
次に、遠隔デバイス8の通信装置84は、公開鍵をサーバコンピュータ1に送信する(ステップS603)。車載デバイス6の通信装置64が公開鍵を受信すると、制御装置61は、公開鍵と、ステップS602において生成されたユーザ情報とを関連付けて記憶装置63に記憶する(ステップS604)。
ステップS601乃至S604の処理は、後述するステップS605以降の処理とは別個に実行されてもよい。つまり、ユーザが認証処理を受ける時点で、公開鍵およびユーザ情報が車載デバイス6の記憶装置63に記憶されているものとする。また、ユーザが認証処理を受ける時点で、秘密鍵が遠隔デバイス8の記憶装置83に記憶されているものとする。
ステップS605では、ユーザは、車両5のドアの開錠を試みる。このときに、遠隔デバイス8の通信装置84は、車載デバイス6に処理要求(開錠要求)を送信する。次に、車載デバイス6の通信装置64が処理要求を受信すると、制御装置61は、チャレンジコードを生成する(ステップS606)。チャレンジコードは、第1の実施形態で説明したように、乱数に基づいた任意のデータ列であってもよく、またはUUIDなどが使用されてもよい。チャレンジコードについては、都度異なる値が生成される。チャレンジコードが生成されると、通信装置64は、チャレンジコードを遠隔デバイス8に送信する(ステップS607)。
遠隔デバイス8の通信装置84がチャレンジコードを受信すると、制御装置81は、チャレンジコードに基づいてハッシュ値を生成する(ステップS608)。そして、制御装置21は、記憶装置83に記憶された秘密鍵を使用して、ハッシュ値に署名(S,R)を付加する(ステップS609)。ハッシュ値および署名は、第1の実施形態で説明した方式で生成される。
次に、通信装置84は、ハッシュ値および署名(S,R)をレスポンスとして車載デバイス6に送信する(ステップS610)。車載デバイス6の通信装置64がレスポンスを受信すると、制御装置61は、ステップS606において生成したチャレンジコードに基づいてハッシュ値を生成する。このハッシュ値は、ステップS608において生成されたハッシュ値と同一のアルゴリズムにより生成され、同じ値を有することになる。
そして、制御装置61は、レスポンスに付加された署名および生成したハッシュ値から公開鍵を復元し、署名(S,R)を検証する(ステップS611)。署名は、第1の実施形態で説明した方式で検証される。
次に、制御装置61は、復元した公開鍵に基づいて、記憶装置13に記憶されたユーザ情報を取り出す(ステップS612)。上述したように、公開鍵とユーザ情報とが関連付けて記憶されているので、公開鍵を復元することによって対応するユーザ情報を取り出す、つまり、公開鍵を復元することによって対応するユーザを特定する。
ユーザ情報を取り出すと、制御装置61は、ユーザ情報において定義された利用権限に基づいて、ステップS605において受信した処理要求に応じてドアユニット7に対し、ドアを開錠することを指示する信号を送信する、つまり、処理要求を許可する(ステップS613)。ドアユニット7は、指示信号に応じて、ロック機構(図示しない)を駆動してドアを開錠する。
以上のように、第2の実施形態に係る認証システムを説明した。第2の実施形態に係る認証システムでは、車載デバイス6は、遠隔デバイス8からの処理要求に応じて、遠隔デバイス8から送信された情報に基づいて公開鍵を復元し、公開鍵に関連付けられたユーザを特定することによってユーザを認証する。そして、車載デバイス6は、ユーザを認証すると、ドアを開錠する、つまり、遠隔デバイス8からの要求を許可する。
なお、本実施形態では、遠隔デバイス8からの処理要求に応じて、ドアを開錠する例を説明したが、そのような例に限定されない。例えば、車両5のエンジンがイモビライザによって制御され、ユーザを認証によってエンジンが始動するように制御してもよい。この場合、車載デバイス6は、ユーザを認証すると、イモビライザに対してエンジンを始動するよう指示する。
また、例えば、ドアを開錠する要求およびエンジンを始動する要求のそれぞれに対し、異なる秘密鍵を生成し、それぞれにおいて別個の認証処理が行われてもよい。このように構成することによって、ドアを開錠するときの第1の認証およびエンジンを始動するときの第2の認証をユーザが受けることになり(2段階認証)、セキュリティがさらに高まる。
2段階認証において、例えば、遠隔デバイス8からのドア開錠要求に対し、車載デバイス6は、第1のチャレンジコードを生成し、遠隔デバイス8は、第1のチャレンジコードに基づいて第1のハッシュ値を生成し、第1の秘密鍵に基づいて第1の署名を生成してもよい。車載デバイス6は、第1のチャレンジコードおよび第1の署名に基づいて、第1の秘密鍵に対応する第1の公開鍵を復元する。
遠隔デバイス8からのエンジン始動要求に対しては、車載デバイス6は、第2のチャレンジコードを生成し、遠隔デバイス8は、第2のチャレンジコードに基づいて第2のハッシュ値を生成し、第2の秘密鍵に基づいて第2の署名を生成してもよい。車載デバイス6は、第2のチャレンジコードおよび第2の署名に基づいて、第2の秘密鍵に対応する第2の公開鍵を復元する。
また、操作ボタン85が2つのボタンを含み、第1のボタンの押下によって、遠隔デバイス8がドア開錠要求を送信し、第2のボタンの押下によって、遠隔デバイス8がエンジン始動要求を送信してもよい。また、遠隔デバイス8が上述したセンサを含む場合、センサが車載デバイスから放射される第1の周波数を有する電波を検知したことに応じて、遠隔デバイス8がドア開錠要求を送信し、第2の周波数を有する電波を検知したことに応じて、遠隔デバイス8がエンジン始動要求を送信してもよい。
上記実施形態で説明した式およびハードウェアの構成要素は例示的なものにすぎず、その他の構成も可能であることに留意されたい。また、上記実施形態で説明した処理の順序は、必ずしも説明した順序で実行される必要がなく、任意の順序で実行されてもよい。さらに、本発明の基本的な概念から逸脱することなく、追加のステップが新たに加えられてもよい。
また、上述した認証システム200は、車載デバイス6によって実行されるコンピュータプログラムによって実装されるが、当該コンピュータプログラムは、非一時的記憶媒体に記憶されてもよい。遠隔デバイス8によって実行されるコンピュータプログラムも同様である。
1 サーバコンピュータ
2 コンピュータデバイス
3 コンピュータデバイス
4 ネットワーク
5 車両
6 車載デバイス
7 ドアユニット
8 遠隔デバイス
100 認証システム
200 認証システム
2 コンピュータデバイス
3 コンピュータデバイス
4 ネットワーク
5 車両
6 車載デバイス
7 ドアユニット
8 遠隔デバイス
100 認証システム
200 認証システム
Claims (11)
- 制御装置、通信装置、および記憶装置を備えた情報処理装置であって、前記記憶装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶し、
前記通信装置は、処理要求を受信し、
前記制御装置は、チャレンジコードを生成し、
前記通信装置は、
前記チャレンジコードを送信し、
レスポンスを受信し、前記レスポンスは、前記チャレンジコードから生成されたハッシュ値および署名を含み、前記署名は、前記秘密鍵から生成され、
前記制御装置は、前記生成されたチャレンジコードからハッシュ値を生成し、前記生成されたハッシュ値および前記署名から前記公開鍵を復元し、前記公開鍵と関連付けられた前記ユーザ情報を特定する、ことによって前記処理要求を許可するか否かを判定する、
ことを特徴とする情報処理装置。 - 前記通信装置は、
第1のコンピュータデバイスから前記処理要求を受信し、
前記処理要求を受信したことに対応して、第2のコンピュータデバイスから認証要求を受信し、
前記チャレンジコードを送信すること、前記レスポンスを受信すること、および前記処理要求を許可することは、前記認証要求に応答して実行される、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理要求は、前記第1のコンピュータデバイスが前記情報処理装置へのアクセスを試みるアクセス要求であり、
前記通信装置は、
前記処理要求を受信したことに応答して、前記情報処理装置の位置を示す情報を含む電文を前記第2のコンピュータデバイスに送信し、
前記電文を送信したことに対応して、前記チャレンジコードを受信する、
ことを特徴とする請求項2に記載の情報処理装置。 - 前記署名は、楕円曲線暗号化方式を使用した楕円曲線DSAに基づいて生成されるデジタル署名である、ことを特徴とする請求項1または2に記載の情報処理装置。
- 前記楕円曲線暗号化方式において使用される楕円曲線は、ecp256k1曲線である、ことを特徴とする請求項4に記載の情報処理装置。
- 前記署名は、第1の署名であり、
前記制御装置は、
前記生成されたハッシュ値および前記復元された公開鍵から第2の署名を生成し、
前記第1の署名と前記第2の署名とを比較することによって前記第1の署名を検証する、
ことを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。 - 前記制御装置は、
前記チャレンジコードを送信すること、前記レスポンスを受信すること、および前記処理要求を許可するが、予め定められた時間内に完了するか否かを判定する、ことを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。 - 前記ユーザ情報は、利用権限および/または利用時間を含み、
前記制御装置は、前記利用権限および/または前記利用時間に基づいて、前記処理要求を許可するか否かを判定する、
ことを特徴とする請求項1乃至7のいずれか一項に記載の情報処理装置。 - 情報処理装置によって実行される方法であって、前記情報処理装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶した記憶装置を含み、
処理要求を受信するステップと、
チャレンジコードを生成するステップと、
前記チャレンジコードを送信するステップと、
レスポンスを受信するステップであって、前記レスポンスは、前記チャレンジコードから生成されたハッシュ値および署名を含み、前記署名は、前記秘密鍵から生成される、ステップと、
前記生成されたチャレンジコードからハッシュ値を生成し、前記生成されたハッシュ値および前記署名から前記公開鍵を復元し、前記公開鍵と関連付けられた前記ユーザ情報を特定する、ことによって前記処理要求を許可するか否かを判定するステップと、
を備えたことを特徴とする方法。 - 第1の情報処理装置および第2の情報処理装置を備えた認証システムであって、前記第1の情報処理装置は、秘密鍵および公開鍵のペアのうちの公開鍵とユーザ情報とを関連付けて記憶し、前記第2の情報処理装置は、前記秘密鍵を記憶し、
前記第1の情報処理装置は、
処理要求を受信し、
チャレンジコードを生成し、
前記チャレンジコードを前記第2の情報処理装置に送信し、
前記第2の情報処理装置は、
前記チャレンジコードからハッシュ値を生成し、
前記秘密鍵から署名を生成し、
前記ハッシュ値に前記署名を付加したレスポンスを前記第1の情報処理装置に送信し、
前記第1の情報処理装置は、前記生成されたチャレンジコードからハッシュ値を生成し、前記生成されたハッシュ値および前記署名から前記公開鍵を復元し、前記公開鍵と関連付けられた前記ユーザ情報を特定する、ことによって前記処理要求を許可するか否かを判定する、
ことを特徴とする認証システム。 - コンピュータ実行可能命令を含むコンピュータプログラムであって、前記コンピュータ実行可能命令は、コンピュータによって実行されると、前記コンピュータに請求項9に記載の方法を実行させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020019092A JP2021125824A (ja) | 2020-02-06 | 2020-02-06 | 認証システムおよび認証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020019092A JP2021125824A (ja) | 2020-02-06 | 2020-02-06 | 認証システムおよび認証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021125824A true JP2021125824A (ja) | 2021-08-30 |
Family
ID=77459628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020019092A Pending JP2021125824A (ja) | 2020-02-06 | 2020-02-06 | 認証システムおよび認証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021125824A (ja) |
-
2020
- 2020-02-06 JP JP2020019092A patent/JP2021125824A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101892203B1 (ko) | 하나의 장치를 이용하여 다른 장치를 언로크하는 방법 | |
US8930700B2 (en) | Remote device secure data file storage system and method | |
CN1832394B (zh) | 用于非对称密钥安全的方法和系统 | |
JP4615601B2 (ja) | コンピュータセキュリティシステムおよびコンピュータセキュリティ方法 | |
US20130145447A1 (en) | Cloud-based data backup and sync with secure local storage of access keys | |
US20120284506A1 (en) | Methods and apparatus for preventing crimeware attacks | |
CN110719173B (zh) | 一种信息处理方法及装置 | |
US20150052350A1 (en) | System and method for authenticating a user | |
US8423766B2 (en) | Authentication method, authentication apparatus, and computer product | |
CN112425114A (zh) | 受公钥-私钥对保护的密码管理器 | |
EP2628133B1 (en) | Authenticate a fingerprint image | |
US10742410B2 (en) | Updating biometric template protection keys | |
WO2021111824A1 (ja) | 電子署名システム及び耐タンパ装置 | |
JP2022542095A (ja) | 強化された安全な暗号化及び復号化システム | |
JP2004295761A (ja) | 端末装置及び情報処理装置 | |
JP4068877B2 (ja) | ディジタル・コンテンツ・システム | |
JP2017108237A (ja) | システム、端末装置、制御方法、およびプログラム | |
WO2015124798A2 (en) | Method & system for enabling authenticated operation of a data processing device | |
JP2006126891A (ja) | 生体情報登録方法、生体情報を利用する情報提供システム、端末及びサーバ | |
JP2021125824A (ja) | 認証システムおよび認証方法 | |
JP2008048166A (ja) | 認証システム | |
CN108985079B (zh) | 数据验证方法和验证系统 | |
JP2021111925A (ja) | 電子署名システム | |
JP2005237037A (ja) | 認証用記録媒体を用いた認証システムおよび認証用記録媒体の作成方法 | |
WO2001095074A2 (en) | A method and system for securely displaying and confirming request to perform operation on host |