(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
以下、添付図面を参照しながら本開示の例示的な実装形態をより詳細に説明する。添付図面は、本開示の例示的な実装形態を示すが、本開示は、様々な形態において実装され得、本明細書で説明する実装形態によって限定されてはならないことが理解されるべきである。代わりに、これらの実装形態は、当業者に本開示および本開示の範囲をより完全に理解させるために提供される。
【0019】
2次元バーコード内の電子資格証明書情報が容易に漏洩する可能性があるという既存の技術的問題を軽減するために、本発明の実装形態は、2次元バーコードを処理する方法を提供する。方法は、サーバ、クライアントソフトウェア、および資格証明書検証エンドデバイスの協働を通して実施される。資格証明書検証エンドデバイスは、生成された電子資格証明書をサーバに送信するために、少なくとも、データを生成および送信することができ、クライアントソフトウェア内の2次元バーコードから電子資格証明書を取得し、電子資格証明書が正しいかどうかを検証するために、データを取得しデータを検証することができる。サーバは、資格証明書検証エンドデバイスによって送信される電子資格証明書を受信し、データ送信を実施するために電子資格証明書をクライアントソフトウェアに送信するために、少なくとも、データを送信および受信することができる。クライアントソフトウェアは、サーバによって送信される電子資格証明書を受信するために、少なくとも、サーバとデータを交換することができ、電子資格証明書情報に基づいて2次元バーコードなどを生成するために、画像を生成することができる。
【0020】
実装形態における方法について説明する前に、理解の容易さのために、
図1に示すように、本発明の一実装形態による、クライアントソフトウェアと、サーバと、資格証明書検証エンドデバイスとの間の対話を示すフレームワーク図が最初に提供される。本発明の実装形態において、(身分証明書番号、携帯電話番号、または電子メールアドレスのような)ユーザ識別子に基づいて電子資格証明書を生成した後、資格証明書検証エンドデバイスは、電子資格証明書をサーバに送信し、サーバは、資格証明書検証エンドデバイスによって生成される電子資格証明書に対するアクセス権限を有する。クライアントソフトウェアから電子資格証明書取得要求を受信した後、サーバは、資格証明書検証エンドデバイスが検証するための電子資格証明書に基づく2次元バーコードをクライアントソフトウェアが生成するように、電子資格証明書をクライアントソフトウェアに送信する。
【0021】
本発明の本実装形態において、電子資格証明書が2次元バーコード内に担持される例を使用することによって説明がなされることに留意することは、価値がある。しかしながら、理論的には、電子資格証明書は、他の媒体、例えば、SE機能またはHCE機能のようなNFC機能を有するクライアントソフトウェアにも依存し得る。本発明の実装形態において、電子資格証明書ユーザおよび資格証明書検証エンドデバイスにとって、2次元バーコードは、使用されるハードウェアデバイスに対する要求が比較的低く、ハードウェアデバイスが比較的一般的であるので、電子資格証明書が2次元バーコード内に担持される例を使用することによって説明がなされる。しかしながら、そのような説明方法が、電子資格証明書が2次元バーコードを使用することによってのみ担持され得るという制限を課すことを意図していないことは、明らかであるべきである。
【0022】
以下は、最初に、
図1に示す概略図に基づいてサーバ側で実施される2次元バーコードを処理する方法を提供する。
図2に示すように、方法は、以下のステップを含む。
【0023】
101.サーバがクライアントソフトウェアによって送信された電子資格証明書取得要求を受信する。
【0024】
サーバへのログインが成功した後、クライアントソフトウェアは、電子資格証明書取得要求をサーバに送信し、ここで、電子資格証明書取得要求は、サーバがユーザ識別子に基づいて対応する電子資格証明書情報を探索するように、ユーザ識別子を含む。具体的な実装形態プロセスにおいて、電子資格証明書は、限定はしないが、以下の内容、すなわち、航空券、バスチケット、列車チケット、コンサートチケット、銀行カード、アクセス制御カード、パーク入場チケット、身分証明書、マーチャントクーポン、会員証、運転免許証、運転免許証アクセス制御カード、またはバスカードに対応する電子資格証明書を含むことができる。
【0025】
具体的な実装形態プロセスにおいて、クライアントソフトウェアは、電子デバイスにインストールされたアプリケーション(APP)またはウェブサイトである。クライアントソフトウェアがサーバと対話する前に、クライアントソフトウェアは、ユーザ識別子に基づいてサーバに登録することができ、ユーザ識別子は、限定はしないが、ユーザ身分証明書、身分証明書と一致する実名、携帯電話番号、電子メールアドレス、アカウント名などを含むことができる。登録プロセスにおいて、サーバにログインするためのログインパスワードが設定され得、登録およびログインの成功の後、クライアントソフトウェアは、サーバに接続し、サーバと通信することができる。
【0026】
102.サーバは、ユーザ識別子に対応する電子資格証明書を取得し、サーバ署名情報を取得するために、サーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名する。
【0027】
本明細書の本実装形態において説明されるサーバは、電子資格証明書を生成しない。クライアントソフトウェアによって送信される電子資格証明書取得要求を受信した後、サーバは、電子資格証明書を生成する資格証明書検証エンドデバイスからユーザ識別子に対応する電子資格証明書を取得する。サーバは、電子資格証明書使用者(クライアントソフトウェア)と電子資格証明書検証エンドデバイス(資格証明書検証エンドデバイス)との間のブリッジとして機能し、資格証明書検証エンドデバイスによって生成される電子資格証明書を電子資格証明書使用者に転送する役割を果たす。本発明の本実装形態において説明されるサーバが国内規制要件を満たすことを前提として、サーバが資格証明書検証エンドデバイスにアクセスするために資格証明書検証エンドデバイスによって許可される必要があることに留意することは、価値がある。
【0028】
電子資格証明書がサーバおよびクライアントソフトウェアの伝送プロセスにおいて改ざんされるのを防ぐために、サーバがクライアントソフトウェアによって送信される電子資格証明書取得要求に応答する前に、サーバは、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによってクライアントソフトウェアのユーザ公開鍵に署名する必要がある。本発明の本実装形態において、クライアントソフトウェアのユーザ公開鍵は、クライアントソフトウェアおよびサーバが互いの身元を検証し、識別情報に対してセキュリティ認証を実行し、データ伝送プロセスにおける情報が改ざんされていないことを保証することができるように署名される。サーバは、元の電子資格証明書の完全性が判定され得るように、サーバ秘密鍵を使用することによって電子資格証明書に署名する。
【0029】
加えて、ユーザ公開鍵および電子資格証明書に署名するとき、サーバは、クライアントソフトウェアによって送信される電子資格証明書がサーバによって送信され、クライアントソフトウェアによって検証され、認定されて信頼できるものであることを保証するために、クライアントソフトウェアがその後に2次元バーコードを生成するときに、生成される2次元バーコードの属性情報として、サーバが電子資格証明書およびユーザ公開鍵に署名するときに取得されるサーバ署名情報をさらに使用することができる。そのため、電子資格証明書は、偽造または拒絶され得ない。
【0030】
103.サーバは、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。
【0031】
そのため、クライアントソフトウェアは、署名された電子資格証明書を検証し、資格証明書検証エンドデバイスが2次元バーコード内に含まれる電子資格証明書を検証するように、電子資格証明書に基づいて2次元バーコードを生成する。資格証明書検証エンドデバイスは、ユーザ識別子に基づいて電子資格証明書を生成するように構成される。
【0032】
本発明の本実装形態において提供される2次元バーコードを処理する方法によれば、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信した後、サーバは、サーバ署名情報を取得するために、サーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名し、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信し、サーバ署名情報を検証し、署名情報に対する検証が成功した後、電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて、2次元バーコードを生成する。2次元バーコードを取得した後、資格証明書検証エンドデバイスは、使用プロセスにおける電子資格証明書のセキュリティを保証するために、電子資格証明書が伝送プロセスにおいて改ざんされているかどうかを判定するために、2次元バーコード内のサーバ署名情報、クライアントソフトウェア署名情報、および所定のセキュリティ情報を検証することができる。
【0033】
図1に示す方法のさらなる説明として、クライアントソフトウェアのユーザ識別子の有効性を保証し、クライアントソフトウェアのユーザ識別子がコンテンツ伝送プロセスにおいて改ざんされていないことを保証するために、ステップ102において、電子資格証明書およびクライアントソフトウェアのユーザ公開鍵は、以下の方法などにおいてサーバ秘密鍵を使用することによって署名され得る。例えば、以下の通りである。
【0034】
方法1:サーバは、電子資格証明書にユーザ署名鍵を割り当て、サーバ秘密鍵を使用することによって電子資格証明書および第1のユーザ公開鍵に署名し、ここで、割り当てられたユーザ署名鍵は、第1のユーザ公開鍵を含む。
【0035】
サーバがクライアントソフトウェアによって送信される電子資格証明書取得要求を受信したとき、クライアントソフトウェアのユーザ公開鍵が電子資格証明書取得要求から取得されない場合、サーバは、クライアントソフトウェアのユーザ識別子を認証するため、したがって、電子資格証明書が改ざんされていないことを保証するために、電子資格証明書に1対のユーザ署名鍵を一時的に割り当て、ここで、割り当てられたユーザ署名鍵は、1つの第1のユーザ公開鍵と1つの第1のユーザ秘密鍵とを含み、そしてサーバは、サーバ署名情報が受信された後、サーバ署名情報に対するセキュリティ認証を実行するために、サーバ秘密鍵を使用することによって第1のユーザ秘密鍵に署名する。
【0036】
ユーザ署名鍵は、サーバによって一時的に電子資格証明書に割り当てられるので、ユーザ署名鍵がクライアントソフトウェアによって取得されない場合、サーバ内のサーバ署名情報は、検証され得ない。前述の問題を軽減するために、サーバが方法1を使用することによって電子資格証明書およびクライアントソフトウェアの第1のユーザ公開鍵に署名した場合、サーバがサーバ署名情報および電子資格証明書をクライアントソフトウェアに送信するとき、サーバは、クライアントソフトウェアがユーザ署名鍵に基づいてサーバ署名情報を検証することができるように、電子資格証明書に割り当てられたユーザ署名鍵を同期してクライアントソフトウェアに送信する必要がある。
【0037】
具体的な実装形態プロセスにおいて、サーバによって一時的に電子資格証明書に割り当てられたユーザ署名鍵を受信し、ユーザ署名鍵に基づいてサーバ署名情報を検証した後、クライアントソフトウェアは、ユーザ署名鍵を直接破棄することができ、または、クライアントソフトウェアの共通ユーザ鍵およびユーザ公開鍵としてユーザ署名鍵を使用することができる。実装形態は、本発明のこの実装形態に限定されない。
【0038】
方法2:サーバは、クライアントソフトウェアによって送信される第2のユーザ公開鍵を取得し、サーバ秘密鍵を使用することによって第2のユーザ公開鍵および電子資格証明書に署名する。
【0039】
この実装形態において、クライアントソフトウェアの身元を識別するために、電子資格証明書取得要求をサーバに送信するとき、クライアントソフトウェアは、サーバがクライアントソフトウェアに対する身元認証を実行し、サーバがサーバ秘密鍵を使用することによってクライアントソフトウェアの第2のユーザ公開鍵および電子資格証明書に署名するように、クライアントソフトウェアの第2のユーザ公開鍵を同期してサーバに送信する。署名された第2のユーザ公開鍵および署名された電子資格証明書を受信した後、クライアントソフトウェアは、電子資格証明書が改ざんされていないことを保証するために、成功した署名検証の後にのみ電子資格証明書情報を取得することができる。
【0040】
本発明の本実装形態において説明される第1のユーザ公開鍵および第2のユーザ公開鍵は、クライアントソフトウェアの異なるユーザ公開鍵を区別するために使用されることに留意することは、価値がある。「第1」および「第2」は、他の意味を持たず、ユーザ公開鍵の数、優先順位などを限定することを意図していない。クライアントソフトウェアにおけるユーザ公開鍵を命名する方法は、本発明の本実装形態において限定されない。
【0041】
説明の容易さのために、本発明の実装形態における以降の説明において、ユーザ公開鍵およびユーザ秘密鍵が非対称鍵である例を使用することによって説明がなされる。しかしながら、ユーザ公開鍵およびユーザ秘密鍵は、非対称鍵に限定されず、対称鍵であり得ることは、明らかであるべきである。実装形態は、本発明の本実装形態において限定されない。
【0042】
サーバの署名プロセスの理解を容易にするために、以下は、説明のためにサーバがユーザ公開鍵および電子資格証明書に署名する例を使用する。具体的なプロセスは、以下を含む。ユーザ公開鍵および電子資格証明書を取得した後、サーバは、ハッシュ値を取得するためにハッシュアルゴリズムを使用することによってユーザ公開鍵および電子資格証明書に対するハッシュ演算を実行し、次いで、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによってハッシュ値に署名することができる。署名プロセスにおいて使用される(ハッシュ演算のような)アルゴリズムは、本発明の本実装形態において限定されない。
【0043】
電子資格証明書およびユーザ公開鍵に署名した後、サーバは、クライアントソフトウェアがサーバ署名情報を検証し、電子資格証明書がデータ伝送プロセスにおいて悪意のあるユーザによって改ざんされていないことを保証するように、電子資格証明書、署名されたユーザ公開鍵、および署名された電子資格証明書をクライアントソフトウェアに送信する。加えて、サーバはさらに、クライアントソフトウェアおよび資格証明書検証エンドデバイスがサーバによってブロードキャストされた公開鍵を受信し、署名情報を検証するためにサーバ公開鍵を使用するように、サーバが署名情報を取得するときに使用されるサーバ秘密鍵に対応する公開鍵をブロードキャストする必要がある。
【0044】
さらに、本発明の本実装形態において説明されるサーバは、クライアントソフトウェアと資格証明書情報検証パーティとを運ぶブリッジとして機能する。サーバは、ユーザの正当性を認証する責任があり、加えて、サーバは、電子資格証明書を使用することの正当性をさらに検証することができる。具体的な使用プロセスにおいて、電子資格証明書は、異なるサービスタイプに対応し、異なるサービスタイプは、異なるサービス仕様を使用することによって制限される。例えば、電子資格証明書が航空券である場合、航空券サービスは、飛行機の出発時間を含む(この用途シナリオは、飛行機が遅延なしで時間通りに離陸するシナリオでしかあり得ない)。代替的には、電子資格証明書がコンサートチケットであるとき、チケットサービスは、コンサートの開始時間、入場時間なども含む。したがって、本発明の本実装形態において、ユーザ識別子に基づいて対応する電子資格証明書を取得する前に、サーバは、電子資格証明書取得要求を構文解析し、電子資格証明書取得要求内に含まれるサービス有効時間を取得し、サービス有効時間がサービス仕様に準拠しているかどうかを検証する必要がある。サービス有効時間がサービス仕様に準拠しているとき、サーバは、ユーザ識別子に対応する電子資格証明書を取得する。サービス有効時間がサービス仕様に準拠していないとき、サーバは、対応する電子資格証明書が利用できないことを示すプロンプト情報をクライアントソフトウェアに返す。
【0045】
よりよい理解のために、以下は、例を用いてサービス有効時間およびサービス仕様を説明する。例えば、電子資格証明書がバスチケットであり、資格証明書検証エンドデバイスがバスチケットを事前販売するための時間が7日であり、現在の日付が2016年11月1日であると仮定する。ユーザは、2016年11月1日にクライアントソフトウェアを使用することによって電子資格証明書取得要求をサーバに送信し、要求内に含まれるサービス有効時間は、2016年11月20日までであり、資格証明書検証エンドデバイスによって生成される電子資格証明書の最大有効時間は、2016年11月8日までである。したがって、サーバは、サービス有効時間がサービス仕様に準拠していないと判定することができる。前述の説明は、単なる例である。本発明の本実装形態は、電子資格証明書のサービスタイプ、サービス有効時間、サービス仕様などに制限を課さない。
【0046】
さらに、ステップ102において、ユーザ識別子に対応する電子資格証明書は、以下の方法において取得され得るが、それらの方法に限定されない。例えば、以下の通りである。
【0047】
方法1:資格証明書検証エンドデバイスがユーザ識別子に基づいて電子資格証明書を生成した後、資格証明書検証エンドデバイスによって同期された電子資格証明書が受信される。
【0048】
本実装形態において、電子資格証明書を生成した後、資格証明書検証エンドデバイスは、生成された電子資格証明書をサーバに能動的に送信する。具体的な実装形態プロセスにおいて、複数の電子資格証明書の管理を容易にするために、サーバは、所定のリストをローカルに生成することができ、ここで、所定のリストは、ユーザ識別子と電子資格証明書との間のマッピング関係を記録するために使用される。資格証明書検証エンドデバイスによって同期された電子資格証明書を受信した後、サーバは、電子資格証明書とユーザ識別子との間の新たに受信されたマッピング関係を所定のリスト内に記録する。電子資格証明書をクライアントソフトウェアに送信した後、サーバは、サーバによって占有されるリソースを低減するために、うまく送信された電子資格証明書を所定のリストから削除することができる。
【0049】
方法2:電子資格証明書を取得するために、ユーザ識別子に基づいて、電子資格証明書を取得するための要求情報が資格証明書検証エンドデバイスに送信される。
【0050】
この実装形態において、サーバは、転送するために使用される。サーバは、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信したときにのみ、電子資格証明書取得要求内のユーザ識別子に基づいて資格証明書検証エンドデバイスからの電子資格証明書を要求し、次いで、取得された電子資格証明書をクライアントソフトウェアに転送する。サーバによって電子資格証明書を取得する方法は、本発明の本実装形態において限定されない。
【0051】
さらに、前述の方法のさらなる説明および拡張として、本発明の一実装形態は、2次元バーコードを処理する方法をさらに提供する。この方法において、説明の容易さのために、主に、クライアントソフトウェアがアリペイであり、電子資格証明書が電子コンサートチケットである例を使用することによって説明がなされる。そのような説明方法が、本発明の本実装形態において説明するクライアントソフトウェアがアリペイのみであり得るという制限を課すことを意図していないことは、明らかであるべきである。
図3に示すように、方法は、以下のステップを含む。
【0052】
201.サーバがアリペイによって送信された電子コンサートチケット取得要求を受信し、ここで、電子コンサートチケット取得要求は、携帯電話番号とサービス有効時間とを含む。
【0053】
実際には、サービス有効時間は、電子コンサートチケットの予約時間であり得、または、電子コンサートチケットの開始時間であり得、または、電子コンサートチケットとは無関係の任意の時間であり得る。サービス有効時間は、本発明の本実装形態において限定されない。
【0054】
202a.サーバは、電子コンサートチケット取得要求を構文解析し、電子コンサートチケット取得要求内に含まれるサービス有効時間を取得する。
【0055】
例えば、要求内のサービス有効時間は、2016年9月20日の16:00の開始時間であり、現在の日付は、2016年9月1日である。
【0056】
203a.サービス有効時間がサービス仕様に準拠しているかどうかを検証する。
【0057】
サービス有効時間がサービス仕様に準拠している場合、ステップ204が実行される。サービス有効時間がサービス仕様に準拠していない場合、ステップ205が実行される。
【0058】
本発明の本実装形態において、電子コンサートチケットは、以下のシナリオに対して取得される。コンサートのための紙のチケットが紛失または破損されたとき、コンサートは、紙のコンサートチケットを後登録することなく、電子コンサートチケットを検証することによって入場され得る。それは、チケットを後登録する面倒な処理を低減する。この例において、サービス仕様が、電子コンサートチケットがコンサートの開始前の30日以内に取得され得ること、または、電子コンサートチケットがコンサートの開始後の30分以内に取得され得ることであることが指定され得る。ステップ202bは、サービス有効時間がサービス仕様に準拠するという条件で実行される。ステップ201に記載の有効時間は、サービス仕様に準拠している2016年9月20日におけるコンサートの開始時間であるので、ステップ202bが実行される。
【0059】
202b.サーバは、電子コンサートチケット取得要求を構文解析し、電子コンサートチケット取得要求内の携帯電話番号を取得する。
【0060】
203b.携帯電話番号の有効性を検証する。
【0061】
携帯電話番号が有効である場合、ステップ204が実行される。携帯電話番号が無効である場合、ステップ205が実行される。
【0062】
本ステップにおいて、要求内の携帯電話番号がサーバ内の携帯電話番号と一致するかどうかが検証される。
【0063】
ステップ202aおよびステップ202bが実行されるとき、2つのステップ間に順序が存在しないことに留意することは、価値がある。加えて、サービス有効時間に対する検証およびユーザ識別子(携帯電話番号)に対する検証が成功した後にのみ、後続のステップが実行され続ける。
【0064】
204.サーバは、携帯電話番号に対応する電子コンサートチケットを取得し、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによってアリペイのユーザ公開鍵および電子資格証明書に署名する。
【0065】
異なるサービスタイプに基づいて、電子資格証明書は、対応する詳細を有する。電子コンサートチケットが例として使用される。電子コンサートチケットは、コンサートの場所、位置、特定の座席番号、コンサート名、価格などを含む。実装形態は、本発明の本実装形態において限定されない。
【0066】
205.電子コンサートチケット取得要求を傍受し、要求失敗プロンプトをアリペイに送信する。
【0067】
206.サーバ署名情報および電子コンサートチケットをアリペイに送信する。
【0068】
207.アリペイがサーバ公開鍵に基づいて署名情報を検証するように、サーバ秘密鍵に対応する公開鍵をブロードキャストする。
【0069】
図3に示す方法に対する拡張として、アリペイをインストールされた電子デバイス(例えば、携帯電話)が紛失された後、ユーザは、携帯電話を切り替えることができ、アリペイへのログインに成功した後、電子資格証明書を使用し続けることができ、紙の資格証明書が紛失された後の登録抹消、後登録などを防ぐ。そのような用途シナリオは、ユーザ秘密鍵、サーバ公開鍵、および電子資格証明書を使用することによって、アリペイが正常な署名検証を実行した後にのみ適用され得る。アリペイがサーバ署名情報を検証しない場合、アリペイは、サーバ公開鍵に基づいてサーバ署名情報を検証し、検証が成功した後に電子資格証明書を取得する必要がある。本発明のオプションの実装形態において、電子資格証明書が漏洩していないとさらに判定するために、サーバがサーバ署名情報および電子資格証明書をクライアントソフトウェアに送信した後、サーバ公開鍵に対する検証有効期間が設定され得る。そのため、クライアントソフトウェアは、指定された時間制限内にサーバ署名情報に対する検証を完了しなければならない。サーバ公開鍵に対する検証有効期間が終了した場合、サーバ署名情報は、検証され得ない。
【0070】
さらに、本発明の一実装形態は、2次元バーコードを処理する方法をさらに提供する。方法は、
図1に示すクライアントソフトウェア側に適用される。
図4に示すように、方法は、以下のステップを含む。
【0071】
301.クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信する。
【0072】
クライアントソフトウェアがユーザアカウント名およびログインパスワードを使用することによってサーバに正常にログインした後、クライアントソフトウェアは、電子資格証明書取得要求をサーバに送信する。サーバは、電子資格証明書取得要求に応答する。伝送プロセスにおいて電子資格証明書が改ざんされるのを防ぐために、サーバは、クライアントソフトウェアの身元の有効性を検証するために、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。サーバ署名情報は、サーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名することによってサーバによって取得される。サーバ署名情報を取得することに関する関連説明について、前述の実装形態における詳細な説明に対して参照がなされ得る。本発明の本実装形態においては、簡単にするために詳細を省略する。
【0073】
302.クライアントソフトウェアは、電子資格証明書を取得するためにサーバ署名情報を検証する。
【0074】
例えば、サーバによってユーザ公開鍵および電子資格証明書を署名することによって取得されるサーバ署名情報、ならびにクライアントソフトウェアによって実行されるサーバ署名情報に対する検証が、詳細な説明のための例として使用される。
図5は、本発明の一実装形態による、署名することおよび署名に対する検証を示す概略図である。ユーザ公開鍵および電子資格証明書を取得した後、サーバは、第1のハッシュ値を取得するためにハッシュアルゴリズムを使用することによってユーザ公開鍵および電子資格証明書に対してハッシュ演算を実行し、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによって第1のハッシュ値を暗号化する。サーバは、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。サーバ署名情報および電子資格証明書を受信した後、クライアントソフトウェアは、電子資格証明書を抽出し、第2のハッシュ値を取得するために電子資格証明書に対してハッシュ演算を実行する。加えて、クライアントソフトウェアは、第1のハッシュ値を取得するためにサーバ署名情報を復号するためにサーバ公開鍵を使用し、復号して得られた第1のハッシュ値と計算によって得られた第2のハッシュ値とを比較する。第1のハッシュ値が第2のハッシュ値と同じである場合、それは、電子資格証明書が伝送プロセスにおいて改ざんされていないことを示し、電子資格証明書は、電子資格証明書が取得された後に直接使用され得る。第1のハッシュ値が第2のハッシュ値と異なる場合、それは、電子資格証明書がデータ伝送プロセスにおいて改ざんされたことを示し、情報漏洩のリスクが存在し得る。
図5が単なる一例であり、サーバ署名情報の具体的な内容が限定されないことに留意することは、価値がある。
【0075】
303.クライアントソフトウェアは、ユーザ公開鍵に対応するユーザ鍵を取得し、クライアントソフトウェア署名情報を取得するためにユーザ鍵を使用することによって電子資格証明書に署名する。
【0076】
クライアントソフトウェアは、2次元バーコード内に担持される電子資格証明書を生成する。電子資格証明書が不正に改ざんされることを防ぎ、電子資格証明書情報が漏洩するのを防ぐために、クライアントソフトウェアは、クライアントソフトウェア署名情報を取得するためにユーザ秘密鍵を使用することによって電子資格証明書に署名する必要がある。クライアントソフトウェアがクライアントソフトウェア署名情報を生成された2次元バーコードの属性情報として使用するとき、資格証明書検証エンドデバイスは、クライアントソフトウェア署名情報を検証することができ、クライアントソフトウェアの有効性をさらに認証する。
【0077】
具体的な署名実施方法について、
図5における詳細な説明に対して参照がなされ得る。本発明の本実装形態においては、簡単にするために詳細を省略する。
【0078】
304.クライアントソフトウェアは、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成する。
【0079】
クライアントソフトウェアおよび資格証明書検証パーティが短距離データ(電子資格証明書)送信を実行するとき、電子資格証明書を送信することのセキュリティを保証するために、生成された2次元バーコードに認証情報が追加され得、認証情報は、限定はしないが、クライアントソフトウェア署名情報、サーバ署名情報、および所定のセキュリティ情報を含むことができる。資格証明書検証エンドデバイスは、検証される必要がある電子資格証明書がクライアントソフトウェアによって送信されたことを判定するために、クライアントソフトウェア署名情報を検証することができる。加えて、資格証明書検証エンドデバイスは、電子資格証明書が改ざんされていないことを保証するために、2次元バーコード内の電子資格証明書がサーバによって送信されたことを判定するためにサーバ署名情報を検証することができる。
【0080】
本発明の本実装形態において、所定のセキュリティ情報は、2次元バーコードの動的な実装形態として使用され、クライアントソフトウェアと資格証明書検証エンドデバイスとの間の「信用できる」データ伝送を確立するための資格証明書として使用される。クライアントソフトウェアによって送信される2次元バーコードを受信する前に、資格証明書検証エンドデバイスは、クライアントソフトウェアによって送信される電子資格証明書のセキュリティを保証するために所定のセキュリティ情報の有効性およびセキュリティを検証する。所定のセキュリティ情報は、限定はしないが、以下の内容、すなわち、動的パスワード情報、時間情報、ランダムコード情報などを含むことができる。実装形態は、本発明の本実装形態において限定されない。
【0081】
例えば、本明細書で説明するように、現在のシステム時間が所定のセキュリティ情報のために使用される。クライアントソフトウェアが08:00において2次元バーコードを生成した場合、所定のセキュリティ情報は、08/00であると判定され得る。クライアントソフトウェアが10:21において2次元バーコードを生成した場合、所定のセキュリティ情報は、10/21であると判定され得る。前述の例は、所定のセキュリティ情報を現在のシステム時間として使用することによって説明されている。しかしながら、そのような説明方法が、本発明の本実装形態において説明される所定のセキュリティ情報がクライアントソフトウェアの現在のシステム時間のみであり得るという制限を課すことを意図していないことは、明らかであるべきである。
【0082】
2次元バーコードが生成されるとき、クライアントソフトウェアのユーザ公開鍵は、ブロードキャストされず、代わりに、ユーザ公開鍵は、生成された2次元バーコードの属性情報として直接使用されることに留意することは、価値がある。それは、クライアントソフトウェアの追加のオーバヘッドおよびコストを効果的に低減することができる。
【0083】
本発明の本実装形態において提供される2次元バーコードを処理する方法によれば、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信した後、サーバは、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名し、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信し、サーバ署名情報を検証し、署名情報に対する検証が成功した後、電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成する。2次元バーコードを取得した後、資格証明書検証エンドデバイスは、使用プロセスにおける電子資格証明書のセキュリティを保証するために、伝送プロセスにおいて電子資格証明書が改ざんされているかどうかを判定するために、2次元バーコード内のサーバ署名情報、クライアントソフトウェア署名情報、および所定のセキュリティ情報を検証することができる。
【0084】
本発明の一実装形態において、ユーザ公開鍵に対応するユーザ鍵を取得するとき、クライアントソフトウェアは、サーバによって送信され、電子資格証明書に割り当てられたユーザ署名鍵を受信し、ここで、ユーザ署名鍵は、第1のユーザ公開鍵および第1のユーザ鍵を含み、ユーザ鍵およびユーザ公開鍵は、非対称鍵であり、クライアントソフトウェアは、サーバによって電子資格証明書に割り当てられたユーザ署名鍵内の第1のユーザ鍵を取得する。本発明の別の実装形態において、ユーザ公開鍵に対応するユーザ鍵を取得するとき、クライアントソフトウェアは、クライアントソフトウェアによって生成され、ユーザ公開鍵に対応する第2のユーザ鍵を取得することができる。クライアントソフトウェアがユーザ鍵を取得する方法は、本発明の本実装形態において限定されない。
【0085】
さらに、サーバ署名情報を検証するとき、方法は、以下、すなわち、サーバによってブロードキャストされるサーバ公開鍵を受信して記憶するステップと、サーバ公開鍵および電子資格証明書に基づいてサーバ署名情報を検証するステップとを含む。
【0086】
サーバがクライアントソフトウェアによって生成される第2のユーザ公開鍵に署名していると判定したとき、クライアントソフトウェアは、サーバ公開鍵、電子資格証明書、および第1のユーザ公開鍵に基づいてサーバ署名情報を検証する。
【0087】
サーバがサーバによって電子資格証明書に割り当てられた第1のユーザ公開鍵に署名していると判定したとき、クライアントソフトウェアは、サーバ公開鍵、電子資格証明書、および第2のユーザ公開鍵に基づいてサーバ署名情報を検証する。クライアントソフトウェアがサーバ署名情報を検証するプロセスについて、
図5における詳細な説明に対して参照がなされ得る。実装形態は、本発明の本実装形態において限定されない。
【0088】
電子資格証明書をクライアントソフトウェアに送信するとき、サーバは、その後クライアントソフトウェアが2次元バーコードを生成するときに、生成された2次元バーコードの属性情報としてサーバ署名情報が使用され得るように、サーバ署名情報を取得するために電子資格証明書およびユーザ公開鍵に署名する必要があることに留意することは、価値がある。ユーザは、電子資格証明書の元の情報の正当性を保証し、ユーザ公開鍵が検証されたように有効で信頼でき、偽造または拒絶され得ないことを保証するために、サーバによって送信される情報に署名するためにユーザ秘密鍵を使用する。
【0089】
さらに、クライアントソフトウェアにおいて(クライアントソフトウェアによって生成される第1のユーザ鍵、およびサーバによって電子資格証明書に割り当てられる第2のユーザ鍵を含む)複数のユーザ署名鍵が存在し得る。したがって、クライアントソフトウェアは、クライアントソフトウェアと一致する任意のユーザ秘密鍵を使用することによって電子資格証明書に署名することができる。例えば、クライアントソフトウェアは、第1のユーザ鍵を使用することによって電子資格証明書に署名することができ、または、第2のユーザ鍵を使用することによって電子資格証明書に署名することができる。実装形態は、本発明の本実装形態において限定されない。
【0090】
電子資格証明書のセキュリティをさらに保証するために、クライアントソフトウェアが2次元バーコードを生成するとき、クライアントソフトウェアは、プロセスにおいてクライアントソフトウェア署名情報も使用する。そのため、資格証明書検証エンドデバイスは、電子資格証明書がクライアントソフトウェアによって生成され、クライアントソフトウェアが電子資格証明書を使用することを許可され信頼できることを保証するために、クライアントソフトウェア署名情報を検証し、電子資格証明書は、偽造または拒絶され得ない。2次元バーコードは、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて、以下の方法、すなわち、所定のセキュリティ情報の有効期間を設定し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、ユーザ公開鍵、所定のセキュリティ情報の有効期間、およびユーザ識別子に基づいて2次元バーコードを生成することにおいて、生成され得る。
【0091】
本発明の本実装形態において、2次元バーコードを生成するとき、クライアントソフトウェアが生成された2次元バーコードの属性情報としてユーザ識別子を使用する必要があることに留意することは、価値がある。これは、ユーザの実名システムを必要とする資格証明書検証エンドデバイスを伴う用途シナリオに適用され得る。例えば、電子資格証明書が航空券、バスチケット、列車チケット、銀行カードなどに対応する資格証明書であるとき、資格証明書検証エンドデバイスがそのような電子資格証明書を検証するとき、実名システムの状態をチェックし、検証を完了するのを支援し、実名システムを必要とするいくつかの用途シナリオにおける要件を満たすために、ユーザ身分証明書エンティティが使用され得る。
【0092】
本発明の本実装形態におけるオプションの解決策において、いくつかの高度なセキュリティシナリオでは、2次元バーコードが生成されるとき、携帯電話またはタブレットコンピュータが紛失されたときに、または2次元バーコードが解読されたときの短い時間期間内に、2次元バーコードが悪意のあるユーザによって使用されるのを防ぐために、電子資格証明書を使用する人の生体的特徴が2次元バーコードに追加され得る。例えば、電子資格証明書を使用する人の指紋のような生体的特徴が2次元バーコード内に含まれる。資格証明書検証エンドデバイスが2次元バーコードを検証するとき、電子資格証明書のセキュリティをさらに保証するために、人の生体的特徴に対する検証が必要とされる。
【0093】
さらに、前述の実装形態において、2次元バーコードを処理するためのサーバおよびクライアントソフトウェアの具体的な機能および具体的な実装形態が詳細に説明されている。
図1に示す資格証明書検証エンドデバイスは、2次元バーコードに依存する生成された電子資格証明書に対する検証を実行する必要がある。以下は、2次元バーコードを処理する方法を提供する。方法は、資格証明書検証エンドデバイスに適用される。
図6に示すように、方法は、以下のステップを含む。
【0094】
401.資格証明書検証エンドデバイスは、クライアントソフトウェア内の2次元バーコードを取得する。
【0095】
2次元バーコードは、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいてクライアントソフトウェアによって生成され、クライアントソフトウェア署名情報は、電子資格証明書に署名することによってクライアントソフトウェアによって取得され、サーバ署名情報は、電子資格証明書およびユーザ公開鍵に署名することによってサーバによって取得される。
【0096】
資格証明書検証エンドデバイスは、以下の方法などにおいてクライアントソフトウェア内の2次元バーコードを取得することができる。例えば、2次元バーコードは、所定のデータ取得命令を使用することによって取得される。所定のデータ取得命令に関する方法は、走査方法、データ送信側シェイキング方法、鍵トリガ方法、ボイストリガ方法、およびトラックに沿ってスライドさせる方法を含む。
【0097】
本発明の本実装形態における所定のデータ取得命令方法において、データ伝送前に走査方法以外の所定のデータ取得命令方法が設定される必要がある。例えば、データ送信側シェイキング方法が、以下、すなわち、同一方向に2回シェイクし、左右に2回シェイクし、上下に3回シェイクするようにして設定される。鍵トリガ方法は、以下を含む。資格証明書検証エンドデバイスは、所定の鍵のトリガ状態を監視し、所定の鍵は、物理的鍵であり得、または仮想的鍵であり得る。クライアントソフトウェアが所定の鍵をトリガするとき、資格証明書検証エンドデバイスは、クライアントソフトウェアにおいて表示される2次元バーコードを取得することができる。クライアントソフトウェアがタッチスクリーンクライアントソフトウェアである場合、資格証明書検証エンドデバイスがトラックに沿ってスライドする方法を事前に判定した後、資格証明書検証エンドデバイスは、クライアントソフトウェアにおけるタッチスクリーンのスライド状態を監視し、クライアントソフトウェアユーザがスクリーン上でスライド操作をトリガしたとき、2次元バーコードを取得する。所定のデータ取得命令は、上記で説明されており、実際の所定のデータ取得命令のタイプは、本発明の本実装形態において限定されない。
【0098】
402.資格証明書検証エンドデバイスは、所定のセキュリティ情報の有効期間を検証し、クライアントソフトウェア署名情報およびサーバ署名情報を検証する。
【0099】
資格証明書検証エンドデバイスは、取得された2次元バーコードを構文解析し、2次元バーコード内に含まれる所定のセキュリティ情報および電子資格証明書を取得し、所定のセキュリティ情報の有効期間および電子資格証明書内のサービス有効時間を検証する。例えば、所定のセキュリティ情報がクライアントソフトウェアの現在のシステム時間であり、所定のセキュリティ情報が10/21であり、所定のセキュリティ情報の有効期間が60秒であると仮定する。資格証明書検証エンドデバイスは、現在のシステム時間と所定のセキュリティ情報との間の時間差を取得し、有効期間が60秒よりも長いかどうかを判定する。有効期間が60秒よりも長いと判定された場合、資格証明書検証エンドデバイスは、2次元バーコードが無効であると判定する。前述の説明は、一例である。代替的には、所定のセキュリティ情報の有効期間は、2分などに設定され得る。所定のセキュリティ情報の有効期間は、本発明の本実装形態において限定されない。
【0100】
資格証明書検証エンドデバイスがクライアントソフトウェア署名情報およびサーバ署名情報を検証するための実装形態について、
図5に示す方法への参照がなされ得る。本発明の本実装形態においては、簡単にするために詳細を省略する。
【0101】
403.所定のセキュリティ情報、クライアントソフトウェア署名情報、およびサーバ署名情報の各々に対する検証が成功した場合、検証のために電子資格証明書内に含まれるサービス有効時間を取得する。
【0102】
サービス有効時間に対する検証について、前述の実装形態における関連説明に対して参照がなされ得る。本発明の本実装形態においては、簡単にするために詳細を省略する。
【0103】
404.電子資格証明書内に含まれるサービス有効時間に対する検証が成功した場合、電子資格証明書に対する検証が成功したと判定する。
【0104】
本発明の本実装形態において提供される2次元バーコードを処理する方法によれば、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信した後、サーバは、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名し、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信し、サーバ署名情報を検証し、署名情報に対する検証が成功した後、電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成する。2次元バーコードを取得した後、資格証明書検証エンドデバイスは、使用プロセスにおける電子資格証明書のセキュリティを保証するために、伝送プロセスにおいて電子資格証明書が改ざんされているかどうかを判定するために、2次元バーコード内のサーバ署名情報、クライアントソフトウェア署名情報、および所定のセキュリティ情報を検証することができる。
【0105】
さらに、
図6に示す方法に対する拡張として、本発明の本実装形態において、方法のステップは、資格証明書検証エンドデバイスによって生成される電子資格証明書に基づいてすべて実行される。したがって、本発明の本実装形態において、クライアントソフトウェアにおける2次元バーコードが取得される前に、資格証明書検証エンドデバイスは、ユーザ識別子に基づいて電子資格証明書を生成し、電子資格証明書を生成する機会は、限定はしないが以下の内容を含むことができる。例えば、ユーザがチケット窓口からチケットを購入した後、チケットシステムは、紙の資格証明書を生成することに加えて電子資格証明書情報を生成し、電子資格証明書情報をサーバにフィードバックする。そのため、サーバは、電子資格証明書をクライアントソフトウェアに送信することができる。代替的には、ユーザがチケットウェブサイト上で電子チケットを購入した後、電子チケットに対応する電子資格証明書が生成され、次いでサーバに送信される。本発明の本実装形態において、資格証明書検証エンドデバイスが電子資格証明書を生成した後に紙のチケットを提供するかどうかに対する制限は、存在しない。本発明の本実装形態において、電子資格証明書は、紙の資格証明書が紛失または破損された後の紙の資格証明書に関する複雑な後登録操作を防ぐことを意図している。加えて、資格証明書検証エンドデバイスが動的な2次元バーコード内に担持される電子資格証明書を取得するとき、電子資格証明書のセキュリティが保証され得る。
【0106】
資格証明書検証エンドデバイスが電子資格証明書を生成した後、対応する電子資格証明書は、クライアントソフトウェアがサーバから電子資格証明書を取得することができるように、ユーザ識別情報に基づいてサーバと同期され得る。本発明の別の実装形態において、サーバによって送信される電子資格証明書を取得するための要求情報を受信した後、資格証明書検証エンドデバイスは、電子資格証明書をサーバに送信し、ここで、電子資格証明書を取得するための要求情報は、ユーザ識別子を含む。
【0107】
さらに、資格証明書検証エンドデバイスは、以下の方法などにおいて、クライアントソフトウェア署名情報およびサーバ署名情報を検証することができる。例えば、資格証明書検証エンドデバイスは、2次元バーコード内に含まれるユーザ公開鍵を取得し、ユーザ公開鍵および電子資格証明書に基づいてクライアントソフトウェア署名情報を検証する。資格証明書検証エンドデバイスは、サーバ秘密鍵に対応し、サーバによってブロードキャストされるサーバ公開鍵を受信して記憶し、サーバ公開鍵および電子資格証明書に基づいてサーバ署名情報を検証する。
【0108】
さらに、比較的高いセキュリティ要件を有するいくつかの用途シナリオにおいて、クライアントソフトウェアは、資格証明書検証エンドデバイスがユーザ識別情報を認証するように、生成された2次元バーコードの属性情報としてユーザ識別子情報を使用する。例えば、クライアントソフトウェアは、生成された2次元バーコードの属性情報としてユーザ身分証明書を使用する。資格証明書検証エンドデバイスは、2次元バーコードを構文解析し、2次元バーコード内に含まれるユーザ識別子を取得し、ユーザ識別子を検証する。資格証明書検証エンドデバイスが、ユーザ識別子に対する検証が成功したと判定した場合、資格証明書検証エンドデバイスは、電子資格証明書に対する検証が成功したと判定する。例えば、2次元バーコード内の電子資格証明書が列車チケットであるとき、ユーザが駅の回転式改札口を通過するために電子列車チケットを使用するとき、ユーザの身分証明書は、電子資格証明書に対する検証を完了するために同時に検証され得る。
【0109】
さらに、資格証明書検証エンドデバイスが2次元バーコード内の内容を検証するとき、2次元バーコード内に含まれる内容の量にかかわらず、2次元バーコード内に含まれる内容が資格証明書検証エンドデバイスによって正常に検証される限り、それは、電子資格証明書の検証が成功することを示す。2次元バーコード内に含まれる1つの項目またはいくつかの項目が検証されるのに失敗した場合、それは、電子資格証明書の検証が失敗したことを示す。例えば、2次元バーコードが所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、およびユーザ識別子を含むとき、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、およびユーザ識別子の各々に対する検証が成功した後にのみ、電子資格証明書が正常に検証されたと判定され得ると仮定する。
【0110】
上記で説明したように、資格証明書検証エンドデバイスは、2次元バーコード内に担持される電子資格証明書を検証し、日常の仕事および生活における電子資格証明書の利便性およびセキュリティは、プロセスから見られ得る。前述の説明は、クライアントソフトウェアが1つのタイプの電子資格証明書を含む例を使用することによって説明されている。実際には、クライアントソフトウェアは、複数のタイプの電子資格証明書を含むことができる。電子資格証明書は、異なる動的2次元バーコード内に別々に記録され得、または、同じ2次元バーコード内に記録され得る。実装形態は、本発明の本実装形態において限定されない。電子資格証明書は、既存の技術におけるエンティティ資格証明書情報を置き換えることができ、エンティティ資格証明書における情報漏洩を防ぎ、エンティティ資格証明書が紛失されたときの厄介な登録抹消または後登録ステップを軽減する。本発明の本実装形態における方法によれば、ユーザは、外出するときにクライアントソフトウェアをインストールされた1つの端末デバイス(携帯電話)を携帯するだけでよく、いかなるエンティティ資格証明書も携帯する必要はない。
【0111】
例えば、ユーザAが、クライアントソフトウェアをインストールされた1つの携帯電話のみを携帯し、朝の8:00に家から会社までバスで行く。ユーザは、クライアントソフトウェア内のバスの電子資格証明書の2次元バーコードを用いてスムーズに移動することができる。到着後、ユーザは、アクセス制御電子資格証明書を用いて会社に入ることができ、電子資格証明書を使用することによって出勤することができる。午前11:00において、ユーザAは、銀行サービスを処理するために銀行に行く必要があり、サービスを処理するために電子身分証明書および電子銀行カードが使用され得る。17:00において、ユーザAは、出張のために鉄道駅に移動する必要がある。ユーザAが回転式改札口を通過するとき、実名検証は、電子身分証明書および電子列車チケットを使用することによって実行され得る。検証が成功した後、ユーザは、列車に乗ることができる。電子資格証明書が検証されると、2次元バーコードを処理するための前述の安全な方法が使用される。前述の例は、生活および仕事について電子資格証明書によってもたらされる利便性およびセキュリティを説明することを意図しており、電子資格証明書の具体的な用途シナリオを限定することを意図していない。
【0112】
前述の実装形態において、サーバ、クライアントソフトウェア、および資格証明書検証エンドデバイスが2次元バーコードを処理するプロセスは、別々に詳細に説明されている。しかしながら、実際には、サーバ、クライアントソフトウェア、および資格証明書検証エンドデバイスは、2次元バーコードを検証する上で不可欠である。以下の実装形態において、サーバ、クライアントソフトウェア、および資格証明書検証エンドデバイスは、まとめられて説明される。
図7に示すように、方法は、以下のステップを含む。
【0113】
501.資格証明書検証エンドデバイスは、サーバが電子資格証明書をクライアントソフトウェアに送信するように、ユーザ識別子に基づいて電子資格証明書を生成し、ユーザ識別子に基づいて対応する電子資格証明書をサーバに同期させる。
【0114】
502.クライアントソフトウェアは、電子資格証明書取得要求をサーバに送信し、ここで、電子資格証明書取得要求は、ユーザ識別子とサービス有効時間とを含む。
【0115】
503.サーバは、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信し、電子資格証明書取得要求を構文解析し、電子資格証明書取得要求内に含まれるサービス有効時間を取得する。
【0116】
504.サーバは、サービス有効時間がサービス仕様に準拠しているかどうかを検証する。
【0117】
サービス有効時間がサービス仕様に準拠している場合、ステップ505が実行される。サービス有効時間がサービス仕様に準拠していない場合、電子資格証明書取得要求は、無視される。
【0118】
505.ユーザ識別子に対応する電子資格証明書を取得し、電子資格証明書を暗号化する。
【0119】
電子資格証明書を取得するための要求情報は、電子資格証明書を取得するためにユーザ識別子に基づいて資格証明書検証エンドデバイスにさらに送信され得る。
【0120】
506.サーバは、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによってクライアントソフトウェアのユーザ公開鍵および電子資格証明書に署名し、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。
【0121】
507.サーバは、クライアントソフトウェアおよび資格証明書検証エンドデバイスがサーバ公開鍵に基づいて署名情報を検証するように、サーバ秘密鍵に対応する公開鍵をブロードキャストする。
【0122】
508.クライアントソフトウェアは、サーバによってブロードキャストされた公開鍵を受信して記憶する。
【0123】
509.クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信する。
【0124】
510.クライアントソフトウェアは、電子資格証明書を取得するために、サーバによってブロードキャストされた公開鍵に基づいてサーバ署名情報を検証する。
【0125】
サーバ署名情報に対する検証が成功した場合、ステップ511が実行される。サーバ署名情報に対する検証が失敗した場合、サーバによって提供される電子資格証明書が取得され得ない。
【0126】
511.クライアントソフトウェアは、クライアントソフトウェア署名情報を取得するためにユーザ鍵を使用することによって電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成する。
【0127】
512.資格証明書検証エンドデバイスは、クライアントソフトウェア内の2次元バーコードを取得し、所定のセキュリティ情報の有効期間を検証し、クライアントソフトウェア署名情報およびサーバ署名情報を検証する。
【0128】
513.所定のセキュリティ情報、クライアントソフトウェア署名情報、およびサーバ署名情報の各々に対する検証が成功した場合、検証のために電子資格証明書内に含まれるサービス有効時間を取得し、電子資格証明書内に含まれるサービス有効時間に対する検証が成功した場合、電子資格証明書に対する検証が成功したと判定する。
【0129】
ステップ501からステップ513の詳細な説明について、前述の関連する説明に対して参照がなされ得ることに留意することは、価値がある。本発明の本実装形態においては、簡単にするために詳細を省略する。
【0130】
さらに、
図1に示す方法の実装形態として、本発明の別の実装形態は、さらにサーバを提供する。この装置の実装形態は、前述の方法の実装形態に対応する。読みやすくするために、前述の方法の実装形態における詳細は、この装置の実装形態においては省略される。しかしながら、本実装形態における装置が前述の方法の実装形態におけるすべての内容を対応して実施することができることは、明らかであるべきである。
【0131】
さらに、本発明の一実装形態は、サーバを提供する。
図8に示すように、装置は、以下、すなわち、クライアントソフトウェアによって送信された電子資格証明書取得要求を受信するように構成される受信ユニット61であって、電子資格証明書取得要求がユーザ識別子を含む、受信ユニット61と、受信ユニットによって受信されるユーザ識別子に対応する電子資格証明書を取得するように構成される第1の取得ユニット62と、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名するように構成される署名ユニット63と、資格証明書検証エンドデバイスが2次元バーコード内に含まれる電子資格証明書を検証するように、クライアントソフトウェアがユーザ鍵の有効時間内にサーバ署名情報を検証し、電子資格証明書に基づいて2次元バーコードを生成するように、署名ユニット63によって取得されるサーバ署名情報および第1の取得ユニットによって取得される電子資格証明書をクライアントソフトウェアに送信するように構成される送信ユニット64であって、資格証明書検証エンドデバイスがユーザ識別子に基づいて電子資格証明書を生成するように構成される、送信ユニット64とを含む。
【0132】
さらに、
図9に示すように、署名ユニット63は、以下、すなわち、電子資格証明書にユーザ署名鍵を割り当てるように構成される割り当てモジュール631と、サーバ秘密鍵を使用することによって、電子資格証明書と割り当てモジュールによって割り当てられる第1のユーザ公開鍵とに署名するように構成される第1の署名モジュール632であって、割り当てられるユーザ署名鍵が第1のユーザ公開鍵を含む、第1の署名モジュール632と、クライアントソフトウェアによって送信される第2のユーザ公開鍵を取得するように構成される取得モジュール633と、サーバ秘密鍵を使用することによって、電子資格証明書と、取得モジュールによって取得される第2のユーザ公開鍵とに署名するように構成される第2の署名モジュール634とを含む。
【0133】
さらに、第1のユーザ公開鍵がサーバ秘密鍵を使用することによって署名された場合、送信ユニット64は、割り当てられたユーザ署名鍵、サーバ署名情報、および電子資格証明書をクライアントソフトウェアに送信するようにさらに構成される。
【0134】
さらに、
図9に示すように、サーバは、以下、すなわち、第1の取得ユニット62がユーザ識別子に対応する電子資格証明書を取得する前に電子資格証明書取得要求を構文解析するように構成される構文解析ユニット65と、構文解析ユニット65が電子資格証明書取得要求を構文解析した後、電子資格証明書取得要求内に含まれるサービス有効時間を取得するように構成される第2の取得ユニット66と、第2の取得ユニット66によって取得されるサービス有効時間がサービス仕様に準拠しているかどうかを検証するように構成される検証ユニット67とをさらに含み、ここで、第1の取得ユニット62は、検証ユニット67が、サービス有効時間がサービス仕様に準拠していることを検証するとき、ユーザ識別子に対応する電子資格証明書を取得するようにさらに構成される。
【0135】
さらに、
図9に示すように、第1の取得ユニット62は、以下、すなわち、資格証明書検証エンドデバイスがユーザ識別子に基づいて電子資格証明書を生成した後、資格証明書検証エンドデバイスによって同期された電子資格証明書を受信するように構成される受信モジュール621と、電子資格証明書を取得するために、ユーザ識別子に基づいて、電子資格証明書を取得するための要求情報を資格証明書検証エンドデバイスに送信するように構成される処理モジュール622とを含む。
【0136】
さらに、ユーザ署名鍵は、非対称鍵である。
【0137】
さらに、
図9に示すように、サーバは、以下、すなわち、クライアントソフトウェアおよび資格証明書検証エンドデバイスがサーバ公開鍵に基づいて署名情報を検証するように、サーバ秘密鍵に対応する公開鍵をブロードキャストするように構成されるブロードキャストユニット68をさらに含む。
【0138】
本発明の一実装形態は、クライアントソフトウェアをさらに提供する。
図10に示すように、クライアントソフトウェアは、以下、すなわち、サーバによって送信されたサーバ署名情報および電子資格証明書を受信するように構成される第1の受信ユニット71であって、サーバ署名情報がサーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名することによってサーバによって取得される、第1の受信ユニット71と、電子資格証明書を取得するためにサーバ署名情報を検証するように構成される署名検証ユニット72と、ユーザ公開鍵に対応するユーザ鍵を取得するように構成される取得ユニット73と、クライアントソフトウェア署名情報を取得するために取得ユニット73によって取得されるユーザ鍵を使用することによって電子資格証明書に署名するように構成される署名ユニット74と、資格証明書検証エンドデバイスが所定のセキュリティ情報およびユーザ公開鍵に基づいて2次元バーコード内に含まれる電子資格証明書を検証するように、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成するように構成される生成ユニット75とを含み、ここで、所定のセキュリティ情報が有効期間を有し、資格証明書検証エンドデバイスは、ユーザ識別子に基づいて電子資格証明書を生成するように構成される。
【0139】
さらに、
図11に示すように、クライアントソフトウェアは、以下、すなわち、ユーザ公開鍵に対応するユーザ鍵を取得する前に、電子資格証明書に割り当てられ、サーバによって送信されるユーザ署名鍵を受信するように構成される第2の受信ユニット76をさらに含む。
【0140】
取得ユニット73は、サーバによって電子資格証明書に割り当てられ、第2の受信ユニットによって受信されるユーザ署名鍵内に含まれる第1のユーザ鍵を取得するようにさらに構成される。
【0141】
取得ユニット73は、クライアントソフトウェアによって生成され、ユーザ公開鍵に対応する第2のユーザ鍵を取得するようにさらに構成される。
【0142】
さらに、
図11に示すように、署名ユニット74は、以下、すなわち、第1のユーザ鍵を使用することによって電子資格証明書に署名するように構成される第1の署名モジュール741と、第2のユーザ鍵を使用することによって電子資格証明書に署名するように構成される第2の署名モジュール742とを含む。
【0143】
さらに、
図11に示すように、署名検証ユニット72は、以下、すなわち、サーバによってブロードキャストされるサーバ公開鍵を受信するように構成される受信モジュール721と、受信モジュールによって受信されるサーバ公開鍵を記憶するように構成される記憶モジュール722と、記憶モジュールによって記憶されるサーバ公開鍵、クライアントソフトウェア公開鍵、および電子資格証明書に基づいてサーバ署名情報を検証するように構成される第1の署名検証モジュール723とを含む。
【0144】
さらに、ユーザ公開鍵およびユーザ鍵は、非対称鍵である。
【0145】
さらに、
図11に示すように、生成ユニット75は、以下、すなわち、所定のセキュリティ情報の有効期間を設定するように構成される設定モジュール751と、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、ユーザ公開鍵、所定のセキュリティ情報の有効期間、およびユーザ識別子に基づいて2次元バーコードを生成するように構成される生成モジュール752とを含む。
【0146】
本発明の一実装形態は、資格証明書検証エンドデバイスをさらに提供する。
図12に示すように、資格証明書検証エンドデバイスは、以下、すなわち、クライアントソフトウェア内の2次元バーコードを取得するように構成される第1の取得ユニット81であって、2次元バーコードが、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいてクライアントソフトウェアによって生成され、クライアントソフトウェア署名情報が、電子資格証明書に署名することによってクライアントソフトウェアによって取得され、サーバ署名情報が、電子資格証明書およびユーザ公開鍵に署名することによってサーバによって取得される、第1の取得ユニット81と、第1の取得ユニットによって取得される所定のセキュリティ情報の有効期間を検証するように構成される第1の検証ユニット82と、クライアントソフトウェア署名情報およびサーバ署名情報を検証するように構成される第2の検証ユニット83と、所定のセキュリティ情報に対する第1の検証ユニットの検証が成功し、クライアントソフトウェア署名情報およびサーバ署名情報の各々に対する第2の検証ユニットの検証が成功したとき、検証のために電子資格証明書内に含まれるサービス有効時間を取得するように構成される第3の検証ユニット84と、電子資格証明書内に含まれるサービス有効時間に対する第3の検証ユニットの検証が成功したとき、電子資格証明書に対する検証が成功したと判定するように構成される判定ユニット85とを含む。
【0147】
さらに、
図13に示すように、資格証明書検証エンドデバイスは、以下、すなわち、第1の取得ユニット81がクライアントソフトウェア内の2次元バーコードを取得する前に、ユーザ識別子に基づいて電子資格証明書を生成するように構成される生成ユニット86と、サーバが電子資格証明書をクライアントソフトウェアに送信するように、ユーザ識別子に基づいて対応する電子資格証明書をサーバに同期させるように構成される同期化ユニット87と、サーバによって送信される電子資格証明書を取得するための要求情報を受信するように構成される受信ユニット88と、電子資格証明書をサーバに送信するように構成される送信ユニット89とをさらに含み、電子資格証明書を取得するための要求情報は、ユーザ識別子を含む。
【0148】
さらに、
図13に示すように、第2の検証ユニット83は、以下、すなわち、2次元バーコード内に含まれるユーザ公開鍵を取得するように構成される取得モジュール831と、取得モジュールによって取得されるユーザ公開鍵および電子資格証明書に基づいてクライアントソフトウェア署名情報を検証するように構成される第1の署名検証モジュール832と、サーバ秘密鍵に対応し、サーバによってブロードキャストされるサーバ公開鍵を受信するように構成される受信モジュール833と、受信モジュールによって受信されるサーバ公開鍵を記憶するように構成される記憶モジュール834と、記憶モジュールによって記憶されるサーバ公開鍵、クライアントソフトウェア公開鍵、および電子資格証明書に基づいてサーバ署名情報を検証するように構成される第2の検証モジュール835とを含む。
【0149】
さらに、
図13に示すように、資格証明書検証エンドデバイスは、以下、すなわち、判定ユニット85が、電子資格証明書に対する検証が成功したと判定する前に、2次元バーコード内に含まれるユーザ識別子を取得するように構成される第2の取得ユニット810と、第2の取得ユニット810によって取得されるユーザ識別子を検証するように構成される第4の検証ユニット811とをさらに含む。
【0150】
判定ユニット85は、第4の検証ユニット811が、ユーザ識別子に対する検証が成功したと判定したとき、電子資格証明書に対する検証が成功したと判定するようにさらに構成される。
【0151】
さらに、
図14に示すように、本発明の一実装形態は、2次元バーコードを処理するシステムをさらに提供し、システムは、以下、すなわち、電子資格証明書取得要求をサーバ92に送信するように構成されるクライアントソフトウェア91であって、電子資格証明書取得要求がユーザ識別子を含む、クライアントソフトウェア91と、クライアントソフトウェア91によって送信される電子資格証明書取得要求を受信し、ユーザ識別子に基づいて資格証明書検証エンドデバイス93から電子資格証明書を取得するように構成されるサーバ92と、サーバ92によって送信される電子資格証明書を取得するための要求情報を受信してそれに応答し、電子資格証明書をサーバ92に送信するように構成される資格証明書検証エンドデバイス93とを含む。
【0152】
サーバ92は、資格証明書検証エンドデバイス93によって送信される電子資格証明書を受信し、サーバ92の署名情報を取得するために電子資格証明書およびクライアントソフトウェア91のユーザ公開鍵に署名し、サーバ92の署名情報および電子資格証明書をクライアントソフトウェア91に送信するようにさらに構成される。
【0153】
クライアントソフトウェア91は、サーバ92によって送信されるサーバ92の署名情報および電子資格証明書を受信し、電子資格証明書を取得するためにサーバ92の署名情報を検証し、ユーザ公開鍵に対応するユーザ鍵を取得し、クライアントソフトウェア91の署名情報を取得するためにユーザ鍵を使用することによって電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア91の署名情報、サーバ92の署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成するように構成される。
【0154】
資格証明書検証エンドデバイス93は、クライアントソフトウェア91内の2次元バーコードを取得し、所定のセキュリティ情報の有効期間を検証し、クライアントソフトウェア91の署名情報およびサーバ92の署名情報を検証し、所定のセキュリティ情報、クライアントソフトウェア91の署名情報、およびサーバ92の署名情報の各々に対する検証が成功した場合、検証のために電子資格証明書内に含まれるサービス有効時間を取得し、電子資格証明書内に含まれるサービス有効時間に対する検証が成功した場合、電子資格証明書に対する検証が成功したと判定するように構成される。
【0155】
本発明において提供される2次元バーコードを処理するためのサーバ、クライアントソフトウェア、資格証明書検証エンドデバイス、システムによれば、クライアントソフトウェアによって送信される電子資格証明書取得要求を受信した後、サーバは、サーバ署名情報を取得するためにサーバ秘密鍵を使用することによって電子資格証明書およびクライアントソフトウェアのユーザ公開鍵に署名し、サーバ署名情報および電子資格証明書をクライアントソフトウェアに送信する。クライアントソフトウェアは、サーバによって送信されたサーバ署名情報および電子資格証明書を受信し、サーバ署名情報を検証し、署名情報に対する検証が成功した後、電子資格証明書に署名し、所定のセキュリティ情報、クライアントソフトウェア署名情報、サーバ署名情報、電子資格証明書、およびユーザ公開鍵に基づいて2次元バーコードを生成する。2次元バーコードを取得した後、資格証明書検証エンドデバイスは、使用プロセスにおいて電子資格証明書のセキュリティを保証するために、伝送プロセスにおいて電子資格証明書が改ざんされているかどうかを判定するために、2次元バーコード内のサーバ署名情報、クライアントソフトウェア署名情報、および所定のセキュリティ情報を検証することができる。
【0156】
前述の実装形態において、各実装形態の説明は、それぞれの焦点を有する。実装形態において詳細に説明されていない部分について、他の実装形態における関連説明に対して参照がなされ得る。
【0157】
前述の方法および装置における関連する特徴は、相互に参照され得ることが理解され得る。加えて、前述の実装形態における「第1の」、「第2の」などは、実装形態間を区別するために使用され、各実装形態の長所および短所を表さない。
【0158】
当業者は、説明の便宜および簡潔さのため、上記で説明したシステム、装置、およびユニットの特定の作業プロセスについて、前述の方法の実装形態における対応するプロセスに対して参照がなされ得、本発明の実装形態においては、簡単にするために詳細を省略することを明確に理解することができる。
【0159】
本明細書で提供されるアルゴリズムおよび表示は、いかなる特定のコンピュータ、仮想システム、または他のデバイスにも本質的に関係しない。様々な汎用システムが本明細書に基礎を置く指示と一緒にも使用され得る。上記の説明に基づいて、そのようなシステムを構築するために必要とされる構造は、明らかである。さらに、本発明は、いかなる特定のプログラミング言語にも適用されない。本明細書で説明する本発明の内容は、様々なプログラミング言語を使用して実施され得、詳細な言語の前述の説明は、本発明の最良の実装形態を開示するために使用されることが理解されるべきである。
【0160】
本明細書において、多数の詳細が提供される。しかしながら、本発明の実装形態がこれらの詳細なしで実施され得ることが理解され得る。いくつかの事例では、本明細書の理解を曖昧にしないように、よく知られている方法、構造、および技術は、詳細には示されていない。
【0161】
同様に、本開示を合理化し、様々な発明の態様のうちの1つまたは複数を理解するのを助けるために、本発明の特徴は、ときには、本発明の単一の実装形態、図面、または説明にまとめてグループ化されることが理解されるべきである。しかしながら、開示されている方法は、以下の意図を反映していると解釈されるべきではない。すなわち、特許請求されている開示は、各請求項において指定された特徴よりも多くの特徴を必要とする。より正確には、以下の特許請求の範囲において反映されるように、発明の態様は、以前に開示した単一の実装形態のすべての特徴よりも少ない。したがって、詳細な実装形態に続く特許請求の範囲は、詳細な実装形態を明確に組み込む。各請求項は、本発明の別々の実装形態として機能する。
【0162】
当業者は、実装形態における装置内のモジュールが適応的に変更され得、実装形態とは異なる1つまたは複数のデバイス内に配置され得ることを理解することができる。実装形態におけるモジュールまたはユニットまたは構成要素は、1つのモジュールまたはユニットまたは構成要素に組み合わされ得、加えて複数のサブモジュールまたはサブユニットまたはサブ構成要素に分割され得る。これらの特徴および/またはプロセスもしくはユニットが相互に排他的であるという事実を除いて、明細書(添付の特許請求の範囲、要約書、および添付図面を含む)におけるそのような方法において開示された任意の方法またはデバイスのすべての開示された特徴およびすべてのプロセスまたはユニットは、任意の組合せモードにおいて組み合わされ得る。特に明記しない限り、本明細書(添付の特許請求の範囲、要約書、および添付図面を含む)において開示された各特徴は、同じ、同等の、または類似の目的を果たす代替の特徴によって置き換えられ得る。
【0163】
加えて、当業者は、本明細書に記載のいくつかの実装形態は、別の特徴を含む代わりに別の実装形態に含まれるいくつかの特徴を含むが、異なる実装形態の特徴の組合せが、本発明の範囲内に入ること、および異なる実装形態を形成することを意味することを理解することができる。例えば、以下の特許請求の範囲において、企図された実装形態のうちの任意の1つが任意の組合せモードにおいて使用され得る。
【0164】
本発明における様々な部分の実装形態は、ハードウェア、または1つもしくは複数のプロセッサ上で実行されるソフトウェアモジュール、またはそれらの組合せによって実施され得る。当業者は、本発明の一実装形態に基づいて開示の名称(例えば、2次元バーコードを処理するための装置)の構成要素のうちのいくつかまたはすべての機能のうちのいくつかまたはすべてを実装するために、実際にはマイクロプロセッサまたはデジタル信号プロセッサ(DSP)が使用され得ることを理解すべきである。本発明は、本明細書に記載の方法の一部またはすべてを実行するためのデバイスまたは装置プログラム(例えば、コンピュータプログラムおよびコンピュータプログラム製品)としても実装され得る。本発明を実施するためのそのようなプログラムは、コンピュータ可読媒体内に記憶され得、または1つもしくは複数の信号の形態を有することができる。そのような信号は、インターネットウェブサイトからダウンロードされ得、または搬送波信号上で提供され得、または任意の他の形態において提供され得る。
【0165】
前述の実装形態は、本発明を限定するのではなく、本発明を説明することを意図しており、当業者は、添付の特許請求の範囲から逸脱することなく代替の実装形態を設計することができることに留意することは、価値がある。特許請求の範囲において、括弧内に配置されたいかなる参照記号も、特許請求の範囲に対する限定として構成されるべきではない。「含む」という単語は、特許請求の範囲内に列挙された要素またはステップの存在を排除しない。要素の前の「1つ」または「a/an」という単語は、複数のそのような要素の存在を排除しない。本発明は、いくつかの異なる要素を含むハードウェア、または適切にプログラムされたコンピュータによって実施され得る。いくつかの装置を列挙している請求項において、これらの装置のうちのいくつかは、同じハードウェア項目を使用することによって具体化され得る。「第1の」、「第2の」、および「第3の」という単語の使用は、いかなる順序も示さない。これらの単語は、名前として解釈され得る。