(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024120050
(43)【公開日】2024-09-03
(54)【発明の名称】スマートカード装置、認証用仮想コード生成装置、これを用いた認証用仮想コード生成方法及び認証用仮想コード検証サーバ
(51)【国際特許分類】
G06F 21/34 20130101AFI20240827BHJP
【FI】
G06F21/34
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2024099774
(22)【出願日】2024-06-20
(62)【分割の表示】P 2022572460の分割
【原出願日】2022-03-02
(31)【優先権主張番号】10-2021-0029035
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0021278
(32)【優先日】2022-02-18
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】521542982
【氏名又は名称】センストーン インコーポレイテッド
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際弁理士法人
(72)【発明者】
【氏名】ユ、チャン フン
(57)【要約】 (修正有)
【課題】カードデータに基づいてユーザ認証に必要な仮想セキュリティコードであるOTP(One Time Password)コードを生成するが、別途のOTP生成装置を必要とせず、同時にシードデータが流出しないようにしてセキュリティを高めるスマートカード装置、認証用仮想コード生成装置、これを用いた認証用仮想コード生成方法及び認証用仮想コード検証サーバを提供する。
【解決手段】方法は、ICチップが内蔵されたカードタギング時に、カードに時間データを送信するステップ、時間データに基づいて生成された1次認証用仮想コードをカードから受信するステップ、1次認証用仮想コードを用いて2次認証用仮想コードを生成するステップ、1次認証用仮想コードと2次認証用仮想コードの内、少なくとも1つをサーバに送信するステップ及びサーバが少なくとも1つの検証を実行するように要請するステップを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ICチップが組み込まれたスマートカード装置、認証用仮想コード生成装置、及びサーバによって実行される方法において、
前記スマートカード装置がタギングされた時に、前記認証用仮想コード生成装置が、前記スマートカード装置に時間データを送信するステップS110と、
前記スマートカード装置が、前記時間データ、前記ICチップに貯蔵されたシークレット値、及び前記ICチップに貯蔵された、第1UID(user identification)に基づいて、1次認証用仮想コードを生成し、前記認証用仮想コード生成装置が、前記スマートカード装置から1次認証用仮想コードを受信するステップS120と、
前記認証用仮想コード生成装置が、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するステップS130と、
前記認証用仮想コード生成装置が、前記2次認証用仮想コードをサーバに送信するステップS140と、
前記サーバが、前記2次認証用仮想コードの検証を実行するように要請するステップS150と
を含み、
前記ステップS110では、
前記スマートカード装置が、
当該ICチップに貯蔵されているシークレット値と前記認証用仮想コード生成装置から受信した時間データとに基づいて、第1OTP(One Time Password)を生成し、前記時間データに前記第1OTPを加算した加算結果を第1コードとし、
前記第1コードから、当該ICチップに貯蔵されているスマートカード装置の識別情報である第1UID(user identification)を減算した減算結果を第2コードとし、
M桁の前記第1コードとN桁の前記第2コードとを交互に配置したものを前記1次認証用仮想コードとする処理を行い、
前記ステップS130では、
前記認証用仮想コード生成装置が、前記サーバにおいて前記1次認証用仮想コードから抽出された第1コード及び第2コードを受信し、
前記第1コードから、当該認証用仮想コード生成装置に貯蔵されている当該認証用仮想コード生成装置を識別する固有値である第2UIDを減算した減算結果を第3コードとし、前記第1コード、前記第2コード、及び前記第3コードを特定の規則に従って結合したものを前記2次認証用仮想コードとする処理を行う
ことを特徴とする認証用仮想コード生成方法。
【請求項2】
ICチップが組み込まれたスマートカード装置、認証用仮想コード生成装置、及びサーバによって実行される方法において、
前記スマートカード装置がタギングされた時に、前記認証用仮想コード生成装置が、前記スマートカード装置に時間データを送信するステップS110と、
前記スマートカード装置が、前記時間データ、前記ICチップに貯蔵されたシークレット値、及び前記ICチップに貯蔵された、第1UID(user identification)に基づいて、1次認証用仮想コードを生成し、前記認証用仮想コード生成装置が、前記スマートカード装置から1次認証用仮想コードを受信するステップS120と、
前記認証用仮想コード生成装置が、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するステップS130と、
前記認証用仮想コード生成装置が、前記2次認証用仮想コードをサーバに送信するステップS140と、
前記サーバが、前記2次認証用仮想コードの検証を実行するように要請するステップS150と
を含み、
前記ステップS110では、
前記スマートカード装置が、
当該ICチップに貯蔵されているシークレット値と前記認証用仮想コード生成装置から受信した時間データとに基づいて、第1OTP(One Time Password)を生成し、前記時間データに前記第1OTPを加算した加算結果を第1コードとし、
前記第1コードから、当該ICチップに貯蔵されているスマートカード装置の識別情報である第1UID(user identification)を減算した減算結果を第2コードとし、
M桁の前記第1コードとN桁の前記第2コードとを交互に配置したものを前記1次認証用仮想コードとする処理を行い、
前記ステップS130では、
前記認証用仮想コード生成装置は、
前記スマートカード装置から受信した1次認証用仮想コードに基づいて、第2OTPを生成し、
前記スマートカード装置から受信した1次認証用仮想コードから、前記スマートカード装置において1次認証用仮想コードの生成の際に受信された時間データを取り出し、この時間データに、前記第2OTPを加算した加算結果を、当該認証用仮想コード生成装置に固有の第1コードとし、
当該認証用仮想コード生成装置に固有の第1コードから、当該認証用仮想コード生成装置に貯蔵されたデータとして当該認証用仮想コード生成装置を識別することができる固有値である第2UIDを減算した減算結果を、当該認証用仮想コード生成装置に固有の第2コードとし、
当該認証用仮想コード生成装置に固有の第1コード及び第2コードを特定の規則に従って結合したものを前記2次認証用仮想コードとする処理を行う、
ことを特徴とする認証用仮想コード生成方法。
【請求項3】
前記スマートカード装置は、前記第1コード及び前記第2コードに基づいて検証が実行され、
前記認証用仮想コード生成装置は、前記第1コード及び前記第3コードに基づいて検証が行われる、請求項1に記載の認証用仮想コード生成方法。
【請求項4】
前記2次認証用仮想コードは、
前記2次認証用仮想コードに含まれる前記第2OTPと検証用第2OTPの比較を通じて検証され、
前記検証用第2OTPは、
前記第2OTP生成時に用いられるシードデータと同じシードデータに基づいて前記サーバによって生成されたものである、請求項2に記載の認証用仮想コード生成方法。
【請求項5】
前記認証用仮想コード生成装置は、前記1次認証用仮想コード及び前記2次認証用仮想コードをサーバに送信する、請求項1又は2に記載の認証用仮想コード生成方法。
【請求項6】
前記1次認証用仮想コードは、
オフライン出入コントロール及びオンラインログイン時にユーザ認証用に用いられる、請求項1又は2に記載の認証用仮想コード生成方法。
【請求項7】
前記2次認証用仮想コードは、
金融決済時にユーザ認証用に用いられる、請求項1又は2に記載の認証用仮想コード生成方法。
【請求項8】
前記時間データは、APDU(Application Protocol Data Unit)命令語と組み合わせた形態である、請求項1又は2に記載の認証用仮想コード生成方法。
【請求項9】
コンピュータと組み合わせて、請求項1~8の内、いずれか一項に記載の方法を実行するためにコンピュータ可読記録媒体に貯蔵されたプログラム。
【請求項10】
スマートカード装置であって、
当該スマートカード装置のタギングを介して認証用仮想コード生成装置から時間データを受信するNFCモジュールと、
前記受信された時間データに基づいて1次認証用仮想コードを生成するICモジュールとを含み、
前記1次認証用仮想コードはそれ自体が認証用仮想コード生成装置に送信されて、2次認証用仮想コード生成に用いられるものであり、前記2次認証用仮想コードは、前記1次認証用仮想コードを用いて前記認証用仮想コード生成装置によって生成されるものであり、
前記2次認証用仮想コードは、サーバによって検証が行われるように前記認証用仮想コード生成装置によって前記サーバに伝送されるものであり、
前記ICモジュールは、
当該ICモジュールに貯蔵されているシークレット値と前記認証用仮想コード生成装置から受信した時間データとに基づいて、第1OTP(One Time Password)を生成し、前記時間データに前記第1OTPを加算した加算結果を第1コードとし、
前記第1コードから、当該ICモジュールに貯蔵されているスマートカード装置の識別情報である第1UID(user identification)を減算した減算結果を第2コードとし、
M桁の前記第1コードとN桁の前記第2コードとを交互に配置したものを前記1次認証用仮想コードとする処理を行う
スマートカード装置。
【請求項11】
ICチップが内蔵されたスマートカード装置がタギングされた時に、前記スマートカード装置に時間データを送信し、前記時間データに基づいて生成された1次認証用仮想コードを前記スマートカード装置から受信する通信部と
前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するコード生成部と、
前記通信部を介して前記2次認証用仮想コードをサーバに送信し、前記サーバが前記2次認証用仮想コードの検証を行うように要請する検証要請部と
を含む認証用仮想コード生成装置であって、
前記コード生成部は、
外部のサーバにおいて前記1次認証用仮想コードから抽出された第1コード及び第2コードを取得し、
前記第1コードから、当該認証用仮想コード生成装置に貯蔵されている当該認証用仮想コード生成装置を識別する固有値である第2UIDを減算した減算結果を第3コードとし、
前記第1コード、前記第2コード、及び前記第3コードを特定の規則に従って結合したものを前記2次認証用仮想コードとする処理を行う
ことを特徴とする認証用仮想コード生成装置。
【請求項12】
ICチップが内蔵されたスマートカード装置がタギングされた時に、前記スマートカード装置に時間データを送信し、前記時間データに基づいて生成された1次認証用仮想コードを前記スマートカード装置から受信する通信部と
前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するコード生成部と、
前記通信部を介して前記2次認証用仮想コードをサーバに送信し、前記サーバが前記2次認証用仮想コードの検証を行うように要請する検証要請部と
を含む認証用仮想コード生成装置であって、
前記コード生成部は、
前記スマートカード装置から受信した1次認証用仮想コードに基づいて、第2OTP(One Time Password)を生成し、
前記スマートカード装置から受信した1次認証用仮想コードから、前記スマートカード装置において1次認証用仮想コードの生成の際に受信された時間データを取り出し、この時間データに、前記第2OTPを加算した加算結果を、当該認証用仮想コード生成装置に固有の第1コードとし、
当該認証用仮想コード生成装置に固有の第1コードから、当該認証用仮想コード生成装置に貯蔵されたデータとして当該認証用仮想コード生成装置を識別することができる固有値である第2UIDを減算した減算結果を、当該認証用仮想コード生成装置に固有の第2コードとし、
当該認証用仮想コード生成装置に固有の第1コード及び第2コードを特定の規則に従って結合したものを前記2次認証用仮想コードとする処理を行う、
ことを特徴とする認証用仮想コード生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スマートカード装置、認証用仮想コード生成装置、これを用いた認証用仮想コード生成方法及び認証用仮想コード検証サーバに関する。
【背景技術】
【0002】
コードフォームデータは多くの分野で用いられている。決済時に用いられるカード番号、口座番号だけでなく、ユーザ識別のためのIPIN番号、住民登録番号などがコード形態データ認証用仮想コード生成装置である。
【0003】
しかし、このようなコードデータを利用する過程で流出する事故が多く発生する。カード番号の場合、カード表面に実際のカード番号がそのまま記載されており、他人に視覚的に流出し、磁気を利用した決済時にカード番号がそのままPOS装置に伝達されながら流出する。
【0004】
実際のコードがそのまま流出しないように仮想コードを利用しようとする試みが多かったが、仮想コードに対応する実際のコードを探索するためにユーザを識別するためのデータが必要であった。
【0005】
しかし、OTP(One Time Password)の場合、別途のOTP生成装置を必要とし、不便を伴い、特にユーザ端末の場合、OTP生成に用いられるシードデータの流出によりセキュリティ上の脆弱性が存在する。
【0006】
したがって、多くのユーザが所持しているカードのカードデータに基づいてユーザ認証に必要な仮想セキュリティコードを生成するもののような、OTPコードを生成するが、別途のOTP生成装置を必要とせず、同時にシードデータが流出しないようにしてセキュリティを高める方策が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、スマートカード装置、認証用仮想コード生成装置、これを用いた認証用仮想コード生成方法及び認証用仮想コード検証サーバを提供することにある。
【0008】
本発明が解決しようとする課題は、以上で述べた課題に限定されず、言及されていない他の課題は、以下の記載から通常の技術者に明確に理解することができる。
【課題を解決するための手段】
【0009】
前記課題を解決するための本発明の一態様による認証用仮想コード生成装置によって実行される認証用仮想コード生成方法は、ICチップが内蔵されたカードタギング(Tagging)時に、前記カードに時間データを送信するステップ、前記時間データに基づいて生成された1次認証用仮想コードを前記カードから受信するステップ、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するステップ、前記1次認証用仮想コード及び前記2次認証仮想コードの内、少なくとも1つをサーバに送信するステップ及び前記サーバが前記少なくとも1つの検証を実行するように要請するステップを含む。
【0010】
本発明において、前記1次認証用仮想コードは、複数のコードを含み、前記複数のコードの内、第1コードは、前記時間データ及び第1OTPに基づいて生成され、前記複数のコードの内、第2コードは、コードは、前記第1コード内で前記カードの識別情報である第1UID(user identification)を除外して生成することができる。
【0011】
本発明において、前記2次認証用仮想コードを生成するステップは、前記第1コードから前記認証用仮想コード生成装置の識別情報である第2UIDを除外して第3コードを生成し、前記第1コード、前記第2コードと前記第3コードとを組み合わせて前記2次認証用仮想コードを生成することができる。
【0012】
本発明において、前記カードは、前記第1コードと前記第2コードに基づいて検証が行われ、前記認証用仮想コード生成装置は、前記第1コードと前記第3コードに基づいて検証が行われる。
【0013】
本発明において、前記2次認証用仮想コードを生成するステップは、前記1次認証用
仮想コードに基づいて第2OTPを生成し、前記第2OTP及び前記認証用仮想コード生成装置の識別情報であることを特徴とする。2UIDに基づいて前記2次認証用仮想コードを生成することができる。
【0014】
本発明において、前記2次認証用仮想コードは、前記2次認証用仮想コードに含まれた前記第2OTPと検証用第2OTPとの比較を通じて検証され、前記検証用第2OTPは、前記第2OTP生成時用いられたシードデータと同じシードデータに基づいて前記サーバによって生成されたものであり得る。
【0015】
本発明において、前記1次認証用仮想コードは、オフライン出入コントロール.及びオンラインログイン時のユーザ認証用に用いることができる。
【0016】
本発明において、前記2次認証用仮想コードは、金融決済時にユーザ認証用に用いることができる。
【0017】
本発明において、前記時間データは、組み合わせた形態であり得APDU(Application Protocol Data Unit)命令語と結合された形態で有り得る。
【0018】
前述の課題を解決するための本発明の他の態様に係るスマートカード装置は、カードタギングを介して認証用仮想コード生成装置から時間データを受信するNFCモジュール及び前記受信された時間データに基づいて1次認証用仮想コードを生成するICモジュールを含み、前記1次認証用仮想コードは自ら送信されてユーザ認証に用いられるか、2次認証用仮想コード生成に用いられるものであり、前記2次認証用仮想コードは、前記1次認証用仮想コードを用いて前記認証用仮想コード生成装置により生成されるものであり、前記1次認証用仮想コード及び前記2次認証用仮想コードの内、少なくとも1つは、サーバにより検証が行われるよう前記認証用仮想コード生成装置によって前記サーバに送信される。
【0019】
前述の課題を解決するための本発明のさらに他の態様による認証用仮想コード生成装置は、ICチップが内蔵されたカードタギング時に、前記カードに時間データを送信し、前記時間データに基づいて生成された1次認証用仮想コードを前記カードから認証認証用仮想コードを受信する通信部、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成するコード生成部、と前記通信部を介して前記1次認証用仮想コード及び前記2次認証用仮想コードの内、少なくとも1つを、サーバに送信し、前記サーバが前記少なくとも1つの検証を実行するように要請する検証要請部を含む。
【0020】
前述の課題を解決するための本発明のさらに他の態様によるサーバによって実行される認証用仮想コード検証方法において、認証用仮想コード生成装置から1次認証用仮想コード及び2次認証用仮想コードの内、少なくとも1つを受信するステップと、前記1次認証用仮想コード及び前記2次認証用仮想コードの内、少なくとも1つに対した検証を実行するステップを含み、前記2次認証用仮想コードが複数のコードを含む場合、前記検証実行ステップは、前記複数のコードの内、第1コードと第2コードとに基づいてカードの識別情報である第1UID(user identification)を抽出して前記カードの検証を実行し、前記複数のコードの内、前記第1コード及び第3コードに基づいて、前記認証用仮想コード生成装置の識別情報である第2UIDを抽出して、前記認証用仮想コード生成装置の検証を行う。
【0021】
本発明において、前記2次認証用仮想コードが第2OTP及び前記第2UIDを含む場合、前記検証実行ステップは、前記第2OTP生成時に用いられたシードデータと同じシードデータに基づいて検証用第2OTPを生成し、前記第2次認証用仮想コードに含まれる前記第2OTPと前記検証用第2OTPを比較し、前記第2OTPと前記検証用第2OTPが同一であると前記カード及び前記認証用仮想コード生成装置の検証を完了することができる。
【0022】
本発明において、前記1次認証用仮想コードが受信された場合、前記検証実行ステップは、第一検証アルゴリズムを用いて前記1次認証用仮想コードに基づいてカードの識別情報である第1UID(user identification)を抽出して前記カードの検証を実行できる。
【0023】
これに加えて、本発明を実現するための他の方法、他のシステム、及び前記方法を実行するためのコンピュータプログラムを記録するコンピュータ可読記録媒体をさらに提供することができる。
【発明の効果】
【0024】
本発明に係れば、カードタギング時に認証用仮想コード生成装置がスマートカード装置に時間データを提供することにより、別途のOTP装置なしでNFC方式に基づいて獲得した時間データを用いてユーザ認証に必要な仮想セキュリティコードを生成できる。
【0025】
認証用仮想コード生成装置にスマートカード装置をタギングする際、2つの装置間データが送受信される際にそのデータの消臭を防御するため、スマートカード装置で生成された1次認証用仮想コードを再加工して認証用仮想コード生成装置で2次認証用仮想コードを新たに生成することができる。
【0026】
また、オフライン出入コントロールまたはオンラインログイン状況においては、1次認証用仮想コード検証を通じてユーザ認証を行い、金融決済状況では、1次認証用仮想コードを用いて生成された2次認証用仮想コードの検証を通じてユーザ認証を行うことで、状況によってセキュリティレベルを異なりにすることができる。
【0027】
また、スマートカード装置がオフライン立ち入り禁止状況と金融決済状況のすべてに適用できるため、金融カード(個人カードまたは法人カード)を会社の出入カードにも拡張して活用することができる。
【0028】
本発明の効果は前記の効果に限定されず、言及されていない他の効果は以下の記載から通常の技術者に明確に理解され得る。
【図面の簡単な説明】
【0029】
【
図1】
図1は、本発明に係る認証用仮想コードベースのユーザ認証システムの構成図である。
【
図2】
図2は、本発明に係るスマートカート装置の概略構成図である。
【
図3】
図3は、本発明に係る認証用仮想コード生成装置の概略構成図である。
【
図4】
図4は、本発明に係る認証用仮想コード生成装置によって実行される認証用仮想コード生成方法のフローチャートである。
【
図5】
図5は、本発明に係る時間データを説明するための図である。
【
図6】
図6は、本発明に係る1次認証用仮想コード検証を説明するための図である。
【
図7】
図7は、本発明に係る2次認証用仮想コード検証を説明するための図である。
【
図8】
図8は、本発明に係るスマートカード装置によって実行される認証用仮想コード生成方法のフローチャートである。
【発明を実施するための形態】
【0030】
本発明の利点及び特徴、それとそれらを達成する方法は、添付の図面と共に詳細に後述されている実施形態を参照することによって明らかになる。しかしながら、本発明は、以下に開示される実施形態に限定されるものではなく互いに異なる、様々な形態で実現することができ、単に本実施形態は、本発明の開示が完全するようにし、本発明が属する技術分野の通常の技術者に本発明のカテゴリーを完全に知らせるために提供されるものであり、本発明は請求項のカテゴリーによって定義されるだけである。
【0031】
本明細書で用いられた用語は実施形態を説明するためのものであり、本発明を限定することを意図するものではない。本明細書において、単数形は、文句で特に言及しない限り、複数形も含む。本明細書で用いられる「含む(comprises)」及び/または「含む(comprising)」は、言及された構成要素に加えて、1つ以上の他の構成要素の存在または追加を排除しない。明細書全体にわたって同じ図面番号は同じ構成要素を指し、「及び/または」は、言及された構成要素のそれぞれ及び1つ以上のすべての組み合わせを含む。仮に「第1」、「第2」などが様々な構成要素を叙述するために用いられるが、これらの構成要素はこれらの用語によって限定されないことは勿論である。これらの用語は、但し1つの構成要素を他の構成要素と区別するために用いられるものである。したがって、以下で言及される第1構成要素は、本発明の技術的思想内で第2構成要素であり得ることもあることは勿論である。
【0032】
他の定義がなければ、本明細書で用いられる全ての用語(技術及び科学用語を含む)は、本発明が属する技術分野の通常の技術者に共通的に理解され得る意味で使用され得る。さらに、一般的に用いられる辞書で定義されている用語は、特に明白に定義されていない限り、理想的または過度に解釈されない。
【0033】
説明の前に、本明細書で用いられる用語の意味を簡単に説明する。しかしながら、用語の説明は本明細書の理解を助けるためのものであり、明示的に本発明を限定する事項として記載しない場合に本発明の技術的思想を限定する意味で使用することではないことに注意すべきである
【0034】
本明細書において「文字」は、コードを構成する構成要素として、大文字のアルファベット、小文字のアルファベット、数字及び特殊文字などの全部または一部を含む。
【0035】
本明細書において「コード」とは、文字が羅列された文字列を意味する。
【0036】
本明細書において、「OTP(One Time Password)」は、ユーザ認証のために一時的に生成され、単位時間ごとに変更されるランダムコードとして、文字からなる特定の桁数のコードを含むことができる。
【0037】
本明細書において「認証用仮想コード」とは、認証用仮想コード生成手段で生成されるコードとして、認証用仮想コード検証手段で検証されるコードを意味する。すなわち、「認証用仮想コード」とは、検証を行うことができるように単位カウント毎に一時的に付与された仮想コードを意味する。ここで、認証用仮想コード生成手段は、実施形態によってスマートカード装置になることができ、認証用仮想コード生成装置がされることもできるが、これに限定されない。
【0038】
本明細書において「細部コード」は、認証用仮想コードに含まれる一部のコードを意味する。
【0039】
本明細書において、「単位カウント」は、特定の時間間隔に設定され、時間間隔が経過するにつれて変更されることと定義された単位である。例えば、1カウントは特定の時間間隔(例えば1.5秒)に設定して用いられる。
【0040】
本明細書において「認証用仮想コード生成関数」とは、認証用仮想コードを生成するために用いられる関数を意味する。
【0041】
本明細書において、「ユーザ」は、スマートカード装置を用いてセキュリティを必要とする特定の空間(オフラインまたはオンライン空間)に近づいたり、スマートカード装置を用いて金融決済を行うユーザで有り得るが、これに限定されるものはない。
【0042】
本明細書において「UID(user identification)」は、ユーザを識別するためにユーザごとに重複しないように付与される固有のコード形式の値を意味する。
【0043】
本明細書において「時間データ」とは、現在時点の時間データを意味する。すなわち、認証用仮想コードの生成及び検証に用いられる時間データは、すべて同じ時点の時間データを意味することができる。
【0044】
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。
【0045】
図1は、本発明に係る認証用仮想コードベースのユーザ認証システムの構成図である。
【0046】
図2は、本発明に係るスマートカート装置の概略構成図である。
【0047】
図3は、本発明に係る認証用仮想コード生成装置の概略構成図である。
【0048】
図4は、本発明に係る認証用仮想コード生成装置によって実行される認証用仮想コード生成方法のフローチャートである。
【0049】
図5は、本発明に係る時間データを説明するための図である。
【0050】
図6は、本発明に係る1次認証用仮想コード検証を説明するための図である。
【0051】
図7は、本発明に係る2次認証用仮想コード検証を説明するための図である。
【0052】
図8は、本発明に係るスマートカード装置によって実行される認証用仮想コード生成方法のフローチャートである。
【0053】
図1を参照すると、認証用仮想コードベースのユーザ認証システム(以下、システム)は、管制サーバ100、スマートカード装置10、認証用仮想コード生成装置20、及びサーバ30を含む。ここで、システムは、
図1に示す構成要素よりさらに少ない数の構成要素やさらに多くの構成要素を含むことができる。
【0054】
スマートカード装置10は、ユーザが使用する実物カードを意味する。実施形態に係れば、スマートカード装置10の表面には、カードまたはユーザを識別足りる情報の内、一部のみが表示され得、またはいかなる情報も表示されないことがある。
【0055】
実施形態に従って、スマートカード装置10は、出入コントロール用(access control)のカードで有り得、金融決済用のカード(例えば、クレジットカード、チェックカード、現金カード、法人カードなど)で有り得る。
【0056】
具体的に、スマートカード装置10が出入コントロール用出入カードの場合、スマートカード装置10は、ユーザがオフライン上でセキュリティを必要とする特定のスペースに出入するときに用いられるか、またはオンライン上で特定のウェブサイトまたはアプリ(application)にログインするときに用いられる。スマートカード装置10が金融決済用カードである場合、スマートカード装置10は、ユーザが金融取引を進める際に用いられる。しかしながら、カードの形態、種類及び目的は前述したものに限定されない。スマートカード装置10の詳細な説明は後述する。
【0057】
認証用仮想コード生成装置20は、出入コントロール装置(例えば、ゲートリーダ、ドアロックなど)で有り得、ユーザが使用するユーザ端末で有り得る。このとき、ユーザ端末は、アプリケーションを駆動することができるアプリケーションプロセッサ(application processor, AP)を備えた任意の電子機器である。ユーザ端末は、携帯不能なデスクトップ(desktop)コンピュータまたは携帯可能なモバイル機器(例えば、スマートフォン(smart phone)、タブレットPC、PDA(personal digital assistant))、EDA(enterprise digital assistant)、PMP(portable multimedia player)、PND(personal navigation device)、ウェアラブルデバイス(wearable device)などを含み、これらに限定されない。認証用仮想コード生成装置20の詳細な説明は後述する。
【0058】
サーバ30は、認証用仮想コード検証手段として、認証用仮想コード生成装置20から受信した認証用仮想コードの検証を行う。しかしながら、これに限定されず、実施形態に従って、サーバ30の代わりに認証用仮想コード生成装置20が認証用仮想コードを検証することもできる。
【0059】
このとき、サーバ30は、認証用仮想コード生成装置20と通信するセキュリティ関連サーバまたは金融会社サーバで有り得るが、これに限定されない。また、
図1を参照すると、サーバ30は1つのサーバで構成されたもので示されているが、複数のサーバが互いに連携したシステム形態で構成されることもある。
【0060】
図1に示すように、スマートカード装置10、認証用仮想コード生成装置20及びサーバ30は、通信網を介して互いに各種のデータ、信号又は情報を送受信することができる。
【0061】
ここで、通信網は様々な形態の通信網を利用することができ、例えば、WLAN(WirelessLAN)、ワイファイ(Wi-Fi)、Wibro(Wireless Broadband Internet)、ワイマックス(WiMAX)、HSDPA(High Speed Downlink Packet Access)などの無線通信方式またはイーサネット(Ethernet)、xDSL(ADSL、VDSL)、HFC(Hybrid Fiber Coax)、FTTC(Fiber to The Curb)、FTTH(Fiber To The Home)などの有線通信方式を用いることができる。
【0062】
一方、通信網は、前記に提示された通信方式に限定されるものではなく、前述した通信方式以外にも、その他広く公知られたかまたは今後開発されるあらゆる形態の通信方式を含むことができる。
【0063】
図2を参照すると、スマートカード装置10は、NFCモジュール12及びICモジュール14を含むことができる。ここで、スマートカード装置10は、
図2に示す構成要素よりさらに少ない数の構成要素またはさらに多くの構成要素を含むことができる。
【0064】
NFC(Narrow Frequency Communication)モジュール12(すなわち、NFCチップ)は通信モジュールとして、認証用仮想コード生成装置20と各種データを送受信することができる。ここで、NFCモジュール12はアプレット(applet)の形態で形成することができるが、これに限定されるものではない。NFCモジュール12は、スマートカード装置10が認証用仮想コード生成装置20にタギング(tag)されると、認証用仮想コード生成装置20から時間データを受信することができる。
【0065】
ICモジュール14(すなわち、ICチップ)は、1次認証用の仮想コードを生成することができる。ここで、ICモジュール14はアプレット(applet)の形態で形成することができるが、これに限定されるものではない。
【0066】
ICモジュール14は、受信した時間データを用いて1次認証用仮想コードを生成することができる。具体的に、ICモジュール14は、受信した時間データだけでなく、メモリ(図示せず)に貯蔵されたカードデータ及び認証用仮想コード生成関数を用いて1次認証用仮想コードを生成することができる。
【0067】
ここで、カードデータは、当該スマートカード装置10の發給を申請したユーザのユーザ識別情報とカード識別情報とを含むことができる。ここで、前記カード識別情報は、前記スマートカード装置10の識別情報である第1UID(user identification)、シークレット(secret)、カード番号、シリアル番号を含むことができ、これに限定されず、カード関連情報はすべて含むことができる。ここで、前記ユーザ識別情報は住民登録番号を含むことができ、これに限定されず、ユーザ関連の個人情報を全て含むことができる。
【0068】
ICモジュール14には、ユーザ識別情報及びカード識別情報の他にも、スマートカード装置10を発給して管理する会社(例えば、カード制作会社、金融会社、セキュリティ会社、オンラインウェブ又はアプリサービス会社等)のURL住所などを貯蔵することができる。例えば、スマートカード装置10のICモジュール14に特定の金融会社のURLアドレスが貯蔵されている場合には、認証用仮想コード生成装置20に該当スマートカード装置10がタギングされると、認証用仮想コード生成装置20は、前記URLアドレスを獲得することができる。この時、URLアドレスは、当該金融会社のプログラムまたはアプリケーションのインストール情報または実行情報に関するもので有り得る。
【0069】
すなわち、ICモジュール14には、ユーザ識別情報及びカード識別情報以外にも様々な情報が貯蔵される。このような各種情報は、認証用仮想コード生成装置20にスマートカード装置10がタギングされると、認証用仮想コード生成装置20は、スマートカード装置10から該当情報を受信することになる。
【0070】
スマートカード装置10は、スマートカード装置10の全般的な動作を制御するプロセッサ(図示せず)をさらに含むことができる。プロセッサ(図示せず)は、上で注意深く見た構成要素を介して入力または出力される信号、データ、情報などを処理または貯蔵されたアプリケーションプログラムを駆動することができる。ここでは、プロセッサ(図示せず)がICモジュール14と区別される構成で説明したが、実施形態によってICモジュール14がプロセッサ(図示せず)の役割を果たすことができる。
【0071】
図3を参照すると、認証用仮想コード生成装置20は、通信部22、メモリ24、及びプロセッサ26を含むことができる。ここで、認証用仮想コード生成装置20は、
図3に示す構成要素よりさらに少ない数の構成要素またはさらに多くの構成要素を含むことができる。
【0072】
通信部22は、前記スマートカード装置10が認証用仮想コード生成装置20にタギングされると、前記通信網を介して前記スマートカード装置10に時間データを送信し、前記時間データに基づいて生成された1次認証用仮想コードを前記スマートカード装置10から受信することができる。その以外にも、2装置はタギング時に様々なデータを互いに送受信することができる。
【0073】
メモリ24は、認証用仮想コード生成装置20の様々な機能を支援するデータを貯蔵することができる。メモリ24は、認証用仮想コード生成装置20で駆動される複数の応用プログラム(application programまたはアプリケーション(application))、認証用仮想コード生成装置20の動作のための少なくとも1つのプロセス、データ、命令語を貯蔵できる。そのようなアプリケーションプログラムの内、少なくとも一部は、認証用仮想コード生成装置20の基本的な機能のために存在することができる。
【0074】
プロセッサ26は、前記アプリケーションプログラムに関連した動作以外にも、通常的に、認証用仮想コード生成装置20の全般的な動作を制御することができる。プロセッサ26は、前記の構成要素を介して入力または出力される信号、データ、情報などを処理するか、またはメモリ24に貯蔵されたアプリケーションプログラムを駆動することによって、前記スマートカード装置10またはサーバ30に適した情報または機能を提供または処理することができる。
【0075】
さらに、プロセッサ26は、メモリ24に貯蔵されたアプリケーションプログラムを駆動するために、
図3と共に注意深く見た構成要素の内、少なくとも一部を制御することができる。さらに、プロセッサ26は、前記アプリケーションプログラムを駆動するために、認証用仮想コード生成装置20に含まれる構成要素の内、少なくとも2つ以上を互いに組み合わせて動作させることができる。
【0076】
図3を参照すると、プロセッサ26はコード生成部262及び検証要請部164を含むことができる。ここで、プロセッサ26は、
図3に示す構成要素よりさらに少ない数の構成要素またはさらに多くの構成要素を含むことができる。
【0077】
コード生成部262は、スマートカード装置10で生成された1次認証用仮想コードを用いて2次認証用仮想コードを生成することができる。
【0078】
検証要請部264は、通信部22を介して、前記1次認証用仮想コード及び前記2次認証用仮想コードの内、少なくとも1つをサーバに送信し、前記サーバが前記少なくとも1つの検証を行うように要請することができる。
【0079】
図3に示されていないが、プロセッサ26は、コード生成部262及び検証要請部264他にも、様々な演算動作及び判断動作などを実行する構成要素をさらに含むことができる。
【0080】
以下においては、
図4~
図7を参照して、認証用仮想コード生成装置20によって実行される認証用仮想コードベースのユーザ認証方法について詳細に説明する。
【0081】
図4を参照すると、認証用仮想コード生成装置20の通信部22は、ICチップが内蔵されたカードタギング時に、前記スマートカード装置10に時間データを送信することができる(S110)。
【0082】
スマートカード装置10はそれ自体で時間データを獲得することができないので、タギングによって認証用仮想コード生成装置20から時間データの提供を受けることができる。
【0083】
このとき、前記時間データは、APDU(Application Protocol Data Unit)命令語と組み合わせた形態で有り得る。
図5を参照すると、時間データは、APDU命令語の後に結合された形式でスマートカード装置10に伝達され得る。しかし、結合形態はこれに限定されない。
【0084】
認証用仮想コード生成装置20の通信部22は、前記時間データに基づいて生成された1次認証用仮想コードを前記スマートカード装置10から受信することができる(S120)。
【0085】
すなわち、スマートカード装置10は、時間データを受信し、受信した時間データとカード内に貯蔵されていたカードデータ(例えば、シークレット、第1UID)を共に用いて1次認証用仮想コードを生成し、これを認証用仮想コード生成装置20に伝達することができる。
【0086】
前記1次認証用仮想コードは、第1コード及び第2コードを含むことができる。ここで、第1コード及び第2コードは、前記1次認証用仮想コードの詳細コードであり、1次認証用仮想コードは、第1コード及び第2コード以外にもさらに多くの詳細コードを含むことができる。
【0087】
前記1次認証用仮想コードの第1コードは、前記時間データ及び第1OTPに基づいて生成され得る。まず、スマートカード装置10は、第1認証用仮想コード生成関数を用いてカード内に貯蔵されていたシークレット値と前記時間データをシードデータとして第1OTPを生成することができる。この時、シードデータは、実施形態によって、シークレット値及び時間データ以外の値をさらに用いることもある。
【0088】
その後、スマートカード装置10は、第1認証用仮想コード生成関数を用いて、前記受信した時間データに生成された第1OTPを加算して第1コードを生成することができる。
【0089】
スマートカード装置10は第1認証用仮想コード生成関数を用いて、前記第1コードから前記カードの識別情報である第1UID(useridentification)を除外して前記第2コードを生成することができる。ここで、第1UIDは、スマートカード装置10に貯蔵されたデータとしてスマートカード装置10を識別することができる固有値である。
【0090】
第1コード=時間データ+第1OTP
【0091】
第2コード=第1コード-第1UID
【0092】
スマートカード装置10は、生成された詳細コード(第1コード及び第2コード)を組み合わせて1次認証用仮想コードを生成することができる。一実施形態として、スマートカード装置10は、第1認証用仮想コード生成関数を用いて複数の詳細コードを特定の規則に従って結合することによって、前記1次認証用仮想コードを生成することができる。前記第1認証用仮想コード生成関数は、複数の詳細コードを組み合わせる規則(すなわち、詳細コード結合関数)を含むことができる。
【0093】
複数の詳細コードを組み合わせて1つの認証用仮想コードを生成する方式としては、様々な方式を適用することができる。前記詳細コード結合関数の一例として、スマートカード装置10は、M桁の第1コードとN桁の第2コードとを交互に配置する方式で認証用仮想コードを生成することができる。さらに、別の例として、詳細コード結合関数は、第1コードの後に第2コードを結合する関数であり得る。認証用仮想コードに含まれる詳細コードが増えるにつれて、詳細コード結合関数も多様に生成することができる。
【0094】
このように生成された1次認証用仮想コードは、認証用仮想コード生成装置20に送信される。
【0095】
認証用仮想コード生成装置20のコード生成部262は、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成することができる(S130)。
【0096】
ステップS130の以前に、認証用仮想コード生成装置20のコード生成部262は、前記スマートカード装置10の種類に応じて2次認証用仮想コードを生成するか否かをまず判断することができる。さらに詳細には、コード生成部262は、1次認証用仮想コードと共に受信されたカードデータに基づいて前記判断動作を実行することができる(実施形態に従って、カードデータはタギング時に受信されることもできる)。すなわち、コード生成部262は、前記カードデータに基づいて前記スマートカード装置10が出入コントロール用カードであるか金融決済用カードであるかを判断することができる。そして、前記スマートカード装置10が出入コントロール用カードであることで確認されると、2次認証用仮想コードを生成せず、前記カードデータに基づいて前記スマートカード装置10が金融決済用カードであることで確認されると、2次認証用仮想コードを生成することができる。
【0097】
実施形態に係れば、認証用仮想コード生成装置20の種類に応じて、2次認証用仮想コード生成の有無を決定することができる。具体的には、認証用仮想コード生成装置20が出入コントロール装置である場合、前記判断動作なしに2次認証用仮想コードを生成しないことがある。認証用仮想コード生成装置20がユーザ端末である場合、コード生成部262は、スマートカード装置10の種類に応じて2次認証用仮想コードを生成するか否かを判断することができる。より詳細には、コード生成部262は、1次認証用仮想コードと共に受信されたカードデータに基づいて前記判断動作を実行することができる(実施形態に係れば、カードデータはタギング時に受信されることもできる)。すなわち、コード生成部262は、前記カードデータに基づいてスマートカード装置10が出入コントロール用カードであると確認された場合、2次認証用仮想コードを生成せず、前記カードデータに基づいて前記スマートカード装置10が金融決済用カードであることが確認されると、2次認証用仮想コードを生成することができる。
【0098】
前記では、コード生成部262が前記判定動作を行うものとして説明したが、これに限定されず、プロセッサ260の他の構成要素が前記判断動作を実行することもできる。
【0099】
前記過程に介して2次認証用仮想コードを生成すると判定されると、ステップS130において、コード生成部262は、前記1次認証用仮想コードを用いて2次認証用仮想コードを生成することができる。このとき、2次認証用仮想コードを生成するためには、まずサーバ30で1次認証用仮想コードの検証を行わければならない。サーバ30は、検証を通じて1次認証用仮想コードに含まれる複数の詳細コート(第1コード及び第2コード)を抽出し、これを認証用仮想コード生成装置20に伝達することができる。
【0100】
前記では、2次認証用仮想コード生成のための1次認証用仮想コードの検証をサーバ30で行うものとして説明したが、実施形態によりサーバ30ではない認証用仮想コード生成装置20が該当検証を実行することもある。認証用仮想コードの検証方法の説明は後述する。
【0101】
本明細書において2次認証用仮想コードを生成する方式は、OTP演算を1回実行する方式と2回実行する方式に区分することができる。
【0102】
OTP演算を一回行う方式(第1方式)は、スマートカード装置10で1次認証用仮想コードが生成されるときのみOTP演算が行われ、2次認証用仮想コードのコード長が長くなる。
【0103】
前記第1方式において、コード生成部262は、第2認証用仮想コード生成関数を用いて受信した第1コードにおける前記認証用仮想コード生成装置20の識別情報である第2UIDを除外して第3コードを生成できる。ここで、第2UIDは、認証用仮想コード生成装置20に貯蔵されたデータとして認証用仮想コード生成装置20を識別することができる固有値である。
【0104】
第3コード=第1コード-第2UID
【0105】
その後、コード生成部262は、第2認証用仮想コード生成関数を用いてスマートカード装置10で生成された第1コード、スマートカード装置10で生成された第2コード及び認証用仮想コード生成装置20で生成された第3コードを組み合わせて2次認証用仮想コードを生成することができる。
【0106】
コード生成部262は、生成された複数の詳細コード(第1コード、第2コード及び第3コード)を組み合わせて2次認証用仮想コードを生成することができる。一実施形態として、コード生成部262は、第2認証用仮想コード生成関数を用いて複数の詳細コードを特定の規則に従って結合することによって前記第2次認証用仮想コードを生成することができる。前記第2認証用仮想コード生成関数は、複数の詳細コードを組み合わせる規則(すなわち、詳細コード結合関数)を含むことができる。複数の詳細コードを組み合わせて1つの認証用仮想コードを生成する方式としては、前述した方式を適用することができる。
【0107】
前記第1方式において、1次認証用仮想コードに含まれた第1コード及び第2コードと、2次認証用仮想コードに含まれる第1コード及び第2コードは共にスマートカード装置10で生成されたもので同じコードを意味する。第3コードがスマート認証装置20で新たに生成され、前記第1コード及び第2コードと結合されて2次認証用仮想コードが生成されることである。
【0108】
OTP演算を2回行う方式(第2方式)は、スマートカード装置10で1次認証用仮想コードが生成されるときOTP演算が行われ、その後認証用仮想コード生成装置20で2次認証用仮想コードが生成されるときOTP演算がもう1回実行され、2次認証仮想コードのコード長には変化がない(つまり、1次認証仮想コードの長さと同じ)。
【0109】
前記第2方式において、コード生成部262は、前記1次の認証用仮想コードに基づいて第2OTPを生成し、前記第2OTP及び前記認証用仮想コード生成装置の識別情報である第2UIDに基づいて前記2次認証用仮想コードを生成することができる。ここで、第2UIDは、認証用仮想コード生成装置20に貯蔵されたデータとして認証用仮想コード生成装置20を識別することができる固有値である。
【0110】
コード生成部262は第2認証用仮想コード生成関数を用いて、前記時間データ及び
シークレット値だけでなく、前記第1認証用仮想コードを追加シードデータとしてさらに活用して前記第2OTPを生成することができる。
【0111】
その後、コード生成部262は、第2認証用仮想コード生成関数を用いてスマートカード装置10で生成された第1コードに含まれる前記時間データ(時間データは、2次認証用仮想コード生成要請時点であり得る)に、前記生成された第2OTPを加えて第1コードを生成することができる。コード生成部262は、第2認証用仮想コード生成関数を用いて、前記第1コードにおける前記認証用の仮想コード生成装置20の識別情報である第2UID(user identification)を除外して第2コードを生成することができる。ここで、第2UIDは、認証用仮想コード生成装置20に貯蔵されたデータとして認証用仮想コード生成装置20を識別することができる固有値である。
【0112】
第1コード=時間データ+第2OTP
【0113】
第2コード=第1コード-第2UID
【0114】
ここで、時間データは現在時点の時間データとして、前記1次認証用仮想コードを生成する際に用いられる時間データと前記2次認証用仮想コードを生成する際に用いられる時間データは同じで有り得る。すなわち、第1OTPと第2OTPは同じ時点で生成されるので、同じ現在時間データを利用することができる。
【0115】
コード生成部262は、生成された詳細コード(第1コード及び第2コード)を組み合わせて2次認証用仮想コードを生成することができる。一実施形態で、コード生成部262は、第2認証用仮想コード生成関数を用いて複数の詳細コードを特定の規則に従って結合することによって前記2次認証用仮想コードを生成することができる。前記第2認証用仮想コード生成関数は、複数の詳細コードを組み合わせる規則(すなわち、詳細コード結合関数)を含むことができる。複数の詳細コードを組み合わせて1つの認証用仮想コードを生成する方式としては、前述した方式を適用することができる。
【0116】
前記第2方式において、1次認証用仮想コードに含まれる第1コード及び第2コードと、2次認証用仮想コードに含まれた第1コード及び第2コードはそれぞれスマートカード装置10と認証用仮想コード生成装置20で生成されたものでそれぞれ異なるコードである。すなわち、1次認証用仮想コードに含まれる第1コード及び第2コードは、第1OTP及び第1UIDを用いて生成されたものであり、2次認証用仮想コードに含まれた第1コード及び第2コードは、第2OTP及び第2UIDを用いて生成されたものであるからそれぞれ異なる。
【0117】
前述した第1認証用仮想コード生成関数と第2認証用仮想コード生成関数は、それぞれスマートカード装置10と認証用仮想コード生成装置20に貯蔵されるが、駆動された最初の時点は同じで有り得る。すなわち、ユーザがスマートカード装置10の発給を受けて認証用仮想コード生成装置20に最初のタギングを介してサーバ30に前記スマートカード装置10に対するユーザ登録を完了すると、スマートカード装置10と認証用仮想コード生成装置20のそれぞれに貯蔵された第1認証用仮想コード生成関数と第2認証用仮想コード生成関数が駆動を開始することができる。すなわち、第1認証用仮想コード生成関数と第2認証用仮想コード生成関数は同じで有り得る。
【0118】
このようにユーザ登録が完了すると、サーバには、スマートカード装置10の識別情報である第1UIDと認証用仮想コード生成装置20の識別情報である第2UIDの内、少なくとも1つが貯蔵することができる。すなわち、サーバ30は、ユーザ登録時に検証アルゴリズム内でユーザに割り当てられる領域に、前記第1UID及び前記第2UIDの内、少なくとも1つを貯蔵することができる。実施形態に従って、サーバ30は、第1UIDを1つの領域に貯蔵し、前記第2UIDを前記第1UIDとマッチングさせて貯蔵することができる。実施形態に従って、サーバ30は、1つの領域に前記第2UIDを貯蔵し、第1UIDを前記第2UIDとマッチングさせて貯蔵することができる。実施形態に係れば、サーバ30は、2つの領域のそれぞれに前記第1UID及び前記第2UIDを貯蔵することができる。
【0119】
また、ユーザ登録時に、サーバ30は、前記第1UID及び前記第2UIDだけでなく、前記スマートカード装置10と関連した前記カードデータ及び前記認証用仮想コード生成装置20に関連した端末データを一緒に貯蔵することができる。
【0120】
認証用仮想コード生成装置20の通信部22は、前記1次認証用仮想コード及び前記2次認証用仮想コードの内、少なくとも1つをサーバに送信することができる(S140)。
【0121】
認証用仮想コード生成装置20の検証要請部264は、前記サーバ30が前記少なくとも1つの検証を行うように要請することができる(S150)。
【0122】
実施形態に従って、スマートカード装置10が出入コントロール用の出入カードである場合、すなわち、ユーザがスマートカード装置10を用いてオフライン上でセキュリティを必要とする特定のスペースに出入したり、オンライン上で特定のウェブサイトまたはアプリにログインする場合、サーバ30は、1次認証用仮想コードに対する検証要請を受信することができる。具体的に、スマートカード装置10で生成された1次認証用仮想コードは、自らサーバ30に送信され、ユーザ認証に用いられる。
【0123】
図6を参照すると、認証用仮想コード生成装置20(より詳細には、検証要請部264は、スマートカード装置10で生成された1次認証用仮想コードをサーバ30に送信して検証を要請することができる。サーバ30は、検証アルゴリズムに基づいて1次認証用仮想コードに対する検証を行い、検証結果を認証用仮想コード生成装置20に送信することができる。
【0124】
このとき、認証用仮想コード生成装置20は、1次認証用仮想コードをサーバ30に直接伝達して検証要請を行うこともできるが、ユーザが1次認証用仮想コードを視覚的に確認したりまたはコピーして他のプログラムまたはウェブページに入力またはコピペすることができるようにディスプレイ部(図示せず)に出力することができる。認証用仮想コード生成装置20は、ユーザによって入力またはコピペされた1次認証用仮想コードをサーバ30に送信して検証要請を行うことができる。
【0125】
認証用仮想コード生成装置20は、検証結果に応じてオフライン出入コントロール及びオンラインログイン時にユーザ認証を行うことができる。すなわち、1次認証用仮想コードが正常コードであれば、ユーザが前記セキュリティを必要とする特定のスペースに出入することを許可するか、前記特定のウェブサイトまたはアプリにログインすることを許可することができる。
【0126】
実施形態に従って、スマートカード装置10が金融決済用カードである場合、すなわち、ユーザがスマートカード装置10を用いて金融取引を進行する場合、サーバ30は前記2次認証用仮想コードの検証要請を受信できる。すなわち、スマートカード装置10で生成された1次認証用仮想コードは認証用仮想コード生成装置20に送信されて2次認証用仮想コード生成に用いることができる。
【0127】
図7を参照すると、認証用仮想コード生成装置20(より詳細には、コード生成部262は、スマートカード装置10で生成された1次認証用仮想コードを用いて2次認証用仮想コードを生成できる。認証用仮想コード生成装置20(より詳細には、検証要請部264は、生成された2次認証用仮想コードをサーバ30に送信して検証を要請することができる。サーバ30は、検証アルゴリズムに基づいて2次認証用仮想コードに対する検証を行い、検証結果を認証用仮想コード生成装置20に送信することができる。
【0128】
このとき、認証用仮想コード生成装置20は、2次認証用仮想コード生成のためのシードデータを獲得するために、サーバ30に1次認証用仮想コードの検証要請を行うことができる。サーバ30は、検証アルゴリズムに基づいて1次認証用仮想コードから第1コード、第2コード、時間データ、シークレット値、第1UIDの内、少なくとも1つを抽出して認証用仮想コード生成装置20へ伝達することができる。認証用仮想コード生成装置20は、第1コード、第2コード、時間データ、シークレット値、第1UID、1次認証用仮想コードの内、少なくとも1つをシードデータとして2次認証用仮想コードを生成することができる。前述したように、2次認証用仮想コード生成のための1次認証用仮想コードの検証はサーバ30で行うことができるが、実施形態にしたがって認証用仮想コード生成装置20が直接該当検証を実行することもできる。
【0129】
認証用仮想コード生成装置20は、検証結果に応じて金融決済時にユーザ認証を行うことができる。すなわち、2次認証用仮想コードが正常コードであれば、ユーザに金融取引を進めるようにすることができる。
【0130】
以下においては、認証用仮想コードの検証方法を具体的に説明する。
【0131】
実施形態に従って、サーバ30が1次認証用仮想コードに対する検証要請を受信した場合、第1認証用仮想コード生成関数に対応する検証アルゴリズムを用いて、前記1次認証用仮想コードに基づいて第1UIDが貯蔵された領域を探索して第1UIDを抽出することができる。
【0132】
このとき、前述したように、前記1次認証用仮想コードは複数の詳細コードを含むが、複数の詳細コードは、第1UIDの貯蔵領域探索の開始地点を設定する第1コードと特定の探索方式に応じて、開始点から前記第1UIDの貯蔵領域への探索経路を設定する第2コードで構成され得る。
【0133】
第1コードと第2コードは、認証用仮想コード検証手段を備えるサーバ30内で1次認証用仮想コードを検証するための相関関係を有するが、認証用仮想コード生成手段を備えるスマートカード装置10は、セキュリティを向上させるために第1コードを生成する第1関数と第2コードを生成する第2関数を詳細コード生成関数として含むだけであり、第1コードと第2コードとの相関関係に対するデータを含まないことかある。
【0134】
さらに、一実施形態として、1次認証用仮想コードが第1コードと第2コードの特定の規則に従って組み合わせて生成される場合、第1コードと第2コードは検証アルゴリズム内の実際の値(第1UID)の貯蔵領域を探索するためのそれぞれの役割を実行することができる。例えば、第1コードは貯蔵位置探索の開始地点を設定し、第2コードは特定の探索方式に従って前記開始地点から前記第1UIDの貯蔵領域への探索経路を設定する。したがって、以後、スマートカード装置10で単位カウント毎に正常に生成された認証用仮想コードが提供されると、サーバ30は、第1コードに対応する開始地点から第2コードに対応する探索経路に従って移動した地点を第1UIDが貯蔵された領域と判断する。
【0135】
具体的に、サーバ30は、検証アルゴリズムを用いて1次認証用仮想コードに含まれる複数の詳細コードを抽出することができる。前記1次認証用仮想コードは、複数の詳細コードを特定の規則に従って結合して生成されるものである。サーバ30は、1次認証用仮想コード生成時に用いられる詳細コード結合関数と同じ関数を適用して、1次認証用仮想コードから複数の詳細コードを抽出することができる。例えば、2つの詳細コード(すなわち、第1コード及び第2コード)が結合された1次認証用仮想コードが生成された場合、サーバ30は、1次認証用仮想コードの文字配列で詳細コード結合関数を適用して第1コードと第2コードを分離することができる。このとき、詳細コード間には相関関係を含むことができる。
【0136】
1次認証用仮想コードが第1コード及び第2コードを含む場合、詳細コード間に相関関係を有する一実施形態で、サーバ30は第1コードに対応する探索の開始地点を決定し、前記探索開始地点から第2コードに対応する探索経路に従って移動した地点に対応する値を第1UIDとみなすことができる。
【0137】
さらに、別の実施形態として、スマートカード装置10が単位カウントごとに新しい1次認証用仮想コードを提供することにより、サーバ30は、各カウントごとに変更される第1コード及び第2コードに基づいて開始地点と探索経路を設定して第1UIDを探索することができる。
【0138】
さらに、一実施形態として、サーバ30は、相関関係を有する複数の詳細コードを用いて第1UIDを見つけるための検証アルゴリズムを含むことができる。検証アルゴリズムは、1次認証用仮想コードに含まれる各々の細部コード適用時に第1UID探索が可能するようにするアルゴリズムである。例えば、1次認証用仮想コードから第1UIDの探索の開始地点を決定する第1コードと、開始地点からの貯蔵領域の方向を提示する第2コードとを含む場合、検証アルゴリズムは第1コードに対応する地点で第2コードに対応する方向を指示するときに、その位置に第1UIDが配置されるように調整するアルゴリズムである。検証アルゴリズムを用いることによって、サーバ30は、1次認証用仮想コードに含まれる第1コードと第2コードが変更されても第1UIDを見つけることができる。
【0139】
さらに、一実施形態として、前記1次認証用仮想コードが時間データに第1OTPを加えた第1コードと、前記第1コードから第1UIDを除外した第2コードを組み合わせて生成した場合、サーバ30は、前記第1コード値から前記第2コード値を減算して実際の値(すなわち、第1UID)を抽出することができる。
【0140】
さらに、一実施形態として、サーバ30は、貯蔵領域を検索して抽出された第1UIDと前記第1コード値から前記第2コード値を減算して抽出された第1UIDを比較し、2つの値が同じであれば、前記1次認証用仮想コードが正常なコードであると判断することができる。しかし、このような比較過程がなくても、サーバ30は、それぞれの値のみでも該当1次認証用仮想コードが正常なコードであるか否かを判断することができる(例えば、抽出された値がサーバ30のDB内に貯蔵された情報と一致するかどうかによって判断)。
【0141】
実施形態にしたがって、サーバ30が2次認証用仮想コードの検証要請を受信した場合、第2認証用仮想コード生成関数に対応する検証アルゴリズムを用いて前記2次認証用仮想コードに基づく第1UIDが貯蔵された領域と第2UIDが貯蔵された領域の内、少なくとも1つを検索して、第1UID及び第2UIDの内、少なくとも1つを抽出することができる。
【0142】
前記第1方式において、前記2次認証用仮想コードは、前述したように、第1コード、第2コード及び第3コードを組み合わせて生成される。サーバ30は、第2認証用仮想コード生成関数に対応する検証アルゴリズムを用いて、第2認証用仮想コードに基づいて第1UIDが貯蔵された領域を探索して第1UIDを抽出し、第2UIDが貯蔵された領域を探索して第2UIDを抽出することができる。
【0143】
サーバ30は、検証アルゴリズムを用いて2次認証用仮想コードに含まれた複数の詳細コードを抽出することができる。前記2次認証用仮想コードは、特定の規則に従って複数の詳細コードを組み合わせて生成されるものである。サーバ30は、2次認証用仮想コード生成時に用いられた詳細コード結合関数と同じ関数を適用して、2次認証用仮想コードから複数の詳細コードを抽出することができる。例えば、3つの詳細コード(すなわち、第1コード、第2コード及び第3コード)が結合された2次認証用仮想コードが生成された場合、サーバ30は、2次認証用仮想コードの文字配列で詳細コード結合関数を適用して、第1コード、第2コード、及び第3コードを分離することができる。このとき、詳細コード間には相関関係を含めることができる。
【0144】
2次認証用仮想コード第1コード、第2コード、及び第3コードを含む場合、詳細コード間に相関関係を有する一実施形態として、サーバ30は、第1コードに対応する検索の開始地点を決定し、前記検索開始点から第2コードに対応する探索経路に従って移動した点に対応する値を第1UIDとみなすことができる。そして、第1コードに対応する探索の開始地点を決定し、前記開始地点から第3コードに対応する探索経路に従って移動した地点に対応する値を第2UIDとみなすことができる。
【0145】
また、別の実施形態として、認証用仮想コード生成装置20が単位カウント毎に新しい2次認証用仮想コードを提供することにより、サーバ30は各カウント毎に変更される第1コード、第2コードそして、第3コードに基づいて開始地点と探索経路を設定して第1UID及び第2UIDを探索することができる。
【0146】
さらに、一実施形態として、サーバ30は、相関関係を有する複数の詳細コードを用いて第1UID及び第2UIDを見つけるための検証アルゴリズムを含むことができる。検証アルゴリズムは、2次認証用仮想コードに含まれる各々の細部コード適用時に第1UID探索及び第2UID探索が可能するためにするアルゴリズムである。例えば、2次認証用仮想コードから第1UID及び第2UIDの探索の開始地点を決定する第1コードと、開始地点からの第1UID貯蔵領域の方向を提示する第2コードと
開始地点からの第2UID貯蔵領域の方向を提示する第3コードを含む場合、検証アルゴリズムは、第1コードに対応する地点で第2コードに対応する方向を示すときにその位置に第1UIDが配置されるように調整し、第1コードに対応する地点で第3コードに対応する方向を指示するときに、該当位置に第2UIDが配置されるように調整するアルゴリズムである。検証アルゴリズムを用いることによって、サーバ30は、2次認証用仮想コードに含まれた第1コード、第2コード及び第3コードが変更されても、第1UID及び第2UIDを見つけることができる。
【0147】
また、一実施形態として、前記2次認証用仮想コードが前記時間データに第1OTPを加えた第1コードと、前記第1コードから第1UIDを除外した第2コードと、前記第1コードから第2UIDを除外した第3コードが結合して生成された場合、サーバ30は、前記第1コード値から前記第2コード値を減算して実際の値(すなわち、第1UID)を抽出し、前記第1コード値から前記第3コード値を減算して実際の値(すなわち、第2UID)を抽出することができる。
【0148】
すなわち、前記サーバ30は、前記第1コード及び第2コードに基づいて前記第1UIDを抽出して前記スマートカード装置10の検証を行い、前記第1コード及び前記第3コードに基づいて前記第2UIDを抽出して前記認証用仮想コード生成装置20の検証を行うことができる。
【0149】
さらに、一実施形態として、サーバ30は、前記貯蔵領域を検索して抽出された第1UIDと前記第1コード値から前記第2コード値を減算して抽出された第1UIDとを比較し、2つの値が同じであると、前記2次認証用仮想コードに対する1次検証を完了し(すなわち、前記スマートカード装置に対する検証)、前記貯蔵領域を探索して抽出された第2UIDと、前記第1コード値から前記第3コード値を減算して抽出された第2UIDを比較し、2つの値が等しい場合、前記2次認証用仮想コードに対する2次検証を完了し(すなわち、前記認証用仮想コード生成装置に対する検証)、前記2次認証用仮想コードが正常なコードであると判断できる。しかしながら、このような比較過程がなくても、サーバ30は、それぞれの値のみでも該当2次認証用仮想コードが正常なコードであるか否かを判断することができる(例えば、抽出された値がサーバ30のDB内に貯蔵された情報と一致するかどうかによって判断)。
【0150】
前記第2方式において、前記2次認証用仮想コードは、前述したように、1次認証用仮想コードに基づいて生成された第2OTPと、前記第2UIDに基づいて生成された第1コード及び第2コードを組み合わせて生成される。サーバ30は、受信した前記2次認証用仮想コードに含まれた前記第2OTPと検証用第2OTPの比較を通じて、前記2次認証用仮想コードの検証を行うことができる。ここで、前記検証用第2OTPは、前記第2OTP生成時に用いられたシードデータと同じシードデータに基づいて前記サーバ30によって生成され得る。
【0151】
具体的には、サーバ30は、前記2次認証用仮想コードから前記第1コードと第2コードを分離し、分離された第1コードと第2コードに基づいて前記第2UIDを検索して一緒に貯蔵されていたカードデータ(例えば、シークレット値)を確認することができる。ここで、詳細コードを分離し、詳細コードを用いて実際の値を検索する方法は前述した通りである。
【0152】
その後、サーバ30は、検索された第2UIDにマッチングさせている第1UIDを検索することができる。
【0153】
サーバ30は、このように第2UIDを通じて抽出された値、すなわちシークレット値及び第1UIDと、現在時間データを用いて1次認証用仮想コードを生成し、生成された1次認証用仮想コードと、前記シークレット値及び時間データをシードデータとして検証用の第2OTPを生成することができる。
【0154】
このように生成された検証用第2OTPと前記第2認証用仮想コードに含まれた第2OTPとを比較したとき、2つの値が等しい場合、サーバ30は、前記第2認証用仮想コードが正常なコードであると判断することができる。すなわち、前記第2OTPと前記検証用第2OTPが同一であれば、シードデータとして用いられた値(1次認証用仮想コードと前記シークレット値及び時間データ)が全て同一であり、かつ1次認証用仮想コードが等しい場合、該当値で生成される2次認証用仮想コードも同じであるので、前記スマートカード装置10及び前記認証用仮想コード生成装置20が正常であることで検証することができる。
【0155】
以下においては、
図8を参照して、スマートカード装置10によって実行される認証用仮想コードベースのユーザ認証方法について詳細に説明する。
【0156】
図8を参照すると、スマートカード装置10は、カードタギングを介して認証用仮想コード生成装置から時間データを受信し(S210)、前記受信した時間データに基づいて1次認証用仮想コードを生成する。(S220)。
【0157】
スマートカード装置10が1次認証用仮想コードを生成すること、ユーザ認証用装置20が2次認証用仮想コードを生成することと、サーバ30が1次認証用仮想コード及び2次認証用仮想コードの内の少なくとも1つに対して検証を行うことは、前記
図1~
図7を参照して説明したのと重複するので、詳細な説明は省略する。
【0158】
一方、本発明のスマートカード装置10は、金融決済用及び出入コントロール用の機能を共に行うことができる。すなわち、スマートカード装置10が会社の法人カードであるか、職員の個人カードである場合、各ユーザは当該カードを用いて会社の出入カードとして用いられる。
【0159】
図4及び
図8に示すステップは順次実行されるものとして記載しているが、これは本実施形態の技術思想を例示的に説明したことに過ぎず、本実施形態が属する技術分野で通常の知識を有する者であれば本実施形態の本質的な特性から逸脱しない範囲で、
図4及び
図8に記載されたステップの順序を変更して実行するか、又は1つ以上のステップを並列に実行することで様々に修正及び変形して適用可能であるので、
図4及び
図8に記載されたステップは時系列的な順序に限定されない。
【0160】
以上で前述した本発明は、前記認証用仮想コード生成方法を実行するためのコンピュータプログラムを記録するコンピュータ可読記録媒体をさらに提供することができる。
【0161】
前記前述のプログラムは、前記コンピュータがプログラムを読み込み、プログラムとして実現された方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータのデバイスインタフェースを介して読み取ることができるC、C++、JAVA(登録商標)、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。そのようなコードは、前記方法を実行するために必要な機能を定義した。
関数などに関連する機能コード(Functional Code)を含むことができ、前記機能をコンピュータのプロセッサが所定の手順で実行するために必要な実行手順関連制御コードを含むことができる。さらに、そのようなコードは、前記機能を前記コンピュータのプロセッサが実行するために必要な追加情報、またはメディアがコンピュータの内部または外部メモリのどの位置する(アドレス番地)で参照されるべきかについてのメモリ参照関連コードをさらに含み得る。また、前記コンピュータのプロセッサが前記機能を実行させるためにリモート(Remote)にあるいずれの他のコンピュータやサーバ等と通信が必要な場合、コードは前記コンピュータの通信モジュールを用いて遠隔にあるいずれの他のコンピュータやサーバ等とどのようにして通信すべきか、通信時どのような情報やメディアを送受信すべきかなどの通信関連コードをさらに含むことができる。
【0162】
本発明の実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェアで直接実現されるか、ハードウェアによって実行されるソフトウェアモジュールで実現されるか、またはそれらの組み合わせによって実現することができる。ソフトウェアモジュールは、RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリ(Flash Memory)、ハードディスク、リムーバブルディスク、CD-ROM、または本発明が属する技術分野でよく知られた任意の形態のコンピュータ可読記録媒体に常駐することもできる。
【0163】
以上、添付図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野の通常の技術者は、本発明がその技術的思想や必須の特徴を変更することなく他の具体的な形態で実施することができるということが理解できる。したがって、以上で記述した実施形態はあらゆる点で例示的なものであり、限定的なものではないと理解すべきである。