JP2017175226A - 公開鍵証明書を発行するためのプログラム、方法およびシステム - Google Patents

公開鍵証明書を発行するためのプログラム、方法およびシステム Download PDF

Info

Publication number
JP2017175226A
JP2017175226A JP2016056134A JP2016056134A JP2017175226A JP 2017175226 A JP2017175226 A JP 2017175226A JP 2016056134 A JP2016056134 A JP 2016056134A JP 2016056134 A JP2016056134 A JP 2016056134A JP 2017175226 A JP2017175226 A JP 2017175226A
Authority
JP
Japan
Prior art keywords
public key
application
key certificate
certificate
procedure
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
Application number
JP2016056134A
Other languages
English (en)
Inventor
正樹 飯田
Masaki Iida
正樹 飯田
正浩 古瀬
Masahiro Furuse
正浩 古瀬
永見 健一
Kenichi Nagami
健一 永見
貴裕 遠藤
Takahiro Endo
貴裕 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intec Inc Japan
Original Assignee
Intec Inc Japan
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intec Inc Japan filed Critical Intec Inc Japan
Priority to JP2016056134A priority Critical patent/JP2017175226A/ja
Publication of JP2017175226A publication Critical patent/JP2017175226A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】デバイスに対して安全かつ自動的に公開鍵証明書を発行するシステムを提供する。【解決手段】アプリケーション発行サービスシステム30は、公開鍵証明書を発行する認証局サービスシステム20によって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラム50を、クライアントデバイス10−nに配布する。認証局サービスシステム20は、クライアントデバイス10−nから、公開鍵証明書申請プログラム50−nを用いて行われた公開鍵証明書の申請を、受信する。認証局サービスシステム20は、該申請が自身によって定められた申請手続きに従って行われたものであることを確認した後に、申請された公開鍵証明書を、クライアントデバイス10−nに対して発行する。【選択図】図2

Description

