(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023160609
(43)【公開日】2023-11-02
(54)【発明の名称】分析サービス提供方法、分析サービス提供装置、分析サービス提供システム、及びプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20231026BHJP
G01N 35/00 20060101ALI20231026BHJP
G01N 35/02 20060101ALI20231026BHJP
H04L 9/08 20060101ALI20231026BHJP
H04L 9/10 20060101ALI20231026BHJP
【FI】
H04L9/32 200B
G01N35/00 Z
G01N35/02 C
H04L9/08 F
H04L9/10 A
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2022071073
(22)【出願日】2022-04-22
(71)【出願人】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】大濱 吉紘
(72)【発明者】
【氏名】藤井 亮暢
(72)【発明者】
【氏名】奥村 文洋
【テーマコード(参考)】
2G058
【Fターム(参考)】
2G058GC02
2G058GC05
2G058HA00
(57)【要約】
【課題】試料を容器に封入して受け渡しする分析サービスにおいて、容器に対する試料の入れ間違えを低減することができる、分析サービス提供方法、分析サービス提供装置、分析サービス提供システム、及びプログラムを提供する。
【解決手段】試料を容器に封入して受け渡しする分析サービス提供方法であって、秘密鍵及び公開鍵を容器に関連付けるステップと、依頼者から分析依頼を受け付けるステップと、分析依頼に応じて容器に封入する試料に関する情報を、容器に関連する秘密鍵で電子署名して依頼者に送信するステップと、容器に関連する公開鍵又はその格納先が付加された容器を、依頼者に配送するように容器の保管者に依頼するステップと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
試料を容器に封入して受け渡しする分析サービス提供方法であって、
秘密鍵及び公開鍵を前記容器に関連付けるステップと、
依頼者から分析依頼を受け付けるステップと、
前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信するステップと、
前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼するステップと、
を含む分析サービス提供方法。
【請求項2】
前記容器に関連する前記公開鍵は、前記容器に取り外し不能な状態で付加される、請求項1に記載の分析サービス提供方法。
【請求項3】
前記容器に関連する前記公開鍵は、光学的又は電磁気的に読み取り可能な識別標識として付加されている、請求項1に記載の分析サービス提供方法。
【請求項4】
前記識別標識は、一次元コード又は二次元コードである、請求項3に記載の分析サービス提供方法。
【請求項5】
前記容器は、前記情報とは別に配送される、請求項1に記載の分析サービス提供方法。
【請求項6】
前記情報は、前記依頼者が保持可能な共通鍵で暗号化されている、請求項1に記載の分析サービス提供方法。
【請求項7】
前記共通鍵は、トークンを用いたワンタイムパスワードから生成されている、請求項6に記載の分析サービス提供方法。
【請求項8】
前記共通鍵は、ディフィー・ヘルマン(DH)鍵交換方式、又は楕円曲線ディフィー・ヘルマン(ECDH)鍵交換方式を用いて生成されている、請求項6に記載の分析サービス提供方法。
【請求項9】
前記情報とは異なる他の情報を送信又は受信するステップをさらに含み、
通信用の秘密鍵及び公開鍵を生成し、前記通信用の秘密鍵を用いて前記他の情報の電子署名を生成し、前記通信用の公開鍵で前記他の情報の電子署名を検証可能とする、請求項1に記載の分析サービス提供方法。
【請求項10】
前記依頼者との間で鍵交換方式により共通鍵を生成した場合は、
前記通信用の秘密鍵及び公開鍵として、前記共通鍵の生成に使用した一時秘密鍵及び一時公開鍵を用いる、請求項9に記載の分析サービス提供方法。
【請求項11】
前記送信及び受信は、通信手段を介して行われる、請求項1に記載の分析サービス提供方法。
【請求項12】
外部機器に前記試料が封入された前記容器を処理させるステップをさらに含み、
前記外部機器は、前記依頼者、前記試料の分析を行う分析者、又は第三者に対するアクセス認証を実行する、請求項1に記載の分析サービス提供方法。
【請求項13】
前記アクセス認証に、前記容器に関連する前記秘密鍵及び公開鍵が使用される、請求項12に記載の分析サービス提供方法。
【請求項14】
前記アクセス認証に、鍵交換方式による共通鍵の生成に使用した一時秘密鍵及び一時公開鍵が使用される、請求項12に記載の分析サービス提供方法。
【請求項15】
前記アクセス認証に、前記アクセス認証のために生成した認証用の秘密鍵及び公開鍵が使用される、請求項12に記載の分析サービス提供方法。
【請求項16】
前記容器に関連する前記公開鍵は、閲覧可能とされている、請求項1に記載の分析サービス提供方法。
【請求項17】
前記公開鍵の格納先から前記公開鍵を取得して提供するステップをさらに含む、
請求項1に記載の分析サービス提供方法。
【請求項18】
試料を容器に封入して受け渡しする分析サービス提供装置であって、
秘密鍵及び公開鍵を前記容器に関連付ける容器登録部と、
依頼者から分析依頼を受け付ける依頼受付部と、
前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信する署名生成部と、
前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼する配送依頼部と、
を備える分析サービス提供装置。
【請求項19】
請求項18に記載の分析サービス提供装置と、
電子署名を検証する署名検証部を備える依頼者端末と、
を備え、
前記署名検証部は、前記容器から読み取られた前記容器に関連する前記公開鍵と前記情報とを用いて、受信した前記電子署名を検証する、
分析サービス提供システム。
【請求項20】
前記依頼者端末は、ユーザインタフェースを提供するインタフェース提供部をさらに備え、
前記署名検証部により検証された前記情報を前記ユーザインタフェースに表示する、
請求項19に記載の分析サービス提供システム。
【請求項21】
前記依頼者端末は、情報の暗号化又は復号を行う暗号化・復号部をさらに備え、
前記署名検証部により検証された前記情報が暗号化されている場合には、前記暗号化・復号部で復号した前記情報を前記ユーザインタフェースに表示する、
請求項20に記載の分析サービス提供システム。
【請求項22】
試料を容器に封入して受け渡しする分析サービス用のプログラムであって、
コンピュータにより、
秘密鍵及び公開鍵を前記容器に関連付けるステップと、
依頼者から分析依頼を受け付けるステップと、
前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信するステップと、
前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分析サービス提供方法、分析サービス提供装置、分析サービス提供システム、及びプログラムに関する。
【背景技術】
【0002】
従来、依頼者から試料を分析者に送付して、分析者が分析結果を依頼者に回答する委託型の分析サービスが提供されている。例えば、特許文献1には、検査分析を希望するユーザより検査分析試料を受け取り、ユーザ試料の検査分析の結果である検査分析データをユーザへ提供する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の分析サービスでも、依頼者に対するユーザ認証、分析結果の暗号化、依頼者と分析請負者との間での秘密保持契約など、分析情報の漏洩を防止するためのセキュリティ対策は講じられている。しかしながら、分析者に正しい試料が届けられる必要があるにも拘らず、特許文献1に記載の分析サービスでは、試料の取り違えを防止するための対策は講じられていない。
【0005】
委託型の分析サービスでは、試料は、その試料のために用意された専用の搬送容器に封入されて分析者に送付される。試料が搬送容器に封入された後は、搬送容器に付加された識別情報により試料が識別されることになる。したがって、依頼者が搬送容器に誤って別の試料を格納して送付すると、そのまま分析が行われてしまい、依頼者は意図した分析結果を得ることができないという問題がある。
【0006】
本発明は上記課題に鑑みなされたものであり、本発明の目的は、試料を容器に封入して受け渡しする分析サービスにおいて、容器に対する試料の入れ間違えを低減することができる、分析サービス提供方法、分析サービス提供装置、分析サービス提供システム、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様に係る分析サービス提供方法は、試料を容器に封入して受け渡しする分析サービス提供方法であって、秘密鍵及び公開鍵を前記容器に関連付けるステップと、
依頼者から分析依頼を受け付けるステップと、前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信するステップと、前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼するステップと、を含む。
【0008】
本開示の一態様に係る分析サービス提供装置は、試料を容器に封入して受け渡しする分析サービス提供装置であって、秘密鍵及び公開鍵を前記容器に関連付ける容器登録部と、依頼者から分析依頼を受け付ける依頼受付部と、前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信する署名生成部と、前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼する配送依頼部と、を備える。
【0009】
本開示の一態様に係る分析サービス提供システムは、本開示の分析サービス提供装置と、電子署名を検証する署名検証部を備える依頼者端末と、を備え、前記署名検証部は、前記容器から読み取られた前記容器に関連する前記公開鍵と前記情報とを用いて、受信した前記電子署名を検証する。
【0010】
本開示の一態様に係るプログラムは、試料を容器に封入して受け渡しする分析サービス用のプログラムであって、コンピュータにより、秘密鍵及び公開鍵を前記容器に関連付けるステップと、依頼者から分析依頼を受け付けるステップと、前記分析依頼に応じて前記容器に封入する試料に関する情報を、前記容器に関連する前記秘密鍵で電子署名して前記依頼者に送信するステップと、前記容器に関連する前記公開鍵又はその格納先が付加された前記容器を、前記依頼者に配送するように前記容器の保管者に依頼するステップと、を実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、試料を容器に封入して受け渡しする分析サービスにおいて、容器に対する試料の入れ間違えを低減することができる。
【図面の簡単な説明】
【0012】
【
図2】本発明の概要を説明するための模式図である。
【
図3】本発明の第1の実施形態に係る分析サービス提供システムの構成の一例を示す模式図である。
【
図4】サーバの電気的構成の一例を示すブロック図である。
【
図5】端末装置の電気的構成の一例を示すブロック図である。
【
図6】本発明の第1の実施形態に係る分析サービス提供システムの処理の流れの一例を示すシーケンス図である。
【
図7】本発明の分析サービス提供システムの主要部の機能ブロック図である。
【
図8】依頼者端末に表示されるUI画面の一例を示す画面遷移図である。
【
図9】分析者端末に表示されるUI画面の一例を示す画面遷移図である。
【
図10】容器登録工程の処理の一例を示す模式図である。
【
図11】サーバによる「容器登録処理」の流れの一例を示すフローチャートである。
【
図12】容器DBに格納されるデータ構造の一例を示す図表である。
【
図13】分析依頼/受諾工程の処理の一例を示す模式図である。
【
図14】依頼者端末による「依頼者メイン処理」の流れの一例を示すフローチャートである。
【
図15】依頼者端末による「新規登録処理」の流れの一例を示すフローチャートである。
【
図16】依頼者端末による「OTP入力処理」の流れの一例を示すフローチャートである。
【
図17】サーバによる「分析依頼受付処理」の流れの一例を示すフローチャートである。
【
図18】分析者端末による「分析者メイン処理」の流れの一例を示すフローチャートである。
【
図19】分析者端末による「分析依頼処理」の流れの一例を示すフローチャートである。
【
図20】封入指示作成工程の処理の一例を示す模式図である。
【
図21】分析者端末による「封入指示入力処理」の流れの一例を示すフローチャートである。
【
図22】サーバによる「署名生成処理」の流れの一例を示すフローチャートである。
【
図23】試料送付工程の処理の一例を示す模式図である。
【
図24】依頼者端末による「依頼済み案件処理」の流れの一例を示すフローチャートである。
【
図25】依頼者端末による「容器識別子読み取り処理」の流れの一例を示すフローチャートである。
【
図26】依頼者端末による「封入指示表示処理」の流れの一例を示すフローチャートである。
【
図27】依頼者端末による「試料情報入力処理」の流れの一例を示すフローチャートである。
【
図28】分析報告工程の処理の一例を示す模式図である。
【
図29】分析者端末による「分析報告処理」の流れの一例を示すフローチャートである。
【
図30】サーバによる「分析終了処理」の流れの一例を示すフローチャートである。
【
図31】本発明の第2の実施形態に係る分析サービス提供システムの処理の流れの一例を示すシーケンス図である。
【
図32】本発明の第3の実施形態に係る分析サービス提供システムの追加構成の一例を示す模式図である。
【
図33】(A)は「1対1」の分析依頼に対応する機能配置を示す模式図であり、(B)は「多対多」の分析依頼に対応する機能配置を示す模式図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【0014】
[第1の実施形態]
<発明の概要>
まず、
図1を参照して、容器について説明する。
試料を封入して搬送する容器30が登録されると、容器30について秘密鍵と公開鍵とが生成され、公開鍵を表す識別標識が生成される。ここでは識別標識としては、例えばQRコード(登録商標)のような二次元コードやバーコードのような一次元コードが挙げられる。
図1に示すように、公開鍵を表す識別標識は、容器に直接刻印する、容器に直接印刷する、容器に埋め込む等により、容器30に対し物理的に取り外し不能な形態で付加されている。これらの識別標識は、光学的又は電磁気的に読み取り可能である。なお、以下では、識別標識として二次元コードを使用し、二次元コードを容器30に刻印する場合について説明する。
【0015】
次に、
図2を参照して本発明の概要について説明する。
図2に示すように、依頼者10は分析依頼を行い、分析者14は分析依頼を受諾する。ここでは、依頼者10は2つの試料A、Bについて分析依頼を行い、分析者14は試料A、Bの分析依頼を受諾するものとする。分析者14は、容器30A及び容器30Bを用意し、試料Aに容器30Aを割り当て、試料Bに容器30Bを割り当てる。容器30A及び容器30Bは、依頼者10に配送される。
【0016】
分析者14は、容器30Aに封入する試料Aに関する情報を含む封入指示を作成して、依頼者10と分析者14とが保持する共通鍵で暗号化する。封入指示には、試料の名称の外に、封入する試料片の寸法、加工・封入時の留意事項、返送先などが含まれていてもよい。封入指示は、文書には限られず、写真や映像としてもよい。分析者14は、暗号化した封入指示について容器30Aの秘密鍵で電子署名を生成する。なお、後述するサーバ18が介在する場合は、厳密にはサーバ18が電子署名を生成する。同様に、分析者14は、試料Bについても封入指示を作成して暗号化し、暗号化した封入指示について容器30Bの秘密鍵で電子署名を生成する。封入指示の暗号文とその電子署名は、容器30とは別に依頼者10に送信される。
【0017】
依頼者10には、容器30A、容器30B、試料Aの封入指示の暗号文、試料Aの封入指示の暗号文署名(即ち、電子署名)、試料Bの封入指示の暗号文、及び試料Bの封入指示の暗号文署名(即ち、電子署名)が届いている。依頼者10は、容器30Aの公開鍵を読み取り、容器30Aの公開鍵で封入指示の暗号文の真正性を検証する。容器30Aの公開鍵で真正性を検証できるのは、容器30Aの秘密鍵で電子署名された試料Aの封入指示の暗号文だけである。依頼者10は、真正性が検証できた方、即ち、試料Aの封入指示の暗号文を共通鍵で復号し、封入指示に従って容器30Aに試料Aを封入する。
【0018】
同様にして、依頼者10は、容器30Bの公開鍵を読み取り、容器30Bの公開鍵で封入指示の暗号文の真正性を検証する。依頼者10は、真正性を検証できた方、即ち、試料Bの封入指示の暗号文を共通鍵で復号し、封入指示に従って容器30Bに試料Bを封入する。
【0019】
この例で示すように、本開示の分析サービス提供方法は、容器30毎に秘密鍵及び公開鍵を生成し、これを電子割符として用いて、秘密鍵で電子署名された封入指示の真正性を、容器30に物理的に取り外し不能な形態で刻印された公開鍵によってのみ検証できるようにしたものである。これにより、分析者14が容器30に紐づけた封入指示を、安全、確実に依頼者10に伝達することができる。したがって、本開示の分析サービス提供方法は、この構成により、以下の1)~3)の効果を得ることができる。
【0020】
1)容器30に刻印された公開鍵で検証可能な封入指示のみを依頼者10に提示でき、分析者14の指示を依頼者10が取り違えて、試料が意図しない容器30に封入されるという封入ミスを低減することができる。
【0021】
2)誤った容器30が依頼者10に配送されても、検証可能な封入指示がなく、誤った容器30への試料が封入されるという封入ミスを低減することができる。
【0022】
3)封入指示は暗号化されているので第三者が盗聴することは困難であるし、悪意のある第三者により容器のすり替えや返送先の改ざんが行われても、検証により検知することができる。
【0023】
<分析サービス提供システムの構成>
次に、
図3~
図5を参照して分析サービス提供システムの構成について説明する。
図3に示すように、分析サービス提供システム1は、依頼者10が使用する依頼者端末12、分析者14が使用する分析者端末16、分析サービス提供装置の一例であるサーバ18、及びストックヤード20で使用される端末装置(図示せず)を備えている。サーバ18は、例えばクラウド上に配置されている。
【0024】
以下では、
図3内の点線で囲まれた構成を中心に説明する。分析サービス提供システム1の主要構成は、依頼者10が使用する依頼者端末12とサーバ18である。分析者端末16の機能は、サーバ18が担うこともできる。
【0025】
分析サービス提供システム1は、任意選択で、分析センタ22のサーバ(図示せず)内に配置される各種外部機器24をさらに備えていてもよい。この例では、外部機器24として、分析装置24A、保管庫24B、及び搬送台車24Cが例示されている。サーバ18は、分析者14からの指示に応じて、これらの外部機器24に、試料が封入された容器30に対する各種の処理(例えば、分析、保管、搬送)を行わせる。
【0026】
依頼者端末12、分析者端末16、ストックヤード20の端末装置、及び分析センタ22のサーバの各々は、インターネット等の有線・無線の通信回線を介してサーバ18と通信可能に接続されている。また、分析装置24A、保管庫24B、及び搬送台車24Cは、LAN等の有線・無線の通信回線を介して分析センタ22のサーバと通信可能に接続されている。また、依頼者10、分析者14、ストックヤード20、及び分析センタ22の各拠点間では、車両のアイコンで示すように容器30の配送が可能とされている。
【0027】
ストックヤード20の端末装置は、容器30の登録をサーバ18に要求し、サーバ18から容器30の公開鍵の情報を取得する。ストックヤード20の作業者は、容器30の公開鍵の情報に基づいて、公開鍵を表す二次元コードを容器30に刻印する。また、ストックヤード20の端末装置は、分析者14から容器30の発送指示を受け付け、作業者に容器30の発送を促す。
【0028】
サーバ18は、ストックヤード20の端末装置からの要求に応じて、容器30を登録し、容器30について秘密鍵と公開鍵とを生成して、容器30を識別する容器ID、容器30の秘密鍵と公開鍵、及び容器30の諸元(幅、高さ、深さ等)を互いに関連付けて、後述する容器データベース48Cに格納し、これらの情報を管理している。サーバ18は、依頼者10や分析者14からの照会に応じて容器30の公開鍵を開示する。サーバ18は、その他の各種情報をデータベース(以下、「DB」と略称する。)で管理している。サーバ18は、封入指示の暗号文に電子署名を行う。
【0029】
依頼者端末12は、依頼者10に各種情報の入出力インタフェースを提供する。依頼者端末12は、一時共通鍵を生成し、一時共通鍵で各種情報を暗号化又は復号する。依頼者端末12は、後述するカメラ62で読み取られた容器30の公開鍵で、封入指示の暗号文の真正性を検証する。
【0030】
分析者端末16は、分析者14に各種情報の入出力インタフェースを提供する。分析者端末16は、一時共通鍵を生成し、一時共通鍵で各種情報を暗号化又は復号する。
【0031】
外部機器24は、分析者14による遠隔分析を支援するための機器である。分析が分析センタ22で行われる場合、サーバ18は、分析者14からの指示に応じて外部機器24に容器30を処理させる。
【0032】
分析が分析センタ22で行われる場合、封入指示には、返送先として保管庫24Bの所在地が記載されることになる。遠隔分析の作業は、容器30の在庫と保管庫24Bの空き状況とにより律速される。このため、分析者14は、封入指示の作成時に、容器30の在庫だけでなく、保管庫24Bの空き状況も確認する。
【0033】
保管庫24B内の保管場所にはID(以下では、「保管場所ID」という。)が付与されている。サーバ18は、容器30の保管場所IDを、容器30のIDに関連付けて記憶している。保管庫24Bは、単なる倉庫ではなく、試料を封入した容器30の受け入れ、保管等を行う機器としても動作する。サーバ18は、保管庫24Bに指示して、試料を封入した容器30を、保管場所IDで特定された保管場所に格納させる。
【0034】
遠隔分析の際には、サーバ18は、分析者14からの指示に応じて、保管庫24Bから試料を封入した容器30を取り出し、搬送台車24Cにより分析装置24Aまで搬送させ、試料を容器30から取り出させて、分析装置24Aに試料をセットさせる。また、サーバ18は、分析者14からの指示に応じて、分析装置24Aにセットされた試料の分析を行わせる。
【0035】
(サーバの電気的構成)
図4に示すように、サーバ18は、CPU(Central Processing Unit)40、メモリ42、記憶部44、通信部46、及び各種DB48を備えている。CPU40、メモリ42、記憶部44、通信部46、及び各種DB48の各部は、バス49を介して相互に通信可能に接続されている。
【0036】
CPU40は、中央演算処理ユニットである。メモリ42は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶部44は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0037】
CPU40は、記憶部44からプログラムを読み出し、メモリ42を作業領域としてプログラムを実行する。また、CPU40は、記憶部44に記憶されているプログラムに従って、上記各部を制御し、各種の演算処理を行う。
【0038】
通信部46は、他の装置と通信するためのインタフェースである。各種DB48には、
依頼者10のアカウント情報を管理するアカウントDB48A、分析依頼情報を管理する分析依頼DB48B、及び容器情報を管理する容器DB48Cが含まれる。
【0039】
(端末装置の電気的構成)
図5に示すように、端末装置としては、依頼者端末12と分析者端末16とが設けられている。両者は同じ構成を備えているため、ここでは依頼者端末12の構成について説明する。依頼者端末12は、CPU50、メモリ52、記憶部54、操作入力部56、表示部58、通信部60、及びカメラ62を備えている。CPU50、メモリ52、記憶部54、操作入力部56、表示部58、通信部60、及びカメラ62の各部は、バス64を介して相互に通信可能に接続されている。
【0040】
CPU50、メモリ52、記憶部54、及び通信部60については、サーバ18のCPU40、メモリ42、記憶部44、通信部46と同様である。操作入力部56、例えば、キーボードやマウス等の、各種の情報の入力を行うための装置である。表示部58は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。操作入力部56及び表示部58として、タッチパネルディスプレイを備えていてもよい。カメラ62は、画像を撮像するための装置であり、ここでは二次元コードを読み取るために設けられている。CPU50は、記憶部54に記憶されているプログラムに従って、上記各部を制御し、各種の演算処理を行う。また、記憶部54には、Webブラウザ等のアプリケーションプログラムも記憶されている。
【0041】
なお、
図5では、分析者端末16の各部の符号を、括弧内に併記した。併記した通り、分析者端末16は、CPU51、メモリ53、記憶部55、操作入力部57、表示部59、通信部61、及びカメラ63を備えている。
【0042】
<分析サービス提供システムの処理の全体的な流れ>
次に、分析サービス提供システムの処理の全体的な流れを説明する。
分析サービス提供システムの処理は、大きく以下の6つの工程に分けることができる。
(1)サーバ18が容器30を登録する容器登録工程
(2)依頼者10が分析依頼を行う分析依頼工程
(3)分析者14が分析依頼を受諾する分析依頼受諾工程
(4)分析者14が封入指示を作成する封入指示作成工程
(5)依頼者10が試料を容器30に封入して分析者14に送付する試料送付工程
(6)分析者14が分析報告を依頼者10に納品する分析報告工程
【0043】
まず、
図6のシーケンス図を参照して分析サービス提供システムの処理の流れを概略的に説明する。なお、ここでは、処理の主体を概念的に表し、依頼者端末12を「依頼者10」、分析者端末16を「分析者14」、ストックヤード20の端末装置を「ストックヤード20」と称する。
【0044】
(1)の容器登録工程では、ストックヤード20がサーバ18に容器登録を要求する(S2)。サーバ18は、ストックヤード20からの要求に応じて容器30を登録し、容器30の秘密鍵・公開鍵(以下では、「容器秘密鍵」、「容器公開鍵」という。)を生成して、各鍵の情報を容器DB48Cに格納する(S4)。サーバ18は、容器公開鍵をストックヤード20に提供する(S6)。ストックヤード20は、容器公開鍵を表す二次元コードを生成し、容器30に刻印する(S8)。
【0045】
(2)の分析依頼工程では、依頼者10は、サーバ18に依頼開始を要求する(S10)。サーバ18は、分析依頼の受け付けを開始し、依頼者10からの要求に応答して、一時共通鍵を生成するための一時共通鍵パラメータを依頼者10に送信する(S12)。依頼者10は、一時共通鍵を生成し、分析依頼を作成して一時共通鍵で暗号化する(S14)。依頼者10は、分析依頼の暗号文をサーバ18に送信する(S16)。なお、依頼者10は、試料に関する試料情報を一時共通鍵で暗号化して、分析依頼に含めてもよい。
【0046】
(3)分析依頼受諾工程では、分析者14は、サーバ18に分析依頼のクエリを要求する(S18)。サーバ18は、分析者14からの要求に応答して、一時共通鍵パラメータを分析者14に送信する(S20)。分析者14は、一時共通鍵を生成する(S22)。分析者14は、サーバ18から分析依頼の暗号文を取得する(S24)。分析者14は、分析依頼の暗号文を一時共通鍵で復号して閲覧する(S26)。
【0047】
(4)の封入指示作成工程では、分析者14は、封入指示を作成して一時共通鍵で暗号化する(S26)。分析者14は、容器30をサーバ18に発注する(S28)。サーバ18は、ストックヤード20に、分析者14が選定した容器30の発送を指示する(S30)。分析者14は、封入指示の暗号文をサーバ18に送信する(S32)。サーバ18は、共有情報(封入指示の暗号文及び容器公開鍵)のハッシュ値を算出して、容器秘密鍵で電子署名を生成する(S34)。サーバ18は、封入指示の暗号文と電子署名とを依頼者10に送信する(S36)。
【0048】
(5)の試料送付工程では、ストックヤード20から依頼者10に容器30が送付される(S38)。依頼者10は、容器30から容器公開鍵を読み取って、受信した封入指示の暗号文と組み合わせて共有情報を構成してハッシュ値を算出し、ハッシュ値と電子署名とを容器公開鍵で検証する(S40)。依頼者10は、一時共通鍵で封入指示の暗号文を復号し、封入指示に従って容器30に試料を封入する(S42)。依頼者10は、試料を封入した容器30を、分析者14に送付する(S44)。なお、依頼者10は、試料に関する試料情報を一時共通鍵で暗号化して、分析者14に送信してもよい。
【0049】
(6)の分析報告工程では、分析者14は、試料を分析し、分析報告を作成して、一時共通鍵で暗号化する(S46)。分析者14は、分析報告の暗号文を依頼者10に納品する(S48)。依頼者10は、分析報告の暗号文を一時共通鍵で復号して閲覧する(S50)。最後に、分析者14は、容器30をストックヤード20に返却する(S52)。
【0050】
図7は、
図6に示すシーケンスを実行する分析サービス提供システム1を機能ブロックで表した図である。
図7に示すように、分析サービス提供システム1は、通信回線Nにより互いに通信可能とされた、依頼者端末12、分析者端末14及びサーバ18を含んでいる。サーバ18は、秘密鍵及び公開鍵を容器30に関連付ける容器登録部300と、依頼者10から分析依頼を受け付ける依頼受付部302と、分析依頼に応じて容器30に封入する試料に関する情報を容器30に関連する秘密鍵で電子署名して依頼者10に送信する署名生成部304と、容器30に関連する公開鍵(又はその格納先)が付加された容器30を、依頼者10に配送するように容器30の保管者に依頼する配送依頼部306と、を備えている。サーバ18は、Webサーバとしての機能をも果たすものである。
【0051】
依頼者端末12は、インタフェース提供部310、暗号化・復号部312、及び署名検証部314を備えている。分析者端末16は、インタフェース提供部320及び暗号化・復号部322を備えている。インタフェース提供部310及び320は、ユーザインタフェースを提供する。暗号化・復号部312及び322は、情報の暗号化又は復号を行う。署名検証部314は、公開鍵と署名対象の情報とに基づいて電子署名を検証する。インタフェース提供部310及び320の各々は、Webブラウザとしての機能を果たすものである。
【0052】
<UI画面の遷移>
図8に示すように、依頼者端末12の表示部58に表示されるUI画面には、依頼者メイン画面100、新規依頼画面110、OTP入力画面120、依頼済み案件画面130、容器識別子読み取り画面140、封入指示表示画面150、及び試料情報入力画面160を備えている。これらの画面は、矢印で示したように、特定の選択が成されることにより次の画面に遷移する。各画面の詳細については後述する。
【0053】
図9に示すように、分析者端末16の表示部59に表示されるユーザインタフェース(以下、「UI」と略称する。)画面には、分析者メイン画面170、分析依頼画面180、封入指示入力画面190、及び分析報告入力画面200を備えている。これらの画面は、矢印で示したように、特定の選択が成されることにより次の画面に遷移する。各画面の詳細については後述する。
【0054】
<分析サービス提供システムの各処理工程>
以下では、
図8及び
図9に示すUI画面も参照しながら、(1)容器登録工程、(2)分析依頼工程、(3)分析依頼受諾工程、(4)封入指示作成工程、(5)試料送付工程、及び(6)分析報告工程の各々について詳細に説明する。
【0055】
サーバ18が提供する分析サービスは、HTTPSプロトコルで閲覧可能なWebサイトを窓口としており、サーバ18はWebサーバとして機能する。依頼者端末12及び分析者端末16の各々は、Webブラウザを介して各種UI画面を表示し、各種UI画面への操作を受け付ける。即ち、依頼者端末12のCPU50とサーバ18のCPU40とが協働して、依頼者10にユーザインタフェースを提供する。同様に、分析者端末16のCPU51とサーバ18のCPU40とが協働して、分析者14にユーザインタフェースを提供する。
【0056】
(容器登録工程)
次に、容器登録工程について具体的に説明する。
図10に示すように、ストックヤード20からサーバ18に容器30の登録が要求されると、サーバ18で容器30の秘密鍵・公開鍵が生成され、容器公開鍵のハッシュ値を含むURLがストックヤード20に通知される。ストックヤード20は、容器公開鍵のハッシュ値を含むURLを二次元コードに変換し、レーザ加工により容器30に二次元コードを刻印する。
【0057】
-サーバの処理-
ここで、
図11に示すフローチャートを参照してサーバ18のCPU40により実行される「容器登録処理」について詳しく説明する。「容器登録処理」は、容器30の登録が要求されると開始される。まず、ステップS100で、サーバ18のCPU40は、容器秘密鍵と容器公開鍵のペアを生成する。容器秘密鍵と容器公開鍵は、例えばエドワーズ曲線デジタル署名アルゴリズム(EdDSA:Edwards-curve Digital Signature Algorithm)により生成することができる。
【0058】
次に、ステップS102で、CPU40は、容器秘密鍵及び容器公開鍵を、容器DB48Cに格納する。容器秘密鍵及び容器公開鍵の各々を、例えばBASE64方式で文字列化し、例えばSHA-256(Secure Hash Algorithm 256-bit)等のハッシュ関数を用いて、容器公開鍵の文字列からハッシュ値を算出する。この容器公開鍵のハッシュ値が、容器IDとされる。
【0059】
容器DB48Cは、
図12の表1に示すように、容器公開鍵のハッシュ値(即ち、容器ID)をキーとするキーバリュー方式により、容器公開鍵の文字列、容器秘密鍵の文字列、及び容器の諸元の各値を格納している。或いは、表2に示すように、任意の短縮名をキーとして、容器公開鍵の文字列、容器秘密鍵の文字列、容器公開鍵のハッシュ値(footprint)、及び容器の諸元の各値をバリューとしてもよい。
【0060】
例えば、表1では、キー(key)である容器公開鍵のハッシュ値("12c70824abb1a7e441e04257…")には、容器公開鍵の文字列(“Pubkey”: ”MCowBQYDK2VwAyEA2+h9+JCt…”)、容器秘密鍵の文字列(“Privkey”:“MC4CAQAwBQYDK2VwBCIEIK1k…”)、容器の諸元(“Width”:100,“Height”:100,“Depth”:100)の各々がバリュー(value)として関連付けられている。
【0061】
次に、ステップS104で、CPU40は、例えばハッシュ値を含むURL(または、その短縮URL)を、容器公開鍵を閲覧可能なURLとしてストックヤード20に通知して、「容器登録処理」のルーチンを終了する。
【0062】
なお、サーバ18がWebサーバとして機能し、依頼者10及び分析者14も容器30に刻印された二次元コードを読み取ることで、容器公開鍵を閲覧できるようになる。この通り、容器30に関連する公開鍵は、第三者にも公開されているので、公開鍵が分析者14やその所属組織のものであることを標示できる。
【0063】
(分析依頼工程)
次に、分析依頼工程について具体的に説明する。
図13に示すように、依頼者端末12には、時間ベースのワンタイムパスワード(Time-based One-Time Password、以下では「OTP」と略称する。)を生成するトークン生成器11が予め配布されている。トークン生成器11には、トークン生成器11に固有の固有IDとソルト(salt)文字列とが埋め込まれている。トークン生成器11の内部タイマーの時刻はサーバ18のタイマーの時刻と同期されている。トークン生成器11は、時刻、固有ID、ソルトから、OTPを生成する。なお、パスワードは「PW」と略称する場合がある。
【0064】
また、ユーザである依頼者10は、分析サービスを利用するためのアカウントを有しており、依頼者10にはユーザIDが予め発行されている。サーバ18は、ユーザID等のアカウント情報をアカウントDB48Aで管理している。アカウントDB48Aにより、依頼者10に配布されたトークン生成器11の固有IDも、ユーザIDに紐づけられている。
【0065】
-依頼者端末の処理-
ここで、
図14~
図16を参照して依頼者端末12側での処理をより詳細に説明する。これらの処理は、依頼者端末12のCPU50により実行される。
【0066】
依頼者10が、分析サービスのWebサイト(即ち、サーバ18)にアクセスして、自身のユーザIDを用いてログインすると、
図14に示す「依頼者メイン処理」が開始される。まず、ステップS200で、CPU50は、依頼者10の依頼済み案件のリストをサーバ18から取得する。
【0067】
次に、ステップS202で、CPU50は、インタフェースとして依頼者メイン画面100を表示する。
【0068】
ここで、
図8の画面遷移図を参照する。新規依頼の場合には、依頼者10は、依頼者メイン画面100で新規ボタン102を選択する。新規ボタン102が選択されると、UI画面は新規依頼画面110に遷移する。一方、依頼済み案件の場合には、依頼者10は、選択欄104から対象の依頼済み案件を選択する。対象の依頼済み案件が選択されると、UI画面は依頼済み案件画面130に遷移する。
【0069】
図14の説明に戻る。次に、ステップS204で、CPU50は、依頼者10の入力に基づいて新規案件か否かを判断する。新規案件の場合はステップS208の「新規依頼処理」に進む。新規案件ではない場合はステップS206に進み、ステップS206で、CPU50は、依頼者10の入力に基づいて依頼済み案件か否かを判断する。依頼済み案件の場合はステップS210の「依頼済み案件処理」に進む。依頼済み案件ではない場合はステップS200に戻って、次のループまで待機する。
【0070】
次に、
図15を参照して、
図14のステップS208の「新規依頼処理」について説明する。まず、ステップS212で、CPU50は、インタフェースとして新規依頼画面110を表示する。
【0071】
ここで、
図8の画面遷移図を参照する。依頼者10は、新規依頼画面110の依頼内容入力欄112に依頼内容(例えば、依頼内容の文章、写真、映像など)を入力する。入力した内容で依頼する場合には、依頼者10は、送信ボタン114を選択する。送信ボタン114が選択されると、UI画面はOTP入力画面120に遷移する。一方、入力した内容を取り消す場合には、依頼者10は、取り消しボタン116を選択する。入力内容が取り消されると、UI画面は依頼者メイン画面110に戻る。
【0072】
図15の説明に戻る。次に、ステップS214で、CPU50は、依頼者10の入力に基づいて送信か否かを判断する。送信の場合はステップS218の「OTP入力処理」に進む。送信ではない場合はステップS216に進み、ステップS216で、CPU50は、依頼者10の入力に基づいて取り消しか否かを判断する。取り消しの場合はステップS220の「依頼者メイン処理」に進む。取り消しではない場合はステップS212に戻って、次のループまで待機する。
【0073】
次に、
図16を参照して、
図15のステップS218の「OTP入力処理」について説明する。まず、ステップS222で、CPU50は、インタフェースとしてOTP入力画面120を表示する。
【0074】
ここで、
図8の画面遷移図を参照する。依頼者10は、OTP入力画面120のPW入力欄122に、トークン生成器11で生成されたOTPを入力する。入力した内容でOKな場合には、依頼者10は、送信ボタン124を選択する。一方、入力した内容を取り消す場合には、依頼者10は、取り消しボタン126を選択する。何れの場合も、UI画面は依頼者メイン画面110に戻る。
【0075】
図16の説明に戻る。次に、ステップS224で、CPU50は、依頼者10の入力に基づいて送信か否かを判断する。送信の場合はステップS230に進む。送信ではない場合はステップS226に進み、ステップS226で、CPU50は、依頼者10の入力に基づいて取り消しか否かを判断する。取り消しの場合はステップS228の「依頼者メイン処理」に進む。取り消しではない場合はステップS222に戻って、次のループまで待機する。
【0076】
次に、ステップS230で、CPU50は、ユーザIDとOTPとをサーバ18に送信する。なお、依頼者10のユーザIDはログイン時にサーバ18に送信されているが、ステップS230で、ユーザIDをOTPと一緒に再度サーバ18に送信してもよい。サーバ18は、依頼者端末12からOTPを受信すると、共通鍵パラメータを依頼者端末12に送信する。
【0077】
次に、ステップS232で、CPU50は、サーバ18から応答があったか否かを判断する。応答があった場合は、ステップS234に進み、応答が無かった場合は、ステップS222に戻る。
【0078】
次に、ステップS234で、CPU50は、サーバ18から共通鍵パラメータを受信する。続くステップS236で、一時共通鍵を生成する。例えば、サーバ18は、予め定数として保持する初期化ベクトル(IV:initialization vector)を、共通鍵パラメータとして依頼者端末12に送信する。依頼者端末12のCPU50は、Webブラウザにより、OTPと初期化ベクトルとから共通鍵暗号方式(AES:Advanced Encryption Standard)のAES共通鍵を生成する。即ち、第1の実施形態では、一時共通鍵として「AES共通鍵」を用いる。
【0079】
次に、ステップS238で、CPU50は、分析依頼を一時共通鍵で暗号化する。続くステップS240で、CPU50は、分析依頼の暗号文をサーバ18に送信する。サーバ18は、依頼者端末12から分析依頼の暗号文を受信すると、分析依頼IDを発行して、依頼者端末12に送信する。次に、ステップS242で、CPU50は、分析依頼IDをサーバ18から受信し、記憶部54に一時共通鍵を保存して、ステップS228に戻る。
【0080】
-サーバの処理-
ここで、
図17を参照してサーバ18のCPU40により実行される「分析依頼受付処理」について説明する。「分析依頼受付処理」は、依頼者10からの新規案件を受け付けると開始される。まず、ステップS110で、CPU40は、依頼者10からOTPを受信する。次に、ステップS112で、CPU40は、共通鍵パラメータを依頼者10に送信する。次に、ステップS114で、CPU40は、前後時刻で生成され得るOTPを列挙し、トークン生成器11の時刻差分を検出する。
【0081】
次に、ステップS116で、依頼者10から分析依頼の暗号文を受信する。次に、ステップS118で、CPU40は、分析依頼IDを発行して、依頼者10に送信する。次に、ステップS120で、CPU40は、作業状態レコードを生成して、作業状態を「未着手」とする。次に、ステップS122で、CPU40は、固有ID、時刻差分、分析依頼の暗号文、及び作業状態レコードを、分析依頼IDに関連付けて分析依頼DB48Bに格納して、「分析依頼受付処理」のルーチンを終了する。
【0082】
(分析依頼受諾工程)
次に、分析依頼受諾工程について具体的に説明する。
図13に示すように、分析者14は、Webサイト(即ち、サーバ18)にアクセスして、分析依頼DB48Bをクエリすることができる。分析者14は、分析依頼の暗号文とともに分析依頼DB48Bに格納されている固有IDと時刻差分を用いて、都度ごとに一時共通鍵を生成する。分析者14は、一時共通鍵を用いて分析依頼の暗号文を復号して閲覧する。
【0083】
-分析者端末の処理-
ここで、
図18、
図19を参照して分析者端末16側での処理をより詳細に説明する。これらの処理は、分析者端末16のCPU51により実行される。
【0084】
分析者14が分析依頼DB48Bをクエリすると、
図18に示す「分析者メイン処理」が開始される。まず、ステップS400で、CPU51は、すべての分析依頼のリストをサーバ18から取得する。次に、ステップS402で、CPU51は、インタフェースとして分析者メイン画面170を表示する。
【0085】
ここで、
図9の画面遷移図を参照する。分析者14は、すべての依頼一覧選択欄172に表示された分析依頼の中から受諾する分析依頼を選択する。分析者14が受諾する分析依頼を選択すると、UI画面は分析依頼画面180に遷移する。
【0086】
図18の説明に戻る。次に、ステップS404で、CPU51は、分析依頼が選択されたか否かを判断する。分析依頼が選択されると、ステップS406の「分析依頼処理」に進む。一方、分析依頼が選択されていない場合は、ステップS400に戻って、次のループまで待機する。
【0087】
次に、
図19を参照して、
図18のステップS406の「分析処理」について説明する。まず、ステップS408で、CPU51は、分析依頼IDに基づいて、選択された分析依頼の暗号文をサーバ18から取得する。次に、ステップS410で、CPU51は、分析依頼IDに対応する一時共通鍵で、分析依頼の暗号文を復号する。
【0088】
次に、ステップS412で、CPU51は、インタフェースとして分析依頼画面180を表示する。
【0089】
ここで、
図9の画面遷移図を参照する。分析依頼画面180の依頼内容表示欄182には、復号された分析依頼(即ち、依頼内容)が表示され、試料情報表示欄186には、分析依頼に対応する試料情報が表示される。分析者14は、封入指示を入力する場合には封入指示入力ボタン184を選択する。封入指示入力ボタン184が選択されると、UI画面は封入指示入力画面190に遷移する。
【0090】
分析者14は、分析報告を入力する場合には分析報告入力ボタン188を選択する。分析報告入力ボタン188が選択されると、UI画面は分析報告入力画面200に遷移する。分析者14は、封入指示を入力する場合には封入指示入力ボタン184を選択する。完了する場合には、分析者14により完了ボタン189が選択されて、UI画面は分析者メイン画面170に戻る。
【0091】
図19の説明に戻る。次に、ステップS414で、CPU51は、分析者14の入力に基づいて封入指示入力か否かを判断する。封入指示入力の場合はステップS420の「封入指示入力処理」に進む。封入指示入力ではない場合はステップS416に進み、ステップS416で、CPU51は、分析者14の入力に基づいて分析報告入力か否かを判断する。分析報告入力の場合はステップS422の「分析報告入力処理」に進む。分析報告入力ではない場合はステップS418に進み、ステップS418で、CPU51は、分析者14の入力に基づいて完了か否かを判断する。完了の場合は「分析者メイン処理」に戻る。完了ではない場合は、ステップS408に戻って、次のループまで待機する。
【0092】
(封入指示作成工程)
次に、封入指示作成工程について説明する。
図20に示すように、分析者14は、分析依頼の受託開始を決定すると、分析依頼の内容から試料を受け取るために適切な諸元の容器30を容器DB48Cから選択し、サーバ18に選択した容器30を発注する。容器30は複数選択されてもよい。また、分析者14は、封入指示を作成し、一時共通鍵で暗号化して、封入指示の暗号文をサーバ18に送信する。
【0093】
また、容器30を選定するために必要な情報が分析依頼に十分に含まれていない場合には、分析者14は、問い合わせ文を作成して一時共通鍵で暗号化して依頼者10に送付し、分析依頼の更新を促してもよい。
【0094】
サーバ18は、分析者14により選定された容器30をストックヤード20に発注する。ストックヤード20は発注を受けて、依頼者10に容器30を配送する。サーバ18は、選択された容器30の容器秘密鍵及び容器公開鍵を取得する。サーバ18は、容器秘密鍵を用いて封入指示の暗号文を含む共有情報の電子署名を生成し、封入指示の暗号文と電子署名とを依頼者10に送信する。
【0095】
-分析者端末の処理-
ここで、
図21を参照して分析者端末16側での処理をより詳細に説明する。これらの処理は、分析者端末16のCPU51により実行される。
【0096】
上述した通り、
図9に示す分析依頼画面180で封入指示入力184が選択されると、
図21に示す「封入指示入力処理」が開始される。まず、ステップS426で、CPU51は、容器IDを初期値(null)で初期化する。次に、ステップS428で、CPU51は、利用可能な容器30のリストをサーバ18から取得する。
【0097】
次に、ステップS430で、CPU51は、インタフェースとして封入指示入力画面190を表示する。
【0098】
ここで、
図9の画面遷移図を参照する。分析者14が、分析依頼画面180で封入指示入力184を選択すると、UI画面は封入指示入力画面190に遷移する。封入指示入力画面190の容器一覧選択欄192には選択可能な容器30が一覧表示される。分析者14は、容器30を選択して、その容器30に試料を封入するために封入指示を封入指示入力欄194に入力する。分析者14が、送信ボタン196を選択すると、封入指示がサーバ18に送信され、UI画面は分析者メイン画面170に戻る。また、分析者14が、取り消しボタン198を選択すると入力が取り消されて、UI画面は分析者メイン画面170に戻る。
【0099】
図21の説明に戻る。次に、ステップS432で、CPU51は、分析者14の入力に基づいて容器30が選択されたか否かを判断する。容器が選択された場合はステップS438に進み、ステップS438で選択された容器30の容器IDを容器IDとして設定して、ステップS430に戻る。一方、容器が選択されていない場合は、ステップS434に進む。
【0100】
次に、ステップS434で、CPU51は、分析者14の入力に基づいて送信か否かを判断する。送信の場合はステップS442に進む。送信ではない場合はステップS436に進み、ステップS436で、CPU51は、分析者14の入力に基づいて取り消しかを判断する。取り消しの場合は「分析依頼処理」に戻る。取り消しではない場合は、ステップS426に戻って、次のループまで待機する。
【0101】
ステップS434で封入指示の送信が指示されると、次に、ステップS442で、CPU51は、容器IDが初期値か否かを判断する。容器IDが初期値の場合は、容器30が選択されていないので、ステップS430に戻る。容器IDが初期値ではない場合は、ステップS444に進む。次に、ステップS444で、CPU51は、分析依頼IDに対応する一時共通鍵で封入指示を暗号化する。続くステップ446で、封入指示の暗号文と容器IDとをサーバ18に送信して、ステップS440に戻る。
【0102】
-サーバの処理-
ここで、
図22を参照してサーバ18のCPU40により実行される「署名生成処理」について説明する。「署名生成処理」は、分析者14が受諾する分析依頼を選択すると開始される。まず、ステップS124で、CPU40は、受諾された分析依頼のIDを特定する。次に、ステップS126で、CPU40は、受諾された分析依頼の作業状態レコードを「着手」に更新する。続いて、ステップS128で、CPU40は、分析者14の情報と作業開始時刻とを記録する。
【0103】
次に、ステップS130で、CPU40は、分析者14が選定した容器30の依頼者10への配送をストックヤード20に指示する。次に、ステップS132で、CPU40は、分析者14が選定した容器30の容器秘密鍵と容器公開鍵とを生成する。次に、ステップS134で、CPU40は、分析者14が作成した封入指示の暗号文を取得する。
【0104】
次に、ステップS136で、CPU40は、封入指示の暗号文と容器公開鍵とを含む共有情報の電子署名を生成する。即ち、共有情報のハッシュ値を算出し、容器秘密鍵で電子署名を生成する。続くステップS138で、CPU40は、封入指示の暗号文と電子署名とを依頼者10に送信して、「署名生成処理」のルーチンを終了する。
【0105】
(試料送付工程)
次に、試料送付工程について説明する。
図23に示すように、依頼者10は、ストックヤード20から配送された容器30に刻印されている二次元コードをカメラ62で読み取って、容器公開鍵を取得する。詳細には、二次元コードから容器公開鍵のハッシュ値を含むURLが読み取られ、URLから容器公開鍵が閲覧可能になる。
【0106】
依頼者10は、容器公開鍵を用いて電子署名を検証し、封入指示の暗号文の真正性を検証する。この検証に成功しない場合、容器、封入指示及びその組み合わせが分析者の意図したものではないため、サービス提供者等に連絡を取る必要がある。検証に成功した場合、依頼者10は封入指示に従って試料を容器30に封入し、分析者14に送付する。また、封入した試料に関する試料情報を、一時共通鍵で暗号化して、分析者14に送付することも可能である。
【0107】
-依頼者端末の処理-
ここで、
図24~
図27を参照して依頼者端末12側での処理をより詳細に説明する。これらの処理は、依頼者端末12のCPU50により実行される。
【0108】
依頼者10は、
図8の依頼者メイン画面100で依頼済み案件を選択すると、
図24に示す「依頼済み案件処理」が開始される。まず、ステップS250で、CPU50は、選択された依頼済み案件の分析依頼IDを特定し、分析依頼の暗号文と電子署名とをサーバ18から取得する。
【0109】
次に、ステップS252で、CPU50は、分析依頼IDに対応する一時共通鍵で、依頼者10自身が作成した分析依頼の暗号文を復号する。
【0110】
次に、ステップS254で、CPU50は、インタフェースとして依頼済み案件画面130を表示する。
【0111】
ここで、
図8の画面遷移図を参照する。依頼者10は、依頼者メイン画面100で依頼済み案件を選択すると、UI画面は依頼済み案件画面130に遷移する。依頼済み案件画面130の依頼内容表示欄132には、分析依頼(即ち、依頼内容)が表示され、分析報告表示欄138には、分析報告が表示される。
【0112】
依頼者10は、封入指示を表示する場合には封入指示表示ボタン134を選択する。封入指示表示ボタン134が選択されると、UI画面は容器識別子読み取り画面140に遷移する。依頼者10は、試料情報を入力する場合には試料情報入力ボタン136を選択する。試料情報入力ボタン136が選択されると、UI画面は試料情報入力ボタン136に遷移する。完了する場合には、依頼者10により完了ボタン139が選択されて、UI画面は依頼者メイン画面100に戻る。
【0113】
図24の説明に戻る。次に、ステップS256で、CPU50は、依頼者10の入力に基づいて封入指示表示か否かを判断する。封入指示表示の場合はステップS262の「容器識別子読み取り処理」に進む。封入指示表示ではない場合はステップS258に進み、ステップS258で、CPU50は、依頼者10の入力に基づいて試料情報入力か否かを判断する。試料情報入力の場合はステップS264の「試料情報入力処理」に進む。試料情報入力ではない場合はステップS260に進み、ステップS260で、CPU50は、依頼者10の入力に基づいて完了か否かを判断する。完了の場合は「依頼者メイン処理」に戻る。完了ではない場合は、ステップS250に戻って、次のループまで待機する。
【0114】
次に、
図25を参照して、
図24のステップS262の「容器識別子読み取り処理」について説明する。まず、ステップS270で、CPU50は、カメラ画像を取得する。次に、ステップS272で、CPU50は、カメラ画像内の二次元コードから文字列を取得する。次に、ステップS274で、CPU50は、二次元コードが容器公開鍵を表すか判断する。容器公開鍵を表す場合は、ステップS276に進み、容器公開鍵を表さない場合は、ステップS270に戻る。
【0115】
次に、ステップS276で、CPU50は、依頼者10の入力に基づいて読み取りか否かを判断する。読み取りの場合は、ステップS280の「封入指示表示処理」に進む。読み取りではない場合は、ステップS278に進み、ステップS278で、CPU50は、依頼者10の入力に基づいて取り消しか否かを判断する。取り消しの場合は、ステップS282の「依頼済み案件処理」に戻り、取り消しではない場合は、ステップS270に戻って、次のループまで待機する。
【0116】
ここで、
図8の画面遷移図を参照する。依頼者10は、容器30の二次元コードを撮影し、カメラ62の画像を、容器識別子読み取り画面140のカメラ画像表示欄142に表示させる。依頼者10が、読み取りボタン144を選択すると、二次元コードが読み取られて容器公開鍵が取得され、UI画面は封入指示表示画面150に遷移する。
【0117】
次に、
図26を参照して、
図25のステップS280の「封入指示表示処理」について説明する。まず、ステップS290で、CPU50は、容器公開鍵と暗号文とにより電子署名を検証する。次に、ステップS292で、CPU50は、検証に失敗したか否かを判断する。検証に成功した場合は、ステップS294に進む。一方、検証に失敗した場合は、ステップS300の依頼済み案件処理に戻る。
【0118】
次に、ステップS294で、CPU50は、分析依頼IDに対応する一時共通鍵で封入指示の暗号文を復号する。次に、ステップS296で、CPU50は、インタフェースとして封入指示表示画面150を表示する。
【0119】
ここで、
図8の画面遷移図を参照する。封入指示表示画面150の封入指示表示欄152には、容器公開鍵で検証され、一時共通鍵で復号された封入指示の平文が表示される。依頼者10が、完了ボタンを選択すると、依頼者メイン画面100に戻る。
【0120】
図26の説明に戻る。次に、ステップS298で、CPU50は、完了か否かを判断する。完了の場合は、ステップS300の「依頼済み案件処理」に戻り、完了ではない場合は、ステップS290に戻って、次のループまで待機する。
【0121】
次に、
図27を参照して、
図24のステップS264の「試料情報入力処理」について説明する。まず、ステップS302で、CPU50は、インタフェースとして試料情報入力画面160を表示する。
【0122】
ここで、
図8の画面遷移図を参照する。依頼者10は、試料情報入力画面160の入力欄161に必要に応じて試料情報を入力する。依頼者10が、送信ボタン162を選択すると、試料情報が暗号化されてサーバ18に送信され、UI画面は依頼者メイン画面100に戻る。また、依頼者10が、取り消しボタン164を選択すると入力が取り消されて、UI画面は依頼者メイン画面100に戻る。
【0123】
図27の説明に戻る。次に、ステップS304で、CPU50は、依頼者10の入力に基づいて送信か否かを判断する。送信の場合はステップS310に進む。送信ではない場合は、ステップS306に進み、ステップS306で、CPU50は、依頼者10の入力に基づいて取り消しか否かを判断する。取り消しの場合は、ステップS308の「依頼済み案件処理」に進む。
【0124】
ステップS304で試料情報の送信が指示された場合は、次に、ステップS310で、CPU50は、分析依頼IDに対応する一時共通鍵で試料情報を暗号化する、続くステップ312で、CPU50は、試料情報の暗号文をサーバ18に送信して、ステップS302に戻って、次のループまで待機する。
【0125】
(分析報告工程)
次に、分析報告工程について説明する。
図28に示すように、分析者14は、依頼者10から配送された容器30から試料を取り出して分析を行う。また、依頼者10から試料情報が提供された場合は、分析依頼と同様に一時共通鍵で復号して閲覧する。また、分析者14は、依頼者10と同様に、容器30に刻印されている二次元コードを読み取り、容器公開鍵に基づいて、封入指示とともに自身が発注した容器30であることを確認してもよい。
【0126】
そして、分析者14は、分析報告を作成して、一時共通鍵で暗号化して依頼者10に送付する。ここで分析報告は、封入指示に含まれる情報とは異なる「他の情報」の一例である。このとき、封入指示と同様に、分析報告の暗号文について容器秘密鍵を用いて電子署名を生成し、分析報告の暗号文と共に電子署名を送付してもよい。電子署名により、依頼者10には、容器30に紐づいた分析報告を提供することができる。
【0127】
試料の返却が不要である場合、分析前後で不要になった段階で、容器30はストックヤード20に返却され、試料は破棄される。試料を返却する必要がある場合には、容器30を試料が入った状態で依頼者10に返送する。
【0128】
依頼者10は、分析者14から送付された分析報告を一時共通鍵で復号して閲覧する。また、電子署名がある場合には、封入指示と同様のプロセスで検証して、容器30と分析報告の組合せについて真正性を確認する。試料の返却があった場合には、試料を容器30から取り出して、ストックヤード20に返却する。
【0129】
-分析者端末の処理-
ここで、
図29を参照して分析者端末16側での処理をより詳細に説明する。これらの処理は、分析者端末16のCPU51により実行される。
【0130】
図9の分析依頼画面180で、分析報告入力ボタン188が選択されると、
図29の「分析報告入力処理」が開始される。まず、ステップS450で、CPU51は、インタフェースとして分析報告入力画面200を表示する。
【0131】
ここで、
図9の画面遷移図を参照する。分析者14が、分析依頼画面180で、分析報告入力ボタン188を選択すると、UI画面は分析報告入力画面200に遷移する。分析者14は、分析報告入力画面200の分析報告入力欄202に分析報告を入力する。分析者14が、送信ボタン204を選択すると、分析報告が暗号化されてサーバ18に送信され、UI画面は分析者メイン画面170に戻る。また、分析者14が、取り消しボタン206を選択すると入力が取り消されて、UI画面は分析者メイン画面170に戻る。
【0132】
図29の説明に戻る。次に、ステップS452で、CPU51は、分析者14の入力に基づいて送信か否かを判断する。送信の場合はステップS458に進む。送信ではない場合は、ステップS454に進む。続くステップS454で、CPU51は、分析者14の入力に基づいて取り消しか否かを判断する。取り消しの場合は、ステップS456の「分析依頼処理」に進む。取り消しではない場合は、ステップS450に戻って、次のループまで待機する。
【0133】
一方、ステップS452で分析報告の送信と判断された場合は、次に、ステップS458で、CPU51は、分析依頼IDに対応する一時共通鍵で分析報告を暗号化する。続くステップ460で、CPU51は、分析報告の暗号文をサーバ18に送信して、ステップS450に戻って、次のループまで待機する。
【0134】
-サーバの処理-
ここで、
図30を参照してサーバ18のCPU40により実行される「分析終了処理」について説明する。「分析終了処理」は、分析者14から分析報告の暗号文を受信すると開始される。まず、ステップS140で、CPU40は、任意選択で、容器秘密鍵を用いて分析報告の暗号文の電子署名を生成する。次に、ステップS142で、CPU40は、分析報告の暗号文を依頼者10に送信する。電子署名が生成された場合は、分析報告の暗号文と電子署名とを、依頼者10に送信する。次に、ステップS144で、CPU40は、作業状態レコードを「完了」に更新して、「分析終了処理」のルーチンを終了する。
【0135】
-依頼者端末の処理-
図24を参照して説明した通り、
図24に示す「依頼済み案件処理」は、分析者14から分析報告が納品された場合にも対応している。依頼者10が、分析報告を閲覧する際には、
図8の依頼者メイン画面100で依頼済み案件を選択すると、
図24に示す「依頼済み案件処理」が開始され、依頼済み案件画面130の分析報告表示欄138には、分析報告の平文が表示される。
【0136】
以上説明した通り、第1の実施形態では、容器30に刻印された公開鍵で検証可能な封入指示のみを依頼者10に提示でき、分析者14の指示を依頼者10が取り違えて、試料が意図しない容器30に封入されるという封入ミスを低減することができる。
【0137】
また、誤った容器30が依頼者10に配送されても、検証可能な封入指示がなく、誤った容器30への試料が封入されるという封入ミスを低減することができる。また、封入指示は暗号化されているので第三者が盗聴することは困難であるし、悪意のある第三者により容器のすり替えや返送先の改ざんが行われても、検証により検知することができる。
【0138】
また、第1の実施形態では、依頼者10と分析者14との間でやり取りされる情報は、共通鍵で暗号化されており、復号に必要な共通鍵を有する依頼者10と分析者14のみが、その内容を知ることができる。更に、容器30に刻印された公開鍵は、光学的又は電磁気的に読み取り可能であり、素早く検証を行うことができる。また、公開鍵は第三者に公開されているので、公開鍵が分析者14やその所属組織のものであることを標示できる。
【0139】
[第2の実施形態]
第2の実施形態では、分析依頼を暗号化する一時共通鍵Aと、封入指示以降の依頼者-分析者間のやりとりを暗号化する一時共通鍵Bとを導入したものである。
【0140】
一時共通鍵Aは、第1の実施形態と同様に、トークン生成器11で生成されたOTPと初期化ベクトルとから共通鍵暗号方式で生成されたAES共通鍵としてもよい。
【0141】
一方、一時共通鍵Bは、ディフィー・ヘルマン(DH)鍵交換方式、又は楕円曲線ディフィー・ヘルマン(ECDH)鍵交換方式を用いて生成された共通鍵である。DH鍵交換方式及びECDH鍵交換方式では、依頼者10と分析者14との間で一時的に生成された一時秘密鍵及び一時公開鍵のペアのうち、一時公開鍵のみが相手に送信される。依頼者10と分析者14は、それぞれ相手の一時公開鍵と自身の一時秘密鍵及び一時公開鍵のペアとから一時共通鍵を生成する。
【0142】
図31は分析サービス提供システムの処理の流れを概略的に示すシーケンス図である。ステップS2~ステップS8を省略し、点線で囲んだステップS54~ステップS68を挿入した点が、
図6に示すシーケンス図とは相違している。共通するステップには同一又は類似の符号を付して説明を省略する。
図6のステップS26は、
図31では、一時共通鍵Aで分析依頼を復号するステップS26Aと、封入指示を作成して一時共通鍵Bで暗号化するステップS26Bと、に分けられている。
図31のステップS28A~ステップS52Aは、一時共通鍵Bが使用される以外は、
図6のステップS28~ステップS52と同様である。
【0143】
したがって、ステップS54~ステップS68の一時共通鍵Bの生成工程のみ説明する。サーバ18は、一時共通鍵パラメータを分析者14に送信する(S54)。また、サーバ18は、一時共通鍵パラメータを依頼者10にも送信する(S56)。分析者14は、一時共通鍵パラメータを用いて一時秘密鍵と一時公開鍵のペアを生成する(S58)。依頼者10も、一時共通鍵パラメータを用いて一時秘密鍵と一時公開鍵のペアを生成する(S60)。
【0144】
依頼者10は、分析者14に一時公開鍵を送信する(S62)。分析者14は、分析者14自身の一時秘密鍵及び一時公開鍵と、依頼者10の一時公開鍵とから、一時共通鍵Bを生成する(S64)。また、分析者14も、依頼者10に一時公開鍵を送信する(S66)。依頼者10は、依頼者10自身の一時秘密鍵及び一時公開鍵と、分析者14の一時公開鍵とから、一時共通鍵Bを生成する(S68)。以降の暗号化には、一時共通鍵Bが使用される。
【0145】
第1の実施形態では、依頼者10、分析者14、サーバ18が同一の一時共通鍵を保持するが、本来サーバ18(及びその管理者)は分析内容を知る必要がない。また、サーバ18から一時共通鍵が漏洩した際に、全ての分析内容を盗聴される恐れがある。第2の実施形態では、封入指示以降の依頼者-分析者間のやりとりを暗号化する際には、一時共通鍵Bを使用する。第3者に知られることなく、依頼者10と分析者14との間にだけ一時共通鍵Bが生成されるため、サーバ18を含む第三者から通信内容を秘匿することができる。
【0146】
[第3の実施形態]
第3の実施形態に係る分析サービス提供システムでは、分析者14の手元から離れている外部機器24(搬送台車、保管庫、分析装置など)を利用する。ここでは、依頼者10や分析者14の外に、容器の搬送や保管に関わる担当者等の第三者も、外部機器24の操作や状態表示にアクセスする可能性がある。
【0147】
図32に示すように、第3の実施形態では、外部機器24には、外部機器24の操作や状態表示へのアクセスを管理する認証システムが設けられている。また、外部機器24には、容器30に刻印された二次元コードをカメラ26で読み取り、容器公開鍵を特定できる仕組みが設けられている。
【0148】
依頼者10、分析者14、又は第三者(以下、「依頼者10等」という。)が、外部機器24の操作や状態表示にアクセスしようとする場合には、サーバ18に対するログイン認証等の別の認証システムで認証された上で、外部機器24による認証がさらに必要になる。
【0149】
例えば、依頼者10等は、適当な乱数を生成してサーバ18に送付すると、サーバ18は、乱数を容器秘密鍵で暗号化して電子署名を生成し、依頼者10等に対して電子署名を発行する。そして、依頼者10等は、乱数とともに電子署名を外部機器24の認証システムに投入する。外部機器24は、受け取った乱数と電子署名が、容器30から得られた容器公開鍵で検証できるかどうかにより、依頼者10等に対する認証を行うことができる。
【0150】
外部機器24を利用する場合、機密上の理由で各機器へのアクセスを限定する必要のある場合がある。第3の実施形態のように、外部機器24の操作や状態表示へのアクセスを管理する認証システムと、容器公開鍵を取得する仕組みとを備えることで、適当な情報(例えば、乱数)とその情報を容器秘密鍵を用いて生成した電子署名とを、容器公開鍵で検証できるかどうかによってアクセス認証を行うことが可能となる。
【0151】
なお、外部機器24が公開鍵を取得する方法は、この形態には限られない。例えば、外部機器24の認証システムに、予め容器公開鍵を直接登録しておくこともできる。
【0152】
また、認証に使用する公開鍵は容器公開鍵に限定するものではない。外部機器24の認証システムを容器30だけではなく、多要素認証として個人にも紐づけたい場合がある。この場合、依頼者10等の個人が個別に秘密鍵と公開鍵を所持し、個人の公開鍵を外部機器24の認証システムに登録してもよい。
【0153】
例えば、個人の公開鍵を二次元コードに変換してネームプレートに印字し、スマートフォンに秘密鍵が格納されていて、外部機器24とスマートフォンの時刻がインターネット上のNTP(Network Time Protocol)サーバで時刻同期されている場合を考える。このとき、スマートフォンに格納した秘密鍵で時刻に対する電子署名を生成し、スマートフォンの画面に二次元コードとして表示することができる。そして、外部機器24は、ネームプレートから公開鍵を読み取り、スマートフォンの画面から電子署名を読み取り、二次元コードをカメラ26で読み取ることで取得できる。これにより、外部機器24は、時刻が検証できるかどうかで認証を行うことができる。
【0154】
別の多要素認証の形態としては、第2の実施形態においてDH鍵交換で生成した、一時公開鍵と一時秘密鍵を利用することもできる。一時公開鍵の生成後に二次元コードとして紙に印字する仕組みと、一時秘密鍵による時刻の電子署名をスマートフォンやPC画面上で二次元コードとして表示する仕組みを追加することで、外部機器24は、時刻と電子署名と一時公開鍵を取得して、時刻が検証できるかどうかで認証を行うことができる。
【0155】
なお、第3の実施形態では、外部機器24が認証を行うものとして説明したが、サーバ18が、外部機器24を介して認証を行うようにしてもよい。
【0156】
[変形例]
なお、上記各実施形態で説明した分析サービス提供方法、分析サービス提供装置、分析サービス提供システム、及びプログラムの構成は一例であり、本発明の主旨を逸脱しない範囲内において変更してもよいことは言うまでもない。
【0157】
図33(A)は「1対1」の分析依頼に対応する機能配置を示す模式図であり、上記実施形態では、
図33(B)は「多対多」の分析依頼に対応する機能配置を示す模式図である。上記実施形態では、
図33(B)は「多対多」の分析依頼で本発明を説明したが、
図33(A)に示す「1対1」の分析依頼にも本発明は適用可能である。この場合は、両者を比較すれば明らかなように、サーバ18及びストックヤード20が担っていた機能を、分析者14が担うことになる。
【符号の説明】
【0158】
1 分析サービス提供システム
10 依頼者
11 トークン生成器
12 依頼者端末
14 分析者
16 分析者端末
18 サーバ
20 ストックヤード
22 分析センタ
24 外部機器
24A 分析装置
24B 保管庫
24C 搬送台車
26 カメラ
30、30A、30B 容器
48 データベース(DB)
62、63 カメラ
100 依頼者メイン画面
110 依頼者メイン画面
110 新規依頼画面
120 OTP入力画面
130 依頼済み案件画面
140 容器識別子読み取り画面
150 封入指示表示画面
160 試料情報入力画面
170 分析者メイン画面
180 分析依頼画面
190 封入指示入力画面
200 分析報告入力画面
300 容器登録部
302 依頼受付部
304 署名生成部
306 配送依頼部
310 インタフェース提供部
312 暗号化・復号部
314 署名検証部
320 インタフェース提供部
322 暗号化・復号部