JP7314156B2 - コンピュータ間のデータ通信を保護するためのシステムおよび方法 - Google Patents

コンピュータ間のデータ通信を保護するためのシステムおよび方法 Download PDF

Info

Publication number
JP7314156B2
JP7314156B2 JP2020545692A JP2020545692A JP7314156B2 JP 7314156 B2 JP7314156 B2 JP 7314156B2 JP 2020545692 A JP2020545692 A JP 2020545692A JP 2020545692 A JP2020545692 A JP 2020545692A JP 7314156 B2 JP7314156 B2 JP 7314156B2
Authority
JP
Japan
Prior art keywords
computer
key
encrypted
token
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020545692A
Other languages
English (en)
Other versions
JP2021516491A (ja
JPWO2019168477A5 (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.)
Nitto Denko Corp
Original Assignee
Nitto Denko 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 Nitto Denko Corp filed Critical Nitto Denko Corp
Publication of JP2021516491A publication Critical patent/JP2021516491A/ja
Publication of JPWO2019168477A5 publication Critical patent/JPWO2019168477A5/ja
Application granted granted Critical
Publication of JP7314156B2 publication Critical patent/JP7314156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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/88Medical equipments
    • 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

Landscapes

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

Description

(関連出願の相互参照)
本開示は、2018年3月2日に出願されたシンガポール特許出願第10201801747W号の利益を主張し、これは参照により本明細書にその全体が組み込まれる。
本開示は、概して、コンピュータ間のデータ通信を保護するためのシステムおよび方法に関する。より具体的には、本開示は、暗号化および復号化のための様々なセキュリティキーを使用して、ローカルクライアントコンピュータとリモートコンピュータサーバ、例えばクラウドベースのサーバまたはプラットフォームとの間のデータ通信を保護するためのシステムおよび方法の様々な実施形態を説明する。
多くの場合、コンピュータ間のデータ通信は暗号化されておらず、これにより、特にデータ通信に機密情報/慎重に扱うべき情報が含まれている場合、man-in-the-middle攻撃などのセキュリティリスクが発生する可能性がある。この現代的な環境では、個人および企業を含むユーザが、データの保存または情報共有などの様々な目的でクラウドベースのプラットフォームを使用するのが一般的である。クラウドコンピューティングサービスに対する高まる需要を満たすために、様々なクラウドコンピューティングプラットフォームが登場している。
クラウドコンピューティングサービスは、大まかに高レベルのサービスと低レベルのサービスに分けることができる。高レベルのサービスは通常、企業や組織に対応している。通常、エンドユーザアプリケーションのカスタマイズには制限があり、高レベルのサービスでは、低レベルのサービスとの直接の相互作用またはアクセスは許可されない。低レベルのサービスは通常、別の送信元から直接抽出された生データに対応する。企業は通常、機密情報/専有情報の保存、アクセス、および処理を含む、様々な機能を実行するためのコンピュータシステムを有する。機密情報には、医療情報または個人情報が含まれる場合がある。米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)およびヨーロッパの一般データ保護規則(GDPR)など、不正使用を防止するために医療情報を保護するために、いくつかの政府のポリシーと規制が導入されている。これらの規制は、サードパーティのソースに提供される医療情報に特定のセキュリティ要件を課している。
従来のビジネス環境を超えて進化するにつれて、企業はますますクラウドコンピューティングサービスを使用している。一部の企業は、医療データおよび個人データなどの慎重に扱うべき情報へのアクセスを得たい可能性のある他の関係者と協働する必要がある場合がある。保険証券に情報を使用するなど、正当な意図を持っている関係者もいれば、不信感を抱いている関係者または悪意を持っている関係者がいる場合もある。これらの関係者は、クラウドコンピューティングサービスを介した情報の通信中に慎重に扱うべき情報へのアクセスを得ることを試みる場合がある。したがって、保護のために他の関係者に通信または配布する前に、データ/情報をある程度暗号化する必要がある。
バイタルサイン、個人データ、およびその他の形式の慎重に扱うべき情報に基づく医療情報、測定または生データなどの機密/慎重に扱うべき情報の保護は重要であり、そのような機密/慎重に扱うべき情報は、潜在的に未知のユーザによる不正アクセスを受けるからである。鍵ベースの暗号化プロセスなどの技術は、クラウドコンピューティングサービスを使用して通信されるデータを保護し、ユーザの要求を満たすために使用することができる。しかしながら、これらの暗号化アプローチでは、データの読み取り時に暗号化されたデータが一般的に復号化される場合でも、暗号化されたデータを送信して不明な受信者にそれを復号化させることが依然としてできるため、必要な保護を満たさないことがよくある。
米国特許第9,166,782号は、送信元コンピュータと宛先コンピュータとの間の通信を暗号化する方法を記載している。しかしながら、この方法は、コンピュータにセキュリティキーを提供するためのサードパーティの鍵保管サーバを含む。さらに、コンピュータ間で暗号化された通信を実現するために、コンピュータは秘密鍵を鍵保管サーバに保管する必要がある。この方法は、暗号化されるすべての通信で、鍵保管サーバと送信元コンピュータおよび宛先コンピュータの両方との間でアクションが必要になるため、一見複雑である。
したがって、前述の問題および/または不利な点の少なくとも1つに対処または軽減するために、コンピュータ間のデータ通信を保護するための改善されたシステムおよび方法を提供する必要がある。
本開示の一態様によれば、第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための命令を含む、コンピュータシステム、方法、および非一時的なコンピュータ可読記憶媒体が存在する。このシステムは、互いに通信可能に接続された第1のコンピュータおよび第2のコンピュータを含む。第1および第2のコンピュータは、この方法を実行するように構成されている。この方法は、第1のコンピュータから第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、第1および第2のコンピュータによって協働的に実行することと、第1のコンピュータによって第1のセッション鍵を生成することと、第1のセッション鍵を使用して第1のデータを第1のコンピュータによって暗号化することと、第1の公開鍵を使用して第1のセッション鍵を第1のコンピュータによって、暗号化することであって、第1の公開鍵は第1の秘密鍵とペアにされ、第1の公開鍵と秘密鍵のペアは、第2のコンピュータのために生成される、暗号化することと、暗号化された第1のデータおよび暗号化された第1のセッション鍵を第1のコンピュータから第2のコンピュータに送信することと、第1の秘密鍵を使用して暗号化された第1のセッション鍵を第2のコンピュータによって復号化することと、復号化された第1のセッション鍵を使用して、暗号化された第1のデータを第2のコンピュータによって復号化することと、第1のデータ通信命令に基づいて復号化された第1のデータを第2のコンピュータによって処理することとを含む。
したがって、本開示に係るコンピュータ間のデータ通信を保護するためのシステムおよび方法が本明細書に開示される。本開示の様々な特徴、態様、および利点は、添付の図面と共に、非限定的な例としてのみ、本開示の実施形態の以下の詳細な説明からより明らかになるであろう。
第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するためのコンピュータシステムの概略図である。 第1のコンピュータがローカルクライアントコンピュータであり、第2のコンピュータがリモートコンピュータサーバである、コンピュータ間のデータ通信を保護するためのコンピュータシステムの概略図である。 第1のコンピュータがリモートコンピュータサーバであり、第2のコンピュータがローカルクライアントコンピュータである、コンピュータ間のデータ通信を保護するためのコンピュータシステムの概略図である。 第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法、特に第1のコンピュータから第2のコンピュータにデータを通信するための方法のフローチャート図である。 第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法、特に第2のコンピュータから第1のコンピュータにデータを通信するための方法のフローチャート図である。 非対称鍵ペアを生成するために第2のコンピュータのために第1および第2のコンピュータによって実行されるトークン生成プロセスのフローチャート図である。 第1のコンピュータが非対称鍵ペアを生成するために第1および第2のコンピュータによって実行されるトークン生成プロセスのフローチャート図である。 ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。 ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。 ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。 ローカルクライアントコンピュータおよびリモートコンピュータサーバによって実行されるトークン生成プロセスの概略図である。 HTTPSプロトコルを介してローカルクライアントコンピュータとリモートコンピュータサーバとの間に安全なセッションを確立する方法の概略図である。 ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータをリモートコンピュータサーバに保存するための方法の概略図である。 ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、リモートコンピュータサーバから第2のデータを読み出すための方法の概略図である。 ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータを認証するための方法の概略図である。 ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護し、第1のデータを認証するための方法の概略図である。 トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。 トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。 トークン生成プロセスの実行を含む、ローカルクライアントコンピュータとリモートコンピュータサーバとの間のデータ通信を保護するための方法の概略図である。 ローカルクライアントコンピュータに通信されたトークン生成プロセスからの応答の図である。 ローカルクライアントコンピュータからリモートコンピュータサーバに通信される暗号化および復号化されたデータの図である。 ローカルクライアントコンピュータからリモートコンピュータサーバに通信される暗号化および復号化されたデータの図である。 1回使用のクライアントの秘密鍵と1回使用のサーバの公開鍵の図である。 コンピュータの技術アーキテクチャのブロック図を示したものである。
簡潔さと明確さの目的で、本開示の実施形態の説明は、図面に従って、コンピュータ間のデータ通信を保護するためのシステムおよび方法に向けられている。本開示の態様は、本明細書で提供される実施形態と併せて説明されるが、それらは、本開示をこれらの実施形態に限定することを意図するものではないことが理解される。それどころか、本開示は、本明細書に記載の実施形態の代替、修正、および均等物を網羅することを意図しており、これらは、添付の特許請求の範囲によって定義される本開示の範囲内に含まれる。さらに、以下の詳細な説明では、本開示の完全な理解を提供するために、特定の詳細が記載されている。しかしながら、当該技術分野で通常の知識を有する個人、すなわち当業者によって、本開示は、特定の詳細なしで、および/または特定の実施形態の態様の組み合わせから生じる複数の詳細で実施され得ることが認識されるであろう。多くの場合、本開示の実施形態の態様を不必要に不明瞭にしないように、周知のシステム、方法、手順、および構成要素は詳細に説明されていない。
本開示の実施形態では、所与の要素の描写、または特定の図における特定の要素番号の考慮または使用、または対応する説明資料におけるそれへの参照は、別の図またはそれと関連する説明資料で識別される同じ、同等、または類似の要素または要素番号を包含することができる。
「一実施形態/一実施例」、「別の一実施形態/一実施例」、「いくつかの実施形態/実施例」、「いくつかの他の実施形態/実施例」などへの言及は、そのように記載された実施形態/実施例が、特定の構成、構造、特徴、特性、要素、または制限を含むが、すべての実施形態/実施例が必ずしもその特定の構成、構造、特徴、特性、要素、または制限を含まない可能性があることを示す。さらに、「一実施形態/一実施例において」または「別の一実施形態/一実施例において」という句の繰り返し使用は、必ずしも同じ実施形態/実施例を指すとは限らない。
「含む(comprising)」、「含む(including)」、「有する(having)」などの用語は、一実施形態に列挙されたもの以外の他の構成/要素/ステップの存在を排除するものではない。相互に異なる実施形態における特定の構成/要素/ステップの記述は、これらの構成/要素/ステップの組み合わせが一実施形態において使用できないことを示すものではない。
本明細書で使用される場合、用語「a」および「an」は、1つまたは複数のものとして定義される。図または関連するテキストでの「/」の使用は、特に明記されていない限り、「および/または」を意味すると理解される。「セット」という用語は、既知の数学的定義に従って、少なくとも1つのカーディナリティを数学的に示す要素の空でない有限組織(例えば、本明細書で定義されるようなセットは、ユニット、シングレット、または単一要素のセット、または複数の要素のセット)として定義される、
本明細書で使用される場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」などの用語は、一般的に、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアいずれかのコンピュータ関連エンティティを指すことを意図している。例えば、コンポーネントまたはモジュールは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができるが、これらに限定されない。例として、コントローラ上で実行されているアプリケーションとコントローラの両方をコンポーネント/モジュールとすることができる。1つまたは複数のコンポーネント/モジュールがプロセスおよび/または実行スレッド内に常駐する場合がある。コンポーネント/モジュールは、1つのコンピュータに局在化することができる、および/または複数のコンピュータに分散することができる。
本開示の代表的または例示的な実施形態では、図1Aに示されるように、通信ネットワーク130を介して互いに通信可能に接続された第1のコンピュータ110および第2のコンピュータ120を含むコンピュータシステム100がある。コンピュータシステム100は、暗号化および復号化のためにセキュリティキー140を使用することによって、第1のコンピュータ110と第2のコンピュータ120との間のデータ通信を保護するように構成される。第1のコンピュータ110および第2のコンピュータ120は、セキュリティキー140を使用して、通信ネットワーク130を介して第1のコンピュータ110と第2のコンピュータ120との間で通信されるデータを暗号化および復号化することを含む、データ通信命令を協働的に実行するように構成される。
第1のコンピュータ110および第2のコンピュータ120のそれぞれは、データを保存するために、それぞれ第1のデータベース112および第2のデータベース122を含むか、またはそれらに通信可能に接続される。データベース112および122は、それぞれ第1のコンピュータ110および第2のコンピュータ120上にローカルに、あるいは、第1のコンピュータ110および第2のコンピュータ120に通信可能にリンクされたそれぞれのリモートまたはクラウドサーバ上に常駐することができる。データベース112および122は、データを記憶するためのフラッシュ記憶メモリ、ハードドライブ、一時的な記憶場所などを有することができる。また、データベース112および122は、当業者によって容易に理解されるように、そこに保存されたデータを保護するおよび守るための様々なセキュリティ対策を用いて実装することができる。
通信ネットワーク130は、コンテンツ、通知、および/またはメッセージが、第1のコンピュータ110および第2のコンピュータ120を含む様々なエンティティ間で通信される媒体または環境である。通信ネットワーク130のいくつかの非限定的な例には、仮想プライベートネットワーク(VPN)、ワイヤレスフィデリティ(Wi-Fi)ネットワーク、ライトフィデリティ(Li-Fi)ネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、衛星ネットワーク、インターネット、光ファイバーネットワーク、同軸ケーブルネットワーク、赤外線(IR)ネットワーク、高周波(RF)ネットワーク、およびそれらの任意の組み合わせが含まれる。通信ネットワーク130への接続は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、第2から第5世代(2Gから5G)、ロングタームエボリューション(LTE)、ロングレンジ(LoRa)、およびそれらの任意の組み合わせなどの様々な有線および無線通信プロトコルに従うことができる。第1のコンピュータ110および第2のコンピュータ120のそれぞれは、通信ネットワーク130を介してデータを通信および送受信するためのデータ通信またはトランシーバモジュールを含む。トランシーバモジュールのいくつかの非限定的な例には、アンテナモジュール、高周波トランシーバモジュール、ワイヤレストランシーバモジュール、ブルートゥース(登録商標)トランシーバモジュール、イーサネットポート、ユニバーサルシリアルバス(USB)ポート、またはそれらの任意の組み合わせが含まれる。
暗号化および復号化のためにコンピュータシステム100で使用されるセキュリティキー140は、対称鍵と非対称鍵に分類することができる。対称鍵は、両方の関係者が所有する1つの対称鍵のみによって実行される対称暗号化に対して使用される。対称鍵は、データの暗号化と復号化に適用される。非対称鍵は、非対称暗号化または公開鍵暗号化用のキーのペアである。非対称鍵のそれぞれのペアは、公開鍵と秘密鍵で構成される。ユーザの公開鍵は、機密/慎重に扱うべきデータをユーザに伝達したい、および伝達するデータを暗号化したい他のユーザに対して利用可能にする。公開鍵を使用して暗号化されたデータは、同じ公開鍵と秘密鍵のペア内の秘密鍵を使用してのみ復号化できる。暗号化/復号化/対称/非対称鍵のそれぞれは、数字、単語、英数字の文字列、またはランダムな文字の文字列でとすることができる。
セッション鍵などの対称鍵は、Advanced Encryption Standard(AES)、Twofish、Serpent、Blowfish、Rivest Cipher 4(RC4)、Data Encryption Standard(DES)、Triple DES(3DES)などの対称暗号化アルゴリズム、およびそれらの任意の組み合わせを使用して生成される。非対称の公開鍵と秘密鍵のペアは、Rivest-Shamir-Adleman(RSA)アルゴリズム、Diffie-Hellman鍵交換法、Elliptic-Curve Cryptography(ECC)アプローチ、ElGamalアルゴリズム、デジタル署名アルゴリズム(DSA)などの非対称暗号化アルゴリズム、およびそれらの任意の組み合わせを使用して生成される。当業者は、対称鍵および非対称鍵を生成するための他のアルゴリズム、方法、またはアプローチがあり得ることを理解するであろう。また、それぞれの非対称鍵ペアは、信頼できるセキュリティ組織によって認定されており、鍵ペアに関連付けられたデジタル証明書を有する。デジタル証明書には、デジタル証明書を発行した信頼できる組織または認証局(CA)の名前、非対称鍵ペアが生成されるユーザの身元の詳細、同じ鍵ペア内のユーザの公開鍵などの情報が含まれる。デジタル証明書は通常、暗号化における公開鍵証明書のX.509規格に従って発行される。X.509証明書は、インターネットにアクセスするための安全なプロトコルであるHyper Text Transfer Protocol Secure(HTTPS)の基盤であるTransport Layer Security(TLS)/Secure Sockets Layer(SSL)を含む多くのインターネットプロトコルで使用される。
図2Aを参照して、第1のコンピュータ110と第2のコンピュータ120との間のデータ通信を保護するための方法200が示される。方法200は、方法200の様々な操作またはステップを実行するための様々なモジュール/コンポーネントをそれぞれが含む、第1のコンピュータ110および第2のコンピュータ120上に実装され、それらによって実行される。方法200は、第1のコンピュータ110から第2のコンピュータ120に第1のデータを通信するための第1のデータ通信命令を第1のコンピュータ110と第2のコンピュータ120によって協働的に実行するステップ202を含む。
方法200は、第1のコンピュータ110によって第1のセッション鍵を生成するステップ204をさらに含む。第1のセッション鍵は、暗号化と復号化の両方に使用される対称鍵である。方法200は、第1のセッション鍵を使用して第1のデータを第1のコンピュータ110によって暗号化するステップ206をさらに含み、第1のデータは、第1のコンピュータ110から第2のコンピュータ120に通信されるデータ/情報を含む。方法200は、第1の秘密鍵とペアにされた第1の公開鍵を使用して第1のコンピュータ110によって第1のセッション鍵を暗号化するステップ208をさらに含む。第1の公開鍵と秘密鍵のペアは、第2のコンピュータ120のために生成される非対称鍵ペアである。
方法200は、暗号化された第1のデータおよび暗号化された第1のセッション鍵を第1のコンピュータ110から第2のコンピュータ120に送信するステップ210をさらに含む。方法200は、第1のセッション鍵が同じ第1の非対称公開鍵と秘密鍵のペアの第1の公開鍵を使用して暗号化されたので、第1の秘密鍵を使用して暗号化された第1のセッション鍵を第2のコンピュータ120によって復号化するステップ212をさらに含む。方法200は、復号化された第1のセッション鍵を使用して、暗号化された第1のデータを第2のコンピュータ120によって復号化するステップ214をさらに含む。方法200は、第1のデータ通信命令に基づいて、復号化された第1のデータを第2のコンピュータ120によって処理するステップ216をさらに含む。例えば、第2のコンピュータ120は、安全なデータの保存およびその後の第1のコンピュータ110または第1のデータにアクセスする許可を有する他のコンピュータによる読み出しを行うために、復号化された第1のデータをその第2のデータベース122に保存する。第1のデータにアクセスする許可は、第1のデータが第1のコンピュータ110に由来するので、第1のコンピュータ110のユーザまたは管理者によって、ユーザが他のコンピュータのユーザに第1のデータへのアクセスを共有させたい場合など、他の構成者に与えることができる。いくつかの状況では、特定の関係者が第1のデータへのアクセスを要求している場合など、第2のコンピュータ120のユーザまたは管理者が、他のユーザに許可を与えることができる。
いくつかの実施形態では、第1の公開鍵と秘密鍵のペアは、有効期限が満たされる前に暗号化および復号化が有効となるように、第1の公開鍵と秘密鍵のペアは、有効期限条件を有する。一実施例では、有効期限条件は、事前定義された有効期間、例えば、第1の公開鍵と秘密鍵のペアの生成から始まる期間、または事前定義された有効期限日時である。第1の公開鍵と秘密鍵のペアは、事前定義された有効期間または事前定義された有効期限の日時の後に自動的に期限切れになり、事前定義された有効期間外または事前定義された有効期限の日時の後に暗号化と復号化は有効ではなくなる。事前定義された有効期間は少なくとも2時間であるが、それを任意の時間、分、日などに変更するように、第1のコンピュータ110および/または第2のコンピュータ120によって構成または定義することができる。別の一実施例では、有効期限条件は、第1の公開鍵と秘密鍵のペアの事前定義された使用回数であり、事前定義された使用回数の後に自動的に期限切れになる。事前定義された使用回数は、第1のコンピュータ110および/または第2のコンピュータ120によって構成可能または定義することができる。第1の公開鍵と秘密鍵のペアは、1回限りの使用または1度限りの使用のみに構成できる、つまり、第1の公開鍵と秘密鍵のペアは、1回の使用後に自動的に期限切れになる。有効期限条件は、上記の条件のいずれか1つまたは複数の組み合わせとすることができる。例えば、第1の公開鍵と秘密鍵のペアの事前定義された使用回数は、事前定義された有効期間中にのみ有効である。
上記の方法200は、第1のデータを第2のコンピュータ120に保存するためなど、第1のコンピュータ110から第2のコンピュータ120へのデータ通信を保護することに関する。いくつかの実施形態では、第1のコンピュータ110と第2のコンピュータ120との間でデータ交換が行われる。具体的には、第2のコンピュータ120は、図2Bに示されるように、方法250を介して暗号化されたデータを第1のコンピュータ110に戻すことができる。方法200は、方法250を実行することをさらに含む。方法200の様々な態様は、方法250と同様にまたは類似して適用され、逆もまた同様であり、そのような態様は、簡潔にするために方法250の説明から省略されていることが理解されるであろう。
図2Bを参照すると、方法250は、第2のコンピュータ120から第2のデータを読み出すための第1のコンピュータ110による要求のためなど、第2のコンピュータ120から第1のコンピュータ110に第2のデータを通信するための第2のデータ通信命令を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行するステップ252を含む。
方法250は、第2のコンピュータ120によって第2のセッション鍵を生成するステップ254をさらに含む。第2のセッション鍵は、暗号化と復号化の両方に使用される対称鍵ですある。方法250は、第2のセッション鍵を使用して第2のデータを第2のコンピュータ120によって暗号化するステップ256をさらに含み、第2のデータは、第2のコンピュータ120から第1のコンピュータ110に通信されるデータ/情報を含む。方法250は、第2の秘密鍵とペアにされた第2の公開鍵を使用して第2のセッション鍵を第2のコンピュータ120によって暗号化するステップ258をさらに含む。第2の公開鍵と秘密鍵のペアは、第1のコンピュータ110のために生成される非対称鍵ペアである。
方法250は、暗号化された第2のデータおよび暗号化された第2のセッション鍵を第2のコンピュータ120から第1のコンピュータ110に送信するステップ260をさらに含む。方法250は、第2の秘密鍵を使用して暗号化された第2のセッション鍵を第1のコンピュータ110によって復号化するステップ262をさらに含む。方法250は、復号化された第2のセッション鍵を使用して、暗号化された第2のデータを第1のコンピュータ110によって復号化するステップ264をさらに含む。方法250は、第2のデータ通信命令に基づいて、復号化された第2のデータを第1のコンピュータ110によって処理するステップ266をさらに含む。例えば、第1のコンピュータ110は、その前記復号化に応答して復号化された第2のデータを抽出し、復号化された第2のデータをその第1のデータベース112に保存する。
いくつかの実施形態では、第1の公開鍵と秘密鍵のペアと同様に、第2の公開鍵と秘密鍵のペアは、有効期限が満たされる前に暗号化および復号化に対して有効であるように、有効期限条件を有する。上記の第1の公開鍵と秘密鍵のペアの有効期限条件は、第2の公開鍵と秘密鍵のペアと同様にまたは類似して適用されることが理解されるであろう。
上記の方法200および250は、第1のコンピュータ110および第2のコンピュータ120に対して生成される、関連する第1のセッション鍵、第2のセッション鍵、第1の公開鍵と秘密鍵のペア、および第2の公開鍵と秘密鍵のペアを使用することによる、第1のコンピュータ110と第2のコンピュータ120との間の安全なデータ通信に関する。特に、第1の公開鍵と秘密鍵のペアおよび第2の公開鍵と秘密鍵のペアは、第2のコンピュータ120と第1のコンピュータ110に対してそれぞれ生成される。しかしながら、前記安全なデータ通信は、第1のコンピュータ110のために生成された第1の公開鍵と秘密鍵のペアと、第2のコンピュータ120のために生成された第2の公開鍵と秘密鍵のペアを使用できることが理解されるであろう。
いくつかの実施形態では、第1/第2の公開鍵と秘密鍵のペアは、第2のコンピュータ120によって生成される。図3Aを参照すると、方法200は、第1のデータ通信命令を実行する前に、トークン生成プロセス300を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行することをさらに含む。これは、第1のコンピュータ110が第1のデータを第2のコンピュータ120に初めて通信していて、第1/第2の公開鍵と秘密鍵のペアが以前に生成されていない場合に起こり得る。トークン生成プロセス300は、第1のコンピュータ110によってトークンセッション鍵を生成するステップ302を含む。トークンセッション鍵は、暗号化と復号化の両方に使用される対称鍵であり、事前定義された有効期間などの有効期限条件を有することができる。
トークン生成プロセス300は、トークンセッション鍵を使用してトークン要求を第1のコンピュータ110によって暗号化するステップ304をさらに含み、トークン要求は、第2のコンピュータ120から少なくとも第1/第2の公開鍵と秘密鍵のペアを要求するためのものである。トークン生成プロセス300は、トークンセッション鍵および暗号化されたトークン要求を第1のコンピュータ110から第2のコンピュータ120に送信するステップ306をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して暗号化されたトークン要求を第2のコンピュータ120によって復号化するステップ308をさらに含む。トークン生成プロセス300は、第2のコンピュータ120/第1のコンピュータ110の第1の/第2の公開鍵と秘密鍵のペアを第2のコンピュータ120によってそれぞれ生成するステップ310をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して、第1の公開鍵/第2の秘密鍵を第2のコンピュータ120によって暗号化するステップ312をさらに含む。トークン生成プロセス300は、暗号化された第1の公開鍵/第2の秘密鍵を第2のコンピュータ120から第1のコンピュータ110に送信するステップ314をさらに含む。トークン生成プロセス300は、トークンセッション鍵を使用して、暗号化された第1の公開鍵/第2の秘密鍵を第1のコンピュータ110によって復号化するステップ316をさらに含む。したがって、第1のコンピュータ110は、第1の公開鍵を使用して第1のセッション鍵を暗号化し、第2の秘密鍵を使用して第2のセッション鍵を復号化することができる。したがって、トークン生成プロセス300は、第2のコンピュータ120が第1の公開鍵と秘密鍵のペアおよび/または第2の公開鍵と秘密鍵のペアを生成することを可能にする。
いくつかの実施形態では、第1/第2の公開鍵と秘密鍵のペアは、第1のコンピュータ110によって生成される。図3Bを参照すると、方法200は、第1のデータ通信命令を実行する前に、トークン生成プロセス350を第1のコンピュータ110および第2のコンピュータ120によって協働的に実行することをさらに含む。トークン生成プロセス300の様々な態様は、トークン生成プロセス350と同様にまたは類似して適用され、その逆もまた同様であり、そのような態様は、簡潔にするためにトークン生成プロセス350の説明から省略されることが理解されるであろう。
トークン生成プロセス350は、第1のコンピュータ110によってトークンセッション鍵を生成するステップ352を含む。トークン生成プロセス350は、第2のコンピュータ120/第1のコンピュータ110に対して第1の/第2の公開鍵と秘密鍵のペアを第1のコンピュータ110によってそれぞれ生成するステップ354をさらに含む。トークン生成プロセス350は、トークンセッション鍵を使用して、第1の秘密鍵/第2の公開鍵を第1のコンピュータ110によって暗号化するステップ356をさらに含む。トークン生成プロセス350は、トークンセッション鍵および暗号化された第1の秘密鍵/第2の公開鍵を第1のコンピュータ110から第2のコンピュータ120に送信するステップ358をさらに含む。トークン生成プロセス350は、トークンセッション鍵を使用して、暗号化された第1の秘密鍵/第2の公開鍵を第2のコンピュータ120によって復号化するステップ360をさらに含む。したがって、第2のコンピュータ120は、第1の秘密鍵を使用して第1のセッション鍵を復号化し、第2の公開鍵を使用して第2のセッション鍵を暗号化することができる。したがって、トークン生成プロセス350は、第1のコンピュータ110が第1の公開鍵と秘密鍵のペアおよび/または第2の公開鍵と秘密鍵のペアを生成することを可能にする。
図1Bに示されるいくつかの実施形態では、第1のコンピュータ110はローカルクライアントコンピュータ150であり、第2のコンピュータ120はリモートコンピュータサーバ160である。図1Cに示されるいくつかの他の実施形態では、第1のコンピュータ110はリモートコンピュータサーバ160であり、第2のコンピュータ120はローカルクライアントコンピュータ150である。
ローカルクライアントコンピュータ150は、個人または企業のエンドユーザによって操作されるコンピュータまたはコンピューティングデバイスである。ローカルクライアントコンピュータ150のいくつかの非限定的な例には、デスクトップデバイス、モバイルデバイス、タブレットデバイス、ラップトップコンピュータ、ウェアラブルデバイス、およびプロセッサ、マイクロプロセッサ、中央処理装置、またはコントローラを有し得る他の任意の電子デバイスが含まれる。ローカルクライアントコンピュータ150は、データをリモートコンピュータサーバ160に転送してそこに保存するためなど、通信ネットワーク130を介してリモートコンピュータサーバ160と通信可能である。ローカルクライアントコンピュータ150は、データを保存するためのローカルデータベース152を含むか、または通信接続されており、リモートコンピュータサーバ160は、データを保存するためのサーバデータベース162を含むか、または通信接続されている。リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150から離れて遠隔に配置されている、すなわち、ローカルクライアントコンピュータ150と同じローカルネットワークを共有していないコンピュータサーバである。本明細書で使用される場合、コンピュータサーバは、サーバプログラムが実行される物理的またはクラウドデータ処理システムである。サーバは、ハードウェアまたはソフトウェア、あるいはそれらの組み合わせに実装することができる。サーバには、コンピュータ、ラップトップ、ミニコンピュータ、メインフレームコンピュータ、機械可読コードを実行できる非一時的で有形の機械、クラウドベースのサーバ、分散サーバネットワーク、およびコンピュータシステムのネットワークが含まれる。
多くの実施形態では、リモートコンピュータサーバ160は、1つまたは複数のローカルクライアントコンピュータ150と通信可能なクラウドベースのサーバであるか、またはそれを含む。具体的には、クラウドベースのサーバは、ローカルクライアントコンピュータ150のエンドユーザにウェブサービスを提供する。クラウドベースのサーバには、オープンソースサーバ、エンタープライズサーバ、エンタープライズ間サーバ、エンタープライズ・オープンソース間サーバ、またはエンドユーザがデータを異なる場所に送信、転送、保存するのに適したその他のサーバ環境を有することができる。
非対称の公開鍵と秘密鍵のペアは、トークン生成プロセス400によって、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160のそれぞれに対して生成される。非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160またはローカルクライアントコンピュータ150によって生成することができる。ローカルクライアントコンピュータ150のために生成された公開鍵と秘密鍵のペアは、クライアントの公開鍵と秘密鍵のペア154と呼ばれ、リモートコンピュータサーバ160のために生成された公開鍵と秘密鍵のペアは、サーバの公開鍵と秘密鍵のペア164と呼ばれる。クライアントの公開鍵と秘密鍵のペア154は、クライアントの公開鍵154-1とクライアントの秘密鍵154-2からなる。サーバの公開鍵と秘密鍵のペア164は、サーバの公開鍵164-1とサーバの秘密鍵164-2とからなる。クライアントの公開鍵と秘密鍵のペア154およびサーバの公開鍵と秘密鍵のペア164のそれぞれは、本明細書の様々な実施形態で説明される第1の公開鍵と秘密鍵のペアまたは第2の公開鍵とプライベート鍵のペアとすることができる。
トークン生成プロセス400は、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160がデータの暗号化/復号化を実行する前に、それらによって協働的に実行される。具体的には、トークン生成プロセス400は、第1のデータ通信命令を実行するステップ202の前、および第2のデータ通信命令を実行するステップ252の前に実行される。トークン生成プロセス400は、インターネット上での認証および承認のためのOAuth 2.0規格プロトコルの使用を通じて生じることができる。トークン生成プロセス400の様々なステップは、ローカルクライアントコンピュータ150上で実行される少なくとも1つのクライアントアプリケーションを使用して実行される。一実施形態では、クライアントアプリケーションは、ローカルクライアントコンピュータ150にプレリインストールされている。別の一実施形態では、クライアントアプリケーションはプレインストールされていないが、クライアントは、例えば、iOS、Androidなどのローカルクライアントコンピュータ150のオペレーティングシステムを介してクライアントアプリケーションを要求し、その後、クライアントアプリケーションをダウンロードしてインストールすることができる。
いくつかの実施形態では、トークン生成プロセス400は、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160によって協働的に実行され、非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160によって生成される。トークン生成プロセス400は、図4A~図4Cを参照して以下に説明するように、少なくとも3つのHTTPSセッションを含む。
図4Aを参照する第1のHTTPSセッションでは、ステップ402において、ローカルクライアントコンピュータ150は、対称鍵であるトークンセッション鍵を生成する。ステップ404において、ローカルクライアントコンピュータ150は、トークンセッション鍵をリモートコンピュータサーバ160に送信する。ステップ406において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用してログイン要求を暗号化し、ログイン要求は、クライアントアプリケーションの組み込みブラウザ上にログインページを提供するためのものである。ステップ408において、ローカルクライアントコンピュータ150は、暗号化されたログイン要求をリモートコンピュータサーバ160に送信する。ステップ410において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して暗号化されたログイン要求を復号化し、さらにログイン要求を処理する。ステップ412において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してクライアントログインページを暗号化する。ステップ414において、リモートコンピュータサーバ160は、暗号化されたクライアントログインページをローカルクライアントコンピュータ150に送信する。ステップ416において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して暗号化されたクライアントログインページを復号化する。ステップ418において、ローカルクライアントコンピュータ150は、復号化されたクライアントログインページを組み込みブラウザ上に表示する。
いくつかの実施形態では、第1のHTTPSセッションには暗号化がない。具体的には、ローカルクライアントコンピュータ150は、ブラウザ上にログインページを提供するために、暗号化されていないログイン要求をリモートコンピュータサーバ160に送信する。リモートコンピュータサーバ160は、ログイン要求を受信して処理する。リモートコンピュータサーバ160は、暗号化されていないクライアントログインページをローカルクライアントコンピュータ150に送信して、組み込みブラウザ上に表示する。
図4Bを参照する第2のHTTPSセッションでは、ステップ420において、ユーザまたはクライアントは、クライアントログインページで、ユーザ名および/またはパスワードを含むクライアントログインの詳細を入力する。ユーザ名とパスワードのそれぞれは、数字、アルファベット、テキスト、文字などの任意の組み合わせまたは文字列とすることができる。ステップ422において、ローカルクライアントコンピュータ150は、認証のためにクライアントログインの詳細をリモートコンピュータサーバ160に送信する。ステップ424において、リモートコンピュータサーバ160は、クライアントログインの詳細を認証し、メッセージ認証コード(MAC)を生成する。MACはタグとも呼ばれ、クライアントログインの詳細など、メッセージを認証するための短い情報であり、それによってメッセージのデータの整合性と信頼性を保護する。ステップ426において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してMACを暗号化する。ステップ428において、リモートコンピュータサーバ160は、暗号化されたMACをローカルクライアントコンピュータ150に送信する。ステップ430において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して暗号化されたMACを復号化する。あるいはまた、MACは、暗号化されないことも可能である。MACは、クライアントがブラウザに正常にログインすることを許可し、クライアントは、クライアントが設定できる事前定義された期間、ログインしたままにすることができる。ここで、クライアントは、ブラウザを使用して、リモートコンピュータサーバ160に公開鍵と秘密鍵のペアを要求することができる。
図4Cを参照する第3のHTTPSセッションでは、ステップ432において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160からの公開鍵と秘密鍵のペアに対するトークン要求を開始する。ステップ434において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用してトークン要求を暗号化する。ステップ436において、ローカルクライアントコンピュータ150は、暗号化されたトークン要求をリモートコンピュータサーバ160に送信する。ステップ438において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して暗号化されたトークン要求を復号化し、さらにトークン要求を処理する。ステップ440において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150のためのクライアントの公開鍵と秘密鍵のペア154およびリモートコンピュータサーバ160のためのサーバの公開鍵と秘密鍵のペア164を含む2つの公開鍵と秘密鍵のペアを生成する。任意選択として、ステップ440において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150のためのクライアントトークンをさらに生成する。クライアントトークンは、クライアントおよび/またはローカルクライアントコンピュータ150を識別するのに役立てることができ、例えば、リモートコンピュータサーバ160が、ローカルクライアントコンピュータ150のために生成されたクライアントの公開鍵と秘密鍵のペア154を識別できるようにする。
ステップ442において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して、クライアント秘密鍵154-2、サーバ公開鍵164-1、およびクライアントトークンを暗号化する。ステップ444において、リモートコンピュータサーバ160は、トークンセッション鍵を使用してローカルクライアントコンピュータ150によるその後の復号化のために、暗号化されたクライアント秘密鍵154-2、暗号化されたサーバ公開鍵164-1、および暗号化されたクライアントトークンをローカルクライアントコンピュータ150に送信する。これらは、当業者によって容易に理解されるように、連続して、並行して、ブロックで、またはパーティションで送信することができる。ステップ446において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、暗号化されたクライアント秘密鍵154-2、暗号化されたサーバ公開鍵164-1、および暗号化されたクライアントトークンを復号化する。ステップ448において、ローカルクライアントコンピュータ150は、それらの前記復号化に応答して、クライアント秘密鍵154-2、サーバ公開鍵164-1、およびクライアントトークンを抽出し、それらをそのローカルデータベース152に保存する。クライアントの公開鍵と秘密鍵のペア154、サーバの公開鍵と秘密鍵のペア164、およびクライアントトークンのそれぞれは、第1および第2の公開鍵と秘密鍵のペアに対して上記したものなど、ローカルクライアントコンピュータ150および/またはリモートコンピュータサーバ160によって構成可能な有効期限条件を有することができる。例えば、有効期限条件は、トークンセッション鍵の事前定義された有効期間に対応する事前定義された有効期間である。したがって、有効期限条件は、トークンセッション鍵の有効期限の後に満たされる。
いくつかの実施形態では、非対称の公開鍵と秘密鍵のペアは、リモートコンピュータサーバ160の代わりにローカルクライアントコンピュータ150によって生成される。これは、図4Dを参照して、トークン生成プロセス450として説明される。トークン生成プロセス450は、1つまたは複数のHTTPSセッションを介して、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160によって協働的に実行される。トークン生成プロセス400の様々な態様は、トークン生成プロセス450と同様にまたは類似して適用され、その逆もまた同様であり、そのような態様は、簡潔にするためにトークン生成プロセス450の説明から省略されることが理解されるであろう。
ステップ452において、ローカルクライアントコンピュータ150は、対称鍵であるトークンセッション鍵を生成する。ステップ454において、ローカルクライアントコンピュータ150は、ローカルクライアントコンピュータ150用のクライアントの公開鍵と秘密鍵のペア154およびリモートコンピュータサーバ160用のサーバの公開鍵と秘密鍵のペア164を含む、2つの公開鍵と秘密鍵のペアを生成する。任意選択として、ステップ454において、ローカルクライアントコンピュータ150は、ローカルクライアントコンピュータ150のクライアントトークンをさらに生成する。クライアントトークンは、クライアントおよび/またはローカルクライアントコンピュータ150を識別するのに役立てることができ、例えば、リモートコンピュータサーバ160が、ローカルクライアントコンピュータ150のために生成されたクライアントの公開鍵と秘密鍵のペア154を識別できるようにする。
ステップ456において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、クライアントの公開鍵154-1、サーバの秘密鍵164-2、およびクライアントトークンを暗号化する。ステップ458において、ローカルクライアントコンピュータ150は、トークンセッション鍵を使用して、リモートコンピュータサーバ160によって、その後の復号化のために、トークンセッション鍵、暗号化されたクライアントの公開鍵154-1、暗号化されたサーバの秘密鍵164-2、および暗号化されたクライアントトークンをリモートコンピュータサーバ160に送信する。これらは、当業者によって容易に理解されるように、連続して、並行して、ブロックで、またはパーティションで送信することができる。一実施形態では、鍵は、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間にアクティブな通信リンクまたはアクティブなHTTPSセッションがあるときに生成され、リモートコンピュータサーバ160に送信される。別の一実施形態では、鍵は、インターネット接続の欠如などのために、ローカルクライアントコンピュータ150がリモートコンピュータサーバ160から通信的に切断されるオフラインモードで生成される。鍵は、ローカルクライアントコンピュータ150のローカルデータベース152に保存され、その後、リモートコンピュータサーバ160とのアクティブな通信リンクを確立した後、リモートコンピュータサーバ160に送信することができる。
ステップ460において、リモートコンピュータサーバ160は、トークンセッション鍵を使用して、暗号化されたクライアントの公開鍵154-1、暗号化されたサーバの秘密鍵164-2、および暗号化されたクライアントトークンを復号化する。ステップ462において、リモートコンピュータサーバ160は、それらの前記復号化に応答して、クライアントの公開鍵154-1、サーバの秘密鍵164-2、およびクライアントトークンを抽出し、それらをそのサーバデータベース162に保存する。
上記のHTTPSセッションなどのセッションベースの暗号化には、HTTPSプロトコルを介して安全なセッションを提供および確立するためのプロセス、機能、または方法500がある。図5を参照すると、ステップ502において、ユーザまたはクライアントは、クライアントアプリケーションを介して、リモートコンピュータサーバ160へのTLS/SSL接続を要求するように命令を提供する。ステップ504において、リモートコンピュータサーバ160は、プログラミング機能のセットを備えたアプリケーションプログラミングインターフェース(API)を使用して、サーバの公開鍵164-1に関連付けられ得るTLS/SSL証明書を読み出しまたは生成することができる。ステップ506において、リモートコンピュータサーバ160は、TLS/SSL証明書およびサーバの公開鍵164-1をローカルクライアントコンピュータ150に送信する。ステップ508において、ローカルクライアントコンピュータ150は、TLS/SSL証明書およびサーバの公開鍵164-1を検証および認証する。ステップ510において、ローカルクライアントコンピュータ150は、ステップ204の第1のセッション鍵およびステップ254の第2のセッション鍵などのセッション鍵または対称鍵を生成する。ステップ512において、ローカルクライアントコンピュータ150は、サーバの公開鍵164-1を使用してセッション鍵を暗号化する。ステップ514において、ローカルクライアントコンピュータ150は、暗号化されたセッション鍵をリモートコンピュータサーバ160に送信する。ステップ516において、リモートコンピュータサーバ160は、サーバの秘密鍵164-2を使用して暗号化されたセッション鍵を復号化する。ステップ518において、リモートコンピュータサーバ160は、セッション鍵の前記復号化の完了を確認するためにローカルクライアントコンピュータ150にメッセージを送信する。ステップ520において、ローカルクライアントコンピュータ150およびリモートコンピュータサーバ160は、その後、ここにおいてそれらの間で共有されているセッション鍵を使用して通信し、データを交換することができる。
図6Aを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法600が存在する。方法600の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。
方法600のステップ602において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160に第1のデータを保存するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。第1のデータは、様々な被験者/患者に対して実施された医療処置から収集された測定データを含むことができる。測定データは、一連の心拍数データセット、一連の血圧データセット、一連の脈圧データセットのうちの少なくとも1つを含むことができる。例えば、測定データは、第1の期間に収集された第1の一連の心拍数データおよび第2の期間に収集された第2の一連の心拍数データを含む、複数の一連の心拍数データを含む。
ステップ604において、ローカルクライアントコンピュータ150は、ローカルデータベース152に保存された測定データを読み出す。ステップ606において、ローカルクライアントコンピュータ150は、例えば、ランレングス符号化(RLE)、ハフマンコーディング、LZ77、LZ78など、およびそれらの任意の組み合わせなどのデータ圧縮アルゴリズムを使用することによって、測定データを圧縮する。あるいはまた、測定データは圧縮されないが、圧縮可能とすることができる。ステップ608において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ610において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して測定データを暗号化する。ステップ612において、ローカルクライアントコンピュータ150は、トークン生成プロセス400/450から生成されたサーバの公開鍵164-1を使用して、第1のセッション鍵を暗号化する。ステップ614において、ローカルクライアントコンピュータ150は、暗号化された測定データおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
したがって、方法600の上記のステップにおいて、ローカルクライアントコンピュータ150は、任意の所与の時点で、第1および第2の一連の心拍数データなどの測定データを、HTTPSプロトコルを介してリモートコンピュータサーバ160に送信することができる。ステップ616において、リモートコンピュータサーバ160は、サーバの秘密鍵164-2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ618において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された測定データを復号化し、復号化された測定データを抽出する。ステップ620において、測定データは圧縮することができ、リモートコンピュータサーバ160は、圧縮された測定データをその元の非圧縮状態に解凍する。あるいはまた、測定データは元々圧縮されていなくてもよい。ステップ622において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて、測定データをサーバデータベース162に保存する。
ステップ624において、リモートコンピュータサーバ160は、アルゴリズムのセットを使用して、測定データを結合および/または操作して、詳細データを生成する。ステップ626において、リモートコンピュータサーバ160は、詳細データを測定データと共にサーバデータベース162に保存する。当業者が容易に理解できるように、詳細データは、その中の各データ要素がクラウドコンピューティングのためのその独自のアクセス制御ポリシーを有するように生成することができる。いくつかの状況では、リモートコンピュータサーバ160は、クライアントがクラウドコンピューティングサービスの有料サブスクリプションを通じて加入するクラウドコンピューティングサービスを操作する。リモートコンピュータサーバ160は、サブスクリプション料金が適時に支払われる場合、きめ細かい生成を行う。逆に、サブスクリプション料金が適時に支払われない場合、160を超えるリモートコンピュータは、ステップ624でアルゴリズムのセットが詳細データを生成することを制限するなどによって、クラウドコンピュータサービスを終了または制限することができるが、これは、サーバデータベース162に測定データを保存するための方法600のプロセスフローを最適化できる。ステップ628において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150にメッセージを送信して、測定データ/詳細データをサーバデータベース162に保存するステップ622の完了を確認する。
図6Bを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法650が存在する。方法650の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。方法650のステップ652において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から第2のデータを読み出すために、リモートコンピュータサーバ160と協働して第2のデータ通信命令を実行する。第2のデータは、方法600で前述したように、サーバデータベース162に保存された履歴測定データおよび/または履歴詳細データを含むことができる。
ステップ654において、リモートコンピュータサーバ160は、サーバデータベース162に保存された履歴測定/詳細データを読み出す。ステップ656において、リモートコンピュータサーバ160は、上記のデータ圧縮アルゴリズムを使用することによって、履歴測定/詳細データを圧縮する。あるいはまた、履歴測定/詳細データは圧縮されないが、圧縮可能とすることができる。ステップ658において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ660において、リモートコンピュータサーバ160は、第2のセッション鍵を使用して、履歴測定/詳細データを暗号化する。ステップ662において、リモートコンピュータサーバ160は、トークン生成プロセス400/450から生成されたクライアントの公開鍵154-1を使用して、第2のセッション鍵を暗号化する。第2のデータ通信命令は、ローカルクライアントコンピュータ150および/またはそれをリモートコンピュータサーバ160に使用してローカルクライアントコンピュータ150用に生成されたクライアントの公開鍵154-1を識別するクライアントを識別するクライアントトークンを含むことができる。ステップ664において、リモートコンピュータサーバ160は、暗号化された履歴測定/詳細データおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
ステップ666において、ローカルクライアントコンピュータ150は、トークン生成プロセス400/450から生成されたクライアントの秘密鍵154-2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ668において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化された履歴測定/詳細データを復号化し、復号化された履歴測定/詳細データを抽出する。ステップ670において、履歴測定/詳細データは圧縮することができ、ローカルクライアントコンピュータ150は、圧縮された履歴測定/詳細データをその元の非圧縮状態に解凍する。あるいはまた、履歴測定/詳細データは元々圧縮されていなくてもよい。ステップ672において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいて、履歴測定/詳細データをローカルデータベース152に保存する。ステップ674において、ローカルクライアントコンピュータ150は、クライアントアプリケーション上の履歴測定/詳細データを表示する。一実施形態では、ローカルクライアントコンピュータ150は、履歴測定データのみを受信し、アルゴリズムのセットを使用して、履歴測定データを結合および/または操作して、詳細データを生成することができる。
したがって、方法650の上記のステップでは、ローカルクライアントコンピュータ150は、HTTPSプロトコルを介して、リモートコンピュータサーバ160から任意の時点で履歴測定/詳細データを読み出すことができる。一実施形態では、第2のデータ通信命令は、履歴測定/詳細データの少なくとも1つのセットを読み出すための単一の要求である。クライアントが履歴測定/詳細データの別のセットまたは追加のセットを読み出したい場合、追加の第2のデータ通信命令が実行される。したがって、当業者は、第2のデータ通信命令が、リモートコンピュータサーバ160から複数のパケットまたは履歴測定/詳細データのセットを読み出すために繰り返され得ることを容易に理解するであろう。
図7Aおよび図7Bを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法700が存在する。方法700の様々なステップは、ローカルクライアントコンピュータ150にインストールされ実行されたクライアントアプリケーションを使用して実行される。
図7Aを参照する方法700のステップ702において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160が第1のデータを認証するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。第1のデータは、ローカルクライアントコンピュータ150のクライアントまたはユーザのユーザ名および/またはパスワードを含み得る認証データ/情報を含む。認証データは、ローカルクライアントコンピュータ150上の他のアプリケーションおよび/またはクライアントアプリケーションの他のモジュールにアクセスするために必要とされ得る。したがって、第1のデータ通信命令は、認証要求と呼ぶことができる。
ステップ704において、ローカルクライアントコンピュータ150は、認証データを取得する。認証データは、ローカルデータベース152から取り出すことができるか、またはクライアントによって提供されることができる。ステップ706において、ローカルクライアントコンピュータ150は、データ圧縮アルゴリズムを使用することによって認証データを圧縮する。あるいはまた、認証データは圧縮されないが、圧縮可能とすることができる。ステップ708において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ710において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して認証データを暗号化する。ステップ712において、ローカルクライアントコンピュータ150は、トークン生成プロセス400/450から生成されたサーバの公開鍵164-1を使用して、第1のセッション鍵を暗号化する。ステップ714において、ローカルクライアントコンピュータ150は、暗号化された認証データおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
ステップ716において、リモートコンピュータサーバ160は、サーバの秘密鍵164-2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ718において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された認証データを復号化し、復号化された認証データを抽出する。ステップ720において、認証データは圧縮することができ、リモートコンピュータサーバ160は、圧縮された認証データをその元の非圧縮状態に解凍する。あるいはまた、認証データは元々圧縮されていなくてもよい。ステップ722において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて認証データを処理する。具体的には、リモートコンピュータサーバ160は、検証プロセスを通じて認証データを認証する。検証プロセスは、認証データを、クライアントから事前に取得され、サーバデータベース162に保存されている参照認証データと比較することを含む。ステップ724において、リモートコンピュータサーバ160は、認証データの認証の成功に応答してMACを生成する。
図7Bをさらに参照するステップ726において、リモートコンピュータサーバ160は、ローカルクライアントコンピュータ150と協働して、MACをローカルクライアントコンピュータ150に送信するための第2のデータ通信命令を実行する。ステップ728において、リモートコンピュータサーバ160は、データ圧縮アルゴリズムを使用することによってMACを圧縮する。あるいはまた、MACは非圧縮であるが、圧縮可能とすることができる。ステップ730において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ732において、リモートコンピュータサーバ160は、第2のセッション鍵を使用してMACを暗号化する。ステップ734において、リモートコンピュータサーバ160は、トークン生成プロセス400/450から生成されたクライアントの公開鍵154-1を使用して、第2のセッション鍵を暗号化する。ステップ736において、リモートコンピュータサーバ160は、暗号化されたMACおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
ステップ738において、ローカルクライアントコンピュータ150は、トークン生成プロセス400/450から生成されたクライアントの秘密鍵154-2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ740において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化されたMACを復号化し、復号化されたMACを抽出する。ステップ742において、MACは圧縮することができ、ローカルクライアントコンピュータ150は、圧縮されたMACを元の非圧縮状態に解凍する。あるいはまた、MACは元々非圧縮とすることができる。ステップ744において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいてMACを処理する。例えば、MACは、クライアントが、ローカルクライアントコンピュータ150および/またはクライアントアプリケーションの他のモジュール上の他のアプリケーションに正常にアクセスすることを可能にする。
図8A~図8Cを参照するいくつかの実施形態では、HTTPSプロトコルを介してローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護するためのプロセス、機能、または方法800および850が存在する。方法800および850の様々なステップは、ローカルクライアントコンピュータ150にインストールおよび実行されたクライアントアプリケーションを使用して実行される。方法800は、第1のデータをリモートコンピュータサーバ160と通信してそこに保存するために実行することができ、方法850は、リモートコンピュータサーバ160から第2のデータを読み出すために実行することができる。第1のデータは、現在のデータセットを含むことができ、第2のデータは、過去のデータセットを含むことができる。
現在のデータセットは、以前にリモートコンピュータサーバ160に送信されていない、最近収集された新しい個人/医療データを含むことができる。現在のデータセットは、文書形式、データ形式、データの記録、生データ、または他の任意の適切な形式とすることができる。現在のデータセットは、ローカルデータベース152に保存され、ローカルデータベース152から読み出すことができる。過去のデータセットは、サーバデータベース162に保存するためにリモートコンピュータサーバ160にすでに送信された、以前に収集された過去のデータ/情報を含むことができる。過去のデータセットは、クライアントアプリケーション上で視覚化するために、リモートコンピュータサーバ160から読み出し戻すことができる。
現在のデータセットおよび過去のデータセットのそれぞれは、準拠データセットおよび/または非準拠データセットを含むことができる。準拠データセットは、個人データセット、詳細データセット、またはローカルクライアントコンピュータ150およびリモートコンピュータサーバ160がアクセスを許可され得る前に規制またはポリシーが承認されることを要求し得る任意の他のデータを含むことができる。準拠データは、クライアントアカウントまたはクライアントプロファイルに関する情報(例えば、クライアントの身長、体重、年齢)が含むことができる。非準拠のデータセットは、測定データセット、生データセット、詳細データセット、またはアクセスが許可される前に通常チェックを必要としないその他のデータを含むことができる。詳細データセットは、ローカルクライアントコンピュータ150および/またはリモートコンピュータサーバ160に実装されたアルゴリズムのセットに基づいて生成することができる。詳細データセットは、活動データ、睡眠データ、ストレスデータ、または被験者/患者の生体認証に関連する任意の同様の形式のデータを含むことができる。詳細データは、心拍数、心拍変動、血圧、脈圧、センサーなどによって測定された関連データ、およびそれらの任意の組み合わせなどが挙げられるがこれらに限定されない測定データまたは生データに基づいて生成することができる。
リモートコンピュータサーバ160は、プログラミング機能のセットを備えたAPIを使用して、準拠/非準拠データをローカルクライアントコンピュータ150に通信することができる。プログラミング機能は、Java、JavaScript、Python、ハイパーテキストマークアップ言語(HTML)などが挙げられるがこれらに限定されない様々なプログラミング言語に基づくことができる。
図8Aを参照する方法800のステップ802において、ローカルクライアントコンピュータ150は、第1のクライアントの公開鍵と秘密鍵のペア154aおよび第1のサーバの公開鍵と秘密鍵のペア164aを生成するために、リモートコンピュータサーバ160と協働して第1のトークン生成プロセス400/450を実行する。ステップ804において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から第1のサーバの公開鍵164a-1および第1のクライアントの秘密鍵154a-2を受信する。ステップ806において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160に第1のデータまたは現在のデータセットを保存するために、リモートコンピュータサーバ160と協働して第1のデータ通信命令を実行する。ステップ808において、ローカルクライアントコンピュータ150は、ローカルデータベース152に保存された現在のデータセットを読み出す。現在のデータセットは、上記の実施形態で説明したように圧縮することができる。ステップ810において、ローカルクライアントコンピュータ150は、第1のセッション鍵を生成する。ステップ812において、ローカルクライアントコンピュータ150は、第1のセッション鍵を使用して現在のデータセットを暗号化する。ステップ814において、ローカルクライアントコンピュータ150は、第1のサーバの公開鍵164a-1を使用して第1のセッション鍵を暗号化する。ステップ816において、ローカルクライアントコンピュータ150は、暗号化された現在のデータセットおよび暗号化された第1のセッション鍵をリモートコンピュータサーバ160に送信する。
いくつかの実施形態では、現在のデータセットは、準拠データおよび非準拠データを含む。一実施形態では、データの現在のセットは、第1のセッション鍵、すなわち、準拠データを使用して暗号化され、非準拠データは、同じ第1のセッション鍵を使用して暗号化される。別の一実施形態では、準拠データおよび非準拠データは、異なるセッション鍵を使用して暗号化される。ローカルクライアントコンピュータ150は、準拠データを暗号化するための第1のセッション鍵Aと、非準拠データを暗号化するための第1のセッション鍵Bとを生成するであろう。
第1のクライアントの公開鍵と秘密鍵のペア154aおよび第1のサーバの公開鍵と秘密鍵のペア154bは、それらが1回使用に対してのみ有効である有効期限条件を有することができる。1回使用の有効期限条件は、新しいクライアントアカウント/プロファイル情報の保存、またはリモートコンピュータサーバ160上のデータへアクセスするための許可の要求など、一時的または1回使用の状況に適している場合がある。
ステップ818において、リモートコンピュータサーバ160は、第1のサーバの秘密鍵164a-2を使用して暗号化された第1のセッション鍵を復号化し、復号化された第1のセッション鍵を抽出する。ステップ820において、リモートコンピュータサーバ160は、復号化された第1のセッション鍵を使用して暗号化された現在のデータセットを復号化し、復号化された現在のデータセットを抽出する。ステップ822において、リモートコンピュータサーバ160は、第1のデータ通信命令に基づいて、現在のデータセットをサーバデータベース162に保存する。
クライアントは、その後、方法850を使用することなどによって、リモートコンピュータサーバ160から現在のデータセットおよび/または過去のデータセットを読み出したいと思う可能性がある。図8Bを参照すると、ステップ852において、ローカルクライアントコンピュータ150は、現在のデータセットおよび/または過去のデータセットにアクセスする許可を要求するために、リモートコンピュータサーバ160と協働して第2のデータ通信命令を実行する。現在のデータセットおよび/または過去のデータセットは、準拠/非準拠のデータを含むことができる。ステップ854において、リモートコンピュータサーバ160は、クライアントが準拠/非準拠データへのアクセスを許可されているかどうかを決定するクライアント許可レベルを決定する。
ステップ856において、リモートコンピュータサーバ160は、要求されたデータの全部または一部のクライアントアクセスレベルを限定するために含まれるクライアント資格情報のセットをチェックする。準拠/非準拠データの処理および普及の一部として、リモートコンピュータサーバ160は、クライアントの資格情報に従って、クライアントが要求および取得することを許可され得るデータ、データレコード、生データ、詳細データ、処理されたデータ、または前記データのいずれかの一部のどのフィールドを決定するかを判定および/またはレビューすることができる。その後、クライアントは準拠/非準拠データのすべてまたは一部を閲覧またはアクセスできるようになる。また、リモートコンピュータサーバ160は、事前定義された期間内に準拠/非準拠データにアクセスすることのみをクライアントに許可することができる。これにより、リモートコンピュータサーバ160は、不要なデータがサーバデータベース162のアクティブな記憶場所に配置されるのを監視および防止することができ、不要なデータは、サーバデータベース162の休止中の記憶場所に保存させることができる。
ステップ858において、リモートコンピュータサーバ160は、ステップ856からのクライアントの成功した許可に応答して、MACを生成する。MACは、圧縮することができる。ステップ860において、リモートコンピュータサーバ160は、第2のセッション鍵を生成する。ステップ862において、リモートコンピュータサーバ160は、第2のセッション鍵を使用してMACを暗号化する。ステップ864において、リモートコンピュータサーバ160は、第1のクライアント公開鍵154a-1を使用して第2のセッション鍵を暗号化する。ステップ866において、リモートコンピュータサーバ160は、暗号化されたMACおよび暗号化された第2のセッション鍵をローカルクライアントコンピュータ150に送信する。
ステップ868において、ローカルクライアントコンピュータ150は、第1のクライアントの秘密鍵154a-2を使用して暗号化された第2のセッション鍵を復号化し、復号化された第2のセッション鍵を抽出する。ステップ870において、ローカルクライアントコンピュータ150は、復号化された第2のセッション鍵を使用して暗号化されたMACを復号化し、復号化されたMACを抽出する。ステップ872において、ローカルクライアントコンピュータ150は、第2のデータ通信命令に基づいてMACを処理する。例えば、MACは、クライアントに準拠/非準拠データへのアクセスを要求可能にする。
さらに図8Cを参照すると、ステップ874において、ローカルクライアントコンピュータ150は、第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンを生成するために、リモートコンピュータサーバ160と協働して第2のトークン生成プロセス400/450を実行する。クライアントが準拠/非準拠データにアクセスするには、第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンが必要となる。準拠/非準拠データにアクセスする期間は、データの量および/または重要性に応じて事前に設定できる。第2のクライアントの公開鍵と秘密鍵のペア154b、第2のサーバの公開鍵と秘密鍵のペア164b、およびクライアントトークンは、それらが事前定義された期間のみ有効である有効期限条件を有することができる。事前定義された期間は2時間とすることができ、未知のユーザまたはクライアントが準拠/非準拠データにアクセスするのを防ぐのに役立つことができる。ステップ876において、ローカルクライアントコンピュータ150は、第2のサーバの公開鍵164b-1、第2のクライアントの秘密鍵154b-2、およびクライアントトークンをリモートコンピュータサーバ160から受信する。
ステップ878において、ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160から準拠/非準拠データにアクセスして読み出すために、リモートコンピュータサーバ160と協働して第3のデータ通信命令を実行する。第3のデータ通信命令は、ローカルクライアントコンピュータ150/クライアントを識別するためのクライアントトークンを含むことができ、クライアントトークンは、クライアントが準拠/非準拠データへのアクセスおよび読み出しからログアウトされた後、事前定義された有効期間の間、アクティブのままでいることができる。リモートコンピュータサーバ160は、クライアントトークンの有効期限切れ時に、タイムアウトまたはログアウトメッセージをローカルクライアントコンピュータ150に送信することができる。
ステップ880において、リモートコンピュータサーバ160は、サーバデータベース162に保存された準拠/非準拠データを照会および読み出す。ステップ882において、リモートコンピュータサーバ160は、第3のセッション鍵を生成する。ステップ884において、リモートコンピュータサーバ160は、第3のセッション鍵を使用して、準拠/非準拠データを暗号化する。ステップ886において、リモートコンピュータサーバ160は、第2のクライアントの公開鍵154b-1を使用して第3のセッション鍵を暗号化する。ステップ888において、リモートコンピュータサーバ160は、暗号化された準拠/非準拠データおよび暗号化された第3のセッション鍵をローカルクライアントコンピュータ150に送信する。
一実施形態では、準拠データおよび非準拠データは、同じ第3のセッション鍵を使用して暗号化される。別の一実施形態では、準拠データおよび非準拠データは、異なるセッション鍵を使用して暗号化される。リモートコンピュータサーバ160は、準拠データを暗号化するための第3のセッション鍵Aと、非準拠データを暗号化するための第3のセッション鍵Bとを生成するであろう。
ステップ890において、ローカルクライアントコンピュータ150は、生成された第2のクライアントの秘密鍵154b-2を使用して暗号化された第3のセッション鍵を復号化し、復号化された第3のセッション鍵を抽出する。ステップ892において、ローカルクライアントコンピュータ150は、復号化された第3のセッション鍵を使用して暗号化された準拠/非準拠データを復号化し、復号化された準拠/非準拠データを抽出する。ステップ894において、ローカルクライアントコンピュータ150は、第3のデータ通信命令に基づいて、準拠/非準拠データをローカルデータベース152に保存する。
一実施形態では、ローカルクライアントコンピュータ150は、クライアントアプリケーション上で視覚化するために準拠/非準拠データを表示する。別の一実施形態では、ローカルクライアントコンピュータ150は、準拠/非準拠データを他のクライアントコンピュータ/デバイスに配布する。ローカルクライアントコンピュータ150は、暗号化された準拠/非準拠データを他のクライアントコンピュータ/デバイスに通信する前に、準拠/非準拠データを暗号化するための配布セッション鍵のセットを生成することができる。準拠/非準拠データは、準拠/非準拠データの1つ以上のパーティションに分割できる。パーティションは、ローカルデータベース152の別個の保存場所に保存することができる。パーティションは、同じ配布セッション鍵で暗号化することができるか、またはそれぞれのパーティションをその独自の配布セッション鍵で暗号化することができる。準拠/非準拠データまたはそのパーティションを暗号化するために使用される配布セッション鍵はまた、受信したデータを復号化するために他のクライアントコンピュータ/デバイスに通信される。
本明細書で説明される様々な実施形態は、暗号化および復号化のためにセキュリティキー140を使用することによって、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間のデータ通信を保護することに関する。セキュリティキー140は、トークン生成プロセス400/450によって生成されたクライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164とを含む。図9Aは、リモートコンピュータサーバ160からローカルクライアントコンピュータ150に通信されたトークン生成プロセス400からのOAuth 2.0応答900を示している。応答900は、クライアントの秘密鍵154-2のテキスト文字列902およびサーバの公開鍵164-1のテキスト文字列904を示している。図9Bは、ローカルクライアントコンピュータ150からリモートコンピュータサーバ160に通信される暗号化された非準拠データの暗号文906を示し、データはセッション鍵を使用して暗号化される。図9Cは、セッション鍵を使用して復号化された非準拠データのプレーンテキスト908を示している。
いくつかの実施形態では、クライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164は、1回使用の有効期限条件を有する。有効期限条件はさらに、事前定義された有効期間を含むことができるので、1回使用は、事前定義された有効期間中に実行されなければならない。クライアントの公開鍵と秘密鍵のペア154とサーバの公開鍵と秘密鍵のペア164は、それらが使用されていなくても、事前定義された有効期間の後に自動的に期限切れになる。図9Dは、1回使用のクライアントの秘密鍵154-2のテキスト文字列910および1回使用のサーバの公開鍵164-1のテキスト文字列912を示している。1回使用の鍵は、クライアントアプリケーションの組み込みブラウザまたは別のインターネットブラウザがログインページを読み出して、クライアントプロファイルの閲覧および編集などの様々な機能を実行する場合など、1回使用の状況に適している場合がある。クライアントはブラウザを使用してデータ通信命令を実行し、関連する1回使用のキーを使用してデータを暗号化/復号化する。一例では、1回使用のサーバ公開鍵164-1は、リモートコンピュータサーバ160に送信される認証データを暗号化するためにローカルクライアントコンピュータ150によって使用される。認証データには、ユーザ名および/またはパスワード、またはパスワードを変更するための命令が含まれる。別の一例では、1回使用のクライアントの公開鍵154-1は、ローカルクライアントコンピュータ150に送信されてブラウザに表示されるプロファイルページを暗号化するために、リモートコンピュータサーバ160によって使用される。
本明細書に記載の様々な実施形態は、有利には、ユーザまたはクライアントが、リモートコンピュータサーバ160によって生成されるクライアントの公開鍵と秘密鍵のペア154およびサーバの公開鍵と秘密鍵のペア164を含むセキュリティキー140を使用することによって、ローカルクライアントコンピュータ150とリモートコンピュータサーバ160との間の安全なデータ通信を実行することを可能にする。これにより、データ通信プロセスを複雑にするセキュリティキーを提供するサードパーティのサーバが不要になる。ローカルクライアントコンピュータ150は、リモートコンピュータサーバ160からセキュリティキー140を要求し、必要なときはいつでも、リモートコンピュータサーバ160との安全なデータ通信を開始することができる。データ通信は、セキュリティキー140を使用して暗号化された新しいデータを保存するため、または過去のデータを読み出すためのものとすることができる。
医療/個人情報の例では、一部のデータはすべての場合に機密であり、クライアントのグループのみがアクセスできると想定することができるが、他の一部のデータは選択されたクライアントのみがアクセスできる。したがって、異なるクラスのデータは、異なるクライアントの選択によってのみアクセスできる。クライアント固有の公開鍵154-1を使用してデータを暗号化し、対応するクライアント固有の秘密鍵154-2を使用して暗号化されたデータを復号化することにより、異なるクライアントが異なるクラスのデータにアクセスできる。これにより、有利には、選択されたクライアントのみが選択されたクラスのデータにアクセスでき、関連する規制/ポリシーの範囲内で医療/個人情報を依然として維持しながら、それらに特定の変更を加えることなどの目的を可能にする。これにより、許可されていないデータへの不正アクセスが防止され、したがって医療/個人情報の誤った集合分析につながる可能性のある慎重に扱うべき医療/個人情報の改ざんが防止される。
図10は、本開示の実施形態に係るコンピュータ1000の技術的アーキテクチャを示すブロック図である。コンピュータ1000のいくつかの非限定的な例は、第1のコンピュータ110、第2のコンピュータ120、ローカルクライアントコンピュータ150、およびリモートコンピュータサーバ160である。コンピュータ1000は、プロセッサ/中央処理装置(CPU)1002、メモリデバイス1004、データベース1006、データ通信モジュール1008、およびセキュリティモジュール1010を含む。
プロセッサ1002は、メモリデバイス1004からプロセッサ1002がアクセスする命令、コード、コンピュータプログラム、および/またはスクリプトを実行する。プロセッサ1002は、そのような操作またはステップを実行するための適切な論理、回路、および/またはインターフェースを含む。プロセッサ1002のいくつかの非限定的な例には、特定用途向け集積回路(ASIC)プロセッサ、縮小命令セットコンピューティング(RISC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)などが含まれる。1つのプロセッサ1002のみが示されているが、複数のプロセッサ1002が存在してもよい。したがって、命令は、プロセッサ1002によって実行されるものとして説明することができるが、命令は、同時に、連続して、または他の方法で1つまたは複数のプロセッサ1002によって(例えば、マルチコア構成で)実行することができる。
メモリデバイス1004は、ストレージデバイス(フラッシュメモリ、ディスクドライブ、またはメモリカードなど)、読み取り専用メモリ(ROM)、およびランダムアクセスメモリ(RAM)を含むことができる。メモリデバイス1004は、本開示の様々な実施形態に係る方法の様々な操作またはステップを実行するために、プロセッサ1002によって動作可能な非一時的な命令を保存する。メモリデバイス1004は、コンピュータ可読記憶媒体および/または非一時的なコンピュータ可読媒体と呼ぶことができる。非一時的なコンピュータ可読媒体には、一時的な伝搬信号自体だけを除いて、すべてのコンピュータ可読媒体が含まれる。
データベース1006は、データを保存および/または読み出すのに適した任意のコンピュータ操作ハードウェアである。データベース1006のいくつかの非限定的な例は、データベース112、122、152、および162である。データベース1006は、ハードディスクおよび/または独立ディスクの冗長アレイ(RAID)構成のソリッドステートディスクなどの複数のストレージユニットを含み得る。データベース1006は、ストレージエリアネットワーク(SAN)および/またはネットワークアタッチトストレージ(NAS)システムを含むことができるが、これらに限定されない。データ通信モジュール1008は、他のコンピュータ1000と通信するように構成される。例えば、ローカルクライアントコンピュータ150のデータ通信モジュール1008は、リモートコンピュータサーバ160のデータ通信モジュール1008とデータを通信または交換することができる。
セキュリティモジュール1010は、本明細書で説明される様々な対称/非対称暗号化アルゴリズムに従ってセキュリティキー140を生成するように構成される。さらに、セキュリティモジュール1010は、セキュリティキー140を使用してデータの暗号化および復号化を実行するように構成される。セキュリティキー140のいくつかの非限定的な例は、セッション鍵、第1の公開鍵と秘密鍵のペア、第2の公開鍵と秘密鍵のペア、クライアントの公開鍵と秘密鍵のペア154、およびサーバの公開鍵と秘密鍵のペア164である。セキュリティモジュール1010は、データを暗号化するためのセッション鍵を生成し、また、トークン生成プロセス400/450を介して公開鍵と秘密鍵のペアを生成する。
前述の詳細な説明では、コンピュータ間のデータ通信を保護するためのシステムおよび方法に関する本開示の実施形態が、提供された図を参照して説明されている。本明細書の様々な実施形態の説明は、本開示の具体的なまたは特定の表現のみを呼び出すか、または限定することを意図するものではなく、単に本開示の非限定的な例を示すことを意図する。本開示は、先行技術に関連する言及された問題および問題点の少なくとも1つに対処するのに役立つ。本開示のいくつかの実施形態のみが本明細書に開示されているが、本開示を考慮して当業者には、開示された実施形態に本開示の範囲から逸脱することなく様々な変更および/または修正を行うことができることが明らかであろう。したがって、本開示の範囲ならびに以下の特許請求の範囲は、本明細書に記載の実施形態に限定されない。