本発明は、デバイスに対する公開鍵証明書の発行を自動化することを可能にするプログラム、方法およびシステムに関する。
現在、デバイスに対する公開鍵証明書の発行を自動化する方法として、SCEP(Simple Certificate Enrollment Protocol)(例えば、非特許文献1を参照)が広く利用されている。SCEPでは、公開鍵証明書の発行を自動化するためにデバイスと認証局との間で秘密のチャレンジパスワードを事前に共有しておき、デバイスから識別情報と一緒に提出されたチャレンジパスワードが正しいことを認証局側で確認できれば、デバイスに対して公開鍵証明書を自動で発行する。SCEPを用いる場合、例えば、デバイスが、MDMアプリケーション(Mobile Device Management Application)へMDM構成情報(MDM CONFIG)を要求して、MDM構成情報と共にチャレンジパスワードを受け取る。そして、デバイスは、認証局への仲介役として配置されたSCEPサービス(SCEP Service)へ、公開鍵証明書の申請と共にチャレンジパスワードを送り、チャレンジパスワードについての認証を受ける。SCEPサービスは、デバイスからのチャレンジパスワードが正しいことを確認できれば、デバイスの代理として認証局に公開鍵証明書の申請を行い、認証局は、SCEPサービスを通じてデバイスに公開鍵証明書を自動で発行する。
しかし、このSCEPによる方法では、デバイスの認証に問題があり、例えば、悪意を持ったデバイス利用者が正しいチャレンジパスワードと一緒に詐称した識別情報を提出することで、認証局が騙されて不正な公開鍵証明書を発行してしまう権限昇格攻撃に関する脆弱性が指摘されている。そのため、SCEP確認サービス(SCEP Validation Service)を追加することによって権限昇格攻撃を防ぐ方法が提案されている(例えば、特許文献1を参照)。この方法によれば、例えば、SCEP確認サービスに、信頼できる情報源からのデバイス情報などをチャレンジパスワードに紐付けて登録しておき(例えば、SCEP確認サービスが、MDMアプリケーションからチャレンジパスワードおよびこれに紐付くデバイス情報などを受け取って登録しておき)、認証局は、SCEPサービスでのチャレンジパスワードの確認を行うことに加えて、SCEP確認サービスに問い合わせることによりデバイスから提出された識別情報が詐称されていないことの確認も行うことができる。但し、このような方法では、認証局による識別情報の審査自体は自動化できるものの、その前提として、組織の正式なディレクトリサービスなどの信頼できる情報源に正しいデバイス情報を予め登録しておく必要があるため、公開鍵証明書の発行を本質的には自動化できていない。
アップル社が提供するiOSでは、デバイスに対するOTA(Over-The-Air、無線接続)による構成プロファイルの配布が実現されており、構成プロファイルを安全に配布するための暗号化に使用するために、前述のSCEPを利用してデバイスの公開鍵証明書を発行している(例えば、非特許文献2を参照)。デバイスの識別情報については、構成プロファイルを配布するプロファイルサービスによって必要な識別情報の項目名を指定してデバイスに要求することができ、例えば「iOSのバージョン番号」、「デバイスのシリアル番号」、「IMEI(International Mobile Equipment Identity)」などの識別情報をデバイスから取得することができる。この仕組みで取得された識別情報を認証局が信頼できるのであれば、公開鍵証明書の発行を自動化することができるため、大量のデバイスに対しても低コストで公開鍵証明書を発行することができる。しかし実際には、デバイスがマルウェアに汚染されて管理者権限が奪取されていたり、悪意を持ったデバイス利用者によって意図的な不正が行われたりする可能性が想定されるため、認証局にとって信頼できる識別情報が取得されることを保証できないと考えられる。また、ディレクトリサービスなどと連携して識別情報の検証を行う場合は、やはり予め正しいデバイス情報を登録しておく必要があるため、公開鍵証明書の発行を本質的には自動化できない。
なお、公開鍵証明書の発行、更新、失効といった管理に関するプロトコルであるCMP(Certificate Management Protocol)(例えば、非特許文献3を参照)では、公開鍵証明書の発行方式として、これまでに説明したようなクライアントで鍵ペアを生成して公開鍵証明書の申請を開始する基本認証方式(Basic Authenticated Scheme)の他に、認証局でクライアントの鍵ペアを生成して公開鍵証明書と一緒にクライアントに配布する一括生成配布方式(Centralized Scheme)が規定されている。一括生成配布方式では、認証局が公開鍵証明書に記載するための識別情報を組織の正式なディレクトリサービスなどの信頼できる情報源から取得できる場合は、認証局においてデバイスの識別情報についての審査を行う必要はない。しかし、そうしたディレクトリサービスなどに正しいデバイス情報を予め登録しておく必要があることには変わりなく、公開鍵証明書の発行を本質的には自動化できない。また、デバイスに対して鍵ペアを配布する必要があるため、私有鍵が漏洩する可能性が高まる懸念もある。更に、認証局などで一括して生成される電子署名用途の鍵ペアは、個々のデバイスの否認防止には利用できないという問題もある。
米国特許第8745378号明細書
P. Gutmann著「Simple Certificate Enrolment Protocol」 Internet-Draft, IETF(2015)[https://tools.ietf.org/html/draft-gutmann-scep-01] 「無線経由のプロファイルの配布と構成」Apple Inc.(2014)[https://developer.apple.com/jp/documentation/iPhoneOTAConfiguration.pdf] 「Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)」RFC 6712, IETF(2012)[https://tools.ietf.org/html/rfc6712]
従来技術において安全に公開鍵証明書を発行するためには、認証局がデバイスから提出された識別情報についての審査を行う必要があるため、公開鍵証明書の発行に関する安全性と自動化の両立が困難である。
デバイスから提出された識別情報が詐称されていないことを検証するには、組織の正式なディレクトリサービスなどの信頼できる情報源から取得される正しいデバイス情報が必要となり、審査のために予め正しいデバイス情報を登録しておかなければならないから、公開鍵証明書の発行に関する一連の処理を自動化できず、発行を自動化することが本質的に困難である。通常、このようなデバイス情報は、公開鍵証明書の発行対象となる全てのデバイスを管理するデバイス管理者によって登録されるものであり、特に、IoT(Internet of Things)などのように大量のデバイスが扱われる状況においては、デバイス管理者の負荷増大が問題となる。
特定組織のプライベート認証局ではなく、広く開放されたパブリック認証局から公開鍵証明書の発行を受ける場合には、公開鍵証明書の発行を自動化することが更に困難になると考えられる。なぜならば、パブリック認証局が公開鍵証明書の発行対象となる全てのデバイスについて、識別情報の審査に必要な信頼できる正しい情報を取得しておくことが難しいためである。そのため、デバイス利用者が認証局の公開鍵証明書申請窓口に物理的にデバイスを持ち込み、認証局の審査担当者による実機を使った審査が行われることも考えられる。しかしながら、このような方法では、大量のデバイスを扱うことが現実的に難しい。
デバイスからネットワーク経由で識別情報を取得できる仕組みの場合は、取得された識別情報を認証局が信頼できるのであれば公開鍵証明書の発行を自動化することができるため、大量のデバイスを扱う場合でも審査担当者もしくはデバイス管理者の負荷を最小限に抑えることができる。しかし、現実には、デバイスがマルウェアに汚染されて管理者権限が奪取されていたり、悪意を持ったデバイス利用者によって意図的な不正が行われたりする可能性が想定されるため、認証局にとって信頼できる識別情報が取得されることを保証できないことが問題となる。
また、クライアントで鍵ペアを生成して公開鍵証明書の申請を開始する基本認証方式では、デバイスが生成した鍵ペアや証明書署名要求の生成手続きが正しいかどうか(認証局にとって信頼できる手続きかどうか)について、公開鍵証明書を発行する責任者である認証局による確認が難しいことが問題となる。具体的には、鍵ペアや証明書署名要求の生成のために脆弱性が修正されていないバージョンのソフトウェアやライブラリを使用していないかどうか、鍵ペアの使い回しをしていないかどうかなどを正確に把握することが困難である。
一方で、認証局でクライアントの鍵ペアを生成して公開鍵証明書と一緒にクライアントに配布する一括生成配布方式では、認証局にとって信頼できる手続きによって公開鍵証明書を発行することができる。しかし、生成した鍵ペアをデバイスに配布する必要があるために私有鍵が漏洩する可能性が増加することは問題であり、また電子署名用途の鍵ペアを個々のデバイスの否認防止に利用できないことも問題となる。
本発明は、公開鍵証明書を発行する認証局が、特定組織のプライベート認証局である場合も、広く開放されたパブリック認証局である場合も、クライアントとなるデバイスに関する識別情報の審査を不要にできるような新しい仕組みを構築して、デバイスに対する安全かつ自動的な公開鍵証明書の発行を可能にすることを目的とする。
本発明の原理に従う一例に係る公開鍵証明書申請プログラムは、公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む。
そして、本発明の原理に従う一例に係る公開鍵証明書発行方法は、上記公開鍵証明書申請プログラムを、デバイスに配布し、該デバイスから、該公開鍵証明書申請プログラムを用いて行われた公開鍵証明書の申請を、認証局サービスが受信し、該認証局サービスは、該申請が自身によって定められた申請手続きに従って行われたものであることを確認した後に、申請された公開鍵証明書を、デバイスに対して発行する。
上記公開鍵証明書申請プログラムは、デバイスに何らかの形で配布でき、デバイスが実行可能なプログラムであればよく、アプリケーションでも、ファームウェアなどでも構わない。このプログラムは、認証局サービスにとって信頼できる公開鍵証明書の申請手続きを含むため、当該プログラムを用いることにより、デバイスに対する安全かつ自動的な公開鍵証明書の発行が可能になる。
上記公開鍵証明書申請プログラムにおいて、前記申請手続きが、公開鍵および該公開鍵の対となる私有鍵を生成する処理と、申請元の識別情報を取得する処理と、前記公開鍵および前記識別情報についての公開鍵証明書を申請する(例えば、証明書署名要求を生成して送信する)処理とを含むようにしてもよい。
この公開鍵証明書申請プログラムを用いてデバイスが申請を行うのであるから、識別情報を取得する処理として、必ず、認証局サービスによって定められた処理が行われることになり、認証局サービスでは、受信した申請が当該プログラムを用いて行われたものであることを確認することで、申請に含まれる識別情報自体についての審査を不要にすることが可能になる。
ここで、識別情報により特定される申請元は、デバイスであってもよいし、ユーザであってもよいし、両者の組合せであってもよい。例えば、上記申請元の識別情報を、デバイスのハードウェアから取得される情報としてもよいし、ユーザからの入力に基づいて取得される情報としてもよいし、両者の組合せとしてもよい。
上記デバイスのハードウェアから取得される情報は、製造番号や固定アドレス等のデバイスに固有の情報としてもよい。あるいは、GNSS受信機から取得される位置情報等、デバイスのソフトウェアによっては操作されない情報としてもよい。
上記公開鍵証明書申請プログラムが、公開鍵証明書の申請が前記申請手続きに従って行われたものであることを、前記認証局サービスが確認するために用いられる、正規手続き認証鍵をさらに含み、前記申請手続きが、前記公開鍵証明書の申請に前記正規手続き認証鍵による電子署名を付与する処理を含むようにしてもよい。
上記正規手続き認証鍵は、共通鍵暗号方式の秘密鍵であってもよいし、公開鍵暗号方式の私有鍵であってもよい。認証局サービスでは、デバイスからの申請に、この正規手続き認証鍵による電子署名が正しく付与されていることをもって、当該申請が、正規の公開鍵証明書申請プログラムを用いて(すなわち、認証局にとって信頼できる申請手続きで)行われたものであることを確認することが可能になる。
共通鍵暗号方式の場合、デバイスは、例えば、公開鍵証明書の申請を正規手続き認証秘密鍵で暗号化して電子署名を作成し、公開鍵証明書の申請とともに、認証局サービスへ送信する。認証局サービスでは、受信した電子署名を、自身が保管している正規手続き認証秘密鍵で復号化して、受信した公開鍵証明書の申請と比較し、一致すれば、受信した公開鍵証明書の申請が正規の公開鍵証明書申請プログラムを用いて行われたものであると判断することができる。
公開鍵暗号方式の場合、デバイスは、例えば、公開鍵証明書の申請を正規手続き認証私有鍵で暗号化して電子署名を作成し、公開鍵証明書の申請とともに、認証局サービスへ送信する。認証局サービスでは、受信した電子署名を、自身が保管している正規手続き認証公開鍵で復号化して、受信した公開鍵証明書の申請と比較し、一致すれば、受信した公開鍵証明書の申請が、正規の公開鍵証明書申請プログラムを用いて行われたものであると判断することができる。
公開鍵暗号方式の場合は、さらに、上記公開鍵証明書申請プログラムが、前記正規手続き認証私有鍵の対となる第二の公開鍵および該第二の公開鍵に前記認証局サービスが付与した第二の電子署名を含み、前記申請手続きが、前記公開鍵証明書の申請に前記第二の公開鍵および前記第二の電子署名を含ませる処理を含むようにしてもよい。
これにより、認証局サービスは、受信した電子署名の検証を、受信した第二の電子署名が自身の電子署名であることの確認および受信した第二の公開鍵(正規手続き認証公開鍵)での復号化によって行うことができるため、認証局サービスが共通鍵暗号方式における正規手続き認証秘密鍵もしくは公開鍵暗号方式における正規手続き認証公開鍵を保管する負荷を、低減することが可能になる。
上記公開鍵証明書申請プログラムにおいては、前記正規手続き認証鍵が秘匿化(例えば、暗号化もしくは難読化)されていることが好ましい。これにより、正規手続き認証鍵を用いることができるのは、公開鍵証明書申請プログラムが配布されたデバイスが当該プログラムを実行する場合に限られ、当該正規手続き認証鍵による電子署名が正しく付与されていることをもって、認証局にとって信頼できる申請手続きで公開鍵証明書の申請が行われたものと判断することが可能になる。
上記公開鍵証明書申請プログラムにおいては、前記申請手続きを実行するためのプログラムコードの少なくとも一部が秘匿化されていることが好ましい。また、前記申請手続きが、前記プログラムコードが改竄されていないことを確認する処理を含むことが好ましい。これにより、認証局にとって信頼できる申請手続きで公開鍵証明書の申請が行われたものと判断することが可能になる。
さらに安全性を高めるために、上記公開鍵証明書申請プログラムが、セキュアな環境でなければ実行されないように、該環境に固有の鍵で暗号化されていてもよい。
もしくは、上記公開鍵証明書申請プログラムが、非セキュアな環境で実行されるものとして、難読化されていてもよい。
上記公開鍵証明書申請プログラムの機能を拡張して、前記申請手続きによる申請に基づいて前記認証局サービスにより発行される公開鍵証明書および前記申請手続きにより生成される該公開鍵の対となる私有鍵を管理するためのプログラムコードをさらに含むようにしてもよい。
上記公開鍵証明書申請プログラムにおいて、前記申請手続きを実行するプログラムコードが複数あり、前記複数のプログラムコードのうち、要求される公開鍵証明書の種類に応じたプログラムコードを選択して、該プログラムコードによる申請手続きを実行するためのプログラムコードを含むようにしてもよい。
上記公開鍵証明書申請プログラムが、前記認証局サービスの公開鍵証明書をさらに含み、前記申請手続きが、前記認証局サービスの公開鍵証明書を用いて、前記公開鍵証明書申請プログラムの管理者もしくは発行者の確認、前記申請手続きにより提出される申請の暗号化による秘匿、前記申請の後に受領される公開鍵証明書が前記認証局サービスにより発行されたことの確認のうち、少なくとも一つを行うようにしてもよい。
本発明の原理に従う一例に係るデバイスは、公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムを記憶するための手段と、前記公開鍵証明書申請プログラムを用いて前記申請手続きを実行するための手段と、前記申請手続きによる申請に基づいて前記認証局サービスにより発行される公開鍵証明書および前記申請手続きにより生成される該公開鍵の対となる私有鍵を管理するための手段とを備える。
上記デバイスが、セキュアな実行環境を備え、少なくとも前記公開鍵証明書申請プログラムを用いて前記申請手続きを実行するための手段が、該セキュアな実行環境を利用するようにしてもよい。さらに、前記公開鍵証明書および/または前記私有鍵の管理を、該セキュアな実行環境を利用して行うようにしてもよい。
上記デバイスにおける公開鍵証明書申請プログラムは、デバイスの出荷時にプリインストールされていてもよい(第一の例)し、デバイスの出荷後に該デバイスを管理するサービスによって強制的にインストールされてもよい(第二の例)し、デバイスで公開鍵証明書が必要となった際に該デバイスが申請プログラムを発行するサービスから取得してインストールしてもよい(第三の例)。
第二の例では、複数のデバイスを管理するサービスに前記デバイスの情報が登録されていない場合に、該情報を取得する処理を前記申請手続きに含む前記公開鍵証明書申請プログラムを受信する手段を、デバイスがさらに備えてもよい。
第三の例では、要求される種類の公開鍵証明書が前記管理の対象として存在しない場合に、該種類に対応する前記公開鍵証明書申請プログラムを外部から取得する手段を、デバイスがさらに備えてもよい。
本発明の原理に従う一例に係る認証局サービスシステムは、公開鍵証明書の申請をデバイスから受信する手段と、前記申請が前記認証局サービスシステムによって定められた申請手続きに従って行われたものであることを確認する手段と、前記確認の後に前記公開鍵証明書を発行する手段と、前記デバイスにおいて前記申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムが用いられることにより前記申請が行われるようにする手段とを備える。
上記認証局サービスシステムが、前記申請に含まれる前記デバイスに関する情報を、複数のデバイスを管理するサービスへ通知する手段をさらに備えてもよい。これにより、デバイス管理サービスにおける管理対象のデバイスの情報の収集を自動化することも可能になる。
本発明の原理に従う一例に係るプログラム発行サービスシステムは、公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムを記憶する手段と、前記公開鍵証明書申請プログラムの少なくとも一部を秘匿化する手段と、前記公開鍵証明書の申請を要するデバイスに対し、前記秘匿化を行った前記公開鍵証明書申請プログラムを、該デバイスに適合した構成で発行する手段とを備える。
以上では、公開鍵証明書申請プログラムの発明、デバイスの発明、認証局サービスシステムの発明、プログラム発行サービスシステムの発明、公開鍵証明書発行方法の発明のいずれかに関連させて、発明の各要素を説明したが、ある発明に関連させて説明した要素を別の発明に適用することも可能である。また、認証局サービスシステムの発明およびプログラム発行サービスシステムの発明は、汎用のサーバにインストールされてそれぞれのシステムを実現するためのプログラム(又はそのプログラムを記録した記録媒体)の発明としても成立するものである。
以上のとおり、本発明によれば、デバイスに対して安全かつ自動的に公開鍵証明書を発行することが可能になる。これにより、例えば、多種多様かつ大量のデバイスがインターネットに接続されるIoTにおいて、ネットワークに接続される様々なデバイスの認証やデータの保護を低コストで実現することが可能になる。
本実施形態の一例に係る公開鍵証明書発行システムの全体構成を示す図。 図1の例におけるデータの流れを示す図。 図1の例における処理手順を示すシーケンス図。 公開鍵証明書申請アプリケーションの構成(一部を公開する場合)の一例を示す図。 公開鍵証明書申請アプリケーションの構成(全て非公開とする場合)の一例を示す図。 公開鍵証明書の申請プログラムの処理内容の一例を示すフロー図。 鍵ペア生成サブプログラムの処理内容の一例を示すフロー図。 証明書署名要求生成サブプログラムの処理内容の一例を示すフロー図。 デバイス識別情報取得サブプログラムの一例を示す図。 図9の例による汚染部分の回避について説明する図。 クライアントデバイスおよびデバイス利用者の信頼できる識別情報の取得と紐付け処理の一例を示すシーケンス図。 実行元の入力値によって公開鍵証明書の申請プログラムを切り替える構成の一例を示す図。 クライアントデバイスにおいて公開鍵証明書申請アプリケーションを保護する構成の一例を示す図。 登録局サーバの公開鍵証明書申請アプリケーション管理データベースの一例を示す図。 登録局サーバの正規手続き認証鍵管理データベースの一例を示す図。 正規手続き認証秘密鍵の発行と電子署名の検証との関係の一例を示す図。 アプリケーション発行サーバのアプリケーション構成・発行方法管理データベースの一例を示す図。 パブリック認証局による公開鍵証明書申請アプリケーションの配布の一例を示す図。 プライベート認証局による公開鍵証明書申請アプリケーションの配布の一例を示す図。 プライベート認証局による公開鍵証明書申請アプリケーションの強制配布の一例を示す図。 パブリック認証局による企業内デバイスへの公開鍵証明書申請アプリケーションの配布の一例を示す図。 パブリック認証局による企業内デバイスへの公開鍵証明書申請アプリケーションの強制配布の一例を示す図。 デバイスベンダによる公開鍵証明書申請アプリケーションの強制配布の一例を示す図。 デバイスベンダによる公開鍵証明書申請アプリケーションの出荷時配布の一例を示す図。 公開鍵証明書申請アプリケーションの要求時配布の一例(専用ライブラリの利用)を示す図。 公開鍵証明書申請アプリケーションの要求時配布の別の例(申請プログラムの取得)を示す図。 公開鍵暗号方式による正規手続き認証鍵の発行と電子署名の検証との関係の一例を示す図。 公開鍵証明書申請アプリケーションにより公開鍵証明書および鍵ペアの管理を行う構成の一例を示す図。 公開鍵証明書申請アプリケーションの機能を拡張した構成の一例を示す図。 TPMと連携して公開鍵証明書の発行を行う構成の一例を示す図。 本実施形態によるデバイス情報の登録方法について説明する図。 医療データの安全な共有への応用の一例を示す図。 オンラインバンキングのトランザクション保護への応用の一例を示す図。 本実施形態が用いられる証明書認証について説明する図。
以下、本発明の実施の形態に係る公開鍵証明書発行システムについて、例示のために、図面を用いて説明する。
[1]本実施形態の概要
多種多様かつ大量のデバイスがインターネットに接続されるIoTにおいては、デバイスが扱うデータやデバイス自体のセキュリティ対策は重要な課題である。こうした課題の解決には、暗号理論に基づく公開鍵基盤PKI(Public Key Infrastructure)によって発行される公開鍵証明書の活用が有効であると考えられる。しかしながら、大量のデバイスが扱われるIoTでは、公開鍵基盤の運用負荷増大が大きな問題となる。
公開鍵証明書は、公開鍵暗号で利用される鍵ペア(公開鍵と私有鍵)における公開鍵と、その公開鍵の主体を特定する識別情報とを紐付けるものである。認証局(登録局を含む)がクライアントに対して公開鍵証明書を発行するには、クライアントから提出された識別情報が詐称されておらず、その識別情報がクライアントを間違いなく特定するものであることを審査し、クライアントの属性を保証しなければならない。どのような方法で識別情報の審査を行うかについては、認証局や発行する公開鍵証明書の保証レベルによって異なり、認証局運用規程CPS(Certificate Practice Statements)や認証局の証明書ポリシーCP(Certificate Policy)によって示される(例えば、小松文子「改訂PKIハンドブック」171-192,株式会社ソフト・リサーチ・センター(2004/11/25)を参照)。
また、IoTに関するセキュリティ対策の強化が叫ばれる昨今では、TEE(Trusted Execution Environment)(例えば、TEEの標準化団体であるGlobalPlatformの「TEE System Architecture Version 1.0」(2011/12) を参照)や、SE(Secure Element)(例えば、株式会社ブリリアントサービス「NFC Hacks−プロが教えるテクニック&ツール」18-20,株式会社オライリー・ジャパン(2013/11/29)を参照)などのハードウェアレベルで実行環境の分離を実現するセキュリティ技術が注目されている。これらは、ネットワークを通じた不正アクセスやマルウェアによる汚染などからデバイスを保護し、アプリケーションを安全に実行できる信頼されたセキュア実行環境を提供する。これらデバイスのセキュア実行環境をクラウドと安全に接続し、様々なサービスに活用していくためには、セキュア実行環境に対して公開鍵証明書を発行することができれば都合がよい。
セキュア実行環境とは、特定の目的のために構成されたデバイス内に、複数の実行環境が備えられ、各実行環境におけるアプリケーションを実行するためのメモリ空間やデータストアなどの領域が、論理的または物理的もしくは両方を組み合わせた手段で、明確に分離されており、ある実行環境が、他の実行環境もしくはデバイス外部からのセキュリティ侵害を防ぐ仕組みを備えている場合の、当該実行環境のことをいう。セキュア実行環境の実現方法は達成するセキュリティレベルに応じて複数存在する。例えば、仮想化(Virtualization)や、上述したTEE、SEなどの技術によって、セキュア実行環境を実現することができる。
本実施形態における安全かつ自動的な公開鍵証明書の発行方式は、デバイスの非セキュア実行環境だけではなく、これらのセキュア実行環境に対しても適用することができる。また、セキュア実行環境については、その実現方法に関係なく適用することができる。
なお、本実施形態において使用する電子署名は、電子データに署名できるものであればよく、署名の方式は問わない。例えば、共通鍵暗号方式の秘密鍵を用いて署名する方法(メッセージ認証符号など)も、公開鍵暗号方式の私有鍵を用いて署名する方法(デジタル署名など)も、使用可能である。
[2]システム構成
本実施形態においては、認証局(認証局サービスシステム)からデバイス(クライアントデバイス)に対する公開鍵証明書の発行が、自動化される。本実施形態の一例に係るシステムは、図1に示すように、クライアントデバイス10−nで実行され認証局サービスシステム20に対して公開鍵証明書の申請を行うための「公開鍵証明書申請アプリケーション」50−nを含み、公開鍵証明書申請アプリケーション50の管理および公開鍵証明書の発行を行うための「認証局サービスシステム」20と、公開鍵証明書申請アプリケーションをクライアントデバイスに対して安全に配布するための「アプリケーション発行サービスシステム」30によって構成される。「クライアントデバイス」10−nは、これらのシステムと、ネットワーク40を介して接続され、認証局サービスシステム20から公開鍵証明書の発行を受ける。
公開鍵証明書申請アプリケーション50および50−nには、認証局サービスシステム20にとって信頼できる公開鍵証明書の申請手続きが含まれる。図2の破線矢印で示すように、公開鍵証明書申請アプリケーション50は、アプリケーション発行サービスシステム30によって非改竄性および秘匿性を確保した形式に変換され、クライアントデバイス10−nに対して、公開鍵証明書申請アプリケーション50−nとして、安全に配布される。図2の点線矢印で示すように、クライアントデバイス10−nは、配布された公開鍵証明書申請アプリケーション50−nを実行することで、認証局サービスシステム20にとって信頼できる手続きで公開鍵証明書の申請に関する一連の処理を実施する。
従来技術では、認証局サーバが公開鍵証明書を発行するにあたり、クライアントデバイスから提出される識別情報の正しさを審査する必要があるため、公開鍵証明書の発行を自動化することが本質的に困難であった。これに対し、本実施形態においては、公開鍵証明書申請アプリケーション50を利用することで、認証局サービスシステム20にとって信頼される手続きにより取得された識別情報がクライアントデバイス10から提出されることになるため、認証局サービスシステム20による識別情報の審査は不要となり、公開鍵証明書の発行を自動化することが可能となる。認証局サービスシステム20にとって信頼される手続きで処理されたことを証明するため、クライアントデバイス10から認証局サービスシステム20への公開鍵証明書の申請時には、公開鍵証明書申請アプリケーション50に含まれる正規手続き認証秘密鍵530によって付与された電子署名も併せて提出される。
公開鍵証明書の発行を受けるクライアントデバイス10−nとしては、多種多様かつ大量の機器・設備があり得る。これらクライアントデバイスは、無線か有線かを問わず、企業内ネットワークやインターネット、3G/LTEネットワークなど、様々なネットワーク40に接続されうる。一般に、クライアントデバイス10には、ネットワーク40を通じた不正アクセスやマルウェアによる汚染などの懸念があり、アプリケーションを実行する環境として安全であることを必ずしも保証できない(図1のクライアントデバイスBの「非セキュア実行環境」)。その一方で、一部のクライアントデバイスに関しては、上述したTEEやSEなどのハードウェアレベルで実行環境の分離を実現するセキュリティ技術によって、不正アクセスやマルウェアによる汚染などを防ぎ、アプリケーションを安全に実行できる環境が内部に確保されている(図1のクライアントデバイスAの「セキュア実行環境」)。クライアントデバイス10−nは、このような非セキュア実行環境160−2もしくはセキュア実行環境170−1で公開鍵証明書申請アプリケーション50−nを動作させることにより、認証局サービスシステム20から公開鍵証明書の発行を受ける(図2の点線矢印)。
認証局サービスシステム20は、公開鍵証明書の実際の発行を行う認証局サーバ210と、クライアントデバイス10の属性を保証する登録局サーバ220から構成される。認証局サーバ210が登録局サーバ220を兼ねる場合もある。従来技術では、クライアントデバイスの属性を保証するためには、クライアントデバイスから提出される識別情報の正しさを何らかの方法によって審査しなければならず、IoTのように大量のクライアントデバイスに対して公開鍵証明書を発行する必要がある場合には、識別情報の審査もしくは審査のためのデバイス情報登録作業の負荷が大きく、運用コストの増大が問題となっていた。本実施形態においては、クライアントデバイス10に対し、登録局サーバ220によって管理される公開鍵証明書申請アプリケーション50および正規手続き認証秘密鍵を利用させることで、識別情報の審査を行わずとも、クライアントデバイス10の属性を保証できる。
アプリケーション発行サービスシステム30は、認証局サービスシステム20から受け取った公開鍵証明書申請アプリケーション50を安全な形式に変換し、クライアントデバイス10−nに対して配布するためのものである。本実施形態では、公開鍵証明書申請アプリケーション50に設定された各種手続きが認証局サービスシステム20にとって信頼できることを安全性の根拠の一つとしているため、各種手続きの改竄や秘密情報の漏洩を防ぐ必要がある。その方法として、公開鍵証明書申請アプリケーション50−nをクライアントデバイス10−nの非セキュア実行環境160−2に対して発行する場合には、公開鍵証明書申請アプリケーション50に対して難読化を行う方法がある。一方、実用上は、公開鍵証明書申請アプリケーション50をより安全に保護するために、クライアントデバイス10−nの非セキュア実行環境ではなくセキュア実行環境170−1を利用することが好ましい。通常、セキュア実行環境170−nからのみアクセス可能なデバイス固有鍵(もしくはその派生鍵など)180−nを利用することで、公開鍵証明書申請アプリケーション50に対して暗号化を行い、より安全に保護することが可能である。
図3は、図1に示したシステムにおける基本的な処理の流れを示す。まず、認証局サービスシステム20の登録局サーバ220が、公開鍵証明書申請アプリケーションの登録を開始し(S100)、正規手続き認証秘密鍵530を発行し(S110)、これを含めて公開鍵証明書申請アプリケーション50を構成する(S120)。そして、登録局サーバ220は、アプリケーション発行サービスシステム30のアプリケーション発行サーバ310へ、公開鍵証明書申請アプリケーションの発行を依頼し(S130)、アプリケーション発行サーバ310は、公開鍵証明書申請アプリケーション50−nを発行する(S140)。ここまでが、公開鍵証明書申請アプリケーションの登録フェーズを構成する。なお、図1の例では、アプリケーション発行サービスシステム30を独立して設けているが、認証局サービスシステム20がアプリケーション発行サーバ310を含むようにしてもよい。
その後、公開鍵証明書の発行フェーズが実行される。まず、クライアントデバイス10が、自装置に適合する公開鍵証明書申請アプリケーション50−nを、アプリケーション発行サーバ310から取得し(S200)、これを実行して(S210)、鍵ペア(証明の対象となる公開鍵およびそのペアとなる私有鍵)と証明書署名要求90とを生成し(S220)、正規手続き認証秘密鍵530による電子署名を証明書署名要求90に付与する(S230)。そして、クライアントデバイス10は、証明書署名要求90を正規手続き認証秘密鍵530による電子署名とともに認証局サービスシステム20へ提出する(S240)。これを受信した登録局サーバ220は、正規手続き認証秘密鍵530による電子署名を検証し(S250)、検証に成功した場合は、証明書署名要求90を認証局サーバ210へ送る(S260)が、検証に失敗した場合は、証明書署名要求を拒絶する。認証局サーバ210は、要求された公開鍵証明書を発行し(S270)、登録局サーバ220を介して(S280)、クライアントデバイス10へ公開鍵証明書を配付する(S290)。これを受領したクライアントデバイス10は、公開鍵証明書および上記私有鍵を保管する(S300)。
[3]公開鍵証明書申請アプリケーション
公開鍵証明書申請アプリケーション50は、認証局サービスシステム20の登録局サーバ220によって管理され、アプリケーション発行サービスシステム30により非改竄性および秘匿性を確保した形式に変換されてクライアントデバイス10−nに安全に配布される。安全に配布可能な形式として構成された公開鍵証明書申請アプリケーション50−nの一例を、図4および図5に、それぞれ公開鍵証明書申請アプリケーション51および52として示す。
図4に示すように、安全に配布可能な形式として構成された公開鍵証明書申請アプリケーション51の各要素は、公開部分60−1と非公開部分65−1に分類される。公開部分60−1については非改竄性が要求される。本実施形態では、公開鍵証明書申請アプリケーション50に設定された各種手続きが認証局サービスシステム20にとって信頼できることを安全性の根拠の一つとしているため、公開鍵証明書申請アプリケーション50−nがクライアントデバイス10−nに配布されてから実行される過程において、公開鍵証明書申請アプリケーション50−nに設定された各種手続きが改竄されることを防ぐ必要がある。
公開部分60−1の非改竄性を確保するためには、例えば、非公開部分65−1に公開部分60−1のハッシュ値550を含める方法がある(図4の「公開部分のハッシュ値」)。公開鍵証明書申請アプリケーション51は、実行される際にクライアントデバイス10−nの非セキュア領域もしくはセキュア領域のメインメモリに展開される。非公開部分65−1に設定された起動プログラム540が、公開部分60−1のハッシュ値を計算して検証する(計算した値が非公開部分65−1に設定されているハッシュ値550と一致することを確認する)ことで、公開部分60−1のデータが改竄されていないことを確認した上で、公開部分60−1に含まれる公開鍵証明書の申請プログラム510を実行することができる。
加えて、非公開部分65−1については非改竄性および秘匿性が要求される。非公開部分65−1に含まれる正規手続き認証秘密鍵530は登録局サーバ220によって管理され、クライアントデバイス10−nで実行された公開鍵証明書の申請手続きが正しく処理されたことを証明するための電子署名の付与に使用される。この正規手続き認証秘密鍵530は、公開鍵証明書申請アプリケーション51が実行されるクライアントデバイス10−nの信頼されない他のプロセスにはもちろんのこと、デバイス利用者15に対しても秘匿されなければならない。公開部分60−1の非改竄性の確保、非公開部分65−1の非改竄性および秘匿性の確保、公開部分のハッシュ値550の設定、起動プログラム540の設定などは、アプリケーション発行サービスシステム30によって実施される。
クライアントデバイス10およびデバイス利用者15は、信頼できない公開鍵証明書申請アプリケーションを実行する場合に、公開部分60−1の内容について確認することで、実行される公開鍵証明書の申請手続きが妥当であるかどうかを判断することができる。仮に、クライアントデバイスで実行するのに妥当ではないと判断すれば、クライアントデバイス10およびデバイス利用者15は、公開鍵証明書申請アプリケーション51の実行を中止することができる。
図5に示すように、公開鍵証明書申請アプリケーションが信頼できる発行元から配布される場合やデバイスの工場出荷時にプリインストールされている場合など、クライアントデバイス10およびデバイス利用者15が公開鍵証明書申請アプリケーション52を無条件に信頼し、クライアントデバイスで実行するのに妥当であるかどうかを判断する必要がないのであれば、公開部分60−1が全て非公開部分65−2として発行されてもよい。
公開鍵証明書申請アプリケーション50−nをクライアントデバイス10−nで実行するには、公開鍵証明書申請アプリケーションを直接的に実行する方法と、他のアプリケーションから呼び出すことで間接的に実行する方法がある。後者に関しては、例えば、公開鍵証明書を必要とするアプリケーション70(例えば、認証システムのクライアントアプリケーションなど)が、公開鍵証明書が必要になったときに公開鍵証明書申請アプリケーション50−nを起動して申請する場合などがあり得る。
また、公開鍵証明書申請アプリケーション50−nは、実行される際に何らかの入力値を要求するように構成しておくことができる。例えば、公開鍵証明書を暗号化や電子署名などの用途毎で使い分けるために、公開鍵証明書申請アプリケーション50−nを実行する際に、申請する公開鍵証明書の種類を実行元に指定させるように構成することもできる。公開鍵証明書申請アプリケーション50に公開鍵証明書の種類に応じた複数の申請手続きを設定しておけば、実行元から与えられた入力値にしたがい、複数の中から適切な申請手続きを選択して実行することもできる。
図6は、公開鍵証明書の申請プログラム510の処理内容の一例を示す。公開鍵証明書の申請プログラム510には、登録局サーバ220によって、公開鍵暗号方式の鍵ペア(公開鍵と私有鍵)を生成する(S410)ためのサブプログラム(鍵ペア生成サブプログラム)および公開鍵証明書を申請するために必要な証明書署名要求CSR(Certificate Signing Request)を生成する(S430)ためのサブプログラム(証明書署名要求生成サブプログラム)が設定される。これらのサブプログラムには、鍵ペアや証明書署名要求の生成処理の他に、それらを生成するのに必要となる、クライアントデバイスに予め用意されているソフトウェアおよびライブラリの有無やバージョン、それら自体が改竄されていないかを確認するためのハッシュ値による検証処理などを含むこともできる。
例えば、鍵ペアの生成に利用するOpenSSLのバイナリが改竄されていないことを確認した上で鍵ペアの生成を行う場合、公開鍵証明書の申請プログラム510に含まれる鍵ペア生成サブプログラム(S410)は、図7に示すように、OpenSSLバイナリのハッシュ値を取得し(S412)、ハッシュ値が想定されたハッシュ値と一致するか否かを調べ(S414)、一致する場合は、鍵ペアを生成して鍵ストアへ保存する(S416)が、一致しない場合は、エラーコードを返す(S418)。
また、公開鍵証明書の申請プログラム510に含まれる証明書署名要求生成サブプログラム(S430)は、例えば、図8に示すように、後述するデバイス識別情報取得サブプログラムを実行し(S432)、デバイス識別情報が正常に取得されたか否かを調べ(S434)、取得された場合は、証明書署名要求を生成する(S436)が、取得されなかった場合は、エラーコードを返す(S438)。
公開鍵証明書の申請プログラム510に含まれる証明書署名要求生成サブプログラムには、図9および図10に示すように、クライアントデバイス10の識別情報として様々なハードウェア120の情報を取得するデバイス識別情報取得サブプログラム432が含まれる。デバイス識別情報取得サブプログラム432には、クライアントデバイス10のROMに記録されたシリアル番号122やネットワークカードのMACアドレス124などを詐称されることなく正確に読み取るためのプログラムが設定される。
クライアントデバイス10に予め用意されたカーネル140やデバイスドライバ130が、マルウェアなどによって汚染されている可能性がある場合、それらを利用することなく動作するようにデバイス識別情報サブプログラム432を設定することができる。例えば、図10の公開鍵証明書申請アプリケーション(a)53に示すように、マルウェアなどによって汚染の可能性があるカーネル141やデバイスドライバ131を経由してデバイス識別情報サブプログラム432−1が取得する識別情報は、改竄されている可能性があるため、登録局サーバ220にとって信頼できる識別情報であることは保証できない。しかし、図10の公開鍵証明書申請アプリケーション(b)54に示すように、汚染されていないデバイス識別情報サブプログラム432−2を公開鍵証明書申請アプリケーションに含めることにより、クライアントデバイス10が汚染されているかどうかに関わらず、登録局サーバ220にとって信頼できる識別情報を取得することができる。
また、デバイス識別情報取得サブプログラム432は、適切なプログラムさえ設定すれば、GNSS受信機が搭載されているクライアントデバイス10では、位置情報126を読み取ることもできるし、タッチパネルなどの入力デバイスを備えているならば、認証情報128などをデバイス利用者に入力させて使用することもできる。
例えば、クライアントデバイス10とデバイス利用者15が紐付けられた公開鍵証明書を発行したい場合、クライアントデバイス10自体の識別情報に加えて、そのクライアントデバイスを実際に利用しているデバイス利用者15の識別情報(利用者ID)も必要となる。この利用者IDは、クライアントデバイス10の固有情報ではないため、クライアントデバイス10から直接読み取ることはできない。また、デバイス利用者15によって入力された利用者IDは詐称されている可能性があるため、そのままでは信頼することができない。
そこで、図11に示す例では、利用者IDを管理する外部の信頼できる認証サービス80と連携するプログラムを公開鍵証明書申請アプリケーション50に設定することにより、詐称されていない信頼できる識別情報として、利用者IDを取得する。具体的には、本機能を備える公開鍵証明書申請アプリケーションを実行するクライアントデバイス10は、例えば、図9または図10に示したデバイスのシリアル番号を、クライアントデバイス10の信頼できる識別情報として取得する(S800)とともに、利用者認証画面を表示し(S810)、デバイス利用者15に利用者IDおよびパスワードを入力させ(S820)、入力された情報を信頼できる認証サービス80へ送信して(S830)、利用者IDおよびパスワードの認証に成功した場合(S840)に、その利用者IDを、デバイス利用者15の信頼できる識別情報として取得する(S850)。そして、このように取得されたデバイスのシリアル番号とデバイス利用者の利用者IDとを含む証明書署名要求を生成する(S860)。
他にも、様々なセンサーによる計測値を読み取るなど、デバイス識別情報取得サブプログラム432に設定するプログラム次第で、柔軟に様々な識別情報を取り扱うことが可能である。
図6に示すように、公開鍵証明書の申請プログラム510は、鍵ペア生成サブプログラムと証明書署名要求生成サブプログラムの両方がエラーなく正常に処理された場合(S420、S440)に限り、生成された証明書署名要求に対し、公開鍵証明書申請アプリケーションの非公開部分65に設定された正規手続き認証秘密鍵530によって電子署名を付与し(S450)、認証局サービスシステム20の登録局サーバ220に対して証明書署名要求90を提出する(S460)。正規手続き認証秘密鍵530は、既述のとおり、登録局サーバ220によって管理され、アプリケーション発行サービスシステム30によって公開鍵証明書申請アプリケーションの非公開部分65として秘匿されてクライアントデバイス10に配布されたものである。
これら一連の手続きの非改竄性が保証され、正規手続き認証秘密鍵が秘匿されているならば、登録局サーバ220は、自身が管理している正規手続き認証秘密鍵530を使って、受領した証明書署名要求90の電子署名を検証することにより、登録局サーバ220にとって信頼できる手続きで公開鍵証明書の申請が行われたことを確認できる。クライアントデバイス10では、最終的に認証局サーバ210から発行された公開鍵証明書を受領する(S470)が、この際に認証局サーバ210の公開鍵証明書520を使って受領した公開鍵証明書の電子署名を検証すれば、受領した公開鍵証明書が正しい認証局サーバ210によって発行されたものであることを確認できる。
ここで、公開鍵証明書が、認証や暗号化、電子署名などの用途毎に複数の種類があり、それぞれで申請手続きが異なる場合には、図12に示すように、それらに応じた公開鍵証明書の申請プログラム510を複数種類(512、514、516)用意しておき、公開鍵証明書申請アプリケーション55を実行する際の実行元の入力値に応じて、起動プログラム545が、使用する申請プログラムを切り替えるように構成することもできる。
例えば、IoTなどで利用されるようなクライアントデバイスは処理能力が低い場合も多く、RSAに比べて処理負荷が低いとされるECC(楕円曲線暗号)を適用した鍵ペアを選択したい場合もある。同じRSAによる鍵ペアの中でも、必要とする暗号強度と処理負荷の兼ね合いを考え、あまり重要なデータを扱わず処理負荷を抑えたい場合などでは、生成する鍵ペアの鍵長について短いものを選択する場合もある。逆に、医療情報など安全管理上の重要度が高いデータを扱うシステム・サービスで利用される場合には、生成する鍵ペアには比較的長い鍵長が選択される。
また、一部の認証システムなどでは、接続元となるクライアントデバイスのMACアドレスとデバイス利用者の利用者IDが要求されるなど、公開鍵証明書を利用するシステム・サービスの実装によって要求される識別情報が変わる可能性もある。例えば、いわゆるマイナンバー法における個人番号カードには、署名用電子証明書(e−Taxなどの電子申請に利用)と利用者証明用電子証明書(マイナポータルへのログインなどに利用)の二種類の公開鍵証明書が発行されるが、氏名・住所・生年月日・性別の基本四情報は署名用電子証明書にのみ記載されるなど、それぞれの公開鍵証明書では記載内容が異なっている(「電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律(改正:平成25年5月31日法律第28号)」の第7条および第26条を参照)。
このように、扱うデータの種類やシステム・サービスでの利用要件によって、様々な種類の公開鍵証明書が発行されうる。公開鍵証明書申請アプリケーション55では、こうした状況を見越して、予め複数の申請プログラムを用意しておくことで柔軟に対応することが可能である。
図4に示した認証局サーバの公開鍵証明書520は、クライアントデバイス10に発行される公開鍵証明書の発行者である認証局サービスシステム20の認証局サーバ210が保有する公開鍵証明書であり、公開鍵証明書申請アプリケーション50の管理者もしくは発行者の確認や、クライアントデバイスが受領した公開鍵証明書の発行者の確認などに利用される。これにより、クライアントデバイス10およびデバイス利用者15は、受領した公開鍵証明書が正しい認証局サービスシステム20によって発行されたことを確認することができる。
また、公開鍵証明書が発行された後で何らかのサービスやアプリケーションを利用する場合、同じ認証局サーバ210から発行された公開鍵証明書を持つサーバとの通信やクライアントデバイス同士での通信を行う際に、その通信相手の公開鍵証明書の有効性を検証する目的に、認証局サーバの公開鍵証明書520を利用してもよい。
クライアントデバイス10から提出される証明書署名要求90に秘匿すべき情報が含まれる場合などでは、この認証局サーバの公開鍵証明書520に含まれる公開鍵によって、証明書署名要求90をCMS(Cryptographic Message Syntax)(例えば、「Cryptographic Message Syntax (CMS)」RFC 5652, IETF(2009/9)を参照)などの形式で暗号化してから提出するように構成してもよい。必要であれば、公開鍵証明書申請アプリケーション50に対して、証明書署名要求90の暗号化に使用するための専用の暗号鍵(共通鍵暗号方式での秘密鍵もしくは公開鍵暗号方式での公開鍵)を、この認証局サーバの公開鍵証明書520とは別に含めることもできる。
[4]クライアントデバイス
公開鍵証明書の発行を受けるクライアントデバイス10−nは、多種多様かつ大量の機器・設備があり得る。例えば、スマートメーターなどの電力量計、ホルター心電計などの医療機器、生産工場などで利用される産業ロボット、自動車、そしてパソコンやスマートフォンなどである。実用上は、公開鍵証明書申請アプリケーション50−nをより安全に保護するために、クライアントデバイス10の非セキュア実行環境160ではなくセキュア実行環境170を利用することが好ましい。
公開鍵証明書申請アプリケーション50は、アプリケーション発行サービスシステム30によって、非公開部分65が秘匿化されて、クライアントデバイス10に配布される。一般に、クライアントデバイス10−nがセキュア実行環境170−nを備えている場合は、そのセキュア実行環境170−nからのみアクセス可能なデバイス固有鍵が、クライアントデバイス10−nの出荷時に埋め込まれている。そのため、そのデバイス固有鍵(もしくはその派生鍵など)180−nを利用することで、公開鍵証明書申請アプリケーション50−nを暗号化して安全にクライアントデバイス10−nのセキュア実行環境170−nに配布することができる。なお、ここではデバイス固有鍵と説明しているが、そのクライアントデバイスのモデルや出荷ロット毎に固有である場合もあるし、対称鍵(共通鍵暗号方式での秘密鍵)や非対称鍵(公開鍵暗号方式での私有鍵)が埋め込まれる場合もある。
公開鍵証明書申請アプリケーション50−nがクライアントデバイス10−nの非セキュア実行環境160−nに対して発行される場合には、非公開部分65の秘匿化のために難読化などの手法が適用される。クライアントデバイス10−nで公開鍵証明書申請アプリケーション50−nが実行される際には、クライアントデバイス10−nで実行される信頼されない他のプロセスやデバイス利用者15−nからの秘匿性が、例えば、図13に示すように、保たれる。図13の例では、非セキュア実行環境160−nにおいては、難読化およびソフトウェアレベルのメモリ空間分離によって、公開鍵証明書申請アプリケーションの非公開部分65−nの秘匿性が保たれ、セキュア実行環境170−nにおいては、暗号化およびハードウェアレベルのメモリ空間分離によって、公開鍵証明書申請アプリケーションの非公開部分65−nの秘匿性が保たれる。ただし、クライアントデバイスの種類や実行環境の制約などにより、公開鍵証明書申請アプリケーション50−nはセキュア実行環境で実行されるが、非公開部分65−nに関しては暗号化ではなく難読化によって保護するなど、様々な形態があり得る。
[5]認証局サービスシステム
認証局サービスシステム20は、公開鍵証明書の実際の発行を行う認証局サーバ210と、クライアントデバイス10の属性を保証する登録局サーバ220から構成される。
認証局サーバ210については、従来の認証局と役割を同じにしてもよい。認証局サーバ210は、自身の鍵ペアを厳重に管理し、その私有鍵を使って、クライアントデバイス10に公開鍵証明書を発行するための電子署名を実施する。また、公開鍵証明書申請アプリケーション50にも含まれる認証局サーバ自身の公開鍵証明書520を管理する。
登録局サーバ220では、公開鍵証明書申請アプリケーション50および公開鍵証明書申請アプリケーションに含める正規手続き認証秘密鍵530の管理を行う。
図14に、公開鍵証明書申請アプリケーション50を管理するデータベースの一例を示す。公開鍵証明書申請アプリケーション50は、デバイス種別に合わせた複数のプログラムを用意することで、多種多様なクライアントデバイス10−nにも対応することが可能である。また、特定のクライアント企業向けにカスタマイズした公開鍵証明書申請アプリケーション50を用意するなど、利用者毎に管理してもよい。これにより、多種多様なクライアントデバイスや利用者などに対しても、統一的なサービス基盤によって公開鍵証明書を発行することができる。
図15には、正規手続き認証秘密鍵530を管理するデータベースの一例を示す。正規手続き認証秘密鍵530は、全ての公開鍵証明書申請アプリケーション50で同一のものを使用することも可能だが、万が一に漏洩した場合の影響範囲を限定するために、対象となるデバイス種別毎や利用者毎に異なるものを使用したり、一定期間毎に更新したりすることも可能である。もし正規手続き認証秘密鍵530が漏洩した場合には、直ちに漏洩したものを失効させ、新しく発行し直す。
図16に示すように、登録局サーバ220の正規手続き認証鍵発行モジュール222により発行された正規手続き認証秘密鍵530は、アプリケーション発行サーバ310により公開鍵証明書申請アプリケーション50−nの非公開部分65に設定されてクライアントデバイス10−nに配布される。また同時に、後の検証処理のために、登録局サーバ220の正規手続き認証鍵管理データベース226(図15)に保存される。
クライアントデバイス10−nでは、正規手続き認証秘密鍵530を、生成した証明書署名要求90−nに電子署名(正規手続き電子署名)538を付与するのに使用する。登録局サーバ220は、クライアントデバイス10−nから渡された証明書署名要求90−nに付与された正規手続き電子署名538について、検証に必要な正規手続き認証秘密鍵530を正規手続き認証鍵管理データベース226から取得し、正規手続き電子署名検証モジュール224によって検証を行う。公開鍵証明書申請アプリケーション50の非改竄性が保証され、正規手続き認証秘密鍵530が秘匿されているならば、登録局サーバ220は、自身が管理している正規手続き認証秘密鍵530を使って、受領した証明書署名要求90−nの電子署名538を検証することにより、登録局サーバ220にとって信頼できる手続きでクライアントデバイス10−nの識別情報が取得され、その結果として公開鍵証明書の申請が行われたことを確認できる。したがって、登録局サーバ220は、識別情報の審査を行わずとも、クライアントデバイス10−nの属性を保証できる。
正規手続き認証秘密鍵530による電子署名538の検証で問題がなければ、登録局サーバ220は、認証局サーバ210に対してクライアントデバイス10−nの公開鍵証明書を申請し、クライアントデバイス10−nに公開鍵証明書が発行される。認証局サーバ210が公開鍵証明書を発行する際には、必要に応じて、登録局サーバ220および認証局サーバ210が従来の秘密鍵所有の証明POP(Proof-of-Possession)(例えば、小松文子「改訂PKIハンドブック」116-117,株式会社ソフト・リサーチ・センター(2004/11/25)を参照)を実施することで、発行する公開鍵証明書に対応した私有鍵をクライアントデバイスが確かに所有していることを確認する。
一方で、失効された正規手続き認証秘密鍵によって付与された電子署名の場合などでは検証が失敗し、クライアントデバイス10−nに対してその旨を示すエラーを通知することができる。また、他の何らかの理由によって公開鍵証明書を発行できない場合についても、クライアントデバイス10−nに対してその旨を示すエラーを通知することができる。このような場合、クライアントデバイス10−nは、通知されたエラーの内容に従い、アプリケーション発行サービスシステム30から新しい公開鍵証明書申請アプリケーション50を取得して、公開鍵証明書を再申請する、別のパラメータによって再申請する、申請自体を中止するといった選択を行う。
[6]アプリケーション発行サービスシステム
アプリケーション発行サービスシステム30は、認証局サービスシステム20から公開鍵証明書申請アプリケーション50を受け取り、非公開部分65の秘匿化やデバイス種別に合わせた構成および最適化などを実施して、クライアントデバイス10に発行する。
アプリケーション発行サーバ310は、クライアントデバイス10がセキュア実行環境170を備えている場合に、そのセキュア実行環境170に対してアプリケーション50を発行するためにデバイス固有鍵(もしくはその派生鍵など)180を利用する。一般に、セキュア実行環境170−nからのみアクセス可能になっているデバイス固有鍵180−nを利用することで、セキュア実行環境170−nに対してアプリケーション50−nを暗号化して安全に配布することができる。
デバイス固有鍵180−nは、アプリケーション発行サーバ310によって直接管理されるか、もしくはデバイスベンダやセキュア実行環境用OSベンダによって管理される。デバイス固有鍵180−nがデバイスベンダやセキュア実行環境用OSベンダによって管理されている場合には、アプリケーション発行サーバ310は、それらと連携してデバイス固有鍵を利用する。なお、デバイス固有鍵180は、対称鍵(共通鍵暗号方式での秘密鍵)であってもよいし、非対称鍵(公開鍵暗号方式での公開鍵をアプリケーション発行サーバ310が用い、私有鍵をクライアントデバイス10が用いる)であってもよい。
また、このデバイス固有鍵180−nの管理だけではなく、非セキュア実行環境160−nもしくはセキュア実行環境170−nにアプリケーションを発行する場合には、デバイス種別に応じた特別なアプリケーション50−nの構成・発行方法が必要な場合もあり得る。例えば、非セキュア実行環境もしくはセキュア実行環境で使用されているOSによってアプリケーションの実行形式が異なる場合や、単体では動作させずに他のアプリケーションから利用させるライブラリ形式として発行する場合があり得る。また、クライアントデバイス10がセキュア実行環境170を備えていても、アプリケーション発行サーバ310がそのクライアントデバイス10のデバイス固有鍵180を利用できないならば、アプリケーション50を暗号化ではなく難読化して発行しなければならない場合もある。
これらに対処するため、アプリケーション発行サーバ310は、図17に示すように、暗号化に使用されるデバイス固有鍵180もしくはその利用方法、そしてデバイス種別に応じたアプリケーションの構成・発行方法などを管理するデータベースを備えてもよい。アプリケーション発行サーバ310は、クライアントデバイス10−nに対して公開鍵証明書申請アプリケーション50−nを発行する際には、アプリケーション構成・発行方法管理データベースから対象となるクライアントデバイスの条件に合致するレコードを検索する。以下にその一例を示す。
例えば、デバイス種別が“スマートフォンA”、デバイスベンダIDが“VENDOR-001”、デバイスIDが“DEVICE-003”の場合、図17のアプリケーション構成・発行方法管理データベースでは、IDが2,3,5のレコードが条件に合致する。この中から、最も優先度の高いレコードを選択し、その内容にしたがって公開鍵証明書申請アプリケーションを発行する。つまり、前述した例では、IDが2のレコードが選択され、公開鍵証明書申請アプリケーションがデバイス固有鍵“ZZZZZZZZZZ002”で暗号化される。暗号化の方式としては、非改竄性と秘匿性を兼ね備えた暗号利用モードを使用することが考えられる。例えば、非改竄性と秘匿性を兼ね備えた認証付き暗号(Authenticated Encryption)を実現する暗号利用モードとして、NISTで規定されているCCM(Counter with CBC-MAC)(M. Dworkin著「Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality」NIST Special Publication, 800-38C(2004/5)を参照)やGCM(Galois/Counter Mode)(M. Dworkin著「Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC」NIST Special Publication, 800-38D(2007/11)を参照)が利用できる。
また、クライアントデバイス10の条件によっては、非公開部分65の暗号化ではなく難読化によって秘匿化する場合もある。難読化を施すための様々な手法(例えば、C. Collberg他著「Surreptitious Software」 Addison-Wesley Professional(2009/7/24)を参照)、また専用の商用製品やオープンソースソフトウェアは数多く存在する。ただし、公開鍵証明書申請アプリケーション50の非公開部分65をより安全に保護するためには、可能な限り、クライアントデバイス10のセキュア実行環境170および暗号化などのセキュア実行環境に対する適切なアプリケーション50の構成・発行方法を利用することが望ましい。セキュア実行環境170へのアプリケーション50の発行が行えない場合などに、安全上の理由などから必要であれば、そもそも公開鍵証明書申請アプリケーションの発行を実施しないという方針を採ってもよい。その場合には、当然ながら、その対象となるクライアントデバイスでは公開鍵証明書申請アプリケーションを利用することができない。
アプリケーション発行サービスシステム30は、十分に信頼できる主体によって運営される必要がある。アプリケーション発行サービスシステムが不正であると、認証局サービスシステム20が設定した各種手続きの改竄や認証局サーバ210の公開鍵証明書のすり替え、正規手続き認証秘密鍵530やデバイス固有鍵180の漏洩などが故意過失を問わず発生する可能性があるからである。認証局サービスシステム20は、アプリケーション発行サービスシステム30が十分に信頼できることを確認することが望ましい。場合によっては、認証局サービスシステム20自体がアプリケーション発行サービスシステム30の役割を兼ねてもよい。
また、クライアントデバイス10およびデバイス利用者15も、アプリケーション発行サービスシステム30が十分に信頼できることを確認することが望ましい。そのために必要であれば、公開鍵証明書申請アプリケーション50に対して、アプリケーション発行サービスシステム30によるコード署名を追加することもできる。クライアントデバイス10−nおよびデバイス利用者15−nは、公開鍵証明書申請アプリケーション50−nに付与されたコード署名の有効性を検証することで、公開鍵証明書申請アプリケーションの最終的な発行者が信頼できるかどうか確認することができる。
なお、コード署名とは、システムが、コード(アプリケーションのプログラムコード)の出所を特定したり、コードが変化又は破損していないことを保証したりできるように、コードに電子署名を行う処理である。具体的には、コードの署名者のコンピュータが、コードのハッシュ値を作成し、公開鍵暗号方式での私有鍵を使用してこのハッシュ値を暗号化し、この暗号化したハッシュ値及び公開鍵証明書をコードに挿入して送信する。受信者のコンピュータは、受信したコードのハッシュ値を作成し、受信した暗号化されたハッシュ値を、公開鍵証明書に含まれる公開鍵を使用して解読し、これらの結果を比較することにより、署名を検証する。二つのハッシュ値が一致すれば、その署名は正当なものである。
[7]公開鍵証明書申請アプリケーションの配布方法
図3の例では、最初に、認証局サービスシステム20からアプリケーション発行サービスシステム30に対して公開鍵証明書申請アプリケーション50を登録しておき、その後、クライアントデバイス10−nが必要に応じてアプリケーション発行サービスシステム30から利用可能な公開鍵証明書申請アプリケーション50−nを取得するという方法で、公開鍵証明書申請アプリケーションを配布している。公開鍵証明書申請アプリケーションの配布を適用する具体的なシステムとしては、以下に例示するように、種々のものがあり得る。
図18は、パブリックな認証局サービスシステム20−1によってアプリケーション発行サービスシステム30−1に登録された公開鍵証明書申請アプリケーション50を、インターネットなどの外部ネットワーク40−1を介して、一般の利用者が持つクライアントデバイス10−nが取得する様子を示している。
図19は、企業情報システム400−1内のプライベートな認証局サービスシステム20−2によってアプリケーション発行サービスシステム30−2に登録された公開鍵証明書申請アプリケーション50を、企業内のクライアントデバイス10−nから取得する様子を示している。
企業情報システムにおいては、MDM(Mobile Device Management)などのデバイス管理サービスシステムを利用することで、企業内デバイスを厳格に管理している事例も多い。図20では、認証局サービスシステム20−3を備える企業情報システム400−2において、アプリケーション発行サービスシステム30−3とデバイス管理サービスシステム35を連携させることで、企業内のクライアントデバイス10−nに対して、公開鍵証明書申請アプリケーション50−nを強制配信して実行させる様子を示している。このように、デバイス管理サービスシステムと連携させたシステムを構築することによって、企業内デバイスの公開鍵証明書を、デバイス管理者によって一括管理することも可能となる。
また、企業情報システムにおいても、プライベート認証局による公開鍵証明書申請アプリケーションの配布に限らず、パブリック認証局による公開鍵証明書申請アプリケーションの配布を行うことが可能である。このような場合には、例えば、図21に示すように、企業情報システム400−3内のキャッシュサーバ42によって、パブリックな認証局サービスシステム20−1が登録した公開鍵証明書申請アプリケーション50をアプリケーション発行サービスシステム30−1から一旦取得しておき、企業内のクライアントデバイス10−nは、キャッシュサーバ42から適切な公開鍵証明書申請アプリケーション50−nを取得する。この方法は、ネットワーク40のトラフィックやアプリケーション発行サービスシステム30の負荷を低減させるのに効果的である。図22の例では、企業情報システム400−4内のキャッシュサーバ42に、前述したデバイス管理サービスシステム44を組み合わせることで、公開鍵証明書申請アプリケーション50−nを強制配信して実行させ、企業内デバイスの公開鍵証明書を一括管理可能にしている。
自動車や家電製品などを扱うデバイスベンダが、自社で生産又は販売したデバイスに対するリモートメンテナンスサービスなどを提供する場合、それらのデバイスに対してデバイスベンダが管理するプライベート認証局から公開鍵証明書を発行できると都合がよい。このような場合には、例えば、図23に示すように、認証局サービスシステム20−4およびアプリケーション発行サービスシステム30−4を備えるデバイスベンダ450−1のデバイス管理サービスシステム46から、一般の利用者が持つクライアントデバイス10−nに対して、インターネット40−1を経由した公開鍵証明書申請アプリケーション50−nの強制配信と実行を行う。別の例として、図24に示すように、認証局サービスシステム20−5およびアプリケーション発行サービスシステム30−5を備えるデバイスベンダ450−2のデバイス生産ライン48によって、公開鍵証明書申請アプリケーション50−nをデバイス10−nに格納し、その状態でデバイス10−nを出荷してもよい。
クライアントデバイス10−n(またはデバイス利用者15−n)が公開鍵証明書申請アプリケーション50−nを取得するには、公開鍵証明書申請アプリケーションが登録されているWebサイトからダウンロードする方法のほかに、CD−ROMやUSBメモリなどの可搬型記録媒体によって受け取る方法や、MDMなどのデバイス管理サービスシステムからの配信を受ける方法などがあり得る。
また、図25の例に示すように、公開鍵証明書を利用するアプリケーション70に対して専用のライブラリ75などを提供することで、これらのアプリケーション70による公開鍵証明書の要求を検知し、必要に応じて適切な公開鍵証明書申請アプリケーション50−nを自動取得して実行させるように構成することもできる。こうした方法であれば、正規手続き認証秘密鍵530が失効したために証明書署名要求90の検証に失敗する場合でも、その旨のエラー通知を受け取ることによって、新しい正規手続き認証秘密鍵530を含む公開鍵証明書申請アプリケーション50−nを自動的に取得しなおすことも可能となる。このような場合には、自動取得した公開鍵証明書申請アプリケーション50−nの初回実行時に、その公開鍵証明書申請アプリケーションの発行元や公開部分60−nについての確認などを実施することになる。
別の例として、図26に示すように、配布する公開鍵証明書申請アプリケーション50−n(56)には、公開鍵証明書の申請プログラム510そのものではなく、公開鍵証明書の申請プログラムを取得するクライアントプログラム511を含めておき、実行時に、クライアントプログラム511によって、アプリケーション発行サービスシステム30に用意してある複数種類の公開鍵証明書の申請プログラム510(513,515,517)の中から、デバイスの種類や用途に応じた最適な申請プログラムを選択して取得するように構成してもよい。こうした方法であれば、クライアントデバイス10−nの型番などの情報に応じた、より柔軟な申請プログラムの構成および実行も可能となる。なお、図26には、図4の例の公開鍵証明書申請アプリケーション51に本例を適用した構成を示したが、図5の例の公開鍵証明書申請アプリケーション52にも同様に本例を適用することができる。
[8]正規手続き認証鍵管理の簡略化
以上に説明した例では、正規手続き認証鍵に、共通鍵暗号方式を利用しているが、代わりに公開鍵暗号方式を利用することで、認証局サービスシステム20の登録局サーバ220における正規手続き認証鍵の管理を簡略化することができる。図27に、詳細な方法の一例を示す。
登録局サーバ220の正規手続き認証鍵発行モジュール223では、正規手続き認証鍵ペア(正規手続き認証公開鍵532と正規手続き認証私有鍵531)を生成し、正規手続き認証公開鍵532に登録局サーバ秘密鍵227による電子署名533を付与する。クライアントデバイス10−nでは、証明書署名要求90−nに対して、公開鍵証明書申請アプリケーション50−nに含まれる正規手続き認証公開鍵532およびその登録局サーバ電子署名533を設定し、加えて正規手続き認証私有鍵531による電子署名535を付与する。
証明書署名要求90−nを受け取った登録局サーバ220は、正規手続き電子署名検証モジュール225によって、証明書署名要求90−nに含まれる正規手続き認証公開鍵532に付与された登録局サーバ電子署名533の有効性を登録局サーバ秘密鍵227で検証し、有効性が確認された正規手続き認証公開鍵532により証明書署名要求90−nに付与された正規手続き電子署名535の有効性を検証する。
この方法では、正規手続き電子署名の検証のために、全ての発行済み正規手続き認証鍵を管理する必要がなく、一つの登録局サーバ秘密鍵227と失効した正規手続き認証鍵228の管理を行うだけで済む。共通鍵暗号方式を利用する方法に比べ、正規手続き認証鍵の発行や正規手続き電子署名の検証などに必要となる処理は増加するものの、大量の正規手続き認証鍵を扱う必要がある場合などには特に有効である。
[9]公開鍵証明書申請アプリケーションによる公開鍵証明書および鍵ペアの管理
公開鍵証明書の信頼性を保証するには、公開鍵証明書の発行に関する手続きだけでなく、その後の私有鍵の安全な管理も重要である。このためには、公開鍵証明書申請アプリケーション50を機能拡張し、発行された公開鍵証明書および対応する鍵ペアの管理機能を持たせることが有効である。
図28の例では、クライアントデバイス10−nのセキュア実行環境170−nに配置された公開鍵証明書申請アプリケーション50−nによって、非セキュア実行環境160−nに配置されるアプリケーション70−Aが利用する鍵データ(公開鍵証明書および対応する鍵ペア)110−Aと、セキュア実行環境170−nに配置されるアプリケーション70−Bが利用する鍵データ(公開鍵証明書および対応する鍵ペア)110−Bとを管理する。このように、認証局にとって信頼できる手続きを含む公開鍵証明書申請アプリケーション50−nが鍵データを直接管理することで、鍵データの安全性が高いレベルで確保され、クライアントデバイス10−nおよびデバイス利用者15−nにとっても安心して公開鍵証明書を利用できるようになる。また、この例で示すように、セキュア実行環境170−nで鍵データを管理することで、悪意を持つデバイス利用者やマルウェアなどによる私有鍵への不正なアクセスを防ぎ、より安全な鍵データの管理を実現できる。
図29では、公開鍵証明書申請アプリケーション50−nを機能拡張することで、公開鍵証明書の管理プログラム570と私有鍵の利用(演算)プログラム580とを追加する例を示す。公開鍵証明書申請アプリケーション57に公開鍵証明書が要求されると、公開鍵証明書の管理プログラム570は、自身が管理する鍵データストレージを検索し、該当する公開鍵証明書が見つかれば、それを取得して返す。該当する公開鍵証明書が見つからない場合は、公開鍵証明書の申請プログラム510によって新しい鍵ペアを生成し、その公開鍵証明書の発行を認証局サービスシステム20に依頼する。そして、公開鍵証明書が成功裏に発行されれば、その公開鍵証明書を返す。新しく生成された鍵データは、管理プログラム570によって、鍵データストレージ650に追加されて管理される。
図29の例において、私有鍵を利用した演算(電子署名の生成や暗号データの復号など)が必要な場合には、それを必要とするアプリケーション70が、私有鍵の利用(演算)プログラム580に、処理を依頼する。通常、私有鍵の利用にはアクセス制御が必要であるため、私有鍵の利用(演算)プログラム580によって、処理を依頼したアプリケーション70が鍵データストレージ650に保管されている私有鍵に対するアクセス権限を有するか否かが検査され、アクセス権限に従った利用がなされるように管理される。鍵データストレージ650は、少なくとも私有鍵については、セキュア実行環境170−nに設けることが望ましい。
[10]TPM(Trusted Platform Module)との連携による公開鍵証明書の発行
TEEによって実現するセキュア実行環境は、ハードウェアレベルで分離される安全な実行環境を提供することで、ネットワークを通じた不正アクセスやマルウェアによる汚染などからアプリケーションやデータを保護することができる。TEEは、ハードウェアレベルの耐タンパー性を持つものではないため、前述したようなソフトウェアレベルの攻撃へは強い耐性を持つが、物理プロービングや電子顕微鏡によるリバースエンジニアリングなどのハードウェアレベルの攻撃を完全に防ぐことはできない。こうしたハードウェアレベルの攻撃をも防ぐことが可能な、ハードウェアレベルの耐タンパー性を持つセキュリティ技術として、例えば、TPM(W. Arthur他著「A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security」Apress Media, LLC(2015/1/28)を参照)のようなセキュリティチップなどが存在する。
TPMは、RSA鍵ペアの生成や利用(演算)のための機能などを備えているため、本実施形態に組み合わせて利用することで、より安全な公開鍵証明書の発行を実現できる。図30は、TPMとの連携によって公開鍵証明書を発行する例を示す。クライアントデバイス10−nのセキュア実行環境170−nに配置された公開鍵証明書申請アプリケーション50−nによって、クライアントデバイス10−nに搭載されているTPM185−nに対してRSA鍵ペアの生成を依頼し、その生成されたRSA鍵ペアに対する公開鍵証明書を認証局サービスシステム20に申請する。
TPMによって生成されたRSA鍵ペアの私有鍵は、TPM185−nの外部に取り出すことができないようになっているため、前節で説明した公開鍵証明書申請アプリケーションによる公開鍵証明書および鍵ペアの管理などと組み合わせることで、より安全な鍵データの管理を実現することも可能である。
[11]本実施形態の効果
本実施形態によれば、公開鍵証明書を発行する特定組織のプライベート認証局および広く開放されたパブリック認証局の両方において、クライアントデバイスの識別情報に関する審査が不要となる公開鍵証明書発行方法が実現される。これにより、クライアントデバイスへの公開鍵証明書の発行を本質的に自動化することが可能となるため、公開鍵基盤の運用コストを削減することができる。クライアントで鍵ペアを生成して公開鍵証明書の申請を開始する基本認証方式でありながら、大量のデバイスが扱われるIoTなどにおいても低コストで公開鍵基盤を運用することが可能になる。
公開鍵証明書を申請する際に必要となる鍵ペアや証明書署名要求の生成、クライアントデバイスの識別情報の取得などについて、公開鍵証明書を発行する責任者である認証局にとって信頼できる手続きで実施させることができる。これにより、発行する公開鍵証明書の安全性・信頼性の向上が期待できる。
また、前節や前々節で説明したような公開鍵証明書および鍵ペアの管理などと組み合わせることで、より安全な鍵データの管理を実現することも可能である。こうした効果は、ITスキルの弱いデバイス利用者にとっては特に有用であり、誰もが安心して利用できる公開鍵基盤の実現に繋がる。
公開鍵証明書申請アプリケーションは、デバイス種別に合わせた複数のプログラムを用意することで、多種多様なクライアントデバイスにも対応することが可能である。これにより、統一的なサービス基盤によって、多種多様なクライアントデバイスに対して公開鍵証明書を発行することができる。これは、多種多様なデバイスが扱われるIoTでは特に有用となる。
公開鍵証明書申請アプリケーションによって、公開鍵証明書の申請に必要なクライアントデバイスの識別情報として、クライアントデバイスのROMに記録されたシリアル番号やネットワークカードのMACアドレスなどを、詐称されることなく正確に読み取って利用することが可能になる。また、適切なプログラムを設定すれば、GNSS受信機が搭載されているクライアントデバイスでは位置情報を読み取ることも可能になるし、タッチパネルなどの入力デバイスを備えているならば認証情報などをデバイス利用者に入力させて使用することも可能になる。他にも、様々なセンサーによる計測値を読み取るなど、デバイス識別情報取得サブプログラムに設定するプログラム次第で、柔軟に様々な識別情報を取り扱うことが可能である。
公開鍵証明書申請アプリケーションを利用することで、認証局にとって信頼できる手続きで取得される詐称されていない識別情報がクライアントデバイスから提出される。この詐称されていない識別情報を利用することで、組織のディレクトリサービスへのデバイス情報の登録を省力化することができる。従来技術と本実施形態でのデバイス情報登録方法の違いを、図31に例示する。従来技術では、デバイス管理者が、デバイス管理ディレクトリサービスにデバイス情報を事前登録しておくことで、認証局サービスはその登録情報を利用して公開鍵証明書の発行に必要な識別情報の審査を行うことができた。本実施形態では、公開鍵証明書を発行したクライアントデバイス10−nに限られるが、公開鍵証明書の発行に際して得られる識別情報を利用することで、認証局サービス20からデバイス管理ディレクトリサービスに対して、デバイス情報を自動登録することが可能となる。
企業などにおいては、社員に貸与している特定のデバイスにのみ公開鍵証明書を発行したいという状況もあり得る。このような場合には、本実施形態による方法であっても、公開鍵証明書を発行する対象を識別するデバイス情報を、デバイス管理者などがデバイス管理ディレクトリサービスに事前登録しておく必要がある。しかしながら、公開鍵証明書に記載される可能性のある全ての識別情報について事前登録しておく必要はなく、あくまでも公開鍵証明書を発行したい対象を識別できるだけの必要最小限のデバイス情報のみを登録すればよい。残りのデバイス情報については公開鍵証明書の発行に際して得られる識別情報から補完することができるため、このような場合でもデバイス情報の登録を省力化できる。
[12]本実施形態の応用例
本実施形態は、大量のデバイスが扱われるIoTなどのように、多種多様かつ大量の機器・設備で利用されることが可能である。そして、デバイスに対する公開鍵証明書の発行方法であることから、公開鍵基盤を利用する様々なサービス・アプリケーションに応用することが可能である(例えば、カーライル・アダムズ他「PKI公開鍵インフラストラクチャの概念、標準、展開」53-68,株式会社ピアソン・エデュケーション(2000/7/15)を参照)。
一般に、個人情報の取り扱いには、十分なセキュリティ水準が必要とされる。特に、医療データのような機微な個人情報を複数のデバイス間で共有する場合には、TLS(Transport Layer Security)などによる通信路の保護だけではなく、特定のデバイスのみがアクセスできる形でデータ自体を暗号化することが望ましい。これにより、ネットワークに接続されるデバイスがリモートからの不正アクセスなどによってクラッキングされ、万が一に医療データなどの重要情報が漏洩したとしても、その内容を保護することができる。
デバイスに発行された公開鍵証明書を利用することで、こうした仕組みを容易に構築することができる。図32に、公開鍵証明書を利用した医療データの安全な共有方法の一例を示す。この方法では、医療データを共有する共有元ホストが、認証局の公開鍵を使って共有先となる各デバイスの公開鍵証明書の有効性を検証することで、医療データを共有するデバイスを確実に特定し、そのデバイスの公開鍵で医療データを暗号化して共有する。この暗号化された医療データは、共有元ホストによって特定されたデバイスのみが復号できるため、患者のスマートフォンやかかりつけの診療所、また様々な医療機器などに対して安全に共有することが可能となる。
また、本実施形態により、デバイスに対して公開鍵証明書を自動で発行できるようになるため、デバイス数が増加しても運用負荷の増大を最小限に抑えることができる。さらに、デバイスのセキュア実行環境に対して公開鍵証明書を発行すれば、セキュア実行環境によって私有鍵が安全に保護されるため、より安心してデータ共有を行うことができる。医療データの共有に限らず、様々なデータの共有基盤として活用が期待できる。
オンラインバンキングに対する攻撃手法としては、本物のサイトに似せて作成した偽物のサイトを用意し、そこに利用者を騙して誘導することで、利用者が入力したIDやパスワードを盗み取ってしまうフィッシング型の攻撃などが確認されている。こうした攻撃は、サーバ証明書やOTP(One Time Password)などの技術によって、ある程度防御可能である。しかし、最近では、サーバ証明書やOTPなどを利用しても防ぐことが困難なMitB(Man-in-the-Browser)攻撃と呼ばれる新たな攻撃手法が確認されている(例えば、中山靖司「ネットバンキングのセキュリティ」6-16, 日本銀行金融機構局金融高度化センター ITを活用した金融の高度化に関するワークショップ第2回「金融取引チャネルとセキュリティ」(2014/11/26)を参照)。MitB攻撃では、利用者が本物のサイトに接続した際に、利用者のクライアントデバイスに感染したマルウェアによって偽物のログイン画面を表示させてIDやパスワードを盗み取ったり、利用者が入力した振込先口座番号などの取引情報を改竄して不正送金を行ったりなど、様々な不正が行われる。
入力された取引情報の改竄については、例えば、図33に示すように、本実施形態によりクライアントデバイスのセキュア実行環境に公開鍵証明書を発行することで、防ぐことが可能である。この方法では、セキュア実行環境側のユーザインタフェースより入力させた取引情報に対して、セキュア実行環境の私有鍵によって電子署名を付与し、改竄することが困難な電子署名付き取引データを生成する。マルウェアはセキュア実行環境には侵入できないため、生成された電子署名付き取引データを改竄することは困難である。この電子署名付き取引データとクライアントデバイスの公開鍵証明書をバンキングサービスに送信する。バンキングサービスは、認証局の公開鍵を使ってクライアントデバイスの公開鍵証明書の有効性を検証することで、送信元のクライアントデバイスを確実に特定し、そのクライアントデバイスの公開鍵で電子署名を検証することで取引データの改竄の有無を確認することができる。この方法は、オンラインバンキングだけではなく、様々なサービスのトランザクション保護に役立てることができる。
SSH(Secure Shell)は、リモートコンピュータと安全に通信するためのプロトコルとして広く利用されている。SSHを利用するためのオープンソースソフトウェアであるOpenSSHでは、接続先となるリモートコンピュータへのログイン認証の方式として、バージョン5.4から証明書認証(Certificate Authentication)に対応している。この証明書認証は、接続先のリモートコンピュータが認証局を信頼することで、その認証局によって発行された公開鍵証明書を持つ接続元のクライアントを認証する方式であり、ネットワーク上にパスワードが流れないためパスワード認証に比べて安全である(図34の「(a)パスワード認証」と「(c)証明書認証」との比較)。また、事前にクライアントに公開鍵証明書が発行されているならば、証明書認証を行うための設定はリモートコンピュータに認証局の公開鍵を登録しておくだけでよく、公開鍵認証のようにクライアントが増減するたびに公開鍵の登録や削除を行う必要がないため、リモートコンピュータやクライアントが大量にある場合でも容易に運用することができる(図34の「(b)公開鍵認証」と「(c)証明書認証」との比較)。なお、図34は、リモートコンピュータによるクライアントの認証についてのみ記載しているが、実際には、クライアントによるリモートコンピュータの認証も行われる双方向認証が可能である。同種のプロトコルにEAP−TLS(例えば、「The EAP-TLS Authentication Protocol」RFC 5216, IETF(2008/3)を参照)などがあり、公開鍵証明書の交換によって双方向認証を行う。
本実施形態によって公開鍵証明書の発行が自動化されることで、IoTなどのような大量のデバイスが扱われる状況においても、このような証明書認証を利用することにより、パスワードに頼らない強固な認証基盤を容易に構築・運用することができる。また、デバイスのセキュア実行環境に対して公開鍵証明書を発行すれば、セキュア実行環境によって私有鍵が安全に保護されるため、より強固な認証基盤を構築することも可能である。これらは、SSHによるリモートコンピュータへの接続に限らず、企業内ネットワークに接続するデバイスの認証や、公共サービスの電子申請を行う際にデバイスを認証するなど、幅広い用途に応用することができる。
以上、本発明の実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。上述した各例を適宜組み合わせて実施することも、勿論可能である。

Claims (24)

  1. 公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含むことを特徴とする公開鍵証明書申請プログラム。
  2. 前記申請手続きが、
    公開鍵および該公開鍵の対となる私有鍵を生成する処理と、
    申請元の識別情報を取得する処理と、
    前記公開鍵および前記識別情報についての公開鍵証明書を申請する処理と
    を含むことを特徴とする請求項1に記載の公開鍵証明書申請プログラム。
  3. 前記申請元の識別情報が、前記公開鍵証明書および前記私有鍵を利用するデバイスのハードウェアから取得される情報であることを特徴とする請求項2に記載の公開鍵証明書申請プログラム。
  4. 前記申請元の識別情報が、前記公開鍵証明書および前記私有鍵を利用するユーザからの入力に基づいて取得される情報であることを特徴とする請求項2または3に記載の公開鍵証明書申請プログラム。
  5. 前記公開鍵証明書申請プログラムが、
    前記公開鍵証明書の申請が前記申請手続きに従って行われたものであることを、前記認証局サービスが確認するために用いられる、正規手続き認証鍵をさらに含み、
    前記申請手続きが、
    前記公開鍵証明書の申請に前記正規手続き認証鍵による電子署名を付与する処理を含むことを特徴とする請求項1〜4のいずれか1項に記載の公開鍵証明書申請プログラム。
  6. 前記正規手続き認証鍵が、共通鍵暗号方式の秘密鍵であることを特徴とする請求項5に記載の公開鍵証明書申請プログラム。
  7. 前記正規手続き認証鍵が、公開鍵暗号方式の私有鍵であることを特徴とする請求項5に記載の公開鍵証明書申請プログラム。
  8. 前記公開鍵証明書申請プログラムが、
    前記正規手続き認証鍵である私有鍵の対となる第二の公開鍵および該第二の公開鍵に前記認証局サービスが付与した第二の電子署名をさらに含み、
    前記申請手続きが、
    前記公開鍵証明書の申請に前記第二の公開鍵および前記第二の電子署名を含ませる処理をさらに含むことを特徴とする請求項7に記載の公開鍵証明書申請プログラム。
  9. 前記正規手続き認証鍵が秘匿化されていることを特徴とする請求項5〜8のいずれか1項に記載の公開鍵証明書申請プログラム。
  10. 前記申請手続きを実行するためのプログラムコードの少なくとも一部が秘匿化されていることを特徴とする請求項1〜9のいずれか1項に記載の公開鍵証明書申請プログラム。
  11. 前記申請手続きが、前記プログラムコードが改竄されていないことを確認する処理を含むことを特徴とする請求項1〜10のいずれか1項に記載の公開鍵証明書申請プログラム。
  12. 前記公開鍵証明書申請プログラムが、セキュアな環境でなければ実行されないように、該環境に固有の鍵で暗号化されていることを特徴とする請求項1〜11のいずれか1項に記載の公開鍵証明書申請プログラム。
  13. 前記公開鍵証明書申請プログラムが、非セキュアな環境で実行されるものとして、難読化されていることを特徴とする請求項1〜11のいずれか1項に記載の公開鍵証明書申請プログラム。
  14. 前記申請手続きによる申請に基づいて前記認証局サービスにより発行される公開鍵証明書および前記申請手続きにより生成される該公開鍵の対となる私有鍵を管理するためのプログラムコードをさらに含むことを特徴とする請求項1〜13のいずれか1項に記載の公開鍵証明書申請プログラム。
  15. 前記申請手続きを実行するプログラムコードが複数あり、
    前記複数のプログラムコードのうち、要求される公開鍵証明書の種類に応じたプログラムコードを選択して、該プログラムコードによる申請手続きを実行するためのプログラムコードを含むことを特徴とする請求項1〜14のいずれか1項に記載の公開鍵証明書申請プログラム。
  16. 前記公開鍵証明書申請プログラムが、
    前記認証局サービスの公開鍵証明書をさらに含み、
    前記申請手続きが、
    前記認証局サービスの公開鍵証明書を用いて、前記公開鍵証明書申請プログラムの管理者もしくは発行者の確認、前記申請手続きにより提出される申請の暗号化、前記申請の後に受領される公開鍵証明書が前記認証局サービスにより発行されたことの確認のうち、少なくとも一つを行うことを特徴とする請求項1〜15のいずれか1項に記載の公開鍵証明書申請プログラム。
  17. 公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムを記憶するための手段と、
    前記公開鍵証明書申請プログラムを用いて前記申請手続きを実行するための手段と、
    前記申請手続きによる申請に基づいて前記認証局サービスにより発行される公開鍵証明書および前記申請手続きにより生成される該公開鍵の対となる私有鍵を管理するための手段とを備えることを特徴とするデバイス。
  18. セキュアな実行環境を備え、
    少なくとも前記公開鍵証明書申請プログラムを用いて前記申請手続きを実行するための手段が、該セキュアな実行環境を利用することを特徴とする請求項17に記載のデバイス。
  19. 複数のデバイスを管理するサービスに前記デバイスの情報が登録されていない場合に、該情報を取得する処理を前記申請手続きに含む前記公開鍵証明書申請プログラムを受信する手段をさらに備えることを特徴とする請求項17または18に記載のデバイス。
  20. 要求される種類の公開鍵証明書が前記管理の対象として存在しない場合に、該種類に対応する前記公開鍵証明書申請プログラムを外部から取得する手段をさらに備えることを特徴とする請求項17または18に記載のデバイス。
  21. 公開鍵証明書の申請をデバイスから受信する手段を備える認証局サービスシステムであって、
    前記申請が前記認証局サービスシステムによって定められた申請手続きに従って行われたものであることを確認する手段と、
    前記確認の後に前記公開鍵証明書を発行する手段と、
    前記デバイスにおいて前記申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムが用いられることにより前記申請が行われるようにする手段とを備えることを特徴とする認証局サービスシステム。
  22. 前記申請に含まれる前記デバイスに関する情報を、複数のデバイスを管理するサービスへ通知する手段をさらに備えることを特徴とする請求項21に記載の認証局サービスシステム。
  23. 公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムを記憶する手段と、
    前記公開鍵証明書申請プログラムの少なくとも一部を秘匿化する手段と、
    前記公開鍵証明書の申請を要するデバイスに対し、前記秘匿化を行った前記公開鍵証明書申請プログラムを、該デバイスに適合した構成で発行する手段とを備えることを特徴とするプログラム発行サービスシステム。
  24. 公開鍵証明書を発行する認証局サービスによって定められた該公開鍵証明書の申請手続きを実行するためのプログラムコードを含む公開鍵証明書申請プログラムを、デバイスに配布し、
    前記公開鍵証明書申請プログラムを用いて行われた前記公開鍵証明書の申請を、前記デバイスから受信し、
    前記申請が前記認証局サービスシステムによって定められた申請手続きに従って行われたものであることを確認し、
    前記確認の後に前記公開鍵証明書を発行することを特徴とする公開鍵証明書発行方法。

JP2016056134A 2016-03-18 2016-03-18 公開鍵証明書を発行するためのプログラム、方法およびシステム Pending JP2017175226A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016056134A JP2017175226A (ja) 2016-03-18 2016-03-18 公開鍵証明書を発行するためのプログラム、方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016056134A JP2017175226A (ja) 2016-03-18 2016-03-18 公開鍵証明書を発行するためのプログラム、方法およびシステム

Publications (1)

Publication Number Publication Date
JP2017175226A true JP2017175226A (ja) 2017-09-28

Family

ID=59972309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016056134A Pending JP2017175226A (ja) 2016-03-18 2016-03-18 公開鍵証明書を発行するためのプログラム、方法およびシステム

Country Status (1)

Country Link
JP (1) JP2017175226A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220802A (ja) * 2018-06-18 2019-12-26 日本電信電話株式会社 確認システム及び確認方法
WO2020017643A1 (ja) * 2018-07-20 2020-01-23 Gmoグローバルサイン株式会社 電子署名システム、証明書発行システム、鍵管理システム、証明書発行方法及びプログラム
CN110879876A (zh) * 2018-09-05 2020-03-13 程强 用于发行证书的系统和方法
JP2020120173A (ja) * 2019-01-21 2020-08-06 Gmoグローバルサイン株式会社 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
JP2021016149A (ja) * 2020-06-08 2021-02-12 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
JP2021016066A (ja) * 2019-07-11 2021-02-12 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
JP2021507591A (ja) * 2017-12-13 2021-02-22 ビザ インターナショナル サービス アソシエーション セキュアな取引のための装置の自己認証
CN112529574A (zh) * 2020-11-19 2021-03-19 北京握奇智能科技有限公司 一种智能密码设备证书的保护方法及智能密码设备
JP2021516495A (ja) * 2018-06-06 2021-07-01 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 キー管理方法、装置、システム、コンピュータ機器及びコンピュータプログラム
CN114021187A (zh) * 2021-11-04 2022-02-08 海南南海云控股股份有限公司 一种数据处理系统、方法及电子设备
CN114040401A (zh) * 2021-11-08 2022-02-11 中国联合网络通信集团有限公司 终端认证方法及系统
WO2023103316A1 (zh) * 2021-12-07 2023-06-15 西安广和通无线通信有限公司 应用管理方法及相关产品
WO2023116239A1 (zh) * 2021-12-23 2023-06-29 深圳Tcl新技术有限公司 权限确定方法、装置、计算机设备和计算机可读存储介质
JP7400444B2 (ja) 2019-12-24 2023-12-19 大日本印刷株式会社 IoT鍵管理システム,セキュアデバイス,IoTデバイス,デバイス管理装置およびセキュアエレメントの公開鍵証明書生成方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0375983A (ja) * 1989-08-18 1991-03-29 Nippon Telegr & Teleph Corp <Ntt> カード利用システム
JP2001202332A (ja) * 2000-01-17 2001-07-27 Hitachi Ltd 認証プログラム管理システム
JP2001320356A (ja) * 2000-02-29 2001-11-16 Sony Corp 公開鍵系暗号を使用したデータ通信システムおよびデータ通信システム構築方法
JP2005086457A (ja) * 2003-09-08 2005-03-31 Sanyo Electric Co Ltd 復号鍵要求プログラム、記憶媒体、端末装置、およびサーバ装置
JP2005333597A (ja) * 2004-05-21 2005-12-02 Toshiba Corp 電子情報保証システム、業務端末
JP2006270645A (ja) * 2005-03-24 2006-10-05 Fuji Xerox Co Ltd 情報処理装置、情報処理方法及び情報処理プログラム
JP2007235306A (ja) * 2006-02-28 2007-09-13 Matsushita Electric Ind Co Ltd 使用認証方式を搭載した放送受信装置
JP2008016001A (ja) * 2006-10-17 2008-01-24 Tourbillon:Kk 情報記憶装置
JP2008234451A (ja) * 2007-03-22 2008-10-02 Hitachi Ltd ユーザ情報管理システム
WO2015160385A1 (en) * 2014-04-14 2015-10-22 Mastercard International Incorporated Method and system for generating an advanced storage key in a mobile device without secure elements
WO2016035299A1 (ja) * 2014-09-04 2016-03-10 パナソニックIpマネジメント株式会社 証明書発行システム、通信方法及び管理装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0375983A (ja) * 1989-08-18 1991-03-29 Nippon Telegr & Teleph Corp <Ntt> カード利用システム
JP2001202332A (ja) * 2000-01-17 2001-07-27 Hitachi Ltd 認証プログラム管理システム
JP2001320356A (ja) * 2000-02-29 2001-11-16 Sony Corp 公開鍵系暗号を使用したデータ通信システムおよびデータ通信システム構築方法
JP2005086457A (ja) * 2003-09-08 2005-03-31 Sanyo Electric Co Ltd 復号鍵要求プログラム、記憶媒体、端末装置、およびサーバ装置
JP2005333597A (ja) * 2004-05-21 2005-12-02 Toshiba Corp 電子情報保証システム、業務端末
JP2006270645A (ja) * 2005-03-24 2006-10-05 Fuji Xerox Co Ltd 情報処理装置、情報処理方法及び情報処理プログラム
JP2007235306A (ja) * 2006-02-28 2007-09-13 Matsushita Electric Ind Co Ltd 使用認証方式を搭載した放送受信装置
JP2008016001A (ja) * 2006-10-17 2008-01-24 Tourbillon:Kk 情報記憶装置
JP2008234451A (ja) * 2007-03-22 2008-10-02 Hitachi Ltd ユーザ情報管理システム
WO2015160385A1 (en) * 2014-04-14 2015-10-22 Mastercard International Incorporated Method and system for generating an advanced storage key in a mobile device without secure elements
WO2016035299A1 (ja) * 2014-09-04 2016-03-10 パナソニックIpマネジメント株式会社 証明書発行システム、通信方法及び管理装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7090161B2 (ja) 2017-12-13 2022-06-23 ビザ インターナショナル サービス アソシエーション セキュアな取引のための装置の自己認証
US11290269B2 (en) 2017-12-13 2022-03-29 Visa International Service Association Self certification of devices for secure transactions
JP2021507591A (ja) * 2017-12-13 2021-02-22 ビザ インターナショナル サービス アソシエーション セキュアな取引のための装置の自己認証
JP2021516495A (ja) * 2018-06-06 2021-07-01 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 キー管理方法、装置、システム、コンピュータ機器及びコンピュータプログラム
US11516020B2 (en) 2018-06-06 2022-11-29 Tencent Technology (Shenzhen) Company Limited Key management method, apparatus, and system, storage medium, and computer device
WO2019244855A1 (ja) * 2018-06-18 2019-12-26 日本電信電話株式会社 確認システム及び確認方法
JP2019220802A (ja) * 2018-06-18 2019-12-26 日本電信電話株式会社 確認システム及び確認方法
JP6992686B2 (ja) 2018-06-18 2022-01-13 日本電信電話株式会社 確認システム及び確認方法
WO2020017643A1 (ja) * 2018-07-20 2020-01-23 Gmoグローバルサイン株式会社 電子署名システム、証明書発行システム、鍵管理システム、証明書発行方法及びプログラム
CN110879876A (zh) * 2018-09-05 2020-03-13 程强 用于发行证书的系统和方法
CN110879876B (zh) * 2018-09-05 2023-06-06 程强 用于发行证书的系统和方法
JP2020120173A (ja) * 2019-01-21 2020-08-06 Gmoグローバルサイン株式会社 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
JP2021016066A (ja) * 2019-07-11 2021-02-12 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
JP7400444B2 (ja) 2019-12-24 2023-12-19 大日本印刷株式会社 IoT鍵管理システム,セキュアデバイス,IoTデバイス,デバイス管理装置およびセキュアエレメントの公開鍵証明書生成方法
JP2021016149A (ja) * 2020-06-08 2021-02-12 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
JP7102461B2 (ja) 2020-06-08 2022-07-19 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
CN112529574A (zh) * 2020-11-19 2021-03-19 北京握奇智能科技有限公司 一种智能密码设备证书的保护方法及智能密码设备
CN114021187B (zh) * 2021-11-04 2023-02-28 云海链控股股份有限公司 一种数据处理系统、方法及电子设备
CN114021187A (zh) * 2021-11-04 2022-02-08 海南南海云控股股份有限公司 一种数据处理系统、方法及电子设备
CN114040401A (zh) * 2021-11-08 2022-02-11 中国联合网络通信集团有限公司 终端认证方法及系统
CN114040401B (zh) * 2021-11-08 2024-04-12 中国联合网络通信集团有限公司 终端认证方法及系统
WO2023103316A1 (zh) * 2021-12-07 2023-06-15 西安广和通无线通信有限公司 应用管理方法及相关产品
WO2023116239A1 (zh) * 2021-12-23 2023-06-29 深圳Tcl新技术有限公司 权限确定方法、装置、计算机设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP2017175226A (ja) 公開鍵証明書を発行するためのプログラム、方法およびシステム
US10447486B2 (en) Remote attestation of a security module&#39;s assurance level
US9860245B2 (en) System and methods for online authentication
US20190089527A1 (en) System and method of enforcing a computer policy
KR101863953B1 (ko) 전자 서명 서비스 시스템 및 방법
US9160732B2 (en) System and methods for online authentication
US8984280B2 (en) Systems and methods for automating certification authority practices
US8555075B2 (en) Methods and system for storing and retrieving identity mapping information
TWI454111B (zh) 用於確保通訊之鑑別及完備性的技術
US10333930B2 (en) System and method for transparent multi-factor authentication and security posture checking
JP2015154491A (ja) リモートアクセス、リモートデジタル署名のためのシステムおよび方法
TWM623435U (zh) 使用多安全層級驗證客戶身分與交易服務之系統
Anand et al. Identity and access management systems
US11804957B2 (en) Exporting remote cryptographic keys
JP4541740B2 (ja) 認証用鍵の更新システム、および認証用鍵の更新方法
JP2004140636A (ja) 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム
JP6045018B2 (ja) 電子署名代行サーバ、電子署名代行システム及び電子署名代行方法
TWI828001B (zh) 使用多安全層級驗證客戶身分與交易服務之系統及方法
Srivastava et al. Amazon Web Service IOT and Authentication of Edge Devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210601