Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7725431B2 - 情報処理装置、情報処理プログラム、及び情報処理システム - Google Patents
[go: Go Back, main page]

JP7725431B2 - 情報処理装置、情報処理プログラム、及び情報処理システム - Google Patents

情報処理装置、情報処理プログラム、及び情報処理システム

Info

Publication number
JP7725431B2
JP7725431B2 JP2022119047A JP2022119047A JP7725431B2 JP 7725431 B2 JP7725431 B2 JP 7725431B2 JP 2022119047 A JP2022119047 A JP 2022119047A JP 2022119047 A JP2022119047 A JP 2022119047A JP 7725431 B2 JP7725431 B2 JP 7725431B2
Authority
JP
Japan
Prior art keywords
user
token
owner
certificate
unit
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.)
Active
Application number
JP2022119047A
Other languages
English (en)
Other versions
JP2024016727A (ja
Inventor
俊夫 伊藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2022119047A priority Critical patent/JP7725431B2/ja
Priority to US18/180,198 priority patent/US20240039723A1/en
Publication of JP2024016727A publication Critical patent/JP2024016727A/ja
Application granted granted Critical
Publication of JP7725431B2 publication Critical patent/JP7725431B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本実施形態は、情報処理装置、情報処理プログラム、及び情報処理システムに関する。
サイバーフィジカルシステム(Cyber-Physical System;CPS)では、多数のデバイスとクラウド上のサーバが通信することで一つのシステムを構成する。システムをサイバー攻撃から守るため、レジスタラと呼ばれるサーバに、信頼できるデバイスと、デバイスごとの接続先のサーバをあらかじめ登録する手法が存在する。
BRSKI Cloud Registrar (https://www.ietf.org/archive/id/draft-ietf-anima-brski-cloud-03.html) FIDO Device Onboard Specification v1.1 (https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-PS-v1.1-20220419/)
レジスタラにはデバイス証明書に関連付けて、そのデバイスが接続すべきCPSサーバの情報があらかじめ記憶されている。レジスタラは、デバイス証明書を用いてデバイスを認証する。レジスタラはアクセスしてきたデバイスの認証に成功すると、そのデバイスに関連付けられたCPSサーバの情報をデバイスに通知する。CPSのセキュリティリスクとして、デバイスの所有者とは異なる第三者が攻撃者となり、デバイス証明書を入手することが考えられる。攻撃者は、デバイス証明書を利用し、レジスタラに不正な接続先サーバを登録することができる。この場合、レジスタラは当該デバイスを不正な接続先サーバに誘導してしまう。これにより、デバイスからの情報漏洩及びデバイスの不正な制御等が発生する恐れがある。
そこで、本実施形態は、デバイスが正規でないサーバに誘導されることを回避できる情報処理装置、情報処理プログラム、及び情報処理システムを提供するものである。
本実施形態に係る情報処理装置は、ユーザのトークン発行要求に応じて第1トークンを発行する第1トークン発行部と、前記ユーザの情報と前記第1トークンとを対応づけて記憶する第1記憶部と、前記ユーザが所有するデバイスの所有登録情報を記憶する第2記憶部と、前記デバイスから提供される第1トークンを受け付ける第1トークン受付部と、前記第1トークンを提供した前記デバイスの情報が前記第1記憶部に記憶されており、前記第1トークン受付部により受け付けられた前記第1トークンが前記記憶部における前記第1トークンに一致するかの検証を含む所有者検証を行い、所有者検証が成功した前記第1トークンに対応する前記ユーザを前記デバイスの所有者として決定する所有者検証部と、前記所有者が決定された前記デバイスの情報を含む検証済みデータを記憶する第3記憶部とを備える。
第1の実施形態に係るCPSの一例を示すシステム構成図である。 第1の実施形態に係るレジスタラの一構成例を示すブロック図である。 第1の実施形態に係るデバイスの一構成例を示すブロック図である。 第1の実施形態に係るデバイステーブルの一構成例である。 第1の実施形態に係るユーザテーブルの一構成例である。 第1の実施形態に係る所有登録テーブルの一構成例である。 第1の実施形態に係る検証済み所有登録テーブルの一構成例である。 第1の実施形態におけるシステムの動作を示すシーケンス図である。 所有者検証の動作を示すフローチャート図である。 所有権抹消処理の動作を示すフローチャート図である。 所有権移転処理の動作を示すフローチャート図である。 比較例のシステムの動作を示すシーケンス図である。 比較例の接続先CPSサーバの記憶例を示す図である。 比較例のセキュリティリスクを示すシーケンス図である。 第1の実施形態において攻撃を受けた場合の動作を示すシーケンス図である。 第2の実施形態におけるシステムの動作を示すシーケンス図である。 第3の実施形態に係るCPSの一例を示すシステム構成図である。 第3の実施形態に係るレジスタラの一構成例を示すブロック図である。 第3の実施形態に係るデバイスの一構成例を示すブロック図である。 第3の実施形態における所有登録テーブルの一構成例である。 第3の実施形態におけるユーザ鍵テーブルの一構成例である。 第3の実施形態における所有証明書テーブルの一構成例である。 第3の実施形態におけるシステムの動作を示すシーケンス図である。 第4の実施形態に係るCPSの一例を示すシステム構成図である。 第4の実施形態に係る所有者管理サーバの一構成例を示すブロック図である。 第4の実施形態に係る所有証明書発行サーバの一構成例を示すブロック図である。 第4の実施形態に係るデバイスの一構成例を示すブロック図である。 第4の実施形態における所有者証明トークンテーブルの一構成例である。 第4の実施形態におけるシステムの動作を示すシーケンス図である。 所有者証明トークン検証の動作を示すフローチャート図である。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に係るレジスタラ(情報処理装置)1を備えたCPS(Cyber-Physical System)の一例を示すシステム構成図である。図1に示すシステムは、レジスタラ1、デバイス2、データベース(DB)3、及びCPSサーバ4から構成される。図1に示すシステムの目的は、デバイス2とCPSサーバ4を安全に初期設定し、両者が通信できるようにすることである。
レジスタラ1、データベース3及びCPSサーバ4は、例えばクラウド上に配置され、ネットワーク6を介して、ユーザ5が所有するデバイス2と接続されている。
レジスタラ1は、デバイス2をユーザ指定のCPSサーバ4(正規のCPSサーバ)に初期登録する作業を支援するとともにデバイス2が不正なCPSサーバに誘導されることを阻止することを実現するサーバである。レジスタラ1は、ユーザ5がデバイス2の正当な所有者であるかを検証する仕組みを備え、当該仕組みによる検証の結果を記憶・管理する。レジスタラ1は、検証により正当な所有者(ここではユーザ5)が決定されたデバイス2のみを、ユーザ5により指定されるCPSサーバ4に誘導する。上記の仕組みにより攻撃者はデバイスの正当な所有者として認定されないため、デバイス2が攻撃者が指定したCPSサーバに誘導されることは阻止される。
デバイス2は、CPSサーバ4と通信してCPSサーバ4から任意のサービスの提供を受ける端末装置である。デバイス2は固有の秘密鍵(デバイス秘密鍵)と、それに対応する電子証明書(デバイス証明書)を有する。
データベース3は、レジスタラ1により読み書き可能な情報を記憶・管理するための記憶装置である。
CPSサーバ4は、デバイス2と通信してデバイス2に対して任意のサービスを提供するサーバである。
ユーザ5は、デバイス2を所有する、例えば1人の人間、1台のロボット、あるいは、人間又はロボットのグループである。ユーザ5は、デバイス2を用いてCPSに参加する。ユーザ5は、レジスタラ1及びCPSサーバ4に自身のユーザアカウントを作成し、保有している。
ネットワーク6は、主にデバイス2がレジスタラ1及びCPSサーバ4と通信するために用いるネットワークである。ネットワーク6は、例えば、ローカルエリアネットワーク(LAN)、及びインターネットを含む。
レジスタラ1、データベース3及びCPSサーバ4は、有線又は無線で接続されていてもよいし、レジスタラ1の内部にデータベース3又はCPSサーバ4が組み込まれていてもよい。
図2は、第1の実施形態に係るレジスタラ1の一構成例を示すブロック図である。図2で示すレジスタラ1は、所有者検証トークン発行部(第1トークン発行部)11と、所有者検証トークン受付部(第1トークン受付部)12と、所有者検証部13と、デバイス登録受付部14と、接続先CPSサーバ通知部(接続先通知部)15と、所有権抹消処理部(抹消処理部)16と、所有権移転処理部(移管処理部)17とを備える。ただし、これらの要素のうちの一部を備えない構成も可能である。例えば、レジスタラ1は、所有権抹消処理部(抹消処理部)16と、所有権移転処理部(移管処理部)17とのうちの少なくとも一方を備えていなくてもよい。
所有者検証トークン発行部11は、ユーザ5のトークン発行要求に応じて所有者検証トークン(第1トークン)を発行し、所有者検証トークンをユーザ5に送る。所有者検証トークン発行部11は、発行した所有者検証トークンを、ユーザ5の情報と対応づけて、データベース3に記憶する。ユーザ5はデバイス2とは別にスマートフォン又はパーソナルコンピュータ等のユーザ端末を有しており、ユーザ端末を用いてレジスタラ1と通信することができる。以下の説明においてユーザ5が主体とする動作はユーザ5が保有するユーザ端末が行うことを意味する。またユーザ5に対して行う動作はユーザ5が保有するユーザ端末に対して行う動作であるとする。但し、ユーザ端末としてユーザがデバイス2を用いることがある場合があってもよいものとする。
所有者検証トークン受付部12は、デバイス2から提供される所有者検証トークンを受け付けて、所有者検証部13に所有者検証トークンを送る。
所有者検証トークン受付部12は、デバイス2が、データベース3に記憶されたデバイス公開鍵(第1復号鍵)のいずれかに対応する、デバイス秘密鍵(第1暗号鍵)を有しているか否かを検証してもよい。所有者検証トークン受付部12は、当該検証に基づいて、所有者検証トークンを受け付けてもよい。
所有者検証部13は、所有者検証トークンを提供したデバイス2の情報(例えばデバイスID)がデータベース3に記憶されているか、及び所有者検証トークン受付部12が受け付けた所有者検証トークンが、データベース3に記憶された所有者検証トークンと一致するか等を検証(以下、所有者検証)する。所有者検証の具体的な処理内容については後述する。
所有者検証部13は、所有者検証が成功した、所有者検証トークンに対応するユーザ5(以下、検証済みユーザ)を、デバイス2の所有者として決定する。所有者検証部13は、所有者が決定されたデバイス2の情報を含む検証済みデータを、データベース3に記憶する。さらに、所有者検証部13は、検証済みユーザが指定する接続先CPSサーバの情報(例えばURLUniform Resource Locator)等)を、データベース3から取得する。
デバイス登録受付部14は、ユーザ5からデバイス2の登録リクエストを受け付ける。登録リクエストには、デバイス2のデバイス証明書(第1証明書)が含まれる。デバイス証明書は、デバイス2のデバイス公開鍵の情報を含む。デバイス登録受付部14はデバイス証明書を含む情報をデータベース3に記憶する。
登録リクエストにはユーザ5が指定する接続先CPSサーバの情報が含まれる。デバイス登録受付部14は、デバイス2の情報と接続先CPSサーバの情報を関連づけて、データベース3に記憶する。
接続先CPSサーバ通知部15は、所有者検証部13から接続先CPSサーバの情報として例えば、URL(Uniform Resource Locator)を取得する。また、接続先CPSサーバ通知部15は、デバイス2に対して、接続先CPSサーバの情報を通知する。
所有権抹消処理部16は、検証済みユーザからの要求によって、データベース3内から、当該検証済みユーザの情報(検証済みユーザがデバイス2を所有するとの情報)を削除する。
所有権移転処理部17は、検証済みユーザ及び新しいユーザからの要求によって、データベース3内の、デバイス2の所有者を、検証済みユーザから当該新しいユーザに書き換える。
図3は、第1の実施形態に係るデバイス2の一構成例を示すブロック図である。図2で示すデバイス2は、所有者管理部21と、所有者検証トークン記憶部(第5記憶部)22、所有者検証トークン一時記憶部23、デバイス証明書記憶部24、デバイス秘密鍵記憶部25、初期登録処理部26、CPS秘密鍵記憶部27、CPS証明書記憶部28、及びファームウェア記憶部29を備える。これらの要素のうちの一部が存在しなくてもよい。
所有者管理部21は、所有者検証トークンの管理を行う。所有者管理部21はユーザ5から所有者検証トークンを受け付けて、所有者検証トークンを所有者検証トークン記憶部22に記憶する。また、所有者管理部21は、レジスタラ1に所有者検証トークン等を送信し、接続先CPSサーバの情報(URL等)を問い合わせる。所有者管理部21は、レジスタラ1からの指示を受けて所有者検証トークン記憶部22に記憶された所有者検証トークンを削除してもよい。なお、所有者管理部21は、接続すべきレジスタラ1のURL等をあらかじめ記憶している。
所有者検証トークン記憶部22は、所有者検証トークンを記憶する。ユーザ5は、所有者検証トークン記憶部22の情報を読み取り可能だが、直接書き換えることはできない。所有者検証トークン記憶部22の情報は、所有者管理部21によって書き換えるものとする。
所有者検証トークンには、有効期限が設定されていてもよい。所有者管理部21は、所有者検証トークンが記憶されていないとき、又は所有者検証トークンの有効期限が切れているときに、所有者検証トークン記憶部22に新しい所有者検証トークンを記憶してもよい。
所有者検証トークン一時記憶部23は、所有者検証トークンを一時的に記憶する記憶部であり、ユーザ5によって自由に読み取り、書き込み可能である。所有者管理部21は、所有者検証トークン一時記憶部23に書き込まれた所有者検証トークンを読み込み、所有者検証トークンを所有者検証トークン記憶部22に記憶させる。
デバイス証明書記憶部24は、デバイス証明書を記憶する。ユーザ5はデバイス証明書を読み出せるが、書き換えることはできない。デバイス証明書はデバイス2の製造時に記憶される。
デバイス秘密鍵記憶部25はデバイス秘密鍵を記憶する。ユーザ5はデバイス秘密鍵を読み書きできない。デバイス秘密鍵はデバイス2の製造時に記憶される。所有者管理部21は、デバイス秘密鍵記憶部25からデバイス秘密鍵を取得できる。
初期登録処理部26は、所有者管理部21から接続先CPSサーバであるCPSサーバ4の情報を受け取る。また、初期登録処理部26はCPSサーバ4と通信し、初期登録処理を行う。初期登録処理は、CPSサーバ4に、CPSサーバ4が有する暗号鍵(後述のサーバ秘密鍵)を用いて作成されるCPS証明書(対サーバ証明書)の発行を要求する処理を含む。
デバイス2は、CPS秘密鍵記憶部27を備えてもよい。CPS秘密鍵記憶部27は、デバイス2がCPSサーバ4との認証で用いるCPS秘密鍵を記憶する。ユーザ5はCPS秘密鍵を読み書きできない。CPS秘密鍵は、初期登録処理部26によって書き換えられるものとする。
CPS証明書記憶部28は、CPS証明書を記憶する。ユーザはCPS証明書を読み出せるが、書き換えられない。CPS証明書は、CPSサーバ4によって発行され、初期登録処理部26によってデバイス2のCPS証明書記憶部28に記憶されるものとする。
ファームウェア記憶部29は、デバイス2の動作を制御するファームウェアを記憶する記憶部であり、ユーザ5によって自由に読み取り、書き込み可能とする。ファームウェア記憶部29は、初期登録処理部26からの初期登録完了の通知を受け、ファームウェアを実行する。ファームウェアは、CPSサーバ4と通信して機能を果たす。
図4~図7は、第1の実施形態に係るデータベース3が記憶するデータの一例を示す図である。データベース3は、デバイステーブル(第4記憶部)、ユーザテーブル(第1記憶部)、所有登録テーブル(第2記憶部)、検証済み所有登録テーブル(第3記憶部)を有する。
図4は、デバイステーブルの一構成例である。デバイステーブルはデバイス証明書を記憶するテーブルであり、主キーとしてデバイスIDを有する。
図5は、ユーザテーブルの一構成例である。ユーザテーブルは、ユーザの情報と所有者検証トークンとを対応づけて記憶するテーブルであり、主キーとしてユーザIDを有する。ユーザテーブルは主キー以外の他の項目として、パスワードハッシュ、所有者検証トークン、所有者検証トークン有効期限を有する。
パスワードハッシュはユーザのログインパスワードのハッシュ値であり、ユーザ認証に用いられる。
所有者検証トークンはデバイスの所有者を検証するために用いる文字列であり、ユーザごとに異なるものが発行される。所有者検証トークンは、例えば、ユーザのアカウントが新規作成されたときに、レジスタラ1の所有者検証トークン発行部11により発行される。あるいは、その他のタイミング、例えば、ユーザの指示に応じて、所有者検証トークンが発行されてもよい。
所有者検証トークン有効期限は、所有者検証トークンに設定された有効期限である。例えば、発行時点から1週間が有効期限となる。
図6は、所有登録テーブルの一構成例である。所有登録テーブルは、ユーザによって登録されたデバイスの情報(所有登録情報)と、そのデバイスが初期登録を行うべき接続先CPSサーバのURLとを記憶するテーブルである。所有登録テーブルは、主キーとして登録IDを有し、他の項目としてはユーザID、デバイスIDを有する。ユーザID、デバイスIDにより、所有登録テーブルはユーザテーブル、デバイステーブルと紐付けられている。
図7は、検証済み所有登録テーブルの一構成例である。検証済み所有登録テーブルは、所有者検証が完了したデバイスのデバイスIDを主キーとし、当該デバイスIDに対応する所有登録テーブルの登録IDを記憶する。すなわち、検証済み所有登録テーブルは、デバイスと、デバイスの所有者である検証済みユーザと、ユーザが指定する接続先CPSサーバとを紐付けている。
図8は、第1の実施形態におけるシステムの動作を示すシーケンス図である。最初に、レジスタラ1において、ユーザ5のユーザアカウントの作成が行われる(ステップS1)。ユーザアカウントの作成のための作業は、ユーザ5が行ってもよいし、所定の権限を有する者(例えば、システム管理者)が行ってもよい。ユーザアカウントの作成においては、ユーザ5からユーザIDとログインパスワードを送信する。レジスタラ1は、ログインパスワードからパスワードハッシュ値を算出する。レジスタラ1は、ユーザテーブルに、ユーザIDとパスワードハッシュとを含む新たなエントリを記憶する。
ユーザ5はレジスタラ1にログインし、所有者検証トークンの発行要求を送信する(ステップS2)。図2の所有者検証トークン発行部11は、当該発行要求を受け取り、所有者検証トークンを新たに発行する(ステップS3)。所有者検証トークンには、有効期限が設定される。ユーザテーブルのユーザ5のエントリに、所有者検証トークンと有効期限とを記憶する。所有者検証トークン発行部11は、ユーザ5に、発行された所有者検証トークンを提供する(ステップS4)。
所有者検証トークン発行部11は、ユーザテーブルのユーザ5のエントリに、有効期限が切れていない所有者検証トークンが既に記憶されている場合、ステップS3の新たな所有者検証トークンの発行は省略することができる。この場合、ステップS4において、ユーザテーブルに記憶されている所有者検証トークンを、ユーザ5に提供してもよい。
また、ステップS1において、ユーザアカウントの作成と同時に所有者検証トークンを発行し、ユーザテーブルのエントリに所有者検証トークンを記憶してもよい。
次に、ユーザ5はデバイス2のデバイス証明書記憶部24からデバイス証明書を取得する。また、ユーザ5は、接続先CPSサーバとして、CPSサーバ4を指定する。ユーザ5は、デバイス証明書と接続先CPSサーバのURLとを含む登録リクエストを、レジスタラ1に送信する(ステップS5)。
デバイス登録受付部14は、登録リクエストを受け取り、デバイステーブルにデバイスIDとデバイス証明書とを含む新たなエントリを記憶する。また、デバイス登録受付部14は、所有登録テーブルに、デバイステーブルに記憶したデバイスIDと、ユーザ5のユーザIDと、接続先CPSサーバのURLと、を含む新たなエントリを記憶する(ステップS6)。
デバイステーブルへのデバイス証明書の記憶は、事前に行われていてもよい。この場合、デバイス登録受付部14は、登録リクエストから抽出されたデバイス証明書を有するデバイステーブルのエントリを読み出し、デバイスIDを取得する。そしてデバイス登録受付部14は、所有登録テーブルに、取得したデバイスIDと、ユーザ5のユーザIDと、接続先CPSサーバのURLと、を含む新たなエントリを記憶する。
続いて、ユーザ5は、ステップS5で用いたデバイス証明書を、CPSサーバ4に記憶させる(ステップS7)。これにより、CPSサーバ4は、記憶されたデバイス証明書によって、デバイス2を認証することができる。
次に、ユーザ5はステップS4で取得した所有者検証トークンをデバイス2内の所有者検証トークン一時記憶部23に書き込む(ステップS8)。このとき、ユーザテーブルに記憶されている所有者検証トークン有効期限を、あわせてデバイス2に書き込んでもよい。ユーザ5はデバイス2内の所有者管理部21を起動し、書き込んだ所有者検証トークンの受け入れを依頼する。
所有者管理部21は、所有者検証トークン記憶部22の内容を確認する。所有者検証トークン記憶部22に所有者検証トークンが記憶されていなかった場合、所有者管理部21は所有者検証トークン一時記憶部23に書き込まれた所有者検証トークンを、所有者検証トークン記憶部22にコピーする(ステップS9)。ステップS8と同様に、有効期限を所有者検証トークン記憶部22にあわせて記憶してもよい。
ステップS8において、所有者検証トークン記憶部22に既に所有者検証トークンが記憶されている場合、所有者管理部21は当該所有者検証トークンが有する有効期限を確認する。当該有効期限は、所有者検証トークン記憶部22に記憶されている内容を参照して取得してもよいし、データベース3のユーザテーブルのエントリをレジスタラ1に問い合わせて取得してもよい。当該有効期限が切れている場合、所有者管理部21は所有者検証トークン一時記憶部23の所有者検証トークンを所有者検証トークン記憶部22にコピー(上書き)する。当該有効期限が切れていない場合、所有者管理部21は所有者検証トークン一時記憶部23の所有者検証トークンをコピー(上書き)しない。この場合、所有者管理部21はユーザ5にエラーを通知してもよい。
デバイス2の所有者管理部21はレジスタラ1に接続し、接続先CPSサーバを問い合わせる(ステップS10)。具体的には、所有者管理部21は、所有者検証トークン記憶部22に記憶されている所有者検証トークンと、デバイス証明書記憶部24に記憶されているデバイス証明書とを、レジスタラ1に送信する。
ステップS1~S9は、レジスタラ1に対する初期の登録処理であり、2回目以降、デバイス2から接続先CPSサーバを問い合わせる際には省略できる。また、デバイス2の所有者が変更された場合、ステップS2~S9の処理に代わって、後述の所有権移転処理を行うこともできる。
レジスタラ1の所有者検証トークン受付部12は、デバイス2から所有者検証トークンとデバイス証明書とを受け取る。このとき、デバイス秘密鍵の検証をしてもよい(ステップS11)。デバイス秘密鍵の検証では、所有者検証トークン受付部12は、デバイステーブルに記憶されたデバイス公開鍵のいずれかに対応するデバイス秘密鍵をデバイス2が有しているかを検証する。例えば、デバイス2からデバイス秘密鍵で暗号化された所定のデータを受信し、所有者検証トークン受付部12はデバイス公開鍵で所定のデータを復号できるか否かを検証する。
続いて、レジスタラ1内の所有者検証部13は、デバイス2の所有者検証を行う(ステップS12)。所有者検証の処理の詳細は後述する。所有者検証が成功した場合、所有者検証部13は所有登録テーブルから所有者検証が成功したユーザ(検証済みユーザ)についてのエントリを読み出す。所有登録テーブルのエントリからは、接続先CPSサーバとしてCPSサーバ4のURLを抽出できる。所有者検証部13は、所有登録テーブルのエントリから抽出したCPSサーバ4のURLを含む、接続情報をデバイス2に送信する(ステップS13)。
デバイス2内の所有者管理部21は接続先CPSサーバのURLを初期登録処理部26に渡し、接続先CPSサーバに対する初期登録処理を依頼する。初期登録処理部26は、CPS秘密鍵を生成し、生成したCPS秘密鍵をCPS秘密鍵記憶部27に記憶する。また、初期登録処理部26は、証明書署名リクエスト(Certificate Signing Request;CSR)を生成する。CSRは、例えば、CPS公開鍵と、所定のデータとを含む。また、CSRはこれら列挙した情報に対してCPS秘密鍵を用いて施した、デジタル署名を含む。初期登録処理部26は、CSRを接続先CPSサーバに送信することで、初期登録処理の要求を行う(ステップS14)。
CPSサーバ4はステップS7で記憶されたデバイス証明書によって、CSRを認証する。CPSサーバ4は自身の有するサーバ秘密鍵を用いてCPS証明書を発行し、発行したCPS証明書をデバイス2に提供する(ステップS15)。デバイス2内の初期登録処理部26はCPS証明書を受け取ると、当該CPS証明書をCPS証明書記憶部28に格納する。
図9は、所有者検証の動作を示すフローチャート図である。所有者検証は、上述の通りレジスタラ1内の所有者検証部13で行われる。
最初に、デバイステーブルチェックを行う(ステップS21)。デバイステーブルチェックにおいては、デバイス2から取得したデバイス証明書を有するエントリが、デバイステーブルに存在するか否かを確認する。図8のステップS5を経ている場合は、通常はデバイステーブルに該当のエントリが存在する。
デバイステーブルに該当のエントリが存在する場合、デバイステーブルのエントリからデバイスIDを特定する(ステップS22)。特定したデバイスIDより、検証済み所有登録テーブルチェックを行う(ステップS23)。検証済み所有登録テーブルチェックにおいては、特定したデバイスIDを記憶したエントリが検証済み所有登録テーブルに存在するか否かを確認する。デバイス2の所有者検証をはじめて行う場合は、通常は検証済み所有登録テーブルに該当のエントリは存在しない。
検証済み所有登録テーブルに該当のエントリが存在しない場合、所有者検証トークンの有効性チェックを行う(ステップS24)。デバイス2から取得した所有者検証トークンを記憶したエントリがユーザテーブルに存在し、かつ当該エントリの有効期限が切れていないという条件を満たす場合、所有者検証トークンは有効である。条件を満たさない場合は、所有者検証トークンは無効である。
所有者検証トークンが有効である場合、ユーザテーブルの当該所有者検証トークンを記憶したエントリから、所有者検証トークンに対応するユーザIDを特定する(ステップS25)。続いて、所有登録テーブルチェックを行う(ステップS26)。所有登録テーブルチェックでは、所有登録テーブルに、ステップS22で特定したデバイスIDと、ステップS25で特定したユーザIDとを有するエントリが存在しているか否かを確認する。図8のステップS5を経ている場合は、通常は所有登録テーブルチェックに該当のエントリが存在する。
所有登録テーブルに該当のエントリが存在する場合、所有登録テーブルのエントリから、登録IDを特定する(ステップS27)。ステップS27で特定した登録IDと、ステップS22で特定したデバイスIDとを含む新たなエントリを、検証済み所有登録テーブルに記憶する(ステップS28)。これにより、所有者検証トークンに対応するユーザ5が、デバイス2の所有者として決定される。
ステップS27で特定した登録IDにより、所有登録テーブルから当該登録IDを有するエントリを読み出す(ステップS29)。これにより、所有者検証は成功として終了する
ステップS23で、検証済み所有登録テーブルに該当のエントリが存在する場合、検証済み所有登録テーブルから登録IDを特定する(ステップS30)。ステップS30で特定した登録IDに基づき、ステップS29で所有登録テーブルからエントリを読み出す。これにより、所有者検証は成功として終了する。
デバイステーブルに該当のエントリが存在しない場合(ステップS21)、所有者検証トークンが無効である場合(ステップS24)、又は所有登録テーブルチェックに該当のエントリが存在しない場合(ステップS26)は、デバイス2にエラーを通知する(ステップS31)。これにより、所有者検証は失敗として終了する。
このように、所有者検証では、デバイス2が記憶する所有者検証トークンを用いて、デバイス2の正当な所有者を決定する。また、所有者検証の結果として所有者が決定されたデバイスに関する情報を検証済み所有登録テーブルに記憶する。
図10は、所有権抹消処理の動作を示すフローチャート図である。所有権抹消処理は、レジスタラ1内の所有権抹消処理部16で行われる。以下では、ユーザ5がデバイス2の所有権を放棄する例を説明する。
最初に、ユーザ5から所有権放棄リクエストを受け取る(ステップS41)。所有権放棄リクエストには放棄対象のデバイス2のデバイスIDが含まれる。
次に、所有者チェックを行う(ステップS42)。所有者チェックにおいては、ユーザ5がデバイス2の所有者であることを確認する。検証済み所有登録テーブルに、デバイス2のデバイスIDを有するエントリが存在し、かつ当該エントリの登録IDと紐付く所有登録テーブルのエントリに、ユーザ5のユーザIDが記憶されているという条件を満たす場合、ユーザ5はデバイス2の所有者である。条件を満たさない場合、ユーザ5はデバイス2の所有者ではない。
ユーザ5がデバイス2の所有者である場合、検証済み所有登録テーブルのデバイス2のデバイスIDを有するエントリ及び、当該検証済み所有登録テーブルのエントリの登録IDを有する所有登録テーブルのエントリを削除する(ステップS43)。
また、デバイス2の所有者管理部21と通信し、所有者検証トークン記憶部22に記憶された所有者検証トークンを削除させる(ステップS44)。これにより、所有権抹消処理を終了する。
ステップS44で所有者検証トークンが削除されることにより、新しいユーザがデバイス2に、新たに所有者検証トークンを記憶させることができるようになる。これにより、所有権抹消処理の直後から、所有者検証により、新しいユーザがデバイス2の所有者として扱われることができる。なお、デバイス2が所有者検証トークンを削除しなかった場合でも、所有者検証トークンの有効期限を過ぎれば、新たに所有者検証トークンを記憶(上書き)させることができる。
ユーザ5がデバイス2の所有者ではない場合(ステップS42)は、ユーザ5にエラーを通知する(ステップS45)。これにより、所有権抹消処理を終了する。
このように、所有権抹消処理では、レジスタラ1はデバイス2の正当な所有者からの指示に従い、デバイス2について所有権を抹消(すなわち、デバイス2についての所有者の情報を抹消)する。また、レジスタラ1はデバイス2と通信し、デバイス2の所有者検証トークン記憶部22をクリアする。これにより、デバイス2の新たな所有者について、図9の所有者検証を直ちに実行できるようになる。例えば、所有権を抹消したユーザ5がデバイス2を他のユーザに譲り渡した場合に、当該他のユーザが自身を新たな所有者として効率的に登録できる。
図11は、所有権移転処理の動作を示すフローチャート図である。所有権移転処理は、レジスタラ1内の所有権移転処理部17で行われる。以下では、ユーザ5がデバイス2の所有権を他のユーザに移転する例を説明する。
最初に、ユーザ5から所有権移転リクエストを受け取る(ステップS51)。所有権移転リクエストには移転対象のデバイス2のデバイスIDと、移転先のユーザのユーザIDが含まれる。
次に、所有者チェックを行う(ステップS52)。所有者チェックにおいては、ユーザ5がデバイス2の所有者であることを確認する。具体的な処理内容は、所有権抹消処理における所有者チェック(図10のステップS42)と同様である。
ユーザ5がデバイス2の所有者である場合、移転先のユーザに対して所有権移転の同意チェックを行う(ステップS53)。移転先のユーザからの同意を得た場合は、所有登録テーブルにデバイス2のデバイスIDと、移転先のユーザのユーザIDとを含む新たなエントリを記憶する(ステップS54)。ステップS53において、移転先のユーザに接続先CPSサーバの情報の提供を要求してもよい。移転先のユーザから取得した接続先CPSサーバの情報を、ステップS54で合わせて記憶してもよい。
次に、検証済み所有登録テーブルから、デバイス2のデバイスIDを有する古いエントリを削除する。また、ステップS54で記憶した所有登録テーブルのエントリの登録IDと、デバイス2のデバイスIDとを有する新たなエントリを、検証済み所有登録テーブルに記憶する(ステップS55)。
ユーザ5がデバイス2の所有者ではない場合(ステップS52)、又は移転先ユーザからの同意が得られない場合(ステップS53)は、ユーザ5にエラーを通知する(ステップS56)。これにより、所有権移転処理を終了する。
このように、所有権移転処理では、レジスタラ1はデバイス2の移転元であるユーザ5からの指示及び、移転先のユーザの同意によって、デバイス2の所有権を移転(すなわち、デバイス2の所有者に関する情報を変更)する。検証済み所有登録テーブルにおいてユーザIDが更新されるため、図9の所有者検証においても、移転先のユーザがデバイス2の正当な所有者であると認められる。
以下、本実施形態に係るシステムの有効性を示すため、図12~図14を用いて、比較例対象となるシステム(比較例のシステム)について説明する。
図12は、比較例のシステムの動作を示すシーケンス図である。図12で示す動作は、図8で示す動作と比較して、所有者検証(図8のステップS12)が存在しないという点で大きく異なる。所有者検証を行わないことにともない、所有者検証トークンの要求から提供までの処理(ステップS2~S4)及び、所有者検証トークンをデバイス2へ記憶させる処理(ステップS8~S9)等も、存在しない。
図12の動作においては、ユーザ5はデバイス証明書とCPSサーバ4のURLとを含む登録リクエストをレジスタラ1に送信する(ステップS5’)。
レジスタラ1は、CPSサーバ4のURLをデバイス証明書と紐付けて、記憶する(ステップS6’)。図13は、レジスタラ1に記憶された情報の一構成例を示す図である。
続いて、ユーザ5はデバイス証明書をCPSサーバ4に登録する(ステップS7’)。デバイス2は、デバイス証明書を提示して接続先CPSサーバをレジスタラ1に問い合わせる(ステップS10’)。レジスタラ1は、図13に示す情報から、デバイス証明書が記憶されたエントリを読み出し、CPSサーバ4のURLを取得し、デバイス2に通知する(ステップS13’)。その後は、図8のステップS14~S15と同様に、初期登録処理を行う(ステップS14’)。
図14は、比較例のシステムにおけるセキュリティリスクを示すシーケンス図である。前提として、攻撃者41は、デバイス2のデバイス証明書を入手済みである。この状況は、デバイス証明書がデバイス2の製造者によって広く公開されている場合、容易に発生しうる。また、そうでなくても、デバイス2をユーザ5に販売した販売事業者は、そのデバイス証明書を入手できる可能性が高い。
攻撃者41の目的は、ユーザ5の所有するデバイス2を、攻撃者41が管理する不正なCPSサーバ42に誘導し、デバイス2から情報を盗む、又は不正な遠隔操作を仕掛けることにある。
攻撃者41は、入手したデバイス2のデバイス証明書と、CPSサーバ42のURLと、を含む登録リクエストをレジスタラ1に送信する(ステップS5’’)。レジスタラ1は、CPSサーバ42のURLを、デバイス2のデバイス証明書と紐付けて記憶する(ステップS6’’)。続いて、攻撃者41はデバイス証明書をCPSサーバ42に登録する(ステップS7’’)。
デバイス2は、デバイス証明書を提示して接続先CPSサーバをレジスタラ1に問い合わせる(ステップS10’)。レジスタラ1は、図12と同様に、デバイス証明書が記憶されたエントリを読み出すが、当該エントリには不正なCPSサーバ42のURLが記憶されている。これにより、レジスタラ1はデバイス2に接続先CPSサーバとして、不正なCPSサーバ42のURLを通知する(ステップS13’’)。
デバイス2は、不正なCPSサーバ42と初期登録処理を行う(ステップS14’’)。これにより、デバイス2は、CPSサーバ42を介して、攻撃者41に機密情報を漏洩(ステップS16’’)してしまう、又は攻撃者41から不正な遠隔操作(ステップS16’’’)を受けてしまう恐れがある。
このように、図12で示した比較例のシステムにおいては、攻撃者41は、デバイス2のデバイス証明書を利用し、レジスタラ1に不正な接続先サーバ(CPSサーバ42)を記憶させることができる。この場合、レジスタラ1はデバイス2をCPSサーバ42に誘導してしまう。これにより、デバイス2はCPSサーバ42を介して、攻撃者41に情報を漏洩する、あるいは攻撃者41から不正な制御等を受ける恐れがある。
図15は、第1の実施形態のシステムにおいて、図14と同様の攻撃を受けた場合の動作を示すシーケンス図である。ユーザ5は、図8で示した例と同様に、レジスタラ1に対してユーザアカウントの生成と所有者トークンの取得する処理(ステップS2)、デバイス証明書と接続先CPSサーバの登録の処理(ステップS5)を行うことで、所有登録テーブルに正規のCPSサーバ4を記憶できる(ステップS6)。また、ユーザ5はデバイス証明書を正規のCPSサーバ4を記憶させる(ステップS7)。
一方、攻撃者41もユーザ5と同様に、ステップS2’’及びステップS5’’の処理を行うことで、所有登録テーブルに不正なCPSサーバ42を登録させることができる(ステップS6’’)。また、攻撃者41はデバイス証明書を不正なCPSサーバ42を記憶させる(ステップS7’’)。
ステップS6’’が行われた後の時点において、デバイステーブルにはデバイス2のデバイス証明書を有するエントリとして、攻撃者が登録したエントリとユーザ5が登録した正規のエントリとの計2件(デバイス証明書に一意制約がある場合は、1件)記憶されている。また、ユーザテーブルにはユーザ5に関するエントリと、攻撃者41に関するエントリの、計2件のエントリが記憶されている。ユーザ5のエントリと攻撃者41のエントリには、それぞれ異なる所有者検証トークンが記憶されている。
所有登録テーブルには、デバイス2に対しユーザ5の指定する接続先CPSサーバ(CPSサーバ4)を記憶するエントリと、デバイス2に対し攻撃者41の指定する接続先CPSサーバ(CPSサーバ42)が記憶するエントリの、計2件のエントリが記憶されている。
ユーザ5は、自身に発行された所有者検証トークンを、ユーザ5が所持するデバイス2に書き込み、記憶させることができる(ステップS8~S9)。一方、攻撃者41は、デバイス2を所持していないため、攻撃者41に発行された所有者検証トークンをデバイス2に書き込むことができない。
デバイス2は、ユーザ5に発行された所有者検証トークンを利用し、レジスタラ1に接続先CPSの問い合わせを行う(ステップS10)。レジスタラ1は、所有者検証を実施する(ステップS12)。所有者検証は、図9に示した通りに行われる。デバイス2の所有者検証がはじめて行われた場合、図9のステップS24~S27において、ユーザ5に発行された所有者検証トークンに基づき、所有登録テーブルからユーザ5についてのエントリが抽出される。また、図9のステップS28により、所有者検証トークンに対応するユーザ5が、デバイス2の所有者として決定される。
ステップS12の所有者検証の結果、ユーザ5の指定するCPSサーバ4が、接続先CPSサーバとして抽出される。レジスタラ1は、デバイス2にCPSサーバ4のURLを含む情報を通知する(ステップS13)。これにより、デバイス2は正規のCPSサーバ4に対して初期登録処理(ステップS14)を行うことができる。
図15に示すように、ユーザ5及び攻撃者41は、デバイス2のデバイス証明書をレジスタラ1に提示することで、所有登録テーブルに接続先CPSサーバを指定するエントリを記憶させることができる。しかし、所有登録テーブルにエントリを記憶しただけでは、デバイス2の正当な所有者と認められない。図9に示す所有者検証を実施することで、初めてデバイス2の正当な所有者が決定され、検証済み所有登録テーブルにその結果が記憶される。
このように、第1の実施形態においては、デバイス2を所持するユーザ5に所有者検証トークンを発行し、デバイス2にユーザ5の所有者検証トークンを記憶させている。また、デバイス2が記憶する所有者検証トークンに基づいて、所有者検証を行うことで、ユーザ5をデバイス2の正当な所有者と判別することができる。これにより、レジスタラ1はユーザ5が指定する、正当な接続先CPSサーバにデバイス2を誘導することができる。また、正当な所有者ではない者がデバイスを不正に制御すること、又は自身のサーバへ誘導することを防ぐことができる。
(第2の実施形態)
CPSサーバ4へデバイス証明書を記憶させる処理を、レジスタラ1の処理に組み込んでもよい。図16は、第2の実施形態におけるシステムの動作を示すシーケンス図である。第1の実施形態においては、ユーザ5が、CPSサーバ4へデバイス証明書を記憶させた。第2の実施形態においては、レジスタラ1が、CPSサーバ4へデバイス証明書を記憶させるという点が異なる。
図16に示す動作では、ユーザ5がデバイス証明書をCPSサーバ4に記憶させる処理はない。所有者検証(ステップS12)の直後に、CPSサーバ4へデバイス証明書を記憶させる処理(ステップS61)が追加されている。ステップS61では、ステップS13で通知する接続先CPSサーバに対し、デバイステーブルから取得したデバイス証明書を記憶させる。
このように、第2の実施形態においては、レジスタラ1がCPSサーバ4へデバイス証明書を記憶させる。CPSサーバ4へのデバイス証明書の記憶を、レジスタラ1の処理に組み込むことで、ユーザ5の手間を減らすことができる。
(第3の実施形態)
第1の実施形態において、レジスタラ1は、所有者検証の機能と、デバイスを接続先CPSサーバに誘導する機能の、2つの機能を有していた。2つの機能のうち、デバイスを接続先CPSサーバに誘導する機能を、レジスタラ1から分離させてもよい。
第3の実施形態においては、ランデブーサーバが、デバイスを接続先CPSサーバに誘導する機能を有する。図14で示した例と同様に、攻撃者が不正なCPSサーバをランデブーサーバに記憶させることが考えられる。この場合において、ランデブーサーバが通知するCPSサーバが、正当な所有者のCPSサーバであるか否かを、デバイス側でどのように検証するかが問題となる。
第3の実施形態では、レジスタラ1が、所有者検証の結果に基づく所有証明書(Ownership Voucher)を発行し、正当な所有者が指定したCPSサーバに提供する。CPSサーバは、提供された所有証明書を、デバイスに対し提示する。これにより、デバイス側は接続先CPSサーバが、正当な所有者が指定したCPSサーバであると確認できる。
図17は、第3の実施形態に係るCPSの一例を示すシステム構成図である。図17に示すシステムは、図1に示すシステムと比較して、ランデブーサーバ7を備えるという点で異なる。ランデブーサーバ7は、必ずしもレジスタラ1と物理的に分離している必要はなく、レジスタラ1の内部に設けられていてもよい。
ランデブーサーバ7は、デバイス2からの問い合わせに応答し、CPSサーバ4にデバイス2を誘導する。
レジスタラ1は、所有者検証によってユーザ5がデバイス2の正当な所有者であることを検証する。また、レジスタラ1は、ユーザ5の指定するCPSサーバの要求に応じて、デバイス2の所有証明書を発行する。
図18は、第3の実施形態に係るレジスタラ1の一構成例を示すブロック図である。図18で示すレジスタラ1は、図2で示した構成要素に加えて、さらにユーザ鍵ペア生成部51、所有証明書ヘッダ発行部52、所有証明書発行部53、所有証明書移管部54を備える。なお、図18では所有権抹消処理部16及び所有権移転処理部17について、図示を省略している。
ユーザ鍵ペア生成部51は、ユーザごとに対となるユーザ公開鍵(第2復号鍵)とユーザ秘密鍵(第2暗号鍵)を生成し、ユーザ公開鍵とユーザ秘密鍵のペアをデータベース3に記憶する。
第3の実施形態における所有者検証部13は、所有者検証トークンに基づき、図9で示した所有者検証を行う。所有者検証によってデバイス2の所有者(図18の例では、ユーザ5)を決定し、所有者検証の結果として所有者の情報を所有証明書ヘッダ発行部52に通知する。
所有証明書ヘッダ発行部52は、所有証明書ヘッダ(第2証明書)を発行し、所有証明書ヘッダをデバイス2に送信する。所有証明書ヘッダは、例えばFIDO Device Onboard規格で定義されるデータ構造を有する。また、所有証明書ヘッダは、デバイス2の所有者のユーザ公開鍵を含む。
所有証明書発行部53は、デバイス2から後述のHMAC(Hash-based Message Authen-tication Code又はデバイス認証コード)値を受け付け、HMAC値と所有証明書ヘッダとから所有証明書を発行し、データベース3に記憶する。
所有証明書移管部54は、CPSサーバ4からの移管リクエスト(所有証明書の移管のリクエスト)を受け付ける。所有証明書移管部54は、データベース3に記憶されている所有証明書と、ユーザ秘密鍵で施した電子署名と、を含む移管済み所有証明書を発行する。
図19は、第3の実施形態に係るデバイス2の一構成例を示すブロック図である。図19で示すデバイス2は、図3で示した構成要素に加えて、所有証明書管理部61と、デバイス認証情報記憶部62と、HMAC秘密鍵記憶部63とを備える。なお、図19では所有者検証トークン一時記憶部23、CPS秘密鍵記憶部27、CPS証明書記憶部28、デバイス秘密鍵記憶部25及びデバイス証明書記憶部24について、図示を省略している。
第3の実施形態における所有者管理部21は、ユーザ5から所有者検証トークンを受け付けて記憶するとともに、レジスタラ1に所有者検証トークンを送信することで、所有証明書ヘッダの発行を要求する。また、所有者管理部21は、ランデブーサーバ7に接続先CPSサーバの情報(URL等)を問い合わせる。なお、所有者管理部21は、接続すべきランデブーサーバ7のURL等をあらかじめ記憶している。
所有証明書管理部61は、レジスタラ1と通信し、所有証明書発行に必要な処理を行う。具体的には、HMAC秘密鍵を生成し、HMAC秘密鍵記憶部63に記憶する。また、所有証明書管理部61は、所有証明書ヘッダとHMAC秘密鍵とによりハッシュ値(HMAC値)を算出する。所有証明書管理部61は、レジスタラ1に対し、HMAC値を送信することで、所有証明書の発行を要求する。なお、所有証明書管理部61は、接続すべきレジスタラ1のURL等をあらかじめ記憶している。
デバイス認証情報記憶部62は、所有証明書発行に必要なデバイス認証情報(後述)を記憶する。デバイス認証情報記憶部62対しては、所有証明書管理部61だけが読み書きできる。
HMAC秘密鍵記憶部63は、所有証明書に付与するメッセージ認証コードHMACを生成するためのHMAC秘密鍵を記憶する。HMAC秘密鍵記憶部63は、所有証明書管理部61だけが読み書きできる。
第3の実施形態における初期登録処理部26は、初期登録処理を行うとともに、CPSサーバ4に移管済み所有証明書の提示を要求し、デバイス認証情報記憶部62に記憶された情報に基づいて、移管済み所有証明書を検証する。
図20は、第3の実施形態における所有登録テーブルの一構成例である。第3の実施形態における所有登録テーブルは、接続先CPSサーバのURLの記憶を有しないという点で、第1の実施形態と異なる。
図21は、第3の実施形態におけるデータベース3が記憶する、ユーザ鍵テーブルの一構成例である。ユーザ鍵テーブルは、各ユーザについてユーザ秘密鍵とユーザ公開鍵のペアを記憶するテーブルであり、主キーとしてユーザIDを有する。
図22は、第3の実施形態におけるデータベース3が記憶する、所有証明書テーブルの一構成例である。所有証明書テーブルは、ユーザ及びデバイスの組ごとの所有証明書を記憶するテーブルであり、主キーとして所有証明書IDを有する。所有証明書テーブルは他の項目として、ユーザID、デバイスID及び所有証明書データを有する。
図23は、第3の実施形態におけるシステムの動作を示すシーケンス図である。図23の動作では、最初に、図8の例と同様に、ユーザ5のユーザアカウントの作成を行う(ステップS1)。次に、レジスタラ1内のユーザ鍵ペア生成部51にて、ユーザ鍵ペアの発行を行う(ステップS71)。ユーザ鍵テーブルに、ユーザ5のユーザ公開鍵とユーザ秘密鍵を含む新たなエントリを記憶する。
続いて、図8の例と同様に、ユーザ5はレジスタラ1に所有者検証トークンの発行を要求(ステップS2)する。レジスタラ1は所有者検証トークンを発行(ステップS3)し、ユーザ5に送信する。ユーザ5はデバイス証明書をレジスタラ1に記憶させる(ステップS5)とともに、所有者検証トークンをデバイス2に記憶させる(ステップS9)。
デバイス2の所有者管理部21がレジスタラ1に対して所有者検証トークンを送信する。図8の例と同様だが、図23の例ではデバイス2は接続先CPSサーバの情報の提供ではなく、所有証明書ヘッダの発行を要求する(ステップS72)。
レジスタラ1の所有者検証部13は図8の例と同様に、所有者検証を行う(ステップS12)。所有者検証が成功した場合、所有者検証部13は所有登録テーブルから検証済みユーザについてのエントリを読み出す。ユーザ鍵テーブルから、当該検証済みユーザのユーザIDを有するエントリを読み出す。当該ユーザ鍵テーブルのエントリからは、ユーザ公開鍵が取得できる。
所有証明書ヘッダ発行部52は、所有者検証部13が取得したユーザ公開鍵を含む所有証明書ヘッダを生成する。所有証明書ヘッダ発行部52は、デバイス2に所有証明書ヘッダを発行するとともに、HMAC値を要求する(ステップS73)。
デバイス2の所有証明書管理部61は、レジスタラ1から所有証明書ヘッダを受け取り、所有証明書ヘッダをデバイス認証情報記憶部62に保存する。また、所有証明書管理部61はHMAC秘密鍵を新たに生成し、HMAC秘密鍵記憶部に保存する(ステップS74)。所有証明書管理部61は、このHMAC秘密鍵を用いて所有証明書ヘッダに対するHMAC値を算出する。
所有証明書管理部61は、所有証明書ヘッダとHMAC秘密鍵とによりHMAC値を算出する。所有証明書管理部61は、レジスタラ1に対し、HMAC値を送信し、所有証明書の発行を要求する(ステップS75)。
レジスタラ1の所有証明書発行部53は、デバイス2からHMAC値を受け付け、HMAC値と所有証明書ヘッダとから所有証明書を発行する(ステップS76)。所有証明書発行部53は、所有証明書と、ステップS12で読み出した所有登録テーブルのエントリが有する、ユーザID及びデバイスIDと、を含む新たなエントリを、所有証明書テーブルに記憶する。
ユーザ5は、CPSサーバ4に対し、所有証明書の移管についてユーザ5の認可を受けていることを示すトークン(以下、認可トークン)の発行処理を行う(ステップS77)。認可トークンは、例えばOAuth2規格にのっとって発行される。ユーザ5が、CPSサーバ4に所有証明書の移管について、認可処理の開始を通知する。CPSサーバ4は、ユーザ5をレジスタラ1にリダイレクトさせ、レジスタラ1へ認可することを求める。ユーザ5がレジスタラ1へ認可すると、レジスタラ1からCPSサーバ4に対して認可トークンを発行する。
CPSサーバ4は、レジスタラ1に対して移管リクエストを送信する(ステップS78)。移管リクエストは、認可トークンと、移管対象のデバイスIDと、CPSサーバ4のサーバ公開鍵と、を含む。また、移管リクエストは、これら列挙した情報に対してサーバ秘密鍵を用いて施した、デジタル署名を含む。
レジスタラ1の所有証明書移管部54は、CPSサーバ4から移管リクエストを受け付ける。所有証明書移管部54は、移管リクエストを検証する(ステップS79)。移管リクエストの検証は、例えば認可トークンが正当であるかの検証を含む。また、所有証明書移管部54は、移管リクエストが有するデジタル署名を、サーバ公開鍵によって検証する。さらに、所有証明書移管部54は、所有証明書テーブルに、認可トークンで認証されたユーザのユーザIDと、移管リクエストが有する移管対象のデバイスIDと、を含むエントリが存在するかを検証する。所有証明書移管部54は、所有証明書テーブルにエントリが存在する場合は、当該エントリから所有証明書を読み出す。
所有証明書移管部54は、上記検証が成功した場合、読み出した所有証明書を、移管リクエスト中に含まれるサーバ公開鍵を当該所有証明書に追加することより拡張する。また、所有証明書移管部54は、拡張した所有証明書に対してユーザ秘密鍵で電子署名を施すことで、移管済み所有証明書を作成する。所有証明書移管部54は、CPSサーバ4に対して、作成した移管済み所有証明書を送信する(ステップS80)。
CPSサーバ4は、ステップS80で取得した移管済み所有証明書をランデブーサーバ7に記憶させる(ステップS81)。これにより、ランデブーサーバ7は、CPSサーバ4がデバイス2の正当な接続先CPSサーバであると認識する。
デバイス2は、ランデブーサーバ7に接続先CPSサーバの情報を問い合わせる。ランデブーサーバ7は、CPSサーバ4のURLを含む、接続情報をデバイス2に通知する(ステップS82)。
図8の例と同様、初期登録処理部26は、CPSサーバ4の接続情報に基づいて、CPSサーバ4との初期登録処理を行う(ステップS14)。また、初期登録処理部26は、CPSサーバ4から移管済み所有証明書を受け取り、移管済み所有証明書を検証する(ステップS83)。
移管済み所有証明書の検証においては、例えばデバイス認証情報記憶部62に記憶されたユーザ公開鍵のハッシュ値と、移管済み所有証明書に含まれるユーザ公開鍵のハッシュ値が、一致するか否かの検証を行う。また、移管済み所有証明書に含まれるHMAC値を、HMAC秘密鍵記憶部63に記憶されるHMAC秘密鍵によって検証する。また、移管済み所有証明書に含まれる電子署名を、ユーザ公開鍵にて検証する。移管済み所有証明書の検証が成功した場合、デバイス2はCPSサーバ4を正当な接続先であると確認する。
このように、第3の実施形態では、レジスタラ1が所有者検証により、デバイス2の所有者(図23の例では、ユーザ5)を決定し、所有証明書を発行する。さらに、ユーザ5から認可を受けたCPSサーバ4に対して所有証明書を移管できる。CPSサーバ4は、所有証明書を、ランデブーサーバ7及びデバイス2に対し提示することにより、ユーザ5のCPSサーバであると証明できる。
(第4の実施形態)
第3の実施形態において、レジスタラ1は、所有者検証の機能と、所有証明書の発行機能の、2つの機能を有していた。第4の実施形態では、レジスタラ1のこれら2つの機能のうち所有証明書の発行機能を分離して、所有証明書の発行機能を有する所有証明書発行サーバを新たに設ける。
図24は、第4の実施形態に係るCPSの一例を示すシステム構成図である。図24に示すシステムは、図17に示すシステムと比較して、所有者管理サーバ71、所有証明書発行サーバ(証明書発行装置)72、所有者データベース73、及び所有証明書データベース74を備えるという点で異なる。所有者管理サーバ71及び所有者データベース73は、所有証明書の発行機能が取り除かれたレジスタラ1及び当該レジスタラ1が使用するデータベース3に、それぞれ対応する。
所有者管理サーバ71と所有証明書発行サーバ72は、必ずしも物理的に分離している必要はなく、所有者管理サーバ71の内部に所有証明書発行サーバ72に含めてもよい。また、所有者管理サーバ71と所有証明書発行サーバ72のいずれかが、ランデブーサーバ7を兼ねてもよい。
所有者管理サーバ71は、デバイスの所有者検証と管理の機能を有する。また、所有者検証によってユーザ5がデバイス2の正当な所有者であることを検証する。
所有証明書発行サーバ72は、ユーザ5の指定するCPSサーバの要求に応じて、デバイス2の所有証明書を発行する。その際、所有者管理サーバ71と通信して、デバイス2の正当な所有者を確認する。
所有者データベース73は、所有者管理サーバ71が所有者に関する情報を記憶・管理するための記憶装置である。
所有証明書データベース74は、所有証明書発行サーバ72が所有証明書に関する情報を記憶・管理するための記憶装置である。
図25は、第4の実施形態に係る所有者管理サーバ71の一構成例を示すブロック図である。図25で示す所有者管理サーバ71の構成は、基本的には図2に示すレジスタラ1の構成に準じる。図25で示す所有者管理サーバ71は、図2の例と比較して、接続先CPSサーバ通知部15を備えていない。また、所有者証明トークン発行部(第2トークン発行部)81及びデバイス詳細情報開示部(情報開示部)82を備えるという点が異なる。
所有者検証部13は、所有者検証トークンに基づき、図9で示した所有者検証を行う。所有者検証によってデバイス2の所有者(図25の例では、ユーザ5)を決定する。
所有者証明トークン発行部81は、所有者検証部13による所有者検証の結果を取得し、デバイス2に対して、デバイス2の正当な所有者を示す所有者証明トークン(第2トークン)を発行する。
デバイス詳細情報開示部82は、所有証明書発行サーバ72に対し、所有者証明トークンの検証に必要なデータを提供する。具体的には、デバイス詳細情報開示部82は、所有証明書発行サーバ72から所有者証明トークンを受け取り、所有者証明トークンに紐づくデバイス2の所有者のユーザIDと、デバイス2のデバイス証明書とを開示する。
図26は、第4の実施形態に係る所有証明書発行サーバ72の一構成例を示すブロック図である。図26で示す所有証明書発行サーバ72は、図18で示すレジスタラ1の構成要素である、ユーザ鍵ペア生成部51、所有証明書ヘッダ発行部52、所有証明書発行部53、及び所有証明書移管部54を備える。また、ユーザアカウント作成リクエスト受付部91、所有者証明トークン受付部(第2トークン受付部)92、及び所有者証明トークン検証部93(第2トークン検証部)を、新たに備える。
ユーザアカウント作成リクエスト受付部91は、ユーザ5からの要求により、所有者管理サーバ71からユーザ5の情報を受け取り、ユーザ鍵ペアの生成をユーザ鍵ペア生成部51に指示する。
所有者証明トークン受付部92は、デバイス2から所有者証明トークンと、デバイス証明書を受け付けるとともに、デバイス2から所有者証明トークンの検証要求を受け付ける。
所有者証明トークン検証部93は、所有者管理サーバ71から必要なデータ(例えば、所有者証明トークンの有効か否かの情報、デバイス2の情報、デバイス2の所有者の情報)を受け取り、所有者証明トークンを検証し、検証の結果として所有者の情報を所有証明書ヘッダ発行部52に通知する。
図27は、第4の実施形態に係るデバイス2の一構成例を示すブロック図である。図27で示すデバイス2は、図19で示した構成要素に加えて、所有者証明トークン記憶部101を備える。
第4の実施形態におけるデバイス2の所有者管理部21は、ユーザ5から所有者検証トークンを受け付けて記憶するとともに、所有者管理サーバ71に所有者検証トークンを送信することにより、所有者証明トークンの発行を要求する。所有者管理部21は、自身の接続すべき所有者管理サーバのURLなどをあらかじめ記憶している。
第4の実施形態におけるデバイス2の所有証明書管理部61は、所有証明書発行サーバ72と通信し、所有証明書発行に必要な処理を行う。具体的には、所有証明書発行サーバ72に対し、HMAC値を送信し、所有証明書の発行を要求する。なお、所有証明書管理部61は、接続すべき所有証明書発行サーバ72のURL等をあらかじめ記憶している。
所有者証明トークン記憶部101は、所有者管理サーバ71から受け取る所有者証明トークンを記憶する。所有者証明トークン記憶部101には所有者管理部21のみ書き込むことができ、所有者管理部21と所有証明書管理部61だけが所有者証明トークン記憶部101から読み出すことができる。
第4の実施形態における所有者データベース73は、第1の実施形態と同様のデバイステーブル、ユーザテーブル、検証済み所有登録テーブルを有し、また、第3の実施形態と同様の所有登録テーブル(図20参照)を有する。さらに所有者データベース73は、所有者証明トークンテーブルを新たに有する。
図28は、所有者証明トークンテーブルの一構成例である。所有者証明トークンテーブルは、デバイスごとの所有者証明トークンを記憶するテーブルであり、主キーとして所有者証明トークンのトークン文字列を有する。所有証明書テーブルは他の項目として、デバイスID及び所有者証明トークンの有効期限を有する。
第4の実施形態における所有証明書データベース74は、第3の実施形態と同様のユーザ鍵テーブル(図21参照)、所有証明書テーブル(図22参照)を有する。
図29は、第4の実施形態におけるシステムの動作を示すシーケンス図である。図29の動作では、最初に、図8の例と同様に、所有者管理サーバ71においてユーザ5のユーザアカウントの作成を行う(ステップS1)。続いて、ユーザ5は所有者管理サーバ71に所有者検証トークンの発行を要求(ステップS2)する。所有者管理サーバ71は所有者検証トークンを発行(ステップS3)し、所有者検証トークンをユーザ5に送信する。ユーザ5はデバイス証明書を所有者管理サーバ71に記憶させる(ステップS5)。
次に、ユーザ5は所有証明書発行サーバ72にユーザアカウントの作成リクエストを送信する(ステップS91)。
所有証明書発行サーバ72のユーザアカウント作成リクエスト受付部91は、所有者管理サーバ71と通信し、ユーザアカウント作成リクエストの送信者のユーザ5のユーザIDを確認する。これは例えば、OpenID Connect規格を用いて実現される。次に、所有証明書発行サーバ72のユーザ鍵ペア生成部51は、所有証明書データベース74のユーザ鍵テーブルに、ユーザ5のユーザ秘密鍵とユーザ公開鍵を含む新たなエントリを記憶する(ステップS92)。
ユーザ5は、図8の例と同様に、所有者検証トークンをデバイス2に記憶させる(ステップS9)。デバイス2内の所有者管理部21が所有者管理サーバ71に対して所有者検証トークンを送信する。この動作は、図8の例と同様だが、図29の例ではデバイス2は接続先CPSサーバの情報の提供ではなく、所有者証明トークンの発行を要求する(ステップS93)。
所有者管理サーバ71の所有者検証部13は図8の例と同様に、所有者検証を行う(ステップS12)。所有者検証が成功した場合、所有者検証部13は所有登録テーブルから検証が成功したユーザ(検証済みユーザ)についてのエントリを読み出す。
所有者管理サーバ71はデバイス2について新たに所有者証明トークンを発行し、所有者証明トークンを所有者証明トークンテーブルに保存する。所有者証明トークンの有効期限は、例えば発行時から24時間後に設定する。所有者管理サーバ71は、発行した所有者証明トークンをデバイス2に返信する(ステップS94)。
デバイス2の所有者管理部21は所有者証明トークンを受け取り、所有者証明トークン記憶部101に保存する(ステップS95)。所有証明書管理部61は所有証明書発行サーバ72に所有者証明トークン及びデバイス証明書を提示し、所有証明書ヘッダの発行を要求する(ステップS96)。
所有証明書発行サーバ72の所有者証明トークン受付部92は、デバイス2から所有者証明トークン及びデバイス証明書を受け取る。所有者証明トークン検証部93は、後述の所有者証明トークン検証を、所有者管理サーバ71と連携して行う(ステップS97)。なお、所有者証明トークン受付部92が受け取ったデバイス証明書は、本実施形態においては第1デバイス証明書と呼ぶ。
所有者証明トークン検証部93の所有者証明トークン検証が成功した場合、所有証明書ヘッダ発行部52はデバイス2からの要求に基づき、所有証明書ヘッダを発行する(ステップS73)。
デバイス2は、図23の例と同様に、HMAC秘密鍵を新たに生成する(ステップS74)。また、デバイス2は、HMAC値を所有証明書発行サーバ72に送信する(ステップS75)。所有証明書発行サーバ72は、所有証明書を発行する(ステップS76)。
ユーザ5は、図23の例と同様に、CPSサーバ4に対し、認可トークンの発行処理を行う(ステップS77)。認可トークンは、OAuth2規格にのっとりユーザ5から認可を受けた所有者管理サーバ71が発行してもよい。CPSサーバ4は、所有証明書発行サーバ72に対して移管リクエストを送信する(ステップS78)。
所有証明書発行サーバ72は、移管リクエストを検証する(ステップS79)。上記の通り、所有者管理サーバ71が認可トークンを発行する場合、ステップS79の検証において認可トークンを所有者管理サーバ71に送信し、認可トークンがユーザ5による認可を示すものか否かを確認してもよい。
続いて、所有証明書発行サーバ72は、CPSサーバ4に対して、作成した移管済み所有証明書を送信する(ステップS80)。CPSサーバ4は、移管済み所有証明書をランデブーサーバ7に記憶させる(ステップS81)。デバイス2は、ランデブーサーバ7からCPSサーバ4の接続情報を取得する(ステップS82)。デバイス2は、CPSサーバ4との初期登録処理及び、移管済み所有証明書の検証を行う(ステップS83)。
図30は、所有者証明トークン検証の動作を示すフローチャート図である。所有者証明トークン検証は、所有証明書発行サーバ72と所有者管理サーバ71が連携して行う。まず、所有証明書発行サーバ72の所有者証明トークン検証部93が、所有者管理サーバ71に、デバイス2から取得した所有者証明トークンを送信する(ステップS101)。
ステップS111~S117の処理は、所有者管理サーバ71のデバイス詳細情報開示部82が行う。まず、所有証明書発行サーバ72から受け取った所有者証明トークンのチェックを行う(ステップS111)。所有者証明トークンのチェックにおいては、当該所有者証明トークンを有する所有者証明トークンテーブルのエントリが存在し、かつ、当該エントリの有効期限が現在日時以降であるという条件を満たすか否かを検証する。当該条件を満たす場合、所有者証明トークンは有効であり、満たさない場合、所有者証明トークンは無効である。
所有者証明トークンが有効であった場合、所有者証明テーブルのエントリから、デバイスIDを特定する(ステップS112)。
続いて、検証済み所有登録テーブルチェックを行う(ステップS113)。本チェックにおいては、ステップS112で特定したデバイスIDを有する、検証済み所有登録テーブルのエントリが存在するか否かを確認する。デバイス2についての所有者検証を経ている場合は、通常はエントリが存在する。
検証済み所有登録テーブルに、該当のエントリが存在する場合、当該エントリから登録IDを特定する(ステップS114)。
次に、特定した登録IDを有する所有登録テーブルのエントリから、デバイス2の所有者(ユーザ5)のユーザIDが特定できる(ステップS115)。
続いて、特定したデバイスIDを有するデバイステーブルのエントリから、デバイス証明書を取得する。デバイス証明書と、ステップS115で特定したユーザIDとを、所有証明書発行サーバに送信する(ステップS116)。
所有者証明トークンが無効であった場合(ステップS111)、又は、検証済み所有登録テーブルに該当のエントリが存在しなかった場合(ステップS113)は、所有証明書発行サーバ72にエラーを通知する(ステップS117)。
ステップS102~S105の処理は、所有証明書発行サーバ72の所有者証明トークン検証部93が行う。所有者管理サーバ71からデバイス証明書とユーザIDを受け取っている場合は、デバイス証明書一致チェックを行う(ステップS102)。デバイス証明書一致チェックにおいては、所有者管理サーバ71から受け取ったデバイス証明書と、デバイス2から受け取った第1デバイス証明書が、一致しているか否かを確認する。
デバイス証明書が一致している場合、ユーザチェックを行う(ステップS103)。ユーザチェックにおいては、所有者管理サーバ71から受け取ったユーザIDを有するユーザ鍵テーブルのエントリが、存在するか否かを確認する。ユーザ5から所有証明書発行サーバ72へユーザアカウントの作成リクエストを送信している場合、通常はエントリが存在する。
ユーザ鍵テーブルに該当のエントリが存在する場合、当該エントリからユーザ公開鍵を取得する(ステップS104)。所有者証明トークン検証は成功として終了する。
所有者管理サーバ71からエラーの通知があった場合(ステップS117)、デバイス証明書が不一致であった場合(ステップS102)、又はユーザ鍵テーブルに該当のエントリが存在しない場合(ステップS103)は、デバイス2にエラーを通知する(ステップS105)。所有者証明トークン検証は失敗として終了する。
このように、第4の実施形態では、所有証明書の発行を行う所有証明書発行サーバ72が、所有者検証を行う所有者管理サーバ71と、所有者証明トークンを用いて連携することができる。これにより、所有証明書発行サーバ72は、デバイス2の正当な所有者(図29では、ユーザ5)に対して所有証明書を発行できる。
また、第4の実施形態に対して、他の初期登録手法を組み合わせることも可能である。例えば、デバイス2に対してCPS証明書を発行するサーバを立ち上げ、そのサーバが所有者管理サーバ71の発行した所有者証明トークンを受け付けるようにすることもできる。この構成によれば、デバイス2の正当な所有者であるユーザ5が、デバイス2に対してCPS証明書を発行できるようになる。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
[付記]
[項目1]
ユーザのトークン発行要求に応じて第1トークンを発行する第1トークン発行部と、
前記ユーザの情報と前記第1トークンとを対応づけて記憶する第1記憶部と、
前記ユーザが所有するデバイスの所有登録情報を記憶する第2記憶部と、
前記デバイスから提供される前記第1トークンを受け付ける第1トークン受付部と、
前記第1トークンを提供した前記デバイスの情報が前記第2記憶部に記憶されており、前記第1トークン受付部により受け付けられた前記第1トークンが前記第1記憶部における前記第1トークンに一致するかの検証を含む所有者検証を行い、所有者検証が成功した前記第1トークンに対応する前記ユーザを前記デバイスの所有者として決定する所有者検証部と、
前記所有者が決定された前記デバイスの情報を含む検証済みデータを記憶する第3記憶部と、を備える情報処理装置。
[項目2]
前記第1トークンは、有効期限を有し、
前記所有者検証は、前記第1トークンの前記有効期限に基づく検証を含む、
項目1に記載の情報処理装置。
[項目3]
前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
前記デバイス登録受付部が受け付けた前記デバイス証明書を含むデータを記憶する第4記憶部を備え、
前記第1トークン受付部は、前記デバイスが、前記第4記憶部に記憶される前記デバイス証明書に含まれる前記第1復号鍵に対応する第1暗号鍵を有するか否かの検証に基づいて、前記デバイスの提供する前記第1トークンを受け付ける、
項目1又は2に記載の情報処理装置。
[項目4]
前記デバイスに対して、接続先のサーバの情報を通知する接続先通知部を備え、
前記第2記憶部は、前記接続先のサーバの情報を前記所有者が決定された前記デバイスの前記情報と関連づけて記憶する、
項目1~3のいずれか一項に記載の情報処理装置。
[項目5]
前記所有者検証が成功した前記ユーザからの要求によって、前記第3記憶部の前記検証済みデータに関する情報を削除する抹消処理部をさらに備える、
項目1~4のいずれか一項に記載の情報処理装置。
[項目6]
前記所有者検証が成功した前記ユーザからの要求と、新たなユーザからの要求とに基づいて、前記デバイスの所有者を前記新たなユーザに変更する処理を行うことにより、前記第3記憶部の前記検証済みデータを前記新たなユーザに関する情報に更新する、移管処理部をさらに備える、
項目1~5のいずれか一項に記載の情報処理装置。
[項目7]
前記ユーザごとに、対となる第2復号鍵と第2暗号鍵を生成するユーザ鍵ペア生成部と、
前記デバイスに対し、前記第2復号鍵を含む所有証明書ヘッダを発行する所有証明書ヘッダ発行部と、
前記デバイスからデバイス認証コードを受け付け、前記所有証明書ヘッダと前記デバイス認証コードに基づいて、所有証明書を発行する所有証明書発行部と、
前記所有者が決定された前記デバイスの接続先のサーバに対し、前記所有証明書と、前記第2暗号鍵で暗号化されたデータとを含む移管済み所有証明書を発行する所有証明書移管部を備える、
項目1~6のいずれか一項に記載の情報処理装置。
[項目8]
前記デバイスからの要求を受けて、前記デバイスの所有者である前記ユーザを示す第2トークンを発行する第2トークン発行部を備える、
項目1~7のいずれか一項に記載の情報処理装置。
[項目9]
前記ユーザからの要求により前記ユーザの情報を含むユーザアカウントを作成するユーザアカウント作成リクエスト受付部と
前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
前記デバイスから前記第2トークンの検証要求と前記デバイスが保持している第1デバイス証明書とを受け付ける第2トークン受付部と、
前記第2トークンに関連する前記ユーザを含む情報と前記デバイス証明書とを前記第2トークンの検証用に前記第2トークン検証部に開示する情報開示部と、
前記情報開示部により開示される前記ユーザを含む情報及び前記デバイス証明書と、前記第1デバイス証明書と前記ユーザアカウントの前記ユーザの情報とに基づき、前記第2トークンを検証する第2トークン検証部と、
を備える、
項目8に記載の情報処理装置。
[項目10]
項目2に記載の情報処理装置と、
前記デバイスと、を備え、
前記デバイスは、前記第1トークンを含むデータを記憶する第5記憶部と、前記第1トークンを、前記情報処理装置に送信する所有者管理部、を備える、
情報処理システム。
[項目11]
前記所有者管理部は、前記第5記憶部に記憶された第1トークンの前記有効期限が切れているとき又は、前記第5記憶部に第1トークンが記憶されていないときにのみ、前記第5記憶部に第1トークンを含むデータを記憶させる、
項目10に記載の情報処理システム。
[項目12]
前記デバイスは、接続先のサーバに対し初期登録処理を行う初期登録処理部を備え、
前記情報処理装置は、前記デバイスに、前記接続先のサーバの情報を通知する、
項目10又は11に記載の情報処理システム。
[項目13]
前記初期登録処理は、前記接続先のサーバに対し前記サーバの有する暗号鍵によって作成される対サーバ証明書の発行を要求する処理を含む、
項目12に記載の情報処理システム。
[項目14]
ユーザごとに、対となる第2復号鍵と第2暗号鍵を生成するユーザ鍵ペア生成部と、
前記デバイスに対し、前記第2復号鍵を含む所有証明書ヘッダを発行する所有証明書ヘッダ発行部と、
前記デバイスからデバイス認証コードを受け付け、前記所有証明書ヘッダと前記デバイス認証コードに基づいて、所有証明書を発行する所有証明書発行部と、
前記所有者が決定された前記デバイスの接続先のサーバに対し、前記所有証明書と、前記第2暗号鍵で暗号化されたデータとを含む移管済み所有証明書を発行する移管済み所有証明書発行部を有する、
証明書発行装置を備える、
項目10~13のいずれか一項に記載の情報処理システム。
[項目15]
前記情報処理装置は、
前記デバイスからの要求を受けて、前記デバイスの所有者である前記ユーザを示す第2トークンを発行する第2トークン発行部と、
前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
前記第2トークンに関連する前記ユーザを含む情報と前記デバイス証明書とを開示する情報開示部を備え、
前記証明書発行装置は、
前記ユーザからの要求により前記ユーザの情報を含むユーザアカウントを作成するユーザアカウント作成リクエスト受付部と、
前記デバイスから、前記第2トークンの検証要求と前記デバイスが保持している第1デバイス証明書とを受け付ける第2トークン受付部と、
前記情報開示部により開示される前記ユーザを含む情報及び前記デバイス証明書と、前記第1デバイス証明書及び前記ユーザアカウントの前記ユーザの情報とに基づき、前記第2トークンを検証する第2トークン検証部と、を備える、
項目14に記載の情報処理システム。
[項目16]
ユーザのトークン発行要求に応じて第1トークンを発行するステップと、
前記ユーザの情報と前記第1トークンとを対応づけて第1記憶部に記憶するステップと、
前記ユーザが所有するデバイスの所有登録情報を第2記憶部に記憶するステップと、
前記デバイスから提供される第1トークンを受け付けるステップと、
前記第1トークンを提供した前記デバイスの情報が前記第2記憶部に記憶されており、受け付けた前記第1トークンが前記第1記憶部における前記第1トークンに一致するかの検証を含む所有者検証を行い、所有者検証が成功した前記第1トークンに対応する前記ユーザを前記デバイスの所有者として決定するステップと、
前記所有者が決定された前記デバイスの情報を含む検証済みデータを第3記憶部に記憶するするステップと、
をコンピュータに実行させるための情報処理プログラム。
1 レジスタラ、2 デバイス、3 データベース、4 CPSサーバ、5 ユーザ、6 ネットワーク、7 ランデブーサーバ、11 所有者検証トークン発行部、12 所有者検証トークン受付部、13 所有者検証部、14 デバイス登録受付部、15 接続先CPSサーバ通知部、16 所有権抹消処理部、17 所有権移転処理部、21 所有者管理部、22 所有者検証トークン記憶部、23 所有者検証トークン一時記憶部、24 デバイス証明書記憶部、25 デバイス秘密鍵記憶部、26 初期登録処理部、27 CPS秘密鍵記憶部、28 CPS証明書記憶部、29 ファームウェア記憶部、41 攻撃者、42 CPSサーバ、51 ユーザ鍵ペア生成部、52 所有証明書ヘッダ発行部、53 所有証明書発行部、54 所有証明書移管部、61 所有証明書管理部、62 デバイス認証情報記憶部、63 HMAC秘密鍵記憶部、71 所有者管理サーバ、72 所有証明書発行サーバ、73 所有者データベース、74 所有証明書データベース、81 所有者証明トークン発行部、82 デバイス詳細情報開示部、91 ユーザアカウント作成リクエスト受付部、92 所有者証明トークン受付部、93 所有者証明トークン検証部、101 所有者証明トークン記憶部

Claims (16)

  1. ユーザのトークン発行要求に応じて第1トークンを発行する第1トークン発行部と、
    前記ユーザの情報と前記第1トークンとを対応づけて記憶する第1記憶部と、
    前記ユーザが所有するデバイスの所有登録情報を記憶する第2記憶部と、
    前記デバイスから提供される前記第1トークンを受け付ける第1トークン受付部と、
    前記第1トークンを提供した前記デバイスの情報が前記第2記憶部に記憶されており、前記第1トークン受付部により受け付けられた前記第1トークンが前記第1記憶部における前記第1トークンに一致するかの検証を含む所有者検証を行い、所有者検証が成功した前記第1トークンに対応する前記ユーザを前記デバイスの所有者として決定する所有者検証部と、
    前記所有者が決定された前記デバイスの情報を含む検証済みデータを記憶する第3記憶部と、を備える情報処理装置。
  2. 前記第1トークンは、有効期限を有し、
    前記所有者検証は、前記第1トークンの前記有効期限に基づく検証を含む、
    請求項1に記載の情報処理装置。
  3. 前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
    前記デバイス登録受付部が受け付けた前記デバイス証明書を含むデータを記憶する第4記憶部を備え、
    前記第1トークン受付部は、前記デバイスが、前記第4記憶部に記憶される前記デバイス証明書に含まれる前記第1復号鍵に対応する第1暗号鍵を有するか否かの検証に基づいて、前記デバイスの提供する前記第1トークンを受け付ける、
    請求項1又は2に記載の情報処理装置。
  4. 前記デバイスに対して、接続先のサーバの情報を通知する接続先通知部を備え、
    前記第2記憶部は、前記接続先のサーバの情報を前記所有者が決定された前記デバイスの前記情報と関連づけて記憶する、
    請求項1又は2に記載の情報処理装置。
  5. 前記所有者検証が成功した前記ユーザからの要求によって、前記第3記憶部の前記検証済みデータに関する情報を削除する抹消処理部をさらに備える、
    請求項1又は2に記載の情報処理装置。
  6. 前記所有者検証が成功した前記ユーザからの要求と、新たなユーザからの要求とに基づいて、前記デバイスの所有者を前記新たなユーザに変更する処理を行うことにより、前記第3記憶部の前記検証済みデータを前記新たなユーザに関する情報に更新する、移管処理部をさらに備える、
    請求項1又は2に記載の情報処理装置。
  7. 前記ユーザごとに、対となる第2復号鍵と第2暗号鍵を生成するユーザ鍵ペア生成部と、
    前記デバイスに対し、前記第2復号鍵を含む所有証明書ヘッダを発行する所有証明書ヘッダ発行部と、
    前記デバイスからデバイス認証コードを受け付け、前記所有証明書ヘッダと前記デバイス認証コードに基づいて、所有証明書を発行する所有証明書発行部と、
    前記所有者が決定された前記デバイスの接続先のサーバに対し、前記所有証明書と、前記第2暗号鍵で暗号化されたデータとを含む移管済み所有証明書を発行する所有証明書移管部を備える、
    請求項1又は2に記載の情報処理装置。
  8. 前記デバイスからの要求を受けて、前記デバイスの所有者である前記ユーザを示す第2トークンを発行する第2トークン発行部を備える、
    請求項1又は2に記載の情報処理装置。
  9. 前記ユーザからの要求により前記ユーザの情報を含むユーザアカウントを作成するユーザアカウント作成リクエスト受付部と
    前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
    前記デバイスから前記第2トークンの検証要求と前記デバイスが保持している第1デバイス証明書とを受け付ける第2トークン受付部と、
    前記第2トークンに関連する前記ユーザを含む情報と前記デバイス証明書とを開示する情報開示部と、
    前記情報開示部により開示される前記ユーザを含む情報及び前記デバイス証明書と、前記第1デバイス証明書と前記ユーザアカウントの前記ユーザの情報とに基づき、前記第2トークンを検証する第2トークン検証部と、
    を備える、
    請求項8に記載の情報処理装置。
  10. 請求項2に記載の情報処理装置と、
    前記デバイスと、を備え、
    前記デバイスは、前記第1トークンを含むデータを記憶する第5記憶部と、前記第1トークンを、前記情報処理装置に送信する所有者管理部、を備える、
    情報処理システム。
  11. 前記所有者管理部は、前記第5記憶部に記憶された第1トークンの前記有効期限が切れているときに、前記第5記憶部に新たな第1トークンを記憶させる、
    請求項10に記載の情報処理システム。
  12. 前記デバイスは、接続先のサーバに対し初期登録処理を行う初期登録処理部を備え、
    前記情報処理装置は、前記デバイスに、前記接続先のサーバの情報を通知する、
    請求項10に記載の情報処理システム。
  13. 前記初期登録処理は、前記接続先のサーバに対し前記サーバの有する暗号鍵によって作成される対サーバ証明書の発行を要求する処理を含む、
    請求項12に記載の情報処理システム。
  14. ユーザごとに、対となる第2復号鍵と第2暗号鍵を生成するユーザ鍵ペア生成部と、
    前記デバイスに対し、前記第2復号鍵を含む所有証明書ヘッダを発行する所有証明書ヘッダ発行部と、
    前記デバイスからデバイス認証コードを受け付け、前記所有証明書ヘッダと前記デバイス認証コードに基づいて、所有証明書を発行する所有証明書発行部と、
    前記所有者が決定された前記デバイスの接続先のサーバに対し、前記所有証明書と、前記第2暗号鍵で暗号化されたデータとを含む移管済み所有証明書を発行する移管済み所有証明書発行部を有する、
    証明書発行装置を備える、
    請求項10に記載の情報処理システム。
  15. 前記情報処理装置は、
    前記デバイスからの要求を受けて、前記デバイスの所有者である前記ユーザを示す第2トークンを発行する第2トークン発行部と、
    前記ユーザからの前記デバイスの第1復号鍵を含むデバイス証明書を受け付けるデバイス登録受付部と、
    前記第2トークンに関連する前記ユーザを含む情報と前記デバイス証明書とを開示する情報開示部を備え、
    前記証明書発行装置は、
    前記ユーザからの要求により前記ユーザの情報を含むユーザアカウントを作成するユーザアカウント作成リクエスト受付部と、
    前記デバイスから、前記第2トークンの検証要求と前記デバイスが保持している第1デバイス証明書とを受け付ける第2トークン受付部と、
    前記情報開示部により開示された前記ユーザを含む情報及び前記デバイス証明書と、前記第1デバイス証明書及び前記ユーザアカウントの前記ユーザの情報とに基づき、前記第2トークンを検証する第2トークン検証部と、を備える、
    請求項14に記載の情報処理システム。
  16. ユーザのトークン発行要求に応じて第1トークンを発行するステップと、
    前記ユーザの情報と前記第1トークンとを対応づけて第1記憶部に記憶するステップと、
    前記ユーザが所有するデバイスの所有登録情報を第2記憶部に記憶するステップと、
    前記デバイスから提供される第1トークンを受け付けるステップと、
    前記第1トークンを提供した前記デバイスの情報が前記第2記憶部に記憶されており、受け付けた前記第1トークンが前記第1記憶部における前記第1トークンに一致するかの検証を含む所有者検証を行い、所有者検証が成功した前記第1トークンに対応する前記ユーザを前記デバイスの所有者として決定するステップと、
    前記所有者が決定された前記デバイスの情報を含む検証済みデータを第3記憶部に記憶するステップと、
    をコンピュータに実行させるための情報処理プログラム。
JP2022119047A 2022-07-26 2022-07-26 情報処理装置、情報処理プログラム、及び情報処理システム Active JP7725431B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022119047A JP7725431B2 (ja) 2022-07-26 2022-07-26 情報処理装置、情報処理プログラム、及び情報処理システム
US18/180,198 US20240039723A1 (en) 2022-07-26 2023-03-08 Information processing apparatus, non-transitory computer readable medium, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022119047A JP7725431B2 (ja) 2022-07-26 2022-07-26 情報処理装置、情報処理プログラム、及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2024016727A JP2024016727A (ja) 2024-02-07
JP7725431B2 true JP7725431B2 (ja) 2025-08-19

Family

ID=89663907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022119047A Active JP7725431B2 (ja) 2022-07-26 2022-07-26 情報処理装置、情報処理プログラム、及び情報処理システム

Country Status (2)

Country Link
US (1) US20240039723A1 (ja)
JP (1) JP7725431B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12267441B2 (en) * 2022-10-14 2025-04-01 Dell Products L.P. System and method for securing operation of data processing systems during and after onboarding
US12488126B2 (en) 2022-10-14 2025-12-02 Dell Products L.P. Methods for dynamic platform security configuration
US12182236B2 (en) 2022-10-14 2024-12-31 Dell Products L.P. Automatic provisioning and onboarding of offline or disconnected machines
US12452226B2 (en) * 2023-07-14 2025-10-21 Dell Products L.P. Device authentication for onboarding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007149010A (ja) 2005-11-30 2007-06-14 Nec Corp 権限管理サーバ、権限管理システム、トークン検証方法、トークン検証プログラム
JP2014106652A (ja) 2012-11-26 2014-06-09 Fujitsu Ltd データ参照システムおよびアプリケーション認証方法
JP2015177344A (ja) 2014-03-14 2015-10-05 富士通株式会社 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム
JP2017228145A (ja) 2016-06-23 2017-12-28 株式会社リコー 認証システム、通信システム、認証認可方法、及びプログラム
JP2019096090A (ja) 2017-11-24 2019-06-20 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7038208B2 (ja) * 2018-06-18 2022-03-17 株式会社Nttドコモ サービス提供装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007149010A (ja) 2005-11-30 2007-06-14 Nec Corp 権限管理サーバ、権限管理システム、トークン検証方法、トークン検証プログラム
JP2014106652A (ja) 2012-11-26 2014-06-09 Fujitsu Ltd データ参照システムおよびアプリケーション認証方法
JP2015177344A (ja) 2014-03-14 2015-10-05 富士通株式会社 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム
JP2017228145A (ja) 2016-06-23 2017-12-28 株式会社リコー 認証システム、通信システム、認証認可方法、及びプログラム
JP2019096090A (ja) 2017-11-24 2019-06-20 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法およびプログラム

Also Published As

Publication number Publication date
JP2024016727A (ja) 2024-02-07
US20240039723A1 (en) 2024-02-01

Similar Documents

Publication Publication Date Title
US12056227B2 (en) Systems and methods for device and user authorization
JP7725431B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理システム
KR102390108B1 (ko) 정보 처리 시스템 및 제어 방법
JP4746266B2 (ja) ネットワーク・ロケーション中のサブ・ロケーションについてのユーザの認証の方法およびシステム
CN100511203C (zh) 数据库访问控制方法、控制装置及代理处理服务器装置
EP1244263A2 (en) Access control method
US20090327706A1 (en) Account management system, root-account management apparatus, derived-account management apparatus, and program
JP7172716B2 (ja) 認可システム、管理サーバおよび認可方法
JP2005537559A (ja) トランザクションの安全な記録
JP4758095B2 (ja) 証明書無効化装置、通信装置、証明書無効化システム、プログラム及び記録媒体
JP7100561B2 (ja) 認証システム、認証サーバおよび認証方法
JP6688266B2 (ja) 本人確認情報提供方法および本人確認情報提供サーバ
JP6479723B2 (ja) 秘密鍵管理システムおよび秘密鍵管理方法
US20230412400A1 (en) Method for suspending protection of an object achieved by a protection device
JP6712707B2 (ja) 複数のサービスシステムを制御するサーバシステム及び方法
JPH1124916A (ja) ソフトウェアライセンス管理装置および方法
EP1653387B1 (en) Password exposure elimination in Attribute Certificate issuing
CN118869177B (zh) 基于区块链的数字身份管理方法、系统、电子设备及计算机可读存储介质
US20050257063A1 (en) Program, computer, data processing method, communication system and the method
TWI778319B (zh) 跨平台授權存取資源方法及授權存取系統
JP7558444B1 (ja) トークン検証システムおよびプログラム
JP7559178B2 (ja) ブロックチェーンを利用したネットワークの認証システムとこれを使用した認証方法
JP5434956B2 (ja) 証明書無効化装置、証明書無効化システム、プログラム及び記録媒体
JP3829650B2 (ja) 固有データ発行装置および方法
JP3887234B2 (ja) コマンド実行権限譲渡方法及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250603

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250806

R150 Certificate of patent or registration of utility model

Ref document number: 7725431

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150