JP6668183B2 - 通信装置、通信方法、通信システムおよびプログラム - Google Patents

通信装置、通信方法、通信システムおよびプログラム Download PDF

Info

Publication number
JP6668183B2
JP6668183B2 JP2016131904A JP2016131904A JP6668183B2 JP 6668183 B2 JP6668183 B2 JP 6668183B2 JP 2016131904 A JP2016131904 A JP 2016131904A JP 2016131904 A JP2016131904 A JP 2016131904A JP 6668183 B2 JP6668183 B2 JP 6668183B2
Authority
JP
Japan
Prior art keywords
certificate
server
communication
processing unit
key
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.)
Expired - Fee Related
Application number
JP2016131904A
Other languages
English (en)
Other versions
JP2018007039A (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 JP2016131904A priority Critical patent/JP6668183B2/ja
Priority to US15/462,546 priority patent/US10547605B2/en
Publication of JP2018007039A publication Critical patent/JP2018007039A/ja
Application granted granted Critical
Publication of JP6668183B2 publication Critical patent/JP6668183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明の実施形態は、通信装置、通信方法、通信システムおよびプログラムに関する。
インターネット上でWebサービスを提供するWebサーバが、ユーザのWebブラウザを介して、ローカルネットワーク上の機器で動作するサーバ(以降、単に機器と呼ぶ)と、相互認証に基づいた暗号化通信を行うことは難しい。具体的には、以下の3つの問題がある。
[1]Webブラウザ(および、Webサーバのフロントエンド)が、ローカルネットワーク上の機器を発見することができない。
[2]機器が正規のサーバ証明書を持っていない。すなわち、当該ローカルネット上の機器が、信頼できる機器であることを、Webブラウザ(およびWebサーバのフロントエンド)が検証できない。
[3]機器が、Webサーバおよびユーザに対する認証・アクセス制御を行うことができない。
[1]の解決策としては、ユーザが予め機器のIPアドレスを把握しておき、Webサーバ側がこのIPアドレスを把握するための登録インタフェースを備えておく。そして、このIPアドレスをWebサーバに設定することで、Webサーバから機器へのアクセスを実現することができる。
[2]の解決策としては、ユーザが自身で認証局を立ち上げ、その認証局による署名付きのルート証明書を作成し、ルート証明書をWebブラウザに、信頼できるものとして登録する。そして、ユーザ自身で認証局による署名付きのサーバ証明書を作成し、これを機器に設定する。これにより、ユーザは、当該機器が、信頼できる機器であるとWebブラウザに認識させることができる。
[3]の解決策としては、機器に予めユーザID、パスワードを設定し、Webブラウザが機器にアクセスする際に、ID/パスワード認証をかけることで、アクセス制御を行うことができる。
しかしながら、いずれの場合も、ユーザに対して手動設定作業を強いるものであり、ユーザビリティ上の問題がある。また、[2]および[3]については、それぞれWebサーバが機器を正当なものとして、また、機器がWebサーバを正当なものとして、検証できていない。具体的には、両者が正規の認証局が発行したサーバ証明書を持つサーバであることを検証できていない。このため、悪意あるユーザによって、いずれか一方がevilであっても、両者間で容易に通信させることができてしまう。
[2]の問題は、機器が、信頼できるサーバ証明書を持っていないことが主な原因である。しかしながら、正規の認証局は、グローバルアクセス可能なドメインを持ち、かつ、管理主体が明確なサーバに対して、証明書を発行することが一般的である。正規の認証局が、ローカルネットワーク上の機器に対して、正規のサーバ証明書を発行する方法は知られていない。
関連技術として、機器に対する証明書を発行する方法がある。しかしながら、この技術は、機器のためのクライアント証明書を発行する方法であって、機器がサーバとして振る舞う場合に、これに安全にアクセスするためのサーバ証明書を発行する方法に関するものではない。
ローカルネットワーク上の機器がサーバとして振る舞う場合、当該サーバは、プライベートアドレス空間に属し、かつ変化し得るIPアドレスを持つ。このようなサーバに対して、固定的な名前をどの時点で付与するのか、その名前に対する証明書をどのように発行するのか等、関連技術では、解決できない問題がある。
特開2012−049752号公報
本発明の実施形態は、ネットワーク上の機器に、安全にアクセスできるようにする通信装置、通信方法、通信システムおよびプログラムを提供する。
本発明の実施形態としての通信装置は、第1ネットワークを介して、サーバと通信可能な第1通信部と、第2ネットワークを介して、ユーザの操作端末と通信可能な第2通信部と、第1処理を実行する第1通信処理部と、前記第2通信部を介して、署名対象データを含む発行要求を受信し、前記第1通信処理部の識別情報と、第1鍵および前記第1鍵と対になる第2鍵を用いて、前記第1通信処理部の識別情報と前記第1鍵とを含み、前記第2鍵により署名された証明書を発行し、また、前記署名対象データを第3鍵で署名した署名データを生成し、前記署名データと前記証明書とを、前記第2通信部を介して送信する、第2通信処理部と、前記証明書の発行を前記ユーザが許可したことを表す許可情報を取得する認可部を備える。前記第1通信処理部は、前記第1通信部を介して、前記第1処理の実行を要求する命令を受信した場合に、前記証明書を用いて、前記命令の送信元と認証処理を行う。前記第2通信処理部は、前記許可情報が取得された場合のみ、前記証明書が発行または用いられるよう制御する。
第1実施形態に関わる通信装置を備えたシステムの全体構成を示す図。 第1実施形態に係る通信シーケンスを示す図。 第1実施形態に係る通信装置の動作のフローチャート。 第2実施形態に係るシステムの通信シーケンスを示す図。 機器の表示部に表示される認可ダイアログの例を示す図。 第2実施形態に係る通信装置の動作のフローチャート。 第3実施形態に係る通信装置を備えたシステムの全体構成を示す図。 第3実施形態に係るシステムの通信シーケンスを示す図。 操作端末のWebブラウザに表示される認可画面の例を示す図。 通信装置が搭載されたSDカードを、操作端末に挿入した状態を示す図。 操作端末からSDカードを抜いて、レガシー機器に挿入した状態を示す図。 第4実施形態に係るシステムの通信シーケンスを示す図。 第5実施形態に係るシステムの通信シーケンスを示す図。
以下、図面を参照しながら、本発明の実施形態について説明する。
<第1実施形態>
図1は、第1実施形態に関わる通信装置101を備えたシステムの全体構成を示す。
通信装置101は、ユーザによって所有される機器100に搭載されている。本実施形態では機器が、デジタルテレビ(以下、テレビと呼ぶ)である場合を想定するが、これに限定されない。例えば、通信装置が、他の家電機器や、住宅設備機器、工場・ビル設備機器のような別の種類の機器に搭載されてもよい。機器は、表示部やテレビ用チューナ等のテレビとして必要な機能を備えている。通信装置101は、Webサーバ301および操作端末201と通信する手段(第1通信部111および第2通信部114)を備えている。
操作端末201は、ユーザが操作する端末装置(ユーザ端末)である。操作端末201は、一例として、PC(Personal Computer)、スマートフォン、または、タブレットなどである。操作端末201には、Webサーバ301が提供するWebサービスにアクセスするためのWebブラウザが搭載されている。本実施形態では、操作端末201がスマートフォンであると想定する。ユーザは、Webブラウザを介して、Webサーバ301が提供するWebサービスを利用することで、通信装置101にアクセスする。
操作端末201は、第1ネットワーク501および第3ネットワーク701を介して、Webサーバ301と接続されている。また、操作端末201は、第2ネットワーク601を介して、通信装置101の第2通信部114と接続されている。また、操作端末201は、第1ネットワーク501を介して、通信装置101の第1通信部111と接続されている。また、Webサーバ301は、第3ネットワーク701および第1ネットワーク501を介して、通信装置101の第1通信部111と接続されている。また、Webサーバ301は、第3ネットワーク701を介して、機器登録サーバ401と接続されている。
第1ネットワーク501は、宅内、オフィス、工場などのローカルネットワークである。通信の媒体は、イーサネット(登録商標)または無線LAN等、上位でIP通信を実現できるものを想定しているが、媒体および上位の通信プロトコルはこれらに限定されない。本実施形態では、第1ネットワーク501は、無線LANで構築されたホームネットワークであるとする。
第2ネットワーク601は、操作端末201が通信装置101と安全に(情報漏洩せずに)通信可能なネットワークである。具体的には、通信装置101と操作端末201を直接接続するUSB、HDMI(登録商標)、SDIO、あるいは、NFC等の近接無線、BLE(Bluetooth Low Energy)など安全性の高い近距離無線通信などである。本実施形態では、操作端末201は、通信装置101とBLEで接続されている場合を想定する。
第3ネットワーク701は、インターネット等のWAN(Wide Area Network)である。操作端末201とWebサーバ301間の通信、および、Webサーバ301と機器登録サーバ401間の通信は、この第3ネットワーク701を介して行われる。本実施形態では、第3ネットワーク701はインターネットの場合を想定する。
Webサーバ301は、インターネット上でWebサービスを提供する、グローバルにアクセス可能なサーバである。Webサーバ301の実体は、物理マシンか仮想マシンかを問わない。Webサーバ301は、一例としてHTTPサーバであることを想定する。Webサーバ301は、フロントエンドと、バックエンドを有する。フロントエンドは、HTML/CSS/JavaScript(登録商標)等で構成されたWebサービスが提供するWebページのことである。バックエンドは、Webサーバ301が提供するWebサービスの主機能(サーバ機能)を行う部分である。ただし、Webサーバ301のプロトコルや機器構成はこれらに限定されない。
Webサーバ301が提供するWebサービスは、操作端末201を介して、第1ネットワーク501上の機器100(または通信装置101)を発見し、機器100が提供する機能を、ユーザに提供する。これらの動作は、操作端末201のWebブラウザで表示したWebページを介して行う。
通信装置101は、機器(ここではテレビ)の機能として、テレビリモコン機能を提供する。Webサービスが、操作端末201のWebページを介して、このテレビリモコン機能の操作の依頼を受け付ける。ユーザは、Webページでリモコン指示を入力することで、Webサービスを介して、テレビを操作することができる。つまり、ユーザは、自身の操作端末201のWebブラウザで表示されているテレビリモコンサービスのWeb画面を通して、自身が所有するテレビを操作する。ユーザの入力したリモコン指示はWebブラウザからフロントエンドおよび第1ネットワーク501を介して通信装置101に送信される。通信装置101がこの実行要求を実行することで、ユーザによるテレビのリモコン操作が実現される。
機器登録サーバ401は、第3ネットワーク701(インターネット等)上に展開されたHTTPサーバである。機器登録サーバ401の実体は、物理マシンか仮想マシンかを問わない。機器特録サーバのプロトコルや機器構成は、これらに限定されない。機器登録サーバ401は、Webサーバからの要求(後述のローカルサーバ検証要求)を受けて、チャレンジコード(署名対象データ)を生成する機能を有する。また、機器登録サーバ401は、通信装置101により生成された署名コード(署名データ)を、Webサーバを介して受信し、通信装置101との事前共有鍵を用いて、当該署名コードを検証する。具体的に、受信した署名コードが、チャレンジコードを事前共有鍵で署名したものに一致するか、あるいは、署名コードを事前共有鍵で復号したデータが、チャレンジコードに一致するかを判断する。
上述のように、機器登録サーバ401は、通信装置101との間で秘密鍵である事前共有鍵を共有している。機器登録サーバ401の運営事業者は、通信装置101の情報秘匿レベルや、対応プロトコルを検査した上で、通信装置101に対して、事前共有鍵を発行する。情報秘匿レベルの例として、セキュアエレメントを搭載し、事前共有鍵が漏洩しない対策が施されているか否か等がある。対応プロトコルの例として、後述する鍵ペア(秘密鍵および公開鍵)およびサーバ証明書の作成や授受の方式が、機器登録サービスがサポートする規格に対応しているか否か等がある。通信装置101または機器100の製造者は、事前共有鍵を安全な記憶領域に書き込んで出荷する。なお、事前共有鍵は、通信装置101または機器100の型番(機種)単位で発行されるものとするが、発行単位には様々なバリエーションがある。例えば、事前共有鍵は、通信装置101または機器100の個別機器単位でユニーク、複数機種にまたがった製品シリーズ単位でユニークでもよい。事前共有鍵の実現形態は問わない。
通信装置101は、第1通信部111と、第1通信処理部112と、第1記憶部113と、第2通信部114と、第2通信処理部115と、第2記憶部116と、設定部117と、認可部118とを備える。
第1通信部111は、第1ネットワーク501を介して、Webサーバ301および操作端末201と通信する通信モジュールである。本実施形態では、第1通信部111は、Wi−Fiの送受信部であるとする。第1通信部111は、一例として通信回路によって構成される。通信回路は、ハードウェアのみによって構成されてもよいし、ハードウェアとソフトウェアによって構成されてもよい。
第1通信処理部112は、第1通信部111を介して、操作端末201(より詳細には操作端末201上のWebブラウザ)に、機器のリソース(リモコン機能等)を提供する。このリソースの提供は、一例として、第1通信処理部112による第1処理の実行に相当する。第1通信処理部112は、操作端末201のWebブラウザを介して、Webサーバ301のフロントエンドからアクセスされる。第1通信処理部112は、HTTPサーバであることを想定するが、Webブラウザでサポートされている限り、他のプロトコル(CoAP、MQTT等)でもよい。
第1記憶部113は、第1通信部111および第1通信処理部112の動作に係る設定情報(HTTPサーバの設定ファイル等)を記憶する。第1記憶部113は、不揮発性メモリ等の不揮発記憶装置である。第1記憶部113の例として、SSD、ハードディスク、FRAM(登録商標)等がある。ただし、第1記憶部113の形態は、これらに限定されない。
第2通信部114は、第2ネットワーク601を介して、操作端末201と通信する通信モジュールである。前述した通り、本実施形態では、第2通信部114は、BLEの送受信部であるとする。第2通信部114は、一例として通信回路によって構成される。通信回路は、ハードウェアのみによって構成されてもよいし、ハードウェアとソフトウェアによって構成されてもよい。
第2通信処理部115は、第2通信部114を介して、操作端末201(より詳細には操作端末201上のWebブラウザ)と通信する。第2通信処理部115は、後述する通信シーケンスを実現する主機能を有する。具体的に、第2通信処理部115は、操作端末201からの探索要求に応じて、機器の情報を提供する。また、第2通信処理部115は、Webブラウザからの要求に応じて、鍵ペア(公開鍵と秘密鍵)を生成し、秘密鍵を第1記憶部113に記憶し、公開鍵を提供する機能を有する。公開鍵で暗号化されたデータは、秘密鍵のみで復号可能であり、秘密鍵で暗号化されたデータは、公開鍵のみで復号可能である。第2通信処理部115は、この基本的な機能を用い、さらに、ユーザからの認可に基づき、サーバ証明書ないし証明書署名要求を発行する機能を備える。本実施形態では、サーバ証明書を発行するものとする。
第2記憶部116は、第2通信部114および第2通信処理部115の動作に係る設定情報(機器登録サーバ401との事前共有鍵等)を記憶する。なお、事前共有鍵を第1記憶部113に記憶させてもよい。第2記憶部116は、不揮発性メモリ等の不揮発記憶装置である。第2記憶部116の例として、SSD、ハードディスク、FRAM等があるが、これらに限定されない。第2記憶部116は、第1記憶部113と物理的に同一のものでも、異なるものでも構わない。
設定部117は、第2通信処理部115の指示に基づき、第1通信処理部112の設定および変更を行う。また、設定部117は、第1記憶部113に対して書き込み、および読み出し可能である。
認可部118は、機器が備えるインタフェースを介して、Webサービスから通信装置101へのアクセス認可を示す操作をユーザから受け付ける機能を有する。認可部118は、ユーザの認可を受けると、ユーザ認可が得られたことを示す許可情報を第2通信処理部115に出力する。
図2に、第1実施形態に係る通信シーケンスを示す。本通信シーケンスでは、以下のユーザシナリオを想定する。
宅内にいるユーザが、第3ネットワーク701(インターネット等)上のWebサーバ301が提供するWebサービス(テレビリモコンサービス)に、操作端末201上のWebブラウザからログインする。Webサーバ301のフロントエンドは、ブラウザ上にWebページを提供する。Webサーバ301のフロントエンドが、第1ネットワーク501(宅内LAN)上の機器(テレビ)を探索および発見する。ユーザが、Webサービスに対し機器100(より詳細には通信装置101)へのアクセスを認可すると、以降、ユーザはWebページを介して、通信装置101が提供するリソースの機能(テレビのリモコン操作)を実行できる。
前提条件として、通信装置101の第1記憶部113に、型番単位で、機器登録サーバ401によって生成された事前共有鍵が記憶されている。第1記憶部113は、通信装置101の外部からはアクセスできないセキュアな領域である。また、通信装置101の第2通信部114と、操作端末201とには、BLE通信機能が搭載されている。また、Webブラウザには、第2ネットワーク601における周辺のBluetooth機器を発見する機能(Web Bluetooth API)が搭載されている。
ユーザが、操作端末201のWebブラウザから、Webサーバ301が提供するWebサービスにアクセスし、ユーザIDとパスワードを含むログイン要求を送信する(ステップ1)。
Webサーバ301のフロントエンドは、ログイン要求をバックエンドに送る(ステップ2)。バックエンドは、ユーザ認証を行い、ユーザ認証が成功することで、ログインセッションに入る。このとき、バックエンドは、セッションID(sessionID)を発行し、ユーザ情報に関連づけて管理する。バックエンドは、セッションIDを、フロントエンドに送る(ステップ2f)。ただし、ログインセッションの実現形態は、これに限定されるものではない。Webサービスのフロントエンドとバックエンド間の通信は、一般的にはTLSで暗号化されている。
フロントエンドは、セッションIDを含むユーザ情報取得要求を、バックエンドに送る(ステップ3)。バックエンドは、セッションIDに関連づけられたユーザ情報を特定し、フロントエンドに送る(ステップ3f)。ユーザ情報は、Webサービス内でユーザを一意に識別可能なユーザIDまたはe−mailアドレス等である。図では、ユーザ情報をuser_idと表している。
ユーザ情報は、ステップ2fで、セッションIDとともに送られてもよい。あるいは、後述するローカルサーバ検証要求の応答(ステップ8f)として、チャレンジコード(code)と共に送信されてもよい。ここで述べた以外の方法で、ユーザ情報をフロントエンドに提供してもよい。
フロントエンドは、操作端末201のWebブラウザ上に実装されたWeb Bluetooth APIに対して、周辺BLE機器の発見要求を送信する(ステップ4)。
操作端末201のWebブラウザは、発見要求を受けて、周辺の機器(ここではBLE機器)を探索し(ステップ5)、応答を受けることで、機器100を発見する(ステップ5f)。ここでは、機器100として、テレビを発見する。Webブラウザは、発見した機器100の情報を、Webサーバ301に送信する(ステップ4f)。
Webサーバ301のフロントエンドは、操作端末201のWebブラウザに、発見した機器100(テレビ)の情報を表示する(ステップ6)。これにより、ユーザに、Webサービスからテレビへのアクセスの承諾・拒否の判断を促す。複数の機器が存在する場合は、選択画面で、ユーザに対象とする機器を選択させてもよい。
ユーザは、Webブラウザに表示されている許諾ボタンを押下することで、Webサービスから機器100(テレビ)へのアクセスを認可する。許諾情報がWebブラウザからWebサーバ301に送信される(ステップ7)。これによりWebサーバ301は、ユーザによりアクセスが認可されたことを認識する。
Webサーバ301のフロントエンドは、バックエンドを介して、機器登録サーバ401に、発見した機器100の検証要求(ローカルサーバ検証要求)を送信する(ステップ8、ステップ9)。検証とは、機器100が、機器登録サーバ401に正しく登録された、事前共有鍵を持った通信装置101(機器)であることを確認することである。なお、機器登録サーバ401とWebサーバ301との間には、事前に信頼関係が構築されているものとする。具体的には、OAuthにおける認可サーバとRP(Relying Party)の関係と同様に、機器登録サーバ401が、予めWebサーバ301にクレデンシャル(識別情報と秘密鍵)を発行しておき、これに基づいて、機器登録サーバ401が、Webサーバ301を認証し、通信を暗号化するように構成してもよい。
機器登録サーバ401は、検証要求を受けて、ランダム文字列であるチャレンジコード(署名対象データ)を発行し、Webサーバ301に送信する(ステップ9f)。図では、チャレンジコードを、codeと表している。Webサーバ301は、このチャレンジコードをバックエンドで受信し、フロントエンドに送る。このとき、機器登録サーバ401は、通信装置101がチャレンジコードへの署名に用いるアルゴリズムの候補リスト(署名アルゴリズムリスト)をWebサーバ301に送信してもよい。この場合、Webサーバ301は、この署名アルゴリズムリストとチャレンジコードとを、バックエンドで受信し、フロントエンドに送る。ここでは署名アルゴリズムリストもWebサーバ301に送られたとする。なお、後述するように、機器登録サーバ401は、機器100が事前共有鍵を用いて、チャレンジコード(code)に署名したデータである署名コードを受信および検証することで、機器100のバリデーションを行う。
フロントエンドは、JavaScript APIを介して、Webブラウザに、チャレンジコード(code)と、Webサービスを識別するオリジン情報(origin)と、ユーザ情報(user_id)と、署名アルゴリズムリストと、を含む証明書発行要求を送信する(ステップ10)。オリジン情報は、ここでは、https://tvcontrol.comであるとする。なお、オリジン情報の一部である「tvcontrol.com」はドメインに相当する。また、ユーザ情報は、識別情報以外の表示名など、その他の属性が含まれていてもよい。
Webブラウザは、第2ネットワーク601を介して、第2通信処理部115に、当該証明書発行要求をフォワードする(ステップ11)。
第2通信処理部115は、証明書発行要求を受信すると、RSA等の公開鍵暗号アルゴリズムを利用して、秘密鍵(secret)と公開鍵(pub)とを含む鍵ペアを生成する(ステップ12)。また、第2通信処理部115は、鍵ペアを識別するための鍵IDを生成する。一例として、鍵ペアは、Webサービスとユーザの組合せごとに生成される。この場合、組合せごとに、異なる鍵IDが付与される。
Webサービスとユーザの組合せにかかわらず単一の鍵ペアを使い回す場合には、鍵IDを生成しなくてもよい。この場合、鍵ペアの生成を、証明書発行要求の受信(ステップ11)をトリガに実行する必要もない。証明書発行要求の初回の受信時にのみ、鍵ペアを生成してもよい。本実施形態では、Webサービスとユーザの組合せ毎に、異なる鍵ペアを生成する場合を想定する。
第2通信処理部115は、第1通信処理部112の識別情報を利用して、鍵ペアから、サーバ証明書(cert)を生成する(ステップ13)。第1通信処理部112の識別情報の例として、ローカルIPv4アドレス、またはIPv6アドレス等を用いることができる。IPアドレス以外の識別情報、例えばMACアドレス、または無線LANプロトコルで通信装置101に割り当てられる識別子などを用いることも可能である。また、本実施形態では、操作端末と機器(テレビ)が分離している構成をとっているが、機器と操作端末が一体となっているケース(テレビがWebブラウザを搭載し、ユーザがテレビのWebブラウザを介してWebサービスのWeb画面を表示しているケース)では、機器識別情報として、localhostやループバックアドレス(127.0.0.1)等、機器の内部で一意かつ唯一のホスト名やアドレスを用いてもよい。サーバ証明書の具体的な形式やバージョンは、問わないが、ここではX.509形式の自己署名証明書を想定する。サーバ証明書は、一例として、種々の属性、公開鍵、および秘密鍵による署名を含む。
ここで、第2通信処理部115は、サーバ証明書の発行者属性に、オリジン情報(origin)およびユーザ情報(user_id)のいずれか、ないし、両方を設定する。また、サーバ証明書の発行対象属性に、第1通信処理部112の識別情報を設定する。本実施形態においては、自己署名証明書を発行する形態を採るため、発行者属性を用いるか否かは任意である。
第2通信処理部115は、設定部117に、サーバ証明書および秘密鍵を、第1通信処理部112に設定することを指示する(ステップ14)。設定部117は、当該指示を受けてサーバ証明書および秘密鍵の設定を行う(同ステップ14)。
また、第2通信処理部115は、必要に応じて、設定部117に、第1通信処理部112に、CORS(Cross Origin Resource Sharing)(特定のオリジンからのアクセス認可)設定を行うことを指示する。設定部117は、当該指示を受けてCORSの設定を、第1通信処理部112に行う。具体的には、オリジン情報をホワイトリストに登録する。第1通信処理部112は、ホワイトリストに登録されたオリジン情報からのアクセスは、機器のオリジンと異なるオリジンからのアクセスでも許可する。
第1通信処理部112への設定には、第1通信処理部112の再起動または設定再読込命令などの制御を伴うことが一般的であり、設定部117は、必要に応じて、第1通信処理部112に対して当該制御を行う。
第2通信処理部115は、上記の設定が完了すると、設定部117を介して第1通信処理部112から完了通知を受ける(ステップ14f)。
第2通信処理部115は、認可部118に対して、サーバ証明書発行のユーザ認可を求める許諾要求を送る(ステップ15)。このとき、後段のステップ17での表示用に、ユーザ情報(user_id)を渡してもよい。第2通信処理部115は、一定期間、認可部118からの応答を待機する。応答が得られない場合または、ユーザからの拒否応答を受信した場合には、認可部118は、Webブラウザに対してエラー応答を行う。
第2通信処理部115は、認可部118からの応答を待っている間、受信したチャレンジコード(code)に事前共有鍵で署名し、署名コード(sign)を生成する(ステップ16)。署名コードは、チャレンジコードを事前共有鍵で暗号化した署名データに相当する。このとき、使用する署名のアルゴリズムは、署名アルゴリズムリストの中から任意に選択してもよい。ここでは、署名の処理を、認可部118からの応答を待っている間に実行しているが、証明書発行要求を受信してから、サーバ証明書の発行の認可を得るまでの間であれば、いつでも良い。
認可部118は、許諾要求を受けると、所定の方法でユーザに対し、サーバ証明書発行の認可を求める。ここでは、一例として、テレビの画面に、パスコードであるPINコード(4桁の数字等)を、証明書発行の認可を求める文言と共に表示する。これにより、ユーザに対し、テレビリモコンによるPINコードの入力を求める。
これは一例にすぎず、パスコードを表示せず、特定キー(決定ボタン等)の押下を求めるポップアップ表示を、機器100の画面(テレビ画面)に表示する方法でもよい。または、テレビ自体がカメラまたは指紋読み取り装置などバイオメトリクス認証器を備え、これを用いてユーザに認可させる方法であってもよい。または、テレビがユーザパスワードの設定機能を備え、ユーザが、ユーザパスワードを再入力することによって、ユーザに認可させる方法であってもよい。
ユーザは、サーバ証明書の発行を認可する場合、パスコードを入力する(ステップ18)。認可部118は、テレビ画面に表示したものと同じパスコードを受信すると、ユーザがサーバ証明書を認可したと判断する。認可部118は、ユーザが認可したことを示す許可情報を、第2通信処理部115に通知する(ステップ15f)。タイムアウト時間内にユーザの認可情報が得られない場合、またはパスコードの値が一定回数誤った場合は、認可部118は、エラー応答を返してもよい。この場合、第2通信処理部115は、発行済みのサーバ証明書を削除してもよい。または発行済みのサーバ証明書を第1通信処理部112で使用しないように制御してもよい。つまり、ユーザの認可情報が得られた場合のみ、証明書が発行または用いられるよう制御する。ユーザの認可情報を経てから、サーバ証明書を発行するようにステップの順序を変更することも可能である。
第2通信処理部115は、Webブラウザに対して、サーバ証明書(cert)、署名コード(sign)と、選択した署名アルゴリズムの識別情報とを含む応答を送信する(ステップ11f)。Webブラウザは、当該応答を、Webサーバ301のフロントエンドにフォワードする(ステップ10f)。なお、署名アルゴリズムの選択が行われなかった場合は、ステップ11f、ステップ10fでの当該署名アルゴリズムの識別情報の送信は不要である。
応答を受信したフロントエンドは、バックエンドに、署名コード(sign)を含む署名確認要求を送信する(ステップ19)。
バックエンドは、当該署名確認要求を、機器登録サーバ401にフォワードする(ステップ20)。これにより、バックエンドは、機器登録サーバ401に対して、署名コード(sign)の検証を要求する。
機器登録サーバ401は、通信装置101との事前共有鍵を用いて、署名コード(sign)を検証する。機器登録サーバ401は、この署名コード(sign)が、チャレンジコード(code)に事前共有鍵で署名したものであることを確認できた場合には、成功応答をバックエンドに送信する(ステップ20f)。バックエンドは、検証成功をフロントエンドに通知する(ステップ19f)。
フロントエンドは、検証成功の通知を受けると、第1ネットワーク501を介して、通信装置101の第1通信処理部112との間で、セキュアな通信により、アクセス確認を行う(ステップ22)。典型的には、使用するプロトコル(ここではHTTPS)での導通確認である。ただし、第1通信処理部112の説明でも述べた通り、使用するプロトコルは、他のプロトコル(COAPS等)でも構わない。
なお、このときのアクセス先の情報は、サーバ証明書(cert)に含まれる第1通信処理部112の識別情報(IPアドレス等)を用いてもよい。または、前述したステップ11f(Webブラウザからの証明書発行要求への応答)として、アクセス先の情報を、Webブラウザを介してフロントエンドに渡すようにし、この情報を用いてアクセス確認を行ってもよい。
本実施形態においては、ローカルIPアドレス(192.168.11.2)に対するサーバ証明書(cert)が発行され、サーバ証明書(cert)の発行対象属性に設定されたこのアドレス(192.168.11.2)に基づき、フロントエンドは、https://192.168.11.2/.well_knownへのアクセス確認を行うものとする。なお、”.well_known”は、ローカルサーバ(第1通信処理部)の属性情報を応答するエンドポイントであり、”.well_known”である必要はない。index.htmlであってもよく、形態は問わない。なお、“https”(Hypertext Transfer Protocol Secure)は、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)プロトコルによって提供されるセキュアな接続の上でHTTP通信を行うためのプロトコルである。
フロントエンドは、第1通信処理部112へのアクセスに失敗した場合には、第2通信処理部115を介して、第1通信処理部112に設定したサーバ証明書を削除するように構成してもよい。この導通確認処理は、フロントエンド側が実行したが、Webブラウザ側にJavaScript APIを設けて、フロントエンドが、このAPIを介して、Webブラウザに実行させるようにしてもよい。
フロントエンドは、第1通信処理部112へのアクセスに成功すると(ステップ22f)、当該サーバ証明書を、Webブラウザに、Webブラウザの信頼できるサーバ証明書として登録(保存)する(ステップ23、23f)。サーバ証明書の具体的な保存方法の一例として、Webブラウザに証明書登録用のJavaScript APIを設け、フロントエンドがこのAPIを呼び出して、証明書登録を行うようにしてもよい。または、フロントエンドが、Webブラウザにユーザに保存認可を求めるポップアップを表示し、ユーザが認可ボタンを押下すると、サーバ証明書を直接保存するようにしてもよい。
ユーザが、Webブラウザを介して、Webサーバ301のフロントエンドへ、機器100のリソースへのアクセスを要求する命令を送信する(ステップ24)。リソースは、ここでは通信装置101は、テレビのリモコン機能である。一例として、チャンネル変更、電源オン・オフ、または録画予約などである。フロントエンドは、Webブラウザからリモコン操作の情報を受けると、第1ネットワーク501を介して、第1通信処理部112とHTTPS通信を行い、リソースへのアクセス要求(リモコン操作の指示情報)を送信する。
より詳細には、フロントエンドは、HTTPS通信において第1通信処理部112とのTLSハンドシェイク時に、サーバ証明書の検証を行う。Webブラウザに設定されたサーバ証明書と、第1通信処理部112に設定されたサーバ証明書が一致する場合は、フロントエンド(より詳細には、フロントエンドと接続しているWebブラウザ)は、機器100を信頼できるものと判断し、以降、第1通信処理部112とWebブラウザとの間で、安全な暗号化通信が実現される。
Webサーバ301のオリジン情報と、通信装置101の第1通信処理部112のオリジン情報は異なっていることから、フロントエンドから第1通信処理部112へのアクセスは、クロスオリジンアクセス(異なるオリジン間でのアクセス)となる。Webサーバ301のオリジン情報は、第1通信処理部112のホワイトリストに登録されているため、第1通信処理部112は、異なるオリジン情報からのアクセス(クロスオリジン)を許容する。
第1通信処理部112は、安全な暗号化通信の下で、リソースへのアクセス要求(リモコン操作の情報)の命令を受信すると、当該命令に従って、チャネル変更等のリモコン機能を実行する。
図3は、本実施形態に係る通信装置101の動作のフローチャートである。第2通信処理部115が、第2通信部114を介して、チャレンジコード(署名対象データ)を含む証明書発行要求を受信する(ステップA101)。証明書発行要求は、一例として発行要求の第1形態に対応する。
第2通信処理部115は、秘密鍵と公開鍵のペアを生成し、第1通信処理部112の識別情報と、公開鍵および秘密鍵を用いて、第1通信処理部112の識別情報と公開鍵とを含み、秘密鍵により署名されたサーバ証明書を発行する(ステップA102)。このサーバ証明書は、一例として第1証明書に対応する。公開鍵および秘密鍵は、一例として、第1鍵および第1鍵と対になる第2鍵に相当する。署名は、例えば当該識別情報と公開鍵とを含むデータまたはそのハッシュ値を、秘密鍵により暗号化して署名データを生成することで行う。サーバ証明書は、当該データと署名データとを含むものとして構成される。
第2通信処理部115は、チャレンジコードを事前共有鍵で署名することにより署名コード(署名データ)を生成する(ステップA103)。一例として、通信装置101で保持される事前共有鍵は第3鍵、機器登録サーバ401で保持される事前共有鍵は第7鍵に相当する。第2通信処理部115は、サーバ証明書と秘密鍵とを、第1通信処理部112に設定する。
第2通信処理部115は、署名コードと、サーバ証明書とを、第2通信部114を介して送信する(ステップA104)。署名コードは、操作端末201およびWebサーバ301を介して、機器登録サーバ401に送信される。機器登録サーバ401では署名コードが検証され、検証に成功した場合は、成功の通知を、Webサーバ301に送信する。サーバ証明書は、Webサーバ301に操作端末を介して送信され、成功の通知を受けると、Webサーバ301は、サーバ証明書を、信頼できるサーバ証明書として、Webブラウザに保存する。
第1通信処理部112は、第1通信部111を介して、リモコン操作等のリソースへのアクセス(第1処理)を要求する命令を受信した場合に、サーバ証明書を当該命令の送信元との認証処理に用いる(ステップA105)。送信元(Webブラウザ)は、第1通信処理部112が、信頼できる証明書であることの検証に成功した場合にのみ、当該命令の送信元と通信を行うことで、リソースへのアクセス(リモコン操作等の動作)を行う(同ステップA105)。
以上、本実施形態によれば、Webサーバ301から、第1ネットワーク501(ローカルネットワーク等)上の機器100に、安全にクロスオリジンアクセスできる。具体的には、機器100による事前共有鍵の保持は、事前に機器登録サービスによって保証されており、この保証と、機器100の所有者であるユーザの許諾とに基づいて、WebサーバおよびWebブラウザは、機器100の発行したサーバ証明書を信頼できるものと判断している。一方、ユーザは、すでにWebサービスのアカウントを保持しており、Webサービスを信頼している関係にあり、この前提のもとで、Webサーバから機器100へのアクセスを、明確な意思表示に基づいて認めている。機器100自体が、Webサーバ(および機器登録サーバ)を直接認証できていないことを除けば、ユーザを介在させた相互認証に基づく、HTTPSのクロスオリジンアクセスが実現できている。
<第2実施形態>
第1実施形態では、サーバ証明書として通信装置が自己署名証明書を発行したが、本実施形態では証明書署名要求(Certificate Signing Request: CSR)を発行し、証明書署名要求を認証局が署名することで証明書を発行する形態を示す。また、第1実施形態では第1通信処理部112のIPアドレスに対してサーバ証明書を発行したが、本実施形態では、第1通信処理部112に設定したローカルのドメイン名に対してサーバ証明書を発行する。
本実施形態のシステム構成図は図1と同じであるが、一部の要素の機能が拡張または変更されている。以下、第1実施形態との差分を中心に説明する。
通信装置101は、第1実施形態との差分として、サーバ証明書ではなく、証明書署名要求(CSR)を発行する。
通信装置101の第1通信部111は、第1ネットワーク(ローカルネットワーク)501におけるドメイン名(ローカルドメイン名)の設定機能を備える。例えば第1通信部111は、mDNS(Multicast Domain Name System)クライアントの機能を備える。
第1記憶部113は、第1実施形態と同様、第1通信部111および第1通信処理部112に関わる設定を記憶する機能であり、本実施形態では、第1実施形態との差分として、ドメイン関連の設定情報を記憶している。設定情報の例として、mDNSクライアントの設定ファイル(ドメイン名やIPアドレス等を含む)などを記憶している。
機器登録サーバ401は、第1実施形態との差分として、認証局の機能、すなわち、CSRに基づきサーバ証明書を発行する機能を備える。一例として、機器登録サーバ401は、CSRを秘密鍵で署名することで、サーバ証明書を発行する。この秘密鍵は、機器登録サーバ(この場合、正規認証局)のサーバ証明書(公開鍵)で検証可能な秘密鍵である。この秘密鍵は、一例として第4鍵に対応する。
図4に、第2実施形態に係るシステムの通信シーケンスを示す。図4のシーケンスの開始前には、第1実施形態における図2のステップ1からステップ8fまで(チャレンジコードの発行まで)行われるが、これらの図示は省略されている。また、図4のシーケンスの後には、図2のステップ24〜ステップ24f(リソースへのアクセス)が行われるが、これらの図示も省略されている。
図4に示すように、Webサーバ301のフロントエンドは、Webブラウザに対して、証明書の発行要求ではなく、CSR(証明書署名要求)発行要求を送信する(ステップ1)。CSR発行要求は、チャレンジコード(code)、オリジン情報(origin)およびユーザ情報(user_id)を含む。
Webブラウザは、第2通信処理部115に対して、CSR発行要求をフォワードする(ステップ2)。
第2通信処理部115は、図2のステップ12と同様にして、鍵ペア(公開鍵および秘密鍵)を生成する(ステップ3)。
第2通信処理部115は、第1ネットワーク501のみで有効、かつ、ローカルIPアドレスが変化しても追従可能なローカルドメイン名(localdomain)を生成する(ステップ4)。例えば、Webサービスのドメイン名(tvcontrol.com)を用いて、tvcontrol.com.localとしてローカルドメイン名を生成してもよい。あるいは、さらにユーザ情報(user_id)がユーザのアカウント名の場合、アカウント名がaliceであれば、alice.tvcontrol.com.localとして、ローカルドメイン名を生成してもよい。あるいは、通信装置101内で一意性が保証された鍵ID(key_id)を用いて、key_id.localとして、ローカルドメイン名を生成してもよい。このように、様々なバリエーションが考えられる。ローカルドメイン名は、第1通信処理部112の識別情報の一例に相当する。
設定部117は、第1通信部111を介して、第2通信処理部115で生成された名前のローカルドメインを有効化する(ステップ5)。具体的には、設定部117が、第1記憶部113のmDNS設定ファイルに、生成したローカルドメイン名(localdomain)を書き込み、第1通信部111のmDNSクライアントに、当該設定を読み込ませる。mDNSクライアントは、当該設定を、mDNSを用いて第1ネットワーク501内に登録する。以上が、典型的な実現形態として考えられるが、これに限定されるものではない。ローカルドメインの設定が完了すると、第1通信部111は、設定部117を介して、第2通信処理部115に、ローカルドメインの設定完了通知を送信する(ステップ5f)。
設定部117は、さらに、第2通信処理部115からの指示を受けて、第1通信処理部112へオリジン情報の設定、より詳細には、CORS(特定のオリジンからのアクセス認可)の設定を行う(ステップ6、ステップ6f)。第1実施形態との差分として、この段階ではまだサーバ証明書が作成されていないため、サーバ証明書の設定は行わない。なお、もし第1通信処理部112のサーバ機能が起動されていない状態であれば、設定部117は、第1通信処理部112に起動処理を要求することで、サーバ機能を起動するよう制御する。
第2通信処理部115は、鍵ペア(公開鍵および秘密鍵)と、ローカルドメイン名(localdomain)とを用いて、必要に応じてさらにオリジン情報(origin)とユーザ情報(user_id)を用いて、CSR(証明書署名要求)を生成する(ステップ7)。図では、生成されたCSRのデータを、csrによって表している。CSRは、一例として、公開鍵と、ローカルドメイン名を含む。さらに、オリジン情報とユーザ情報の少なくとも一方を含んでもよい。
例えば、本実施形態ではサーバ証明書の発行は通信装置101ではなく、機器登録サーバ401が行うため、CSRに発行対象属性として、オリジン情報(origin)およびユーザ情報(user_id)のいずれか、もしくは、両方を含めても良い。あるいは、これらに加え、またはこれらの代わりに、乱数、連番、またはランダム文字列を含めてもよい。
X.509を例にすると、発行対象属性(Subject)のサブ項目である組織 (O=)に、機器100(または通信装置101)の製造業者名、もしくは、Webサービス名(オリジン情報、またはオリジン情報に含まれるホスト名)を設定し、同じくサブ項目である発行対象名(CN=)に、ローカルドメイン名(localdomain)を設定し、同じくサブ項目であるemailアドレス(Email=)に、ユーザ情報(user_id)(例えばWebサービスへ登録したメールアドレス)を設定する。
第1実施形態のステップ15と同様、第2通信処理部115は、認可部118に対して、サーバ証明書(またはCSR)の発行に関するユーザ認可を求める許諾要求を送る(ステップ8)。
第1実施形態のステップ16と同様、第2通信処理部115は、認可部118からの応答を待っている間、受信したチャレンジコード(code)に事前共有鍵で署名することにより、署名コード(sign)を生成する(ステップ9)。
認可部118は、許諾要求を受けて、機器100の表示部に、ユーザの認可を求める認可ダイアログを表示する(ステップ10)。認可ダイアログの例を図5に示す。図5の例では、「TVリモコンサービスがアクセスを求めています。このアクセスには、TVの証明書発行をともないます。発行しますか?[はい][いいえ]」のダイアログが表示されている。第1実施形態でも、同様の認可ダイアログを表示してもよい。
ユーザが、テレビのリモコンを用いて、「はい」を選択し、決定ボタン151を押すと、認可部118は、その旨の信号を受信し、これによりユーザからの許諾が得られたと判断する(ステップ11)。認可部118は、ユーザ許諾が得られたことを示す情報を第2通信処理部115に通知する(ステップ8f)。第2通信処理部115は、生成した証明書署名要求(csr)、および署名コード(sign)を、ステップ2のCSR発行要求に対する応答として、Webブラウザに送信する(ステップ2f)。タイムアウト時間内にユーザ認可が得られない場合等は、認可部118は、エラー応答を返してもよい。この場合、第2通信処理部115は、発行済みの証明書署名要求を削除してもよい。または発行済みの証明書証明要求をWebブラウザに送信しないように制御してもよい。つまり、ユーザの認可が得られた場合のみ、サーバ証明書が発行または用いられるよう制御する。なお、ユーザ認可を経てから、証明書署名要求を発行するように、ステップの順序を変更することも可能である。
Webブラウザは、証明書署名要求(csr)に含まれるドメイン名(localdomain)(CN=)に対し、第1ネットワーク501を介して、アクセス確認(導通確認)を行う(ステップ12、ステップ12f)。Webブラウザは、ドメイン名(localdomain)の存在が確認できた場合には、フロントエンド側に、CSR発行要求(ステップ1)への成功応答として、証明書署名要求(csr)および署名コード(sign)を送信する(ステップ1f)。アクセス確認の方法は、ここではWebブラウザ内部処理として実行したが、第1実施形態におけるステップ22と同様に、フロントエンドで行ってもよい。
フロントエンドは、バックエンドに、署名コード(sign)と、証明書署名要求(csr)を送信する(ステップ13)。これにより、署名コードの署名検証と、サーバ証明書の発行とを要求する。
バックエンドは、機器登録サーバ401に対して、署名コード(sign)の署名検証と、証明書署名要求(csr)への署名(すなわちサーバ証明書の発行)との要求を送信する(ステップ14)。
機器登録サーバ401は、事前共有鍵を用いて、署名コード(sign)の署名を検証する(ステップ15)。
機器登録サーバ401は、署名コード(sign)が、チャレンジコード(code)に事前共有鍵で署名して得られるデータに一致することを確認できた場合は、すなわち、署名検証が成功した場合は、秘密鍵を用いて証明書署名要求(csr)へ署名する(ステップ16)。これにより、サーバ証明書(cert)が発行される。この秘密鍵は、機器登録サーバ(この場合、正規認証局)のサーバ証明書(公開鍵)で検証可能な秘密鍵である。この秘密鍵は、一例として第4鍵に対応する。このサーバ証明書は、一例として、証明書署名要求の内容(ローカルドメイン名、公開鍵等)と、当該秘密鍵により当該証明書署名要求(または証明書署名要求のハッシュ値)を署名したデータ(署名)とを含む。
フロントエンドは、機器登録サーバ401から、バックエンドを介して、サーバ証明書(cert)を受け取る(ステップ14f、ステップ13f)。フロントエンドは、Webブラウザに設けられたサーバ証明書登録APIに対し、サーバ証明書の登録要求(保存要求)を送信する(ステップ17)。この登録要求は、サーバ証明書を含む。
Webブラウザは、第2ネットワーク601を介して登録要求を受信し、第2通信処理部115に対して、この登録要求をフォワードする(ステップ18)。
第2通信処理部115は、設定部117に対して、サーバ証明書(cert)と、これに対応する秘密鍵(secret)とを第1通信処理部112に設定することを指示する(ステップ19)。設定部117は、第1通信処理部112に、サーバ証明書(cert)と秘密鍵(secret)とを設定する。
より具体的には、設定部117は、第2記憶部116内または第2通信処理部115のワークメモリ内にキャッシュされた秘密鍵(secret)を取得し、第1記憶部113内の所定のディレクトリに、秘密鍵を保存する。また設定部117は、サーバ証明書も第1記憶部113に保存する。そして、設定部117は、第1通信処理部112のサーバ機能を再起動するか、あるいは、サーバ機能に、サーバ証明書および秘密鍵を再読込させるよう制御する。
Webブラウザは、第2通信処理部115からの成功応答(ステップ18f)を受けて、サーバ証明書を信頼できるサーバ証明書として操作端末201内の記憶領域に保存する(ステップ20)。そして、Webブラウザは、フロントエンドにサーバ証明書の登録が完了した旨の応答を送信する(ステップ17f)。
以上の手順により、正規認証局(機器登録サーバ401)により署名され、かつ、通信装置101のIPアドレス変化にも追従可能な、正規のサーバ証明書を発行することができる。なお、本実施形態における第1通信処理部112は、Webサーバ(アクセス元)のオリジンに応じた異なるドメイン名を複数付与され得る。設定部117は、第1通信処理部112に、1つのドメインないし固定数のドメインしか付与されないように制限をかけてもよい。複数のドメイン名の付与を許容する場合、第1通信処理部112は、SNI(Server Name Indication)に基づき、アクセスされたドメイン名に応じて、サーバ証明書を使い分ける機構を備える。
図6は、本実施形態に係る通信装置101の動作のフローチャートである。第2通信処理部115が、第2通信部114を介して、チャレンジコード(署名対象データ)を含むCSR発行要求を受信する(ステップA111)。CSR発行要求は、一例として発行要求の第2形態に対応する。
第2通信処理部115は、秘密鍵および公開鍵を生成し、第1通信処理部112の識別情報および公開鍵等を用いて、第1通信処理部112の識別情報と公開鍵とを含むCSR(証明書署名要求)を生成する(ステップA112)。
第2通信処理部115は、チャレンジコードを事前共有鍵で署名することにより署名コード(署名データ)を生成する(ステップA113)。一例として、通信装置101で保持される事前共有鍵は第3鍵、機器登録サーバ401で保持される事前共有鍵は第7鍵に相当する。
第2通信処理部115は、署名コードと、CSRとを、第2通信部114を介して送信する(ステップA114)。署名コードおよびCSRは、操作端末201およびWebサーバ301を介して、機器登録サーバ401に送信される。機器登録サーバ401では署名コードが検証され、検証に成功した場合は、秘密鍵で証明書署名要求に署名することでサーバ証明書を発行する。このサーバ証明書は、一例として第2証明書に対応する。サーバ証明書を、Webサーバ301に送信する。Webサーバ301は、サーバ証明書を、信頼できるサーバ証明書として、Webブラウザに保存する。また、Webサーバ301は、操作端末201を介してサーバ証明書を第2通信処理部115に送る。第2通信処理部115は、サーバ証明書を受信し(ステップA115)、サーバ証明書と秘密鍵とを、第1通信処理部112に設定する。
第1通信処理部112は、第1通信部111を介して、リモコン操作等のリソースへのアクセス(第1処理)を要求する命令を受信した場合に、サーバ証明書を用いて当該命令の送信元と認証処理を行う(ステップA116)。例えば第1通信処理部112がサーバ証明書をWebブラウザまたはWebサーバ301に送信し、WebブラウザまたはWebサーバ301に保存されている証明書と、第1通信処理部112が送ったサーバ証明書が一致する場合に、認証処理が成功する。第1通信処理部112は、認証処理に成功した場合に、秘密鍵を用いて当該命令の送信元と通信を行って、リソースへのアクセスを行う(同ステップA116)。
以上、本実施形態によれば、通信装置101で証明書署名要求(CSR)を発行し、このCSRを認証局で署名することで、サーバ証明書を作成するため、認証局による検証を経て、サーバ証明書を発行することができる。第1実施形態では、発行するサーバ証明書が、通信装置101自身で発行する自己署名証明書であったため、認証局の検証が行われていないものであったが、本実施形態では、認証局の認証を経たサーバ証明書を実現できる。
また、本実施形態では、第1通信処理部112に設定したローカルドメイン名に対してサーバ証明書を発行するため、第1通信処理部112のローカルIPアドレスが変化しても、サーバ証明書を継続して使用できる。
<第3実施形態>
第1および第2実施形態では、通信装置101が、サーバ証明書の発行に関するユーザの認可意思の確認を行うための物理インタフェース(テレビの画面およびリモコン等)を備える機器に搭載されていたが、本実施形態では、通信装置101が、そのような物理インタフェースが搭載されていない場合の形態を示す。
図7に、第3実施形態に係る通信装置101を備えたシステムの全体構成を示す。第1および第2実施形態と異なり、通信装置101が、上記物理インタフェースを持たない機器、具体的には、ホームゲートウェイ装置150に搭載されている。ホームゲートウェイ装置150は、宅内家電機器の監視・制御機能をブロードバンドルータに搭載したものである。
特に本実施形態では、ホームゲートウェイ装置150は、HEMS(Home Energy Management System)関連の標準通信プロトコルであるECHONETに準拠し、第1ネットワーク501(ホームネットワーク等)からECHONET対応の監視・制御ができるようにプロトコル変換を担うゲートウェイ装置であるとする。
以下、第1および第2実施形態とのシステム構成上の差分を中心に説明する。
ゲートウェイ装置150(より詳細には通信装置101)は、第4ネットワーク801を介して、1つまたは複数の機器に接続されている。具体的に、第4ネットワーク801は、ECHONETまたはSEP2.0準拠のネットワークである。第4ネットワーク801は、BluetoothまたはZigbeeなど、他のプロトコルに準拠したネットワークでもよい。また第4ネットワーク801は、第1ネットワーク501または第2ネットワーク601と、物理的には同じものであってもよい。
第4ネットワーク801に接続された機器は、ゲートウェイ装置150経由で監視・制御される機器である。本実施形態では、第4ネットワーク801上の機器は、ECHONET対応機器であるとする。本実施形態では、第4ネットワーク801上の機器のうちの1つは、スマートメータであるとする。
通信装置101は、第1実施形態または第2実施形態の通信装置が備えるブロックに加え、第4通信部123および第4通信処理部124を備え、認可部118等の機能が拡張または変更されている。
第4通信部123は、制御対象である第4ネットワーク801上の機器との通信を行う。物理媒体は、第1通信部111および第2通信部114と共通であってもよい。ここでは、第4通信部123は、物理媒体の上位層のプロトコル、具体的にはMAC層からECHONETプロトコルまでを含む通信モジュール機能を備えているとする。第4通信部123は、一例として通信回路によって構成される。通信回路は、ハードウェアのみによって構成されてもよいし、ハードウェアとソフトウェアによって構成されてもよい。
第4通信処理部124は、第1ネットワーク501上の操作端末201と、第4ネットワーク801上の機器間で、プロトコル変換を行う。本実施形態では、第4通信処理部124は、HTTPとECHONET間のプロトコル変換を行う。
認可部118は、操作端末201から第1通信処理部112を介してユーザ認可要求(以下、認可要求と呼ぶ)を受信し、ユーザが認可(または拒絶)を行うための認可画面を操作端末201に表示させるよう制御する。認可部118は、CAPTCHA(画面に表示した文字の画像データと同じ文字をユーザに入力させることで、機械による自動操作を防ぐ仕組み)などを用いて、ユーザ操作の介在を保証する仕組みを提供するものとする。ユーザは、認可画面で認可(あるいは拒絶)を行い、入力した情報が操作端末201に送られる。操作端末201は、ユーザの認可が得られた場合、その旨を認可部118に通知する。
認可部118は、第1通信処理部112経由で受信する認可要求と、ユーザが認可画面で行う認可とを紐付けるために、ユーザ認可が得られたセッションIDを第2通信処理部115に送信する。これにより第2通信処理部115は、セッションIDを介在させたユーザ認証を行うことができる。
図8に、第3実施形態に係るシステムの通信シーケンスを示す。本シーケンスでは、ユーザシナリオとして、ユーザが、操作端末201のWebブラウザで、クラウド型HEMSサービスのWeb画面を表示し、第4ネットワーク801上の機器(ここではスマートメータ)の電力使用量の積算値を、ゲートウェイ装置150経由で取得する場合を想定する。
図8のシーケンスの開始前には、第1実施形態のシーケンス(図2)のステップ1からステップ8fまで(チャレンジコードの発行まで)行われるが、これらの図示は省略されている。また、図8のシーケンスの後には、第2実施形態のシーケンス(図4)のステップ13以降の処理(署名検証および証明書発行に関する処理)が行われるが、これらの図示も省略されている。
図8のステップ1からステップ5fまでは、第2実施形態のシーケンス(図4)のステップ1からステップ5fと同じであるため、説明を省略する。
第2通信処理部115は、ユーザに認可画面を表示するための一時的な自己署名サーバ証明書(tmp_cert)を作成する(ステップ6)。その有効期限は、一例として、30秒など、短く設定する。自己署名サーバ証明書(tmp_cert)の作成には、鍵ペア(pub,secret)、ローカルドメイン名(localdomain)、オリジン情報(origin)およびユーザ情報(user_info)のうちの全部または一部を用いればよい。鍵ペアの公開鍵(pub)は第5鍵、秘密鍵(secret)は第6鍵に対応する。
第2通信処理部115は、後述する操作端末201からの認可画面へのアクセスと、ステップ1のCSR発行要求とを関連づけるためのセッションID(sid)を生成する(ステップ7)。
第2通信処理部115は、設定部117を介して、第1通信処理部112に、秘密鍵、自己署名サーバ証明書(tmp_cert)、セッションID(sid)およびオリジン情報を設定する(ステップ8、ステップ8f)。
そして、第2通信処理部115は、認可処理のために、第1通信処理部112を一時的に起動し(一時的にオリジン情報(origin)からのアクセスを認可し)、自己署名サーバ証明書(tmp_cert)とセッションID(sid)を、Webブラウザに応答する(ステップ2f)。この時、認可画面のURL(authz_url)を併せて応答してもよい。または、認可画面の相対パスを予め固定の値に定義しておき、自己署名サーバ証明書に含まれるドメイン情報のみから、認可画面URLをWebブラウザで導出できるようにしてもよい。この場合、第2通信処理部115は、認可画面のURL(authz_url)を応答しなくてよい。
Webブラウザは、自己署名サーバ証明書(tmp_cert)を、信頼できる証明書として、操作端末201内のアクセス可能な領域に保存する(ステップ9)。
Webブラウザは、第1ネットワーク501を介して、第1通信処理部112(HTTPSサーバ)に、認可画面の要求を送信する(ステップ10)。当該要求は、認可画面のURL(authz_url)と、セッションID(sid)とを含む。許可画面の要求の送信前、Webブラウザは、自己署名サーバ証明書(tmp_cert)を用いて、第1通信処理部112と認証を行う。Webブラウザが保有している自己署名サーバ証明書が、第1通信処理部112で保持されている自己署名サーバ証明書と一致していれば(自己署名サーバ証明書が、信頼できるサーバ証明書として登録されていれば)、認証の成功を決定する。
第1通信処理部112は、セッションID(sid)をチェックする(ステップ11)。
第1通信処理部112は、ステップ8で設定されたセッションIDと、受信したセッションIDが一致するときは、セッションID(sid)の認証が成功したと判断し、認可部118を介して、認可画面をWebブラウザに応答する(ステップ12、ステップ12f、ステップ10f)。すなわち、第1通信処理部112は、認可部118に、セッションIDを含む認可要求を送信して(ステップ12)、認可部118から応答として認可画面を受信し(ステップ12f)、当該認可画面を、Webブラウザに送信する(ステップ10f)。
Webブラウザは、認可画面のポップアップ表示の要求を、フロントエンドに送信する。この要求はセッションIDを含んでもよい(ステップ13)。フロントエンドは、操作端末201のWebブラウザに、認可画面をポップアップ表示するよう制御する。
図9に、操作端末201のWebブラウザに表示される認可画面の例を示す。この画面には、「認可しますか[はい][いいえ]」のダイアログが表示されている。この際、CAPTCHA用の画像も併せて表示し、ユーザにこの画像に対応するコードを入力させることで、ユーザの介在を保証してもよい。
ユーザは、認可する場合、CAPTCHA用の画像に対応するコードを入力し、[はい]ボタンを押下する(ステップ14)。なお、図9ではCAPTCHA用の画像および入力フィールドの表示は省略されている。ユーザの介在を保証する手段として、CAPTCHA以外の方法を用いてもよい。
フロントエンドまたはWebブラウザは、認可部118に、ユーザ認可を取得できたとの通知を送信する(ステップ15)。この通知は、セッションIDを含んでもよい。認可部118は、第2通信処理部115に、セッションID(sid)に対応するユーザから、認可を取得できたとの通知を送信する(ステップ16)。また、認可部118は、第2通信処理部115への通知の完了を、フロントエンドに応答する(ステップ15f)。
フロントエンドは、ユーザの認可処理の成功をWebブラウザに通知し(ステップ13f)、Webブラウザは、改めて、CSR発行要求を、第2通信処理部115に送信する(ステップ17)。このCSR発行要求は、セッションID(sid)を含む。
第2通信処理部115は、CSR発行要求を受けると、事前に認可部118からユーザ認可が得られたとの通知を受けている場合は(ステップ16参照)、証明書署名要求(CSR)を生成する(ステップ18)。証明書署名要求(CSR)は、第2実施形態と同様のものでよい。
第2通信処理部115は、チャレンジコード(code)に事前共有鍵で署名することにより、署名コード(sign)を生成する(ステップ19)。
第2通信処理部115は、証明書署名要求(csr)と、署名コード(sign)とをWebブラウザに応答する(ステップ17f)。Webブラウザは、証明書署名要求(csr)と、署名コード(sign)とを、ステップ1のCSR発行要求に対する応答として、送信する(ステップ1f)。これより後のステップは、前述した通り、第2実施形態における図4のステップ13以降と同じである。
以上の手順により、通信装置101が、ユーザが認可意思を行うためのユーザインタフェースを持たない機器に搭載されている場合も、正規認証局(機器登録サーバ401)の署名が付与され、かつ、通信装置101のIPアドレス変化にも追従可能な、正規のサーバ証明書を発行できる。
上述した手順は、第2実施形態のシーケンス(CSR発行要求を受信した場合のシーケンス)を前提としたが、第1実施形態のシーケンス(証明書発行要求を受信した場合のシーケンス)の場合でも、同様にして実施可能である。
本実施形態に係る通信装置101が搭載される機器は、ゲートウェイ装置以外にも様々な応用が考えられる。ゲートウェイ装置以外の機器の例として、Wi−Fi機能を搭載したSDカードが挙げられる。この場合、例えば、第1のネットワークおよび第1通信部111がWi−Fiに対応し、第2のネットワークおよび第2通信部114がSDIOに対応する。通信機能を持たないレガシー機器に、Wi−Fi機能付きSDカードを挿入することで、レガシー機器をIoT機器化する応用シナリオを説明する。図10および図11は、当該シナリオを説明するための図である。
図10に示すように、ユーザが、本実施形態に係る通信装置101が搭載されたSDカードを、操作端末201に挿入する。通信機能を持たないレガシー機器160が、ユーザ宅内に配置されている。操作端末201は、例えばノートパソコン等のPC(Personal Computer)である。
ユーザが、SDカードが挿入された操作端末201上のWebブラウザを操作して、SDカード対応機器のIoT(Internet of Things)化サービスにログインする。IoT化サービスは、Webサーバ301が提供するWebサービスに対応する。
本実施形態の通信シーケンス(図8)に基づき、SDカードに対するサーバ証明書が生成され、SDカードに保存される。このとき、SDカードを介して制御する対象となる機器(レガシー機器160)を、第1通信処理部112(HTTPサーバ)経由で制御するためのロジック(CGI等)のデータも、SDカードに設定する。このロジックは、HTTPサーバ上で動くプログラムである。ロジックは、Webサーバ301から提供されてもよいし、操作端末201に事前にインストールされていてもよい。
この後、図11に示すように、ユーザがSDカードを、操作端末201から抜き、レガシー機器160に挿入することで、レガシー機器160がIoT化される。すなわち、レガシー機器160が、第1ネットワーク501を介して制御可能になる。この後は、操作端末201のWebブラウザから、当該IoT化された機器に、Webサーバ301を介して、クロスオリジンアクセスする。このときCORS設定によって、当該Webサーバ301のフロントエンドからのみアクセスを許可するように制御することも可能である。SDカード内の第1通信処理部112のHTTPサーバで動くCGI等のロジックが、第2通信部114(SDIO)を介して、当該レガシー機器160の制御を行う。これにより、操作端末201から、IoT化されたレガシー機器160を制御したり、当該レガシー機器160がSDカードに保存したデータを取得することができる。なお、上述のシナリオでは、第2通信部114として、SDIOを想定したが、第1通信部111と同様、WiFiであってもよい。具体的には、当該SDカードのWi−Fi機能が、アクセスポイント機能とステーション機能を双方備え、第2通信部114は、アクセスポイント機能側、第1通信部111は、ステーション機能側であってもよい。このとき設定部117が、証明書発行までは、アクセスポイント機能を動作させ、証明書発行後は、ステーションモード機能を動作させるように、Wi−Fiの動作モードも制御するように構成してもよい。
<第4実施形態>
第1〜第3実施形態では、サーバ証明書を発行することでWebサービスが通信装置101または機器(またはゲートウェイ装置)の正当性を判定することを可能にしたが、本実施形態では、Webサービスに対してクライアント証明書を発行することで、機器側がWebサービスの妥当性を検証することを可能にする。端的には、機器側が、第1〜第3実施形態の機器登録サービスの役割に対応する機能を備えることで、Webサービスの妥当性を検証する。
本実施形態のシステム構成は、前述した第3実施形態に係る図7と同じである。但し、通信装置101の機能が一部変更または拡張されている。
第2通信処理部115は、第3実施形態との差分として、チャレンジコード(code)発行機能、署名検証機能、およびクライアント証明書発行機能、を備える。
図12に、第4実施形態に係るシステムの通信シーケンスを示す。ユーザシナリオは、第3実施形態と同様、ユーザが、操作端末201のWebブラウザで、クラウド型HEMSサービスのWeb画面を表示し、第4ネットワーク801上の機器(ここではスマートメータ)の電力使用量の積算値を、ゲートウェイ装置(機器)150経由で取得する場合を想定する。
第2通信処理部115は、フロントエンドからWebブラウザを介して、通信装置101の第1通信処理部112(HTTPサーバ)用のCSR発行要求を受信する(ステップ1)。第2通信処理部115は、当該CSR発行要求の応答として、チャレンジコード(code_for_client_cert)を発行し、フロントエンドに送信する(ステップ1f)。この際、第2通信処理部115は、CSR発行要求の受信に応じて、図8のステップ2以降(サーバ証明書用のCSR発行処理)を行い、図12のステップ1fの応答では、図8のステップ1fの応答を兼ねてもよい。この場合、以降の動作は、各応答に対して別々にシーケンスが行われてもよい。あるいは、図8のステップ1fの後の処理を先に行って、サーバ証明書の設定が完了してから、図12のステップ1fより後の処理(チャレンジコードの応答以降のシーケンス)が開始されてもよい。
別の方法として、第2通信処理部115が、クライアント証明書発行用のチャレンジコード要求インタフェースを備えていてもよい。この場合には、第2通信処理部115が、フロントエンドからWebブラウザを介して、チャレンジコード発行要求を受信して、チャレンジコード(code_for_client_cert)を応答するように構成してもよい。
Webサービスのフロントエンドは、取得したチャレンジコード(code_for_client_cert)をバックエンドに送る(ステップ2)。
バックエンドは、このチャレンジコード(code_for_client_cert)を機器登録サーバ401に、CSR発行要求の引数として送信する(ステップ3)。
機器登録サーバ401は、チャレンジコード(code_for_client_cert)に事前共有鍵で署名し(ステップ4)、署名されたチャレンジコードである署名コード(signed_code)を、バックエンドに応答する(ステップ3f)。
バックエンドは、鍵ペア(秘密鍵および公開鍵)を生成する(ステップ5)。バックエンドは、秘密鍵を内部に保持し、また、Webサービスの識別情報および公開鍵等を含む証明書署名要求(CSR)を生成する(同ステップ5)。バックエンドは、署名コード(signed_code)と、証明書署名要求(CSR)とを、フロントエンドに応答する(ステップ2f)。
フロントエンドは、Webブラウザに対して、署名コード(signed_code)と証明書署名要求とを引数として含むクライアント証明書発行要求を送信する(ステップ6)。
Webブラウザは、当該クライアント証明書発行要求を、第2通信処理部115にフォワードする(ステップ7)。
第2通信処理部115は、受信したクライアント証明書発行要求に含まれる署名コード(signed_code)を、事前共有鍵を用いて、検証する(ステップ8)。失敗した場合には、エラー応答を返す。
検証に成功した場合には、第2通信処理部115は、ユーザにクライアント証明書発行を求めるための認可処理を実行する(ステップ9)。この認可処理は、第1〜第3実施形態と同様であるため、詳細な説明を省略する。
第2通信処理部115は、サーバ証明書の秘密鍵を用いて、証明書署名要求(CSR)に署名することで、クライアント証明書(client_cert)を発行する(ステップ10)。第2通信処理部115は、クライアント証明書(client_cert)をWebブラウザに送信する(ステップ7f)。ここで用いる秘密鍵は、クライアント証明書発行要求の要求元を表すオリジン情報(Webサービス)およびユーザに対応するサーバ証明書の秘密鍵である。
Webブラウザは、受信したクライアント証明書(client_cert)をフロントエンドにフォワードする(ステップ6f)。
フロントエンドは、受信したクライアント証明書を含むクライアント証明書登録要求を生成し、バックエンドに送信する(ステップ11)。
バックエンドは、受信したクライアント証明書と、ステップ5で作成して保存しておいた秘密鍵とを含むファイルを作成し(ステップ12)、このファイルをフロントエンドに送信する(ステップ11f)。
フロントエンドは、受信したファイル(一般的には、p12ファイルと呼ばれるもの)を、Webブラウザに保存(インストール)する(ステップ13)。この時、Webブラウザ画面にインストールダイアログを表示して、明示的にユーザに、ファイルのインストールを行わせるように構成してもよい。
フロントエンドが、Webブラウザを介してユーザからリソースアクセスの要求(監視または制御の要求)を受ける。フロントエンドが、第1通信処理部112に対し、ゲートウェイ装置150配下の機器の監視または制御の命令を、HTTPSプロトコルで発行して、送信する(ステップ14)。この時、下位層のTLS接続確立時に、クライアント証明書およびサーバ証明書に基づく相互認証が行われる。クライアント証明書に基づく認証は、一例として、以下のように行えばよい。第1通信処理部112が、フロントエンドまたはWebブラウザから、クライアント証明書を受信する。受信したクライアント証明書の署名を、サーバ証明書の秘密鍵で復号し、復号したデータが、クライアント証明書の署名以外の本体部分(CSRに相当する部分)またはそのハッシュ値と一致すれば、そのクライアント証明書は信頼できると判断する。認証後の通信は、サーバ証明書の秘密鍵および公開鍵を用いて暗号化すればよいが、クライアント証明書の秘密鍵および公開鍵を用いて暗号化することも可能である。
第4通信処理部124は、当該命令をプロトコル変換し、ゲートウェイ装置配150下の機器に 換後の命令を送信する。これにより機器の監視・制御が実行される(ステップ15、ステップ15f)。第1通信処理部112は、監視・制御の結果を、フロントエンドにフィードバックする(ステップ14f)。
以上の手順によって、通信装置101上のローカルサーバ(第1通信処理部112)が、アクセス元(Webサービスおよびユーザ)の検証を、クライアント証明書を用いて行うことができる。このとき、クライアント証明書は、ローカルサーバにアクセス可能なユーザによる認可のもとで、機器登録サーバ401から署名をもらうことができる関係にある(正規の)Webサービスに対して発行できている。
なお、サーバ証明書の発行とクライアント証明書の発行とを一連の処理として行う場合には、ユーザ認可をまとめて1回のみ行うようにしてもよい。一例として、サーバ証明書の生成時にユーザの認可がとれていれば、図12のステップ9は省略してもよい。
<第5実施形態>
第4実施形態では、通信装置101が、クライアント証明書によってアクセス元(Webサービスおよびユーザ)の検証を行うことができるが、クライアント証明書のインストールおよび更新に手間がかかる。本実施形態では、通信装置101上の第1通信処理部112が行うアクセス元の認証を、Webサービスのユーザ認証に統合する(すなわち、通信装置101が、ユーザ認証をWebサービスに移譲する)ことで、この問題を解消する。
本実施形態のシステム構成は、前述した第3実施形態に係る図7と同じである。但し、通信装置101の機能が一部変更または拡張されている。
第1通信処理部112は、第1〜第3実施形態のHTTPサーバ機能に加えて、クライアント登録機能と、認可移譲機能と、トークン検証機能と、ユーザ情報取得機能とを備える。
図13に、第5実施形態に係るシステムの通信シーケンスを示す。図13には、第3実施形態におけるサーバ証明書の発行時点からのシーケンスが示される。これより前は、第3実施形態と同様のシーケンス(すなわち、図2のステップ1〜ステップ8と、これに続く図8のシーケンスと、さらにこれに続く図4のステップ13〜ステップ13f)が行われる。ユーザシナリオは、第3実施形態と同様である。
前提として、Webサーバが、OpenID Connect、およびOAuth 2.0というWeb上でアクセス権限の移譲を行うプロトコルの認可サーバ機能を備えているものとする。
第2通信処理部115は、機器登録サーバ401の署名により生成されたサーバ証明書(cert)の登録要求を、Webブラウザを介して、受信する(ステップ1)。
この登録要求は、サーバ証明書を含み、さらにパラメータとして、Webサービスへのクライアント登録URL(register_url)、認可画面URL(authz_url)の情報を含む。
クライアントとは、第1通信処理部112(HTTPサーバ)のことである。つまり、第1通信処理部112が、Webサービスに認証を移譲するRP (Relying Party)である。なお、バリエーションとして、こうした個別のURLではなく、Webサービス側のURL情報を一覧したファイルへのパスでもよい。具体的な実現方法は問わない。
第2通信処理部115は、第1通信処理部112に、サーバ証明書を登録する(ステップ2)。
第2通信処理部115は、設定部117を介して、第1通信処理部112へ、Webサービスへのクライアント登録を指示するクライアント登録要求を送る(ステップ3)。クライアント登録要求は、クライアント登録URL(register_url)を含む。クライアント登録URLは、第1通信処理部112(HTTP)であるクライアントを、Webサーバ301に登録するために使用するURLである。このURLは、Webサーバ301が提供するWebサービス内のパスである。
第1通信処理部112のクライアント登録機能は、第1ネットワーク501を介して、Webサーバ301のバックエンドに対して、クライアント登録依頼を送信する(ステップ4)。このクライアント登録依頼は、少なくとも、後述するユーザによる認証完了後にリダイレクトバックする画面のパス(redirect_url)を含む。なお、第1通信処理部112は、Webサーバ301と直接通信する代わりに、第2通信処理部115およびWebブラウザを介して、Webサーバ301と通信するようにしてもよい(以下、同様)。
バックエンドは、クライアント登録依頼を受信すると、クライアントID(client_id)と、秘密鍵(client_secret)とを発行することによりクライアントを登録する。バックエンドは、クライアントID(client_id)と、秘密鍵(client_secret)とを、第1通信処理部112に応答として送信する(ステップ4f)。なお、秘密鍵(client_secret)の発行および送信を省略する構成も可能である。
第1通信処理部112のクライアント登録機能は、第2通信処理部115に対してクライアント登録が完了した旨の通知を応答し(ステップ3f)、これを受けて、第2通信処理部115は、サーバ証明書の登録が完了した旨の通知を応答する(ステップ1f)。
第1通信処理部112が、フロントエンドから、第1ネットワーク501を介して、リソースアクセスを要求する命令、すなわち、機器の監視・制御命令を受信する(ステップ5)。この段階では、まだフロントエンドは、第1通信処理部112へのアクセスを許可されていない状態である。この場合、第1通信処理部112の認可移譲機能は、認可画面URL(authz_url)へのリダイレクト指示をフロントエンドに応答する(ステップ5f)。認可画面URLは、認可画面URLは、ユーザ認可処理を行うための画面を提示するために使用するURLである。このURLは、Webサービス内のパスである。フロントエンドは、受信したリダイレクト指示に含まれる認可画面URL(authz_url)に、リダイレクトする(ステップ6)。
ユーザは、リダイレクトされたWebサービス上の画面(Webブラウザの画面)で、必要に応じてログイン処理を行ってもよい。ユーザは、当該画面を介して、クライアント(第1通信処理部112)に対して、当該Webサービス上のリソース(ユーザ情報など)へのアクセス権限を付与することを認可する(ステップ7)。なお、この要求する権限の範囲を示す情報も、クライアント登録時(ステップ4)に、クライアント自らが指定する。ユーザが許可したことを示す通知が、Webブラウザからフロントエンドを介してバックエンドに送信される(同ステップ7)。
ユーザが認可すると、バックエンドは、ユーザが認可したことを示す認可データとして、認可コード(authz_code)を生成し、ステップ4で取得済みのredirect_urlへこの認可コードを付加したものを、フロントエンドに送る(ステップ6f)。フロントエンドは、redirect_urlに従って、第1通信処理部112へリダイレクトし、第1ネットワーク501を介して、認可コードを含む認可済通知を、第1通信処理部112へ送信する(ステップ8)。このように、バックエンドは、フロントエンドを、redirect_urlから、第1通信処理部112へリダイレクトさせることで、認可コード(authz_code)を第1通信処理部112へ送信する。
第1通信処理部112のトークン取得機能は、取得した認可コード(authz_code)と、クライアントID(client_id)と、秘密鍵(client_secret)とを含む認可トークン取得要求を生成する。許可トークン取得要求は、ユーザ情報の取得要求に相当する。第1通信処理部112(のトークン取得機能)は、この要求を、フロントエンドを介してバックエンドに送信する(ステップ9)。
バックエンドは、認可トークン取得要求を受信すると、アクセストークン(access_token)を生成し、当該アクセストークンを、フロントエンドを介して、第1通信処理部112に応答する(ステップ9f)。アクセストークンは、許可トークン取得要求に対する許可を表す許可情報である。アクセストークンは、例えば任意の文字列であり、その生成方法は任意でよい。
第1通信処理部112のユーザ情報取得機能は、取得したアクセストークン(access_token)を含むユーザ情報取得要求を生成し、この要求をフロントエンドを介して、バックエンドに送信する(ステップ10)。このユーザ情報取得要求で要求するユーザ情報は、ユーザの属性情報に縛られるものではなく、ユーザの権限でアクセス可能な情報や機能一般を指すものとする。バックエンドは、アクセストークンを検証し、これに対応するユーザ情報を特定して、第1通信処理部112に送信する(ステップ10f)。図ではユーザ情報を、userinfoで表している。なお、このときアクセストークンには、発行元(Webサーバ301)や発行対象(第1通信処理部112)を検証するための署名情報が付与されていてもよい。この署名には、例えば、発行元検証のためにWebサーバ301の秘密鍵を、発行対象の検証のために上記client_secretを用いるなどして、Webサーバ301が、自身が、第1通信処理部112に対して発行したものであることを検証できるように構成してもよい。
第1通信処理部112は、ユーザ情報の取得に成功したら、ログインセッションID(session_id)を生成し(ステップ11)、ログインセッションID(session_id)を含む応答を、フロントエンドに送信する(ステップ8f)。ログインセッションID(session_id)は、一般的には、HTTPのSet−Cookieに設定される。ユーザ情報の取得に成功したことは、第1通信処理部112がWebサーバ301を正当なものと判断できることを意味する。
フロントエンドは、ログインセッションID(session_id)を含む、機器の監視・制御命令を、第1ネットワーク501を介して、第1通信処理部112に送信する(ステップ12)。
第1通信処理部112は、Cookieによる認証により、フロントエンドのアクセスを認可することを決定する。第1通信処理部112は、配下の機器へ、フロントエンドから受けた監視・制御命令を送信する(ステップ13)。第1通信処理部112は、機器から命令の実行完了通知を受信し(ステップ13f)、フロントエンドへ命令の実行完了通知を送信する(ステップ12f)。
以上の手順によって、通信装置101内のローカルサーバである第1通信処理部112が行うべきアクセス元の検証を、Webサービス側で行うユーザ認証で代替することが実現できている。本実施形態により、通信装置101が行うべき認証を、通信装置101が搭載された機器へのアクセスが認可されたオリジン上の認証機構に統合することが可能になる。なお、サーバ証明書に基づく認証は、第1〜4の実施形態と同様にして実行すればよい。
上述した手順は、第2実施形態のシーケンス(CSR発行要求を受信した場合のシーケンス)を前提としたが、第1実施形態のシーケンス(証明書発行要求を受信した場合のシーケンス)の場合でも、同様にして実施可能である。
本実施形態では、通信装置101がゲートウェイ装置に搭載されている例を示したが、たとえば、通信装置101が、コンテンツ配信サービス(Webサービス)用のローカルキャッシュデバイスに搭載されることも考えられる。このローカルキャッシュデバイスは、コンテンツ配信サービスのWeb画面のみからアクセスでき、ローカルキャッシュデバイス側で行う認証は、本実施形態により、コンテンツ配信サービスと統合できる。したがって、正しい視聴権限を持ったユーザだけが、購入済コンテンツや、ウォッチリストに追加したコンテンツを、ローカルキャッシュでき、ローカル通信のみでコンテンツ視聴可能になる(視聴の際にインターネットからダウンロードする必要はない)等の利点がある。
尚、各実施形態の通信装置、操作端末、Webサーバおよび機器登録サーバは、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現可能である。すなわち、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより、通信装置、操作端末、Webサーバおよび機器登録サーバのそれぞれが備える各機能を実現出来る。このとき、各装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現することや、各種の記憶媒体に記憶、あるいはネットワークを介して上記のプログラムを配布、このプログラムをコンピュータ装置に適宜インストールすることで実現が出来る。また、通信装置、操作端末、Webサーバおよび機器登録サーバのそれぞれが備える記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
本実施形態で用いられる用語は、広く解釈されるべきである。例えば用語“プロセッサ”は、汎用目的プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラ、マイクロコントローラ、状態マシンなどを包含してもよい。状況によって、“プロセッサ”は、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラム可能論理回路 (PLD)などを指してもよい。“プロセッサ”は、複数のマイクロプロセッサのような処理装置の組み合わせ、DSPおよびマイクロプロセッサの組み合わせ、DSPコアと協働する1つ以上のマイクロプロセッサを指してもよい。
別の例として、用語“メモリ”は、電子情報を格納可能な任意の電子部品を包含してもよい。“メモリ”は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、プログラム可能読み出し専用メモリ(PROM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、電気的消去可能PROM(EEPROM)、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、磁気または光学データストレージを指してもよく、これらはプロセッサによって読み出し可能である。プロセッサがメモリに対して情報を読み出しまたは書き込みまたはこれらの両方を行うならば、メモリはプロセッサと電気的に通信すると言うことができる。メモリは、プロセッサに統合されてもよく、この場合も、メモリは、プロセッサと電気的に通信していると言うことができる。
また、用語“ストレージ”は、磁気技術、光学技術、または不揮発性メモリを利用して、永久的にデータを記憶できるに任意の装置を包含してもよい。例えば、ストレージは、HDD、光学ディスク、SSD等でもよい。
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
101:通信装置
201:操作端末
301:Webサーバ
401:機器登録サーバ
501:第1ネットワーク
601:第2ネットワーク
701:第3ネットワーク
801:第4ネットワーク
111:第1通信部
112:第1通信処理部
113:第1記憶部
114:第2通信部
115:第2通信処理部
116:第2記憶部
117:設定部
118:認可部
124:第4通信処理部
123:第4通信部

Claims (18)

  1. 第1ネットワークを介して、サーバと通信可能な第1通信部と、
    前記第1ネットワークを介して前記サーバと通信可能であるユーザの操作端末と、第2ネットワークを介して通信可能な第2通信部と、
    前記第1通信部及び前記サーバを介して前記操作端末と認証処理を行い、前記認証処理が成功の場合に、前記第1通信部を介して前記操作端末にリソースを提供する第1処理を実行する第1通信処理部と、
    第2通信処理部であって、
    前記サーバから前記操作端末及び前記第2通信部を介して発行要求を受信し、
    第1鍵で暗号化されたデータは第2鍵で復号可能であり、前記第2鍵で暗号化されたデータは前記第1鍵で復号可能であるという関係を有する、第1鍵および第2鍵を生成し、
    発行対象属性に前記第1通信処理部の識別情報が設定され、前記第1鍵含み、前記第2鍵により署名された証明書を発行し、
    第1サーバによって生成されかつ前記サーバによって前記発行要求に含められた署名対象データを、自装置と前記第1サーバとの間で事前に共有している第3鍵で署名した署名データを生成し、
    前記署名データと前記証明書とを、前記第2通信部及び前記操作端末を介して、前記サーバに送信する、第2通信処理部と、
    前記証明書の発行を前記ユーザが許可したことを表す許可情報を取得する認可部と、を備え、
    前記署名データが前記第1サーバによって検証された後、前記証明書は前記サーバによって前記操作端末に設定され、
    前記第1通信処理部は、前記第1通信部を介して前記サーバから、送信元が前記操作端末でありかつ前記第1処理の実行を要求する命令を受信した場合に、前記第1通信部及び前記サーバを介して、前記証明書を用いて、前記操作端末の前記認証処理を行い、
    前記第2通信処理部は、前記許可情報が取得された場合のみ、前記証明書が発行または用いられるよう制御する
    通信装置。
  2. 前記第2通信処理部は、前記証明書を発行する代わりに、発行対象属性に前記第1通信処理部の識別情報が設定され、かつ前記第1鍵含む証明書署名要求を生成し、
    前記第2通信処理部は、前記第2通信部、前記操作端末及び前記サーバを介して、前記第1サーバに前記署名データ及び前記証明書署名要求を送信し、前記第1サーバから前記証明書署名要求が第4鍵により署名された第2証明書を、前記サーバ、前記操作端末及び前記第2通信部を介して、受信し、
    前記認可部は、前記第2証明書の発行または前記証明書署名要求の発行を、前記ユーザが許可したことを表す許可情報を取得し、
    前記第1通信処理部は、前記第2証明書を用いて、前記認証処理を行う
    請求項に記載の通信装置。
  3. 前記発行要求は、前記発行要求の要求元の識別情報として前記サーバの識別情報を含み、
    前記証明書は、複数の属性を含み、前記複数の属性のうちの少なくとも1つは、前記発行要求の要求元の識別情報として前記サーバの識別情報を含む
    請求項1ないしのいずれか一項に記載の通信装置。
  4. 前記発行要求は、前記ユーザの識別情報を含み、
    前記証明書は、複数の属性を含み、前記複数の属性のうちの少なくとも1つは、前記ユーザの識別情報を含む
    請求項1ないしのいずれか一項に記載の通信装置。
  5. 前記認可部は、前記通信装置が搭載される機器の物理インタフェースを介して、前記許可情報を取得する
    請求項1ないしのいずれか一項に記載の通信装置。
  6. 前記第2通信処理部は、前記発行要求の受信に応じて、第5鍵および第5鍵と対になる第6鍵と、前記第1通信処理部の識別情報とを用いて、前記ユーザが認可に関する意思表示を行うための画面を前記ユーザに表示するための一時的な証明書である第3証明書を発行し、
    前記第2通信処理部は、前記第3証明書を、前記第2通信部を介して前記操作端末に送信し、
    前記第1通信部は、前記第1ネットワークを介して、前記操作端末と通信可能であり、
    前記第1通信処理部は、前記第1通信部を介して前記操作端末と前記第3証明書に基づく認証を行い、
    前記認可部は、前記第3証明書に基づく前記認証が成功した後、前記操作端末に認可に関する意思表示を行うための画面を表示するよう制御し、前記ユーザによる前記画面への入力を介して、前記許可情報を取得する
    請求項1ないしのいずれか一項に記載の通信装置。
  7. 前記第2通信処理部は、
    第2署名対象データを前記第2通信部及び前記操作端末を介して前記サーバに送信し、
    自装置と前記第1サーバとの間で事前に共有している第8鍵で署名された前記第2署名対象データである第2署名データと、前記サーバの識別情報と、前記サーバにより生成された公開鍵とを含む第2証明書署名要求を、前記第2通信部を介して前記サーバから受信し、
    前記第8鍵を用いて前記第2署名データを検証し、前記第2署名データの検証が成功した場合に、前記第2証明書署名要求を、前記第2鍵で署名することにより、第4証明書を発行し、
    前記第4証明書を、前記第2通信部及び前記操作端末を介して、前記サーバに送信し、
    前記第1通信処理部は、前記第4証明書に基づき、前記発行要求の要求元である前記サーバを認証する処理を行う
    請求項1ないしのいずれか一項に記載の通信装置。
  8. 前記第1通信処理部が、前記第1通信部を介して前記サーバに、前記第1通信処理部の登録要求を送信して、前記第1通信部を介して前記サーバから第1登録情報を受信し、
    前記第1通信処理部が、前記第1通信部を介して、前記サーバからユーザが、ユーザの権限で取得可能な情報であるユーザ情報の取得を認可したことを示す認可データを含む通知を受信し、
    前記第1通信処理部が、前記第1登録情報と、前記認可データとを含む、前記ユーザ情報の取得要求を、前記第1通信部を介して、前記サーバに送信し、
    前記第1通信処理部が、前記サーバから前記第1通信部を介して、前記取得要求に対する許可通知を受信した場合に、前記サーバから前記第1通信部を介して前記ユーザ情報を取得し、
    前記第1通信処理部は、前記ユーザ情報を取得できた場合、前記発行要求の要求元を正当なものと決定し、前記第1通信処理部へのアクセスを許可する
    請求項1ないしのいずれか一項に記載の通信装置。
  9. 前記第1鍵は公開鍵、前記第2鍵は秘密鍵、前記第3鍵事前共有鍵
    請求項1ないしのいずれか一項に記載の通信装置。
  10. 前記第4鍵は、前記第2鍵とは別の秘密鍵である
    請求項2に記載の通信装置。
  11. 前記第5鍵は、公開鍵、前記第6鍵は、秘密鍵である
    請求項に記載の通信装置。
  12. 前記第3証明書は、前記ユーザ認可用の一時的な自己署名サーバ証明書である
    請求項に記載の通信装置。
  13. 前記第4証明書は、クライアント証明書である
    請求項に記載の通信装置。
  14. 請求項1ないし13のいずれか一項に記載の通信装置と、
    前記第サーバと、を備え、
    前記第サーバは、前記サーバを介して、前記署名対象データを前記通信装置に送信し、前記署名データを前記サーバを介して前記通信装置から受信し、前記第3鍵と対になる第7鍵により前記署名データを検証す
    通信システム。
  15. 第1ネットワークを介して、サーバと通信可能な第1通信部と、前記第1ネットワークを介して前記サーバと通信可能であるユーザの操作端末と第2ネットワークを介して通信可能な第2通信部とを用いた通信方法であって、
    第2通信処理部が、前記サーバから前記操作端末及び前記第2通信部を介して発行要求を受信し、
    前記第2通信処理部が、第1鍵で暗号化されたデータは第2鍵で復号可能であり、前記第2鍵で暗号化されたデータは前記第1鍵で復号可能であるという関係を有する、第1鍵および第2鍵を生成し、
    前記第2通信処理部が、発行対象属性に第1通信処理部の識別情報が設定され、前記第1鍵を含み、前記第2鍵により署名された証明書を発行し、
    前記第2通信処理部が、第1サーバによって生成されかつ前記サーバによって前記発行要求に含められた署名対象データを、自装置と前記第1サーバとの間で事前に共有している第3鍵で署名した署名データを生成し、
    前記第2通信処理部が、前記署名データと前記証明書とを、前記第2通信部及び前記操作端末を介して、前記サーバに送信し、
    認可部が、前記証明書の発行を前記ユーザが許可したことを表す許可情報を取得し、
    前記署名データは前記第1サーバによって検証された後、前記証明書は前記サーバによって前記操作端末に設定されるものであり、
    前記第1通信処理部が、前記第1通信部を介して前記サーバから、送信元が前記操作端末でありかつ前記操作端末にリソースを提供する第1処理の実行を要求する命令を受信した場合に、前記第1通信部及び前記サーバを介して、前記証明書を用いて、前記操作端末との認証処理を行い、前記認証処理が成功の場合に、前記第1通信部を介して前記操作端末にリソースを提供する前記第1処理を実行し、
    前記第2通信処理部が、前記許可情報が取得された場合のみ、前記証明書が発行または用いられるよう制御する
    通信方法。
  16. 前記第2通信処理部が、前記証明書を発行する代わりに、発行対象属性に前記第1通信処理部の識別情報が設定され、かつ前記第1鍵を含む、証明書署名要求を生成し、
    前記第2通信処理部が、前記第2通信部、前記操作端末及び前記サーバを介して、第1サーバに前記署名データ及び前記証明書署名要求を送信し、前記第1サーバから前記証明書署名要求が第4鍵により署名された第2証明書を、前記サーバ、前記操作端末及び前記第2通信部を介して、前記第2通信部を介して前記操作端末から受信し、
    前記第1通信処理部は、前記第2証明書を用いて、前記認証処理を行い、
    前記認可部が、前記第2証明書の発行または前記証明書署名要求の発行を、前記ユーザが許可したことを表す許可情報を取得する
    請求項15に記載の通信方法。
  17. 第1ネットワークを介して、サーバと通信可能な第1通信部と、前記第1ネットワークを介して前記サーバと通信可能であるユーザの操作端末と第2ネットワークを介して通信可能な第2通信部と、を備えたコンピュータに実行させるためのプログラムであって、
    第2通信処理部が、前記サーバから前記操作端末及び前記第2通信部を介して発行要求を受信するステップと、
    前記第2通信処理部が、第1鍵で暗号化されたデータは第2鍵で復号可能であり、前記第2鍵で暗号化されたデータは前記第1鍵で復号可能であるという関係を有する、第1鍵および第2鍵を生成するステップと、
    前記第2通信処理部が、発行対象属性に第1通信処理部の識別情報が設定され、前記第1鍵を含み、前記第2鍵により署名された証明書を発行するステップと、
    前記第2通信処理部が、第1サーバによって生成されかつ前記サーバによって前記発行要求に含められた署名対象データを、自装置と前記第1サーバとの間で事前に共有している第3鍵で署名した署名データを生成するステップと、
    前記第2通信処理部が、前記署名データと前記証明書とを、前記第2通信部及び前記操作端末を介して、前記サーバに送信するステップと、
    認可部が、前記証明書の発行を前記ユーザが許可したことを表す許可情報を取得するステップと、
    前記署名データは前記第1サーバによって検証された後、前記証明書は前記サーバによって前記操作端末に設定されるものであり、
    前記第1通信処理部が、前記第1通信部を介して前記サーバから、送信元が前記操作端末でありかつ前記操作端末にリソースを提供する第1処理の実行を要求する命令を受信した場合に、前記第1通信部及び前記サーバを介して、前記証明書を用いて、前記操作端末との認証処理を行い、前記認証処理が成功の場合に、前記第1通信部を介して前記操作端末にリソースを提供する前記第1処理を実行するステップと、
    前記第2通信処理部が、前記許可情報が取得された場合のみ、前記証明書が発行または用いられるよう制御するステップと
    を備えたプログラム。
  18. 前記第2通信処理部が、前記証明書を発行する代わりに、発行対象属性に前記第1通信処理部の識別情報が設定され、かつ前記第1鍵を含む、証明書署名要求を生成するステップと、
    前記第2通信処理部が、前記第2通信部、前記操作端末及び前記サーバを介して、第1サーバに前記署名データ及び前記証明書署名要求を送信し、前記第1サーバから前記証明書署名要求が第4鍵により署名された第2証明書を、前記サーバ、前記操作端末及び前記第2通信部を介して、前記第2通信部を介して前記操作端末から受信するステップと、
    前記第1通信処理部は、前記第2証明書を用いて、前記認証処理を行うステップと、
    前記認可部が、前記第2証明書の発行または前記証明書署名要求の発行を、前記ユーザが許可したことを表す許可情報を取得するステップと、
    を前記コンピュータに実行させるための請求項17に記載のプログラム。
JP2016131904A 2016-07-01 2016-07-01 通信装置、通信方法、通信システムおよびプログラム Expired - Fee Related JP6668183B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016131904A JP6668183B2 (ja) 2016-07-01 2016-07-01 通信装置、通信方法、通信システムおよびプログラム
US15/462,546 US10547605B2 (en) 2016-07-01 2017-03-17 Communication device, communication method, communication system, and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016131904A JP6668183B2 (ja) 2016-07-01 2016-07-01 通信装置、通信方法、通信システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2018007039A JP2018007039A (ja) 2018-01-11
JP6668183B2 true JP6668183B2 (ja) 2020-03-18

Family

ID=60808074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016131904A Expired - Fee Related JP6668183B2 (ja) 2016-07-01 2016-07-01 通信装置、通信方法、通信システムおよびプログラム

Country Status (2)

Country Link
US (1) US10547605B2 (ja)
JP (1) JP6668183B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6776689B2 (ja) * 2016-07-22 2020-10-28 富士ゼロックス株式会社 情報処理装置、セキュリティシステム及びプログラム
US11222319B2 (en) * 2016-10-14 2022-01-11 Cable Television Laboratories, Inc. Systems and methods for post-hoc device registration
US11283625B2 (en) * 2016-10-14 2022-03-22 Cable Television Laboratories, Inc. Systems and methods for bootstrapping ecosystem certificate issuance
US10374809B1 (en) * 2016-12-13 2019-08-06 Amazon Technologies, Inc. Digital signature verification for asynchronous responses
US10749692B2 (en) * 2017-05-05 2020-08-18 Honeywell International Inc. Automated certificate enrollment for devices in industrial control systems or other systems
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
US11025627B2 (en) * 2017-07-10 2021-06-01 Intel Corporation Scalable and secure resource isolation and sharing for IoT networks
US10681034B2 (en) 2017-08-01 2020-06-09 Verizon Patent And Licensing Inc. Identity management via a centralized identity management server device
JP6833658B2 (ja) * 2017-11-07 2021-02-24 株式会社東芝 サーバ装置、機器、証明書発行方法、証明書要求方法、証明書発行プログラム及び証明書要求プログラム
TWI655550B (zh) * 2018-03-20 2019-04-01 廣達電腦股份有限公司 資料轉發系統
US10721223B2 (en) * 2018-04-12 2020-07-21 Rockwell Automation Technologies, Inc. Method and apparatus for secure device provisioning in an industrial control system
CN110535809B (zh) * 2018-05-25 2021-08-31 腾讯科技(深圳)有限公司 一种标识码的拉取方法、存储介质及终端设备和服务器
JP2020065162A (ja) * 2018-10-17 2020-04-23 Thk株式会社 情報処理方法およびプログラム
JP7199910B2 (ja) 2018-10-25 2023-01-06 キヤノン株式会社 情報処理装置、方法、及びプログラム
CN111984343B (zh) * 2019-05-22 2024-03-01 百度(中国)有限公司 插件资源查找方法、装置、设备及可读存储介质
JP7077272B2 (ja) * 2019-06-20 2022-05-30 株式会社東芝 証明書発行装置、検証装置、通信機器、証明書発行システム、証明書発行方法、およびプログラム
US11601288B1 (en) * 2019-08-21 2023-03-07 Cox Communications, Inc. On-demand security certificates for improved home router security
CN110659431B (zh) * 2019-09-20 2022-03-01 四川长虹电器股份有限公司 一种Android电视浏览器磁盘缓存优化方法
KR20210076402A (ko) * 2019-12-16 2021-06-24 현대자동차주식회사 차량용 제어기 및 그 인증서 주입 방법
CN113132091B (zh) * 2019-12-31 2022-06-10 华为技术有限公司 一种分享设备的方法及电子设备
CN113132973B (zh) * 2019-12-31 2022-05-24 佛山市云米电器科技有限公司 设备配网方法、***及计算机可读存储介质
JP2022020143A (ja) * 2020-07-20 2022-02-01 富士通株式会社 通信プログラム、通信装置、及び通信方法
CN114189379B (zh) * 2021-12-08 2024-01-26 安天科技集团股份有限公司 一种网页资源处理方法、装置及电子设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5624525A (en) 1979-08-03 1981-03-09 Akatake Eng Kk Automatically feeding device for fixed quantity of liquid
US7047415B2 (en) * 1997-09-22 2006-05-16 Dfs Linkages, Inc. System and method for widely witnessed proof of time
US6324645B1 (en) * 1998-08-11 2001-11-27 Verisign, Inc. Risk management for public key management infrastructure using digital certificates
US7802174B2 (en) * 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
JP4526809B2 (ja) 2003-03-31 2010-08-18 株式会社リコー 通信装置の製造方法及び製造システム
US20040255113A1 (en) 2003-03-31 2004-12-16 Masaaki Ogura Digital certificate management system, apparatus and software program
US20060059548A1 (en) * 2004-09-01 2006-03-16 Hildre Eric A System and method for policy enforcement and token state monitoring
US7512974B2 (en) * 2004-09-30 2009-03-31 International Business Machines Corporation Computer system and program to update SSL certificates
JP2006246272A (ja) * 2005-03-07 2006-09-14 Fuji Xerox Co Ltd 証明書取得システム
US8549157B2 (en) * 2007-04-23 2013-10-01 Mcafee, Inc. Transparent secure socket layer
JP2009031849A (ja) 2007-07-24 2009-02-12 Hitachi Ltd 電子申請用証明書発行システムおよび電子申請受付システム、並びにそれらの方法およびプログラム
JP4371327B2 (ja) * 2007-10-24 2009-11-25 富士通株式会社 申請処理プログラム、申請処理方法、および仲介サーバ装置、並びに仲介サーバシステム
US9225525B2 (en) * 2010-02-26 2015-12-29 Red Hat, Inc. Identity management certificate operations
JP2012049752A (ja) 2010-08-26 2012-03-08 Hitachi Ltd 電子証明書発行システムおよびその方法
US9344282B2 (en) * 2011-03-22 2016-05-17 Microsoft Technology Licensing, Llc Central and implicit certificate management
JP5624525B2 (ja) 2011-08-15 2014-11-12 株式会社東芝 情報処理装置、リソース提供装置および情報処理システム
US8738902B2 (en) * 2012-01-27 2014-05-27 Microsoft Corporation Implicit SSL certificate management without server name indication (SNI)
US8812837B2 (en) * 2012-06-01 2014-08-19 At&T Intellectual Property I, Lp Apparatus and methods for activation of communication devices
US9787669B2 (en) * 2013-03-14 2017-10-10 Comcast Cable Communications, Llc Identity authentication using credentials
US9749134B2 (en) * 2013-06-20 2017-08-29 Qualcomm Incorporated Wireless configuration using passive near field communication
JP6301624B2 (ja) * 2013-10-03 2018-03-28 株式会社東芝 放送受信装置、情報処理システムおよび情報処理装置
JP2015142315A (ja) 2014-01-30 2015-08-03 日本電気通信システム株式会社 遠隔制御装置、遠隔制御システム及び遠隔制御方法
JP6226197B2 (ja) 2014-05-23 2017-11-08 パナソニックIpマネジメント株式会社 証明書発行システム、クライアント端末、サーバ装置、証明書取得方法、及び証明書発行方法
US10616180B2 (en) * 2014-06-20 2020-04-07 Zscaler, Inc. Clientless connection setup for cloud-based virtual private access systems and methods
JP2016063424A (ja) 2014-09-18 2016-04-25 株式会社東芝 情報処理装置、通信装置、端末、通信処理方法およびコンピュータプログラム
US10708233B2 (en) * 2017-03-30 2020-07-07 Zscaler, Inc. Identification of certificate pinned mobile applications in cloud based security systems

Also Published As

Publication number Publication date
JP2018007039A (ja) 2018-01-11
US10547605B2 (en) 2020-01-28
US20180007033A1 (en) 2018-01-04

Similar Documents

Publication Publication Date Title
JP6668183B2 (ja) 通信装置、通信方法、通信システムおよびプログラム
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
KR102362456B1 (ko) 권한 위양 시스템, 그 제어 방법 및 저장 매체
US10904758B2 (en) Secure method for configuring internet of things (IOT) devices through wireless technologies
US9762392B2 (en) System and method for trusted provisioning and authentication for networked devices in cloud-based IoT/M2M platforms
CN110334503B (zh) 利用一个设备解锁另一个设备的方法
EP3105904B1 (en) Assisted device provisioning in a network
WO2017028593A1 (zh) 网络接入设备接入无线网络接入点的方法、网络接入设备、应用程序服务器和非易失性计算机可读存储介质
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
US8839357B2 (en) Method, system, and computer-readable storage medium for authenticating a computing device
CN109510802B (zh) 鉴权方法、装置及***
US20160014112A1 (en) Wireless communication of a user identifier and encrypted time-sensitive data
US11765164B2 (en) Server-based setup for connecting a device to a local area network
KR20160129839A (ko) 블루투스 인터페이스를 갖는 인증 장치
JPWO2019239591A1 (ja) 認証システム、認証方法、アプリケーション提供装置、認証装置、及び認証用プログラム
US10645077B2 (en) System and method for securing offline usage of a certificate by OTP system
JP6571890B1 (ja) 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
JP2015039141A (ja) 証明書発行要求生成プログラム、証明書発行要求生成装置、証明書発行要求生成システム、証明書発行要求生成方法、証明書発行装置および認証方法
JP6465426B1 (ja) 電子署名システム、証明書発行システム、鍵管理システム及び電子証明書発行方法
JP6240102B2 (ja) 認証システム、認証鍵管理装置、認証鍵管理方法および認証鍵管理プログラム
WO2018099407A1 (zh) 账户认证登录方法及装置
KR101836211B1 (ko) 전자 기기 인증 매니저 장치
JP6833658B2 (ja) サーバ装置、機器、証明書発行方法、証明書要求方法、証明書発行プログラム及び証明書要求プログラム
WO2023141876A1 (zh) 数据传输方法、装置、***、电子设备及可读介质
TWI673622B (zh) 配對認證系統及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190827

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: 20200128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200226

R151 Written notification of patent or utility model registration

Ref document number: 6668183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees