JP2018196085A - 認証方法及び認証システム - Google Patents

認証方法及び認証システム Download PDF

Info

Publication number
JP2018196085A
JP2018196085A JP2017100845A JP2017100845A JP2018196085A JP 2018196085 A JP2018196085 A JP 2018196085A JP 2017100845 A JP2017100845 A JP 2017100845A JP 2017100845 A JP2017100845 A JP 2017100845A JP 2018196085 A JP2018196085 A JP 2018196085A
Authority
JP
Japan
Prior art keywords
authentication
server
authentication information
information
target device
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.)
Granted
Application number
JP2017100845A
Other languages
English (en)
Other versions
JP6869104B2 (ja
Inventor
匡亮 谷本
Masaaki Tanimoto
匡亮 谷本
大輔 森山
Daisuke Moriyama
大輔 森山
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2017100845A priority Critical patent/JP6869104B2/ja
Priority to US15/944,022 priority patent/US20180337923A1/en
Publication of JP2018196085A publication Critical patent/JP2018196085A/ja
Application granted granted Critical
Publication of JP6869104B2 publication Critical patent/JP6869104B2/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
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/88Detecting or preventing theft or loss
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3271Cryptographic 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 using challenge-response
    • H04L9/3273Cryptographic 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 using challenge-response for mutual authentication
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2325/00Indexing scheme relating to vehicle anti-theft devices
    • B60R2325/10Communication protocols, communication systems of vehicle anti-theft devices
    • B60R2325/108Encryption
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/20Means to switch the anti-theft system on or off
    • B60R25/24Means to switch the anti-theft system on or off using electronic identifiers containing a code not memorised by the user
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C2009/00753Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys
    • G07C2009/00769Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys with data transmission performed by wireless means
    • G07C2009/00793Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys with data transmission performed by wireless means by Hertzian waves
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00571Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by interacting with a central unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/61Time-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/71Hardware identity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Mechanical Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】改ざんなど攻撃があった場合に攻撃内容を把握することができる認証方法及び認証システムを提供すること。
【解決手段】一実施の形態にかかる認証方法は、サーバが、認証対象機器の識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値で構成した第1の認証情報を生成し、第1の認証情報を認証代行クライアントを介して認証対象機器へ送信し、認証対象機器が、識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値と、第1の認証情報とを比較することによって第1の認証情報の正当性を確認し、第1の認証情報の正当性を確認した後に、認証対象機器の識別子と共通鍵と第1の認証情報の確認結果とを引数とした疑似ランダム関数を用いて生成された値で構成した第2の認証情報を生成し、第2の認証情報を前記認証代行クライアントへ送信する。
【選択図】図1

Description

本発明は認証方法及び認証システムに関し、例えば認証代行クライアントを用いた認証方法及び認証システムに関する。
ネットワーク接続機器が特にインターネットなど公衆回線網に接続されている場合、当該機器は常に不可視かつ検出不能なセキュリティ攻撃にさらされる事となる。実際、セキュリティの先端研究では、インシデント発生に先立って検出する事が出来ないマルウェアなどによる攻撃を、振る舞い異常検知で如何にして行うかの議論がなされている。以前と比べて比較にならないほど、公衆回線網にはセキュリティ・リスクがあり、接続=感染、と考えるべきで状態ある。
特許文献1には、車両盗難防止システムのチャレンジレスポンス認証処理において、PUF(Physical Uncloanable Function)を搭載した被認証機器を用いる仕組みが開示されている。具体的には、電子キーから鍵登録サーバへ認証情報構成に必要となる情報を送付し、鍵登録サーバがオフライン認証チャレンジコードを作成し車両盗難防止装置へ送付する。車両盗難防止装置は、電子キーへUID要求を実施し、電子キーからUIDを受信するとオフライン認証チャレンジコードを電子キーへ送信する。電子キーがレスポンスコードを生成し車両盗難防止装置へ送付すると、車両盗難防止装置は電子キーのオフライン認証処理を実施し、認証に成功すると、車両のドアロックを解除する。
特開2015−36257号公報
特許文献1に記載の車両盗難防止システムにおいては、改ざんなど攻撃があった場合にサーバ等が攻撃内容を把握することができないという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、認証対象機器、認証代行クライアント、及びサーバを含む認証システムにおいて実行される認証方法は、認証対象機器が、サーバにおいて生成された第1の認証情報の正当性を確認し、さらに、認証機器が、第2の認証情報を生成し、生成した第2の認証情報を認証代行クライアントへ送信するものである。
なお、上記実施の形態の方法を装置やシステムに置き換えて表現したもの、該装置または該装置の一部の処理をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
前記一実施の形態によれば、改ざんなど攻撃があった場合に攻撃内容に関する情報を含む認証情報を生成することができる。
実施の形態1にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態1にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態1にかかる中間者による攻撃例を説明する図である。 実施の形態1にかかる中間者による攻撃例を説明する図である。 実施の形態1にかかるオフライン認証プロトコルの攻撃耐性示す図である。 実施の形態1にかかるオフライン認証プロトコルの攻撃耐性示す図である。 実施の形態1にかかる中間者による攻撃例を説明する図である。 実施の形態1にかかるオフライン認証プロトコルの攻撃耐性示す図である。 実施の形態1にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態1にかかる中間者による攻撃例を説明する図である。 実施の形態1にかかるオフライン認証プロトコルの攻撃耐性示す図である。 実施の形態2にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態2にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態3にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態3にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態4にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態4にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態4にかかるオフライン認証プロトコルの流れを示す図である。 実施の形態4にかかるオフライン認証プロトコルの流れを示す図である。 それぞれの実施の形態にかかる認証対象機器、認証代行クライアント、及びサーバの構成図である。
図1のシーケンス図を用いて、オフライン認証プロトコルの動作を以下に示す。尚、認証対象機器に対する共通対称鍵の初期設定として、下記設定が事前になされているものとする。
セキュリティパラメータをk としサーバは1^k を入力とする。サーバは認証識別子IDi ∈ {0,1}^k が割り振られている認証対象機器に対して対象鍵 ski ← {0,1}^k を選び、(ski,IDi) を送付する。認証対象機器は(ski,IDi)を不揮発性メモリに保存する。また、認証識別子IDの集合ID を認証代行クライアントに送付する。ここで、認証対象機器の総数をNとし、i ∈ [1,N]とする。例えば、認証対象機器を出荷する前にこれら処理を実施する事で、各認証対象機器に個別の鍵を設定するとともに、サーバに同鍵を格納しても良い。また、認証代行クライアントは事前に認証対象機器のIDを収集しているものとする。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは、認証対象機器からIDを受信すると(S1)、セッション管理のためにrp ∈ {0,1}^k を選び(S2)、(1,rp,ID) をサーバに送付する(S3)。サーバは(1,rp,ID) を受け取ると、下記手順(S4)を実施する。
1. rp,ID ∈ {0,1}^k であるか、そしてID ∈ ID であるかを検証する。もし異なっていれば処理を終了する。もし満たしていれば、以下を実行する。
2. 現在の時刻をtss ← TimeStamp として選ぶ。
3. 乱数をrh ← {0,1}^k として選ぶ。
4. r1 := PRF(sk,tss||ID||rh) を計算する。そして、サーバはData1 := (tss,ID,rh,r1) として認証代行クライアントに(1,rp,Data1)を送付する(S5)。ここでPRFは疑似ランダム関数(Pseudo Random Function)、演算子’||’はビット連接を表す。
(2) 認証対象機器での認証と結果収集
認証代行クライアントは現在の時刻をtsp ← TimeStamp として選び(S6)、(rp,tsp,Data1) を認証対象機器に送付する(S7)。認証対象機器は(rp,tsp,Data1 = (tss,ID,rh,r1)) を受け取ると、下記手順(S8)を実施する。
1. rp,tsp,tss,ID,rh,r1 ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、ID が自身のものと一致するかを確かめる。ここで、データは必要に応じて適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rc := rc||result1,r2 ← {0,1}^k とする。もし満たしている場合は、以下の操作を実行する。
2. r1 = PRF(sk,tss||ID||rh) が満たされるかを検証する。もし満たしていた場合はresult1 := 01 とし、そうでなければresult1 := 10 とする。
3. 乱数をrc ← {0,1}^(k-2) として選び、rc := rc||result1 ∈ {0,1}^k とする。
4. r2 := PRF(ski,tss||tsp||ID||rh||rc) を求める。そして、認証対象機器はData2 := (tss,ID,rh,rc,r2) として(rp,tsp,Data2) を認証代行クライアントに送付する(S9)。
尚サーバから認証代行クライアントへの送付に時間制約がある場合であってtspが信頼できる場合は、上記1のサイズチェック時に、tssとtspを比較する事で、その確認を実施しても良い。また、認証対象機器での認証処理への時間制約があり、認証代行クライアントの時計が信頼できる場合は、サーバは、tspと認証対象機器からの認証結果の受取り時刻(以下、tsp2と記載)を比較する事で、その確認を実施しても良い
(3) サーバでの認証結果の検証
認証代行クライアントは(2,rp,tsp,Data2) をサーバに送付する(S10)。サーバは(2,rp,tsp,Data2 = (tss,ID,rh,rc,r2)) を受け取ると、rp,tss,tsp,ID,rh,rc,r2 ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とする。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、r2 = PRF(sk,tss||tsp||ID||rh||rc) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。そしてresult2 を認証結果として出力し、これを記録する(S11)。
ここで、result2が01なら認証対象機器で認証成功、result2が10なら認証失敗、result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
尚、サーバから認証代行クライアントへ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、上記サイズチェック時に、tssとサーバでの現在時刻を比較する事で、その確認を実施しても良い。また、認証代行クライアントからの認証結果のサーバへの送付に時間制約があり、認証代行クライアントの時計が信頼できる場合は、tsp2を追加で認証代行クライアントからサーバへ送付し、サーバは、tsp2とtssを比較する事で、その確認を実施しても良い。
本プロトコルではrpが改竄されると、対応するセッションが非存在となるか、存在しても異なるセッションでの認証対象機器での認証が実施される事となり失敗するためフェールセーフである。rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄してもサーバで検証合格とする事はできない。tspを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
即ち、rp、rc、tspの何れを改竄しても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。rp,rh,rcの全てまたは何れかが改竄された場合、例えば、サーバは、何らかの改竄があった事を検知可能である。
改竄による認証失敗や検証不合格を効率よく検出する目的で、tspに対してハッシュ値を付加しても良い。
上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスで実施される。図2の各メッセージの実行は、以下に定義された動作にて行われる。
ITU-TS Recommendation Z.120: Message Sequence Chart (MSC), ITU-TS, Geneva, 2011.
ITU-TS Recommendation Z.120: Message Sequence Chart (MSC) Annex B: Algebraic Semantics of Message Sequence Charts, ITU-TS, Geneva, 1995.
(オフライン認証プロトコルが満たすべき安全性と対策)
認証処理時に考慮すべき安全性として、中間者攻撃とリプレイ攻撃がある。
図3に、通信路で盗聴(オフラインなら窃盗)され、送付データ改ざんによる中間者攻撃例を示す。窃盗での改ざんによる誤認証のシナリオは例えば下記である。
1. 車載ゲートウェイなどによる認証対象機器のIDの収集
2. 車載ゲートウェイなどによる収集IDの認証サーバへの送付
2'. IDを中間攻撃者が改ざんし、認証サーバへ送付
3'. 認証サーバは、受け取った改ざんIDに対して正規の認証情報を応答
3. 中間攻撃者が偽の認証情報にすり替え、車載ゲートウェイなどへ応答
4. 車載ゲートウェイなどによる偽の認証情報を用いた機器認証
5. 車載ゲートウェイなどによる機器認証結果の認証サーバへの送付
5'. 機器認証結果を中間攻撃者が改ざんし、認証サーバへ送付
上記で、認証サーバが機器認証を検証通過として識別した場合、中間攻撃者の攻撃は成功となる。例えば、認証対象機器を非正規品へ置き換える事が可能となる。また、認証対象機器の認証に成功し、かつ認証サーバが機器認証を検証通過として識別した場合も、中間攻撃者の攻撃は成功となる。例えば、不正ユーザの機器利用が可能となる。
図4に、例えば車載内の中継器であるゲートウェイや他制御機器にマルウェアが仕込まれ、攻撃対象とされている認証対象機器や認証サーバに偽の情報を送付する事で、誤認証させる攻撃例を示す。本例でのシナリオは例えば下記である。
1. マルウェアが偽の認証情報を用いて、認証対象機器の認証を実施
2. マルウェアが偽の認証情報を認証サーバへ送付
中間攻撃者の攻撃の成否は、図3と同様である。安全性として考慮すべきシナリオとして、以下が、中間者攻撃を用いた攻撃手法として挙げられる。
ケース1. 認証対象機器へ送付するメッセージ長の変更、
ケース2. 認証対象機器へ送付するッセージの中身の変更、
ケース3. 認証サーバへ送付するメッセージ長の変更、
ケース4. 認証サーバへ送付するメッセージの中身の変更
図5に、図1のオフライン認証プロトコルでケース1、ケース2への対策がなされている事を示す。具体的には、ケース1への対応として、認証対象機器では、先ずメッセージ長の検証を実施しており、メッセージ長変更による攻撃を排除している。さらに、ケース2への対応として、認証対象機器では、メッセージの改ざん検知を擬似ランダム関数を用いた検証で実施しており、メッセージの中身の変更による攻撃を排除している。
図6に、図1のオフライン認証プロトコルでケース3、ケース4への対策がなされている事を示す。具体的には、ケース3への対応として、認証サーバでは、先ずメッセージ長の検証を実施しており、メッセージ長変更による攻撃を排除している。さらに、ケース4への対応として、認証サーバでは、メッセージの改ざん検知を擬似ランダム関数を用いた検証で実施しており、メッセージの中身の変更による攻撃を排除している。
図7に、中間攻撃者が、認証サーバから送信されたデータを使いまわし、本来認証すべき認証対象機器ではない別の端末に認証情報に手を加えずに送付し、その結果をそのままサーバに中継することで、本来認証すべき認証対象機器に対する認証をすり抜けさせる、送付先変更によるリプレイ攻撃例を示す。送付先変更によるリプレイ攻撃での誤認証のシナリオは例えば下記である。
1. 車載ゲートウェイなどによる認証対象機器のID:AAAを収集
2. 車載ゲートウェイなどによる収集ID:AAAの認証サーバへの送付
2'. 中間攻撃者がID:AAAを認証サーバへ送付
3. 認証サーバは、ID:AAAに対して正規の認証情報を応答
3'. 中間攻撃者が偽の認証情報にすり替え、車載ゲートウェイなどへ応答
4. 車載ゲートウェイなどによるすり替えられた認証情報を用いたID:BBBの機器認証
5. 車載ゲートウェイなどによるID:BBBの機器の機器認証結果の認証サーバへの送付
5'. ID:BBBの機器認証結果を中間攻撃者が、認証サーバへ送付
上記で、認証サーバが機器認証を検証通過として識別した場合、中間攻撃者の攻撃は成功となる。例えば、認証対象機器を非正規品へ置き換える事が可能となる。
安全性として考慮すべきシナリオとして、以下が、リプレイ攻撃(送付先の変更)を用いた攻撃手法として挙げられる。
ケース5. 異なる認証対象機器への送付
図8に、図1のオフライン認証プロトコルでケース5への対策がなされている事を示す。具体的には、ケース5への対応として、認証対象機器では、先ず認証対象機器のIDが一致するかの検証を実施しており、異なる認証対象機器への送付による攻撃を排除している。
(ワンタイム・オフライン認証プロトコル)
図1に示すオフライン認証プロトコルの場合、認証代行クライアントに格納された認証情報は、対応する認証対象機器の認証に何度でも利用可能だという問題がある。認証回数を制限する方法も考えられるが、その部分が改ざんされると認証情報の悪用が可能となる。そこで、モノトニック・カウンタを導入する事でワンタイム認証、即ち各認証情報での認証対象機器での認証を高々1回に制限する拡張を図9に示す。
以下に、図1からの変更点を主に記載する。尚、サーバと認証対象機器に対するモノトニック・カウンタ(サーバ:cnt[j]、認証対象機器:pre_cnt[j](∀j∈[1,N]))がそれぞれ事前に0に初期設定されているものとする。また、モノトニック・カウンタ値は、自動更新されユーザが変更できないものとする。カウントアップによるオーバーフローにより0になる以外の方法では、一番最初の初期化を除いてリセットや電源遮断などでは0に変更できないものとする。
ここで、図9では、明示的にモノトニック・カウンタを導入しているが、サーバ時刻tssでそれを代替しても良い。また、認証代行クライアントは事前に認証対象機器のIDを収集しているものとする。
(1) 機器認証情報のサーバでの構築:
・認証代行クライアントは、認証対象機器からIDを受信すると(S21)、セッション管理のためにrp ∈ {0,1}^k を選び(S22)、(1,rp,ID) をサーバに送付する(S23)。サーバは(1,rp,ID) を受け取ると、下記手順(S24)を実施する。
1. rp,ID ∈ {0,1}^k であるか、そしてID ∈ ID であるかを検証する。もし異なっていれば処理を終了する。もし満たしていれば、以下を 実行する。
2. 現在の時刻をtss ← TimeStamp として選ぶ。
3. 乱数をrh ← {0,1}^k-m、rh:=rh||cnt[ID] として選ぶ。ここでcnt[ID]は、IDに対応する初期値0のモノトニック・カウンタ値である。
4. r1 := PRF(sk,tss||ID||rh) を計算する。そして、サーバはData1 := (tss,ID,rh,r1) として認証代行クライアントに(1,rp,Data1) を送付する(S25)。送付後、cnt[ID]をインクリメントする。ここでPRFは疑似ランダム関数(Pseudo Random Function)、演算子’||’はビット連接を表す。
(2) 認証対象機器での認証と結果収集
認証代行クライアントは現在の時刻をtsp ← TimeStamp として選び(S26)、(rp,tsp,Data1)を認証対象機器に送付する(S27)。認証対象機器は(rp,tsp,Data1 = (tss,ID,rh,r1)) を受け取ると、下記手順(S28)を実施する。
1. rp,tsp,tss,ID,rh,r1 ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、ID が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rc := rc||result1,r2 ← {0,1}^k とする。もし満たしている場合は、以下の操作を実行する。
2. r1 = PRF(sk,tss||ID||rh) が満たされるかを検証する。もし満たしていた場合は以下の処理を実施し、そうでなければresult1 := 10 として処理を4へ移行する。
3. cnt[ID]>pre_cnt[ID]またはcnt[ID]==0∧pre_cnt[ID]+1==0であるか 確認し、もし満たしている場合は、 result1 := 01とし、pre_cnt[ID]:=cnt[ID]とする。満たしていない場合は、result1:=11とする。ここで、pre_cnt[ID]はIDに対応する認証対象機器が持つ初期値0のモノトニック・カウンタである。
4. 乱数をrc ← {0,1}^(k-2) として選び、rc := rc||result1 ∈ {0,1}^k とする。
5. r2 := PRF(ski,tss||tsp||ID||rh||rc) を求める。そして、認証対象機器はData2 := (tss,ID,rh,rc,r2) として(rp,tsp,Data2) を認証代行クライアントに送付する(S29)。
尚サーバから認証代行クライアントへの送付に時間制約がある場合であってtspが信頼できる場合は、上記1のサイズチェック時に、tssとtspを比較する事で、その確認を実施しても良い。また、認証対象機器での認証処理への時間制約があり、認証代行クライアントの時計が信頼できる場合は、サーバは、tspと認証対象機器からの認証結果の受取り時刻(以下、tsp2と記載)を比較する事で、その確認を実施しても良い。
(3) サーバでの認証結果の検証:
認証代行クライアントは(2,rp,tsp,Data2) をサーバに送付する(S30)。サーバは(2,rp,tsp,Data2 = (tss,ID,rh,rc,r2))を受け取ると、rp,tss,tsp,ID,rh,rc,r2 ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とする。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、r2 = PRF(sk,tss||tsp||ID||rh||rc) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。そしてresult2 を認証結果として出力し、これを記録する(S31)。
ここで、result2が01なら認証対象機器で認証成功、result2が11なら認証情報の再利用による認証失敗、result2が10なら擬似ランダム関数値不一致による認証失敗、 result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
尚、サーバから認証代行クライアントへ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、上記サイズチェック時に、tssとサーバでの現在時刻を比較する事で、その確認を実施しても良い。また、認証代行クライアントからの認証結果のサーバへの送付に時間制約があり、認証代行クライアントの時計が信頼できる場合は、tsp2を追加で認証代行クライアントからサーバへ送付し、サーバは、tsp2とtssを比較する事で、その確認を実施しても良い。
本プロトコルではrpが改竄されると、対応するセッションが非存在となるか、存在しても異なるセッションの認証対象機器での認証が実施される事となり失敗するためフェールセーフである。rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄しても、サーバで検証合格とする事はできない。tspを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
rp、rc、tspの何れが改竄されても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。rp,rh,rcの全てまたは何れかが改竄された場合、何らかの改竄があった事を検知可能である。
改竄による認証失敗や検証不合格を効率よく検出する目的で、tspに対してハッシュ値を付加しても良い。
上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスと同様に定義される。
(ワンタイム・オフライン認証プロトコルが満たすべき安全性と対策)
図9に示したワンタイム・オフライン認証プロトコルが、ケース1〜ケース5への攻撃耐性がある事は、プロトコルの構成の仕方から明らかである。ここでは、考慮すべき安全性として新たに同一データの使いまわしによるリプレイ攻撃を示す。
図10に、中間攻撃者が認証サーバから一度得たデータを使いまわし、認証対象機器に対して同一データを何度も送付することで、いつでも好きなときに認証に成功させ、認証対象機器が保有する当該機能を好きなときに実行させる攻撃例を示す。
当該攻撃のシナリオ例は、中間攻撃者がID認証で得た正規認証情報:CCCを何度も使いまわし、認証情報:CCCで実行可能な動作を好きなタイミングで実行する攻撃となる。
安全性として考慮すべきシナリオにおいて、リプレイ攻撃(同一データの使い回し)を用いた攻撃手法として以下が挙げられる。
ケース6.使い回しによる該当認証対象機器への複数回の送付
図11に、図9のワンタイム・オフライン認証プロトコルでケース6への対策がなされている事を示す。ケース6への対応として、認証対象機器では、カウンタ値の検証を実施しており、カウンタ値は機器認証の度に値が増加するよう更新される事から同じ認証情報を使い回しての攻撃を排除している。
以上説明したように、実施の形態1において説明したオフライン認証プロトコルを実行することによって下記の効果を得ることができる。
1)事前にサーバ及び認証対象機器が共通鍵を保有しているとことを前提とする。この場合、認証代行者(認証代行クライアント)は、収集した認証対象機器の識別子情報と通信の対応関係を識別するためのセッション識別子をサーバに送付し、サーバで前記認証対象機器の識別子と共通鍵とから認証情報を構築する。サーバは、認証情報を認証代行者へ返し、認証代行者が識別情報を用いて認証対象機器の認証を実施する。認証代行者は、認証情報に不備が無い事を確認後に実施した認証結果が成否何れの場合であっても、共通鍵を用いた疑似ランダム関数で構成した認証結果をサーバに応答し、サーバで認証結果の検証を行う事で、認証対象機器の認証をセキュアに実現することができる。
2)サーバは、認証結果検証にて暗号復号処理が不要となる。
3)通信路を対象とした署名発行検証を伴わなくても、サーバでの認証結果検証にて、認証対象機器の認証合否のみならず、認証対象機器からサーバへの認証結果送付にて改竄検知が可能となる。
4)認証情報の使いまわしによる攻撃抑止が可能となる。
(実施の形態2)
図12のシーケンス図を用いて、実施の形態2にかかるオフライン認証プロトコルの動作を以下に示す。尚、認証対象機器に対する共通対称鍵の初期設定として、下記設定が事前になされているものとする。
セキュリティパラメータをk としサーバは1^k を入力とする。サーバは認証識別子IDi ∈ {0,1}^k が割り振られている認証対象機器に対して対象鍵 ski ← {0,1}^k を選び、(ski,IDi) を送付する。認証対象機器は(ski,IDi)を不揮発性メモリに保存する。また、認証識別子IDの集合ID を認証代行クライアントに送付する。ここで、認証対象機器の総数をNとし、i ∈ [1,N]とする。例えば、認証対象機器を出荷する前にこれら処理を実施する事で、各認証対象機器に個別の鍵を設定するとともに、サーバに同鍵を格納しても良い。また、認証代行クライアントは事前に認証対象機器のIDを収集しているものとする。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは、認証対象機器からIDを受信すると(S41)、セッション管理のためにrp ∈ {0,1}^k を選び(S42)、認証対象機器群のIDの集合{IDi; i∈[1,N]}とともに、(1,rp, {IDi; i∈[1,N]}) をサーバに送付する(S43)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
サーバは(1,rp, {IDi; i∈[1,N]}) を受け取ると、下記手順(S44)を実施する。
1. 現在の時刻をtss ← TimeStamp として選ぶ。
cnt:=1、Data1:=Φ(空集合)とする。
2. 各 i ∈ [1,N]に対して、下記3,4,5,6を実施する。
3. rp,IDi ∈ {0,1}^k であるか、そしてIDi ∈ ID であるかを検証する。もし異なっていれば cntをインクリメントし処理を6に移行する。もし満たしていれば、以下を実行する。
4. 乱数をrhi ← {0,1}^k として選ぶ。
5. r1i := PRF(ski,tss||IDi||rhi) を計算する。
6. Data1 := (IDi,rhi,r1i)∪Data1 とし、iをインクリメントする。ここで、演算子’||’はビット連接を表す。
7. cnt==Nなら処理を終了し、そうでないならば、Data1 := (tss)∪Data1として認証代行クライアントに(1,rp,Data1) を送付する(S45)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
(2) 認証対象機器での認証と結果収集:
認証代行クライアントは現在の時刻をtsp ← TimeStamp として選び(S46)、(rp,tsp,Data1) を認証対象機器に送付する(S47)。
認証対象機器は(rp,tsp,Data1 = {(tss,IDi,rhi,r1i); i ∈ [1,N]}) を受け取ると、以下手順(S48)を実施する。本受取りは、ネットワーク経由ではなく情報を書き込んだ記憶媒体の受取りで実現しても良い。
1. Data2:=Φ(空集合)
2. 各 i ∈ [1,N]に対して、下記3,4,5,6,7を実施する。
3. rp,tsp,tss,IDi,rhi,r1i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDi が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rci := rc||result1,r2i ← {0,1}^k とし処理を7へ移行する。もし満たしている場合は、以下の操作を実行する。
4. r1i = PRF(ski,tss||IDi||rhi) が満たされるかを検証する。もし満たしていた場合はresult1 := 01 とし、そうでなければ result1 := 10 とする。
5. 乱数をrc ← {0,1}^(k-2) として選び、rci := rc||result1 ∈ {0,1}^k とする。
6. r2i := PRF(ski,tss||tsp||IDi||rhi||rci) を求める。
7. Data2 := (tss,IDi,rhi,rci,r2)∪Data2とし、iをインクリメントする
8. Data2 := (tss)∪Data2として認証代行クライアントに (rp,tsp,Data2) を送付する(S49)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
尚サーバから認証代行クライアントへの送付に時間制約がある場合であってtspが信頼できる場合は、上記1の検証にて、tssとtspを比較する事で、その確認を実施しても良い。また、認証対象機器での認証処理への時間制約があり、認証代行クライアントの時計が信頼できる場合は、サーバは、tspと認証対象機器からの認証結果の受取り時刻(以下、tsp2と記載)を比較する事で、その確認を実施しても良い。
(3) サーバでの認証結果の検証
認証代行クライアントは(2,rp,tsp,Data2) をサーバに送付する(S50)。サーバは(2,rp,tsp,Data2 = {(tss,IDi,rhi,rci,r2i); i ∈ [1,N]}) を受け取ると、以下手順(S51)を実施する。
1. result:=Φ
2. 各 i ∈ [1,N]に対して、下記3,4,5を実施する。
3. rp,tss,tsp,IDi,rhi,rci,r2i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とし処理を5へ移行する。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、以下を実施する。
4. r2i = PRF(sk,tss||tsp||IDi||rhi||rci) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。ここで、result2が01なら認証対象機器で認証成功、result2が10なら認証失敗、result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
5. result := result∪result2 とし、iをインクリメントする
6. result を認証結果として出力し、これを記録する。
尚、サーバから認証代行クライアントへ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、上記3でのサイズチェック時に、tssとサーバでの現在時刻を比較する事で、サーバは、その確認を実施しても良い。
また、認証代行クライアントからの認証結果のサーバへの送付に時間制約があり、認証代行クライアントの時計が信頼できる場合は、tsp2を追加で認証代行クライアントからサーバへ送付し、サーバはtsp2とtssを比較する事で、その確認を実施しても良い。
図1同様、図12に示すプロトコルでもrpが改竄されると、認証対象機器での認証が失敗するためフェールセーフである。 rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄してもサーバで検証合格とする事はできない。攻撃者がtspを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
即ち、rp、rc、tspの何れを改竄しても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。rp,rh,rcの全てまたは何れかが改竄された場合、何らかの改竄があった事を検知可能である。改竄による認証失敗や検証不合格を効率よく検出する目的で、tspに対してハッシュ値を付加しても良い。
上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスと同様に定義される。
(オフライン・バッチ認証プロトコルが満たすべき安全性と対策)
構成の仕方から明らかであるように、実施の形態2における認証プロトコルは、ケース1〜ケース5の攻撃への耐性がある。
(ワンタイム・オフライン・バッチ認証プロトコル)
図12の場合、認証代行クライアントに格納された認証情報は、対応する認証対象機器の認証に何度でも利用可能だという問題がある。認証回数を制限する方法も考えられるが、その部分が改ざんされると認証情報の悪用が可能となる。
そこで、モノトニック・カウンタを導入する事でワンタイム認証、即ち各認証情報での認証対象機器での認証を高々1回に制限する拡張を図13に示す。以下の図13の説明においては、主に、図12からの変更点について以下に記載する。尚、サーバと認証対象機器に対するモノトニック・カウンタ(サーバ:cnt[j]、認証対象機器:pre_cnt[j](∀j∈[1,N]))がそれぞれ事前に0に初期設定されているものとする。また、モノトニック・カウンタ値は、自動更新されユーザが変更できないものとする。カウントアップによるオーバーフローにより0になる以外の方法では、最初の初期化を除いてリセットや電源遮断などでは0に変更できないとする。
ここで、図13では、明示的にモノトニック・カウンタを導入しているが、サーバ時刻tssでそれを代替しても良い。また、認証代行クライアントは以下に示すように事前に認証対象機器のIDを収集しているものとする。
セキュリティパラメータをk としサーバは1^k を入力とする。サーバは認証識別子IDi ∈ {0,1}^k が割り振られている認証対象機器に対して対象鍵 ski ← {0,1}^k を選び、(ski,IDi) を送付する。認証対象機器は(ski,IDi)を不揮発性メモリに保存する。また、認証識別子IDiの集合ID を認証代行クライアントに送付する。
ここで、認証対象機器の総数をNとし、i ∈ [1,N]とする。例えば、認証対象機器を出荷する前にこれら処理を実施する事で、各認証対象機器に個別の鍵を設定するとともに、サーバに同鍵を格納しても良い。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは認証対象機器から{IDi; i∈[1,N]}を受信すると(S61)、セッション管理のためにrp ∈ {0,1}^k を選び(S62)、認証対象機器群のIDの集合{IDi; i∈[1,N]}とともに、(1,rp, {IDi; i∈[1,N]})をサーバに送付する(S63)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
サーバは(1,rp, {IDi; i∈[1,N]}) を受け取ると、下記手順(S64)を実施する。
1. 現在の時刻をtss ← TimeStamp として選ぶ。cnt:=1、Data1:=Φ(空集合)とする。
2. 各 i ∈ [1,N]に対して、下記3,4,5,6を実施する。
3. rp,IDi ∈ {0,1}^k であるか、そしてIDi ∈ ID であるかを検証する。もし異なっていれば cntをインクリメントし処理を6に移行する。もし満たしていれば、以下を実行する。
4. 乱数をrh ← {0,1}^k-m、rh:=rh||cnt[i] として選ぶ。ここで cnt[i]は、IDiに対応する初期値0のモノトニック・カウンタ値である。
5. r1i := PRF(ski,tss||IDi||rhi) を計算する。
6. Data1 := (IDi,rhi,r1i)∪Data1 とし、iをインクリメントする。その後、cnt[i]をインクリメントする。ここで、演算子’||’はビット連接を表す。
7. cnt==Nなら処理を終了し、そうでないならば、Data1 := (tss)∪Data1として認証代行クライアントに(1,rp,Data1) を送付する(S65)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
(2) 認証対象機器での認証と結果収集
認証代行クライアントは現在の時刻をtsp ← TimeStamp として選び(S66)、(rp,tsp,Data1) を認証対象機器に送付する(S67)。
認証対象機器は(rp,tsp,Data1 = {(tss,IDi,rhi,r1i); i ∈ [1,N]}) を受け取ると、以下手順(S68)を実施する。本受取りは、ネットワーク経由ではなく情報を書き込んだ記憶媒体の受取りで実現しても良い。
1. Data2:=Φ(空集合)
2. 各 i ∈ [1,N]に対して、下記3,4,5,6,7を実施する。
3. rp,tsp,tss,IDi,rhi,r1i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDi が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rci := rc||result1,r2i ← {0,1}^k とし処理を7へ移行する。もし満たしている場合は、以下の操作を実行する。
4. r1i = PRF(ski,tss||IDi||rhi) が満たされるかを検証する。もし満たしていた場合は以下の処理を実施し、そうでなければresult1 := 10 として処理を4へ移行する。
5. cnt[i]>pre_cnt[i]またはcnt[i]==0∧pre_cnt[i]+1==0であるか確認し、もし満たしている場合は、 result1 := 01とし、pre_cnt[i]:=cnt[i]とする。満たしていない場合は、result1:=11とする。ここで、pre_cnt[i]はIDiに対応する認証対象機器が持つ初期値0のモノトニック・カウンタである。
6. 乱数をrc ← {0,1}^(k-2) として選び、rci := rc||result1 ∈ {0,1}^k とする。
7. r2i := PRF(ski,tss||tsp||IDi||rhi||rci) を求める。
8. Data2 := (tss,IDi,rhi,rci,r2)∪Data2とし、iをインクリメントする
9. Data2 := (tss)∪Data2として認証代行クライアントに (rp,tsp,Data2) を送付する(S69)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
尚サーバから認証代行クライアントへの送付に時間制約がある場合であってtspが信頼できる場合は、認証対象機器は、上記1の検証にて、tssとtspを比較する事で、その確認を実施しても良い。また、認証対象機器での認証処理への時間制約があり、認証代行クライアントの時計が信頼できる場合は、サーバは、tspと認証対象機器からの認証結果の受取り時刻(以下、tsp2と記載)を比較する事で、その確認を実施しても良い。
(3) サーバでの認証結果の検証:
認証代行クライアントは(2,rp,tsp,Data2) をサーバに送付する(S70)。サーバは(2,rp,tsp,Data2 = {(tss,IDi,rhi,rci,r2i); i ∈ [1,N]}) を受け取ると、以下手順(S71)を実施する。
1. result:=Φ
2. i ∈ [1,N]に対して、下記3,4,5を実施する。
3. rp,tss,tsp,IDi,rhi,rci,r2i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とし処理を5へ移行する。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、以下を実施する。
4. r2i = PRF(sk,tss||tsp||IDi||rhi||rci) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。ここで、result2が01なら認証対象機器で認証成功、result2が11なら認証情報の再利用による認証失敗、result2が10なら擬似ランダム関数値不一致による認証失敗、 result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
5. result := result∪result2 とし、iをインクリメントする
6. result を認証結果として出力し、これを記録する。
尚、サーバから認証代行クライアントへ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、サーバは、上記3でのサイズチェック時に、tssとサーバでの現在時刻を比較する事で、その確認を実施しても良い。
また、認証代行クライアントからの認証結果のサーバへの送付に時間制約があり、認証代行クライアントの時計が信頼できる場合は、tsp2を追加で認証代行クライアントからサーバへ送付し、サーバがtsp2とtssを比較する事で、その確認を実施しても良い。
図1同様、図13に示すプロトコルでもrpが改竄されると、認証対象機器での認証が失敗するためフェールセーフである。 rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄してもサーバで検証合格とする事はできない。tspを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
即ち、rp、rc、tspの何れを改竄しても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。rp,rh,rcの全てまたは何れかが改竄された場合、何らかの改竄があった事を検知可能である。改竄による認証失敗や検証不合格を効率よく検出する目的で、tspに対してハッシュ値を付加しても良い。
上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスと同様に定義される。
(ワンタイム・オフライン・バッチ認証プロトコルが満たすべき安全性と対策)
実施の形態2にかかるオフライン認証プロトコルが、ケース1〜ケース5への攻撃耐性がある事は、プロトコルの構成の仕方から明らかである。また、実施の形態2にかかるオフライン認証プロトコルは、構成の仕方から明らかであるように、ケース6の攻撃への耐性もある。
以上説明したように、実施の形態2において説明したオフライン認証プロトコルを実行することによって下記の効果を得ることができる。
1)事前にサーバと認証対象機器が共通鍵を保有しているという前提の下で、サーバ・認証代行者(認証代行クライアント)間、認証代行者・認証対象機器間の少なくとも一方が、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で、認証対象機器の認証をセキュアに実現することが可能となる。
2)サーバでの認証結果検証にて暗号復号処理が不要となる。
3)通信路を対象とした署名発行検証を伴わなくても、サーバでの認証結果検証にて、認証対象機器の認証合否のみならず、認証対象機器からサーバへの認証結果送付にて改竄検知が可能となる。
4)認証情報の使いまわしによる攻撃抑止が可能となる。
(実施の形態3)
実施の形態1及び2のプロトコルでは、認証対象機器に時計が搭載されていない状況を想定し、認証対象機器の時計を用いる代わりに認証代行クライアントの時計を用いたプロトコルとなっていた。
認証代行クライアントの時計の値はハッシュ値を付加するなどで保護可能であるが、ハッシュ関数を用いない場合改竄可能となり、改竄による検証不合格や、時間制約検証での不合格を攻撃者が実現する事が可能である。以下、認証対象機器に時計が搭載されている場合の、図1、図12に対応するプロトコルをそれぞれ図14、図15に示す。
(端末時計付きオフライン認証プロトコル)
図14のシーケンス図を用いて、認証対象機器が時計を持つ場合のオフライン認証プロトコルの動作を以下に示す。尚、認証対象機器に対する共通対称鍵の初期設定として、下記設定が事前になされているものとする。
セキュリティパラメータをk としサーバは1^k を入力とする。サーバは認証識別子IDi ∈ {0,1}^k が割り振られている認証対象機器に対して対象鍵 ski ← {0,1}^k を選び、(ski,IDi) を送付する。認証対象機器は(ski,IDi)を不揮発性メモリに保存する。また、認証識別子IDの集合ID を認証代行クライアントに送付する。
ここで、認証対象機器の総数をNとし、i ∈ [1,N]とする。例えば、認証対象機器を出荷する前にこれら処理を実施する事で、各認証対象機器に個別の鍵を設定するとともに、サーバに同鍵を格納しても良い。また、認証代行クライアントは事前に認証対象機器のIDを収集しているものとする。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは認証対象機器からIDを受信すると(S81)、セッション管理のためにrp ∈ {0,1}^k を選び(S82)、(1,rp,ID) をサーバに送付する(S83)。サーバは(1,rp,ID) を受け取ると、下記手順(S84)を実施する。
1. rp,ID ∈ {0,1}^k であるか、そしてID ∈ ID であるかを検証する。もし異なっていれば処理を終了する。もし満たしていれば、以下を実行する。
2. 現在の時刻をtss ← TimeStamp として選ぶ。
3. 乱数をrh ← {0,1}^k として選ぶ。
4. r1 := PRF(sk,tss||ID||rh) を計算する。そして、サーバはData1 := (tss,ID,rh,r1) として認証代行クライアントに(1,rp,Data1) を送付する(S85)。ここで、演算子’||’はビット連接を表す。
(2) 認証対象機器での認証と結果収集
認証代行クライアントは、(rp,Data1) を認証対象機器に送付する(S86)。認証対象機器は(rp,Data1 = (tss,ID,rh,r1)) を受け取ると、以下手順(S87)を実施する。
1. 現在の時刻情報 tsd ← TimeStamp を選ぶ
2. rp,tss,ID,rh,r1 ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、ID が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rc := rc||result1,r2 ← {0,1}^k とする。もし満たしている場合は、以下の操作を実行する。
3. r1 = PRF(sk,tss||ID||rh) が満たされるかを検証する。もし満たしていた場合はresult1 := 01 とし、そうでなければresult1 := 10 とする。
4. 乱数をrc ← {0,1}^(k-2) として選び、rc := rc||result1 ∈ {0,1}^k とする。
5. r2 := PRF(ski,tss||tsd||ID||rh||rc) を求める。そして、認証対象機器 はData2 := (tss,tsd,ID,rh,rc,r2) として(rp, Data2) を認証代行クライアントに送付する(S88)。
尚サーバから認証対象機器への認証情報の送付に時間制約がある場合であってtsdが信頼できる場合は、認証対象機器は、上記2のサイズチェック時に、tssとtsdを比較する事で、その確認を実施しても良い。
(3) サーバでの認証結果の検証:
認証代行クライアントは(2,rp,Data2) をサーバに送付する(S89)。サーバは(2,rp,Data2 = (tss,tsd,ID,rh,rc,r2)) を受け取ると、rp,tss,tsd,ID,rh,rc,r2 ∈ {0,1}^k あるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とする。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、r2 = PRF(sk,tss||tsd||ID||rh||rc) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。そしてresult2 を認証結果として出力し、これを記録する(S90)。ここで、result2が01なら認証対象機器で認証成功、result2が10なら認証失敗、 result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
尚、サーバから認証代行クライアントを介して認証対象機器へ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、上記サイズチェック時に、サーバは、tssとサーバでの現在時刻を比較する事で、その確認を実施しても良い。
また、認証対象機器からの認証結果のサーバへの送付に時間制約があり、認証対象機器の時計が信頼できる場合は、サーバは、tsdとtssを比較する事で、その確認を実施しても良い。
本プロトコルではrpが改竄されると、対応するセッションが非存在となるか、存在しても異なるセッションでの認証対象機器での認証が実施される事となり失敗するためフェールセーフである。 rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄してもサーバで検証合格とする事はできない。tsdを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
即ち、rp、rc、tsdの何れを改竄しても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。また、rp,rh,rc,tsdの全てまたは何れかが改竄された場合、何らかの改竄があった事を検知可能である。従って、tsdにハッシュ値を付加する必要はとくにない。認証情報のワンタイム化を、実施の形態1に示したモノトニック・カウンタ導入手法で実現しても良い。
・上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスと同様に定義される。
(端末時計付きオフライン認証プロトコルが満たすべき安全性と対策)
図14のオフライン認証プロトコルの構成の仕方から明らかであるように、図14のオフライン認証プロトコルは、ケース1〜ケース5の攻撃への耐性がある。
(端末時計付きオフライン・バッチ認証プロトコル)
・図15のシーケンス図を用いて、認証対象機器が時計を持つ場合のバッチ処理化したオフライン認証プロトコルの動作を以下に示す。尚、全認証対象機器に対する共通対称鍵の初期設定が、実施の形態1と同様下記が事前になされているものとする。
セキュリティパラメータをk としサーバは1^k を入力とする。サーバは認証識別子IDi ∈ {0,1}^k が割り振られている認証対象機器に対して対象鍵 ski ← {0,1}^k を選び、(ski,IDi) を送付する。認証対象機器は(ski,IDi)を不揮発性メモリに保存する。また、認証識別子IDiの集合ID を認証代行クライアントに送付する。
ここで、認証対象機器の総数をNとし、i ∈ [1,N]とする。例えば、認証対象機器を出荷する前にこれら処理を実施する事で、各認証対象機器に個別の鍵を設定するとともに、サーバに同鍵を格納しても良い。また、認証代行クライアントは事前に認証対象機器のIDを収集しているものとする。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは認証対象機器から{IDi; i∈[1,N]}を受信すると(S91)、セッション管理のためにrp ∈ {0,1}^k を選び(S92)、認証対象機器群のIDの集合{IDi; i∈[1,N]}とともに、(1,rp, {IDi; i∈[1,N]}) をサーバに送付する(S93)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
サーバは(1,rp, {IDi; i∈[1,N]}) を受け取ると、下記手順(S94)を実施する。
1. 現在の時刻をtss ← TimeStamp として選ぶ。cnt:=1、Data1:=Φ(空集合)とする。
2. 各 i ∈ [1,N]に対して、下記3,4,5,6を実施する。
3. rp,IDi ∈ {0,1}^k であるか、そしてIDi ∈ ID であるかを検証する。もし異なっていれば cntをインクリメントし処理を6に移行する。もし満たしていれば、以下を実行する。
4. 乱数をrhi ← {0,1}^k として選ぶ。
5. r1i := PRF(ski,tss||IDi||rhi) を計算する。
6. Data1 := (IDi,rhi,r1i)∪Data1 とし、iをインクリメントする。ここで、演算子’||’はビット連接を表す。
7. cnt==Nなら処理を終了し、そうでないならば、Data1 := (tss)∪Data1として認証代行クライアントに(1,rp,Data1) を送付する(S95)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。
(2) 認証対象機器での認証と結果収集
認証代行クライアントは、(rp,tsp,Data1) を認証対象機器に送付する(S96)。認証対象機器は(rp,tsp,Data1 = {(tss,IDi,rhi,r1i); i ∈ [1,N]}) を受け取ると、以下手順(S97)を実施する。本受取りは、ネットワーク経由ではなく情報を書き込んだ記憶媒体の受取りで実現しても良い。
1. 現在の時刻情報 tsd ← TimeStamp を選ぶ
2. Data2:=Φ(空集合)
3. 各 i ∈ [1,N]に対して、下記4,5,6,7,8を実施する。
4. rp,tsp,tss,IDi,rhi,r1i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDi が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1 := 00,rc ← {0,1}^(k-2),rci := rc||result1,r2i ← {0,1}^k とし処理を7へ移行する。もし満たしている場合は、以下の操作を実行する。
5. r1i = PRF(ski,tss||IDi||rhi) が満たされるかを検証する。もし満たしていた場合はresult1 := 01 とし、そうでなければresult1 := 10 とする。
6. 乱数をrc ← {0,1}^(k-2) として選び、rci := rc||result1 ∈ {0,1}^k とする。
7. r2i := PRF(ski,tss||tsd||IDi||rhi||rci) を求める。
8. Data2 := (tss,IDi,rhi,rci,r2)∪Data2とし、iをインクリメントする
9. Data2 := (tss,tsd)∪Data2として認証代行クライアントに (rp,Data2) を送付する(S98)。本送付は、ネットワーク経由ではなく情報を書き込んだ記憶媒体を配達する事で実現しても良い。尚サーバから認証対象機器への認証情報の送付に時間制約がある場合であってtsdが信頼できる場合は、上記4のサイズチェック時に、認証対象機器は、tssとtsdを比較する事で、その確認を実施しても良い。
(3) サーバでの認証結果の検証:
認証代行クライアントは(2,rp,Data2) をサーバ に送付する(S99)。サーバは(2,rp,Data2 = {(tss,tsd,IDi,rhi,rci,r2i); i ∈ [1,N]}) を受け取ると、以下手順(S100)を実施する。
1. result:=Φ
2. 各 i ∈ [1,N]に対して、下記3,4,5を実施する。
3. rp,tss,tsd,IDi,rhi,rci,r2i ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、満たしていなければresult2 := 00 とし処理を5へ移行する。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていれば、以下を実施する。
4. r2i = PRF(sk,tss||tsd||IDi||rhi||rci) であるかを検証する。もし正しければresult2 := rcの下位2bit とし、そうでなければresult2 := 00 とする。ここで、result2が01なら認証対象機器で認証成功、result2が10なら認証失敗、result2が00なら受信エラー(メッセージ改竄の可能性)、として記録される。
5. result := result∪result2 とし、iをインクリメントする
6. result を認証結果として出力し、これを記録する。
尚、サーバから認証代行クライアントを介して認証対象機器へ認証情報を送付後、サーバが認証代行クライアントからの認証結果を取得するまでの間に時間制約がある場合、上記サイズチェック時に、サーバは、tssとサーバでの現在時刻を比較する事で、その確認を実施しても良い。
また、認証対象機器からの認証結果のサーバへの送付に時間制約があり、認証対象機器の時計が信頼できる場合は、サーバは、tsdとtssを比較する事で、その確認を実施しても良い。
本プロトコルではrpが改竄されると、対応するセッションが非存在となるか、存在しても異なるセッションでの認証対象機器での認証が実施される事となり失敗するためフェールセーフである。 rh改竄の場合もサーバでの認証結果の検証が失敗するためフェールセーフである。
また、サーバでの認証結果の検証手段により、攻撃者がrcの値を改竄してもサーバで検証合格とする事はできない。tsdを改竄した場合も、サーバでの認証結果の検証手段により、サーバで検証合格とする事はできない。
即ち、rp、rc、tsdの何れを改竄しても、認証対象機器の認証結果を攻撃者が認証成功や検証合格とする事ができない。また、rp,rh,rc,tsdの全てまたは何れかが改竄された場合、何らかの改竄があった事を検知可能である。従って、tsdにハッシュ値を付加する必要はとくにない。
認証情報のワンタイム化を、実施形態2に示したモノトニック・カウンタ導入手法で実現しても良い。上記(1)(2)(3)の繰返し実行は、図2に示すシーケンスと同様に定義される。
(端末時計付きオフライン・バッチ認証プロトコルが満たすべき安全性と対策)
実施の形態3のオフライン認証プロトコルの構成の仕方から明らかであるように、実施の形態3のオフライン認証プロトコルは、ケース1〜ケース5の攻撃への耐性がある。
(端末時計付きワンタイム・オフライン認証プロトコル)
実施の形態1に示した構成方法と同様に、プロトコルを定義することが可能である。
(端末時計付きワンタイム・オフライン認証プロトコルが満たすべき安全性と対策)
ケース1〜ケース5への攻撃耐性がある事は、プロトコルの構成の仕方から明らかである。構成の仕方から明らかであるように、ケース6の攻撃への耐性がある。
(端末時計付きワンタイム・オフライン・バッチ認証プロトコル)
実施の形態1に示した構成方法と同様に、プロトコルを定義することが可能である。
(端末時計付きワンタイム・オフライン・バッチ認証プロトコルが満たすべき安全性と対策)
ケース1〜ケース5への攻撃耐性がある事は、プロトコルの構成の仕方から明らかである。構成の仕方から明らかであるように、ケース6の攻撃への耐性がある。
(実施の形態4)
メモリ空間をAとBに分割し、BからはAにアクセス可能だが、AからのBへのアクセスをB上に構築したAPI(Application Programming Interface)を介してのみ実施可能とする事で、B上のプログラムやリソースを保護する方法が考えられる。実際の製品開発では、デバッグなどの目的でB内リソースの消去APIやセキュリティ・リスクとなり得るプログラムの実行などを可能とするAPIを付加した状態で開発が実施される。
製品出荷時にデバッグ目的で追加したAPIを削除すれば、B上のプログラムやリソース保護が実現されるが、出荷後の不具合対策などの理由からデバッグ目的で追加したAPIを削除せずに出荷してしまう事がしばしば行われる。
この問題への対策としては、Bにセキュアに認証サーバとの事前共有鍵を配置し、B上のAPIをAから実行する際に、実行権限が与えられているか否か認証するという方法が考えられる。然るに、これではAPI実行の度にサーバとの通信が必要となり、通信による実行時間の長大化や消費電力増大、更には通信環境がない場合にAPI実行ができなくなり利便性が大きく既存するという問題がある。
API実行にて、実施の形態1乃至3に示した認証方式を用いれば、そうした問題は解消され、通信環境がなくても端末での認証処理に必要となるオーバーヘッドのみで目的とするリソース保護やプログラム保護を達成可能なAPI実行が実現できる。以下に、図16〜図19のシーケンス図を用いて、実施の形態1乃至4に示した認証方式を、鍵配送を伴う認証へ拡張した動作について説明する。
(1) 機器認証情報のサーバでの構築
認証代行クライアントは、認証対象機器からIDdを受信すると(S101)、セッション管理のためにrp ∈ {0,1}^k を選び(S102)、(1,rp,IDd,IDp) をサーバに送付する(S103)。IDdは、認証対象機器に割り当てられたIDである。IDpは、認証代行クライアントに割り当てられたIDである。サーバは(1,rp,IDd,IDp) を受け取ると、下記手順(S104)を実施する。
1. rp,IDd,IDp ∈ {0,1}^k であるか、そしてID ∈ ID であるかを検証する。もし異なっていれば処理を終了する。もし満たしていれば、以下を実行する。
2. 現在の時刻をtss ← TimeStamp として選ぶ。
3. 乱数をrh ← {0,1}^k 及びk1 ← {0,1}^kとして選ぶ。
4. r1d := PRF(ski,tss||IDd||rh||1), r1’d := PRF(ski,tss||IDd||rh||2), r1p := PRF(ski,tss||IDp||rh||1), r1’p := PRF(ski,tss||IDp||rh||2), c1d := AE.Enc(r1’d, k1), c1p := AE.Enc(r1’p, k1)を計算する。そして、サーバはData1 := (tss,IDd,rh,r1d,c1d,IDp,r1p,c1p) として認証代行クライアントに(1,rp,Data1)を送付する(S105)。ここで、PRFは疑似ランダム関数(Pseudo Random Function)、AE.Encは認証付き暗号(Authenticated Encryption)方式での暗号化、演算子’||’はビット連接を表す。
(2) 認証代行クライアントでの認証と結果収集
認証代行クライアントは、(rp,Data1 = rp,tss,IDd,rh,r1d,c1d,IDp,r1p,c1p) を受け取ると、下記手順(S106)を実施する。
1. 認証代行クライアントは現在の時刻をtsp ← TimeStamp として選び、乱数をr3p ← {0,1}^k として選ぶ。
2. rp,tss,IDd,rh,r1d,c1d,IDp,r1p,c1p ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDd及びIDp が自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1p := 00,rcp := rcp||result1p,r2p ← {0,1}^k とする。もし満たしている場合は、以下の操作を実行する。
3. r1p = PRF(skp,tss||IDp||rh||1) が満たされるかを検証する。もし満たしていれば、result1p := 01,r1’p := PRF(skp,tss||IDp||rh||2), k1 := AE.Dec(r1’p,c1p)とする。もし満たしていなければ、result1p := 11とする。ここで、AE.Decは認証付き暗号(Authenticated Encryption)方式での復号化を表す。
4. rcp := rc||result1p, とし、r2p := PRF(skp,tss||IDp||rh||rcp||1)を求める。
5. result1p := 01である場合、r3p := PRF(k1,tss||IDp||rh||1)を求める。そして、認証代行クライアントはData2 := (tss,IDd,rh,r1d,c1d,IDp,r1p,c1p,rcp,r2p,r3p) として(rp,tsp,Data2) を認証対象機器に送付する(S107)。
(3) 認証対象機器での認証と結果収集
認証対象機器は、(rp,tsp,Data2 = rp, tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p) を受け取ると、下記手順(S108)を実施する。
1. 乱数をr3d ← {0,1}^k, rcd ← {0,1}^k, rcdp ← {0,1}^kとして選ぶ。
2. rp, tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDdが自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。もし満たしていなければ、result1d := 00,rcd := rcd||result1d,r2d ← {0,1}^k, result1dp := 00,rcdp := rcdp||result1dp,r3d ← {0,1}^kとする。もし満たしている場合は、以下の操作を実行する。
3. r1d = PRF(skd,tss||IDd||rh||1) が満たされるかを検証する。もし満たしていれば、result1d := 01,r1’d := PRF(skd,tss||IDd||rh||2), k1 := AE.Dec(r1’d,c1d)とする。もし満たしていなければ、result1d := 11とする。
4. rcd := rcd||result1d, とし、r2d := PRF(skd,tss||IDd||rh||rcd||1)を求める。
5. result1d := 01であり、r3d := PRF(k1,tss||IDd||rh||1)を満たす場合、result1dp := 01とし、満たさない場合、result1dp := 11とする。
6. rcdp := rcdp||result1dp, とし、r3d := PRF(k1,tss||tsp||IDd||rh||rcdp||1)を求める。そして、認証対象機器はData3 := (tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d) として(rp,tsp,Data3) を認証代行クライアントに送付する(S109)。
(4) 認証代行クライアントでの認証結果の検証
認証代行クライアントは(rp,tsp,Data3 = (tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d)) を受け取ると、下記手順(S110)を実施する。
1. tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDdが自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。満たしていなければresult1pd := 000 とする。もし満たしていれば、r1d = PRF(skd,tss||tsp||IDd||rh||1) であるかを検証する。もし正しければresult1p := 001, r1’p := PRF(skp,tss||IDp||rh||2), k1 := AE,Dec (r1’p, c1p)とし、そうでなければresult1pd := 110 とする。
2. result1pd := 001である場合、r3d = PRF(k1,tss||tsp||IDd||rh||rcdp||1)であるかを検証する。もし正しければ、result1pd := 001とし、そうでなければ、result := 100とする。
3. result1pd := 001ならばresult2pd := rcdpの下位2bitとし、そうでなければ、result2pd := 00とする。そして、result2 を認証結果として出力し、これを記録する。認証代行クライアントは、Data3 := (tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d) として(rp,tsp,Data3) をサーバに送付する(S111)。
(5) サーバでの認証結果の検証
認証代行クライアントは(rp,tsp,Data3 = (tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d)) を受け取ると、下記手順(S112)を実施する。
1. 乱数をr3d ← {0,1}^k, rcd ← {0,1}^k, rcdp ← {0,1}^kとして選ぶ。
2. tss, IDd, rh, r1d, c1d, IDp, r1p, c1p, rcp, r2p, r3p, rcd, r2d, rcdp, r3d ∈ {0,1}^k であるか、即ちそれぞれのデータの長さが規定値どおりの長さとなっているかを検証し、IDdが自身のものと一致するかを確かめる。ここで、データは必要に応じ適切にパディングされているものとする。満たしていなければresult2p := 00 とし、result2d := 00とする。もし満たしていれば、r2p = PRF(skp,tss||tsp||IDp||rh||rcp||1)、r2d = PRF(skd,tss||tsp||IDd||rh||rcd||1) であるかを検証する。もし正しければresult2p := rcpの下位2ビットとし、result2d := rcdの下位2ビットとする。
以上説明したように、実施の形態3にかかるプロトコルを用いることにより、通信環境がなくても端末での認証処理に必要となるオーバーヘッドのみで目的とするリソース保護やプログラム保護を達成可能なAPI実行が実現できる。
続いて、以下では、図20を用いて、上述の実施の形態1乃至4において説明した、認証対象機器、認証代行クライアント、及びサーバの構成例について説明する。図20は、認証対象機器、認証代行クライアント、及びサーバにおいて用いられるコンピュータ装置10を示している。コンピュータ装置10は、ネットワークインタフェース1201、プロセッサ1202、及びメモリ1203を含む。ネットワークインタフェース1201は、通信システムを構成する他のネットワークノード装置と通信するために使用される。ネットワークインタフェース1201は、例えば、IEEE 802.3 seriesに準拠したネットワークインタフェースカード(NIC)を含んでもよい。
プロセッサ1202は、メモリ1203からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてシーケンス図及びフローチャートを用いて説明された認証対象機器、認証代行クライアント、及びサーバの処理を行う。プロセッサ1202は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ1202は、複数のプロセッサを含んでもよい。
メモリ1203は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1203は、プロセッサ1202から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1202は、図示されていないI/Oインタフェースを介してメモリ1203にアクセスしてもよい。
図20の例では、メモリ1203は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1202は、これらのソフトウェアモジュール群をメモリ1203から読み出して実行することで、上述の実施形態において説明された認証対象機器、認証代行クライアント、及びサーバの処理を行うことができる。
図20を用いて説明したように、認証対象機器、認証代行クライアント、及びサーバが有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1又は複数のプログラムを実行する。
また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
10 コンピュータ装置
1201 ネットワークインタフェース
1202 プロセッサ
1203 メモリ

Claims (14)

  1. サーバは、認証対象機器の識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値で構成した第1の認証情報を生成し、前記第1の認証情報を認証代行クライアントを介して前記認証対象機器へ送信し、
    前記認証対象機器は、前記識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値と、前記第1の認証情報とを比較することによって前記第1の認証情報の正当性を確認し、前記第1の認証情報の正当性を確認した後に、前記認証対象機器の識別子と共通鍵と前記第1の認証情報の確認結果とを引数とした疑似ランダム関数を用いて生成された値で構成した第2の認証情報を生成し、前記第2の認証情報を前記認証代行クライアントへ送信する、認証方法。
  2. 前記認証代行クライアントは、前記第2の認証情報を前記サーバへ送信し、
    前記サーバは、前記第2の認証情報の正当性を確認する、請求項1に記載の認証方法。
  3. 前記サーバは、前記第1の認証情報を生成する際の時刻に関する第1の時間情報を生成し、前記認証対象機器の識別子と前記共通鍵と前記第1の時間情報とを引数とした疑似ランダム関数を用いて生成された値で構成した前記第1の認証情報を生成する、請求項1に記載の認証方法。
  4. 前記認証対象機器は、前記認証代行クライアントが前記第1の認証情報を受信した時刻に関する第2の時間情報と前記認証対象機器の識別子と前記共通鍵と前記第1の認証情報の確認結果とを引数とした疑似ランダム関数を用いて生成された値で構成した前記第2の認証情報を生成する、請求項1に記載の認証方法。
  5. 前記認証対象機器は、前記第1の認証情報の正当性として、前記第1の認証情報のデータの長さが規定値通りであるか否かを判定し、
    前記認証代行クライアントは、前記第1の認証情報のデータの長さが規定値通りであるか否かの判定結果を含む第2の認証情報を前記サーバへ送信する、請求項3に記載の認証方法。
  6. 前記認証対象機器は、前記第1の時間情報と、前記認証代行クライアントが前記第1の認証情報を受信した時刻に関する第2の時間情報との差分が、予め定められた時間制約を満たしているか否かを確認する、請求項3に記載の認証方法。
  7. 前記サーバは、前記第2の時間情報と、前記認証代行クライアントが前記第2の認証情報を受信した時刻に関する第3の時間情報との差分が、予め定められた時間制約を満たしているか否かをする、請求項4に記載の認証方法。
  8. 前記サーバは、前記第1の認証情報の使用回数を制限するモノトニック・カウンタを用いる、請求項1に記載の認証方法。
  9. 前記サーバは、前記モノトニック・カウンタが示す値を用いて前記第1の認証情報を生成する、請求項8に記載の認証方法。
  10. 前記認証代行クライアントは、複数の前記認証対象機器の識別子を前記サーバに送信し、
    前記サーバは、それぞれの前記認証対象機器に関する前記第1の認証情報を生成する、請求項1に記載の認証方法。
  11. 前記認証対象機器は、前記第1の認証情報を受信した時刻に関する第4の時間情報と前記認証対象機器の識別子と前記共通鍵と前記第1の認証情報の確認結果とを引数とした疑似ランダム関数を用いて生成された値で構成した前記第2の認証情報を生成する、請求項1に記載の認証方法。
  12. 前記認証代行クライアントは、前記認証対象機器の識別子とともに自装置の識別子を前記サーバに送信し、
    前記サーバは、前記第1の認証情報とともに、前記認証代行クライアントの識別子と前記共通鍵とを引数とした疑似ランダム関数を用いて生成された値で構成した第3の認証情報を生成する、請求項1に記載の認証方法。
  13. 認証代行クライアントは、収集した認証対象機器の識別子と通信の対応関係を識別するためのセッション識別子とをサーバに送信し、
    前記サーバは、前記認証対象機器の識別子及び前記セッション識別子の正当性を確認する、請求項1に記載の認証方法。
  14. 認証対象機器と、
    前記認証対象機器に対して共通鍵を選択するサーバと、
    前記認証対象機器と前記サーバとの間の通信を中継する認証代行クライアントと、を備え、
    前記サーバは、前記認証対象機器の識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値で構成した第1の認証情報を生成し、前記第1の認証情報を前記認証代行クライアントを介して前記認証対象機器へ送信し、
    前記認証対象機器は、前記識別子と共通鍵とを引数とした疑似ランダム関数を用いて生成された値と、前記第1の認証情報とを比較することによって前記第1の認証情報の正当性を確認し、前記第1の認証情報の正当性を確認した後に、前記認証対象機器の識別子と共通鍵と前記第1の認証情報の確認結果とを引数とした疑似ランダム関数を用いて生成された値で構成した第2の認証情報を生成し、前記第2の認証情報を前記認証代行クライアントへ送信する、認証システム。
