(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-08
(54)【発明の名称】通信リンク
(51)【国際特許分類】
G06F 21/72 20130101AFI20241001BHJP
H04L 9/08 20060101ALI20241001BHJP
【FI】
G06F21/72
H04L9/08 C
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2024517057
(86)(22)【出願日】2022-09-13
(85)【翻訳文提出日】2024-05-13
(86)【国際出願番号】 SG2022050649
(87)【国際公開番号】W WO2023043368
(87)【国際公開日】2023-03-23
(31)【優先権主張番号】10202110284W
(32)【優先日】2021-09-17
(33)【優先権主張国・地域又は機関】SG
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】524101711
【氏名又は名称】リム、ハン チェン
【氏名又は名称原語表記】LIM, Han Chuen
(71)【出願人】
【識別番号】524101722
【氏名又は名称】リウ、マオトン
【氏名又は名称原語表記】LIU, Maotong
(74)【代理人】
【識別番号】110000729
【氏名又は名称】弁理士法人ユニアス国際特許事務所
(72)【発明者】
【氏名】リム、ハン チェン
(72)【発明者】
【氏名】リウ、マオトン
(57)【要約】
名称:通信リンク。コンピュータシステム19とコンピュータシステム用のデータ処理デバイス11との間でデータを転送するための通信リンク13をここで開示する。通信リンク13は、ユーザコンピュータシステム19からデータ処理デバイス11にデータを転送するための第1の一方向リンク25であって、データ処理デバイス11で受信される前にデータを暗号化するハードウェア暗号化デバイス53を含む第1の一方向リンク25と;、データ処理デバイス11からコンピュータシステム19にデータを転送するための第2の一方向リンク27とから構成される。通信リンク13を含むコンピューティング装置2もここに開示される。
【選択図】
図1a
【特許請求の範囲】
【請求項1】
コンピュータシステムと前記コンピュータシステム用のデータ処理デバイスとの間でデータを転送するための通信リンクであって、
(i)前記コンピュータシステムから前記データ処理デバイスにデータを転送するための第1の一方向リンクであって、前記データ処理デバイスで受信される前にデータを暗号化するハードウェア暗号化デバイスを備える、第1の一方向リンクと、
(ii)前記データ処理デバイスから前記コンピュータシステムへデータを転送するための第2の一方向リンクと、
を備える通信リンク。
【請求項2】
前記ハードウェア暗号化デバイスは、暗号鍵を生成する乱数生成器を含む、請求項1に記載の通信リンク。
【請求項3】
前記ハードウェア暗号化デバイスは、前記ハードウェア暗号化デバイスで暗号鍵として使用するためのランダムビットを前記データ処理デバイスから受信するように構成される、請求項1に記載の通信リンク。
【請求項4】
前記ハードウェア暗号化デバイスは、生成又は受信した暗号鍵を前記コンピュータシステムに提供しないように構成される、請求項2又は3に記載の通信リンク。
【請求項5】
前記第1及び第2の一方向リンクがユニバーサル非同期送受信機(UART)インタフェースリンクを備える、請求項1~4のいずれか一項に記載の通信リンク。
【請求項6】
前記第1の一方向リンクが第1のデータダイオードを更に含み、
前記第2の一方向リンクが第2のデータダイオードを含む、請求項1~5のいずれか一項に記載の通信リンク。
【請求項7】
前記第1のデータダイオードが前記コンピュータシステムと前記ハードウェア暗号化デバイスとの間に位置している、請求項6に記載の通信リンク。
【請求項8】
前記ハードウェア暗号化デバイスが集積回路を含む、請求項1~7のいずれか一項に記載の通信リンク。
【請求項9】
前記ハードウェア暗号化デバイスが排他的論理和(XOR)論理ゲートを含む、請求項8に記載の通信リンク。
【請求項10】
前記ハードウェア暗号化デバイスは、高度暗号化規格(AES)カウンタモード又はワンタイムパッド(OTP)暗号化のいずれかに基づくXOR演算を介して、受信データに対して暗号化演算を実行するように構成される、請求項9に記載の通信リンク。
【請求項11】
前記第2の一方向リンクは、前記コンピュータシステムで受信される前にデータを復号するためのハードウェア復号デバイスを備える、請求項1~10のいずれか一項に記載の通信リンク。
【請求項12】
前記第2のデータダイオードは、前記データ処理デバイスと前記ハードウェア復号デバイスとの間に位置している、請求項6に従属する場合の請求項11に記載の通信リンク。
【請求項13】
前記ハードウェア復号デバイスが集積回路を備える、請求項11又は12に記載の通信リンク。
【請求項14】
前記コンピュータシステムと第1の一方向通信を行い、前記データ処理デバイスと第2の一方向通信を行うネットワークインタフェースを更に備え、
前記第1の一方向リンクは、前記ネットワークインタフェースから前記コンピュータシステムへデータを転送するように構成され、
前記第2の一方向リンクは、前記データ処理デバイスから前記ネットワークインタフェースへデータを転送するように構成される、請求項1~13のいずれか一項に記載の通信リンク。
【請求項15】
少なくとも1つのユーザコンピュータシステムと、
前記少なくとも1つのユーザコンピュータシステムのためのデータ処理デバイスと、
前記少なくとも1つのユーザコンピュータシステムと前記データ処理デバイスとの間でデータを転送するための請求項1~14のいずれか一項に記載の少なくとも1つの通信リンクと、
を含むコンピューティング装置。
【請求項16】
前記データ処理デバイスと前記少なくとも1つのユーザコンピュータシステムとの間に前記少なくとも1つの通信リンクのみを備える、請求項15に記載のコンピューティング装置。
【請求項17】
前記少なくとも1つのユーザコンピュータシステムは、前記少なくとも1つの通信リンクの前記第1の一方向リンクのみを介して、前記少なくとも1つのユーザコンピュータシステムからデータを転送するように構成される、請求項15又は16に記載のコンピューティング装置。
【請求項18】
前記データ処理デバイスは、前記少なくとも1つの通信リンクの前記第1の一方向リンクを介することを除き、前記データ処理デバイスへ転送されるデータを受信しないように構成される、請求項15~17のいずれか一項に記載のコンピューティング装置。
【請求項19】
前記少なくとも1つのユーザコンピュータシステムは、前記少なくとも1つの通信リンクの前記第2の一方向リンクのみを介して、前記少なくとも1つのコンピュータシステムへ転送されるデータを受信するように構成される、請求項15~18のいずれか一項に記載のコンピューティング装置。
【請求項20】
前記データ処理デバイス及び前記少なくとも1つのユーザコンピュータシステムの一方又は両方がユーザ入力を直接受信するように構成される、請求項15~19のいずれか一項に記載のコンピューティング装置。
【請求項21】
第1のユーザコンピュータシステムと、
第2のユーザコンピュータシステムと、
前記第1及び第2のユーザコンピュータシステムのためのデータ処理デバイスと、
前記データ処理デバイスと前記第1のユーザコンピュータシステムとの間でデータを転送するための請求項1から14のいずれか一項に記載の第1の通信リンクと、
前記データ処理デバイスと前記第2のユーザコンピュータシステムとの間でデータを転送するための請求項1から14のいずれか一項に記載の第2の通信リンクと、
を備える、請求項15~20のいずれか一項に記載のコンピューティング装置。
【請求項22】
ネットワーク化されたコンピュータシステムと、
前記ネットワーク化されたコンピュータシステムから前記少なくとも1つのユーザコンピュータシステムへデータを転送するための第3の一方向リンクと、
前記データ処理デバイスから前記ネットワーク化されたコンピュータシステムへデータを転送するための第4の一方向リンクと、
を更に備える、請求項15に記載のコンピューティング装置。
【請求項23】
前記ネットワーク化されたコンピュータシステムと前記データ処理デバイスとの間に前記第4の一方向リンクのみが設けられ、
前記少なくとも1つのユーザコンピュータシステムと前記ネットワーク化されたコンピュータシステムとの間に前記第3の一方向リンクのみが設けられる、請求項22に記載のコンピューティング装置。
【請求項24】
前記ネットワーク化されたコンピュータシステムと双方向通信するネットワークインタフェースを更に備え、
前記第4の一方向リンクは、前記データ処理デバイスから前記ネットワークインタフェースへデータを転送するように動作可能であり、
前記第3の一方向リンクは、前記ネットワークインタフェースから前記少なくとも1つのコンピュータシステムへデータを転送するように動作可能である、請求項23又は24に記載のコンピューティング装置。
【請求項25】
ネットワーク化されたコンピュータシステムと、
前記ネットワーク化されたコンピュータシステムと前記データ処理デバイスとの間でデータを転送するための請求項1~14のいずれか一項に記載の更なる通信リンクと、
を更に備える、請求項15に記載のコンピューティング装置。
【請求項26】
1つ以上の前記ユーザコンピュータシステムがイントラネットに接続される、請求項15~25のいずれか一項に記載のコンピューティング装置。
【請求項27】
請求項15~26のいずれか一項に記載のコンピューティング装置におけるデータ処理方法であって、
前記少なくとも1つのコンピュータシステム及び前記少なくとも1つの通信リンクのみを介して前記データ処理デバイスで転送されたデータを受信するステップ、
を含むデータ処理方法。
【請求項28】
データ処理デバイスにおいて、周辺入力デバイスからユーザ入力を直接受信するステップを更に含む、請求項27に記載のデータ処理方法。
【請求項29】
前記少なくとも1つの通信リンクのみを介して、前記少なくとも1つのユーザコンピュータシステムから前記データ処理デバイスのみへデータを転送するステップを更に含む、請求項27又は28に記載のコンピューティング装置におけるデータ処理方法。
【請求項30】
請求項22~26のいずれか一項に記載の前記コンピューティング装置を使用したネットワークからのデータ受信方法であって、
前記ネットワーク化されたコンピュータシステムで前記ネットワークからデータを受信するステップと、
ユーザに表示するために前記少なくとも1つのユーザコンピュータシステムにデータを転送するステップと、
前記少なくとも1つの通信リンクを介して前記データ処理デバイスにデータを転送するステップと、
前記データ処理デバイス又は前記データ処理デバイスに接続されるデータ記憶デバイスにデータを記憶するステップと、
を含むデータ受信方法。
【請求項31】
請求項22~26のいずれか一項に記載の前記コンピューティング装置を使用したネットワークへのデータ送信方法であって、
送信されるべきデータを示すユーザ入力を前記少なくとも1つのユーザコンピュータシステムで受信するステップと、
前記少なくとも1つの通信リンクを介して前記少なくとも1つのユーザコンピュータシステムから前記データ処理デバイスに送信されるべきデータを転送するステップと、
前記データ処理デバイスから前記ネットワーク化されたコンピュータシステムへ送信されるべきデータを転送するステップと、
前記ネットワーク化されたコンピュータシステムから、前記ネットワークに送信されるべきデータを送信するステップと、
を含むデータ送信方法。
【請求項32】
前記少なくとも1つのユーザコンピュータシステムでユーザ入力を受信するステップは、前記データ処理デバイスで前記ユーザ入力を受信し、それを前記少なくとも1つのユーザコンピュータシステムに中継するステップを含む、請求項31に記載のデータ送信方法。
【請求項33】
データの意図された受信者の公開鍵及びセッション鍵を前記データ処理デバイスから前記少なくとも1つのユーザコンピュータシステムに送信するステップと、
前記少なくとも1つのユーザコンピュータシステムにおいて、前記セッション鍵を用いて前記送信されるべきデータを暗号化し、前記意図された受信者の前記公開鍵を用いて前記セッション鍵を暗号化するステップと、
送信されるべき暗号化されたデータ及び暗号化されたセッション鍵を、前記少なくとも1つの通信リンクを介して、前記少なくとも1つのユーザコンピュータシステムから前記データ処理デバイスに転送するステップと、
前記ネットワーク化されたコンピュータシステムから、送信されるべき暗号化されたデータ及び暗号化されたセッション鍵を前記ネットワークへ送信するステップと、
を更に含む、請求項31又は32に記載のデータ送信方法。
【請求項34】
前記ネットワーク化されたコンピュータシステムにおいて、前記少なくとも1つの通信リンクの前記ハードウェア暗号化デバイスによるハードウェア暗号化を除去するステップを更に含む、請求項33に記載のデータ送信方法。
【請求項35】
前記データ処理デバイスで、送信されるべきデータのハードウェア暗号化を第1の暗号化タイプから第2の暗号化タイプに変換するステップを更に含む、請求項31~33のいずれか一項に記載のデータ送信方法。
【請求項36】
前記少なくとも1つのユーザコンピュータシステムにおいて、前記送信されるべきデータをタグでラベル付けするステップと、
前記データ処理デバイスにおいて前記送信されるべきデータがどのように処理されるべきかを決定するために前記データ処理デバイスで前記タグを識別するステップと、
を更に含む、請求項27~35のいずれか一項に記載の方法。
【請求項37】
請求項15~26のいずれか一項に記載のコンピューティング装置を使用したユーザ認証方法であって、
前記少なくとも1つのユーザコンピュータシステムで検証器からノンスを受信するステップと、
前記少なくとも1つのユーザコンピュータシステムでユーザに前記ノンスを表示するステップと、
ユーザによって前記ノンスが前記データ処理デバイスに入力されるステップと、
前記データ処理デバイスで、前記ノンス及びユーザパスワードを使用して暗号化演算を実行し、前記ユーザの認証のために前記暗号化演算の出力を前記検証器に送信するステップと、
を含むユーザ認証方法。
【請求項38】
ユーザによって、前記データ処理デバイスに前記パスワードが入力されるステップを更に含む、請求項37に記載のユーザ認証方法。
【請求項39】
前記データ処理デバイスがデータ記憶デバイスを含み、
前記データ処理デバイスにより、前記データ記憶デバイスから前記パスワードを取り出すステップ、
を更に含む、請求項37に記載のユーザ認証方法。
【請求項40】
ネットワーク化されたコンピュータシステムと、
ユーザコンピュータシステムと、
前記ネットワーク化されたコンピュータシステムから前記ユーザコンピュータシステムへデータを転送するための第1の一方向通信リンクと、
データ処理デバイスと、
前記ユーザコンピュータシステムと前記データ処理デバイスとの間のデータ処理通信リンクであって、前記ユーザコンピュータシステムと前記データ処理デバイスとの間でデータを転送するように構成される、データ処理通信リンクと、
前記データ処理デバイスから前記ネットワーク化されたコンピュータシステムへデータを転送するための第2の一方向通信リンクと、
前記データ処理デバイスと通信接続され、前記データ処理デバイスへ入力を中継するように構成される少なくとも1つの周辺入力デバイスと、
を備えるコンピューティング装置。
【請求項41】
前記データ処理デバイスは、コマンドが前記周辺入力デバイスで受信されることに応じてのみ、前記ユーザコンピュータシステムからデータを受信するように構成される、請求項40に記載のコンピューティング装置。
【請求項42】
データ処理デバイスは、受信されたデータを暗号化形式で前記データ処理デバイスに記憶するように構成される、請求項40又は41に記載のコンピューティング装置。
【請求項43】
前記データ処理デバイスに通信可能に接続される記憶デバイスを更に備え、
前記データ処理デバイスは、前記記憶デバイスに記憶するために、前記データ処理デバイスによって受信されたデータを暗号化形式で前記記憶デバイスに送信するように構成される、請求項40又は41に記載のコンピューティング装置。
【請求項44】
前記データ処理デバイスは、更なるコマンドが前記少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、前記データ処理デバイスからデータを転送するように構成される、請求項40~42のいずれか一項に記載のコンピューティング装置。
【請求項45】
前記データ処理デバイスは、復号鍵転送コマンドが前記少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、前記データ処理デバイスから復号鍵を転送するように構成される、請求項40~44のいずれか一項に記載のコンピューティング装置。
【請求項46】
前記データ処理通信リンクは、前記ユーザコンピュータシステムと前記データ処理デバイスとの間でデータを転送するための双方向通信リンクを備え、
前記コンピューティング装置は、暗号鍵を使用して、前記双方向通信リンクを介して前記ユーザコンピュータシステムから前記データ処理デバイスによって受信された全てのデータを暗号化するように構成され、
前記ユーザコンピュータシステムが前記暗号鍵にアクセスできない、請求項40~45のいずれか一項に記載のコンピューティング装置。
【請求項47】
コンピューティング装置であって、
ネットワーク化されたコンピュータシステムと、
データ処理デバイスと、
前記データ処理デバイスと通信接続する少なくとも1つの周辺入力デバイスと、
前記ネットワーク化されたコンピュータシステムと前記データ処理デバイスとの間でデータを転送するための双方向通信リンクと、
を備え、
前記コンピューティング装置は、暗号鍵を使用して、前記双方向通信リンクを介して前記ネットワーク化されたコンピュータシステムから前記データ処理デバイスによって受信される全てのデータを暗号化するように構成され、
前記ネットワーク化されたコンピュータシステムは前記暗号鍵にアクセスできず、
更に、前記データ処理デバイスは、前記少なくとも1つの周辺入力デバイスでコマンドが受信されることに応じてのみ、前記データ処理デバイスから前記ネットワーク化されたコンピュータシステムにデータを転送するように構成される、
コンピューティング装置。
【請求項48】
前記少なくとも1つの周辺入力デバイスで受信される前記コマンドは、人間又はコンピュータプログラムからのものである、請求項40~47のいずれか一項に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データセキュリティ用途で使用され得る通信リンクに関する。
【背景技術】
【0002】
悪意のあるソフトウェア、又は略してマルウェアは、今日の深刻な脅威である。サイバー犯罪者は、キーロガー、スクリーンキャプチャラーなどのスパイウェアを使用して、コンピュータユーザをスパイし、個人資格情報、ログインパスワード、クレジットカード番号、財務文書などの重要なデータを盗む。ランサムウェア攻撃も近年増加している。これらの攻撃では、サイバー犯罪者は、コンピュータユーザのデータへの違法なアクセスを得て、被害者が身代金を支払わない限り、それらのデータを公開もしくは販売する、又は重要なデータへのアクセスを永続的にブロックすると脅かす。
【0003】
洗練されたマルウェアは、マルウェアの署名又は挙動に基づく検出を回避するために正当なソフトウェアに偽装する可能性があるため、マルウェアを検出することがますます困難になってきている。また、オペレーティングシステム又はアプリケーションソフトウェアのゼロデイ脆弱性を利用してセキュリティ対策を回避するマルウェアも存在する。
【0004】
データをマルウェアから保護する効果的で信頼性の高い方法を提供することが望ましい。
【発明の概要】
【0005】
第1の態様では、コンピュータシステムとコンピュータシステムのためのデータ処理デバイスとの間でデータを転送するための通信リンクが提供される。通信リンクは、コンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える第1の一方向リンクと、データ処理デバイスからコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。一方向リンク及びハードウェア暗号化デバイスを使用することにより、通信リンクは、データ処理デバイスがマルウェア検出を必要とせずに、マルウェア耐性データ処理サービス(例えば、データの記憶及び/又は出力)をコンピュータシステムに提供できるようにし得る。
【0006】
第1の一方向リンクは、第1のデータをコンピュータシステムからデータ処理デバイスに転送することができ、第2の一方向リンクは、第2のデータをデータ処理デバイスからコンピュータシステムに転送することができる。好ましくは、ハードウェア暗号化デバイスは、暗号鍵を生成するための乱数生成器を含む。特定の実施形態において、ハードウェア暗号化デバイスは、ハードウェア暗号化デバイスで暗号鍵として使用するためのランダムビットをデータ処理デバイスから受信するように構成される。好ましくは、ハードウェア暗号化デバイスは、生成又は受信した暗号鍵をコンピュータシステムに提供しないように構成される。
【0007】
特定の実施形態において、第1及び第2の一方向リンクは、ユニバーサル非同期送受信機(UART)インタフェースリンクを備える。
【0008】
好適には、第1の一方向リンクが第1のデータダイオードを更に含み、第2の一方向リンクが第2のデータダイオードを含む。具体的には、第1のデータダイオードは、コンピュータシステムとハードウェア暗号化デバイスとの間に位置していてもよい。
【0009】
特定の実施形態では、ハードウェア暗号化デバイスが集積回路を含む。好ましくは、ハードウェア暗号化デバイスが排他的論理和(XOR)論理ゲートを含む。好適には、ハードウェア暗号化デバイスは、好ましくは、高度暗号化規格(AES)カウンタモード又はワンタイムパッド暗号化に基づくXOR演算を介して、受信されたデータに対して暗号化演算を実行するように構成される。
【0010】
第2の一方向リンクは、データをコンピュータシステムで受信される前に復号するためのハードウェア復号デバイスを備えてもよいことが想定される。好適には、第2のデータダイオード(存在する場合)は、データ処理デバイスとハードウェア復号デバイスとの間に位置している。ハードウェア復号デバイスが集積回路を備えてもよいことが想定される。
【0011】
特定の実施形態において、通信リンクは、コンピュータシステムと第1の一方向通信を行い、データ処理デバイスと第2の一方向通信を行うネットワークインタフェースを更に含み、第1の一方向リンクは、ネットワークインタフェースからコンピュータシステムにデータを転送するように構成され、第2の一方向リンクは、データ処理デバイスからネットワークインタフェースにデータを転送するように構成される。
【0012】
第2の態様では、少なくとも1つのユーザコンピュータシステムと、少なくとも1つのユーザコンピュータシステムのためのデータ処理デバイスと、コンピュータシステムとデータ処理デバイスとの間でデータを転送するための少なくとも1つの通信リンクとを含む、コンピューティング装置が提供される。通信リンクは、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える、第1の一方向リンクと、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。好ましくは、コンピューティング装置は、データ処理デバイスと少なくとも1つのユーザコンピュータシステムとの間の少なくとも1つの通信リンクのみを備え、すなわち、データ処理デバイスと少なくとも1つのコンピュータシステムとの間の他の通信接続を備えない。少なくとも1つのユーザコンピュータシステムは、少なくとも1つの通信リンクの第1の一方向リンクのみを介して少なくとも1つのユーザコンピュータシステムからデータを転送するように構成されてもよいことも想定される。更に、データ処理デバイスは、少なくとも1つの通信リンクの第1の一方向リンクを介することを除き、データ処理デバイスに転送されたデータを受信しないように構成されてもよいことが想定される。少なくとも1つのユーザコンピュータシステムは、少なくとも1つの通信リンクの第2の一方向リンクのみを介して少なくとも1つのコンピュータシステムに転送されたデータを受信するように構成されてもよいことが更に想定される。
【0013】
データ処理デバイス及び少なくとも1つのユーザコンピュータシステムの一方又は両方は、ユーザ入力を直接受信するように構成されてもよいことを理解すべきである。
【0014】
特定の実施形態において、コンピューティング装置は、第1のユーザコンピュータシステムと、第2のユーザコンピュータシステムと、第1及び第2のユーザコンピュータシステムのためのデータ処理デバイスと、データ処理デバイスと第1のユーザコンピュータシステムとの間でデータを転送するための第1の通信リンクと、データ処理デバイスと第1のユーザコンピュータシステムとの間でデータを転送するための第2の通信リンクとを備えてもよい。第1及び第2の通信リンクのそれぞれは、それぞれのユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える、第1の一方向リンクと、データ処理デバイスからそれぞれのユーザコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。
【0015】
特定の実施形態において、コンピューティング装置は、ネットワーク化されたコンピュータシステムと、ネットワーク化されたコンピュータシステムから少なくとも1つのユーザコンピュータシステムへデータを転送するための第3の一方向リンクと、データ処理デバイスからネットワーク化されたコンピュータシステムへデータを転送するための第4の一方向リンクとを更に含む。好ましくは、第4の一方向リンクのみが、ネットワーク化されたコンピュータシステムとデータ処理デバイスとの間に設けられ、第3の一方向リンクのみが、少なくとも1つのユーザコンピュータシステムとネットワーク化されたコンピュータシステムとの間に設けられ、すなわち、それらの間に他の直接的な通信接続は設けられない。コンピューティング装置は、ネットワーク化されたコンピュータシステムと双方向通信するネットワークインタフェースを更に含むことができ、第4の一方向リンクは、データ処理デバイスからネットワークインタフェースにデータを転送するように動作可能であり、第3の一方向リンクは、ネットワークインタフェースから少なくとも1つのコンピュータシステムにデータを転送するように動作可能であることが想定される。
【0016】
特定の実施形態において、コンピューティング装置は、外部ネットワークに接続されるネットワーク化されたコンピュータシステムと、ネットワーク化されたコンピュータシステムとデータ処理デバイスとの間でデータを転送するための通信リンクとを含むことができ、通信リンクは、ネットワーク化されたコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクを備えるとともに、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスと、データ処理デバイスからネットワーク化されたコンピュータシステムにデータを転送するための第2の一方向リンクと、を備える。1つ以上のユーザコンピュータシステム自体が、外部ネットワークから分離されるネットワーク、すなわちイントラネットに接続されてもよいことが想定される。
【0017】
第3の態様では、コンピューティング装置におけるデータ処理方法が提供される。コンピューティング装置は、少なくとも1つのユーザコンピュータシステムと、少なくとも1つのユーザコンピュータシステムのためのデータ処理デバイスと、ユーザコンピュータシステムとデータ処理デバイスとの間でデータを転送するための少なくとも1つの通信リンクとを備える。通信リンクは、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える、第1の一方向リンクと、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。方法は、ネットワーク化されたコンピュータシステムでネットワークからデータを受信するステップと、ユーザに表示するために少なくとも1つのユーザコンピュータシステムにデータを転送するステップと、少なくとも1つの通信リンクを介してデータ処理デバイスにデータを転送するステップと、データ処理デバイス又はデータ処理デバイスに接続されるデータ記憶デバイスにデータを記憶するステップとを含む。
【0018】
第4の態様では、コンピューティング装置を使用したネットワークへのデータ送信方法が提供される。コンピューティング装置は、少なくとも1つのユーザコンピュータシステムと、少なくとも1つのユーザコンピュータシステムのためのデータ処理デバイスと、コンピュータシステムとデータ処理デバイスとの間でデータを転送するための少なくとも1つの通信リンクと、ネットワーク化されたコンピュータシステムと、ネットワーク化されたコンピュータシステムから少なくとも1つのユーザコンピュータシステムへデータを転送するための第3の一方向リンクと、データ処理デバイスからネットワーク化されたコンピュータシステムへデータを転送するための第4の一方向リンクと、を備える。通信リンクは、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える、第1の一方向リンクと、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。方法は、送信されるべきデータを示すユーザ入力を少なくとも1つのユーザコンピュータシステムで受信するステップと、少なくとも1つの通信リンクを介して少なくとも1つのユーザコンピュータシステムからデータ処理デバイスに送信されるべきデータを転送するステップと、データ処理デバイスからネットワーク化されたコンピュータシステムへ送信されるべきデータを転送するステップと、ネットワーク化されたコンピュータシステムから、ネットワークに送信されるべきデータを送信するステップとを含む。特定の実施形態において、ユーザ入力を少なくとも1つのユーザコンピュータシステムで受信するステップは、データ処理デバイスでユーザ入力を受信し、それを少なくとも1つのユーザコンピュータシステムに中継するステップを含む。
【0019】
方法は、データの意図された受信者の公開鍵及びセッション鍵をデータ処理デバイスから少なくとも1つのユーザコンピュータシステムに送信するステップと、少なくとも1つのユーザコンピュータシステムで、セッション鍵を用いて送信されるべきデータを暗号化するとともに、意図された受信者の公開鍵を用いてセッション鍵を暗号化するステップと、少なくとも1つの通信リンクを介して少なくとも1つのユーザコンピュータシステムからデータ処理デバイスに、送信されるべき暗号化されたデータ及び暗号化されたセッション鍵を転送するステップと、ネットワーク化されたコンピュータシステムから、送信されるべき暗号化されたデータ及び暗号化されたセッション鍵をネットワークに送信するステップと、を更に含んでもよいことが想定される。好ましくは、方法は、ネットワーク化されたコンピュータシステムにおける少なくとも1つの通信リンクのハードウェア暗号化デバイスによるハードウェア暗号化を除去するステップを更に含む。特定の実施形態において、送信されるべきデータのハードウェア暗号化は、データ処理デバイスで第1の暗号化タイプから第2の暗号化タイプに変換されてもよい。方法は、少なくとも1つのユーザコンピュータシステムにおいて送信されるべきデータをタグでラベル付けするステップと、送信されるべきデータがデータ処理デバイスにおいてどのように処理されるべきかを決定するためにデータ処理デバイスにおいてタグを識別するステップとを更に含んでもよいことが想定される。
【0020】
第5の態様では、コンピューティング装置を使用したユーザ認証方法が提供される。コンピューティング装置は、少なくとも1つのユーザコンピュータシステムと、少なくとも1つのユーザコンピュータシステムのためのデータ処理デバイスと、少なくとも1つの通信リンクとを含む。通信リンクは、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンクであって、データをデータ処理デバイスで受信される前に暗号化するためのハードウェア暗号化デバイスを備える、第1の一方向リンクと、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンクとを備える。ユーザを認証する方法は、検証器から少なくとも1つのユーザコンピュータシステムにおいてノンスを受信するステップと、ノンスを少なくとも1つのユーザコンピュータシステムにおいてユーザに表示するステップと、ユーザによって、データ処理デバイスにノンスを入力するステップと、データ処理デバイスにおいて、ノンス及びユーザパスワードを使用して暗号化演算を実行し、ユーザの認証のために暗号化演算の出力を検証器に送信するステップとを含む。特定の実施形態において、方法は、ユーザにより、データ処理デバイスにパスワードを入力するステップを更に含む。更なる特定の実施形態では、データ処理デバイスがデータ記憶デバイスを含み、方法は、データ処理デバイスによって、データ記憶デバイスからパスワードを取り出すステップを更に含む。
【0021】
第6の態様では、ネットワーク化されたコンピュータシステムと、ユーザコンピュータシステムと、ネットワーク化されたコンピュータシステムからユーザコンピュータシステムへデータを転送するための第1の一方向通信リンクと、データ処理デバイスと、ユーザコンピュータシステムとデータ処理デバイスとの間のデータ処理通信リンクであって、ユーザコンピュータシステムとデータ処理デバイスとの間でデータを転送するように構成される、データ処理通信リンクと、データ処理デバイスからネットワーク化されたコンピュータシステムへデータを転送するための第2の一方向通信リンクと、データ処理デバイスと通信接続する少なくとも1つの周辺入力デバイスとを備える、コンピューティング装置が提供される。好ましくは、データ処理デバイスは、周辺入力デバイスでコマンドが受信されることに応じてのみ、ユーザコンピュータシステムからデータを受信するように構成される。特定の実施形態において、データ処理デバイスは、受信したデータを暗号化形式でデータ処理デバイスに記憶するように構成される。これに代えて又は加えて、コンピューティング装置は、データ処理データに接続される記憶デバイスを更に含み、データ処理デバイスは、データ処理デバイスによって受信されたデータを記憶デバイスに記憶するために暗号化形式で記憶デバイスに送信するように構成される。
【0022】
好適には、データ処理デバイスは、更なるコマンドが少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、データ処理デバイスからデータを転送するように構成される。特定の実施形態において、データ処理デバイスは、復号鍵転送コマンドが少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、データ処理デバイスから復号鍵を転送するように構成される。
【0023】
好ましくは、データ処理通信リンクは、ユーザコンピュータシステムとデータ処理デバイスとの間でデータを転送するための双方向通信リンクを備え、コンピューティング装置は、暗号鍵を使用して、双方向通信リンクを介してユーザコンピュータシステムからデータ処理デバイスによって受信される全てのデータを暗号化するように構成され、ユーザコンピュータシステムは暗号鍵にアクセスできない。
【0024】
第7の態様では、ネットワーク化されたコンピュータシステムと、データ処理デバイスと、データ処理デバイスと通信接続する少なくとも1つの周辺入力デバイスと、ネットワーク化されたコンピュータシステムとデータ処理デバイスとの間でデータを転送するための双方向通信リンクとが提供され、コンピューティング装置は、暗号鍵を使用して、双方向通信リンクを介してネットワーク化されたコンピュータシステムからデータ処理デバイスによって受信される全てのデータを暗号化するように構成され、ネットワーク化されたコンピュータシステムは暗号鍵にアクセスできず、更に、データ処理デバイスは、少なくとも1つの周辺入力デバイスでコマンドが受信されることに応じてのみ、データ処理デバイスからネットワーク化されたコンピュータシステムにデータを転送するように構成される。
【0025】
第8の態様では、データ転送方法が提供される。方法は、2つのコンピューティングデバイス間で反対方向に2つの一方向データ転送リンクを介してデータを転送するステップを含み、一方向データ転送リンクのうちの1つは、それを通過する全てのデータを暗号化するハードウェアを含む暗号化リンクである。
【0026】
特定の実施形態において、暗号鍵は、ハードウェア暗号化モジュール内で生成されてもよく、又はハードウェア暗号化モジュールに接続された外部ランダムビット生成器によって提供されてもよく、又は暗号化されたデータを受信するコンピューティングデバイスによって提供されてもよい。更に、データを送信するコンピューティングデバイスは、暗号鍵及び復号鍵にアクセスできないことが好ましい。復号鍵は、暗号化されたデータを受信するコンピューティングデバイス、例えばデータ記憶ドライブ、又はリムーバブルメモリデバイスに保持されてもよい。
【0027】
特定の実施形態において、データ転送方法の一方向データ転送リンクは、UART(Universal Asynchronous Receiver Transmitter;非同期ユニバーサル受信機送信機)インタフェースで実装されてもよい。UDP(User Datagram Protocol;ユーザデータグラムプロトコル)などの他の一方向データ転送プロトコルも同様に使用することができる。
【0028】
特定の実施形態では、光カプラ又は光アイソレータなどのデータダイオードを使用して、データ転送の厳密な一方向性を強制することができる。
【0029】
特定の実施形態において、ハードウェア暗号化モジュールは、集積回路、例えばFPGA(フィールドプログラマブルゲートアレイ)で実装されてもよい。暗号化演算は、ワンタイムパッド暗号化のための鍵として使用されるランダムビットを有するXOR(排他的論理和)ゲートにより実施されてもよい。AES(Advanced Encryption Standard)などの他の形式のデータ暗号化も使用することができる。
【0030】
特定の実施形態において、ハードウェア暗号化モジュールを含まない一方向リンクは、ハードウェア復号モジュール(HDM)を含み得る。暗号化されたデータ及び復号鍵をデータ送信コンピューティングデバイスから受信すると、HDMは、復号されたデータをデータ受信コンピューティングデバイスに転送する前にデータの復号を実行する。HDMは、集積回路、例えばFPGAで実装されてもよい。
【0031】
好ましくは、データダイオードが使用される一方向データ転送リンクでは、ハードウェア暗号化モジュール又はハードウェア復号モジュールが、データフローの方向に関してデータダイオードの後に配置され、ハードウェア暗号化モジュール又はハードウェア復号モジュールに移動するデータがデータ送信コンピューティングデバイスに再入力されるのを防止する。そのようなリスクが懸念されない実装形態では、それらの位置を交換することができる。
【0032】
第9の態様では、第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備える方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によって接続される。第1のコンピューティングデバイスは、一方向リンクのみを介して第2のコンピューティングデバイス及び他のコンピューティングデバイスからデータを受信することができる。第2のコンピューティングデバイスは、一方向リンクのみを介して第1のコンピューティングデバイス又は他のコンピューティングデバイスにデータを送信することができる。第2のコンピューティングデバイスは、一方向暗号化リンクのみを介して第1のコンピューティングデバイスからデータを受信することができる。この方法は、第1のコンピューティングデバイスからのデータ漏洩を防止し、第2のコンピューティングデバイスに記憶されたデータを保護することができる。より具体的には、データを復号して表示することができる第1のコンピューティングデバイスは、スパイウェアから保護することができ、重要なデータを記憶することができる第2のコンピューティングデバイスは、ランサムウェアから保護することができる。
【0033】
特定の実施形態において、第1のコンピューティングデバイスは、外部ネットワークに接続される第3のコンピューティングデバイスから、暗号化されたデータ、例えば暗号化された電子メール又はメッセージを受信する。第1のコンピューティングデバイスは、受信した暗号化されたデータを復号し、復号したデータをコンピュータ画面に表示する。第2のコンピューティングデバイスは、例えば電子メール又はメッセージなどのデータを外部ネットワークの受信者に送信するためのユーザ命令を受信する。第2のコンピューティングデバイスは、データを暗号化し、暗号化されたデータを、第3のコンピューティングデバイス又はそのための外部ネットワークに接続される別のコンピューティングデバイスに送信して、データを外部ネットワークに送出する。
【0034】
特定の実施形態において、第1のコンピューティングデバイス及び第2のコンピューティングデバイスの両方は、周辺入力デバイスを介してコマンドなどのユーザ入力データを受信することができる。或いは、第2のコンピューティングデバイスに接続された周辺入力デバイスから受信したユーザ入力データは、第1のコンピューティングデバイスに中継されてもよい。
【0035】
第10の態様では、第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備える更に別の方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によって接続される。第1のコンピューティングデバイスは、一方向リンクを介して第2のコンピューティングデバイスからのみデータを受信することができる。第2のコンピューティングデバイスは、一方向リンクのみを介して第1のコンピューティングデバイス又は他のコンピューティングデバイスにデータを送信することができる。第2のコンピューティングデバイスは、一方向暗号化リンクのみを介して第1のコンピューティングデバイス及び他のコンピューティングデバイスからデータを受信することができる。この方法は、第1のコンピューティングデバイスが他のコンピューティングデバイスからではなく第2のコンピューティングデバイスからのみデータを受信し、したがってその攻撃面を低減するので、特に安全であり得る。第2に、この構成は、第2のコンピューティングデバイスへの複数の接続を容易にし、第2のコンピューティングデバイスは、複数のユーザに対してハブ又はブリッジの役割を果たすことができる。
【0036】
特定の実施形態では、第2のコンピューティングデバイスは、暗号化されたデータ、例えば暗号化された電子メール又はメッセージを、外部ネットワークに接続された第3のコンピューティングデバイスから受信する。第2のコンピューティングデバイスは、暗号化されたデータを第1のコンピューティングデバイスに転送する。第1のコンピューティングデバイスは、受信した暗号化されたデータを復号し、復号したデータをコンピュータ画面に表示する。第2のコンピューティングデバイスは、第2のコンピューティングデバイスに接続された周辺入力デバイスからユーザ入力データを受信する。周辺入力デバイスから受信したユーザ入力データは、コンピュータ画面に表示するために第1のコンピューティングデバイスに中継されてもよい。第2のコンピューティングデバイスは、データ、例えば電子メール又はメッセージを外部ネットワークの受信者に送信するためのユーザからの命令を受信し、第2のコンピューティングデバイスは、データを暗号化し、暗号化されたデータを第3のコンピューティングデバイス又はそのための外部ネットワークに接続された別のコンピューティングデバイスに送信して、データを外部ネットワークに送信する。
【0037】
特定の実施形態において、第1のコンピューティングデバイス及び第2のコンピューティングデバイスの両方は、周辺入力デバイスを介してコマンドなどのユーザ入力データを受信することができる。或いは、第2のコンピューティングデバイスに接続された周辺入力デバイスから受信したユーザ入力データは、第1のコンピューティングデバイスに中継されてもよい。
【0038】
第9の態様又は第10の態様のいずれかの特定の実施形態において、第2のコンピューティングデバイスは、他のコンピューティングデバイスが外部ネットワークに接続されておらず、外部ネットワークに接続される他のコンピューティングデバイスにも接続されておらず、いかなるデータも復号しない限り、一方向暗号化を伴わない双方向データ転送リンクを介して他のコンピューティングデバイスに接続されてもよい。例えば、第2のコンピューティングデバイスは、一方向暗号化を伴わない双方向データ転送リンクを介して、外部ネットワークに接続されていないプライベートファイルサーバに接続されてもよい。ファイルサーバは、外部ネットワーク又は第2のコンピューティングデバイス以外のコンピューティングデバイスに接続されておらず、いかなるデータも復号しない限り、第2のコンピューティングデバイスと同じレベルのセキュリティを有することができる。
【0039】
第8の態様のデータ転送方法によってのみ第2のコンピューティングデバイスに接続される2つ以上のコンピューティングデバイスが存在してもよいことが想定される。これらのコンピューティングデバイスのそれぞれは、異なる機能を果たすことができる。例えば、第1のコンピューティングデバイスは、第3のコンピューティングデバイスから受信した電子メール及びメッセージを復号するために使用されてもよく、第4のコンピューティングデバイスは、機密文書を作成するために使用されてもよい。
【0040】
第9の態様及び第10の態様は、第8の態様のデータ転送方法によってのみ第2のコンピューティングデバイスに接続される第1のコンピューティングデバイス及び第4のコンピューティングデバイスを備えるシステムに組み合わせることができることが更に想定される。第1のコンピューティングデバイスは、一方向リンクのみを介して、第2のコンピューティングデバイス及び第3のコンピューティングデバイスなどの他のコンピューティングデバイスからデータを受信することができる。第2のコンピューティングデバイスは、一方向リンクのみを介して、第1のコンピューティングデバイス、第4のコンピューティングデバイス、及び第3のコンピューティングデバイスなどの他のコンピューティングデバイスにデータを送信することができる。第2のコンピューティングデバイスは、一方向暗号化リンクのみを介して第1のコンピューティングデバイス及び第4のコンピューティングデバイスからデータを受信することができる。第4のコンピューティングデバイスは、一方向リンクを介して第2のコンピューティングデバイスからのみデータを受信することができる。これにより、第1のコンピューティングデバイスが第3のコンピューティングデバイスからデータを受信することがより効率的になり得る。
【0041】
第11の態様では、第1のコンピューティングデバイスが第8の態様のデータ転送方法によって第1のネットワークインタフェースに接続される更に別の方法が提供され、この場合、第1のネットワークインタフェースから受信されるデータは、それらが第1のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第1のネットワークインタフェースは、複数のユーザが第1のネットワークインタフェースへの接続を通じて同時に第1のコンピューティングデバイスの機能を利用することができるように、外部ネットワークへの接続を有する1つ以上のコンピューティングデバイスに更に接続する。更に、第1のコンピューティングデバイスは、第8の態様のデータ転送方法によって第2のネットワークインタフェースに接続されてもよく、第2のネットワークインタフェースから受信されたデータは、第1のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第2のネットワークインタフェースは、外部ネットワークへの接続を有さない1つ以上のコンピューティングデバイスに更に接続する。ユーザからの暗号化されたデータは、外部ネットワークに接続されていないコンピューティングデバイスのうちの1つで復号及び処理されてもよく、データは、第1のコンピューティングデバイスに転送され、第1のコンピューティングデバイスに接続された記憶デバイスに暗号化された形式で記憶されてもよい。
【0042】
特定の実施形態では、中継デバイスが、周辺入力デバイスを介して入力されたユーザ入力データを受信する。中継デバイスは、受信したユーザ入力データを入力インタフェースを介して第1のコンピューティングデバイスに供給する。更に、中継デバイスを介して受信されたコマンドのみが、第1のコンピューティングデバイスの記憶装置に記憶されたデータを処理又は転送することができる。更に、第2のネットワークインタフェースに接続される第2のコンピューティングデバイスは、第1のコンピューティングデバイス及び中継デバイスを介して中継されたコマンドを受信することができる。更に、第2のコンピューティングデバイスに接続された周辺入力デバイスを介して又は第1のコンピューティングデバイス及び中継デバイス通じた中継を介して受信されたコマンドのみが、第2のコンピューティングデバイスとの間でデータを転送することができる。更に、第1のネットワークインタフェースに接続される第3のコンピューティングデバイスは、第3のコンピューティングデバイスに接続された周辺入力デバイスから直接に又は中継デバイス及び第1のコンピューティングデバイスを介してコマンドを受信することができる。また、周辺入力デバイスから中継デバイスに向かうデータが暗号化されてもよい。
【0043】
他の特定の実施形態において、第1のコンピューティングデバイスは、中継デバイスを必要とせずに、周辺入力デバイスから直接にユーザ入力データを受信することができる。
【0044】
他の特定の実施形態において、第1のコンピューティングデバイス及び第2のコンピューティングデバイスは、第8の態様のデータ転送方法によって接続され、第1のコンピューティングデバイスからの全てのデータは、それらが第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。更に、ネットワークインタフェースは、一方向データ転送リンクを用いて第1のコンピューティングデバイス及び第2のコンピューティングデバイスに接続し、それにより、ネットワークインタフェースは、第1のコンピューティングデバイスにのみデータを送信し、第2のコンピューティングデバイスからのみデータを受信することができる。ネットワークインタフェースは、複数のコンピューティングデバイスが第1のネットワークスイッチを介してネットワークインタフェースに接続して、第1のコンピューティングデバイスにデータを送信し、又は第2のコンピューティングデバイスからデータを受信することができるように、第1のネットワークスイッチに接続される。第2のネットワークスイッチが、コンピュータ画面データをそれぞれのユーザに送信し、一方、第3のネットワークスイッチは、ユーザ入力データを第2のコンピューティングデバイスに中継する。好ましくは、全てのネットワークスイッチによって処理されているデータは、セキュリティのために暗号化される。
【0045】
第12の態様では、外部ネットワークからのデータの受信及びデータの復号が第1のコンピューティングデバイスによって実行され、データの暗号化及び暗号化されたデータの外部ネットワークへの送信が第2のコンピューティングデバイスによって実行される、方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によってのみ接続され、第1のコンピューティングデバイスからの全てのデータは、第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第1のコンピューティングデバイスは、一方向データ転送リンクを介して、外部ネットワーク又は他のコンピューティングデバイスから暗号化されたデータを受信する。第1のコンピューティングデバイスは、暗号化されたデータを復号し、復号されたデータをコンピュータ画面上に表示することができる。第2のコンピューティングデバイスは、周辺入力デバイスからのユーザ入力データ又はハードウェア暗号化モジュールによって暗号化された第1のコンピューティングデバイスからのデータを受信する。第2のコンピューティングデバイスは、データを暗号化し、一方向のデータ転送リンクを介して、暗号化されたデータを外部ネットワークに又は外部ネットワークへの接続を有する別のコンピューティングデバイスに送信することができる。これにより、受信データに存在し得るマルウェアが、暗号化前に脆弱であり得るユーザの個人データにアクセスできないようにすることができる。
【0046】
第13の態様では、復号されたデータの表示及び処理が第1のコンピューティングデバイスによって実行され、暗号化されたデータの記憶が第2のコンピューティングデバイスによって実行される方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によってのみ接続され、第1のコンピューティングデバイスからの全てのデータは、第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。暗号化されていないデータは、第1のコンピューティングデバイスで処理され、暗号化形式で記憶するために第2のコンピューティングデバイスに転送される。暗号鍵は、第1のコンピューティングデバイスによってアクセスできない。異なるタスクのための異なるコンピューティングデバイスと、第8の態様の通信方法によってのみ接続された2つのコンピューティングデバイスとを有すると、第1のコンピューティングデバイスに侵入する可能性がある任意のマルウェアは、第2のコンピューティングデバイスに暗号化形式で記憶されたデータに直接アクセスすることができない。
【0047】
特定の実施形態において、第2のコンピューティングデバイスは、第2のコンピューティングデバイスの周辺入力インタフェースを介してユーザから直接にコマンドを受信すると、記憶されたデータを復号することなく、記憶されたデータを処理する又は記憶されたデータを第1のコンピューティングデバイスに転送することができる。復号に必要な鍵は、暗号化されたデータと共に第1のコンピューティングデバイスに転送される。
【0048】
第14の態様では、第8の態様のデータ転送方法によってのみ接続された第1のコンピューティング及び第2のコンピューティングデバイスを備える方法が提供され、第1のコンピューティングデバイスからの全てのデータは、それらが第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第1のコンピューティングデバイスは、所定のバイト数のタグ又はラベルを第2のコンピューティングデバイスに送信し、各タグ又はラベルは、ルックアップテーブルに従うことができる情報を表す。第2のコンピューティングデバイスは、タグ又はラベルを取得するために所定のバイト数を復号し、同じルックアップテーブルに基づくことができる伝達された情報を学習する。ルックアップテーブルは、2つのコンピューティングデバイスに予めインストールされてもよい。タグ又はラベルのサイズは、2バイトほどの短さ、又は特定の場合にはそれより長い、例えば256バイトであり得ることが想定される。第2のコンピューティングデバイスは、タグ又はラベルによって伝達される情報に応じた動作を実行することができる。したがって、受信されたデータは、第1のコンピューティングデバイスにおいてショートラベルに変換され、ショートラベルのみが第2のコンピューティングデバイスに送信され、第2のコンピューティングデバイスは、情報を取得するためにショートラベルを復号することができる。
【0049】
第15の態様では、第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備える暗号化の方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によって接続され、第1のコンピューティングデバイスからの全てのデータは、第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第2のコンピューティングデバイスに暗号化形式で記憶されている受信者の公開鍵は、第1の復号鍵及びセッション鍵と共に第2のコンピューティングデバイスから第1のコンピューティングデバイスに送信される。セッション鍵は、受信者に送信すべきデータを暗号化するために使用され、データの暗号化は第2のコンピューティングデバイスで行なわれる。第1のコンピューティングデバイスは、第1の復号鍵を使用して復号することによって受信者の公開鍵を取得し、受信者の公開鍵を使用してセッション鍵を暗号化する。次いで、第1のコンピューティングデバイスは、暗号化されたセッション鍵を第2のコンピューティングデバイスに送り返し、プロセスにおいて、暗号化されたセッション鍵は、ハードウェア暗号化モジュールによって更に暗号化される。第2のコンピューティングデバイスは、ハードウェア暗号化モジュールによって暗号化された暗号化セッション鍵を、セッション鍵によって暗号化された受信者へのデータ及びハードウェア暗号化モジュールによって暗号化を復号するための第2の復号鍵と共に、外部ネットワークに接続された第3のコンピューティングデバイスに転送する。第3のコンピューティングデバイスは、第2の復号鍵を使用して復号することによって暗号化されたセッション鍵を取得し、次いで、暗号化されたセッション鍵を暗号化されたデータと共に外部ネットワークの受信者に送信する。
【0050】
第16の態様では、第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備える暗号化の方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によって接続され、第1のコンピューティングデバイスからの全てのデータは、第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。ユーザは、データを暗号化して外部ネットワークの受信者に送信するために第1のコンピューティングデバイスに有する。ユーザは、データを第2のコンピューティングデバイスに転送する。プロセスにおいて、データはハードウェア暗号化モジュールによって暗号化される。第2のコンピューティングデバイスでは、ハードウェア暗号化モジュールによる暗号化は、第2のコンピューティングデバイス内で生成されたセッション鍵による暗号化に変換することができる。セッション鍵は、第15の態様の方法により、受信者の公開鍵によって更に暗号化される。次いで、ユーザは、セッション鍵によって暗号化されたデータ及び受信者の公開鍵によって暗号化されたセッション鍵を外部ネットワークに送出することができる。
【0051】
特定の実施形態では、暗号化の変換を実行することができる。ハードウェア暗号化モジュールによる暗号化は、ワンタイムパッド暗号化に基づくXOR演算であってもよい。第2のコンピューティングデバイスは、暗号化されたデータとワンタイムパッド鍵の両方を受信する。第2のコンピューティングデバイスでは、ワンタイムパッド暗号化データは、セッション鍵、例えばAES鍵、及び初期化ベクトルを使用して、AESカウンタモードなどの暗号化方法によって再び暗号化される。続いて、ワンタイムパッド鍵を使用して暗号化データに対して別のXOR演算を実行して、セッション鍵及び初期化ベクトルを使用してAESカウンタモードによってのみ暗号化されたデータを取得する。
【0052】
他の特定の実施形態では、ハードウェア暗号化モジュールによる暗号化は、AESカウンタモードに基づくXOR演算であってもよい。第2のコンピューティングデバイスは、ハードウェア暗号化モジュールから、暗号化されたデータ、初期化ベクトル、及びAES鍵を受信し、これらはセッション鍵として直接使用され得る(すなわち、第2のコンピューティングデバイスにおいて更なる変換は不要である)。
【0053】
第17の態様では、第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備えるユーザ認証の方法が提供される。2つのコンピューティングデバイスは、第8の態様のデータ転送方法によって接続され、第1のコンピューティングデバイスからの全てのデータは、第2のコンピューティングデバイスに入ることができる前にハードウェア暗号化モジュールによって暗号化される。第1のコンピューティングデバイスは、検証器から送信されたノンスを受信し、そのノンスをコンピュータ画面上に表示する。ユーザは、第2のコンピューティングデバイスに接続されるが第1のコンピューティングデバイスから切断された周辺入力デバイスを使用して、ノンスを読み取り、ノンス及びパスワードを第2のコンピューティングデバイスに入力する。第2のコンピューティングデバイスは、ノンス及びパスワードを使用して暗号化演算、例えばハッシュ関数を実行し、演算の結果を検証器に送信する。検証器は、受信した演算の結果を、検証器によって独立して得られる期待結果と比較する。2つの結果が等しい場合、認証は成功する。幾つかの実装形態では、ユーザのパスワードが第2のコンピューティングデバイスに記憶されてもよく、認証中にユーザがパスワードを入力する必要はない場合がある。したがって、2要素認証を実施することができ、ノンスは、外部ネットワークにデータを漏洩し得ない第1のコンピューティングデバイスに送信され、ユーザは、マルウェアを含まない可能性がある第2のコンピューティングデバイスにノンス及びパスワードを入力する。
【0054】
幾つかの実施形態では、開示された発明は、データ保護モジュール(DPM)の形態で実施することができる。DPMは、1つ以上の入力処理ユニット(IPU)、1つ以上のプライベートコンピューティングユニット(PCU)、1つ以上の非セキュアコンピューティングユニット(UCU)、1つ以上のデータ記憶ユニット(DSU)、1つ以上のハードウェア暗号化器、1つ以上のハードウェア復号器、1つ以上の乱数生成器(RNG)、1つ以上の不揮発性メモリ又はデータ記憶デバイス、1つ以上の一方向リンク、限定はしないが、DPMが機能するために必要な複数のサポートサブシステム、コンポーネント、ケーブル、入力/出力インタフェースなどを備えることができる。
【0055】
更なる態様では、ユーザ入力を取り込むキーボード、マウス、タッチスクリーン、マイクロフォン、ウェブカメラ、センサなどの周辺入力デバイスは、インターネット接続を有するいかなるコンピューティングユニット、デバイス、又はシステムにも接続されない。これらの周辺入力デバイスは、USB、Bluetoothなどの適切な入力インタフェースを介してIPUに直接接続される。IPUは、周辺入力デバイスからのみ入力を受け取るコンピューティングユニットからなるセキュア入力空間である。これにより、マルウェアがインターネットからIPUにアクセス又は侵入する可能性がないことが保証される。
【0056】
本発明の更なる態様では、IPUは、一方向リンクを介してUCUに接続される。UCUは、ユーザがインターネットにアクセスするためのゲートウェイとして機能するコンピューティングユニットである。IPUとUCUとの間のリンクは、データがIPUからUCUにのみ移動できるが、反対方向には移動できないようにするために一方向である。これにより、マルウェアがUCUからIPUにアクセスしたりIPUに侵入したりすることが防止される。重要なデータは、保護されていない空間であるUCUに送信される前に、IPU内で常に暗号化されることが好ましい。一方向リンクは、光カプラなどのデータダイオード、光リンク上の光アイソレータ、又は同じ効果を達成する任意の他のデータ伝送デバイス、プロトコル、又は方法で実装されてもよい。
【0057】
本発明の他の態様によれば、テキスト、画像、音声などの重要なデータは、セキュアプライベート空間であるPCU内でのみ復号される。PCUは、モニタディスプレイ、ヘッドホン、又はスピーカに接続するためのHDMI(登録商標)、USB、Bluetoothなどの出力インタフェースを有するコンピューティングユニットからなる。PCUは、一方向のリンクを介してIPU及びUCUからのみ入力を受け取り、インターネットへの出力経路を有さない。これにより、PCUに存在して隠れている可能性のあるマルウェアがコマンド及び制御(C&C)サーバに接続したり、ユーザのデータをサイバー犯罪者に戻したりすることが防止される。
【0058】
本発明の他の態様によれば、重要なデータは、セキュア記憶のためにPCUからDSUに常に転送されることが好ましい。好ましくは、重要なデータはPCUに保存されない。DSUは、コンピューティングユニットと、セキュア記憶空間を形成するハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などの不揮発性メモリとを備える。一方向リンクは、データがPCUからDSUに移動できるようにする。このリンクはハードウェア暗号化されているので、リンクを通過する全てのデータは伝送中に暗号化される。ハードワイヤード暗号化は、たとえ正規のソフトウェア又はデータとして偽装されていても、マルウェアが暗号化を変更又は迂回することができないことを保証する。ハードウェア暗号化に使用される暗号鍵は、乱数生成器(RNG)又はユーザ提供のエントロピーから取得することができる。復号鍵は、暗号化されたデータと共にDSUに、又はパスワード保護されたサムドライブなどの別の場所に記憶することができる。DSUではデータが復号されることはない。ユーザがDSUに記憶されたファイルを閲覧、編集、又は処理することを望む場合、ユーザはDSUに、ファイルを対応する復号鍵と共にPCUに転送するように命令し、PCUにおいてファイルを復号することができる。DSUは、IPUを介してユーザからのみ指示を受け取る。DSUとIPUの両方がマルウェアを含まないため、セキュリティを損なうことなくDSU全体をIPUに組み込むことができる。
【0059】
本発明の別の態様によれば、キーボード、マウス、タッチスクリーン、マイクロフォン、カメラなどの入力インタフェースを介してIPUに直接物理的にアクセスするユーザのみが、DSUとの間でファイルを転送するためのコマンドを発行することができる。幾つかの実施形態では、ユーザは、コンピュータプログラム又は人工知能(AI)に置き換えられてもよい。この場合、出力デバイスに送信されたコンピュータ画面及び/又はオーディオデータは、人間のユーザに代わって解釈、意思決定、及び動作のためにコンピュータプログラム又はAIに提供され得る。
【0060】
本発明の別の態様によれば、コンピュータプログラム又はソフトウェアであるデータ処理アプリは、プライベートデータ及び機密データを入力、閲覧、又は編集する必要があるときにユーザによって起動され得る。データ処理アプリケーションは、IPU、PCU、UCU、及びDSUにインストールされ、その役割はユーザのコマンドを解釈し実行することである。データ処理アプリは、ウェブをサーフィンするとき、又はUCUでオンラインゲームをプレイするときなど、重要なデータを処理しない通常の使用中にユーザによって無効にされてもよい。
【0061】
ランサムウェア攻撃の場合、PCU及びUCUはランサムウェアによってロックされる可能性があるが、DSUに記憶されたデータは保護されたままである。PCU及びUCUは重要なデータを記憶しないので、ユーザへの損傷は最小限である。ユーザは、PCU及びUCUのハードドライブを再フォーマットし、オペレーティングシステム及びアプリケーションソフトウェアを再インストールするだけでよい。DSU内のファイルは、マルウェアに関する情報がアンチウイルスソフトウェアベンダー又はサイバーセキュリティ専門家から利用可能になったときに、マルウェア署名スキャン又はヒューリスティック解析のためにクリーンPCUにコピーされてもよい。
【0062】
DPMは、異なる実施形態において多種多様な方法で実装することができる。幾つかの実施形態では、UCUは、インターネットアクセスを有するユーザの非セキュアコンピューティングデバイス、例えば、デスクトップコンピュータ、ラップトップ、タブレット、スマートフォンなどに置き換えることができる。幾つかの実施形態では、PCUは、インターネットに接続されていないユーザの隔離されたコンピューティングデバイスに置き換えられてもよい。幾つかの実施形態では、UCUとPCUの両方がユーザのコンピューティングデバイスに置き換えられてもよい。幾つかの実施形態では、複数のPCUが存在してもよく、各PCUは異なる役割を有する。幾つかの実施形態では、IPUは、インターネットに接続されていないユーザの隔離されたコンピューティングデバイスに置き換えられてもよい。幾つかの実施形態では、DSUは、IPUに接続されたユーザの1つ以上の取り外し可能な記憶装置に置き換えることができる。
【0063】
DPMは、プライベート電子メール、プライベートメッセージング、テレビ会議、テレワークなどを保護するために使用され得る。DPMは、リモートサーバ又はクラウドサービスにアクセスするためのセキュアシンクライアント又はセキュアシッククライアントとして実装されてもよい。DPMはまた、鍵配布サービスプロバイダなどの別の当事者と共有又は提供される対称鍵を保護するために使用され得る。
【0064】
幾つかの実施形態では、DPMは、コンピュータマザーボードに接続又は搭載することができ、サーバ、デスクトップコンピュータ又はラップトップのシャーシの内部に封入することができるUSB、イーサネット、SATA、PCIeなどのインタフェースを有するプリント回路基板の形態をとることができる。
【0065】
他の実施形態では、DPMは、ラップトップ、タブレット、スマートフォンなどのポータブルコンピューティングデバイスに埋め込むことができる集積チップ(IC)又はシステムオンチップ(SoC)の形態で小型化することができる。
【0066】
幾つかの実施形態では、開示された発明は、コンピュータシステム又はコンピューティングネットワークを非セキュアゾーンとセキュアゾーンとに分離するゾーン分離モジュール(ZSM)の形態で実施され得る。一般に、非セキュアゾーンは、インターネットに接続された複数の非セキュアコンピューティングデバイス(UCD)及び非セキュアデータ記憶デバイスを含むことができ、セキュアゾーンは、インターネットに接続されていない複数のプライベートコンピューティングデバイス(PCD)及びセキュアデータ記憶デバイスを含むことができる。
【0067】
ZSMは、1つ以上のIPU、1つ以上のハードウェア暗号化器、1つ以上のハードウェア復号器、1つ以上のRNG、1つ以上の一方向リンク、1つ以上の任意選択のネットワークインタフェースカード又はルータ又はネットワークスイッチを含むことができ、限定はしないが、ZSMが機能するために必要な複数のサポートサブシステム、コンポーネント、ケーブル、入出力インタフェースなどを含むことができる。
【0068】
エアギャップを使用する従来の方法はまた、コンピュータシステム又はコンピューティングネットワークを、インターネットに接続された非セキュアゾーンと、インターネットから隔離されたセキュアゾーンとに分離する。エアギャップ方法とは異なり、本明細書で開示される実施形態では、ユーザは、ファイル転送の前又は後に任意のデバイス又はモジュールを物理的に接続又は切断する必要なく、2つのゾーンにわたってファイルを便利かつ安全に転送することができる。
【0069】
一実施形態では、ZSMは、USB、イーサネット、SATAなどのインタフェースを介してユーザのUCDに接続することができるスタンドアロンのセキュアデータストレージ製品として実装することができる。別の実施形態では、ZSMは、PCIe、SATAなどの適切なインタフェースを介してコンピュータマザーボードに接続又は搭載することができ、サーバ、デスクトップコンピュータ又はラップトップのシャーシ内に収容することができるセキュアデータ記憶ユニットとして実装することができる。
【0070】
ZSMに基づく様々な実施形態が可能である。別の実施形態では、ZSMは、複数のユーザが同時にアクセスできるように、セキュアネットワーク接続ストレージ(NAS)として実装されてもよい。別の実施形態では、ZSMは、モジュール全体がセキュアデータストレージを備えたルータ又はネットワークスイッチとして認識され得るように、ルーティング又はスイッチング機能を組み込むことができる。更に別の実施形態では、ZSMは、セキュアリモートファイルサーバとして実装され、クラウド上に配置されてもよい。
【0071】
別の実施形態では、ZSMは、非セキュアゾーンコンピューティングデバイスとセキュアゾーンコンピューティングデバイスとの間のブリッジとして実装されてもよい。別の実施形態では、ZSMは、非セキュアゾーンコンピュータネットワークとセキュアゾーンコンピュータネットワークとの間のブリッジとして実装されてもよい。
【0072】
上記の態様で説明した少なくとも1つの周辺入力デバイスは、システム全体の設計に応じて、人間又はコンピュータプログラムのいずれかからコマンドを受信することができることを理解すべきである。コンピュータプログラムは、例えば、外部プロセッサ上で実行され、PCUからデータを取り込み、IPUにコマンドを送信する前にデータを分析するルールベース又はAIベースであってもよい。周辺入力デバイスは、データを取り込むための入力インタフェースを装備することができ、IPUへの一方向UART接続を介してIPUにコマンドを送信するように構成されたプリント回路基板上のFPGAなどのプロセッサを備えることができる。
【0073】
1つの態様に関連する特徴は、他の態様に関連し得ることを理解すべきである。
【図面の簡単な説明】
【0074】
ここで、添付図面を参照して、典型的な実施形態について説明する。
【0075】
【
図1a】第1の実施形態に係るコンピューティング装置を示す。
【
図1b】
図1aの装置のコンピューティングデバイスの例示的な構造を示す。
【
図3】
図2の通信リンクに含まれるハードウェア暗号化モジュールを示す。
【
図4】
図1aの装置のコンピューティングデバイス上でソフトウェアを実行することによって行なわれる方法/動作を示す。
【
図5】
図1aの装置の別のコンピューティングデバイス上でソフトウェアを実行することによって行なわれる方法/動作を示す。
【
図6】
図5と同じコンピューティングデバイス上でソフトウェアを実行することによって行なわれる別の方法/追加の動作を示す。
【
図7】
図1aの装置の更に別のコンピューティングデバイス上でソフトウェアを実行することによって行なわれる方法/動作を示す。
【
図8】
図7の動作の一部として行なわれる暗号化の種類の変換方法を示す。
【
図9a】
図1aのコンピューティング装置での使用に適したハードウェア暗号化モジュールを示す。
【
図9b】
図1aのコンピューティング装置での使用に適した別のハードウェア暗号化モジュールを示す。
【
図10】第2の実施形態のコンピューティング装置を示す。
【
図11】
図10の装置の周辺入力デバイス及び中継デバイスをより詳細に示す。
【
図12】第3の実施形態のコンピューティング装置を示す。
【
図13a】第4の実施形態のコンピューティング装置を示す。
【
図13b】電子メールを送受信するために
図13aのコンピューティング装置を使用して実行される方法を示す。
【
図14】
図13aのコンピューティング装置におけるハードウェア暗号化及びハードウェア復号の両方が実施され得る単一のハードウェアプラットフォームを示す。
【
図15】
図14のコンピューティング装置と同様の第5の実施形態のコンピューティング装置を示す。
【
図16】
図13及び
図14と同様であるがハードウェア暗号化のみを実施する第6の実施形態のコンピューティング装置を示す。
【
図17】前述の実施形態と機能的に同様であり、セキュアシッククライアントのためのデータ保護モジュールとして採用される第7の実施形態のコンピューティング装置を示す。
【
図18】
図17の装置を使用してアプリケーションソフトウェアをインストールする方法を示す。
【
図19】インターネットを介して安全に通信する2人のユーザを含む第8の実施形態のコンピューティング装置を示す。
【
図20】
図19の装置の2人のユーザ間でセッション鍵を確立する方法を示す。
【
図21】
図19の装置の2人のユーザ間のセキュア通信の方法を示す。
【
図22】デュアルタッチスクリーンスマートフォンの形態の第9の実施形態のコンピューティング装置を示す。
【
図23】ハンドヘルド又はデスクトップデバイス及びネットワーク化されたコンピュータシステム、例えばタブレット又はラップトップの形態のデータ保護モジュールを含む第10の実施形態のコンピューティング装置を示す。
【
図24】単一のタッチスクリーンを有するスマートフォンの形態の第11の実施形態のコンピューティング装置を示す。
【
図25】データ保護モジュール内の非セキュアコンピューティングユニット及びプライベートコンピューティングユニットがユーザのコンピューティングデバイスの形態である、第12の実施形態のコンピューティング装置を示す。
【
図26】
図25のコンピューティング装置を使用して暗号化されたメッセージを受信者に安全に送信するための鍵配信サービスの使用を含む方法を示す。
【
図27】第13の実施形態のコンピューティング装置を示す。コンピューティング装置は、データ記憶製品の形態のゾーン分離モジュール(ZSM)を含む。
【
図28】ネットワーク接続ストレージ(NAS)の形態のZSMを含む第14の実施形態に係るコンピューティング装置を示す。
【
図29】統合されたネットワーク切り替え又はルーティング施設を含むZSMを含む第10の実施形態に係るコンピューティング装置を示す。
【
図30】ZSMが異なるセキュリティ及びプライバシー要件を有する2つのネットワークゾーン間のブリッジとして機能する、第16の実施形態に係るコンピューティング装置を示す。
【
図31】
図30のコンピューティング装置がネットワークを非セキュアゾーンネットワークとセキュアゾーンネットワークとに分離する、第17の実施形態に係るネットワークアーキテクチャを示す。
【
図32】クラウドコンピューティング環境においてファイルサーバとして構成されたZSMを含む第18の実施形態に係るコンピューティング装置を示す。
【
図33】リモートサーバ、例えば
図32のファイルサーバにアクセスするためにユーザによって使用され得るセキュアシンクライアントを示す。
【
図34】
図33のセキュアシンクライアントを使用してリモートサーバにログインする方法を示す。
【
図35】ZSMが2つのコンピュータシステム間のブリッジとして機能する、第19の実施形態に係るコンピューティング装置を示す。
【発明を実施するための形態】
【0076】
図1aは、第1の実施形態に係るコンピューティング装置2を示す。コンピューティング装置2は、2つのコンピュータシステム、具体的には、ユーザコンピュータシステム19及びネットワークコンピュータシステム129と、データ処理デバイス11とを含む。ネットワーク化されたコンピュータシステム129は、外部ネットワーク、例えばインターネットと双方向通信し、これにより、コンピューティング装置2は全体として外部ネットワークと通信する。記載された実施形態では、ユーザコンピュータシステム19及びデータ処理デバイス11は、外部ネットワークと直接通信接続していない。
【0077】
ユーザコンピュータシステム19は、第1のコンピューティングデバイス125(コンピューティングデバイス 1、CD1又はプライベートコンピューティングユニット、PCUとも呼ばれる)を含む。第1のコンピューティングデバイス125は、例えば、ラップトップもしくはデスクトップコンピュータ、又は
図1bに示すような例示的な構造1380を有するRaspbianオペレーティングシステム(OS)を実行するRaspberry Piなどのシングルボードコンピュータを含むことができる。
【0078】
例示的な構造1380は、メインメモリ1388並びに入出力(I/O)インタフェース及び/又はデバイス1390と通信するプロセッサ1382(中央処理ユニット又はCPUと呼ばれる場合がある)を含む。プロセッサ1382は、1つ以上のCPUチップとして実現されてもよい。
【0079】
I/Oインタフェース及び/又はデバイス1390は、HDMI(登録商標)インタフェース、VGAインタフェース、1つ以上のUSBポート、SATAインタフェース、SDカードスロット、ユニバーサル非同期送受信機(UART)インタフェース、汎用入力/出力(GPIO)ピン、又は他の周知の入力/出力インタフェース及び/又はデバイスを含むことができる(ただし、これらに限定されない)。
【0080】
第1のコンピューティングデバイス125は、任意選択的に、二次記憶デバイス1384と、ネットワーク接続デバイス1392とを更に含んでもよい。前述したように、ユーザコンピュータシステム19は、外部ネットワークと直接通信接続しておらず、したがって、任意のネットワーク接続デバイス1392は、内部ネットワークへの接続のみを提供する。
【0081】
例示的な構造1380を有するコンピューティングデバイス上に実行可能命令をプログラミング及び/又はロードすることによって、CPU1382及びメモリ1388の少なくとも一方が変更され、コンピューティングデバイスを本開示によって教示される新規な機能を有する特定の機械又は装置に部分的に変換することが理解される。実行可能ソフトウェアをコンピュータにロードすることによって実装することができる機能を、周知の設計規則によってハードウェア実装に変換することができることは、電気工学及びソフトウェア工学の技術にとって基本的である。ソフトウェアとハードウェアとで概念を実装するかの決定は、通常、ソフトウェアドメインからハードウェアドメインへの変換に伴う問題ではなく、設計の安定性の考慮及び製造されるユニットの数に左右される。一般に、ハードウェア実装を再スピンすることはソフトウェア設計を再スピンするよりも高価であるため、依然として頻繁に変更される設計は、ソフトウェアに実装されることが好ましい場合がある。一般に、大量に生産される安定した設計は、ハードウェア、例えば特定用途向け集積回路(ASIC)に実装することが好ましい場合がある。これは、大規模な生産実行の場合、ハードウェア実装はソフトウェア実装よりも安価であり得るからである。多くの場合、設計は、ソフトウェア形式で開発及びテストされ、その後、周知の設計規則によって、ソフトウェアの命令をハードワイヤする特定用途向け集積回路内の同等のハードウェア実装に変換され得る。新しいASICによって制御される機械が特定の機械又は装置であるのと同じように、同様に、実行可能命令でプログラム及び/又はロードされたコンピュータは、特定の機械又は装置と見なすことができる。
【0082】
具体的には、例示的な構造1380を有するコンピューティングデバイスがオンにされるか又は起動された後、CPU1382は、コンピュータプログラム又はアプリケーションを実行することができる。例えば、CPU1382は、メモリ1388、又はI/Oインタフェース及び/又はデバイス1390を介してアクセスされる読み出し専用メモリ(ROM)などの別のメモリデバイスに記憶されたソフトウェア又はファームウェアを実行することができる。場合によっては、起動時及び/又はアプリケーションが開始されたときに、CPU1382は、アプリケーション又はアプリケーションの一部を関連する記憶デバイスからCPU1382自体のメモリ空間にコピーすることができ、次いで、CPU1382は、アプリケーションが含まれる命令を実行することができる。実行中、アプリケーションは、命令をCPU1382にロードすることができ、例えば、アプリケーションの命令の一部をCPU1382のキャッシュにロードすることができる。幾つかの状況では、実行されるアプリケーションは、何かを行うようにCPU1382を構成する、例えば、主題のアプリケーションによって促進された機能を実行するようにCPU1382を構成すると言うことができる。CPU1382がこのようにアプリケーションによって構成される場合、CPU1382は、専用のコンピュータ又は専用機となる。
【0083】
メモリ1388は、幾つかの文脈では、コンピュータ可読記憶媒体及び/又は非一時的コンピュータ可読媒体と呼ばれることがある。
【0084】
プロセッサ1382は、I/Oインタフェース又はデバイス1390又はメモリ1388を介してアクセスされる、ハードディスク、フロッピーディスク、光ディスク、フラッシュドライブからアクセスする命令、コード、コンピュータプログラム、スクリプトを実行する。ただ1つのプロセッサ1382が示されているが、複数のプロセッサが存在してもよい。したがって、命令は、プロセッサによって実行されるものとして説明することができるが、命令は、同時に、順次に、又は1つもしくは複数のプロセッサによって実行することができる。記憶デバイス、例えば、ハードドライブ、フロッピーディスク、光ディスク、及び/又は他の装置、及び/又はメモリ1388からアクセスすることができる命令、コード、コンピュータプログラム、スクリプト、及び/又はデータは、幾つかの文脈では、非一時的命令及び/又は非一時的情報と呼ばれることがある。
【0085】
一実施形態では、例示的な構造1380は、タスクを実行するために協働する、互いに通信する2つ以上のコンピュータを含むことができる。例えば、限定するものではないが、アプリケーションは、アプリケーションの命令の同時及び/又は並列処理を可能にするように分割され得る。或いは、アプリケーションによって処理されるデータは、2つ以上のコンピュータによってデータセットの異なる部分の同時及び/又は並列処理を可能にするように分割されてもよい。
【0086】
一実施形態では、本明細書に開示される機能の一部又は全部は、コンピュータプログラム製品として提供されてもよい。コンピュータプログラム製品は、本明細書に開示された機能を実施するために内部に具現化されたコンピュータ使用可能プログラムコードを有する1つ以上のコンピュータ可読記憶媒体を備えることができる。コンピュータプログラム製品は、データ構造、実行可能命令、及び他のコンピュータ使用可能プログラムコードを含むことができる。コンピュータプログラム製品は、取り外し可能なコンピュータ記憶媒体及び/又は取り外し不能なコンピュータ記憶媒体に具現化されてもよい。取り外し可能なコンピュータ可読記憶媒体は、紙テープ、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリチップ、例えばアナログ磁気テープ、コンパクトディスク読み出し専用メモリ(CD-ROM)ディスク、フロッピーディスク、ジャンプドライブ、デジタルカード、マルチメディアカードなどを含み得るが、これらに限定されない。コンピュータプログラム製品は、コンピュータプログラム製品の内容の少なくとも一部をメモリ1388、並びに/又は構造1380内の他の不揮発性メモリ及び揮発性メモリにロードするのに適し得る。プロセッサ1382は、例えば、ディスクドライブ周辺装置に挿入されたCD-ROMディスクから構造1380に読み取ることによって、コンピュータプログラム製品に直接アクセスすることによって、実行可能命令及び/又はデータ構造を部分的に処理することができる。コンピュータプログラム製品は、データ、データ構造、ファイル、及び/又は実行可能命令の、外部記憶装置への、又はメモリ1388への、及び/又は構造1380に含まれる他の不揮発性メモリ及び揮発性メモリへのロード及び/又はコピーを促進する命令を含むことができる。
【0087】
幾つかの状況では、外部記憶装置及びメモリ1388は、非一時的コンピュータ可読媒体又はコンピュータ可読記憶媒体と呼ばれることがある。同様に、メモリ1388のダイナミック・ランダム・アクセス・メモリ(RAM)の実施形態は、ダイナミックRAMが電力を受け取り、その設計に従って、例えばコンピューティングデバイスがオンにされて動作している期間中に動作する間、ダイナミックRAMがそれに書き込まれた情報を記憶するという点で、非一時的コンピュータ可読媒体と呼ぶことができる。同様に、プロセッサ1382は、内部RAM、内部ROM、キャッシュメモリ、及び/又は、幾つかの文脈において非一時的コンピュータ可読媒体又はコンピュータ可読記憶媒体と称され得る他の内部非一時的記憶ブロック、セクション、又はコンポーネントを備えてもよい。
【0088】
ユーザコンピュータシステム19は、例えば、第1のコンピューティングデバイス125のI/Oインタフェースに含まれるHDMI(登録商標)インタフェース又はVGAインタフェースなどのインタフェースを介して、第1のコンピューティングデバイス125からコンピュータ画面データを受信するように構成された第1のモニタ127を更に含む。更に、ユーザコンピュータシステム19は、第1の記憶デバイス29、例えば、第1のコンピューティングデバイス125のUSBポートに接続されたソリッドステートドライブ、又はマイクロSDカードスロットに挿入されたマイクロSDカードを含む。
【0089】
データ処理デバイス11は、第2のコンピューティングデバイス31(コンピューティングデバイス 2、CD2又は入力処理ユニットIPUとも呼ばれる)、例えば、同じく
図1bに示し、前述した例示的な構造1380を有するシングルボードコンピュータを含む。ここでも、前述したように、データ処理デバイス11は、いかなる外部ネットワークとも直接通信接続しておらず、したがって、データ処理デバイス11の任意選択のネットワーク接続デバイス1392(存在する場合)は、内部ネットワークへの接続のみを提供する。
【0090】
データ処理デバイス11はまた、第2のコンピューティングデバイス31のマイクロSDカードスロットに挿入され、第2のコンピューティングデバイス31のためのOS及びアプリケーションソフトウェアを記憶することができるマイクロSDカードなどの第2の記憶デバイス33を含む。データ処理デバイス11には、ユーザファイルを暗号化形式で記憶するための第2のコンピューティングデバイス31に含まれるUSBポート又はSATAインタフェースに接続され得る第3の記憶デバイス35、例えばソリッドステートドライブ又はハードディスクドライブも含まれる。記載された実施形態では、データ処理デバイス11は、例えば、暗号化された形態で記憶されたユーザファイル又はバックアップを目的としたユーザファイルを復号するために必要な暗号鍵を記憶するためのUSBフラッシュドライブ又はマイクロSDカードなどの任意選択のリムーバブル記憶デバイス37を更に含む。
【0091】
コンピューティング装置2はまた、キーボード、マウス、又は他の何らかの周辺入力デバイスを含む、例えばヒューマン・インタフェース・デバイス(HID)などの第1の周辺入力デバイス17と、第1の周辺入力デバイス17が接続される入力ポートを有する、例えばUSBスイッチなどのセレクタスイッチ18(ネットワークスイッチと混同しないようにする)とを含む。セレクタスイッチ18は、例えばセレクタスイッチ18から第1のコンピューティングデバイス125及び第2のコンピューティングデバイス31に含まれるそれぞれのUSBポートへのUSB接続を介して、第1のコンピューティングデバイス125及び第2のコンピューティングデバイス31に接続される。セレクタスイッチ18は、ユーザによって操作されるように構成されており、第1の周辺入力デバイス17で受け付けられたユーザ入力の送信先を決定する。
【0092】
ネットワークコンピュータシステム129は、例えば、Windows又はLinux(登録商標)OSを実行するラップトップ又はデスクトップコンピュータの形態であってもよい第3のコンピューティングデバイス21(コンピューティングデバイス3、CD3又は非セキュアコンピューティングユニット、UCU、又は非セキュアコンピューティングデバイス、UCDとも呼ばれる)を含む。或いは、単に外部ネットワークへのアクセスを提供するルータ装置であってもよい。記載された実施形態では、第3のコンピューティングデバイス21はまた、
図1bに示され、前述された例示的な構造1380を有する。しかしながら、第1のコンピューティングデバイス125及び第2のコンピューティングデバイス31とは対照的に、第3のコンピューティングデバイス21のネットワーク接続デバイス1392は、外部ネットワークに接続するための少なくとも1つの機器を含み、したがって、第3のコンピューティングデバイス21のネットワーク接続デバイス1392は、モデム、モデムバンク、イーサネットカード、ユニバーサルシリアルバス(USB)インタフェースカード、シリアルインタフェース、トークンリングカード、ファイバ分散データインタフェース(FDDI)カード、ワイヤレスローカルエリアネットワーク(WLAN)カード、符号分割多元接続(CDMA)、グローバル移動体通信システム(GSM)、ロングタームエボリューション(LTE)、ワールドワイド・インタオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)、近距離無線通信(NFC)、無線周波数アイデンティティ(RFID)、及び/又は他のエアインタフェースプロトコル無線送受信機などのプロトコルを使用して無線通信を促進する無線送受信機カード、並びに他の周知のネットワーク機器の形態をとることができる。
【0093】
このようなネットワーク接続により、プロセッサ1382は、ネットワークから情報を受信してもよく、又は本明細書に記載の方法ステップを実行する過程でネットワークに情報を出力してもよいと考えられる。
【0094】
そのような情報は、例えば、プロセッサ1382を使用して実行されるデータ又は命令を含むことができ、例えば、搬送波で具現化されたコンピュータデータベースバンド信号又は信号の形態で、ネットワークから受信し、ネットワークに出力することができる。搬送波に埋め込まれたベースバンド信号もしくは信号、又は現在使用されているもしくは今後開発される他のタイプの信号は、当業者に周知の幾つかの方法に従って生成することができる。搬送波に埋め込まれたベースバンド信号及び/又は信号は、幾つかの文脈では一時的信号と呼ばれることがある。
【0095】
第2のモニタ39も、ネットワーク化されたコンピュータシステム129に含まれており、例えば第3のコンピューティングデバイス21に含まれるHDMI(登録商標)インタフェース又はVGAインタフェースなどのインタフェースを介して、第3のコンピューティングデバイス21からコンピュータ画面データを受信するように構成される。ネットワークコンピュータシステム129は、第3のコンピューティングデバイス21のOS、アプリケーションソフトウェア、インターネットからダウンロードされたファイルなどの非機密データなどを記憶するための第4の記憶デバイス41を更に含む。更に、ネットワーク化されたコンピュータシステム129は、第2の周辺入力デバイス43、例えば、キーボード、マウス、又は、例えば第3のコンピューティングデバイス21に含まれるUSBインタフェースを介して第3のコンピューティングデバイス21に通信可能に接続される何らかの他の周辺入力デバイスを含むヒューマン・インタフェース・デバイス(HID)を含む。
【0096】
コンピューティング装置2は、ユーザコンピュータシステム19とデータ処理デバイス11との間でデータを転送するための通信リンク13を更に含み、通信リンク13は、ユーザコンピュータシステム19からデータ処理デバイス11にデータを転送するための第1の一方向リンク25と、データ処理デバイス11からユーザコンピュータシステム19にデータを転送するための第2の一方向リンク27とを含む。コンピューティング装置2はまた、2つの更なる一方向リンク、具体的には、ネットワーク化されたコンピュータシステム129からユーザコンピュータシステム19にデータを転送するための第3の一方向リンク23と、データ処理デバイス11からネットワーク化されたコンピュータシステム129にデータを転送するための第4の一方向リンク15とを含む。
図1aには示されていないが、記載された実施形態では、ネットワークコンピュータシステム129は、任意選択的に、第3の一方向リンク23及び第4の一方向リンク15が第3のコンピューティングデバイス21に接続されるシリアル-USBアダプタ55を利用し、第3のコンピューティングデバイス21は、例えば、シリアル-USBアダプタ55のUSBコネクタが接続されるUSBポートを更に含む。この装置については、
図2を参照して以下により詳細に説明する。4つの一方向リンク25、27、15、23は、光通信リンク又は電気通信リンクであってもよい。
【0097】
記載された実施形態では、4つの一方向リンク25、27、15、23の全てがそれぞれ任意選択のデータダイオードを含み、具体的には、第1の一方向リンク25は第1のデータダイオード45を含み、第2の一方向リンク27は第2のデータダイオード47を含み、第3の一方向リンク23は第3のデータダイオード49を含み、第4の一方向リンク15は第4のデータダイオード51を含む。例えば、4つのデータダイオード45、47、49、51のそれぞれは、電気信号を光信号に変換し、次いで電気信号に戻す光カプラを含むことができ、或いは、伝送リンクが光リンクである場合には光アイソレータを使用することができる。第1の一方向リンク25はハードウェア暗号化モジュール53を更に含み、ハードウェア暗号化モジュール53は、記載された実施形態では、以下により詳細に記載されるプリント回路基板上にフィールドプログラマブルゲートアレイ(FPGA)81などの集積回路を含む。
【0098】
図1aから、ユーザコンピュータシステム19、データ処理デバイス11、及びネットワーク化されたコンピュータシステム129(すなわち、4つの一方向リンク25、27、15、23)の間の一方向のリンクのみを有することにより、ユーザコンピュータシステム19とデータ処理デバイス11との間で直接データを転送する唯一の手段は、通信リンク13を介していることを理解すべきである。更に、ユーザコンピュータシステム19からデータを転送する唯一の機構は、第1の一方向リンク25及びデータ処理デバイス11を介するものであり、データ処理デバイス11にデータを転送する唯一の機構もまた、第1の一方向リンク25を介するものである(本明細書で使用される「データを転送する」という用語は、2つの周辺入力デバイス17、43を介したユーザ入力の受信を包含することを意図しないことに留意されたい)。このように、データ処理デバイス11での送信データの受信は、ユーザコンピュータシステム19及び通信リンク13を介してのみ実行され、ユーザコンピュータシステム19からのデータの送信は、通信リンク13及びデータ処理デバイス11を介してのみ実行される。
【0099】
同様に、第3の一方向リンク23のみが、ネットワーク化されたコンピュータシステム129からユーザコンピュータシステム19へデータを転送するために設けられ、第4の一方向リンク15のみが、データ処理デバイス11からネットワーク化されたコンピュータシステム129へデータを転送するために設けられる。
【0100】
記載された実施形態の変形例では、データ転送容量を増加させるために、同じタイプの複数の通信リンクが並列に接続されてもよいことを理解すべきである。例えば、複数の通信リンク13は、ユーザコンピューティングシステム19とデータ処理デバイス11との間で並列に動作することができる。同様に、一方向リンク23及び15の場合、それらの複数が並列に動作することができる。更に、複数のユーザコンピュータシステム19と、1つのネットワークコンピューティングシステム129に接続され得る複数のデータ処理デバイス11とが存在してもよい。或いは、1つのユーザコンピュータシステム19及び1つのデータ処理デバイス11に接続された複数のネットワークコンピューティングシステム129が存在してもよい。
【0101】
図2は、記載された実施形態において、ユニバーサル非同期送受信機(UART)インタフェースリンクを用いて実装される4つの一方向リンク25、27、15、23(明確にするために、4つのデータダイオード45、47、49、51は
図2から省略されている)のより詳細な図を示す。
図2に示すように、記載された実施形態では、第2のコンピューティングデバイス31は、第1及び第2のUARTインタフェース、具体的には、第1の送信機(TX)ピン57及び第1の受信機(RX)ピン59を有する第1のUARTインタフェースと、第2のTXピン63及び第2のRXピン61を有する第2のUARTインタフェースとを含む。同様に、第1のコンピューティングデバイス125は、第3のRXピン69を有する第3のUARTインタフェースを含む。第1のコンピューティングデバイスはまた、更なる未使用のTXピン(図示せず)と、第4のTXピン65及び第4のRXピン67を含む第4のUARTインタフェースとを含むことが理解され得る。シリアルUSBアダプタ55は、第5のTXピン73及び第5のRXピン71を含む第5のUARTインタフェースを含む。第3のコンピューティングデバイス21にインストールされた対応するデバイスドライバは、第3のコンピューティングデバイス21にCOMポートを作成し、第5のUARTインタフェースを介してデータを送受信することを可能にすることができる。
【0102】
前述したように、第1の一方向リンク25はハードウェア暗号化モジュール53を含み、記載された実施形態では、第1のコンピューティングデバイス125の第4のTXピン65からハードウェア暗号化モジュール53を介して第2のコンピューティングデバイス31に含まれる2つのRXピン59、61へのUARTリンクを更に含む。
【0103】
図3は、ハードウェア暗号化モジュール53をより詳細に示している。前述したように、ハードウェア暗号化モジュール53は、Digilent(商標)製のZedboard(商標)又はXilinx(商標)製のSpartan(商標)-6FPGA評価ボードなどのプリント回路基板上のFPGA81、又はデジタル論理演算を実施するのに適したプリント回路基板上の他のタイプの集積回路を含む。更に、ハードウェア暗号化モジュール53は、ランダム性の供給源、例えば、乱数生成器(RNG)83、好ましくは、4Mbpsのレートで真のランダムビットを提供することができるIDQからの量子などの量子ランダムビット生成器(QRNG)を更に含むことができる。
【0104】
ハードウェア暗号化モジュール53は、例えばFPGA81上の汎用入力/出力(GPIO)ピン並びに第1のHEMTXピン77及び第2のHEMTXピン79で実装することができるHEMRXピン75を更に含み、これらは両方とも、例えばFPGA81上のGPIOピンで実装することもできる。FPGA81がRNG83から乱数を受信する更なる数のGPIOピン(
図3には示されていない)もFPGA81に含まれる。更なる数のGPIOピンを介してRNG83からランダムビットを取り込むように構成された先入れ先出し(FIFO)メモリ85と、FIFOメモリ85及びHEMRXピン75の両方からデータを受信し、第1のHEMTXピン77及び第2のHEMTXピン79の両方を介してデータを出力するように構成された排他的論理和(XOR)ゲート87も含まれる。
【0105】
図2及び
図3から理解されるように、第1のコンピューティングデバイス125の第4のTXピン65は、HEMRXピン75に接続され、第1のHEMTXピン77は、第2のコンピューティングデバイス31に含まれる2つのRXピン59、61のうちの一方に接続され、第2のHEMTXピン79は、第2のコンピューティングデバイス31に含まれる2つのRXピン59、61のうちの他方に接続される。
【0106】
動作中、FPGA81は、RNG83からランダムビットを取り込むことができ、その後FIFOメモリ85に記憶される。FPGA81は、FIFOメモリ85から読み出されたランダムビットを使用して、第1のコンピューティングデバイス125からの(HEMRXピン75を介して受信された)データに対してXORゲート87による暗号化を実行する。記載された実施形態では、暗号化演算は、ランダムビットを暗号鍵として使用するデータビットに対するビットごとのXORゲート演算である。以下、この暗号化のプロセスはワンタイムパッド(OTP)暗号化と呼ばれ、暗号化に使用されるランダムビットは一度だけ使用されるため、OTP鍵として暗号化に使用され、1ランダムビットはXORゲート演算87を介して一データビットを暗号化する。次いで、FPGA81は、第2のHEMTXピン79から第2のコンピューティングデバイス31の第1のRXピン59にOTP暗号化データを送信し、第1のHEMTXピン77から第2のコンピューティングデバイス31の第2のRXピン61にOTP鍵を送信する、すなわち、2つの別個のUARTインタフェースを介して送信する。
【0107】
したがって、第1の一方向リンク25を介して第1のコンピューティングデバイス125から第2のコンピューティングデバイス31へ送信される全てのデータは、ハードウェア暗号化モジュール53によってハードウェア暗号化される。第1のコンピューティングデバイス125とFPGA81との間に配置されるデータダイオード45の役割は、FPGA81から第1のコンピューティングデバイス125へのOTP鍵の漏洩を含むデータ漏洩を防止することである。
【0108】
ここで
図2に戻ると、第2の一方向リンク27は、第1のコンピューティングデバイス31の第1のTXピン57から第1のコンピューティングデバイス125の第4のRXピン67への直接UARTインタフェースリンクを備える。
【0109】
第3の一方向リンク23は、シリアルUSBアダプタ55の第5のTXピン73から第1のコンピューティングデバイス125の第3のRXピン69へのUARTインタフェースリンクを備える。
【0110】
第4の一方向リンク15は、第2のコンピューティングデバイス31の第2のTXピン63からシリアルUSBアダプタ55の第5のRXピン71へのUARTインタフェースリンクを備える。
【0111】
したがって、UARTインタフェースのTX及びRXピンの対が双方向UART通信のために別のコンピューティングデバイスの別のUARTインタフェースのRX及びTXピンの別の対に通常接続されるUARTインタフェースを採用する従来のシステムとは対照的に、記載された実施形態では、第5のTXピン73は第1のコンピューティングデバイス125に接続され、第5のRXピン71は第2のコンピューティングデバイス31に接続され、それにより、第1のコンピューティングデバイス31と第3のコンピューティングデバイス21との間、及び第2のコンピューティングデバイス31と第3のコンピューティングデバイス21との間のデータ転送における単一方向性が達成されることを理解すべきである。データ転送の単一方向性を厳密に実施するためにデータダイオードを使用できることを理解すべきである。
【0112】
記載された実施形態では、3つのコンピューティングデバイス125、31、21間で送信されるデータには、送信されるデータのタイプに関する情報を提供するファイル終了(EOF)タグが付加されてもよい。例えば、2バイトのASCII非印刷可能文字b’\x1A\x1A’を使用して、電子メールを示すことができる。同様に、b’\x1B\x1A’はファイル名を示すために使用されてもよく、b’\x1C\x1A’は暗号化されていないファイルを示すために使用されてもよく、以下同様である。ここで、各文字列の前の文字bは、Pythonプログラミング言語で表現されるように、バイトへの符号化を示す。
【0113】
前述したように、第2のコンピューティングデバイス31の場合、受信データはOTP暗号化される。記載された実施形態では、第2のコンピューティングデバイス31上で実行されるソフトウェアは、EOFタグを復号するためにデータを暗号化するために使用されるOTP暗号化データの最後の2バイトとOTP鍵の最後の2バイトとのXORを計算する。このようにして、プログラムは、受信したデータの種類を知るためにEOFタグを読み取ることができ、データをどのように処理するかを第2のコンピューティングデバイス31で決定することができる。上記の例示的な方法に限定されず、送信されているデータのタイプを識別するための他の手段が代替的に使用されてもよいことを理解すべきである。
【0114】
記載された実施形態では、セパレータを使用して、特定のデータチャンクを分離し、識別目的で使用することができる。例えば、ファイルのファイル名は、ファイルコンテンツからファイル名を分離するために、b’\x1B\x1A’などのセパレータを使用してファイルコンテンツの先頭に追加されてもよい。第2のコンピューティングデバイス31によって受信されたデータはOTP暗号化されているので、ファイル名を取得するために、第2のコンピューティングデバイス31上で実行されるソフトウェアは、受信されたデータの先頭からセパレータが見つかるまで、一度に2バイトずつ、OTP暗号化データとOTP鍵とのXORを計算して読み取る。一旦発見されると、ソフトウェアは、セパレータの前のデータがセパレータのタイプを見ることによってファイル名を与えることを第2のコンピューティングデバイス31に理解させるように構成される。同様に、アドレスの電子メールアドレスは、b’\x1F\x1A’などの異なるセパレータを使用して電子メールの先頭に追加されてもよい。セキュリティ上の理由から、各セパレータの前のデータチャンクのサイズには、32バイトなどの制限を設定することが好ましい。32バイト後にセパレータが見つからなければ、セパレータを見つける処理を停止する。各セパレータの意味を示すルックアップテーブルは、ユーザコンピュータシステム19及びデータ処理デバイス11の両方に記憶することができる。セパレータ方法の多くの異なる変形が可能であることを理解すべきである。また、上記の例示的な方法によって限定されないファイル名、電子メールアドレスなどを識別する他の手段が、実施形態に応じて代替的に使用されてもよい。
【0115】
図1~
図3から分かるように、ユーザコンピュータシステム19から別のコンピューティングデバイスにデータを出力する唯一の手段は、第1の一方向リンク25を介しており、それを介して全てのデータが前述のようにハードウェア暗号化される。逆に、別のコンピューティングデバイスからデータ処理デバイス11にデータを入力する唯一の手段も、ハードウェア暗号化された第1の一方向リンク25を介する。これの重要性については後述する。
【0116】
動作中、2つのコンピュータシステム129、19及びデータ処理デバイス11のそれぞれは、コンピューティング装置2の一部として異なる機能を実行するように構成される。
【0117】
具体的には、
・ユーザコンピュータシステム19は、(ネットワークコンピュータシステム129を介して)ユーザ並びに外部ネットワークからデータを受信し、データを復号し、復号されたデータを表示及び処理するように構成される。ユーザコンピュータシステム19は、ユーザが個人データを閲覧及び編集することを可能にするように更に構成される。
【0118】
・データ処理デバイス11は、ユーザが個人データ及びコマンドを入力し、データを暗号化し、暗号化されたデータを(ネットワーク化されたコンピュータシステム129を介して)外部ネットワークに送信し、ユーザのみがアクセスできるようにする暗号化された形式でデータを記憶することを可能にするように構成される。
【0119】
・ネットワーク化されたコンピュータシステム129は、ユーザがウェブをサーフィンすること、インターネットからファイルをダウンロードすること、メッセージ/電子メールなどの暗号化されたデータを受信すること、暗号化されたメッセージ/電子メールを含むデータを送出することなどを可能にするために、外部ネットワーク、すなわちインターネットへの接続を可能にするように構成される。
【0120】
したがって、従来は単一のコンピューティングデバイス内で実行されていたコンピューティング機能は、3つの異なるコンピューティングデバイスで実行され、それぞれが異なる役割を果たし、異なるプライバシー及びセキュリティ要件を有するデータを処理する。
【0121】
ここで、説明した実施形態に係る2つのコンピュータシステム129、19及びデータ処理デバイス11の動作について詳細に説明する。
【0122】
ネットワーク化されたコンピュータシステム129の動作
前述したように、ネットワーク化されたコンピュータシステム129、具体的にはネットワーク化されたコンピュータシステム129の第3のコンピューティングデバイス21は、外部ネットワーク、例えばインターネットに接続され、ユーザがウェブをサーフィンし、外部ネットワークからデータをダウンロードすることを可能にするように構成される。第3のコンピューティングデバイス21はまた、暗号化ファイルの外部ネットワークとの送受信を可能にするように構成される。
【0123】
第3のコンピューティングデバイス21上でソフトウェアを実行することによって少なくとも部分的に実装される、記載された実施形態に係るネットワーク化されたコンピュータシステム129の動作(以下、CD3データ処理アプリと呼ぶ)は、ワークフロー図又はフローチャートの形式で取り込むことができる(命名の一貫性のために、コンピュータシステムで実行されるアプリケーションソフトウェアは、以後、CDXデータ処理アプリケーションと呼ばれるものとし、X=1、2又は3である)。
図4に示すフローチャートは、ネットワーク化されたコンピュータシステム129がどのように動作し得るかの例を示す。
【0124】
ステップ401において、ユーザは、ネットワークコンピュータシステム129の第3のコンピューティングデバイス21上でCD3データ処理アプリを実行する。
【0125】
ステップ403において、CD3データ処理アプリは、シリアル-USBアダプタ55が第1のコンピューティングデバイス125と第2のコンピューティングデバイス31の両方に接続した状態でシリアルポートを開き、第2のコンピューティングデバイス31から来る通信をリッスンする。
【0126】
ステップ405において、第2のコンピューティングデバイス31(すなわち、データ処理デバイス11)からデータが受信される。
【0127】
ステップ407において、CD3データ処理アプリは、上記のようにEOFタグを読み取ることによって受信したデータの種類を決定し、第2のモニタ39に表示されるポップアップ・メッセージ・ボックスを開き、データを表示するかクリップボードにコピーするかなどの動作をユーザに問い合わせ、ユーザが「はい」又は「いいえ」を選択できるようにする選択ボックス(例えば、ユーザインタフェースの形態で)を提供することによって、受信したデータの種類をユーザに通知する。
【0128】
データが、ユーザが送りたい暗号化された電子メールであることをユーザが確認した場合、ユーザは選択ボックス内のオプション「クリップボードにコピー」を選択し、ステップ409において、アプリは受信したデータをクリップボードにコピーする。
【0129】
例えば、ステップ411において、ユーザは他のソフトウェアを実行してもよく、ユーザは、第3のコンピューティングデバイス21上で電子メールクライアントアプリケーションを開くことができる。
【0130】
ステップ413において、ユーザは、次に、第2のコンピューティングデバイス31から受信したデータをクリップボードから例えば電子メールクライアントアプリケーションの作成ウィンドウにコピーする命令を入力することができる。
【0131】
ステップ415において、ユーザは、次に、受取人の電子メールアドレス及び電子メールの件名を入力することができる。
【0132】
最後に、ステップ417において、ユーザは電子メールの送信に進むことができる。
【0133】
公開鍵暗号化、例えばRSAが、データ処理デバイス11から受信した電子メールの内容を暗号化するAES鍵を転送するために使用される場合、電子メールクライアントは、好ましくは、公開鍵暗号化AES鍵もアドレス先に送信する。複数のアドレスの場合、AES鍵を暗号化するために使用される公開鍵が各アドレスに固有のものであるという事実を考慮することが重要である。この問題を解決するために、好ましくは、第2のコンピューティングデバイス31は、電子メールクライアントアプリケーションがセパレータを探すことによってそれらを識別することができるように、適切なセパレータによって分離された、それぞれの受取人の公開鍵で暗号化されたAES鍵を伴う各受取人の電子メールアドレスを送信する。電子署名が電子メールに署名するために使用される場合、電子メールクライアントアプリケーションが電子署名を見つけることを可能にするために異なるセパレータが使用されてもよい。
【0134】
一方、ステップ407においてユーザが「データを保存する」を選択した場合、ステップ419において、データを保存するためにファイル名を入力するようにユーザに要求するポップアップメッセージが表示される。
【0135】
ユーザがファイル名を入力し、「保存」ボタンをクリックすると、ステップ421において、データは記憶装置に、例えば第4の記憶デバイス41に保存される。
【0136】
一方、ステップ419において、ユーザが「Cancel」を選択した場合、動作は終了する。
【0137】
前述したように、第3のコンピューティングデバイス21はまた、外部ネットワークからデータを受信してもよく、CD3データ処理アプリはまた、ユーザのためにそのようなデータの処理を可能にするように構成されてもよい。
【0138】
例えば、ステップ425において、電子メール、例えば暗号化された情報を含む電子メールが、電子メールクライアントアプリケーションを介して受信されてもよい。
【0139】
ステップ427において、ユーザは電子メールを開く。しかしながら、コンテンツは暗号化されているため、コンテンツを読み取ることができない可能性があることを理解すべきである。
【0140】
ステップ429において、ユーザは、電子メールの暗号化された内容をクリップボードにコピーする。
【0141】
ステップ431において、ユーザは、コピーされた情報、すなわちクリップボードデータをCD3データ処理アプリのウィンドウに貼り付ける。
【0142】
ステップ433において、ユーザは、CD3データ処理アプリのウィンドウを介して命令を入力するか、又は「復号する」ボタンをクリックして、復号のために情報をユーザコンピュータシステム19、すなわち第1のコンピューティングデバイス125に送信するようにアプリに命令する。
【0143】
次いで、ステップ435において、CD3データ処理アプリは、ペーストされた情報をユーザコンピュータシステム19、すなわち第3の一方向リンク23を介して第1のコンピューティングデバイス125に送信する。
【0144】
証明書と共に到着するデジタル署名された電子メールの場合、受信された証明書及びデジタル署名は、第1のコンピューティングデバイス125で検証することができる。ルート証明書は、第3の記憶デバイス35に記憶され、両方の電源がオンになったときに第1のコンピューティングデバイス125に送信されてもよい。また、ルート証明書は、第1の記憶デバイス29に記憶されていてもよい。
【0145】
記載された実施形態では、CD3データ処理アプリはまた、ユーザがネットワーク化コンピュータシステム129からユーザコンピュータシステム19にファイル、例えば外部ネットワークからダウンロードされて第4の記憶デバイス41に保存されたファイルを送信することを可能にするように構成される。
【0146】
具体的には、ステップ437において、ユーザは、コマンドをキー入力するか、又はCD3データ処理アプリのウィンドウ上の対応するボタン「CD1にファイルを送信する」をクリックして、ユーザコンピュータシステム19にファイルを送信するプロセスを開始する。
【0147】
ステップ439において、第4の記憶デバイス41に記憶されたファイルのリストからファイルを選択するようにユーザに求めるメッセージが表示される。
【0148】
ステップ441において、ユーザがファイルを選択した場合、アプリケーションは、前述したように、各ファイルにファイル終了(EOF)タグを付加し、次いで、ファイルは、シリアルUSBアダプタ55及び第3の一方向リンク23を介してユーザコンピュータシステム19に送信される。幾つかの実施形態では、前述したように、ファイル名はセパレータで各ファイルの先頭に追加されてもよい。
【0149】
逆に、ステップ439でユーザが「キャンセル」を選択した場合、ステップ443で動作は終了する。
【0150】
したがって、要約すると、第3のコンピューティングデバイス21上でCD3データ処理アプリを実行することによって、ネットワーク化されたコンピュータシステム129は、以下のデータ転送機能を実行するように構成される。
1.データ処理デバイス11からファイルや暗号化された電子メールなどのデータを受信する、
2.暗号化された電子メールなどの受信データをユーザコンピュータシステム19に送信する、及び
3.ダウンロードされたファイルなどの暗号化されていないデータをユーザコンピュータシステム19に送信する。
【0151】
ユーザコンピュータシステム19の動作
ネットワーク化されたコンピュータシステム129とは対照的に、ユーザコンピュータシステム19は、個人データを復号し、ユーザが見るために復号されたデータを第1のモニタ127に表示するように構成される。記載された実施形態では、ユーザ入力、例えばユーザコンピュータシステム19上のデータを編集するための入力は、第1の周辺入力デバイス17及びセレクタスイッチ18を介して受信されるように構成される。
【0152】
ユーザコンピュータシステム19の動作は、データの受信、復号、及び保存を含み、これらの動作は、記載された実施形態ではCD1データ処理アプリケーションの形態であるソフトウェアをユーザコンピュータシステム19の第1のコンピューティングデバイス125上で実行することによって少なくとも部分的に実行される。ユーザコンピュータシステムがどのように動作し得るかの一例を示すフローチャートを
図5に示す。
【0153】
ステップ501において、ユーザは、第1のコンピューティングデバイス125上でCD1データ処理アプリを実行する。
【0154】
ステップ503において、アプリケーションは、第4のRXピン67を備えるシリアルポートを開き、データ処理システム11からのデータをリッスンする。
【0155】
ステップ505において、アプリケーションは、第3のRXピン69を備える別のシリアルポートを開き、ネットワーク化されたコンピュータシステム129からのデータをリッスンする。
【0156】
ネットワーク化されたコンピュータシステム129からデータが到着すると、ステップ507でEOFタグを読み取ることによってデータの種類が決定される。
【0157】
EOFタグが、受信されたデータが暗号化されていないファイルであることを示す場合、ステップ509において、ファイルを保存するためのファイル名をユーザに求めるメッセージが第1のモニタ127に表示される。
【0158】
ユーザがファイル名を入力すると、ステップ511において、ファイルは第1の記憶デバイス29に保存される。ファイル名がファイルと共に送信される場合、ユーザは代わりに、新しいファイル名を入力する必要なく単に「ファイルを保存する」を選択することができる。
【0159】
一方、ユーザが「中止」を選択した場合には、ステップ513において、動作が終了する。
【0160】
代わりに、EOFタグが、ファイルが暗号化されたファイルであることを示す場合、ステップ515において、第1のモニタ127上でユーザにメッセージが表示され、ユーザがファイルを復号したいか否かを尋ねる。
【0161】
ユーザが「はい」を選択した場合、ステップ517において、ユーザの秘密鍵を使用してファイルを復号し、送信者の署名は、従来の公開鍵暗号方式に従って、送信者の検証鍵を使用して検証される。以下、説明した実施形態に係るコンピューティング装置2における公開鍵暗号の扱いについてより詳細に説明する。後続のステップ(図示せず)は、復号されたデータを表示するか保存するかをユーザに問い合わせることを含むことができる。
【0162】
逆に、ステップ515でユーザが「いいえ」を選択した場合、ステップ519で動作は終了する。
【0163】
データ処理システム11からデータが到着すると、ステップ521でEOFタグを読み取ることによってファイルのタイプが決定される。
【0164】
代わりに、EOFタグが、ファイルが暗号化されたファイルであることを示す場合、ステップ523において、ファイルを復号するかどうかをユーザに尋ねるメッセージが第1のモニタ127にユーザに表示される。
【0165】
ユーザが「はい」を選択した場合、ステップ525において、ファイルが復号される。以下の
図7から明らかなように、記載された実施形態では、データ処理デバイス11からの暗号化ファイルは、暗号化がAESカウンタモードである場合、復号鍵、例えばAES鍵及び初期化ベクトル(IV)を伴う。AES鍵及びIVの使用については、以下でより詳細に説明する。例えば、転送されるデータの最後の64バイトは、それぞれが32バイトをとる場合、AES鍵及び初期化ベクトル(IV)のために確保され得る。したがって、CD1データ処理アプリケーションは、単にデータの最後の64バイトからAES鍵及びIVを取得し、それらを使用してデータを復号することができる。
【0166】
逆に、ユーザが「キャンセル」を選択すると、ステップ527で動作が終了する。
【0167】
データがネットワーク化されたコンピュータシステム129から受信されるか、又はデータ処理デバイス11から受信されるかにかかわらず、データが復号されると、ステップ529において、復号されたデータを第1のモニタ127に表示するか否かを尋ねるメッセージがユーザに表示される。
【0168】
ユーザが「はい」を選択した場合、ステップ531において、例えば新しいポップアップウィンドウにデータが表示される。
【0169】
ユーザが「いいえ」を選択した場合、ステップ533において、復号されたファイルを第1の記憶デバイス29に記憶するためのファイル名を要求するメッセージが第1のモニタ127に表示される。
【0170】
ユーザがファイル名を入力すると、ステップ535において、復号されたファイルが第1の記憶デバイス29に記憶される。
【0171】
逆に、ユーザが「キャンセル」を選択した場合、ステップ537で動作が終了する。
【0172】
ユーザコンピュータシステム19の第1のコンピューティングデバイス125上で、記載された実施形態ではやはりCD1データ処理アプリの形態であるソフトウェアを実行することによって少なくとも部分的に実行されるファイル及び電子メールを送信することを含む動作の更なる例が、
図6のフローチャートに示されている。
【0173】
ステップ601において、ユーザは、第1のコンピューティングデバイス125上でCD1データ処理アプリを実行する。
【0174】
ステップ603において、アプリケーションは、第4のRXピン67を備えるシリアルポートを開き、データ処理システム11からのデータをリッスンする。
【0175】
ステップ605において、アプリケーションは、第3のRXピン69からなる別のシリアルポートを開き、ネットワーク化されたコンピュータシステム129からのデータをリッスンする。
【0176】
ステップ607において、ユーザが「電子メールを作成する」ボタンをクリックすると、新しい作成ウィンドウが開く。
【0177】
ステップ609において、ユーザは、アドレス、件名を入力し、電子メールを構成する。完了すると、ユーザは作成ウィンドウ上の「送信」ボタンをクリックする。
【0178】
ステップ611において、アプリケーションは、データコンテンツが電子メールであることを示すEOFタグを電子メールに付加し、ハードウェア暗号化器53を介して電子メールを第2のコンピューティングデバイス31に送信する。更に、プログラムは、第2のコンピューティングデバイス31に送信されたデータの先頭に、受取人の電子メールアドレス及び電子メールの件名を追加する。
図7に関連して以下に説明するように、説明される実施形態では、第2のコンピューティングデバイス31において、これらは、OTP暗号化電子メールがAES暗号化に変換される前に電子メールから読み取られる。第2のコンピューティングデバイス31内のプログラムが、第3の記憶デバイス35に記憶されている各アドレスの対応する公開鍵を取り出し、それらを使用してAES鍵を暗号化できるように、アドレス先が誰であるかを第2のコンピューティングデバイス内のプログラムが知るように、アドレス先の電子メールアドレスが復号される。
【0179】
逆に、ステップ609において使用が「キャンセル」を選択した場合、ステップ613において、動作は終了する。
【0180】
ユーザが第1のモニタ127に表示された「ファイルをCD2に保存する」ボタンを選択した場合、ステップ615において、ユーザは、第2のコンピューティングデバイス31に送信するファイルを選択するように求められる。
【0181】
ユーザが「Cancel」をクリックすると、ステップ619で動作が終了する。
【0182】
ステップ617において、ユーザが選択を行うと、プログラムは、各ファイルの先頭にセパレータが続くファイル名を付加し、各ファイルにEOFタグを付加し、ハードウェア暗号化モジュール53を介して第2のコンピューティングデバイス31にファイルを送信する。データ処理デバイス11に保存されたファイルのファイル名のレコードは、ユーザコンピュータシステム19に作成される。
【0183】
ユーザが第1のモニタ127に表示される「CD2からファイルを取得する」ボタンをクリックすると、ステップ621において、ユーザは、CD2に記憶されているファイルのファイル名を含むウィンドウが示される。これは、ステップ617で作成されたファイルの記録によって可能である。
【0184】
ユーザが「Cancel」をクリックすると、ステップ625で動作が終了する。
【0185】
ユーザが検索するファイルを選択した後、ステップ623において、プログラムは、これらのデータがユーザが検索したいファイルの名前であることを示すEOFタグを各ファイル名に付加し、ハードウェア暗号化モジュール53を介して第2のコンピューティングデバイス31にデータを送信する。
【0186】
図5及び
図6に係る動作を組み合わせることができ、例えば、ユーザは、ステップ507、515、517、529、531を実行することによって第3のコンピューティングデバイスから受信したデータを見ることができ、次いで、ステップ615、617の後続の実行を介して表示されたデータをデータ処理デバイス11に保存することができることを理解すべきである。前述のステップの幾つかは、自動化、簡略化、又は修正されてもよいことが想定される。
【0187】
前述した例以外の様々なタイプのデータがデータ処理デバイス11から受信されてもよく、CD1データ処理アプリはこれらのデータを異なる方法で処理してもよいことが理解され得る。
【0188】
したがって、要約すると、第1のコンピューティングデバイス125でCD1データ処理アプリを実行することによって、以下のデータ処理機能が実行される。
1.データ処理デバイス11からデータを受信する、
2.ハードウェア暗号化モジュール53を介してデータ処理デバイス11にデータを送信する、及び
3.ネットワーク化されたコンピュータシステム129からデータを受信する。
【0189】
データ処理デバイス11の動作
前述したように、データ処理デバイス11は、ユーザコンピュータシステム19から、それを通過する全てのデータを暗号化するハードウェア暗号化モジュール53を有する一方向データ転送リンク25を介してデータを受信する。データ処理デバイス11はまた、暗号化された電子メールなどのデータがネットワーク化されたコンピュータシステム129に送信されるが、ネットワーク化されたコンピュータシステム129から直接データを受信しないことを可能にする別の一方向転送リンク51を介してネットワーク化されたコンピュータシステム129に接続される。したがって、データ処理デバイス11は、インターネットに接続されたコンピューティングデバイス又はネットワーキングデバイスから生データを受信するための機構を有さない。
【0190】
記載された実施形態ではCD2データ処理アプリの形態であるソフトウェアをデータ処理デバイス11の第2のコンピューティングデバイス31上で実行することによって少なくとも部分的に実行されるデータ処理デバイス11におけるデータを処理するための動作は、
図7のフローチャートに示されている。
【0191】
ステップ701において、ユーザは、第2のコンピューティングデバイス31上でCD2データ処理アプリを実行する。
【0192】
ステップ703において、第2のコンピューティングデバイス31は、第1のRXピン59及び第2のRXピン61に対応する2つのシリアルポートを開き、FPGA81から来るOTP暗号化データ及び対応するOTP鍵をリッスンする。
図3から理解されるように、一方のシリアルポートはOTP暗号化データを受信するためのものであり、他方のシリアルポートはOTP鍵を受信するためのものである。
【0193】
OTP暗号化データ及び対応するOTP鍵が受信されると、ステップ705において、CD2データ処理アプリケーションは、EOFタグを復号するために、前述したように、OTP鍵の最後の2バイトで暗号化データの最後の2バイトに対してXORゲート演算を実行することによって取得されたEOFタグを読み取ることによってデータ型を決定する。
【0194】
EOFタグが、データが第3の記憶デバイス35に保存されるファイルであることを示す場合、ステップ707において、プログラムは、データと共に送信されたファイル名を読み取る。例えば、ファイル名は、前述したように、b’\x1F\x1A’などのセパレータを使用してファイルデータの先頭に追加することができる。第2のコンピューティングデバイス31は、セパレータが見つかるまで、受信データの最初の2バイトから開始して2バイトずつ、OTP暗号化データ及びOTP鍵に対してXORゲート演算を実行するだけでよい。次いで、第2のコンピューティングデバイス31は、ファイル名を読み取ることができる。
【0195】
ステップ709において、データを記憶する前に、前述したように、第2のコンピューティングデバイス31は、OTP暗号化をAES暗号化に変換することが好ましい場合がある。この処理を
図8に示す。
【0196】
OTP暗号化データを復号せずに変換するために、AESカウンタモードを用いてもよい。他の適切な暗号も同様に使用することができ、AESカウンタモードはここでは一例としてのみ説明されていることを理解すべきである。カウンタモードでは、ランダム初期化ベクトル(IV)が選択され、AESアルゴリズムは、各ファイルに対してランダムに生成されるか、又はユーザによって提供されるAES鍵を使用して、AESビットストリーム(AES-BS)801を生成するIVを暗号化する。このAESビットストリームは、OTP暗号化データ803にXORされてAES-OTP暗号化データ805を生成し、OTP鍵807に更にXORされてOTP-AES-OTP暗号化データを生成する。これにより、OTP暗号化が解除され、AES暗号化データ809が生成され、第3の記憶デバイス35に保存される。ここでは、プロパティA XOR B XOR A = Bが呼び出されることが理解され得る。AES暗号化は、OTP暗号化と比較して記憶空間を有利に節約することができる。
【0197】
保存されるファイルごとに新しいAES鍵及びランダムIVが生成されてもよいし、全てのファイルに対して1つの「マスタAES鍵」が存在してもよい。後者の場合、IVのみをファイルとともに記憶すればよい。別の手法は、ユーザによって提供された「パスワード」から導出されたAES鍵を有することである。この場合、AES鍵が記憶されていないため、CD2データ対応アプリがAES鍵を使用する必要があるときには、ユーザに「パスワード」の入力を求めてもよい。
【0198】
OTP暗号化からAES暗号化への変換はまた、暗号化ファイルをその復号鍵と共にデータ処理デバイス11からネットワーク化コンピュータシステム129又はユーザコンピュータシステム19に送信するときにデータ転送帯域幅を節約することができ、ここでファイルを復号することができる。これは、ファイルがOTPによって暗号化されている場合、ファイルのサイズと同じ大きさの復号鍵(すなわち、OTP鍵)もネットワーク化されたコンピュータシステム129又はユーザコンピュータシステム19に送信されなければならず、したがってかなりのデータ転送帯域幅を占有するからである。
【0199】
ここで
図7に戻ると、記載された実施形態では、セキュリティ機能として同じファイル名を有する既存のファイルがある場合、プログラムは、ステップ711において上書きするためにユーザの同意を要求することができる。このステップにおいて、CD2データ処理アプリは、ノンスがユーザコンピュータシステム19に送信され、第1のモニタ127上のメッセージボックスに表示されるようにする。
【0200】
ステップ713において、ユーザは、セレクタスイッチ18を切り替えて第2のコンピューティングデバイス31に入力を提供し、ノンスの値を第1の周辺入力デバイス17に入力する。ユーザから正しい入力を受け取ると、同じユーザ名を有する既存のファイルが上書きされる。
【0201】
逆に、ユーザがノンスのキー入力に失敗した場合、又はタイムアウトがある場合、ステップ715において、既存のファイルは上書きされない。この場合、受信したファイルは、より新しいバージョンとして第3の記憶デバイス35に保存されてもよい。これは、ファイルの上書きが常にユーザによって承認されることを保証するためである。
【0202】
代わりに、受信したデータがユーザが取り出したいファイルのファイル名であることをEOFタグが示す場合、ステップ717において、第2のコンピューティングデバイス31のプロセッサは、ファイル名を読み取り、第3の記憶デバイス35から対応するAES鍵及びIVと共にファイルを取り出し、EOFタグをデータに付加し、第1のTXピン31及び第4のTXピン65に対応するシリアルポートを開き、第2の一方向リンク27を介して第1のコンピューティングデバイス125にデータを送信する。受信したデータが複数のファイル名を含む場合、ファイルごとに同じことが行なわれる。AES鍵が記憶されておらず、ユーザパスワードから導出される場合、ユーザはセレクタスイッチ18を切り替えて第2のコンピューティングデバイス31に入力し、パスワードを入力し、プログラムはAES鍵を導出する。より高いセキュリティ保証のために、第2のコンピューティングデバイス31からファイルを送信するためにユーザの同意が得られることが好ましい。これは、ステップ711と同様の方法で実行することができる。
【0203】
更に、EOFタグが、データが送信される電子メールであることを示す場合、ステップ719において、プログラムは、第2のコンピューティングデバイス31に、電子メールアドレスを読み取らせて、アドレス先の名前を学習させる。各受取人の公開鍵はまた、例えば第3の記憶デバイス35に記憶されたデータベースから検索される。
【0204】
ステップ721において、第2のコンピューティングデバイスは、前述したように、AES鍵及びIVを使用してOTP暗号化をAES暗号化に変換する。以下、便宜的に、AES鍵及びIVをまとめて「セッション鍵」と呼ぶ。AES暗号化メール及びセッション鍵は、第3の記憶デバイス35に保存される。
【0205】
ステップ723において、各アドレスの公開鍵が、AES鍵及びIVを暗号化するために使用される。公開鍵自体が暗号化形式で記憶されている場合、それらの公開鍵は、セッション鍵と共に第1のコンピューティングデバイス125に送信され、
図4の作業ワークフロー例で前述したように復号されてセッション鍵を暗号化するために使用され、その後暗号化されたセッション鍵は第2のコンピューティングデバイス31に送り返される。なお、AES鍵のみが公開鍵で暗号化され、IVは暗号化されないままにするのも一般的な手法である。
【0206】
次いで、ステップ725において、プログラムは、第3のコンピューティングデバイス21に接続された、すなわち第2のTXピン63及び第5のRXピン71に対応するシリアルポートを開き、EOFタグをデータに付加し、暗号化電子メールを公開鍵暗号化セッション鍵と共にシリアルUSB変換器55を介して第3のコンピューティングデバイス21に送信する。より高いセキュリティ保証のために、第3のコンピューティングデバイス21にデータを送信するためにユーザの同意が得られることが好ましい。これは、前述したステップ711及び713と同様に実行することができる。
【0207】
要約すると、第2のコンピューティングデバイス32上でCD2データ処理アプリケーションを実行することによって、データ処理デバイス11は、以下のデータ処理サービスを実行するように構成される。
1.データ処理デバイス11に記憶するために、ハードウェア暗号化モジュール53を介してユーザコンピュータシステム19からデータを受信するか、又はネットワーク化されたコンピュータシステム21を介して出力する、
2.記憶されたデータをユーザコンピュータシステム19に送信する、及び
3.外部ネットワークに出力するために、ネットワーク化されたコンピュータシステム21にデータを送信する。
【0208】
したがって、データ処理デバイス11は、ユーザコンピュータシステム19のためのデータのセキュア出力及び記憶を処理する。
【0209】
任意選択で、前述のソフトウェアは、ユーザがコンピューティング装置2のセキュアモードを起動することによって実行されてもよい。コンピューティング装置2は、ユーザがセキュアモードと通常モードとの間で切り替えることを可能にするように構成されてもよく、その場合、前述のソフトウェアは実行されないことが想定される。
【0210】
前述したように、例えば、他のユーザから送受信される電子メールの公開鍵暗号化は、
図4~
図7に示すように取り扱われてもよい。RSA公開鍵暗号化の特定の例では、復号及びデジタル署名のためのユーザの秘密鍵を第2のコンピューティングデバイス31内で生成し、データ処理デバイス11に記憶することができる。秘密鍵は、第1のコンピューティングデバイス125において受信データ又はデータのデジタル署名を復号する必要があるときに、第1のコンピューティングデバイス125に送信することができる。暗号化及び署名検証のための対応する公開鍵は、第3のコンピューティングデバイス21に送信されてもよい。認証局によって署名された証明書は、暗号化された形式でデータ処理デバイス11に記憶され、必要に応じて第3のコンピューティングデバイス21に送信され、そこで復号されてもよい。
【0211】
受信者の公開鍵を含む証明書は、第1のコンピューティングデバイス125で受信されてもよく、暗号化形式で第3の記憶デバイス35に記憶されてもよい。証明書は、第1のコンピューティングデバイス125で検証されてもよい。
【0212】
受信者に送信するデータを暗号化する場合、2つのシナリオがある。
【0213】
第1のシナリオでは、暗号化されるべきデータがユーザによってデータ処理デバイス11に入力されている。この場合、セッション鍵、例えばAES鍵は、第2のコンピューティングデバイス31内で生成され、データ処理デバイス11内のデータを暗号化するために使用されてもよい。受信者の公開鍵が暗号化形式でデータ処理デバイス11に記憶されている場合、受信者の公開鍵及びセッション鍵は第1のコンピューティングデバイス125に送信され、暗号化形式の公開鍵は復号され、セッション鍵を暗号化するために使用され得る。暗号化されたセッション鍵は、データ処理デバイス11に送り返される。暗号化されたセッション鍵はハードウェア暗号化モジュールによって暗号化されるため、暗号化されたセッション鍵を第3のコンピューティングデバイス21に送信するとき、第3のコンピューティングデバイス21が暗号化されたセッション鍵を復号して取得するために、復号鍵も同様に送信されることが好ましい。ユーザはまた、データ処理デバイス11に記憶された署名鍵を使用してデータに署名することができる。
【0214】
第2のシナリオでは、受信者に送信されるべきデータは、ユーザによってユーザコンピュータシステム19に入力されている。この場合、データはデータ処理デバイス11に転送され、プロセスにおいて、データはハードウェア暗号化モジュールによって暗号化される。データ処理デバイス11において、ハードウェア暗号化モジュールによる暗号化は、例えば、
図8に示すような方法を用いて、データ処理デバイス11内で生成されたAES鍵によるAESカウンタモード暗号化に変換することができる。或いは、ハードウェア暗号化自体がAESカウンタモードなどの暗号化方法を使用してもよく、その場合、AES鍵はセッション鍵として直接使用されてもよい。次いで、セッション鍵は、第1のシナリオで説明したのと同じ方法を使用して、受信者の公開鍵によって暗号化され得る。ユーザはデータに署名することもできる。これを行うために、データ処理デバイス11は、データが署名されているユーザコンピュータシステム19に署名鍵を送信することができる。
【0215】
認証のために、ノンスの形態のチャレンジは、検証器、例えばサーバから、ネットワーク化されたコンピュータシステム129によって受信され得る。ネットワークコンピュータシステム129は、ノンスをユーザコンピュータシステム19に転送して、モニタ127に表示させる。ユーザは、モニタ127からノンスを読み出し、第1の周辺入力デバイス17を用いて、データ処理デバイス11にノンスの値とパスワードとを入力する。データ処理デバイス11は、ノンス及びパスワードに対して暗号化演算、例えばハッシュ関数を実行し、演算の結果をネットワーク化されたコンピュータシステム129に送信する。パスワードはマルウェアを含まない可能性があるデータ処理デバイス11内にあるため、スパイウェアはユーザのパスワードを盗むことができない可能性がある。幾つかの実装形態では、パスワードはデータ処理デバイス11に記憶され得るので、ユーザはパスワードを入力する必要がない場合がある。
【0216】
コンピューティング装置2は、スパイウェア及びランサムウェアを含む、データがマルウェアから保護されているコンピューティングサービスを提供することを理解すべきである。
【0217】
具体的には、通信リンク13は、データ処理デバイス11が、ユーザコンピュータシステム19のためのデータの記憶及び/又は出力を処理する形態で、マルウェア耐性データ処理サービスを提供できるようにする。これは、処理デバイス11がユーザコンピュータシステム19から生データを受信しないためであり、第1の一方向リンク25は、データ処理デバイス11に入る全てのデータがハードウェア暗号化モジュール53を介して暗号化されるように構成される。したがって、ユーザコンピュータシステム19からデータ処理デバイス11に入る任意のマルウェア(例えば、ランサムウェア)もハードウェア暗号化され、したがって、データ処理デバイス11上でのマルウェアの実行は不可能であり得る、すなわち、マルウェアは無効にされ得る。第2の一方向リンクはまた、マルウェアが他の方向に通過するのを防ぎながら、データ処理デバイス11(すなわち、記憶装置から)からユーザコンピュータシステム19にデータを出力することを可能にし得る。データ処理デバイス11によって処理されるユーザコンピュータシステム19からの出力は自動的に暗号化され、したがって、データ処理デバイス11を介したユーザコンピュータシステム19からの出力もまた、スパイウェアに耐性があり得る。実際、第1の一方向リンク25は、ユーザコンピュータシステム19からコンピューティング装置2に提供される唯一の出力であるため、記載された実施形態では、ユーザコンピュータシステム19は、ユーザのための専用コンピューティング空間として機能することができることが理解され得る。
【0218】
特に、通信リンク13は、マルウェアの署名又は挙動又はマルウェアの影響を受けたデータに特に適用される動作ではなく、全てのデータのハードウェア暗号化に基づくので、マルウェア自体の検出に頼ることなく、データ処理デバイス11によって提供されるサービスがマルウェア耐性を維持することを可能にすることができる。これにより、未知及び未検出のマルウェア、並びにオペレーティングシステム又はアプリケーションソフトウェアのゼロデイ脆弱性を利用するマルウェアに対する保護が可能になり得ることを理解すべきである。
【0219】
任意の他のコンピューティングデバイスからデータ処理デバイス31への入力の唯一の手段は、第1の一方向リンク25及びハードウェア暗号化モジュール53を介するものであるため、記載された実施形態では、データ処理デバイス11が別のソースからマルウェアを受信する機構もないことも理解され得る(すなわち、データ処理デバイス11とネットワーク化されたコンピュータシステム129との間の第4の一方向リンク15は、データ処理デバイス11からネットワーク化されたコンピュータシステム129にのみデータを渡すことを可能にする)。
【0220】
したがって、ユーザが気づかずに侵入したウェブサイトを訪問し、感染したソフトウェアをダウンロードして実行したり、マルウェアをコンピューティング装置2に導入するフィッシングメール添付ファイルを開いたりしても、データ処理デバイス11内のユーザのデータ、具体的には、第2のコンピューティングデバイス31に接続された任意の記憶デバイス内のユーザのデータは保護されたままであり得る。これは、マルウェアがデータ処理デバイス11内のユーザのデータにアクセスできない可能性があるためである。
【0221】
例えば、ランサムウェア攻撃の場合、ユーザコンピュータシステム19及びネットワーク化されたコンピュータシステム129は、ランサムウェアによってロックされる可能性があるが、データ処理デバイス11に記憶されたデータは保護されたままであり得る。したがって、ユーザコンピュータシステム19及びネットワーク化されたコンピュータシステム129が重要なデータを記憶しない場合、ユーザへの損傷は最小限であり得る。ユーザは、ユーザコンピュータシステム19及びネットワーク化されたコンピュータシステム129のハードドライブを単純に再フォーマットし、オペレーティングシステム及びアプリケーションソフトウェアを再インストールすることができる。必要に応じて、データ処理デバイス11内のファイルは、マルウェアに関する情報がアンチウイルスソフトウェアベンダー又はサイバーセキュリティ専門家から利用可能になったときに、復号されたファイルに対するマルウェア署名スキャン又はヒューリスティック解析のために、クリーンユーザコンピュータシステム19にコピーされてもよい。
【0222】
ユーザはまた、任意選択的に、ユーザコンピュータシステム19内の最新版のアンチウイルスソフトウェア又はマルウェア除去ツールを備えた仮想マシン(VM)又はサンドボックスを実行することもできる。次いで、ユーザは、全てのファイル及びそれらの対応する復号鍵を第3の記憶デバイス35からVMにコピーしてもよい。次いで、ユーザは、署名分析のためにVM内のファイルを復号することができる。VMにおいて静的又は動的なヒューリスティック解析を実行することも可能である。解析中にマルウェアがVMに感染した場合、ユーザは、単にVMを元の状態又は以前のスナップショットで再起動することができる。マルウェアが検出された後、ユーザは、第1の周辺入力デバイス17から適切なコマンドを発行することで、第3の記憶デバイス35内のマルウェアを安全に削除することができる。したがって、マルウェア攻撃からの回復は簡単であり得る。
【0223】
要約すると、記載された実施形態によって具体化される重要な原理には、以下が含まれるが、これらに限定されない。
【0224】
(1)機密データは、セキュア入力空間(データ処理デバイス11)においてのみユーザによって入力され、データは、非セキュア任意の空間(ネットワークコンピュータシステム129)に送信される前に暗号化される。
【0225】
(2)重要なデータは、マルウェアがアクセスできないセキュア記憶空間(データ処理デバイス11)に暗号化された形で記憶される。
【0226】
(3)個人データは、セキュア個人空間(ユーザコンピュータシステム19)で閲覧、編集、又は処理するために復号される。
【0227】
(4)ユーザのみが空間にわたってデータを転送することができる。
【0228】
したがって、コンピューティング装置2は、データ、特にユーザのプライベート、機密、及び重要なデータを、スパイウェア及びランサムウェアを含む未知及び未検出のマルウェアから保護するシステムアーキテクチャ及び実用的な方法を提供する。
【0229】
コンピュータシステム又はコンピューティングネットワークをインターネットに接続された「非セキュア領域」と、2つの領域間の物理的切断によってインターネットから分離された「セキュア領域」とに分離する既存の方法で通常使用されるエアギャップ方法とは対照的に、記載された実施形態では、ユーザは、ファイル転送の前又は後に任意のデバイス又はモジュールを物理的に接続又は切断する必要なく、「セキュア」領域と「非セキュア」領域との間で便利かつ安全にファイルを転送することができることに留意されたい。
【0230】
記載された実施形態は限定的に解釈されるべきではない。
【0231】
まず、上に列挙した重要な原理から逸脱することなく、
図1に示すアーキテクチャに対する多くの変形が想定されることを理解すべきである。例えば、2つのコンピュータシステム19、129の両方が同じモニタを共有してもよい。これは、ユーザが2つのコンピュータ画面間で表示を切り替えるためのセレクタ又はコントローラスイッチを使用して実現することができる。
【0232】
ユーザは、
図1のアーキテクチャのように、キーボード及びマウスを第1のコンピューティングデバイス125に直接接続することによって、又は代替的に、一方向リンク27を利用してデータ処理デバイス11から中継を介して入力を送信することによって、ユーザコンピュータシステム19内のデータを編集することができる。これらの場合、セレクタスイッチ18は省略されてもよい。
【0233】
第3の記憶デバイス35にはセキュアデータのみが記憶されてもよいことを前述したが、第1の記憶デバイス29は読み出し専用に構成されてもよい。そのような場合、保存される全てのデータが第3の記憶デバイス35に保存され、その場合、保存される全てのファイルがユーザコンピュータシステム19からデータ処理デバイス11に自動的に送信される。セキュリティのために、ユーザは、データ処理デバイス11内の既存のファイルを上書きすべきか、又は受信したファイルを新しいバージョンとして保存すべきかを決定する必要がある。
【0234】
データ処理デバイス11はモニタを含まないものとして
図1に示されているが、モニタが第2のコンピューティングデバイス31に接続されてもよく、メッセージは、キーボードなどの周辺入力デバイスを使用してデータ処理デバイス11に直接入力されてもよい。次いで、ユーザは、メッセージを暗号化し、暗号化されたメッセージをネットワーク化されたコンピュータシステム129に送信するように、データ処理デバイス11に命令することができる。
【0235】
図1のアーキテクチャの変形例の他の例は、以下の代替実施形態の説明から理解され得る。
【0236】
記載された実施形態に係るコンピューティング装置2の動作にも変形が想定される。例えば、AES鍵には、ファイルごとに生成され、ファイルと共に第3の記憶デバイス35に保存される個々の鍵と、ユーザのパスワードから導出される、ユーザの鍵とも呼ばれる別の鍵との、2つの鍵の組み合わせが採用されてもよい。2つの鍵のXORは、関連するファイルのAES暗号化に使用される結合鍵である。
【0237】
復号鍵をデータ処理デバイス11からユーザコンピュータシステム19に送信するとき、結合鍵のみを送信することができる。このようにして、ユーザコンピュータシステムはユーザの鍵を知らない。また、暗号化されたデータは個別の鍵のみでは復号できないため、個別の鍵のみを保存した方が安全な場合がある。したがって、2つの鍵のこの組み合わせは、追加のセキュリティを提供することができる。
【0238】
特定のハードウェア暗号化モジュール53が前述されたが、代替のハードウェア暗号化モジュールが使用されてもよいことが想定される。
図9a及び
図9bは、
図1のコンピューティング装置2での使用に適したハードウェア暗号化モジュールの2つの代替例、具体的には第1の代替ハードウェア暗号化モジュール153及び第2の代替ハードウェア暗号化モジュール253を示す。
【0239】
図9aに示すように、第1の代替ハードウェア暗号化モジュール153は、例えばFPGA181上のGPIOピンを用いて実装され得るRXピン175、第1のTXピン177及び第2のTXピン179を有するFPGA181を含む。第1の代替ハードウェア暗号化モジュール153は、例えばリングオシレータ、フリップフロップ又は他のプリミティブから生成されるジッタ又は準安定性、又は全デジタル位相ロックループ(ADPLL)などのアーキテクチャに基づくFIFOメモリ185及び内部RNG183を更に含む。したがって、FPGA181は、内部でランダムビットを生成し、それらをFIFOメモリ185に記憶することができる。
【0240】
図9bに示すように、第2の代替ハードウェア暗号化モジュール253はまた、例えばFPGA281上のGPIOピンを用いて実装され得るRXピン275、第1のTXピン277、及び第2のTXピン279を有するFPGA281を含む。第2の代替ハードウェア暗号化モジュール253は、FIFOメモリ285を更に含むが、RNGモジュールを含まず、代わりに、この代替形態では、第2のコンピューティングデバイス31は、FPGA281上のFIFOメモリ285に内部的に取得されるランダムビットを提供する。例えば、Unixのようなオペレーティングシステムでは、ランダムビットは/dev/urandomから取得され得る。
【0241】
ハードウェア暗号化モジュール53、153、253に加えて、ハードウェア復号モジュールも使用され得ることが想定される。ハードウェア復号モジュールについては、以下でより詳細に説明する。
【0242】
更に、幾つかの実施形態では、別個のハードウェア暗号化モジュール53、153、253が使用されなくてもよく、代わりに暗号化演算がデータ処理デバイス11自体の内部で実施されてもよいことが想定される。例えば、データ暗号化演算は、データ処理デバイス11内の専用プロセッサコアで動作するソフトウェア、又はデータ処理デバイス11内のXilinx(商標)製のZynqTM-7000ファミリなどのシステムオンチップFPGAに実装された論理ゲートで実施されてもよい。したがって、データ暗号化演算の異なる変形が実際に実施されてもよく、データ処理デバイス11の外部に物理的に配置された別個のハードウェア暗号化デバイス又はモジュールを使用してハードウェア暗号化演算を実行させることは厳密な要件ではないことを理解すべきである。(データ処理デバイス内のデータを処理するプロセッサとは異なる)専用プロセッサコアにおけるソフトウェア暗号化は、スタンドアロンハードウェア暗号化モジュールを置き換える1つの可能な方法であることが理解される。データ処理アプリケーションも実行するシステムオンチップFPGA内の論理ゲートで暗号化を実施することも可能である。この場合、ハードウェア暗号化を行うFPGAとデータ処理デバイスのプロセッサとが同一のICチップ上にあってもよい。これらは、データ処理デバイスの外部の「別個の」ハードウェア暗号化モジュールの必要性に挑戦する可能性がある変形である。重要な考慮事項は、データ処理デバイス内のデータを処理するプロセッサによって受信される前に、全ての着信データに対して暗号化を実行することであり、鍵は、データを送信するユーザコンピュータシステムに利用可能にされない。物理的にデータ処理デバイスの外部にあるハードウェア暗号化モジュールを使用することは要件であるべきではない。
【0243】
CD3データ処理アプリは、スタンドアロンアプリケーションであるとして前述されているが、代わりに、ユーザが暗号化された電子メールをクリップボードにコピーして貼り付ける必要性を取り除くために、電子メールクライアントアプリケーションに直接埋め込まれてもよいことが想定される。
【0244】
UART通信プロトコルは、一方向リンクを実装するために前述されているが、UDP(ユーザデータグラムプロトコル)又は一方向データ転送を実装する任意の独自プロトコルなどの通信プロトコルも適切であり得ることが想定される。
【0245】
暗号化されたデータ及び暗号鍵を別々に送信するためのハードウェア暗号化モジュールと第2のコンピューティングデバイスとの間の別々のリンクが前述されているが、単一のTX-RX接続のみが使用されてもよく、暗号化されたデータ及び鍵が第2のコンピューティングデバイスに順次送信されることが想定される。
【0246】
4Mbpsのレートでランダムビットを提供することができるQRNGが前述されているが、ランダムネス拡張アルゴリズム、例えば、高速で擬似ランダムビットを生成するためにFPGAに実装された線形フィードバックシフトレジスタ(LFSR)又はAESカウンタモードベースの決定性ランダムビット生成器(CTR-DRBG)をシードするために、より低速の真のランダムネス源からのランダムビットも同様に使用され得ることが想定される。この場合、シードは、出力ランダムビットシーケンス内の反復パターンを回避するために定期的に更新されるべきである。
【0247】
ハードウェア暗号化モジュールについてOTP暗号化が前述されているが、代替として、DES、AESなどの他のデータ暗号化方法も同様に使用され得ることが想定される。データ暗号化以外に、データ変換方法、例えばルックアップテーブル(LUT)に基づくバイト置換などは、第1のコンピューティングデバイスが変換を算出する手段を持たない限り、リアルタイムRNGを使用せずに実施形態のハードウェア暗号化モジュールで採用され得る。これは、ハードウェア暗号化モジュールのFPGAから第1のコンピューティングデバイスに戻されるデータ漏洩を防止するためのデータダイオードの使用、及びデータが第1のコンピューティングデバイスに戻される前にデータ変換を逆転させるためのハードウェア復号デバイスの使用によって達成され得る。
【0248】
前述のようなコンピューティング装置2の動作は、ユーザが第1の周辺入力デバイス17及び第2の周辺入力デバイス43の両方にアクセスし、第1のモニタ127及び第2のモニタ39を同時に見ることができること、すなわち、ユーザコンピュータシステム19、ネットワーク化されたコンピュータシステム129、及びデータ処理デバイス11が同じ場所に配置されることを想定していることを理解すべきである。しかしながら、ユーザは、代わりに、ネットワーク化されたコンピュータシステム129から離れている間に、ユーザコンピュータシステム19及びデータ処理デバイス11と同じ場所に配置されてもよいことが想定される。この変形例では、リモートネットワークコンピュータシステム129からのコンピュータ画面データは、一方向リンク23を介してユーザコンピュータシステムのモニタ127に送信されてもよい。ユーザ入力データ、例えばキーボード及びマウスデータは、一方向リンク15を介してデータ処理デバイス11からリモートネットワークコンピュータシステム129に送信することができる。コンピュータ画面データ及びユーザ入力データは、以下に説明するものと同様の方法を使用して専用接続を介して送信され得ることも想定される。
【0249】
更に、ユーザは、ネットワーク化されたコンピュータシステム129と同じ場所に位置しながら、ユーザコンピュータシステム19及びデータ処理デバイス11から離れていてもよいことが想定される。
【0250】
図10は、ユーザがユーザコンピュータシステム1019及びデータ処理デバイス1011から離れていることを可能にする第2の実施形態のコンピューティング装置1001を示す。第2の実施形態は第1の実施形態と同様であり、同様の特徴は1000を追加して同じ参照番号を使用する。具体的には、第2の実施形態のコンピューティング装置1001は、ユーザコンピュータシステム1019及びネットワーク化されたコンピュータシステム1129と、データ処理デバイス1011と、ユーザコンピュータシステム1019からデータ処理デバイス1011にデータを転送するためのハードウェア暗号化モジュール(HEM)1053を含む第1の一方向リンク1025及びデータ処理デバイス1011からユーザコンピュータシステム1019にデータを転送するための第2の一方向リンク1027を含む通信リンク1013と、ネットワーク化されたコンピュータシステム1129からユーザコンピュータシステム1019にデータを転送するための第3の一方向リンク1023と、データ処理デバイス1011からネットワーク化されたコンピュータシステム1129にデータを転送するための第4の一方向リンク1015とを含む。データダイオード1045、1047、1049、及び1051は、それぞれリンク1025、1027、1023、及び1015の厳密な一方向性を強制するために含まれる。ユーザコンピュータシステム1019は、第1のコンピューティングデバイス1125及び第1の記憶デバイス1029を含む。データ処理デバイス1011は、第2のコンピューティングデバイス1031と、第2の記憶デバイス1033と、第3の記憶デバイス1035と、リムーバブル記憶デバイス1037とを含む。ネットワークコンピュータシステム1129は、第3のコンピューティングデバイス1021と、第4の記憶デバイス1041と、モニタ1039(第1の実施形態のコンピューティング装置2の第2のモニタ39に相当)とを含む。これらの特徴は、第1の実施形態のコンピューティング装置2の対応する特徴と全く同じであり、したがって、簡潔にするために、再度説明しない。
【0251】
しかし、第2の実施形態では、第1の実施形態のコンピューティング装置2とは異なり、第1のモニタ127、第1の周辺入力デバイス17、第2の周辺入力デバイス43、及びセレクタスイッチ18と同等ではない。代わりに、第1のコンピューティングデバイス1125は、比較的短い距離のHDMI(登録商標)ケーブル、又は関与する距離が数メートルよりも長い場合にはHDMI(登録商標)オーバーイーサネット又はHDMI(登録商標)オーバーIPエクステンダを使用するなど、プライベート接続を介してモニタ1039にその画面データを送信する。セレクタ又はコントローラスイッチ(図示せず)を使用して、モニタ1039に表示される異なるコンピュータ画面を切り替えることができる。更に、コンピューティング装置1001は、ネットワーク化されたコンピューティングシステム1129、具体的には第3のコンピューティングデバイス1021に接続された新しい周辺入力デバイス(PID)1063を含み、データ処理デバイス1011、具体的には第2のコンピューティングデバイス1031に接続され、新しいPID1063に通信可能に接続された中継デバイス1061と、を含む。
【0252】
図11は、新しいPID1063及び中継デバイス1061をより詳細に示している。
【0253】
新しいPID1063は、ユーザにとってローカルであると想定されるネットワークコンピュータデバイス1021に接続されるサブPID1065を含む。サブPIDには、ユーザ入力が入力され、サブPID1065は、例えば、キーボード、マウス、又は他の何らかの周辺入力デバイスである。新しいPID1063はまた、ユーザが特に中継デバイス1061を介してデータ処理デバイス1011に直接入力を送信することを可能にするためのプロセッサ1067及びネットワークインタフェースカード(NIC)1069を含む。新しいPID1063内のセレクタスイッチ(図示せず)を使用して、ユーザが中継デバイス1061を介してネットワークコンピューティングデバイス1021又はデータ処理デバイス1011のいずれかに入力を指示することを可能にすることができる。
【0254】
また、中継デバイス1061自身も、専用のプライベート接続1077を介してNIC1069からデータを受信するためのNIC1071を備える。専用プライベート接続1077は、例えば、UDPで実現されてもよい。この場合、2つの通信ネットワークインタフェースは静的IPアドレスを使用することができる。関与する距離が、典型的には約10メートルであるブルートゥース(登録商標)の範囲内にある場合、ブルートゥース(登録商標)などの直接無線通信によって実施することも可能である。
【0255】
中継デバイス1061は、プロセッサ1073と、受信したユーザ入力をUSBポートを介してデータ処理デバイス1011に中継するUSBヒューマン・インタフェース・デバイス(HID)1075とを更に含む。或いは、USBHID1075は、UART接続に置き換えられてもよい。例えば、専用プライベート接続1077がBluetoothで実施されている場合、中継デバイス1061は、Bluetooth-UART変換器を含むことができる。
【0256】
ユーザコンピュータシステム1019に対するユーザ入力は、第2の一方向リンク1027によって更に中継される。新しいPID1063内のセレクタスイッチ(図示せず)は、ユーザがユーザコンピュータシステム1019又はデータ処理デバイス1011又はネットワーク化されたコンピュータシステム1021に向けられた入力を区別することを可能にするように構成することができる。
【0257】
したがって、新しいPID1063及び中継デバイス1061は、ユーザがユーザコンピュータシステム1019及びデータ処理デバイス1011に入力を送信することができるプライベート接続を共に提供する。したがって、第2の実施形態のコンピューティング装置1001は、ユーザがユーザコンピュータシステム1019及びデータ処理デバイス1011から離れていることを可能にする一方で、両方のセキュリティを保持することができる。
【0258】
任意選択で、セキュリティを追加するために、新しいPID1063のプロセッサ1067、1073及び中継デバイス1061は、ユーザ入力の暗号化及び復号動作を実行することができる。
【0259】
図12は、ユーザがユーザコンピュータシステム2019及びデータ処理デバイス2011から離れていることも可能にする第3の実施形態のコンピューティング装置2001を示す。第3の実施形態は第2の実施形態と同様であり、同様の特徴は1000を追加して同じ参照番号を使用する。具体的には、第3の実施形態のコンピューティング装置2001は、ユーザコンピュータシステム2019及びネットワーク化されたコンピュータシステム2129と、データ処理デバイス2011と、ユーザコンピュータシステム2019からデータ処理デバイス2011にデータを転送するためのハードウェア暗号化モジュール(HEM)2053を含む第1の一方向リンク2025及びデータ処理デバイス2011からユーザコンピュータシステム2019にデータを転送するための第2の一方向リンク2027を含む通信リンク2013と、ネットワーク化されたコンピュータシステム2129からユーザコンピュータシステム2019にデータを転送するための第3の一方向リンク2023と、データ処理デバイス2011からネットワーク化されたコンピュータシステム2129にデータを転送するための第4の一方向リンク2015とを含む。第3の実施形態のコンピューティング装置2001は、新たなPID2063及び中継デバイス2061を更に含む。ユーザコンピュータシステム2019は、第1のコンピューティングデバイス2125及び第1の記憶デバイス2029を含む。データ処理デバイス2011は、第2のコンピューティングデバイス2031と、第2の記憶デバイス2033と、第3の記憶デバイス2035とを有する。ネットワークコンピュータシステム2129は、第3のコンピューティングデバイス2021と、第4の記憶デバイス2041と、モニタ2039とを含む。これらの特徴は、第2の実施形態のコンピューティング装置1001の対応する特徴と全く同じであり、したがって、簡潔にするために、再度説明しない。
【0260】
しかしながら、第2の実施形態とは異なり、第3の実施形態のコンピューティング装置2001では、3つのネットワークスイッチ、具体的には第1のネットワークスイッチ2067、第2のネットワークスイッチ2069及び第3のネットワークスイッチ2071がコンピューティング装置2001に追加的に含まれ、ユーザコンピュータシステム2019及びデータ処理デバイス2031へのネットワーク化されたコンピュータシステム2129(これらの追加のコンピュータシステムは、
図12には示されていない)に加えて、追加のネットワーク化されたコンピュータシステムへの接続を可能にする。
【0261】
より詳細には、第3の実施形態のコンピューティング装置2001は、第3の一方向リンク2023及び第4の一方向リンク2015がネットワーク化されたコンピュータシステム2129(及び任意の追加のネットワーク化されたコンピュータシステム)に接続されるネットワークインタフェース2065を更に含む。言い換えれば、第4の一方向リンク2015は、データ処理デバイス2011からネットワークインタフェース2065にデータを転送するように動作可能であり、第3の一方向リンク2023は、ネットワークインタフェース2065からユーザコンピュータシステム2125にデータを転送するように動作可能である。
【0262】
具体的には、ネットワークインタフェースは、第3のコンピューティングデバイス2129及び任意の追加のネットワーク化されたコンピュータシステムのそれぞれのコンピューティングデバイス自体がデータの転送のために双方向接続されている第1のネットワークスイッチ2067と双方向通信接続している。ネットワークインタフェース2065は、全ての受信データをユーザコンピュータシステム2019に転送すると同時に、データ処理デバイス2011から来るデータを送出するように構成される。
【0263】
第2のネットワークスイッチ2069は、第1のコンピューティングデバイス2125からデータを受信するように構成され、コンピュータ画面データをモニタ2039及び任意の追加のネットワーク化されたコンピュータシステムのそれぞれのモニタに送信するように構成される。モニタは、第2のネットワークスイッチ2069に接続するための適切なネットワークインタフェース(図示せず)を備えることができる。
【0264】
第3のネットワークスイッチ2071は、新しいPID2063及び任意の追加のネットワーク化されたコンピュータシステムの任意のそれぞれの周辺入力デバイスからユーザ入力を受信し、ユーザ入力を中継デバイス2061へ送信するように構成される。
【0265】
第3の実施形態のコンピューティング装置2001の例示的な動作では、第1のユーザは、第1のユーザ自身のコンピュータ画面上での電子メールの復号及び閲覧のために暗号化された電子メールをユーザコンピューティングデバイス2125に送信し、閲覧後、電子メールを第1のユーザのフォルダ内の第3の記憶デバイス2035に保存するようにデータ処理デバイス2011にコマンドを送信してもよい。異なるコンピュータシステム(図示せず)を使用する第2のユーザは、第3の記憶デバイス2035からファイルを取得するためのコマンドを並行して送信し、第2のユーザ自身のコンピューティングデバイスにファイルを送信させてもよい。各ユーザは、第3の記憶デバイス2035内の割り当てられた記憶空間を含むサービスにアクセスするためにユーザID及びパスワードを提供することによってデータ処理デバイス2011にログインしなければならない場合がある。
【0266】
図13aは、前述の実施形態と機能的に同様の第4の実施形態のコンピューティング装置100を示す。
【0267】
第4の実施形態のコンピューティング装置100は、例えば、デスクトップコンピュータ又はラップトップ、タブレット、スマートフォンなどのポータブルコンピューティングデバイスに組み込むことができる集積チップ(IC)又はシステムオンチップ(SoC)を有するプリント回路基板又は複数のプリント回路基板の形態とすることができるデータ保護モジュール(DPM)140を含む。DPM140は、第1のコンピューティングデバイス(プライベートコンピューティングユニットPCU106とも呼ばれる)、コントローラ104と、それ自体が処理ユニット326及びデータ記憶ユニット(DSU)130を含む第2のコンピューティングデバイス(入力処理ユニットIPU128とも呼ばれる)を含むデータ処理デバイスを含むコンピュータシステムと、本実施形態では具体的にインターネット144に接続されている第3のコンピューティングデバイス(非セキュアコンピューティングユニット(UCU)138とも呼ばれる)を含むネットワーク化されたコンピュータシステムと、を含む。コントローラ104は、コンピュータ画面データ、音声データなどを出力デバイス102に送信するように構成される。
【0268】
前述の実施形態のコンピューティング装置と同様に、DPM140はまた、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンク110と、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンク118とを含む通信リンクも含む。しかしながら、前述の実施形態とは異なり、第1の一方向リンク及び第2の一方向リンク114は、具体的には、データ処理デバイスのDSU130とユーザコンピュータシステムとの間に配置される。第1の一方向リンク110はハードウェア暗号化モジュール116も含む。しかしながら、前述の実施形態とは対照的に、第2の一方向リンク114は、ハードウェア復号モジュール118を更に含む。
【0269】
DPM140はまた、コンピュータ画面データ及び/又はオーディオデータをUCU138からコントローラ104に転送するための第3の一方向リンク108と、データをUCU138からPCU112に転送するための第4の一方向リンク112と、データをIPU128からUCU138に転送するための第5の一方向リンク136と、データをDSU130からUCU138に転送するための第6の一方向リンク122と、コンピュータ画面データをDSU130からコントローラ104に転送するための第7の一方向リンク124と、データをIPU128からDSU130に転送するための第8の一方向又は双方向リンク126と、データ、例えばユーザ入力をIPU128からPCU106に直接転送するための第9の一方向リンク120とを含む。PCU106からコントローラ104にコンピュータ画面データ及び/又はオーディオデータを転送するための第10の一方向リンク146。第8のリンク126が双方向である場合、DSU130からのデータはリンク126及び136を介してUCU138に到達し得るので、第6のリンク122は省略され得る。DPM140は、オプションの鍵ストア344(
図14参照)を更に含むことができる。
【0270】
コンピューティング装置100には、コントローラ104からコンピュータ画面データ及び/又はオーディオデータを受信するように構成されたモニタディスプレイ、ヘッドホン、スピーカなどのような1つ以上の出力デバイス102と、IPU128に入力を提供するように構成されたキーボード及びマウス又はマイクロフォンなどの周辺入力デバイス134とが更に含まれる。任意選択で、IPU128は、それ自体の出力デバイス(図示せず)を更に含んでもよい。そうでなければ、ユーザ入力は、PCU106及びコントローラ104を介して出力デバイス102に中継されてもよい。
【0271】
次に、一実施形態に係るコンピューティング装置100の使用方法を説明する。
【0272】
IPU128は、それが直接インターネット接続を有しないコンピューティングユニットであるという意味で、セキュア入力空間であることが理解され得る。ユーザによって入力された個人情報がインターネット接続142を介して受信者に送信することを意味する場合、個人情報は、インターネットへのゲートウェイとして機能するUCU138に転送される前に、IPU128内で最初に暗号化されてもよい。IPU128は、データがIPU128からUCU138に移動できるが反対方向には移動できないように、第5の一方向リンク136を介してUCU138に接続される。UCU138にマルウェアが存在する場合、当該マルウェアは、第5の一方向リンク136を介してIPU128に侵入することができない。
【0273】
UCU138は、インターネットに直接接続されたコンピューティングユニットである。したがって、ユーザは、ウェブをサーフィンし、ブログポストを閲覧し、オンラインゲームをプレイし、ソーシャルメディアに関与するなどのためにUCU138を使用することができる。しかしながら、ユーザが暗号化されていない形態で重要なデータの処理を伴わないコンピューティングアクティビティを実行するとき、本実施形態では、ユーザ入力は、第5の一方向リンク136を介してUCU138に直接転送される。UCU138は、ユーザが危険なサイトを訪問したり、フィッシングメールの添付ファイルを開いてマルウェアをUCU138にダウンロードさせたりする可能性があるため、非セキュアと見なされる。UCU138はまた、インターネット接続を悪用するサイバー攻撃の影響を受けやすい可能性がある。ファイアウォール又はアンチウイルスソフトウェアなどの従来の方法ではセキュリティが保証されない場合があることを理解すべきである。したがって、記載された実施形態に係る装置を使用する方法によれば、プライベートデータ又は機密データのキーイング、編集、又は閲覧を含むアクティビティは、UCU138上で実行されない。
【0274】
前述したように、1つ以上の出力デバイス102がPCU106に接続される。記載された実施形態に係る装置を使用する方法によれば、プライベートデータ及び機密データは、PCU106においてのみ復号される。インターネットから受信した暗号化されたデータは、復号のために一方向リンク112を介してUCU138からPCU106に転送される。PCU106は、直接インターネット接続を有していない。したがって、一方向リンク112を介してPCU106に侵入又はアクセスする可能性があるマルウェアは、そのコマンド及び制御(C&C)サーバに接続するための、又はPCU106からインターネット接続142を介してサイバー犯罪者にデータを秘密に送信するための直接経路を見つけることができない可能性がある。したがって、ユーザは、PCU106において重要なデータを安全に閲覧、編集、又は処理することができる。したがって、PCU106は、セキュアプライベート空間であり得る。
【0275】
ランサムウェアはPCU106を攻撃する可能性があるが、PCU106は重要なデータを記憶しないため、損傷は最小限であり得る。PCU106の別の役割は、第9の一方向リンク120を介してユーザ入力を受け取り、それらを適切な出力デバイス102に送信することである。例えば、ユーザがIPU128にコマンドを入力しているとき、ユーザは入力されているものをリアルタイムで見たい場合がある。記載された実施形態によれば、キーストローク、マウス移動、音声などのユーザ入力は、第9の一方向リンク120を介してPCU106に転送されてもよい。
【0276】
記載された実施形態によれば、重要なデータは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などの不揮発性メモリ、及びプロセッサを備えるセキュア記憶空間であるDSU130に記憶される。PCU106内の重要なデータを閲覧又は編集した後、データはDSU130に保存される。データは、第1の一方向リンク110を介してPCU106からDSU130に転送される。第1の実施形態に関連して前述したように、ハードウェア暗号化器116は、第1の一方向リンク110を通過する全てのデータを暗号化する。したがって、第1の一方向リンク110を介してDSU130に入るマルウェアは、暗号化によって無効にされ、無害にされる。暗号鍵がランダムかつ秘密であれば、攻撃者又はマルウェアが鍵を推測したり、攻撃を調整してハードウェア暗号化を回避したりする方法はない可能性がある。
図13aから分かるように、記載された実施形態では、DSU130は、第8の一方向リンク126のみを介してユーザ命令を受け取る。したがって、マルウェアがDSU130に対して悪意のある動作を実行する方法はない可能性がある。DSU130とIPU128の両方は潜在的にマルウェアを含まないため、第4の実施形態の変形例では、DSU130はセキュリティを損なうことなくIPU128にその全体を組み込むことができることを理解すべきである。この場合、DSU130は、第1の実施形態における第3の記憶デバイス35(
図1a)に相当する。
【0277】
ユーザは、DSU130からバックアップ用のクラウドストレージなどの外部の送信先に、又は電子メール添付ファイルとして受取人にファイルを送信したい場合がある。例えば、ユーザが適切なコマンド及びファイル名をコマンドプロンプトで入力するか、アプリケーションソフトウェアのウィンドウからファイルを選択するか、同等の動作を実行する必要があるクラウドストレージにファイルを送信する場合を考える。記載された実施形態では、情報は、IPU128から第8の一方向リンク126を介してDSU130に送信され、その結果、DSU130は、ストレージからどのファイルを取り出し、第6の一方向リンク122を介してUCU138に転送するかを知る。その単一方向性のために、UCU138に存在するマルウェアは、第6の単一方向リンク122を介してDSU130にアクセスすることができない可能性がある。DSU130から選択されたファイルは、この場合ファイルを復号する必要がないため、復号鍵なしで第6の一方向リンク122を介して送信される。ユーザのコマンドはまた、第5の一方向リンク136を介してUCU138にも送信され、それにより、UCU138は、DSU130からのファイルの到着を予期し、それらをこの例ではクラウドストレージである正しい送信先に転送することができる。送信先がファイルを復号する必要がある受信者である場合、復号鍵も送信される。機密性のために、復号鍵は、パブリックネットワークを介して送信する前にDSU130内で暗号化される。
【0278】
第4の実施形態では、キーボード及びマウスなどの周辺入力デバイス134に物理的にアクセスするユーザのみが、DSU130の内外にファイルを移動させることができる。例えば、ユーザがDSU130に記憶された特定のファイルを閲覧又は編集したい場合、ユーザは、コマンドプロンプトでファイル名を入力するか、又はリストからファイルを選択するか、又はIPU128で同等の動作を実行する。そして、IPU128は、第9の一方向リンク120及び第8の一方向リンク126をそれぞれ介してPCU106及びDSU130の両方にファイル名を送信する。そして、DSU130は、そのストレージからファイルを取得し、リンク114を介してPCU106に送信する。PCU106はまた、リンク120からユーザのコマンドを受信すると、ファイルを受信する準備をする。DSU130からのファイルは暗号化されているので、任意選択のハードウェア復号器118を使用して、ファイルが第2の一方向リンク114をトラバースするときにファイルを復号することができる。或いは、PCU106は、復号鍵も暗号化ファイルと共に第2の一方向リンク114を介してPCU106に送信される限り、復号を実行するプログラムを実行してもよい。記載された実施形態によれば、潜在的にマルウェアのない状態を保護するためにDSU130で復号されるファイルはない。
【0279】
コントローラ104はオプションであることを理解すべきである。第2の実施形態のコンピューティング装置1001と同様に、UCU138は、モニタディスプレイ、スピーカなどの同じ出力デバイス102をPCU106と共有してもよく、コントローラユニット104は、ユーザがこれらの出力デバイス102への入力を選択できるようにしてもよいことが想定される。第3の一方向リンク108は、このリンク108を介したPCU106からUCU138への重要なデータの漏洩を防止するための一方向であることが理解され得る。或いは、UCU138は、それ自体の出力デバイスのセットを有してもよく、コントローラ104は不要であると考えられる。DSU130からコントローラ104への第7の一方向リンク124も任意選択的である。存在する場合、第7の一方向リンク124は、コントローラ104を介してDSU130にアクセスするマルウェアを防止するための一方向であることが理解され得る。
【0280】
第1の実施形態(
図1a)に関連して前述したように、ユーザが物理的セレクタスイッチ(図示せず)を手動で反転させるか、又はDPMのシャーシ上に配置されたボタン(図示せず)を押すか、又はファンクションキーのうちの1つ、又はそれらのキーの組み合わせ、又は何らかの他の方法などのキーボード上の特定のキーを押すことによって、有効化及び無効化することができるように、DPM140のセキュアモードを提供することができる。セキュアモードが非アクティブ化されると、DPM140は通常モードにあると言われる。
【0281】
通常モードでは、IPU128、PCU106、及びDSU130における様々なデータセキュリティ関連動作が無効にされる。ユーザは、ウェブのサーフィン、オンラインゲームのプレイ、ソーシャルメディア上での投稿の閲覧、ブログの閲覧などの重要な情報の処理を伴わない様々な通常のコンピューティングアクティビティをUCU138上で実行することができる。IPU128へのユーザ入力は、単一方向リンク136を介してUCU138に単に転送される。或いは、ユーザは、UCU138に接続され、通常のコンピューティングアクティビティにそれらを使用する専用の周辺入力デバイスのセットを有することができる。
【0282】
ログインパスワードの送信、プライベート電子メールの作成、プライベート電子メールの閲覧、プライベート写真の閲覧、機密レポートの編集、音声メッセージの記録、テレビ会議など、重要な情報又はデータの入力、編集、閲覧、又は処理を含むアクティビティをユーザが実行したい場合、ユーザはセキュアモードを起動する。
【0283】
前述の実施形態のように、セキュアモードでは、PCU106、IPU128、及びUCU138は、それぞれのプロセッサ上でソフトウェアを実行することによってデータ処理方法を実行するように構成される。
図13bは、コンピューティング装置100のセキュアモードのユーザを介することを含む、コンピューティング装置100を使用して実行される第4の実施形態に係る全体的な方法を示す。
【0284】
記載された実施形態では、プライベート電子メールは、送信のためにUCU138に渡される前に暗号化される。受信した暗号化された電子メールは、PCU106においてのみ復号されて閲覧される。プライベート電子メールは、ファイル漏洩マルウェアから保護するためにDSU130に暗号化形式で保存される。詳細は後述する。
【0285】
ステップ200において、AliceはBobにプライベート電子メールを送信することを望む。
【0286】
ステップ202で、Aliceはセキュアモードに切り替え、IPU128でエディタプログラムを開く。
【0287】
ステップ204において、Aliceは、IPU128に接続されたキーボード及びマウス134を使用してプライベート電子メールを作成する。彼女のキーストロークは、IPU128からPCU106に第9の一方向リンク120を介してリアルタイムで送信され、モニタ画面102に表示され、Aliceはタイピング中に自分の入力を見ることができる。
【0288】
ステップ206において、Aliceは、電子メールの作成が完了すると、Bobの電子メールアドレスをキー入力するか、又は連絡先リストから選択する。電子メールの件名を入力し、編集者のウィンドウにある「電子メールを暗号化する」ボタンをクリックする。連絡先リストは、AliceがIPU128にキー入力したことのある以前の全ての電子メールアドレスを含む。
【0289】
ステップ208において、IPU128(すなわち、IPU128で実行されているデータ処理アプリケーション)は、電子メールのハッシュを計算し、Aliceの署名鍵を使用してハッシュに署名してデジタル署名を取得する。その後、電子メール、デジタル署名、Bobの電子メールアドレス、及び電子メールの件名をDSU130に転送する。DSU130は、そのコンタクトデータベース内に、AliceがBobと共有する対称鍵又はセッション鍵を有する。DSU130は、鍵を使用して電子メールを高度暗号化規格(AES)などの対称暗号で暗号化し、暗号化された電子メール、デジタル署名、Bobの電子メールアドレス、及び電子メールの件名を、第5の一方向リンク136を介してUCU138上のクリップボードに送信する。電子メールが複数のアドレスを有する場合、電子メールの暗号化は、対応する対称鍵を使用して各アドレスについて繰り返されなければならない。UCU138上のクリップボードに転送されるコンテンツは、どの暗号化された電子メールがどのアドレス宛てであるかを指定する。
【0290】
ステップ210で、Aliceは通常モードに戻り、UCU138内の電子メールクライアントを開く。電子メールクライアントは、暗号化された電子メール、デジタル署名、Bobの電子メールアドレス及び電子メールの件名をクリップボードから自動的に取得するように特に設計及び構成されてもよく、電子メールをBobに自動的に送信してもよい。複数の受取人の場合、電子メールクライアントは、対応する暗号化された電子メールを各受取人に送信することができる。前述したように電子メールクライアントによる自動操作がない場合、Aliceは、暗号化された電子メール及びデジタル署名を手動でコピーし、各受取人の電子メールクライアントの新しい作成ウィンドウに貼り付けることができる。受取人ごとに正しい暗号化電子メールを選択しなければならない。
【0291】
ステップ212において、Aliceの電子メールがインターネットを介してBobに送信される。
【0292】
ステップ214において、UCU138内の電子メールクライアントは、暗号化された電子メールを受信する。
【0293】
ステップ216において、UCU138上の電子メールクライアントは、暗号化された電子メールが届いたことをAliceに通知する。Aliceは、電子メールの送信者の身元及び件名をチェックし、電子メールを開くかどうかを決定する。
【0294】
ステップ218において、送信者がBobであることを見て、Aliceは電子メールを開くことを決定する。そして、セキュアモードに切り替え、PCU106内のビューアプログラムを開く。
【0295】
ステップ220において、Aliceは、UCU138上の電子メールクライアントのウィンドウ上に位置する「電子メールを復号する」ボタンをクリックする。IPU128は、一方向リンク112を介して暗号化された電子メールをPCU106に転送するようにUCU138に指示する。ウェブメールサービス又は互換性のない電子メールクライアントが使用される幾つかの実施形態では、Aliceは、暗号化された電子メールをUCU138内のクリップボードに手動でコピーし、次いで、クリップボードの内容をPCU106に転送するようにUCU138に命令することができる。
【0296】
ステップ222において、Aliceは、自分の連絡先リストから送信者Bobの名前を選択し、IPU128は、Bobの対称鍵をPCU106に送信するようにDSU130に命令する。このステップは、対称鍵がDSU130に記憶され、DSU130がユーザからのみ入力を受け取るために必要である。Aliceが送信者の対称鍵を持っていない場合、Aliceは電子メールを復号することができない。この場合、Aliceは、対称鍵を取得するために送信者に要求を送信する必要がある。
【0297】
ステップ224において、PCU106は、DSU130から受信したBobの対称鍵を使用して電子メールを復号し、Aliceが見るために復号された電子メールをモニタ画面102に表示する。
【0298】
ステップ226において、電子メールを読んだ後、Aliceは、ビューアプログラムのウィンドウ上の「電子メールを保存する」ボタンをクリックする。IPU128上で実行されているデータ処理アプリは、PCU106とDSU130の両方に通知し、PCU106は、第1の一方向リンク110を介してDSU130に電子メールを送信する。第1の一方向リンク110を介した伝送中、電子メールはハードウェア暗号化モジュール116で暗号化される。
【0299】
ステップ228において、電子メールは、記憶された電子メールを復号するために使用され得る鍵と共に、暗号化された形態でDSU130に記憶される。
【0300】
PCU106で復号されたときに悪意のある電子メールがPCU106でランサムウェア攻撃を開始する可能性があるため、最適なセキュリティのために、プライベート電子メールを含む重要なデータはPCU106に記憶されないことを理解すべきである。AliceがPCU106に重要なデータを記憶していない場合、そのような攻撃の損傷は最小限である。
【0301】
任意選択で、PCU106は、全ての変更を破棄し、電源が投入されるたびに元のクリーン状態にリセットすることができるように、仮想マシン(VM)を実行することができる。ユーザは、VMの電源を切る前に、全ての重要なデータがDSU130に保存されていることを保証することができる。
【0302】
記載された実施形態では、セキュアモードと通常モードとの間の切り替えがあるが、2つの動作モードへのこの分離は必要ではないことを理解すべきである。例えば、ユーザは、高度に安全なデータ動作のためにIPU128に接続された周辺入力デバイスの一方のセットを使用し、通常のコンピューティングアクティビティのためにUCU138に接続された周辺入力デバイスの他方のセットを使用することができることが想定される。この場合、2つのモードを切り替える必要はなく、ユーザによっては好ましい場合がある。
【0303】
図14は、第4の実施形態に係るハードウェア暗号化モジュール116及びハードウェア復号モジュール118が実装される単一のハードウェアプラットフォーム300を示す。なお、
図14では、簡単のため、DSU130がIPU128に組み込まれているものとして示されている。
【0304】
図14に示すように、
図13aに示すハードウェア暗号化モジュール116を含む第1の一方向リンク110は、DSU130と単一のハードウェアプラットフォーム300との間の第1の一方向サブリンク310、単一のハードウェアプラットフォーム300自体、及び単一のハードウェアプラットフォーム300とPCU106との間の第2の一方向サブリンク304を含む。ハードウェア復号モジュール118を含む第2の一方向リンク114は、PCU106と単一のハードウェアプラットフォーム300との間の第3の一方向サブリンク314、単一のハードウェアプラットフォーム300自体、及び単一のハードウェアプラットフォーム300とDSU130との間の第4の一方向サブリンク330を含む。
【0305】
単一のハードウェアプラットフォーム300は、例えば、FPGA、特定用途向け集積回路(ASIC)チップ、又はプリント回路基板上に実装された集積チップ(IC)の組み合わせを含むモジュール308を含む。単一のハードウェアプラットフォーム300は、モジュール308に乱数を提供するように構成されたRNG334を更に含む。
【0306】
RNG334は、限定はしないが、ショットノイズ、熱ノイズ、アバランシェ降伏ノイズなどの物理ノイズ源に基づくことができる。RNG334はまた、リング発振器、結合レーザなどのカオス的プロセスに基づいてもよい。暗号ハッシュ、ランダムネス抽出器などの処理方法を適用して、ビット当たりのエントロピーを増加させることができる。
【0307】
モジュール308自体は、少なくとも1つのXOR論理ゲート306と、FIFOメモリ318と、ハードウェア実装AESエンジン322と、処理ユニット326とを含む。
【0308】
前述したハードウェア暗号化モジュール53、153、253とは対照的に、ここでの暗号化は、復号と同様に、高度暗号化規格(AES)カウンタモード暗号に基づく。
【0309】
PCU106から来るデータを暗号化するために、暗号鍵及び初期化ベクトル(Ivs)は、RNG334によって提供される。RNG334からの生のランダムビットは、必要に応じて、ビット当たりのエントロピーを増加させるために処理ユニット326によって処理されてもよい。暗号鍵及びIVを使用して、ハードウェア実装AESエンジン322は、AES-BSによって示されるAESビットストリームを生成する。AESビットストリームは、データを暗号化するために使用される前にFIFOメモリ318に記憶され得る。暗号化演算は、データ及びAES-BSに対して、XOR論理ゲート306によってビットXORが実行され、(データ XOR AES-BS)で示される暗号化されたデータを出力する。次いで、暗号化されたデータは、記憶のためにDSU130に送信される。暗号鍵及びIVの両方は、リンク332を介してIPU128に送信され、IPU128に接続されたパスワード保護サムドライブなどの鍵ストア344に記憶される。他の実施形態では、暗号鍵及びIVは、暗号化されたデータと共にDSU336に記憶されてもよい。
【0310】
ハードウェア復号の場合、IPU128は、復号鍵(暗号鍵と同じ)及びIVを鍵ストア344から取得し、それらをAESエンジン322に入力してAESビットストリームAES-BSを生成する。次いで、AESビットストリームは、ビット単位のXOR論理ゲート306において、リンク310を介して受信された暗号化されたデータを復号するために使用される前にFIFOメモリ318に送信される。そして、復号されたデータは、リンク304を介してPCU106に転送される。
【0311】
或いは、復号鍵及びIVがDSU130に記憶されている場合、IPU106は、リンク310及び304を介してそれらをPCU106に送信し、PCU106でデータを復号させるようにDSU130に命令することができる。復号鍵及びIVが鍵ストア344に記憶されている場合、それらを一方向リンク120を介してPCU106に送信することも可能である。
【0312】
XORゲート306は、単一の物理論理ゲートとして前述されているが、ハードウェア暗号化器116及びハードウェア復号器118の両方が、ハードウェアプラットフォーム300上で独立したXORゲートを使用することが想定される。ハードウェアプラットフォーム300上に複数のXORゲート306が存在してもよい。
【0313】
ハードウェア暗号化器116及びハードウェア復号器118は、単一のハードウェアプラットフォーム300を介して実装されるものとして前述されているが、ハードウェア暗号化器116及びハードウェア復号器118は、それぞれが独自のAESエンジン、FIFOメモリ及び論理ゲートを有するように、2つの別個のハードウェアプラットフォーム上に実装され得ることが想定される。或いは、前述の実施形態のように、セキュリティを損なうことなくPCU106内のソフトウェアで復号を実施することができるため、ハードウェア復号器118を省略することができる。
【0314】
更に、データ転送の一方向性を厳密に実施するために、各一方向リンク、具体的には、暗号化されたデータ又は暗号鍵がPCU106に漏れるのを防ぐためのリンク314、復号されたデータがDSU130に漏れるのを防ぐためのリンク310、及びリンク120にデータダイオードを配置できることを理解すべきである。
【0315】
図15は、第5の実施形態のコンピューティング装置を示す。第5の実施形態のコンピューティング装置は、
図13及び
図14に示す第4の実施形態のものと同一である。第5の実施形態のコンピューティング装置は、DSU3036と、ソフトウェア実装AESエンジン3048と、処理ユニット3040とを備えるIPU3012と、FPGA3088、少なくとも1つのXOR論理ゲート3006、及びFIFOメモリ3018を含む単一のハードウェアプラットフォーム3000と、乱数を処理ユニット3040に提供するように構成されたRNG3056と、任意選択の鍵ストア3044とを含む。RNG3056は外部デバイスであってもよく、或いはランダムビットはUnixのようなOSの/dev/urandomから取得されてもよい。なお、
図15では、関連する特徴のみを示している。
【0316】
図15のハードウェア暗号化/復号デバイスも、前述したのと同じAESカウンタモード暗号に基づいているが、AESエンジンはIPU3012内のソフトウェアに実装されている。この第5の実施形態では、ユーザがキーボードなどのユーザ入力インタフェース3052を介してパスワードを提供することが更に想定される。
【0317】
PCU106からIPU3012に移動するデータのハードウェア暗号化のために、ユーザは、暗号鍵を生成するためにRNG3056から取得されたソルトでハッシュされたパスワードを入力する。次いで、暗号鍵は、同じくRNG3056から得られたIVを用いてソフトウェアAESエンジン3048に供給され、AES-BSによって示されるAESビットストリームを生成する。AESビットストリームは、(データ XOR AES-BS)を取得するためにビットXOR論理ゲート3006においてデータを暗号化するために使用される前にFIFOメモリ3018に記憶され得る。ソルト及びIVは、パスワードで保護されたUSBメモリなどの鍵ストア3044に安全に記憶することができる。他の実施形態では、ソルト及びIVは、DSU3036に保存されてもよい。この場合、鍵ストア3044は不要である。
【0318】
ハードウェア復号のために、IPU3012は、最初に、対応するソルト及びIVを鍵ストア3044から検索する。ユーザは、復号鍵を得るためにソルトでハッシュされたパスワードを提供し、復号鍵は、AESビットストリームAES-BSを生成するためにIVと共にソフトウェアAESエンジン3048に供給される。AESビットストリームは、DSU3036から到来するデータAES-BSを復号するために使用される前に、FIFOメモリ3018に記憶され得る。そして、復号したデータをPCU106に転送する。ソルト及びIVがDSU3036に記憶されている場合、IPU3012は、ユーザ提供のパスワードをDSU3036に送信し、そこでソルトでハッシュされて復号鍵を取得する。次に、復号鍵及びIVは、データを復号するためにPCU106に送信される。
【0319】
なお、
図14、
図15に関連して説明した第3の、第4の実施形態では、ビットXORによる暗号化と復号にAESカウンタモード暗号を採用した。これは、他のモードと比較して、高いスループットで実装される可能性があるという利点を有する。異なる実施形態によれば、他の暗号方式が使用されてもよいことが想定される。
【0320】
図16は、(
図1aの第1の実施形態と同様に)データのハードウェア暗号化にOTP法を用いる第6の実施形態のコンピューティング装置を示す。第6実施形態のコンピューティング装置は、
図13及び
図14に示す第4実施形態と同様である。第6の実施形態のコンピューティング装置は、単一のハードウェアプラットフォーム300の代わりに、XOR論理ゲート3106、FIFOメモリ3118、及びPRNG3126を含むハードウェア暗号化モジュール3100を含むとともに、IPU3112の処理ユニット3140とPRNG3126の両方に乱数を提供するように構成されたRNG3134とを含む。コンピューティング装置は、XORゲートをDSU3136に接続する2つの並列一方向リンク3130、3160と、DSU3136からPCU106にデータを転送するための非暗号化一方向リンク3158とを更に含む。オプションのキーストア3144もある。なお、
図16では、関連する特徴のみを示している。
【0321】
RNG3134からのランダムビットは、線形フィードバックシフトレジスタ(LFSR)などのハードウェア実装PRNG3126をシードして、擬似ランダムOTP鍵の連続ストリームを高速で生成するために使用される。記載された実施形態では、OTP鍵における反復パターンを回避するためにシードが定期的に更新される。このOTP鍵は、OTP暗号化データ(データ XOR OPT)を生成するためにビットXORゲート3106でデータを暗号化するために使用される前にFIFOメモリ3118に記憶される。次いで、OTP暗号化データ及びOTP鍵は、並列リンク3130及び3160を介して記憶のためにDSU3136に送信される。場合によっては、ハードウェアRNG3134は、十分に高速で真にランダムなビットを生成することができる。そのような場合、生ビットは、ランダム性拡張なしでOTP鍵として直接使用され得る。復号のために、DSU3136は、一方向リンク3158を介して(データ XOR OPT)及びOTP鍵の両方をPCU106に送信する。場合によっては、記憶前に、OTP暗号化は、
図8に関して前述したように、記憶スペースを節約するためにDSU3136内でAESカウンタモード暗号化に変換されてもよい。
【0322】
図17は、前述の実施形態と機能的に同様の第7の実施形態のコンピューティング装置700を示す。第7の実施形態のコンピューティング装置700は、それ自体が内部記憶デバイス716を含む第1のコンピューティングデバイス(プライベートコンピューティングユニット、PCUとも呼ばれる)706を含むユーザコンピュータシステムを含むデータ保護モジュール(DPM)740と、コントローラ704と、それ自体がデータ記憶ユニット(DSU)732を含む第2のコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)726を含むデータ処理デバイスとを含む。コントローラ704は、PCU706及び非セキュアコンピューティングデバイス(UCD)744から受信したコンピュータ画面データ及び/又はオーディオデータを出力デバイス702に転送するように構成される。UCD744は、インターネットにアクセス可能なコンピューティングデバイスである。これは、内部記憶デバイス742を含み、以下に概説するように、4つの通信リンク708、712、736、738を介してDPM740に接続される。
【0323】
前述の実施形態のコンピューティング装置と同様に、DPM740はまた、ユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンク718と、データ処理デバイスからユーザコンピュータシステムにデータを転送するための第2の一方向リンク722とを含む通信リンク754を含む。第1の一方向リンク718はハードウェア暗号化モジュール720を含み、第2の一方向リンク722はハードウェア復号モジュール724を含む。
【0324】
コンピューティング装置700はまた、UCD744からコントローラ704にコンピュータ画面データ及び/又はオーディオデータを転送するための第3の一方向リンク708と、UCD744からPCU706にデータを転送するための第4の一方向リンク712と、(DSU732を含む)IPU726からUCD744にデータを転送するための第5の一方向リンク736と、周辺入力デバイス734から受信したユーザ入力をUCD744に中継するための第6の一方向リンク738とを含む。UCD744、IPU726、及びPCU706の間には、上記の一方向リンク以外の他の通信リンクは設けられていない。
【0325】
コンピューティング装置700には、コントローラ704からコンピュータ画面データを受信及び表示するように構成されたモニタなどの少なくとも1つの出力デバイス702と、IPU726にユーザ入力を提供するように構成されたキーボード及びマウスなどの少なくとも1つの周辺入力デバイス734と、PCU706と双方向通信する、パスワード保護されたスマートカード又はハードウェアセキュリティモジュール(HSM)などの第1のセキュリティトークン710と、IPU726と双方向通信する第2のセキュリティトークン728と、PCU706と双方向通信する第1の外部記憶デバイス714と、IPU726と双方向通信する第2の外部記憶デバイス730とが更に含まれる。セキュリティトークン710、728及び外部記憶デバイス714、730は任意選択的であり、DPM740がそのデータ操作を実行するために必須ではないことを理解すべきである。
【0326】
動作中、DPM740は、セキュアシッククライアントとして採用することができる。
図17に示すように、DPM740は、ゲートウェイ、この場合は、インターネットアクセスを有し、インターネット748を介してリモートサーバ752に接続することができるネットワーク化されたコンピュータデバイス、UCD744に接続することができる。
【0327】
UCD744はインターネットに接続されているため、UCD744内の重要なデータを処理することは望ましくない場合がある。代わりに、ユーザは、PCU706にビジネスアプリケーションなどのソフトウェアをインストールし、それを使用して機密及び重要なデータをローカルで処理することができる。ユーザはまた、DSU732に機密データをローカルに保存することができる。UCD744は、インターネットへのゲートウェイとして機能する、コンピュータに限定されない任意の種類のデバイスとすることができることが理解され得る。
【0328】
第1の一方向リンク718及びハードウェア暗号化器720は、ユーザがPCU706からIPU726に埋め込まれたDSU732にファイルを安全に移動させ、そこにファイルを暗号化形式で保存することを可能にし得る。第2の一方向リンク722及びオプションのハードウェア復号器724は、ユーザが閲覧、編集、又は処理のためにDSU732からPCU706にファイルを送信することを可能にする。第2の一方向リンク722はまた、PCU706へのユーザ入力を中継してもよい。或いは、ユーザがPCU706に直接入力を提供するために、別個のセットの周辺入力デバイス(図示せず)をPCU706に接続することができる。
【0329】
外部データ記憶デバイス714及び730は、重要なファイルのバックアップ又は転送用に構成されてもよい。しかしながら、IPU726及びDSU732にマルウェアを導入するとDPM740のセキュリティが損なわれるため、これらの外部記憶デバイスにマルウェアがないことを保証することが重要であることが理解され得る。
【0330】
任意選択で、パスワード保護されたスマートカード又はHSMなどのセキュリティトークン710及び728を使用して、ユーザの暗号鍵を記憶することができる。或いは、セキュリティトークン710及び728は省略されてもよく、ユーザの暗号鍵はIPU726又はDSU732に記憶され、必要に応じてPCU706に送信されてもよい。
【0331】
したがって、DPM740、特に通信リンク754の構成は、DPM740が、ユーザ自身のデバイス(BYOD)の作業環境をもたらすなどの環境においてデータ保護を提供することを可能にすることができる。
【0332】
コンピューティング装置700の使用方法の一例として、
図18は、PCU706にアプリケーションソフトウェアをインストールし、アプリケーションソフトウェアを使用してDSU732から取得したデータセットを処理し、処理結果をDSU732に保存し、処理結果をリモートサーバ752に送信する方法を示す。以下、各ステップの詳細について説明する。
【0333】
ステップ800において、ユーザは、ユーザのコンピューティングデバイスにまだインストールされていない新しいアプリケーションソフトウェアを使用してデータセットをローカルに処理することを望む。
【0334】
ステップ802において、ユーザは、所望のアプリケーションソフトウェアのインストーラをUCD744上にダウンロードする。
【0335】
ステップ804において、ソフトウェア、例えば上記の
図4に記載されたCD3データ処理アプリがUCD744内で実行されて、インストーラをPCU706に送信する。一実施形態では、UCD744は、前述したように、ソフトウェアを実行するためにユーザによってオンにされるセキュアモードで構成される。
【0336】
ステップ806において、ユーザは、PCU706にアプリケーションソフトウェアをインストールする。
【0337】
ステップ808において、ユーザは、新しいアプリケーションソフトウェアを開き、例えば前述のCD2データ処理アプリを介してIPU726に、DSU732からデータセットを取得し、それをPCU706にコピーするよう命令する。データセットは、DSU732に暗号化形式で記憶されるので、処理に使用することができる前に、ハードウェア復号器724又はPCU706のいずれかで最初に復号される。
【0338】
ステップ810において、ユーザは、新たにインストールされたアプリケーションソフトウェアでデータセットを処理する。処理が完了した後、ユーザは、例えば
図5に従って説明したようにCD1データ処理アプリを実行することによって、処理結果をDSU732に保存するようにPCU706に指示する。処理結果は、PCU706をDSU732に接続する一方向リンク718を介して、PCU706からDSU732に転送される。転送時には、ハードウェア暗号化器720により処理結果が暗号化されることで、処理結果になりすましてIPU726に侵入しようとするマルウェアが暗号により無害化される。暗号鍵は、暗号化された処理結果とともにDSU732に送られる。
【0339】
ステップ812において、処理結果はDSU732に安全に記憶される。
【0340】
ステップ814において、ユーザは、処理結果をリモートサーバ752に送信することを望む。
【0341】
ステップ816において、ユーザは、前述したように、例えばIPU726上のCD2データ処理アプリの実行を介して、ユーザの署名鍵を使用して暗号化処理結果のハッシュに署名するようにDSU732に指示する。処理結果を暗号化するために使用された鍵は、セッション鍵として使用され得る。或いは、IPU726は、新しいセッション鍵を生成し、古い鍵を新しいセッション鍵で置き換えるために上記の
図8に記載された方法を使用することができる。次いで、DSU732は、セッション鍵及びリモートサーバの公開鍵をPCU706に送信する。リモートサーバの公開鍵が暗号化形式でDSU732に記憶されている場合、リモートサーバの公開鍵を復号するのに必要な復号鍵もPCU706に送信される。ハードウェア復号器724又はPCU706のいずれかが復号を実行して、リモートサーバの公開鍵を取得する。
【0342】
ステップ818において、PCU706は、リモートサーバの公開鍵を使用してセッション鍵を暗号化する。その後、暗号化されたセッション鍵は、暗号化されたリンク718を介してIPU726に返送される。
【0343】
ステップ820において、IPU726は、暗号化された処理結果と共に、暗号化されたセッション鍵及び署名をUCD744に送信し、UCDは、ハードウェア暗号化器720による暗号化を除去し、データをリモートサーバ752に転送する。
【0344】
図19は、前述の実施形態と機能的に同様の第8の実施形態のコンピューティング装置900を示す。第8の実施形態のコンピューティング装置900は、インターネット956を介して双方向に接続されたユーザAデバイス960及びユーザBデバイス961の2つのユーザデバイスを備える。ユーザAのデバイス960は、それ自体が内部記憶デバイス936を含む第1のコンピューティングデバイス(第1のプライベートコンピューティングデバイス、PCU_A1)912を含む第1のユーザコンピュータシステムを含むデータ保護モジュール(DPM)946と、コントローラ910と、それ自体がデータ記憶ユニット(DSU_A)928を含む第2のコンピューティングデバイス(入力処理ユニットIPU_A)942を含むデータ処理デバイスとを含む。しかしながら、前述の実施形態とは対照的に、DPM946は、第2のユーザコンピュータシステム(第2のプライベートコンピューティングデバイス、PCU_A2)918を更に含む。コントローラは、PCU_A1912とPCU_A2918の両方から受信したコンピュータ画面データ及び/又はオーディオデータ、並びに同様にユーザAデバイス960に含まれる非セキュアコンピューティングデバイス(UCD_A)950を出力デバイス904に転送するように構成される。UCD_A950は、内部記憶デバイス952を備え、インターネット上の公衆網956を介してリモートユーザ(UserB)960と接続される。
【0345】
DPM946はまた、第1のユーザコンピュータシステムからデータ処理デバイスへデータを転送するための第1の一方向リンク930と、データ処理デバイスから第1のユーザコンピュータシステムへデータを転送するための第2の一方向リンク938とを含む第1の通信リンク901を含む。第1の一方向リンク930はハードウェア暗号化モジュール932を含み、第2の一方向リンク938はハードウェア復号モジュール940を含む。
【0346】
更に、DPM946はまた、第2の通信リンク903を含み、第2の通信リンクは、第2のユーザコンピュータシステムからデータ処理デバイスにデータを転送するための第3の一方向リンク920と、データ処理デバイスから第2のユーザコンピュータシステムにデータを転送するための第4の一方向リンク926とを含む。第3の一方向リンク920はハードウェア暗号化モジュール922を含む。記載された実施形態では、第4の一方向リンク926には復号モジュールが含まれない。
【0347】
ユーザAのデバイス960はまた、UCD_A950からコントローラ910にコンピュータ画面データ及び/又はオーディオデータを転送するための第5の一方向リンク906と、UCD_A950からPCU_A1912にデータを転送するための第6の一方向リンク916と、IPU_A942からUCD_A950にデータを転送するための第7の一方向リンク944と、周辺入力デバイス934から受信したユーザ入力をUCD_A950に中継するための第8の一方向リンク948とを含む。UCD_A、PCU_A1、PCU_A2、及びIPU_A間のデータの転送のための唯一の接続は、上記で説明され、
図19に示された一方向リンクであることを理解すべきである。
【0348】
ユーザAのデバイスには、例えばコントローラ910から受信したコンピュータ画面データを表示するように構成されたモニタなどの、1つ以上の出力デバイス904と、IPU_A942にユーザ入力を提供するように構成されたキーボード及びマウスなどの1つ以上の周辺入力デバイス934と、PCU_A1912と双方向通信する、パスワード保護されたスマートカード又はHSMなどの第1のセキュリティトークン914と、IPU_A942と双方向通信する第2のセキュリティトークン924とが更に含まれる。セキュリティトークン914及び924はオプションであり、DPM946がその機能を実行するために必須ではない。
【0349】
図19から理解されるように、PCU_A1912は、データがUCD_A950からPCU_A1912に移動することを可能にするが反対方向には移動しない第6の一方向リンク916を介してUCD_A950に接続される。動作中、PCU_A1912は、ユーザが見るための着信メッセージを復号するためのユーザの秘密鍵を保持することができる。或いは、秘密鍵は、PCU_A1912に接続されたパスワード保護されたスマートカード又はHSMなどのセキュリティトークン914に記憶されてもよい。ユーザは、PCU_A1912においてインターネットからダウンロードされたファイルを閲覧及び編集し、第1の一方向リンク930を介してDSU_A928にファイルを保存することができる。ハードウェア暗号化器932は、IPU_A942及びDSU_A928がマルウェアを含まないことを保証するのを助けるために、第1の一方向リンク930を通過する全てのデータを暗号化する。
【0350】
PCU_A2918は、個人の日記を書くこと、機密レポートをドラフティングすること、技術図面を作成することなどのプライベートなコンピューティング活動専用であってもよい。PCU_A2918はUCD_A950に接続されていないため、UCD_A950からスパイウェアやランサムウェアなどのマルウェアが侵入し、PCU_A2918において悪意のある行為を行う可能性はない。
【0351】
PCU_A2918はまた、セキュア通信のためにセッション鍵を暗号化するために使用され得る。ユーザが受信者に秘密メッセージを送信したい場合、IPU_A942は、セッション鍵でメッセージを暗号化し、DSU_A928から受信者の公開鍵を取得し、PCU_A2918に受信者の公開鍵と共にセッション鍵を送信することができる。PCU_A2918は、受信者の公開鍵を使用してセッション鍵を暗号化し、暗号化されたセッション鍵をIPU_A942に返送する。PCU_A2はUCD_A950に接続されていないため、UCD_A950を起源とするマルウェアがこのプロセスに干渉することは不可能であり得る。
【0352】
したがって、それぞれが異なる役割を有する複数のプライベートコンピューティングユニットを使用することができることが理解され得る。
【0353】
ユーザBデバイス961は、ユーザAデバイス960と同一の装置を備えてもよく、又は本明細書に記載の異なる実施形態に係るコンピューティング装置を含む異なるコンピューティング装置を備えてもよいことが想定される。したがって、コンピューティング装置900は柔軟である。
【0354】
図20は、
図19に示したユーザAのデバイス960(以下、ユーザをAliceと記載する)と同じアーキテクチャを有する、ユーザAのデバイス960と、ユーザBのデバイス961との間(すなわち、それぞれ「Alice」と「Bob」との間)でセッション鍵を確立する方法の一例を示しており、すなわち、ユーザBのデバイス961(以下、ユーザをBobと記載する)は、ユーザAのデバイス960と同様に配置された、第1のプライベートコンピューティングデバイス、PCU_B1、それ自体がデータ記憶ユニット(DSU_B)を含む入力処理ユニット、IPU_B、第2のプライベートコンピューティングデバイス、PCU_B2、非セキュアコンピューティングデバイス(UCD_B)、及びそれらの間の対応する一方向リンクを含む。
【0355】
ステップ1002において、セキュアモードで、Aliceは、IPU_A942上のセキュアメッセージングソフトウェアを開き、「接続要求」ボタンをクリックするか、又は他の同等の動作を実行して、「接続要求」プロセスをアクティブ化する。彼女は、Bobの名前もしくは電子メールアドレス、又は何らかの他の形態の識別をキーとする。
【0356】
ステップ1004において、Aliceが自分のキーボード934で入力すると、IPU_A942は、モニタ904が入力したものを画面上に表示できるように、第2の一方向リンク938を介して自分のキーストロークをPCU_A1912に送信する。
【0357】
ステップ1006において、Aliceは、入力が終了すると、「要求の送信」コマンドを入力するか、又はセキュアメッセージングソフトウェアのウィンドウに配置された「要求の送信」ボタンをクリックする。IPU_A942は、Aliceへのデータを暗号化するためのAliceの公開鍵KpubAと、関連する証明書certAを有するAliceの署名検証鍵KverAとを含むAliceの要求メッセージをUCU_A950に送信する。
【0358】
ステップ1008において、要求メッセージは、第7の一方向リンク944を介してUCU_A950によって受信される。
【0359】
ステップ1010において、UCU_A950は、パブリックネットワーク956を介してBobにAliceの要求メッセージを転送する。
【0360】
ステップ1012において、UCD_Bは、要求メッセージを受信し、それを対応する一方向リンクを介してPCU_B1に転送する。
【0361】
ステップ1014において、Aliceの要求メッセージを受信すると、PCU_B1は、Aliceの証明書、certAを検証する。これは、PCU_B1に既にインストールされているルート証明書を使用して行うことができる。
【0362】
ステップ1016において、Aliceの証明書の検証に成功すると、Aliceの要求がBobに通知される。通知は、コンピュータ画面に表示されるポップアップメッセージであってもよいし、Bobの携帯電話に送信されるメッセージであってもよい。Bobは、セキュアモードに切り替わり、IPU_B上のセキュアメッセージングソフトウェアを開き、セキュアメッセージングソフトウェアのウィンドウ上の「接続要求を受け付ける」ボタンをクリックするか、又は要求を受け付ける何らかの同等の動作を実行する。
【0363】
ステップ1020において、PCU_B1は、Aliceの署名検証鍵KverAを保存し、記憶のためにAliceの公開鍵KpubAをDSU_Bに送信する。
【0364】
ステップ1022において、KpubAは、PCU_B1とIPU_Bとを接続する対応する一方向リンクを介して移動するとき、ハードウェア暗号化器によって(KpubA XOR K1)になるように暗号化され、K1は暗号鍵である。簡単にするために、ここではOTP暗号化が想定されているが、AESカウンタモードなどの他の暗号化方式も同様に使用することができる。OTP暗号化の場合、(KpubA XOR K1)とOTP鍵K1の両方がIPU_Bに含まれるDSU_Bに保存される。
【0365】
ステップ1024において、IPU_Bは新しいセッション鍵Yを生成する。セッション鍵は、IPU_Bに接続されたハードウェアRNGからIPU_Bに供給されてもよく、又は暗号学的にセキュアPRNGなどからなどの他の手段を介して生成されてもよい。IPU_Bは、Yを(KpubA XOR K1)及びK1と共にPCU_B2に送信する。
【0366】
ステップ1026において、IPU_BからPCU_B2への対応する一方向リンクはハードウェア復号器を有さず、したがって、(KpubA XOR K1)は、リンクをトラバースするときに暗号化された形態のままである。
【0367】
ステップ1028において、PCU_B2は、KpubA(Y)を取得するために、鍵K1を使用してKpubAを復号し、KpubAでYを暗号化する。PCU_B2は、KpubA(Y)をIPU_Bに送り返す。
【0368】
ステップ1030において、PCU_B2とIPU_Bとを接続する対応する一方向リンク上のハードウェア暗号化器は、KpubA(Y)をKpubA(Y) XOR K2に暗号化し、IPU_BはKpubA(Y) XOR K2とK2の両方を受信し、K2はOTP鍵である。
【0369】
ステップ1032において、IPU_Bは、Bobの署名鍵KsignBを使用してKpubA(Y) XOR K2のハッシュに署名する。次に、Bobの公開鍵KpubB、署名検証鍵KverBを含む応答メッセージを、関連する証明書certB、暗号化セッション鍵KpubA(Y) XOR K2、鍵K2、及び署名KsignB(hash(KpubA(Y) XOR K2))と共にUCD_Bに送信する。
【0370】
ステップ1034において、Bobの応答メッセージがIPU_BからUCD_Bに一方向リンクを介して送信される。
【0371】
ステップ1036において、UCD_Bは、パブリックネットワーク956を介してAliceにBobの返信メッセージを転送する。
【0372】
ステップ1038において、Bobの応答メッセージを受信すると、UCU_A950は、それを第6の一方向リンク916を介してPCU_A1912に転送する。
【0373】
ステップ1040において、PCU_A1912は、PCU_A1912に既にインストールされているルート証明書を使用して、Bobの証明書であるcertBを検証する。PCU_A1912は、KpubA(Y) XOR K2のハッシュを計算し、Bobの署名検証鍵KverBを使用して、KsignB(hash(KpubA(Y) XOR K2))が実際にBobによって署名されていることを検証する。
【0374】
ステップ1042で、PCU_A1912は、最初に受信した鍵K2を使用してKpubA(Y) XOR K2を復号し、次にAliceの秘密鍵KprivAを使用してKpubA(Y)を復号することにより、セッション鍵Yを取得する。PCU_A1912は、セッション鍵Yをローカルに記憶する。
【0375】
ステップ1044において、Bobの証明書、certB、及びBobの署名の検証に成功し、セッション鍵Yを取得するためのKpubA(Y)の復号に成功すると、Bobの応答がAliceに通知される。通知は、モニタ904に表示されるポップアップメッセージであってもよい。Aliceは、「受諾」ボタンをクリックすることによって、又は同等の動作を実行することによって応答を受諾する。
【0376】
ステップ1048において、PCU_A1912は、Bobの署名検証鍵KverBを内部記憶デバイス936にローカルに保存し、Bobの公開鍵KpubBをDSU_A928に送信して記憶させる。好ましくは、PCU_A1912はまた、記憶のためにKverBのコピーをDSU_A928に送信する。
【0377】
ステップ1050において、KpubBがPCU_A1912からIPU942への一方向リンク930上を移動すると、ハードウェア暗号化モジュール932は、KpubBをKpubB XOR K3に暗号化し、K3はOTP鍵である。KpubB XOR K3とK3の両方がDSU_A928に記憶される。
【0378】
ステップ1052において、IPU_A950は、新しいセッション鍵Xを生成し、KpubB XOR K3及びK3と共にXをPCU_A2918に送信する。
【0379】
ステップ1054において、IPU_A942とPCU_A2918とを接続する第4の一方向リンク926はハードウェア復号器を有さず、したがって、KpubB XOR K3は、リンクをトラバースするときに暗号化形式のままである。
【0380】
ステップ1056で、PCU_A2918は、鍵K3を使用してKpubB XOR K3を復号してKpubBを取得し、KpubBを使用してセッション鍵Xを暗号化してKpubB1(X)を取得する。
【0381】
ステップ1058において、PCU_A2918は、第3の一方向リンク920を介してKpubB(X)をIPU_A950に送り返す。ハードウェア暗号化モジュール922は、KpubB(X)を暗号化してKpubB(X) XOR K4を取得し、KpubB XOR K4とOTP鍵K4の両方をIPU_A942に送信する。
【0382】
ステップ1060において、IPU_A942は、Aliceの署名鍵KsignAを使用してKpubB(X) XOR K4のハッシュに署名し、KpubB(X) XOR K4、KsignA(hash(KpubB(X) XOR K4))及びK4を含む確認応答メッセージをUCD_A950に送信する。
【0383】
ステップ1062において、確認応答メッセージは、第7の一方向リンク944を介してUCD_A950によって受信される。
【0384】
ステップ1064において、UCD_A950は、パブリックネットワーク956を介してBobへ確認応答メッセージを送信する。
【0385】
ステップ1066で、Aliceの確認応答メッセージを受信すると、UCU_Bは、対応する一方向リンクを介してメッセージをPCU_B1に転送する。
【0386】
ステップ1068において、PCU_B1は、まず、KpubB(X) XOR K4のハッシュを計算してハッシュ(KpubB(X) XOR K4)を取得し、次に、Aliceの署名検証鍵KverAを使用して、KsignA(hash(KpubB(X) XOR K4))がAliceによって実際に署名されていることを検証する。
【0387】
ステップ1070で、PCU_B1は、受信した鍵K4及びBobの秘密鍵KprivbBを使用してKpubB(X) XOR K4を復号してセッション鍵Xを取得する。PCU_B1は、セッション鍵Xをローカルに記憶する。
【0388】
図20に示す方法の実行に続いて、Alice及びBobは、セッション鍵X及びYを使用して安全に通信することができる。
図21に両者間の通信方法を示す。
【0389】
ステップ1072で、AliceはIPU_A942に自分のメッセージmを構成する。
【0390】
ステップ1074において、ユーザのキーストロークは、ユーザがモニタ904上で何をタイプしているかを見るために、第2の一方向リンク938を介してリアルタイムでPCU_A1912に送信される。
【0391】
ステップ1076において、Aliceは、自分のメッセージをタイプし終えると、セキュアメッセージングソフトウェアのウィンドウに配置された「暗号化して送信」ボタンをクリックする。或いは、ユーザは、対応するコマンドをIPU_A942に入力するか、又は同等の動作を実行して「暗号化して送信」機能を開始することができる。IPU_A942は、AES-256などの合意された対称暗号を使用してセッション鍵Xを用いてmを暗号化してAESX(m)を取得し、Aliceの署名鍵KsignAを使用してmのハッシュに署名してKsignA(hash(m))を取得する。
【0392】
ステップ1078において、IPU_A942は、暗号化されたメッセージAESC(m)及び署名KsignA(hash(m))をUCD_A950に送信する。
【0393】
ステップ1080では、暗号化及び署名されたメッセージは、第7の一方向リンク944をUCD_A950へトラバースする。
【0394】
ステップ1082において、UCD_A950は、パブリックネットワーク956を介して暗号化されたメッセージ及び署名をBobに転送する。
【0395】
ステップ1084で、UCU_B982は、Aliceから受信したメッセージを、対応する一方向リンクを介してPCU_B1に転送する。
【0396】
ステップ1086において、PCU_B1は、Aliceのメッセージmを取得するために、セッション鍵Xを使用してAESC(m)を復号する。PCU_B1は、mをハッシュしてhash(m)を取得し、Aliceの署名検証鍵KverAを使用して、KsignA(hash(m))が実際にAliceによって署名されていることを検証する。AliceのメッセージはBobのモニタディスプレイに表示される。BobはAliceのメッセージを読む。
【0397】
ステップ1088において、Bobは自分の応答rを構成する。
【0398】
ステップ1090において、Bobがキーボードで入力すると、Bobのキーストロークは、対応する一方向リンクを介してリアルタイムでPCU_B1に送信され、Bobはモニタ画面に入力されている内容を見ることができる。
【0399】
ステップ1092において、Bobは、完了すると、セキュアメッセージングソフトウェアのウィンドウに配置された「暗号化して送信」ボタンをクリックするか、又は同等の動作を実行する。IPU_Bは、AESY(r)を取得するために、この例ではAES-256である合意された対称暗号を使用してセッション鍵Yでrを暗号化し、KsignB(hash(r))を取得するためにBobの署名鍵KsignBを使用してrのハッシュに署名する。
【0400】
ステップ1094において、IPU_Bは、暗号化応答AESY(r)及び署名KsignB(hash(r))をUCD_Bに送信する。
【0401】
ステップ1096において、暗号化された返信及び署名は、UCD_Bへの対応する一方向リンクをトラバースする。
【0402】
ステップ1098において、UCD_Bは、暗号化された返信及び署名をパブリックネットワーク956を介してAliceに転送する。
【0403】
ステップ10100において、UCD_A950は、Bobから受信したメッセージを第6の一方向リンク916を介してPCU_A1912に転送する。
【0404】
ステップ10102において、PCU_A1912は、セッション鍵Yを使用してAESY(r)を復号し、Bobの応答rを取得する。PCU_A1912は、hash(r)を取得するためにrをハッシュし、Bobの署名検証鍵KverBを使用して、KsignB(hash(r))が実際にBobによって署名されていることを検証する。Aliceのメッセージはモニタディスプレイ964に表示される。AliceはBobの回答を読む。
【0405】
通信は、それらのうちの1つがセッションを終了するまで継続する。
【0406】
図20及び
図21の方法では、2つのセッションキーX及びYがあることを理解すべきである。セッション鍵Xは、AliceのIPU_A942がメッセージを暗号化し、BobのPCU_B1がAliceのメッセージを復号するためのものであり、セッション鍵Yは、BobのIPU_Bが彼のメッセージを暗号化し、AliceのPCU_A1912がBobのメッセージを復号するためのものである。
【0407】
UCU_A950及びUCU_B982は、SSL/TLS又はIPsecなどの標準的なセキュア通信プロトコルを利用することができることが想定されている。DPM946を使用すると、サイバー攻撃又はゼロデイ脆弱性により、UCU_A950及びUCU_B982又は標準的なセキュア通信プロトコルのメッセージングソフトウェアのセキュリティが1日で損なわれた場合でも、通信されるメッセージはエンドツーエンドで暗号化される。
【0408】
前述した例示的な方法は、鍵確立及びセキュアデータ通信という同じ目的を達成するために様々な方法で修正することができる。例えば、Diffie-Hellman鍵交換は、同様の構成を使用して実行され得る。
【0409】
DPM946は、集積チップ(IC)又はシステムオンチップ(SoC)に統合することができ、スマートフォン、タブレットなどであるがこれらに限定されない携帯型又はハンドヘルドコンピューティングデバイスに埋め込むのに適している。前述した他の実施形態と同様に、そのようなデバイスに実装されると、DPM946は、ユーザが安全に通信し、ユーザをスパイウェアやランサムウェアなどのマルウェアから保護することを可能にすることができる。
【0410】
図22は、先に説明した実施形態と機能的に同様の第9の実施形態のコンピューティング装置1100を示す。第9の実施形態のコンピューティング装置1100は、デュアルタッチスクリーンスマートフォンの形態である。
【0411】
コンピューティング装置1100は、第1のコンピューティングデバイス(プライベートコンピューティングデバイス、PCUとも呼ばれる)1122と、第1のコントローラ1106と、第1のコントローラ1106から画面データを受信するように構成された第1のタッチスクリーン1102とを含む第1のユーザコンピュータシステムを含むデータ保護モジュール(DPM)1142と、第2のコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1136及びデータ記憶ユニット(DSU)1132を含むデータ処理デバイスとを含む。DPM1142は、第1のタッチスクリーン1102からユーザ入力データを受信し、ユーザ入力データをIPU1136又は別のコントローラ1148に転送するように構成されたセレクタスイッチ1144を更に含む。
【0412】
DPM1142はまた、第1のユーザコンピュータシステムからデータ処理デバイスへデータを転送するための第1の一方向リンク1128と、データ処理デバイスから第1のユーザコンピュータシステムへデータを転送するための第2の一方向リンク1124とを含む第1の通信リンクを含む。第1の一方向リンク1128はハードウェア暗号化モジュール1126を含み、第2の一方向リンク1124はハードウェア復号モジュール1130を含む。
【0413】
コンピューティング装置1100は、非セキュアコンピューティングデバイス(UCD)1116と、更なるデータ記憶デバイス1150と、第2のコントローラ1112と、第2のコントローラ1112から画面データを受信するように構成された第2のタッチスクリーン1104と、ネットワークインタフェース1118と、セレクタスイッチ1144を介して第2のタッチスクリーン1104から、又は第1のタッチスクリーン1102からユーザ入力データを受信し、ユーザ入力データをUCD1116に転送するように構成された第3のコントローラ1148と、を含むネットワーク化されたコンピュータシステム1152を更に含む。
【0414】
コンピューティング装置1100は、第2のコントローラ1112から第1のコントローラ1108にデータを転送するための第3の一方向リンク1108と、UCD1116からPCU1122にデータを転送するための第4の一方向リンク1110と、IPU1136からUCD1116にデータを転送するための第5の一方向リンク1138と、セレクタスイッチ1144から第3のコントローラ1148にデータを転送するための第6の一方向リンク1146と、第1のタッチスクリーン1102からセレクタスイッチ1144にユーザ入力データを転送するための第7の一方向リンク1114と、セレクタスイッチ1144からIPU1136にデータを転送するための第8の一方向リンク1134と、第3のコントローラ1148からUCD1116にデータを転送するための第9の一方向リンク1140と、第2のタッチスクリーン1104から第3のコントローラ1148にユーザ入力データを転送するための第10の一方向リンク1120とを更に含む。PCU1122、IPU1136、UCD1116、並びにタッチスクリーン1102、1104とコントローラ1106、1112、及び1150との間でデータを転送するために、前述の一方向リンクのみが提供されることを理解すべきである。
【0415】
使用時には、通常モード(通常モードを選択するように動作可能なセレクタスイッチ1144)の下で、IPU1136は無効にされる。IPU1136とUCU1116とを接続する第5の一方向リンク1138も無効にされる。ユーザは、プライベートデータ又は機密データを含まないアプリケーションのためにタッチスクリーン1102、1104の両方を使用することができる。第1のタッチスクリーン1102からのユーザ入力は、第7の一方向リンク1114、第6の一方向リンク1146及び第9の一方向リンク1140を含む経路を介してUCU1116に向けることができる。UCD1116からの画面画像は、第2のコントローラ1112並びに第1のコントローラ1106及び第3の一方向リンク1108を通過して、第1のタッチスクリーン1102上に表示されるとともに、第2のタッチスクリーン1104上に表示され得る。UCD1116は、ネットワークインタフェース1118を介して外部ネットワークに接続される。ユーザがプライベートデータ及び機密データを入力、閲覧、又は編集したい場合、ユーザは、セレクタスイッチ1144をフリップするか、スマートフォン上のボタン(図示せず)を押すか、又はセキュアモードを起動するための何らかの同等の動作を実行する。セキュアモードでは、第1のタッチスクリーン1102からのユーザ入力は、代わりに、第7の一方向リンク1114及び第8の一方向リンク1134を介してIPU1136に向けられる。第1のタッチスクリーン1102は、PCU1122の画面を表示するように構成されてもよく、第2のタッチスクリーン1104は、UCD1116の画面を表示するように構成されてもよい。
【0416】
スマートフォンのカメラ及びマイクロフォン(図示せず)もIPU1136に接続され得る。前述したように、上記の構成は、IPU1136及びデータストレージ1132がマルウェアを含まない可能性があることを意味する。DPM1142におけるプライベートデータ及び機密データの入力、閲覧、及び編集は、スパイウェアから保護することができる。データ記憶ユニット1132に記憶されているチャット記録、プライベートメッセージ、電子メール、写真などのプライベート及び機密データも、ランサムウェアから保護することができる。
【0417】
上記の概念は、単一の画面又は複数の画面を有するスマートフォン、タブレット、又は他のポータブル/モバイルデバイスにも適用できることが想定される。単一画面デバイスの場合、画面は2つのより小さい画面に分割され、一方のより小さい画面はプライベート及び機密データを表示し、他方のより小さい画面は非プライベート及び非機密データを表示する。複数画面スマートフォンの場合、画面の1つ以上は、プライベートデータ及び機密データを入力、閲覧、又は編集するように構成され得る。
【0418】
図23は、前述の実施形態と機能的に同様の第10の実施形態のコンピューティング装置11100を示す。第10の実施形態のコンピューティング装置11100は、ハンドヘルド又はデスクトップデバイスの形態のデータ保護モジュール(DPM)11142と、例えばタブレット又はラップトップなどのネットワークコンピュータシステム11152とを含む。DPM111142は、ネットワーク化されたコンピュータシステム11152から物理的に分離されているが、例えば、USB又はイーサネットなどの有線接続、又はBluetooth又はWi-Fiなどの無線接続を介して、接続11164を介して着脱可能に接続されている。
【0419】
DPM11142は、第1のコンピューティングデバイス(プライベートコンピューティングデバイス、PCUとも呼ばれる)11122と、第1のタッチスクリーン11102と、第2のコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)11136及びデータ記憶ユニット(DSU)11132を含むデータ処理デバイスとを含む。DPM21142は、IPU11136及び通信インタフェース11162に入力を提供するように構成されたカメラ及び/又はマイクロフォン11172の形態の周辺入力デバイスを更に含む。
【0420】
DPM11142はまた、第1のユーザコンピュータシステムからデータ処理デバイスへデータを転送するための第1の一方向リンク11128と、データ処理デバイスから第1のユーザコンピュータシステムへデータを転送するための第2の一方向リンク11124とを含む第1の通信リンクを含む。第1の一方向リンク11128はハードウェア暗号化モジュール11126を含み、第2の一方向リンク11124はハードウェア復号モジュール11130を含む。
【0421】
DPM11142は、通信インタフェース11162からPCU11122にデータを転送するための第3の一方向リンク11160と、IPU11136から通信インタフェース11162にデータを転送するための第4の一方向リンク11170と、
PCU11122から第1のタッチスクリーン11102に画面データを転送するための第5の一方向リンク11156と、タッチスクリーン11102からIPU11136にユーザ入力データを転送するための第6の一方向リンク11114とを更に含む。
【0422】
ネットワークコンピュータシステム11152は、非セキュアコンピューティングデバイス(UCD)11116と、更なるデータ記憶デバイス11150と、第2のタッチスクリーン11104と、ネットワークインタフェース11118と、更なるカメラ及び/又はマイクロフォン11174の形態の更なる周辺入力デバイスと、第2の通信インタフェース11166とを含む。
【0423】
接続11164は、第1の通信インタフェース11162と第2の通信インタフェース11166との間にあることが理解され得る。
【0424】
データは、前述したリンクのうちの1つ以上を介してのみ、PCU11122、IPU11136、及びネットワークコンピュータシステム11152の間で転送され得ることを理解すべきである。
【0425】
通信インタフェース11162からPCU11122への一方向リンク11160は、データがPCU11122内に一方向にのみ転送でき、PCUからは転送できないようにする。同様に、IPU11136から通信インタフェース11162への一方向リンク11170は、データがIPU11136から一方向にのみ転送でき、IPUには転送できないようにする。プライベート写真を撮影し、プライベートオーディオを記録するためのカメラ及びマイクロフォン11172は、UCD11116ではなくDPM11142のIPU11136に接続されることが想定される。UCD1116に接続される更なるカメラ及びマイクロフォン11174は、非感受性用途にのみ使用されることが想定される。
【0426】
任意選択で、DPM11142は、ユーザがネットワーク化されたコンピュータシステム11152(例えば、スマートフォン)と共に携帯するスマートフォンのようなデバイスの形態であってもよいことが想定される。或いは、DPM11142は、タブレット又は他の形態のポータブルコンピューティングデバイスの形態であってもよい。限定するものではないが、通信リンク11164は、DPM11142と非セキュアコンピューティングデバイス11152(例えば、スマートフォン又はラップトップコンピュータ)との間のデータの転送を達成するBluetooth、Zigbeeなどの任意の通信手段で実装することができる。
【0427】
図24は、単一のタッチスクリーン21102を有するスマートフォンの形態の第11の実施形態のコンピューティング装置21100を示す。第10の実施形態のコンピューティング装置21100は、第1のユーザとして、第1のコンピューティングデバイス(プライベートコンピューティングデバイス、PCUとも呼ばれる)21122と、タッチスクリーン21102と、コントローラ21106とを含む第1のユーザコンピュータシステムを含むデータ保護モジュール(DPM)21142と、第2のコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)21136、セキュアデータストレージ21132、及びセレクタスイッチ21144を含むデータ処理デバイスとを含む。
【0428】
DPM21142は、非セキュアコンピューティングユニット(UCU)21116と、更なるデータ記憶デバイス21150と、ネットワークインタフェース21118とを含むネットワークコンピュータシステムを更に含む。
【0429】
DPM21142はまた、第1のユーザコンピュータシステムからデータ処理デバイスへデータを転送するための第1の一方向リンク21128と、データ処理デバイスから第1のユーザコンピュータシステムへデータを転送するための第2の一方向リンク21124とを含む第1の通信リンクを含む。第1の一方向リンク21128はハードウェア暗号化モジュール21126を含み、第2の一方向リンク21124はハードウェア復号モジュール21130を含む。
【0430】
DPM21142は、画面データをUCU21116からコントローラ21106に転送するための第3の一方向リンク21108と、データをUCU21116からPCU21122に転送するための第4の一方向リンク21110と、データをIPU21136からUCU21116に転送するための第5の一方向リンク21138と、ユーザ入力データをセレクタスイッチ21144からUCU21116に転送するための第6の一方向リンク21146と、ユーザ入力データをセレクタスイッチ21144からIPU21136に転送するための第7の一方向リンク21134と、ユーザ入力データをタッチスクリーン21102からセレクタスイッチ21144に転送するための第8の一方向リンク21114とを更に含む。データは、前述した一方向リンクのうちの1つ以上を介してのみ、UCU21116、PCU21122、及びIPU21136の間で転送され得ることを理解すべきである。
【0431】
コンピューティング装置21100はまた、UCU21116との双方向インタフェース21178を介して双方向通信する外部記憶デバイス21180を含む。
【0432】
単一のタッチスクリーン21102は、コントローラ21106を介してPCU21122及びUCU21116によって共有される。重要なデータは、IPU21136に接続されたセキュアデータストレージ21132に記憶される。インタフェース21178は、USB、Bluetoothなどの形態であり、UCU21116への外部記憶デバイス21180の接続を可能にする。ユーザは、バックアップ又は何らかの他の目的のために、暗号化された形式でセキュアデータストレージ21132から外部記憶デバイス21180にデータを転送することができる。データがたどる経路は、IPU21136を介して第5の一方向リンク21138を介してUCU21116に至り、次いでインタフェース21178を介して外部記憶デバイス21180に至る。ユーザは、外部記憶デバイス21180からセキュアデータストレージ21132にファイルを転送することもできる。この場合のデータがとる経路は、インタフェース21178を介してUCU21116に、第4の一方向リンク21110を介してPCU21122に、そして(処理中にデータがハードウェア暗号化モジュール21126を介して暗号化される)第1の一方向リンク21128を介してIPU21136に、そしてセキュアデータストレージ21132に至る。ハードウェア暗号化モジュール21126によって使用される暗号鍵は、セキュアデータストレージ21132にも記憶され得る。IPU21136では、必要に応じて、先に
図8を参照して説明したようなセキュア暗号化変換が行なわれてもよい。
【0433】
図25は、前述の実施形態と機能的に同様であるが、DPMが、ユーザのコンピューティングデバイスの形態である外部の非セキュアコンピューティングデバイス(UCD)及び外部のプライベートコンピューティングデバイス(PCD)に接続されている、第12の実施形態のコンピューティング装置1200を示す。
【0434】
したがって、第12の実施形態のコンピューティング装置1200は、第1のコンピューティングデバイス(プライベートコンピューティングデバイス、PCDとも呼ばれる)1214、例えばユーザの既存のプライベートコンピューティングデバイスの形態のユーザコンピュータシステムと、第2のコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1238及びデータ記憶ユニット(DSU)1242を含むデータ処理デバイスを含むデータ保護モジュール(DPM)1250とを含む。DPM1250はまた、コントローラ1232を含む。コンピューティング装置1200はまた、キーボードの形態でIPU1236に接続された周辺入力デバイス1248と、コントローラ1232からコンピュータ画面データ又はオーディオデータを受信する出力デバイス1202とを含む。
【0435】
コンピューティング装置1200は、非セキュアコンピューティングデバイス(UCD)1226、例えば、内部記憶デバイス1240を含むユーザの既存の非セキュアコンピューティングデバイス自体を更に含む。周辺入力デバイス1254は、ユーザ入力をUCD1226に提供する。出力デバイス1208は、ユーザのためにコンピュータ画面を表示し、又は音声を再生する。
【0436】
本明細書でAliceと呼ばれるユーザは、鍵配布サービス(KDS)プロバイダ1260から受信したセッション鍵を使用して、リモートユーザBob1264と安全に通信する。UCD1226は、インターネット1230を介して、Bob1264及びKDSプロバイダ1260と接続されている。
【0437】
前述の実施形態のコンピューティング装置のように、DPM1250はまた、ユーザのコンピュータシステムからデータ処理デバイスにデータを転送するための第1の一方向リンク1212と、データ処理デバイスからユーザのコンピュータシステムにデータを転送するための第2の一方向リンク1216とを含む通信リンクを含み、具体的には、第1の一方向リンク1212は、PCD1214からDSU1244にデータを転送するように構成され、第2の一方向リンクは、DSU1244からPCD1214にデータを転送するように構成される。第1の一方向リンク1212はハードウェア暗号化モジュール1218を含み、第2の一方向リンク1216はハードウェア復号モジュール1220を含む。
【0438】
コンピューティング装置1200はまた、UCD1226からPCD1214にデータを転送するための第3の一方向リンク1224と、PCD1214からコントローラ1232に画面データを転送するための第4の一方向リンク1204と、DSU1242からコントローラ1232に画面データを転送するための第5の一方向リンク1242と、IPU1236からDSU1244にデータを転送するための第6の一方向リンクと、IPU1236からPCD1214にデータを転送するための第7の一方向リンク1222と、DSU1244からUCD1226にデータを転送するための第8の一方向リンク1238と、を含む。
【0439】
記載された実施形態では、DPM1250は、鍵配布サービス(KDS)プロバイダ1260と共有される事前共有鍵及び鍵暗号鍵(KEK)、並びにKDSプロバイダ1260によって配信されるセッション鍵を保護するために用いられる。
【0440】
KDSプロバイダ1260は、セキュア通信を希望する登録ユーザにセッション鍵を配信する。説明した実施形態によれば、これを行うために、KDSプロバイダ1260は、まず、その全ての登録ユーザと事前共有鍵を共有する。例えば、モジュールをユーザに渡す前に、事前共有鍵がDPM1250内に予めインストールされてもよいし、登録中に事前共有鍵がユーザに提供されてもよい。一例の方法は、登録中に事前共有鍵をIPU1236に自動的に入力するバーコード又はQRコード(登録商標)をスキャンするために、IPU1236に接続されたウェブカメラを使用することであり得る。或いは、ユーザは、提供された事前共有鍵をIPU1236に手動で入力してもよい。その後、KEKは、鍵導出関数を用いて事前共有鍵から導出され得る。事前共有鍵及びKEKは、DSU1234に安全に記憶することができる。KDSプロバイダから受信されるセッション鍵は、ユーザがIPU1236に入力するメッセージを暗号化するためにDSU1244で使用される。
【0441】
ケルベロースなどの鍵配布方法では、KDSプロバイダ1260は、KEKを使用して、登録されたユーザにオンデマンドでセッション鍵を配信することができる。そのような方法の利点は、それらが公開鍵インフラストラクチャ(PKI)に基づいておらず、したがってPKIの全ての潜在的な欠点がないことである。しかしながら、1つの欠点は、事前共有鍵、KEK、及びセッション鍵が、通常はインターネットに接続され、スパイウェア及びサイバー攻撃を受けやすいユーザのコンピューティングデバイスに記憶されるべきであることである。攻撃者は、マルウェアを使用して鍵のセキュリティを侵害する可能性がある。対照的に、記載された実施形態では、DPM1250を使用して、マルウェアから鍵を保護することができる。以下では、これらのキーをDPM1250で安全に使用する方法を説明する。
【0442】
図26は、AliceがKDSプロバイダ1260によって提供されるセッション鍵を用いて暗号化されたメッセージをBob1264へ安全に送信するための方法の例を示す。Aliceは自身の事前共有鍵から導出された鍵暗号鍵KEKXをKDSプロバイダと共有し、Bobは自身の事前共有鍵から導出された鍵暗号鍵KEKYをKDSプロバイダと共有する。AliceとBobは以前に対話したことがなく、したがって事前にセッション鍵を共有しないと仮定する。
【0443】
ステップ1266で、Aliceは自分のユーザ名を入力し、Bobに接続する要求を開始する。
【0444】
ステップ1268で、Aliceがキーボードで入力すると、IPU1236は、Aliceがモニタ画面で入力した内容を見ることができるように、第7の一方向リンク1222を介してPCD1214にキーストロークを送信する。
【0445】
ステップ1270において、Aliceは自分の要求を送信する。
【0446】
ステップ1272において、IPU1236は、第6の一方向リンク1234及び第8の一方向リンク1238を介してUCD1226にAliceの要求を転送する。
【0447】
ステップ1274において、UCD1226は、インターネット1230を介してKDSプロバイダ1260にAliceの要求を転送する。
【0448】
ステップ1276で、KDSプロバイダ1260は、AliceとBobの両方が登録ユーザであることをチェックする。KDSプロバイダは、Aliceに自身のユーザアカウント(図示せず)へのログインを要求することができる。
【0449】
ステップ1278において、KDSプロバイダ1260は、次に、対称暗号AESカウンタモードを使用してAESビットストリームAESX-BSを作成するために、Alice及びランダムに生成された初期化ベクトルIVXと共有するKEKXを使用する。次いで、KDSプロバイダ1260は、AESX-BSを使用して、ビットXORによってランダムに選択されたセッション鍵Qを暗号化し、AESX-BS XOR Qを取得する。KDSプロバイダ1260は、Bob及び別のランダムに生成された初期化ベクトルIVYと共有するKEKYを使用してAESY-BSを作成し、それを使用してセッション鍵Qを暗号化してAESY-BS XOR Qを取得する。
【0450】
ステップ1280で、KDSプロバイダ1260は、AESX-BS XOR Q、IVX、AESY-BS XOR Q、IVY、及びBobのIPアドレスをAliceに送信する。
【0451】
ステップ1282において、UCD1226は、AESX-BS XOR Q、IVX、AESY-BS XOR Q及びIVYをPCD1204に転送する。
【0452】
ステップ1284において、PCD1204は、AESX-BS XOR Q、AESY-BS XOR Q及びIVYをDSU1244に転送する。データが第1の一方向リンク1212を通過するとき、それらのデータは、OTP暗号化を仮定してAESX-BS XOR Q XOR K1、AESY-BS XOR Q XOR K2及びIVY XOR K3をそれぞれ取得するために、ハードウェア暗号化器1218によって鍵K1、K2及びK3で暗号化される。
【0453】
ステップ1286において、UCD1226は、モニタ画面にIVXを表示する。Aliceは画面からIVXを読み取る。
【0454】
ステップ1288において、AliceはIVXをタイプし、IVXは、IPU1236に接続されたキーボード上の12文字(96ビット)のストリングであり得る。
【0455】
ステップ1290で、Aliceのキーストロークが閲覧のためにPCD1204に送信される。
【0456】
ステップ1292では、IVXが、第6の一方向リンク1234を介してDSU1244へ送信される。
【0457】
ステップ1294で、AliceはIPU1236で自分のメッセージmを構成する。
【0458】
ステップ1296で、Aliceのキーストロークが閲覧のためにPCD1204に送信される。
【0459】
ステップ1298で、Aliceが完了すると、IPU1236は、第6の一方向リンク1234を介してDSU1244にmを送信する。
【0460】
ステップ12100において、DSU1244は、メモリからKEKXを取得し、それをIPU1236から受信するIVXとともに使用してAESビットストリームAESX-BSを生成し、それを使用してAESX-BS XOR Q XOR K1を復号してQ XOR K1を取得する。DSU1244は、別の初期化ベクトルIVZをランダムに生成し、それとZ=Q XOR K1と、をAES暗号鍵として使用して、AESカウンタモードを有するAESビットストリームAESZ-BSを作成する。次に、DSU1244は、AESZ-BS及びmに対してビットごとのXORを実行して、暗号化されたメッセージAESZ-BS XOR mを取得する。
【0461】
ステップ12102において、DSU1244は、暗号化メッセージAESZ-BS XOR mをIVZ、K1、AESY-BS XOR Q XOR K2、IVY XOR K3、K1、K2、及びK3と共にUCD1226に送信する。
【0462】
ステップ12104において、メッセージは、第7の一方向リンク1222を介してUCD1226によって受信される。
【0463】
ステップ12106において、UCD1226は、K2及びK3を使用して復号することによってAESY-BS XOR Q及びIVYを取得する。
【0464】
ステップ12108において、UCD126は、AESZ-BS XOR mをIVZ、K1、AESY-BS XOR Q、IVY及びAliceのユーザ名と共に送出する。
【0465】
ステップ12110において、データは、インターネット1230を介してBob1264に送信される。
【0466】
ステップ12112で、Aliceからこれらを受信すると、Bobは、彼の鍵暗号鍵KEKY及びIVYを使用してAESY-BS XOR Qを復号してQを取得し、取得したQ及びK1を使用してAESZ-BSを作成し、次いでAESZ-BSを使用してAESZ-BS XOR mを復号してAliceのメッセージmを取得することができる。
【0467】
その後、AliceとBobは、どちらか一方がセッションを終了するまでセキュアに通信し続けることができる。
【0468】
上記の例示的な方法は、KDSプロバイダによって提供されるセッション鍵を使用して鍵保護及びセキュア通信という同じ目的を達成するために、様々な方法で修正され得る。セッション鍵がAlice及びBobにどのように配信されるかに関する制限なしに、KDSプロバイダが2人のユーザへの他の鍵配信手段、例えば量子鍵配信を用いてもよいことが更に想定される。
【0469】
図27は、第13の実施形態に係るコンピューティング装置1300を示す。コンピューティング装置1300は、ゾーン分離モジュール(ZSM)1352を含む。ZSM1352は、内部データ記憶ユニット(DSU)1336を有するコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1322の形態のデータ処理デバイスと、コントローラ1310及びセレクタスイッチ1346とを含む。
【0470】
コンピューティング装置1300は、内部記憶デバイス1318を有し、外部ネットワーク1312と双方向に接続する非セキュアコンピューティングデバイス(UCD)1316の形態のネットワーク化されたコンピュータシステムと、リムーバブル記憶デバイス1350と、ユーザ入力をセレクタスイッチ1346に送信する周辺入力デバイス1334と、コンピュータ画面及び/又はオーディオデータをコントローラ1310から受信する出力デバイス1302とを更に含む。
【0471】
コンピューティング装置1300は、ネットワーク化されたコンピュータシステムとデータ処理デバイスとの間の第1の通信リンクを更に含み、第1の通信リンクは、データをUCD1316からIPU1322に転送するための第1の一方向リンク1326と、データをIPU1322からUCD1316に転送するための第2の一方向リンク1330とを含む。第1の一方向リンク1326はハードウェア暗号化モジュール1324を含み、第2の一方向リンク1330はハードウェア復号モジュール1328を含む。
【0472】
コンピューティング装置1300は、データ処理デバイスとリムーバブルデータ記憶デバイス1350との間の第2の通信リンクを更に含み、第2の通信リンクは、リムーバブルデータ記憶デバイス1350からIPU1322にデータを転送するための第3の一方向リンク1338と、IPU1322からリムーバブルデータ記憶デバイス1350にデータを転送するための第4の一方向リンク1342とを含む。第3の一方向リンク1338はハードウェア暗号化モジュール1340を含み、第2の一方向リンク1342はハードウェア復号モジュール1344を含む。
【0473】
コンピューティング装置1300は、コンピュータ画面及び/又はオーディオデータをUCD1316からコントローラ1310に転送するための第5の一方向リンク1306と、データをリムーバブル記憶デバイス1350からUCD1316に転送するための第6の一方向リンク1351と、セレクタスイッチ1346からUCD1316への第7の一方向リンク1320と、コンピュータ画面及び/又はオーディオデータを送信するためのIPU1322からコントローラ1310への第8の一方向リンク1308と、ユーザ入力データをIPU1322に送信するためのセレクタスイッチ1346からIPU1322への第9の一方向リンク1332と、を更に含む。
【0474】
ZSM1352は、図示されていない複数の支持サブシステム、構成要素、ケーブル、入出力インタフェースなどを更に含むことができることに留意されたい。
【0475】
記載された実施形態によれば、IPU1322は、周辺入力デバイス1334からユーザ入力を取り込むように構成され、DSU1336は、データのセキュア記憶のためのものであり、コントローラ1310は、コンピュータ画面及び/又はオーディオデータを出力デバイス1302に送信するための出力を選択するためのものであり、セレクタスイッチ1346は、ユーザがZSM1352をアクティブ化及び非アクティブ化し、どのデバイスにユーザ入力を送信するかを決定するためのものである。
【0476】
ZSM1352は、4つの一方向リンク1306、1326、1330、1320を介してユーザのUCD1316に接続される。第5の一方向リンク1306は、UCD1322がコンピュータ画面及び/又はオーディオデータをHDMI(登録商標)、VGAなどのインタフェースを介してコントローラ1310へ送信するためのものである。幾つかの実施形態では、UCD1316は、それ自体の出力デバイスのセットを有してもよく、その場合、第5の一方向リンク1306及びコントローラ1310は省略されてもよい。幾つかの実施形態では、コンピュータ画面及び/又はオーディオデータは、一方向リンク1326及び1308を介してIPU1322を介してコントローラ1310に中継されてもよい。この場合、リンク1306は省略されてもよい。データはハードウェア暗号化器1324によって暗号化されるので、コントローラは、出力デバイス1302に送信する前にデータを復号する必要がある。第7の一方向リンク1320は、ZSM1352が非アクティブ化されたときにユーザがUCD1316に入力を送信するためのものである。幾つかの実施形態では、UCD1316は、それ自体の周辺入力デバイスのセットを有してもよく、その場合、第7の一方向リンク1320及びセレクタスイッチ1346は省略されてもよい。幾つかの実施形態では、ユーザ入力は、一方向リンク1330を介してIPU1322を介してUCD1316に中継されてもよい。この場合、リンク1320は省略されてもよい。第5の一方向リンク1326は、ユーザがUCD1316からIPU1322にデータを転送するためのものである。ハードウェア暗号化器1324は、第5の一方向リンク1326をトラバースする全てのファイル及びデータがIPU1322に入る前に暗号化されるようにする。その結果、UCD1316からのマルウェアは、IPU1322に対して悪意のある行為を行うことができない可能性がある。第2の一方向リンク1330は、ユーザがIPU1322からUCD1316にデータを転送するためのものである。UCD1316内のマルウェアがこのリンクからDSU1336に記憶されたデータにアクセスできないようにするのは一方向である。ハードウェア復号器1328は、データに対して復号を実行することができる。或いは、UCD1316内のソフトウェアを介して復号を行い、ハードウェア復号器1328を省略してもよい。
【0477】
記載された実施形態によれば、DSU1336と、UCD1316及びリムーバブルデータ記憶デバイス1350などの他のデバイスとの間のファイル転送は、ユーザによって開始される。ユーザは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などのリムーバブルデータ記憶デバイス1350をZSM1352に接続する。は、バックアップ又は他の目的のために、DSU1336からリムーバブルデータ記憶デバイス1350にファイルを転送することができる。転送は、第4の一方向リンク1342を介して行なわれる。ハードウェア復号器1344は、ユーザによって指示された場合にファイルを復号することができる。ユーザはまた、第3の一方向リンク1338を介してリムーバブルデータ記憶デバイス1350からDSU1336にファイルを転送することができる。ハードウェア暗号化器1340は、全てのファイルが第3の一方向リンク1338を介してIPU1322に入る前に暗号化されるようにする。リムーバブルデータ記憶デバイス1350とUCD1322とを接続する第6の一方向リンク1351は任意選択である。それはZSM1352の一部ではない。これは、ユーザがIPU1322を通過することなくリムーバブルデータ記憶デバイス1350からUCD1316にファイルを直接転送できるようにするために含まれ得る。しかしながら、高いセキュリティが要求されるユースケースでは、リムーバブルデータ記憶デバイス1350からUCD1316に転送される全てのファイルがIPU1322を通過するように、一方向リンク1351を切断又は除去する必要がある。これは、リムーバブルデータ記憶デバイス1350からのファイル転送が、周辺入力デバイス1334を介して特定の命令を与えることによってユーザによって常に開始されるようにするためである。
【0478】
全ての重要かつ機密データは、マルウェアから保護されたDSU1336に記憶されるべきであることが理解され得る。リムーバブルデータ記憶デバイス1350は、暗号化された形態のデータの携帯用バックアップとして機能することができる(すなわち、ハードウェア復号器1344は、リムーバブルデータ記憶デバイス1350へのデータ転送中にデータを復号すべきではない)。
【0479】
ハードウェア暗号化器1324及び1340、並びにハードウェア復号器1328及び1344は、前述の実施形態に従って実装されてもよい。一方向リンクは、一方向のデータフローを保証し、反対方向のデータフローを禁止する任意の方法で実装され得る。例としては、光リンクを介した光カプラ又は光アイソレータなどのデータダイオードの使用、又はイーサネットを介した一方向UDP、一方向UART、又は任意の独自の一方向データ転送プロトコルの使用が挙げられる。
【0480】
コンピューティング装置1300は、インターネット(すなわち、ネットワーク化されたコンピュータシステム)に直接接続され、インターネットを介してアクセス可能な「非セキュア領域」と、インターネットから分離された「セキュア領域」(リムーバブル記憶デバイス)とに分離されていることを理解すべきである。従来、このような分離は、2つのゾーン間のエアギャップによって実現されている。しかしながら、2つのゾーンにわたるデータ移動を禁止すると、ほとんどの作業環境でエアギャップ方法が実用的でなくなる。幾つかの従来の実装形態では、ユーザは、ポータブルハードディスク又は他の物理データ記憶媒体を使用して、非セキュアゾーンからセキュアゾーンにファイルを手動でコピーすることができる。これは不便であるだけでなく、セキュアゾーンにランサムウェアなどの未知の未検出のマルウェアを導入するリスクがあるため、セキュリティを損なう。
【0481】
対照的に、記載された実施形態に係る手法では、ユーザは、ファイル転送の前又は後にデバイスを物理的に接続又は切断する必要なく、非セキュアセキュアゾーンにわたってファイルをシームレスに転送することができる。DSU1336に暗号化形式で記憶される重要なデータは、未知及び未発見のスパイウェア又はランサムウェアを含むマルウェアから保護することができる。
【0482】
図28は、第14の実施形態に係るコンピューティング装置1400を示す。コンピューティング装置1400は、ローカルエリアネットワーク接続ストレージ(NAS)の形態のゾーン分離モジュール(ZSM)1458を含む。
【0483】
ZSM1458は、内部ストレージ1434を有するコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1422の形態のデータ処理デバイスと、インタフェース1460と、ネットワークインタフェースコントローラ(NIC)1432とを含む。ZSM1458は、NIC1432からIPU1422にデータを転送するための第1の一方向リンク1418、1420と、IPU1422からNIC1431にデータを転送するための第2の一方向リンク1430、1450とを含む、NIC1432とデータ処理デバイスとの間の通信リンクを更に含む。第1の一方向リンク1418、1420はハードウェア暗号化モジュール1408を含み、第2の一方向リンク1430、1450はハードウェア復号モジュール1448を含む。
【0484】
IPU1422は、同様にコンピューティング装置1400に含まれる1つ以上のセキュアデータ記憶デバイス1456と双方向通信する。
【0485】
コンピューティング装置1400は、内部記憶デバイス1436、周辺入力デバイス1440、及び出力デバイスf1402を有する非セキュアコンピューティングデバイス(UCD)1424の形態のネットワーク化されたコンピュータシステムを更に含む。他の非セキュアコンピューティングデバイスは
図28には示されていないが、UCD1424は、コンピューティング装置1400に含まれる幾つかのうちの1つであってもよい。
【0486】
コンピューティング装置1400はまた、NIC1432及びUCD1424(並びに図示されていない他のUCD)の両方と双方向接続する第1のネットワークスイッチ1416を含む。第1のルータもまた、第1のネットワークスイッチ1416及び外部ネットワーク1406と双方向接続しているコンピューティング装置1400に含まれる。
【0487】
NIC1432は、第1のネットワークスイッチ1416を介してUCD1424と双方向接続しており、したがって、第1の一方向リンク1420及び第2の一方向リンク1450は、データ処理デバイスとネットワーク化されたコンピュータシステムとの間の通信リンクの一部を形成することが理解され得る。
【0488】
コンピューティング装置1400は、周辺入力デバイス1440がユーザ入力データをネットワークインタフェース1460に送信するように構成され得る第2のネットワークスイッチ1444を更に含む。ネットワークインタフェース1460は、IPU1422への全てのユーザ入力を中継する。周辺入力デバイス1440は、
図11及び
図12の新しいPIDと同様に設計、構成、及び動作することができる。
【0489】
記載された実施形態では、ユーザは、IPU1422に接続された1つ以上のデータ記憶デバイス1456にデータを安全に記憶することができる。IPU1422はまた、仮想化データストレージに接続されてもよい。リンク1454は、双方向リンクである。ファイルが暗号化形式で転送され記憶される限り、IPU1422とセキュアデータ記憶デバイス1456の両方がマルウェアを含まないままであり得ることを理解すべきである。
【0490】
ネットワークインタフェースコントローラ(NIC)1432は、ZSM1458が第1のネットワークスイッチ1416に接続されることを可能にし、或いは、ZSM1458はローカルエリアネットワーク(LAN)内のルータ1412に直接接続されてもよい。NIC1432と第1のネットワークスイッチ1416との間の接続は、イーサネット又はWi-Fi又は任意の他の適切な通信技術で実施されてもよい。複数のユーザは、このネットワーク接続を介してZSM1458を介してそれぞれのUCD1424と1つ以上のセキュアデータ記憶デバイス1456との間でファイルを転送することができる。例えば周辺入力デバイス1440を介したZSMインタフェース1460へのユーザ入力は、内部ネットワークの一部を形成する第2のネットワークスイッチ1444を介して送信される。内部ネットワーク接続は、Wi-Fi、又はBluetooth、USB、Ethernetなどのような他の有線又は無線通信手段で実施されてもよい。第1のネットワークスイッチ1416はUCD1424から来るマルウェア攻撃を受ける可能性があるので、周辺入力デバイス1440を介したZSM1458へのユーザ入力が第1のネットワークスイッチ1416を介してルーティングされないことが重要である。第1のネットワークスイッチ1416を介してルーティングされた場合、ユーザ入力のセキュリティを損なう可能性がある、外部ネットワーク1406から来るサイバー攻撃の可能性もある。言い換えれば、ユーザ入力データは、マルウェアのない内部ネットワークを介してZSM1458に送信されるべきである。
【0491】
図29は、第15の実施形態に係るコンピューティング装置1500を示す。コンピューティング装置1500は、第14の実施形態のコンピューティング装置1400のZSM1458と同一であるが、モジュールに統合されたルータを有するゾーン分離モジュール(ZSM)1536を含む。
【0492】
ZSM1536は、内部ストレージ1518を有するコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1510の形態のデータ処理デバイスと、ネットワークインタフェース1538と、統合ルータ1516とを含む。統合ルータ1516は、ZSM1536の意図された機能に影響を与えることなく、ネットワークスイッチ又は他の適切なネットワーキングデバイスによって置き換えられてもよいことを理解すべきである。ZSM1536は、統合ルータ1516からIPU1510にデータを転送するための第1の一方向リンク1508と、IPU1510から統合ルータ1516にデータを転送するための第2の一方向リンク1528とを含む、統合ルータ1516とデータ処理デバイスとの間の通信リンクを更に含む。
【0493】
第1の一方向リンク1508はハードウェア暗号化モジュール1502を含み、第2の一方向リンク1528はハードウェア復号モジュール1526を含む。
【0494】
IPU1510は、同様にコンピューティング装置1500に含まれる1つ以上のセキュアデータ記憶デバイス1534と双方向通信する。
【0495】
更に、コンピューティング装置1500は、一例として、それぞれが統合ルータ1516及びネットワークインタフェース1538と双方向に接続されている2つのコンピュータシステム1520を含む。統合ルータはまた、外部ネットワーク1504と双方向接続している。統合ルータ1516に接続されたより多くのコンピュータシステム又はネットワークスイッチ(図示せず)が存在してもよい。
【0496】
統合ルータ1516を介して、第1の一方向リンク1508及び第2の一方向リンク1528は、データ処理デバイスと2つのコンピュータシステム1520のそれぞれとの間の通信リンクの一部を形成することが理解され得る。
【0497】
したがって、複数のユーザは、統合ルータ1516を介して同じZSM1536に接続することができる。第14の実施形態と同様に、コマンドは、内部セキュアチャネル1524及び専用ネットワークインタフェース1538を介して、コンピュータシステム1520の周辺入力デバイスからIPU1510に送信される。これにより、ネットワークインタフェース1538を介してIPU1510に送信されるコマンドがユーザからのものであることが保証される。マルウェアは、2つのコンピュータシステム1520のうちの1つ以上、更には一体型ルータ1516さえもうまく侵害する可能性があるが、セキュアデータ記憶デバイス1534に記憶されたデータにアクセスできない可能性がある。
【0498】
図30は、ZSM1852が2つのネットワーク、すなわち非セキュアゾーンネットワーク1804とセキュアゾーンネットワーク1834との間のブリッジとして機能する、第14及び第15の実施形態と同様の第16の実施形態を示す。ZSM1852には、2つの統合ルータ又はネットワークスイッチ1814、1838がある。第1の統合ルータ又はネットワークスイッチ1814は、非セキュアゾーンネットワーク1804に接続し、第2の統合ルータ又はネットワークスイッチ1838は、セキュアゾーンネットワーク1834に接続する。2つの統合ルータ又はネットワークスイッチ1804、1838のそれぞれからIPU1836への第1のハードウェア暗号化一方向リンクと、IPU1836から2つの統合ルータ又はネットワークスイッチ1804、1838のそれぞれへの第2の一方向リンクとをそれぞれ含む2つのそれぞれの通信リンクも、ZSM1852に含まれる。IPU1836へのユーザ入力は、Wi-Fi、イーサネット、Bluetoothなどの適切な通信方法で実装され得る専用リンク1850及びネットワークインタフェース1824を介して送信される。第14及び第15の実施形態と同様に、セキュアデータ記憶デバイス1848は、ユーザが重要なデータを記憶するためのリンク1846を介してIPU1836に接続される。簡潔にするために、第14及び第15の実施形態で既に説明した機能はここでは繰り返さない。
【0499】
図31は、ZSM1852がネットワーク1900を非セキュアゾーンネットワーク1808とセキュアゾーンネットワーク1834とに分離する第7の実施形態を示す。非セキュアゾーンネットワーク1808とセキュアゾーンネットワーク1834の両方は、従来のファイアウォール1904によって保護された境界内にある。非セキュアゾーンネットワーク1808は、インターネット1902から来るマルウェア及びサイバー攻撃にさらされる可能性があるが、セキュアゾーンネットワーク1834は、ZSM1852の使用によってインターネット1902から隔離されている。
【0500】
セキュアゾーンネットワーク1834では、各ユーザは、パーソナルコンピューティングデバイス(PCD)1906を操作し、双方向通信リンク1846を介してZSM1852のIPU1836に接続されたセキュアデータ記憶デバイス1848に重要なファイルを保存する。開示された発明によれば、ファイルは、復号に必要な鍵と共に暗号化形式で記憶される。セキュアデータ記憶デバイス1848はまた、より良好な管理性のために仮想化されてもよい。
【0501】
2つのゾーン間でファイルを移動させるためのユーザ命令は、専用接続1850を介してZSM1852に送信される。ユーザはまた、インターネット1902にアクセスするために、非セキュアゾーンネットワーク1808に配置されたUCD1908にコマンドを送信する。コマンドは、リンク1808を介してZSM1852を介してUCD1908に中継することができる。UCD1908にコマンドを中継する方法は、
図10、
図11、及び
図12に関連して説明したように、新しいPID、ネットワークスイッチ、及び/又は中継デバイスを使用して、第2の及び第3の実施形態と非常によく似ているので、ここでは繰り返し説明しない。
【0502】
UCD1908からのコンピュータ画面及び/又はオーディオデータは、ZSM1852を介してPCD1906の出力デバイス、例えばモニタディスプレイに配信することができる。例えば、1つの可能な経路は、接続1808、一方向リンク1806、1810、1842、1840を通り、接続1832を通ってもよい。データは、ハードウェア暗号化モジュール1802で暗号化され、ハードウェア復号モジュール1844で復号され得る。このデータをUCD1908の出力デバイスに配信する別の可能な経路は、第13の実施形態で説明した方法に従って適切な修正を行うことによるものであり得る。それらは、簡潔にするためにここでは再度説明されないものとする。
【0503】
非セキュア非セキュアゾーンネットワーク1808及びセキュアゾーンネットワーク1834内の全てのコンピューティングデバイスには、アンチウイルスソフトウェアがインストールされていてもよく、好ましくは、信頼できないファイルには、スパイウェアやランサムウェアなどのマルウェアが含まれる可能性があるため、ユーザは、非セキュアゾーンネットワーク1808からセキュアゾーンネットワーク1834にファイルを転送するときにも注意を払う。それにもかかわらず、開示された発明のおかげで、ランサムウェアによって攻撃された場合、セキュアゾーンネットワーク1834内のセキュアデータ記憶デバイス1848に記憶されている重要なファイルは、攻撃から保護されたままであり得る。また、スパイウェアは、インターネット1902への直接経路を持たないため、セキュアゾーンネットワーク1834からデータを転送することができない可能性がある。開示された発明によれば、ZSM1852からのファイルの移動は、ユーザ入力ネットワーク1850を介して受信されたユーザの同意を必要とする。
【0504】
図32は、第18の実施形態に係るコンピューティング装置1600を示す。コンピューティング装置1600は、クラウドコンピューティング環境においてファイルサーバとして構成されるゾーン分離モジュール(ZSM)1648を含む。
【0505】
ZSM1648は、内部データストレージ1630を有するコンピューティングデバイス(入力処理ユニットIPUとも呼ばれる)1626の形態のデータ処理デバイスと、プライベートコンピューティングユニット(PCU)1638と、統合ルータ1618とを含む。ZSM1648は、統合ルータ1618からIPU1626にデータを転送するための第1の一方向リンク1616と、IPU1626から統合ルータ1618にデータを転送するための第2の一方向リンク1622とを含む、統合ルータ1618とデータ処理デバイスとの間の通信リンクを更に含む。第1の一方向リンク1616はハードウェア暗号化モジュール1610を含み、第2の一方向リンク1622はハードウェア復号モジュール1620を含む。
【0506】
ZSM1648はまた、IPU1626からPCU1638にデータを転送するための第3の一方向リンク1636を含む。第3の一方向リンク1636はハードウェア復号モジュール1634を含む。ソフトウェアを使用してPCU1638で復号を実行することができるため、ハードウェア復号モジュール1634は省略されてもよい。
【0507】
IPU1626は、同様にコンピューティング装置1600に含まれる1つ以上のセキュアデータ記憶デバイス1650と双方向通信する。コンピューティング装置1600にはまた、IPU1626に入力を提供するための周辺入力デバイス1640と、コンピュータプログラムを実行するためのZSM1648の外部にあってもよいプロセッサ1644と、PCU1638からプロセッサ1644にデータを転送するための更なる一方向リンク1646とが含まれる。周辺入力デバイス1640にコマンドを送信するための第5の一方向リンク1642もコンピューティング装置1600に設けられている。コマンドは、接続1624を介してZSM1648によって受信される。
【0508】
更に、コンピューティング装置1600は、一例として、それぞれがインターネット1606を介して統合ルータ1618と双方向にリモート接続している3つのコンピュータシステム1602を含む。
図32に示されていない統合ルータ1618に接続された他のコンピュータシステムが存在してもよいことを理解すべきである。
【0509】
統合ルータ1618を介して、第1の一方向リンク1616及び第2の一方向リンク1622は、データ処理デバイスと3つのコンピュータシステム1602のそれぞれとの間の通信リンクの一部を形成することが理解され得る。
【0510】
したがって、ZSM1648は、地理的に分散した複数のユーザによって遠隔アクセスされ得るように、クラウド内のファイルサーバとして実装される。3つのコンピュータシステム1602のユーザは、ZSM1648にアクセスして暗号化形式のファイルをセキュアデータ記憶デバイス1650に記憶し、必要に応じてそれらを取り出すために、(例えば、
図17に示すように)セキュアシンクライアント(後述する)又はセキュアシッククライアントのいずれかを使用することができる。クライアントは、セキュアシェル(SSH)、トランスポート層セキュリティ(TLS)、IPsecなどの標準的なセキュアプロトコルを利用して、DPM740を使用して実装されるセキュリティプロトコルの上でZSM1648と通信することができる。
【0511】
記載された実施形態では、ZSM1648へのコマンドは、インターネット1606を介して送信される前に、ユーザのコンピューティングデバイス1602で暗号化される。ユーザのコンピューティングデバイス1602でのDPM740の使用は、コマンドをマルウェアから保護することができる。ZSM1648では、統合ルータ1618によって受信された全ての着信データは、一方向リンク1616を介してIPU1626に入る前に、暗号化のためにハードウェア暗号化器1610に向けられる。IPU1626は、将来の監査又は法医学目的のためにハードウェア暗号化器1610によって使用される暗号化コマンド及び暗号鍵を記録する。記憶されるデータは、セキュアデータ記憶デバイス1650に送信されてもよい。内部ストレージ1630から取得された暗号化されたコマンド及び対応する復号鍵は、復号のためにハードウェア復号モジュール1634に送信される。幾つかの実施形態では、ハードウェア復号モジュール1634は省略されてもよく、復号はソフトウェアによってPCU1638内で実行されてもよい。
【0512】
復号されたコマンドは、コマンドを認証するPCU1638に送信され、認証が成功すると、更なる一方向リンク1646を介してコンピュータプログラムを実行する外部プロセッサ1644にそれらを出力する。コマンドを認証して、サイバー犯罪者がセキュアデータ記憶デバイス1650に記憶されたデータを抽出しようとするのを防ぐことが重要である。記載された実施形態によれば、ZSM1648の外部で実行されるコンピュータプログラムは、他の実施形態で説明された人間のユーザに取って代わる。コンピュータプログラムは、実行のためにIPU1626にコマンドを送信する前にコマンドを分析する。コンピュータプログラム1644は、PCU1638から受信したデータに応答してコマンドを送信することができる。コンピュータプログラム1644は、リモートユーザの行動を監視するためにルールベース又はAIベースとすることができ、疑わしいアクティビティを検出した場合にコマンドをブロックすることができる。追加のセキュリティ手段は、PCU1638及び外部プロセッサ1644にインストールされた最新のアンチウイルスソフトウェアを有する、IPU1626で実行可能なコマンドの種類を制限することなどを含むことができる。
【0513】
本明細書に記載の全ての実施形態では、周辺入力デバイスは、システム全体の設計に応じて、ファイル転送などに同意することを含む決定を行う人間又はコンピュータプログラムのいずれかからコマンドを受信することができることを理解すべきである。
【0514】
図33は、ユーザ、例えばコンピュータシステム1602のユーザがリモートサーバ538、例えば第18の実施形態におけるZSM1648で実装されるファイルサーバにアクセスするために使用することができるセキュアシンクライアント528を示す。セキュアシンクライアント528は、リモートサーバ538に送信するコマンドを取り込んで暗号化するIPU520と、受信した仮想デスクトップ画像を復号してモニタなどの出力デバイス502に表示するPCU508とから構成される。この実施形態におけるセキュアシンクライアント528は、UCUを含まないが、インターネット接続532を有するユーザの個人の非セキュアコンピューティングデバイス(UCD)514に接続される。或いは、セキュアシンクライアント528は、インターネット532へのアクセスを可能にするゲートウェイ装置に接続されてもよい。この実施形態では、ユーザは、リモートサーバ538から受信した仮想デスクトップ画像を見ることができるが、ローカルにデータを保存することはできない。したがって、この実施形態ではDSUはない。パスワード保護されたスマートカード、HSMなどのセキュリティトークン504及び518を使用して、ユーザの暗号鍵を記憶することができる。
【0515】
図34は、ユーザAliceが、セキュアシンクライアント528を用いて実装された自身のシンクライアントからリモートサーバ538にセキュアにログインする方法を説明している。
【0516】
ステップ602において、セキュアモード下で、Aliceは、IPU520及びPCU508内のリモートアクセスプログラムを開く。彼女は、キーボード及びマウス526を使用してIPU520にコマンドを入力し、PCU508に接続されたコンピュータ画面502に入力した内容を見る。
【0517】
ステップ604で、Aliceは自分のユーザ名を入力し、「ログイン」ボタンをクリックする。
【0518】
ステップ606において、IPU520は、ユーザ名でAliceのログイン要求をUCD514に送信する。
【0519】
ステップ608において、UCD514は、Aliceの要求メッセージをリモートサーバ538に転送する。
【0520】
ステップ610で、Aliceの要求メッセージを受信すると、リモートサーバ538は、ユーザ名が登録ユーザに対応することの検証に進む。検証に成功すると、リモートサーバ538は、チャレンジ又はノンスを含む応答をUCD514に送信する。幾つかの実施形態では、チャレンジは、2要素認証のためにAliceの携帯電話に送信され得る。このように、本実施形態では、リモートサーバ538が検証器として機能する。
【0521】
ステップ612において、UCD514は、画面502に表示するために、受信したチャレンジをPCU508に転送する。
【0522】
ステップ614において、Aliceは画面502からチャレンジを読み取る。
【0523】
ステップ616において、Aliceは、IPU520に接続されたキーボード及びマウス526を使用して自分のパスワード及びチャレンジを入力し、「送信」をクリックする。幾つかの実施形態では、パスワードは、IPU520の内部記憶装置(図示せず)又はIPUに接続されたセキュリティトークン518に記憶することができる。これらの実施形態では、ユーザは自分のパスワードを手動で入力する必要がない場合がある。
【0524】
ステップ618において、IPU520は、パスワードをハッシュしてハッシュ(password)を取得し、パスワードのハッシュをチャレンジと共にハッシュしてH=hash(hash(パスワード)、チャレンジ)を取得する。IPU520は、ユーザ名及び最終ハッシュHをUCD514に送信する。
【0525】
ステップ620において、UCD514は、メッセージをリモートサーバ538に転送する。
【0526】
ステップ622において、リモートサーバ538は、内部データベースからユーザ名についての記憶されたハッシュ(パスワード)を検索し、H'=hash(hash(パスワード)、チャレンジ)を計算する。
【0527】
ステップ624において、H’がHに等しい場合、リモートサーバ538は、「受諾」メッセージをUCD514に送信する。一方、H’がHに等しくない場合、リモートサーバ538は、「拒否」メッセージをUCD514に送信する。
【0528】
ステップ626において、UCD514は、画面502に表示するために「受け入れ/拒否」メッセージをPCU508に転送する。
【0529】
使用するハッシュアルゴリズムのタイプは予め決められているべきであり、又はIPU520は、リモートサーバ538に送信されるメッセージにこの情報を含めなければならないことに留意されたい。
【0530】
上記のリモートログインプロセスは単なる一例であり、プロセスは様々な方法で変更され得ることが想定される。
【0531】
ユーザがログインに成功した後、リモートサーバ538は、暗号化された仮想デスクトップ画像のUCD514への送信を開始する。UCD514は、画像をPCU508に転送し、PCUで画像が復号されてモニタ画面502に表示される。
【0532】
ユーザは、IPU520にコマンドを打ち込むことによってリモートサーバ538と対話することができる。コマンドは、IPU520内で暗号化され、UCD514に送信され、UCDはそれらをリモートサーバ538に転送する。
【0533】
暗号鍵及び復号鍵は、セキュアシンクライアントをユーザに発行する前に、セキュアシンクライアント528の内部に予めインストールすることができるため、ユーザ及びリモートサーバが鍵交換を実行する必要はない。或いは、鍵は、パスワード保護されたスマートカード、HSMなどのセキュリティトークン504及び518の形態でユーザに提供されてもよい。セキュリティトークンは、より高いセキュリティ保証のために定期的に更新又は更新することができる。
【0534】
図35は、ZSM1752が2つのコンピュータシステム間のブリッジとして機能する、第19の実施形態に係るコンピューティング装置1700を示す。ユーザは、インターネットにアクセスするための1つのUCD1718と、日記の書き込み、個人の写真及びビデオの閲覧、機密レポートの書き込みなどのプライベートなコンピューティング活動のためにインターネットに接続されていない1つのPCD1756とを有することができる。それぞれが、2つのコンピュータシステムのそれぞれからIPU1730へのそれぞれの第1のハードウェア暗号化一方向リンク1728、1744と、IPU1730から2つのコンピュータシステムのそれぞれへのそれぞれの第2の一方向リンク1736、1748とを含む、2つのそれぞれの通信リンク。既に前述したように、好ましくは、ユーザは、個人の日記、写真、ビデオ、レポートなどを含む全ての重要なデータをDSU1732に保存し、マルウェアから保護することができる。この実施形態では、ユーザは、ダウンロードされたコンテンツをUCD1718からPCD1756に転送し、個人データをPCD1756からUCD1718に転送することができる。ハードウェア暗号化器1726及び1746は、IPU1730に入る全てのファイルを暗号化し、それに組み込まれたIPU1730及びDSU1732がマルウェアの脅威を受けないことを保証する。ユーザは、PCD1756の内部ストレージ1760に記憶されたファイルのバックアップのために、又は他の目的のために、リムーバブルデータ記憶デバイス1762をPCD1756に接続することができる。しかしながら、前述したように、PCUは、重要なファイルを内部ストレージ1760又はリムーバブルデータ記憶デバイス1762に記憶しなくてもよい。重要なファイルは、マルウェアから保護され得るDSU1732に記憶されるべきである。IPU1730には、重要なファイルをバックアップするために、専用のバックアップ記憶デバイス(図示せず)を接続することが好ましい。好ましくは、バックアップ・記憶デバイスは、潜在的にマルウェアフリーの状態を維持することを可能にするために、他のコンピュータシステムに接続されていない。
【0535】
PCD1756は、電源が投入されるたびに元の状態又はスナップショットにリセットすることができるように、仮想マシン(VM)を実行することができる。ユーザは、新しいアプリケーションソフトウェアをインストールした後にVMの新しいスナップショットを自由に保存することができる。ユーザが重要なデータをVMに保存しない限り、ランサムウェア攻撃などのマルウェア攻撃からの回復は単純かつ簡単であり得る。第13の実施形態と同様のこの第19の実施形態の他の特徴は、簡潔にするためにここでは繰り返し説明しない。
【0536】
ここで本発明を十分に説明してきたが、特許請求される範囲から逸脱することなく、多くの修正を本明細書に加えることができることは当業者には明らかである。
【手続補正書】
【提出日】2023-07-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1のコンピューティングデバイスと
第2のコンピューティングデバイスとの間でデータを転送するための通信リンクであって、
(i)前記
第1のコンピューティングデバイスから前記
第2のコンピューティングデバイスにデータを転送するための第1の一方向リンクと、
(ii)前記
第2のコンピューティングデバイスから前記
第1のコンピューティングデバイスへデータを転送するための第2の一方向リンクと、
を備え
、
前記第1の一方向リンクは、前記第2のコンピューティングデバイスで受信される前にデータを暗号化するように構成されたハードウェア暗号化デバイスを備え、暗号化されたデータは前記第2のコンピューティングデバイス内で復号化されない、通信リンク。
【請求項2】
前記ハードウェア暗号化デバイスは、前記ハードウェア暗号化デバイスで暗号鍵として使用するため
に、ランダムビットを生成するか、またはランダムビットを前記
第2のコンピューティングデバイスから受信するように構成される、請求項1に記載の通信リンク。
【請求項3】
前記ハードウェア暗号化デバイスは、生成又は受信した暗号鍵を前記
第1のコンピューティングデバイスに提供しないように構成される、請求項
2に記載の通信リンク。
【請求項4】
前記第1の一方向リンクが第1のデータダイオードを更に含み、
前記第2の一方向リンクが第2のデータダイオードを含
み、
前記第1のデータダイオードが、前記第1のコンピューティングデバイスと前記ハードウェア暗号化デバイスとの間に位置している、請求項
3に記載の通信リンク。
【請求項5】
前記第2の一方向リンクは、前記
第1のコンピューティングデバイスで受信される前にデータを復号するためのハードウェア復号デバイスを備え
、
前記第2のデータダイオードは、前記第2のコンピューティングデバイスと前記ハードウェア復号デバイスとの間に位置している、請求項
4に記載の通信リンク。
【請求項6】
少なくとも1つの
第1のコンピューティングデバイスと、
第2のコンピューティングデバイスと、
前記少なくとも1つの
第1のコンピューティングデバイスと前記
第2のコンピューティングデバイスとの間でデータを転送するための請求項1~
5のいずれか一項に記載の少なくとも1つの通信リンクと、
を含むコンピューティング装置。
【請求項7】
前記少なくとも1つの第1のコンピューティングデバイスと前記第2のコンピューティングデバイスは、それらの間の前記少なくとも1つの通信リンクのみ
を介して、通信可能に接続される、請求項
6に記載のコンピューティング装置。
【請求項8】
前記少なくとも1つの
第1のコンピューティングデバイスは、前記少なくとも1つの通信リンクの前記第1の一方向リンクのみを介して、前記少なくとも1つの
第1のコンピューティングデバイスからデータを転送するように構成される、請求項
6に記載のコンピューティング装置。
【請求項9】
前記
第2のコンピューティングデバイスは、前記少なくとも1つの通信リンクの前記第1の一方向リンクを介することを除き、前記
第2のコンピューティングデバイスへ転送されるデータを受信しないように構成される、請求項
6に記載のコンピューティング装置。
【請求項10】
前記少なくとも1つの
第1のコンピューティングデバイスは、前記少なくとも1つの通信リンクの前記第2の一方向リンクのみを介して、前記少なくとも1つの
第1のコンピューティングデバイスへ転送されるデータを受信するように構成される、請求項
6に記載のコンピューティング装置。
【請求項11】
前記第2のコンピューティングデバイスは、その内部コンピュータプログラムまたは1つ以上の周辺入力デバイスからの直接入力を通じて受信された命令に従ってのみ、データ処理動作を実行するように構成される、請求項
6に記載のコンピューティング装置。
【請求項12】
ネットワークインタフェースと、
少なくとも1つの第3の一方向リンクと、
第4の一方向リンクと、を更に備え、
前記少なくとも1つの第3の一方向リンクは、前記ネットワークインタフェースから前記少なくとも1つの第1のコンピューティングデバイスにデータを転送するように構成され、
前記第4の一方向リンクは、前記第2のコンピューティングデバイスから前記ネットワークインタフェースにデータを転送するように構成される、請求項6に記載のコンピューティング装置。
【請求項13】
第3のコンピューティングデバイスを更に備え、
前記第3のコンピューティングデバイスは、前記少なくとも1つの第3の一方向リンクを介して、前記少なくとも1つの第1のコンピューティングデバイスにデータを送信するように構成され、
前記第3のコンピューティングデバイスは、前記第4の一方向リンクを介して、前記第2のコンピューティングデバイスからデータを受信するように構成される、請求項
12に記載のコンピューティング装置。
【請求項14】
前記
第3のコンピューティングデバイスと前記
第2のコンピューティングデバイスとの間に前記第4の一方向リンクのみが設けられ、
前記少なくとも1つの
第1のコンピューティングデバイスと前記
第3のコンピューティングデバイスとの間に前記
少なくとも1つの第3の一方向リンクのみが設けられる、請求項
13に記載のコンピューティング装置。
【請求項15】
前記ネットワークインタフェースは、前記
第3のコンピューティングデバイスと双方向通信す
る、請求項
14に記載のコンピューティング装置。
【請求項16】
前記ネットワークインタフェースは、前記ネットワークインタフェースを介して複数の第4のコンピューティングデバイスが前記第3のコンピューティングデバイスに接続され、前記少なくとも1つの第3の一方向リンクを介して前記少なくとも1つの第1のコンピューティングデバイスにデータを送信し、前記第4の一方向リンクを介して前記第2のコンピューティングデバイスからデータを受信することを可能にするように更に構成される、請求項15に記載のコンピューティング装置。
【請求項17】
前記少なくとも1つの第1のコンピューティングデバイスがイントラネットに接続される、請求項
6に記載のコンピューティング装置。
【請求項18】
請求項
6に記載のコンピューティング装置におけるデータ処理方法であって、
前記少なくとも1つの
第1のコンピューティングデバイス及び前記少なくとも1つの通信リンクのみを介して前記
第2のコンピューティングデバイスで転送されたデータを受信するステップ、
を含むデータ処理方法。
【請求項19】
前記第2のコンピューティングデバイスにおいて、周辺入力デバイスか
ら入力を直接受信するステップを更に含む、請求項
18に記載のデータ処理方法。
【請求項20】
前記少なくとも1つの通信リンクのみを介して、前記少なくとも1つの
第1のコンピューティングデバイスから前記
第2のコンピューティングデバイスのみへデータを転送するステップを更に含む、請求項
19に記載のコンピューティング装置におけるデータ処理方法。
【請求項21】
請求項
13に記載の前記コンピューティング装置を使用したネットワークからのデータ受信方法であって、
前記
第3のコンピューティングデバイスで前記ネットワークからデータを受信するステップと、
前記少なくとも1つの
第1のコンピューティングデバイスにデータを転送するステップと、
前記少なくとも1つの通信リンクを介して前記
第2のコンピューティングデバイスにデータを転送するステップと、
前記
第2のコンピューティングデバイス又は前記
第2のコンピューティングデバイスに接続されるデータ記憶デバイスにデータを記憶するステップと、
を含むデータ受信方法。
【請求項22】
請求項
13に記載の前記コンピューティング装置を使用したネットワークへのデータ送信方法であって、
送信されるべきデータを示
す入力を前記少なくとも1つの
第1のコンピューティングデバイスで受信するステップと、
前記少なくとも1つの通信リンクを介して前記少なくとも1つの
第1のコンピューティングデバイスから前記
第2のコンピューティングデバイスに送信されるべきデータを転送するステップと、
前記
第2のコンピューティングデバイスから前記
第3のコンピューティングデバイスへ送信されるべきデータを転送するステップと、
前記
第3のコンピューティングデバイスから、前記ネットワークに送信されるべきデータを送信するステップと、
を含むデータ送信方法。
【請求項23】
前記少なくとも1つの
第1のコンピューティングデバイスで入力を受信するステップは、前記
第2のコンピューティングデバイスで前
記入力を受信し、それを前記少なくとも1つの
第1のコンピューティングデバイスに中継するステップを含む、請求項
22に記載のデータ送信方法。
【請求項24】
データの意図された受信者の公開鍵及びセッション鍵を前記
第2のコンピューティングデバイスから前記少なくとも1つの
第1のコンピューティングデバイスに送信するステップと、
前記少なくとも1つの
第1のコンピューティングデバイスにおいて、前記セッション鍵を用いて前記送信されるべきデータを暗号化し、前記意図された受信者の前記公開鍵を用いて前記セッション鍵を暗号化するステップと、
送信されるべき暗号化されたデータ及び暗号化されたセッション鍵を、前記少なくとも1つの通信リンクを介して、前記少なくとも1つの
第1のコンピューティングデバイスから前記
第2のコンピューティングデバイスに転送するステップと、
前記
第3のコンピューティングデバイスから、送信されるべき暗号化されたデータ及び暗号化されたセッション鍵を前記ネットワークへ送信するステップと、
を更に含む、請求項
22に記載のデータ送信方法。
【請求項25】
前記
第3のコンピューティングデバイスにおいて、前記少なくとも1つの通信リンクの前記ハードウェア暗号化デバイスによるハードウェア暗号化を除去するステップを更に含む、請求項
24に記載のデータ送信方法。
【請求項26】
前記
第2のコンピューティングデバイスで、送信されるべきデータのハードウェア暗号化を第1の暗号化タイプから第2の暗号化タイプに変換するステップを更に含む、請求項
22に記載のデータ送信方法。
【請求項27】
前記少なくとも1つの
第1のコンピューティングデバイスにおいて、前記送信されるべきデータをタグでラベル付けするステップと、
前記
第2のコンピューティングデバイスにおいて前記送信されるべきデータがどのように処理されるべきかを決定するために前記
第2のコンピューティングデバイスで前記タグを識別するステップと、
を更に含む、請求項
18に記載の方法。
【請求項28】
請求項
6に記載のコンピューティング装置を使用したユーザ認証方法であって、
前記少なくとも1つの
第1のコンピューティングデバイスで検証器からノンスを受信するステップと、
前記少なくとも1つの
第1のコンピューティングデバイスでユーザに前記ノンスを表示するステップと、
ユーザによって前記ノンスが前記
第2のコンピューティングデバイスに入力されるステップと、
前記
第2のコンピューティングデバイスで、前記ノンス及びユーザパスワードを使用して暗号化演算を実行し、前記ユーザの認証のために前記暗号化演算の出力を前記検証器に送信するステップと、
を含むユーザ認証方法。
【請求項29】
ユーザによって、前記
第2のコンピューティングデバイスに前記パスワードが入力されるステップを更に含む、請求項
28に記載のユーザ認証方法。
【請求項30】
前記
第2のコンピューティングデバイスがデータ記憶デバイスを含み、
前記
第2のコンピューティングデバイスにより、前記データ記憶デバイスから前記パスワードを取り出すステップ、
を更に含む、請求項
28に記載のユーザ認証方法。
【請求項31】
ネットワーク化されたコンピュータシステムと、
ユーザコンピュータシステムと、
データ処理デバイスと、
第1の一方向リンクと、
第2の一方向リンクと、
前記ユーザコンピュータシステムと前記データ処理デバイスとの間に位置するハードウェア暗号化デバイスと、
前記ネットワーク化されたコンピュータシステムから前記ユーザコンピュータシステムへデータを転送するための第
3の一方
向リンクと
、
前記データ処理デバイスから前記ネットワーク化されたコンピュータシステムへデータを転送するための第
4の一方
向リンクと、
前記データ処理デバイスと通信接続され
る少なくとも1つの周辺入力デバイスと、
を備え
、
前記ユーザコンピュータシステムからデータを出力する唯一の手段は前記第1の一方向リンクを経由することであり、前記データ処理デバイスへデータを受信する唯一の手段は前記第1の一方向リンクを経由することであり、
前記データ処理デバイスは、前記第2の一方向リンクを介して前記ユーザコンピュータシステムにデータを送信し、
前記ハードウェア暗号化デバイスは、データが前記データ処理デバイスによって受信される前に、前記第1の一方向リンクを通過するすべてのデータを暗号化し、暗号化されたデータは前記データ処理デバイス内では復号化されない、
マルウェアからデータを保護するコンピューティング装置。
【請求項32】
前記データ処理デバイスは、コマンドが前記
少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、前記ユーザコンピュータシステムからデータを受信するように構成される、請求項
31に記載のコンピューティング装置。
【請求項33】
データ処理デバイスは、受信されたデータを暗号化形式で前記データ処理デバイスに記憶するように構成される、請求項
31又は
32に記載のコンピューティング装置。
【請求項34】
前記データ処理デバイスに通信可能に接続される記憶デバイスを更に備え、
前記データ処理デバイスは、前記記憶デバイスに記憶するために、前記データ処理デバイスによって受信されたデータを暗号化形式で前記記憶デバイスに送信するように構成される、請求項
31又は
32に記載のコンピューティング装置。
【請求項35】
前記データ処理デバイスは、更なるコマンドが前記少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、前記データ処理デバイスからデータを転送するように構成される、請求項
31に記載のコンピューティング装置。
【請求項36】
前記データ処理デバイスは、復号鍵転送コマンドが前記少なくとも1つの周辺入力デバイスで受信されることに応じてのみ、前記データ処理デバイスから復号鍵を転送するように構成される、請求項
31に記載のコンピューティング装置。
【請求項37】
前記ユーザコンピュータシステム
は、前記ハードウェア暗号化デバイスが使用する暗号鍵にアクセスできない、請求項
31に記載のコンピューティング装置。
【請求項38】
第1のコンピューティングデバイスと、
第2のコンピューティングデバイスと、
前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとを接続する、請求項1~5のいずれか一項に記載の通信リンクと、を備え、
前記第1のコンピューティングデバイスは、ネットワーク化されたコンピュータである、コンピューティング装置。
【請求項39】
第1のコンピューティングデバイスと第2のコンピューティングデバイスの間でデータを転送するための通信リンクであって、
(i)前記第1のコンピューティングデバイスから前記第2のコンピューティングデバイスにデータを転送するための第1の一方向リンクと、
(ii)前記第2のコンピューティングデバイスから前記第1のコンピューティングデバイスにデータを転送するための第2の一方向リンクと、
を備え、
前記第1の一方向リンクは、前記第2のコンピューティングデバイスで受信される前にデータ変換を実行するように構成されたハードウェア暗号化デバイスを有し、前記第1のコンピューティングデバイスは、データ変換を把握する手段を有さず、かつ、
変換されたデータは、前記第2のコンピューティングデバイス内で反転されない、通信リンク。
【請求項40】
前記第2の一方向リンクは、データが前記第1のコンピューティングデバイスに戻される前にデータ変換を逆転するように構成されたハードウェア復号デバイスを備える、請求項39に記載の通信リンク。
【国際調査報告】