Claims (20)

  1. 第1のコンピュータと第2のコンピュータとの間のデータ通信を保護するための方法であって、前記方法は、前記第1および第2のコンピュータによって実行され、
    前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
    前記第1のコンピュータによって第1のセッション鍵を生成することと、
    前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
    第1の公開鍵を使用して前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは前記第2のコンピュータによって前記第2のコンピュータのために生成される、暗号化することと、
    前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記第1の秘密鍵を使用して前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
    前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
    前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含み、
    前記第1の公開鍵または前記第1の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、Hyper Text Transfer Protocol Secure(HTTPS)プロトコルを介して前記第1のコンピュータから前記第2のコンピュータに通信され、
    前記第1の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成されるとき、前記第1の秘密鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第1の秘密鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第1の秘密鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
    前記第1の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成されるとき、前記第1の公開鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第1の公開鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第1の公開鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される方法。
  2. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化されたトークン要求を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
    前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
    前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項1に記載の方法
  3. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化された第1の秘密鍵を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項1に記載の方法。
  4. 前記第1の公開鍵と秘密鍵のペアは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項1~3のいずれか一項に記載の方法。
  5. 前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項1~4のいずれか一項に記載の方法。
  6. 前記第1のコンピュータは、リモートコンピュータサーバであり、前記第2のコンピュータは、ローカルクライアントコンピュータである、請求項1~4のいずれか一項に記載の方法。
  7. 前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
    前記第2のコンピュータによって第2のセッション鍵を生成することと、
    前記第2のセッション鍵を使用して、前記第2のデータを前記第2のコンピュータによって暗号化することと、
    第2の公開鍵を使用して、前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは前記第2のコンピュータによって前記第1のコンピュータのために生成される、暗号化することと、
    前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記第2の秘密鍵を使用して、前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
    前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
    前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含み、
    前記第2の公開鍵または前記第2の秘密鍵は、前記第1のコンピュータによって生成された前記トークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに通信され、
    前記第2の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成されるとき、前記第2の公開鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第2の公開鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第2の公開鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
    前記第2の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成されるとき、前記第2の秘密鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第2の秘密鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第2の秘密鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される、請求項1に記載の方法。
  8. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記トークンセッション鍵を使用して、トークン要求を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化されたトークン要求を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
    前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の秘密鍵を前記第2のコンピュータによって暗号化することと、
    前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項7に記載の方法。
  9. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記第2のコンピュータのために前記第1の公開鍵と秘密鍵のペアを前記第1のコンピュータによって生成することと、
    前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項7に記載の方法。
  10. 前記第1および第2の公開鍵と秘密鍵のペアのそれぞれは、有効期限条件が満たされる前に暗号化および復号化に有効であるように、有効期限条件を有する、請求項7~9のいずれか一項に記載の方法。
  11. 前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバであり、前記第1のデータは、前記ローカルクライアントコンピュータのユーザの認証データを含み、前記第2のデータは、前記リモートコンピュータサーバによる前記認証データの認証の成功に応答して前記リモートコンピュータサーバによって生成されるメッセージ認証コード(MAC)を含む、請求項7~10のいずれか一項に記載の方法。
  12. 互いに通信可能に接続された第1のコンピュータおよび第2のコンピュータを含み、前記第1および第2のコンピュータ間のデータ通信を保護するために構成されたコンピュータシステムであって、前記第1および第2のコンピュータは、
    前記第1のコンピュータから前記第2のコンピュータへ第1のデータを通信するための第1のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
    前記第1のコンピュータによって第1のセッション鍵を生成することと、
    前記第1のセッション鍵を使用して前記第1のデータを前記第1のコンピュータによって暗号化することと、
    第1の公開鍵を使用して、前記第1のセッション鍵を前記第1のコンピュータによって暗号化することであって、前記第1の公開鍵は第1の秘密鍵とペアにされ、前記第1の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは第2のコンピュータによって前記第2のコンピュータのために生成される、暗号化することと、
    前記暗号化された第1のデータおよび前記暗号化された第1のセッション鍵を前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記第1の秘密鍵を使用して、前記暗号化された第1のセッション鍵を前記第2のコンピュータによって復号化することと、
    前記復号化された第1のセッション鍵を使用して、前記暗号化された第1のデータを前記第2のコンピュータによって復号化することと、
    前記第1のデータ通信命令に基づいて前記復号化された第1のデータを前記第2のコンピュータによって処理することとを含むステップを実行するために構成され、
    前記第1の公開鍵または前記第1の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、Hyper Text Transfer Protocol Secure(HTTPS)プロトコルを介して前記第1のコンピュータから前記第2のコンピュータに通信され、
    前記第1の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成されるとき、前記第1の秘密鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第1の秘密鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第1の秘密鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
    前記第1の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成されるとき、前記第1の公開鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第1の公開鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第1の公開鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化されるコンピュータシステム。
  13. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化されたトークン要求を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
    前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の公開鍵を前記第2のコンピュータによって暗号化することと、
    前記暗号化された第1の公開鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵を前記第1のコンピュータによって復号化することとを含む、請求項12に記載のシステム。
  14. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して前記第1の秘密鍵を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化された第1の秘密鍵を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵を前記第2のコンピュータによって復号化することとを含む、請求項12に記載のシステム。
  15. 前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバである、請求項12~14のいずれか一項に記載のシステム。
  16. 前記第1のコンピュータはリモートコンピュータサーバであり、前記第2のコンピュータはローカルクライアントコンピュータである、請求項12~14のいずれか一項に記載のシステム。
  17. 前記ステップは、
    前記第2のコンピュータから前記第1のコンピュータへ第2のデータを通信するための第2のデータ通信命令を、前記第1および第2のコンピュータによって協働的に実行することと、
    前記第2のコンピュータによって第2のセッション鍵を生成することと、
    前記第2のセッション鍵を使用して前記第2のデータを前記第2のコンピュータによって暗号化することと、
    第2の公開鍵を使用して前記第2のセッション鍵を前記第2のコンピュータによって暗号化することであって、前記第2の公開鍵は第2の秘密鍵とペアにされ、前記第2の公開鍵と秘密鍵のペアは、前記第1のコンピュータまたは前記第2のコンピュータによって前記第1のコンピュータのために生成される、暗号化することと、
    前記暗号化された第2のデータおよび前記暗号化された第2のセッション鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記第2の秘密鍵を使用して前記暗号化された第2のセッション鍵を前記第1のコンピュータによって復号化することと、
    前記復号化された第2のセッション鍵を使用して、前記暗号化された第2のデータを前記第1のコンピュータによって復号化することと、
    前記第2のデータ通信命令に基づいて前記復号化された第2のデータを前記第1のコンピュータによって処理することとをさらに含み、
    前記第2の公開鍵または前記第2の秘密鍵は、前記第1のコンピュータによって生成されたトークンセッション鍵を用いて暗号化および復号化され、前記トークンセッション鍵は、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに通信され、
    前記第2の公開鍵と秘密鍵のペアが前記第1のコンピュータによって生成されるとき、前記第2の公開鍵は前記トークンセッション鍵を使用して前記第1のコンピュータによって暗号化され、前記暗号化された第2の公開鍵は、前記第1のコンピュータから前記第2のコンピュータに通信され、前記暗号化された第2の公開鍵は、前記トークンセッション鍵を使用して前記第2のコンピュータによって復号化され、
    前記第2の公開鍵と秘密鍵のペアが前記第2のコンピュータによって生成されるとき、前記第2の秘密鍵は前記トークンセッション鍵を使用して前記第2のコンピュータによって暗号化され、前記暗号化された第2の秘密鍵は、前記第2のコンピュータから前記第1のコンピュータに通信され、前記暗号化された第2の秘密鍵は、前記トークンセッション鍵を使用して前記第1のコンピュータによって復号化される、請求項12に記載のシステム。
  18. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記トークンセッション鍵を使用してトークン要求を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化されたトークン要求を、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化されたトークン要求を前記第2のコンピュータによって復号化することと、
    前記第2のコンピュータ用におよび前記第2のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記第1のコンピュータ用に前記第2のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して、前記第1の公開鍵および前記第2の秘密鍵を前記第2のコンピュータによって暗号化することと、
    前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第2のコンピュータから前記第1のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の公開鍵および前記暗号化された第2の秘密鍵を前記第1のコンピュータによって復号化することとを含む、請求項17に記載のシステム。
  19. 前記第1のデータ通信命令を実行する前に、トークン生成プロセスを前記第1および第2のコンピュータによって協働的に実行することをさらに含み、前記トークン生成プロセスは、
    前記第1のコンピュータによって前記トークンセッション鍵を生成することと、
    前記第2のコンピュータのために前記第1のコンピュータによって前記第1の公開鍵と秘密鍵のペアを生成することと、
    前記第1のコンピュータ用のおよび前記第1のコンピュータによって前記第2の公開鍵と秘密鍵のペアを生成することと、
    前記トークンセッション鍵を使用して前記第1の秘密鍵および前記第2の公開鍵を前記第1のコンピュータによって暗号化することと、
    前記トークンセッション鍵と前記暗号化された第1の秘密鍵と前記暗号化された第2の公開鍵とを、前記HTTPSプロトコルを介して前記第1のコンピュータから前記第2のコンピュータに送信することと、
    前記トークンセッション鍵を使用して、前記暗号化された第1の秘密鍵および前記暗号化された第2の公開鍵を前記第2のコンピュータによって復号化することとを含む、請求項17に記載のシステム。
  20. 前記第1のコンピュータはローカルクライアントコンピュータであり、前記第2のコンピュータはリモートコンピュータサーバであり、前記第1のデータ通信命令は、前記第1のデータを前記リモートコンピュータサーバに保存することに関し、前記第2のデータ通信命令は、前記第2のデータを前記リモートコンピュータサーバから読み出すことに関する、請求項17から19のいずれか一項に記載のシステム。