JP2017100845A 2017-05-22 2017-05-22 認証方法 Active JP6869104B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017100845A JP6869104B2 (ja) 2017-05-22 2017-05-22 認証方法
US15/944,022 US20180337923A1 (en) 2017-05-22 2018-04-03 Authentication method and authentication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017100845A JP6869104B2 (ja) 2017-05-22 2017-05-22 認証方法

Publications (2)

Publication Number Publication Date
JP2018196085A true JP2018196085A (ja) 2018-12-06
JP6869104B2 JP6869104B2 (ja) 2021-05-12

Family

ID=64272799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017100845A Active JP6869104B2 (ja) 2017-05-22 2017-05-22 認証方法

Country Status (2)

Country Link
US (1) US20180337923A1 (ja)
JP (1) JP6869104B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488568B (zh) * 2020-04-13 2023-04-11 抖音视界有限公司 客户端方法、装置、设备和存储介质
CN113434850A (zh) * 2021-07-22 2021-09-24 重庆金康赛力斯新能源汽车设计院有限公司 一种防盗认证的方法和系统
US11973755B1 (en) * 2021-07-30 2024-04-30 Wells Fargo Bank, N.A. Apparatuses, methods, and computer program products for offline authentication

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH037443A (ja) * 1989-02-28 1991-01-14 Mitsubishi Electric Corp 認証装置
JP2004282295A (ja) * 2003-03-14 2004-10-07 Sangaku Renkei Kiko Kyushu:Kk ワンタイムidの生成方法、認証方法、認証システム、サーバ、クライアントおよびプログラム
JP2007129783A (ja) * 2001-10-15 2007-05-24 Mitsubishi Electric Corp 暗号通信装置
JP2009116677A (ja) * 2007-11-07 2009-05-28 Mitsubishi Electric Corp ネットワーク認証システム及びicチップ及びアクセス装置及びネットワーク認証方法
JP2014222828A (ja) * 2013-05-14 2014-11-27 三菱電機株式会社 認証システム及び認証方法
JP2016139883A (ja) * 2015-01-27 2016-08-04 ルネサスエレクトロニクス株式会社 中継装置、端末装置および通信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH037443A (ja) * 1989-02-28 1991-01-14 Mitsubishi Electric Corp 認証装置
JP2007129783A (ja) * 2001-10-15 2007-05-24 Mitsubishi Electric Corp 暗号通信装置
JP2004282295A (ja) * 2003-03-14 2004-10-07 Sangaku Renkei Kiko Kyushu:Kk ワンタイムidの生成方法、認証方法、認証システム、サーバ、クライアントおよびプログラム
JP2009116677A (ja) * 2007-11-07 2009-05-28 Mitsubishi Electric Corp ネットワーク認証システム及びicチップ及びアクセス装置及びネットワーク認証方法
JP2014222828A (ja) * 2013-05-14 2014-11-27 三菱電機株式会社 認証システム及び認証方法
JP2016139883A (ja) * 2015-01-27 2016-08-04 ルネサスエレクトロニクス株式会社 中継装置、端末装置および通信方法