JP2020545692A 2018-03-02 2019-02-28 コンピュータ間のデータ通信を保護するためのシステムおよび方法 Active JP7314156B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG10201801747W 2018-03-02
SG10201801747W 2018-03-02
PCT/SG2019/050114 WO2019168477A1 (en) 2018-03-02 2019-02-28 System and method for securing data communication between computers

Publications (3)

Publication Number Publication Date
JP2021516491A JP2021516491A (ja) 2021-07-01
JPWO2019168477A5 JPWO2019168477A5 (ja) 2022-02-18
JP7314156B2 true JP7314156B2 (ja) 2023-07-25

Family

ID=67808799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020545692A Active JP7314156B2 (ja) 2018-03-02 2019-02-28 コンピュータ間のデータ通信を保護するためのシステムおよび方法

Country Status (8)

Country Link
US (1) US11310038B2 (ja)
EP (1) EP3759867A4 (ja)
JP (1) JP7314156B2 (ja)
KR (1) KR20200127201A (ja)
CN (1) CN112075051A (ja)
AU (1) AU2019228421A1 (ja)
SG (1) SG11202008452PA (ja)
WO (1) WO2019168477A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112567682B (zh) * 2018-08-13 2024-05-28 维萨国际服务协会 用于生成密码以进行令牌交互的令牌密钥
US11463258B2 (en) 2020-03-13 2022-10-04 Ebay Inc. Secure token refresh
US11343079B2 (en) * 2020-07-21 2022-05-24 Servicenow, Inc. Secure application deployment
US11153080B1 (en) * 2020-07-29 2021-10-19 John A. Nix Network securing device data using two post-quantum cryptography key encapsulation mechanisms
US11444753B1 (en) * 2021-03-09 2022-09-13 ISARA Corporation Protocol key negotiation
CN116112152B (zh) * 2023-04-11 2023-06-02 广东徐工汉云工业互联网有限公司 跨企业网络的数据共享安全加密方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538670A (ja) 2000-11-28 2004-12-24 ナグラヴィジオン エスアー トランザクションの証明書
JP2007258822A (ja) 2006-03-20 2007-10-04 Canon Inc 通信システム、その処理方法及び通信装置
CN106506470A (zh) 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 网络数据安全传输方法
US20170359314A1 (en) 2016-06-12 2017-12-14 Apple Inc. Secure Transfer of A Data Object Between User Devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2452699A (en) * 1998-01-09 1999-07-26 Cybersafe Corporation Client side public key authentication method and apparatus with short-lived certificates
US6980659B1 (en) * 2000-06-02 2005-12-27 Brig Barnum Elliott Methods and systems for supplying encryption keys
CA2464788A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. A gaming software distribution network in a gaming system environment
US8165301B1 (en) 2006-04-04 2012-04-24 Bitmicro Networks, Inc. Input-output device and storage controller handshake protocol using key exchange for data security
KR101609580B1 (ko) * 2010-02-10 2016-04-07 삼성전자주식회사 무선 통신 시스템 및 그의 사용자 단말기와 이동성 관리 엔티티 간 연결 방법
US9055520B2 (en) * 2012-12-19 2015-06-09 Cisco Technology, Inc. Systems, methods and media for mobile management entity (MME) selection by Evolved Node B (eNodeB)
UA116025C2 (uk) * 2013-07-04 2018-01-25 Нек Корпорейшн Система, спосіб і пристрій зв'язку
WO2015003753A1 (en) * 2013-07-12 2015-01-15 Nokia Solutions And Networks Oy Redirection of m2m devices
US11349675B2 (en) * 2013-10-18 2022-05-31 Alcatel-Lucent Usa Inc. Tamper-resistant and scalable mutual authentication for machine-to-machine devices
US9942043B2 (en) * 2014-04-23 2018-04-10 Visa International Service Association Token security on a communication device
US10050955B2 (en) * 2014-10-24 2018-08-14 Netflix, Inc. Efficient start-up for secured connections and related services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538670A (ja) 2000-11-28 2004-12-24 ナグラヴィジオン エスアー トランザクションの証明書
JP2007258822A (ja) 2006-03-20 2007-10-04 Canon Inc 通信システム、その処理方法及び通信装置
US20090028341A1 (en) 2006-03-20 2009-01-29 Canon Kabushiki Kaisha Communication system, communication device and processing method therefor
US20170359314A1 (en) 2016-06-12 2017-12-14 Apple Inc. Secure Transfer of A Data Object Between User Devices
CN106506470A (zh) 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 网络数据安全传输方法

Also Published As

Publication number Publication date
JP2021516491A (ja) 2021-07-01
WO2019168477A9 (en) 2020-04-09
US20210058242A1 (en) 2021-02-25
EP3759867A4 (en) 2021-11-03
AU2019228421A1 (en) 2020-09-24
SG11202008452PA (en) 2020-09-29
US11310038B2 (en) 2022-04-19
WO2019168477A1 (en) 2019-09-06
EP3759867A1 (en) 2021-01-06
KR20200127201A (ko) 2020-11-10
CN112075051A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
JP7314156B2 (ja) コンピュータ間のデータ通信を保護するためのシステムおよび方法
US11671425B2 (en) Cross-region requests
US10375067B2 (en) Mutual authentication with symmetric secrets and signatures
US11329962B2 (en) Pluggable cipher suite negotiation
US10680827B2 (en) Asymmetric session credentials
US9973481B1 (en) Envelope-based encryption method
US10182044B1 (en) Personalizing global session identifiers
US9330245B2 (en) Cloud-based data backup and sync with secure local storage of access keys
CN105103119B (zh) 数据安全服务系统
US8745394B1 (en) Methods and systems for secure electronic communication
US9806887B1 (en) Authenticating nonces prior to encrypting and decrypting cryptographic keys
US9485246B2 (en) Distributed authentication with data cloud
US9852300B2 (en) Secure audit logging
US11102191B2 (en) Enabling single sign-on authentication for accessing protected network services
US10277569B1 (en) Cross-region cache of regional sessions
US20180375648A1 (en) Systems and methods for data encryption for cloud services
US11811739B2 (en) Web encryption for web messages and application programming interfaces
Kumar Yadav et al. An Efficient Approach for Security in Cloud Computing
Rostrom Framework to Secure Cloud-based Medical Image Storage and Management System Communications

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20201028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230712

R150 Certificate of patent or registration of utility model

Ref document number: 7314156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150