Also Published As

Publication number Publication date
US20180337923A1 (en) 2018-11-22
JP6869104B2 (ja) 2021-05-12

Similar Documents

Publication Publication Date Title
Kumari et al. User authentication schemes for wireless sensor networks: A review
KR101372719B1 (ko) 사물지능통신에서 puf에 기반한 장치간 보안 인증 장치 및 방법
EP2538608B1 (en) Semiconductor device and method of writing data to semiconductor device
KR102445518B1 (ko) 장치 키 보호
KR20070084326A (ko) 이동 단말기에서의 구성 파라미터 갱신
KR101744747B1 (ko) 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
CN105474167A (zh) 将基于电路延迟的物理不可克隆功能(puf)应用于基于存储器的puf的掩蔽操作以抵抗入侵及克隆攻击
Choi et al. A study on sensor nodes attestation protocol in a Wireless Sensor Network
US20150143545A1 (en) Function for the Challenge Derivation for Protecting Components in a Challenge-Response Authentication Protocol
US10211979B2 (en) Systems and methods securing an autonomous device
CN101241528A (zh) 终端接入可信pda的方法和接入系统
JP2009175923A (ja) プラットフォーム完全性検証システムおよび方法
JP6869104B2 (ja) 認証方法
CN106973046B (zh) 网关间数据传输方法、源网关及目的网关
CN107026729B (zh) 用于传输软件的方法和装置
US9177123B1 (en) Detecting illegitimate code generators
JP4818824B2 (ja) プログラム管理システムおよび端末装置
CN109302442B (zh) 一种数据存储证明方法及相关设备
KR102466866B1 (ko) 데이터의 검증 방법
US7788483B1 (en) Method and apparatus of identifying and enabling of functions of a trusted platform module device
CN107979579B (zh) 一种安全认证方法和安全认证设备
KR20180052479A (ko) 서명 체인을 이용한 유무선 공유기의 펌웨어 업데이트 시스템, 유무선 공유기 및 유무선 공유기의 펌웨어 업데이트 방법
CN113572717B (zh) 通信连接的建立方法、洗护设备及服务器
CN114329522A (zh) 一种私钥保护方法、装置、系统及存储介质
KR102073363B1 (ko) 산업 제어 시스템의 보안을 강화하는 보안 통신 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210413

R150 Certificate of patent or registration of utility model

Ref document number: 6869104

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150