(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-04
(45)【発行日】2024-07-12
(54)【発明の名称】セキュア通信のためのデバイス及び方法
(51)【国際特許分類】
H04L 9/10 20060101AFI20240705BHJP
H04L 9/32 20060101ALI20240705BHJP
G06F 21/60 20130101ALI20240705BHJP
G06F 21/44 20130101ALI20240705BHJP
【FI】
H04L9/10 A
H04L9/32 100C
G06F21/60 360
G06F21/60 320
G06F21/44
(21)【出願番号】P 2022553216
(86)(22)【出願日】2020-11-03
(86)【国際出願番号】 EP2020080729
(87)【国際公開番号】W WO2021094125
(87)【国際公開日】2021-05-20
【審査請求日】2023-11-02
(32)【優先日】2019-11-12
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】590000248
【氏名又は名称】コーニンクレッカ フィリップス エヌ ヴェ
【氏名又は名称原語表記】Koninklijke Philips N.V.
【住所又は居所原語表記】High Tech Campus 52, 5656 AG Eindhoven,Netherlands
(73)【特許権者】
【識別番号】522185689
【氏名又は名称】シュティヒティング フェーウー
(74)【代理人】
【識別番号】110001690
【氏名又は名称】弁理士法人M&Sパートナーズ
(72)【発明者】
【氏名】ボス ヘンドリク ヤープ
(72)【発明者】
【氏名】アタナソポウロス エリアス
(72)【発明者】
【氏名】コノス ラデシュ クリシュナン
(72)【発明者】
【氏名】ラザヴィー ケイヴェ
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2006-072521(JP,A)
【文献】特開2008-123482(JP,A)
【文献】米国特許出願公開第2014/0181533(US,A1)
【文献】米国特許出願公開第2016/0070887(US,A1)
【文献】特開2000-137435(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
H04L 9/32
G06F 21/60
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
サーバと通信する通信インターフェース
回路と、
プロセッサ
回路とを備え
る、暗号デバイスであって、
前記プロセッサ回路は、通常モード及びセキュア・モードを有し、
前記プロセッサ回路が前記セキュア・モードの
とき、データ及びコードが、前記通常モードから隔離され
、
前記データが、少なくとも、
第1の秘密鍵
及び秘密を含み、
前記第1の秘密鍵は、第1の公開鍵に対応し、
前記秘密は、ユーザと共有され、
前記プロセッサ回路が前記通常モード
のとき、第1のソフトウェアが実行され
、
前記プロセッサ回路が前記通常モードのとき、前記第1のソフトウェアが
、暗号化されたメッセージ及び暗号化された認証タグを前記サーバから受信
し、
前記暗号化されたメッセージ及び暗号化された認証タグが
、前記第1の公開鍵で暗号化
され、
前記プロセッサ回路が前記通常モードのとき、前記第1のソフトウェアが、前記暗号化されたメッセージ及び暗号化された認証タグを第2のソフトウェアに転送
し、
前記プロセッサ回路が前記セキュア・モード
のとき、前記第2のソフトウェアが実行され、
前記プロセッサ回路が前記セキュア・モードのとき、前記第2のソフトウェアが
、前記暗号化されたメッセージ及び暗号化された認証タグを
、前記第1の秘密鍵で復号
し、
前記第1の秘密鍵は、前記セキュア・モードのデータ内に格納され、
前記プロセッサ回路が前記セキュア・モードのとき、前記第2のソフトウェアが、前記暗号化されたメッセージが前記セキュア・モードで動くソフトウェアによって表示されていることを前記ユーザに示すために、
前記共有された秘密、並びに前記暗号化されたメッセージ及び復号された前記認証タグ
を表示し、
旧式のソフトウェアが、前記暗号デバイスの入力インターフェースを通じて前記
復号された認証タグを前記ユーザから受信
する、暗号デバイス。
【請求項2】
前記暗号デバイスが、前記サーバへの認証を行い
、
前記旧式のソフトウェアが
、前記サーバ
に認証メッセージを送
り、
前記認証メッセージが、前記サーバへの前記暗号デバイスの認証を行うために、前記復号された認証タグに応じる、請求項1に記載の暗号デバイス。
【請求項3】
前記暗号化されたメッセージ
及び暗号化された認証タグ
が、より大きいメッセージの一部であり、
前記第2のソフトウェアが
、前記メッセージへの応答を
前記ユーザから取得
する、請求項
1に記載の暗号デバイス。
【請求項4】
前記暗号デバイスのブート・コードが、初期化ブート・シーケンス中に、前記共有された秘密を前記ユーザから受信する、請求項
1に記載の暗号デバイス。
【請求項5】
ディスプレイが、
第1のフレーム・バッファから動作され
、
前記第1のフレーム・バッファが、前記通常モードからアクセス可能であり、
前記ディスプレイが、第2のフレーム・バッファから動作され
、
前記第2のフレーム・バッファが、前記通常モードではなく前記セキュア・モードからアクセス可能である、請求項
1に記載の暗号デバイス。
【請求項6】
SMSメッセージが前記暗号化された認証タグ
を含み、
前記第1のソフトウェアが、前記SMSメッセージを傍受し
、
前記第1のソフトウェアが、前記SMSメッセージを前記第2のソフトウェアに転送し
、
前記第2のソフトウェアが、
前記復号された認証タグを前記ユーザに提供する、請求項
1に記載の暗号デバイス。
【請求項7】
前記第2のソフトウェアが、前記
第1の公開鍵及び
前記第1の秘密鍵を生成
し、
前記第2のソフトウェアが、前記セキュア・モードのデータ内に前記
第1の秘密鍵を格納
し、
前記第2のソフトウェアが、前記
第1の公開鍵を前記第1のソフトウェアに送
り、
前記第1のソフトウェアが、前記
第1の公開鍵を前記サーバに送
り、
前記第1のソフトウェアが、前記第1の公開鍵
及び前記共有された秘密を表示
し、
前記第1の公開鍵が、光学可読フォーマットで表示される、請求項
1に記載の暗号デバイス。
【請求項8】
前記第1のソフトウェア及び/又は前記第2のソフトウェアが、前記サーバへの認証を完了させる前に
、さらなる認証要素
を前記ユーザから受信する、請求項
1に記載の暗号デバイス。
【請求項9】
前記第1のソフトウェアが、トランザクション・リクエストを前記サーバに送
り、
前記第1のソフトウェアが、前記トランザクション・リクエストに応答して、前記暗号化された認証タグを受信
する、請求項
1に記載の暗号デバイス。
【請求項10】
前記メッセージが、前記リクエストに依存する、請求項9に記載の暗号デバイス。
【請求項11】
前記暗号デバイスが、視覚指標を備え
、
前記視覚指標は、ディスプレイのコンテンツが前記セキュア・モードから生じたかどうかを示す、請求項
1に記載の暗号デバイス。
【請求項12】
通常モードで動くソフトウェア
の少なくとも一部は、前記メッセージがディスプレイに表示されたときに、前記メッセージを上書きすることができない、請求項
1に記載の暗号デバイス。
【請求項13】
通常モードで動くソフトウェア
の少なくとも一部は、前記メッセージを画面がキャプチャすること
を妨げられる、請求項
1に記載の暗号デバイス。
【請求項14】
前記第1のソフトウェアが
、前記暗号化されたメッセージを受信し
、
前記暗号化されたメッセージが署名され、
署名
された前記メッセージが、
第2の秘密鍵で署名され
、
前記第2の秘密鍵が、前記サーバに属し、
前記第2のソフトウェアが、
第2の公開鍵を使用して、
前記署名されたメッセージの前記署名を検証
し、
前記第2の公開鍵が、前記サーバの前記第2の秘密鍵に対応する、請求項1に記載の暗号デバイス。
【請求項15】
プロセッサ回路の通常モードで第1のソフトウェアを実行するステップであって
、
前記プロセッサ
回路が、前記通常モード及びセキュア・モード
を有し、
前記プロセッサ回路が前記セキュア・モード
のとき、データ及びコードが、前記通常モードから隔離され
、
前記データが、少なくとも、
第1の秘密鍵
及び秘密を含み
、
前記秘密が、ユーザと共有され、
前記通常モードで前記第1のソフトウェアを実行するステップが
、
暗号化されたメッセージ及び暗号化された認証タグ
をサーバから受信するステップであって
、
前記暗号化されたメッセージ及び暗号化された認証タグが
、第1の公開鍵で暗号化され
、
前記第1の公開鍵が、前記第1の秘密鍵に対応する、受信するステップと、
前記暗号化されたメッセージ及び暗号化された認証タグを第2のソフトウェアに転送するステップと
を有する、
前記通常モードで前記第1のソフトウェアを実行するステップと、
前記セキュア・モードで第2のソフトウェアを実行するステップであって
、
前記暗号化されたメッセージ及び暗号化された認証タグを
、前記第1の秘密鍵で復号するステップ
であって、前記第1の秘密鍵が、前記セキュア・モードのデータ内に格納される、復号するステップと、
前記暗号化されたメッセージが前記セキュア・モードで動くソフトウェアによって表示されていることを前記ユーザに示すために、
前記共有された秘密、並びに前記暗号化されたメッセージ及び前記復号された認証タグ
を表示するステップであって
、旧式のソフトウェアが、入力インターフェースを通じて前記
復号された認証タグを前記ユーザから受信する、表示するステップと
を有する、
前記セキュア・モードで前記第2のソフトウェアを実行するステップと
を有する、暗号方法。
【請求項16】
プロセッサ・システムによって実行されると、
プロセッサ回路の通常モードで第1のソフトウェアを実行することであって、
前記プロセッサ回路が、前記通常モード及びセキュア・モードを有し、
前記プロセッサ回路が前記セキュア・モードのとき、データ及びコードが、前記通常モードから隔離され、
前記データが、少なくとも、第1の秘密鍵及び秘密を含み、
前記秘密が、ユーザと共有され、
前記通常モードで前記第1のソフトウェアを実行することが、
暗号化されたメッセージ及び暗号化された認証タグをサーバから受信することであって、
前記暗号化されたメッセージ及び暗号化された認証タグが、第1の公開鍵で暗号化され、
前記第1の公開鍵が、前記第1の秘密鍵に対応する、受信することと、
前記暗号化されたメッセージ及び暗号化された認証タグを第2のソフトウェアに転送することと
を有する、前記通常モードで前記第1のソフトウェアを実行することと、
前記セキュア・モードで第2のソフトウェアを実行することであって、
前記暗号化されたメッセージ及び暗号化された認証タグを、前記第1の秘密鍵で復号することであって、前記第1の秘密鍵が、前記セキュア・モードのデータ内に格納される、復号することと、
前記暗号化されたメッセージが前記セキュア・モードで動くソフトウェアによって表示されていることを前記ユーザに示すために、前記共有された秘密、並びに前記暗号化されたメッセージ及び前記復号された認証タグを表示することであって、旧式のソフトウェアが、入力インターフェースを通じて前記復号された認証タグを前記ユーザから受信する、表示することと
を有する、前記セキュア・モードで前記第2のソフトウェアを実行することと
を有する動作を、前記プロセッサ・システムに実施させる
コンピュータ実行可能な命令を
含む、非一時的コンピュータ可読媒体。
【請求項17】
前記サーバへの認証を行うステップをさらに有し、
前記旧式のソフトウェアが、前記サーバに認証メッセージを送り、
前記認証メッセージが、前記サーバへの暗号デバイスの認証を行うために、前記復号された認証タグに応じる、請求項15に記載の方法。
【請求項18】
前記暗号化されたメッセージ及び暗号化された認証タグが、より大きいメッセージの一部であり、
前記第2のソフトウェアが、前記メッセージへの応答を前記ユーザから取得する、請求項15に記載の方法。
【請求項19】
暗号デバイスのブート・コードが、初期化ブート・シーケンス中に、前記共有された秘密を前記ユーザから受信する、請求項15に記載の方法。
【請求項20】
前記第2のソフトウェアが、前記第1の公開鍵及び前記第1の秘密鍵を生成し、
前記第2のソフトウェアが、前記セキュア・モードのデータ内に前記第1の秘密鍵を格納し、
前記第2のソフトウェアが、前記第1の公開鍵を前記第1のソフトウェアに送り、
前記第1のソフトウェアが、前記第1の公開鍵を前記サーバに送り、又は、前記第1のソフトウェアが、前記第1の公開鍵及び前記共有された秘密を表示し、
前記第1の公開鍵が、光学可読フォーマットで表示される、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の主題は、サーバとのセキュア通信のために構成された暗号デバイス、サーバとのセキュア通信のための暗号方法、及び一時的又は非一時的コンピュータ可読媒体に関する。
【背景技術】
【0002】
ますます多くのトランザクションがインターネット上で実施されるにつれて、これらのトランザクションをセキュアにする重要性が、さらにより重要になる。この問題に対処するために、いくつかのソリューションが提案されてきた。例えば、インターネット上のセキュアなトランザクションが、しばしば、2要素認証(2FA:two-factor authentication)に依存する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
セキュアなオンライン・バンキング及び支払いサービスのための今日の2要素認証(2FA)方式は、しばしば、初期認証又はその後のトランザクション検証中に、第2の要素のためにスマートフォンを使用する。結果として、このようなソリューションは攻撃に対して脆弱であり、弱いセキュリティ保証しかもたらさない。具体的には、攻撃者は、場合によってはカーネルを含む電話を危険にさらし、第2の要素を破る。これは、モバイルオンリーの銀行取引サービスについて当てはまるが、例えばPCなどの、別個のデバイスを使用してトランザクションを開始するソリューションについても当てはまる。例えば、攻撃は、既存のソフトウェアの弱さを活用すること、危険にさらされたソフトウェアをインストールするようにユーザを納得させること、ウイルス、及び同様のものによって開始される。
【0004】
ユーザは、その銀行サービスを使用するため、製品を購入するため、又は旅行を手配するために、もっぱらモバイル・アプリケーションにますます依存する。スマートフォンを通じたウェブベースの支払いサービスを使用することは、ユーザが、(パーソナル・コンピュータへのアクセスができないときでさえ)いつどこでも、これらのサービスに直ちにアクセスできるので、利便性をもたらす。それでも、このような利便性は、2FAによって提供されるセキュリティ保証に対する代償になる。具体的には、2FAは、しばしば、詐欺的なトランザクションを開始するために両方の要素を危険にさらす必要があるので、2つの要素が他の影響を受けず、隔離されていることを想定するが、攻撃者が、例えばモバイル・フォンを使用して、2FAを破るために潜在的に脆弱なスマートフォンを危険にさらす必要しかないので、この想定は、しばしば、スマートフォンなどの単一のデバイスが両方の要素に対応するとき、当てはまらない。要素間の弱い分離は、1つの要素が危険にさらされた場合、これが、全ての要素を破るのに十分であることを意味する。
【0005】
PCが開始したトランザクションであっても、モバイル・デバイスについてのルート特権を攻撃者が取得すると、安全ではない。この場合、攻撃者は、モバイル・アプリに取って代わるか、モバイル・アプリを改ざんすること、メッセージを傍受すること、及び誤解させる情報を表示することができる。
【0006】
残念ながら、電話とPCとが物理的に分離していたとしても、デバイスはしばしば無関係ではないので、特に、スマートフォンを危険にさらすことは、危険にさらされたPCを考慮すると、現実的な脅威である。驚いたことに、今日の電話ベースの2FAが実際には弱いという十分な証拠にもかかわらず、これは、少しも解決された問題ではない。
【0007】
先進的なソリューションでさえ、攻撃者がルート・アクセス権を取得し、カーネル及び/又は対応するアプリを感染させる、完全に危険にさらされた電話を除く、限定的な脅威モデルに焦点を合わせる傾向がある。2FAが、しばしば高額なやりとり(例えば銀行取引)で使用され、システム全体を危険にさらすことが、一般的に発生していることを考えれば、このような限定的な脅威モデルは不十分である。例えば、攻撃者が気付かれずにユーザ又はサーバの代わりにトランザクションを開始するのを防ぐために、トランザクションの信憑性を改善することが望まれる。
【0008】
実際には、問題はしばしば、2つの要素間の分離の欠如から始まるが、強い分離があったとしても、他の等しく基本的な問題がある。具体的には、無視されてきたセキュア通信の態様は、例えば、交換又は表示されたメッセージの内容を攻撃者が修正するのを防ぐ、トランザクション整合性の態様である。完全なトランザクション認証を用いたとしても、システムは、トランザクション整合性が弱いと、依然として危険にさらされる。例えば、攻撃者は、誤解させる情報をディスプレイに表示して、トランザクションの整合性を破ることによって、ユーザのトランザクションを乗っ取る。
【課題を解決するための手段】
【0009】
デバイスとサーバとの間のセキュア通信を改善することが有利である。
【0010】
トランザクション認証及び整合性の両方を改善するための1つのやり方は、通常モード及びセキュア・モードで構成されたプロセッサ・システムを使用することである。セキュア・モードのデータ及びコードは、通常モードから隔離される。秘密鍵がセキュア・データ部分に格納された場合、対応する公開鍵で暗号化されたサーバから到着したメッセージは、秘密鍵で、及びソフトウェアがセキュア・モードを動かしていることによる暗示のみによって、復号することしかできない。これは、通信のセキュリティを改善することになるが、問題が残る。例えば、デバイスの通常部分を危険にさらした攻撃者は、ユーザに見える情報を制御することができる。例えば、攻撃者は、ユーザがトランザクションBに同意していると思っていたとしても、トランザクションAを実施することをサーバに求めることができる。例えば、画面上のメッセージは、ユーザが、例えば本をオンラインで買っていることをユーザに示すが、実際には、またユーザには知られずに、ユーザは資金を攻撃者に振り込んでいる。
【0011】
実施形態において、セキュア・モードでのみアクセスされることが可能なデバイスに格納されたデータは、例えば、サーバから来たメッセージを復号するための、秘密鍵を含むだけでなく、データは、例えば、セキュア・モードのソフトウェアとユーザとの間で共有される秘密などの、共有された秘密を含む。
【0012】
共有された秘密を設定することは、エンロールメント・フェーズで実施される。例えば、デバイスは、例えばデバイスを最初にスタートさせるときなど、例えばデバイスを初期化するときに、ユーザが共有された秘密を設定できるように構成される。エンロールメント・フェーズは、第2のモードのソフトウェアが最初にインストールされた、又は最初に構成された等のときにも実施される。
【0013】
共有された秘密は、例えば単語又は句などの、テキストを含むことができ、共有メッセージは、画像を含むことができる。例えば、ユーザは、例えばタッチ・スクリーン上の仮想キーボードなどの、例えばキーボード上で、テキストをタイプする。例えば、ユーザは、例えば自撮り、自分の家の写真、自分の猫の写真等など、デバイスのカメラで画像を撮影する。
【0014】
例えば使用フェーズ中など、後で、暗号化されたメッセージがサーバから受信されたとき、セキュア・モードのソフトウェアは、メッセージを復号し、共有された秘密と一緒にメッセージを表示することができる。共有された秘密は、ユーザとセキュア・モードのソフトウェアにしか知られていないので、これは、メッセージがセキュア・モードのソフトウェアによって表示されていることをユーザに示す。
【0015】
通常モードのソフトウェアを危険にさらした攻撃者は、共有された秘密を示すことができない。したがって、整合性が向上される。サーバからユーザにメッセージを配信するためのこのデバイス、方法、又はシステムは、例えば銀行振込などの、トランザクションのコンテキスト内で使用されることが可能であるが、トランザクション以外でも、使用されることが可能である。例えば、メッセージは情報に富んでいる。メッセージは、サーバによってプッシュされる。例えば、メッセージは、ユーザが、新しい銀行カードを手に入れること、新しい病院予約を設定すること、又は同様のものを行う必要があることをユーザに知らせる。メッセージは共有された秘密と一緒に表示されるので、ユーザは、メッセージに対する信頼を高めた。
【0016】
メッセージが移送される形式、及びメッセージが表示される形式は、同じである必要はない。例えば、メッセージは圧縮されてもよく、メタデータを有してもよく、同様のものでよいが、示されるメッセージは圧縮されていないか、そのメタデータが取り除かれていてもよい。
【0017】
メッセージの暗号化は、メッセージの署名、又は他の認証要素と組み合わされるのが好ましい。例えば、セキュア・モードのソフトウェアは、メッセージを復号し、メッセージの署名を検証する。したがって、メッセージが示されると、ユーザは、メッセージが、セキュアなソフトウェアによって復号されたことだけでなく、検証されたことについても信頼を高める。例えば、セキュア・モードは、1つ又は複数の証明書にアクセスして署名を検証する。証明書は、セキュア・モードのデータ内に格納されるが、これは必要ではなく、証明書は、通常モードであるか、メッセージで受信されてもよい。
【0018】
トランザクションで使用されるとき、例えば、セキュア通信は、ユーザを認証するために使用される。これは、認証のみであってもよいが、例えば、資格証明書、バイオメトリック、及び同様のものなど、他の認証要素と組み合わされてもよい。例えば、暗号化された認証タグが、例えば暗号化されたメッセージと一緒に、受信されてもよい。暗号化された認証タグはまた、例えば、メッセージのために使用されるものと同じ鍵、又は異なる鍵など、セキュア・モードのデータ内の秘密鍵を使用して、例えば第2のソフトウェアなど、セキュア・モードのソフトウェアによって復号されてもよい。認証タグは、メッセージに含まれてもよい。後者には、1つの復号しか必要ではないという長所がある。暗号化されたタグ及び暗号化されたメッセージはまた、2つの異なる通信であってもよい。
【0019】
トランザクションは、暗号デバイス上で開始されるが、これは、必要ではないことに留意されたい。トランザクションは、例えばブラウジング・セッションの一部として、例えばPC上でも、開始されることが可能である。例えば、ユーザは、例えば製品又はサービスに対する支払いのために、銀行振込を行うことを望み、インターネットで、例えば銀行など、サーバへのメッセージをPCに送らせる。サーバは、例えば開始デバイスとは異なるデバイスなどの、暗号デバイスに、例えばPCとは異なるモバイル・フォンに、暗号化されたタグ及び/又は暗号化されたメッセージを送ることによって応答する。
【0020】
例えば第2のソフトウェアなどの、セキュア・モードのソフトウェアは、認証タグを復号するように構成される。暗号デバイスを認証するために、暗号デバイスが復号鍵を知っていることを証明するために、認証タグに応じた応答をサーバに送るように構成される。これは、いくつかのやり方で行われることが可能である。
【0021】
第1に、応答は、いくつかのやり方でタグに依存する。応答は、タグ自体、タグのハッシュ、タグに対する暗号化、タグに対する署名、タグに対するmacなどを、場合によっては任意の組合せで、含む。サーバが応答を受信したとき、サーバは、サーバがデバイスに送ったタグと応答との関係を検証することができる。関係が検証されると、これにより、応答の発信者がタグを知っていたこと、及びしたがって、暗号化されたタグを復号するための秘密鍵を知っていたことについての信頼を高める。応答は、メッセージのハッシュも含む。
【0022】
第2に、応答を作り出すための様々なやり方がある。例えば、応答は、セキュア・モードのソフトウェアによって少なくとも部分的に計算される。セキュア・モードのソフトウェアは、次に、応答を通常モードのソフトウェアにエクスポートすることができる。例えば、応答は、通常モードのソフトウェアに平文(plain)でエクスポートされ、通常モードのソフトウェアは、次に、応答を少なくとも部分的に計算することができる。平文のタグをエクスポートすることは、通常モードのソフトウェアが危険にさらされていたとしても、攻撃につながる必要はないことに留意されたい。攻撃者は、本当のタグを転送することをしないこともある、本当のタグを修正することをしないこともある、等であるが、攻撃者は、メッセージがユーザによって見られるのを回避することができない。したがって、サーバは、タグが何のためのものであるか、例えば何のためのトランザクションであるか、例えば何のための銀行振込であるかを、ユーザに知らせる。ユーザがこの振込を望まない場合、ユーザは、タグがエクスポートされるのを止めることができる。サーバは、暗号化されたタグを発送した後、リクエストへの変更ができないように構成されることが可能である。タグの平文の移送を回避することが望まれる場合、タグは、セキュア・モードから通常モードに変わる前に、例えば鍵で、例えばサーバの公開鍵で、暗号化されることが可能である。
【0023】
復号から応答の計算へのタグの移送を内部でハンドリングする代わりに、デバイスはまた、ユーザを通じてタグを移送する。例えば、復号されたタグは、共有された秘密と一緒に、及び任意選択として、サーバからのメッセージと一緒に、ディスプレイに表示される。ユーザは、セキュア・モードのソフトウェアが共有された秘密を認識するので、タグがセキュア・モードのソフトウェアから来ていることを知っている。ユーザは、次に、タグを使用して応答を計算する他のいくつかのソフトウェアに、タグを入力することができる。他のソフトウェアは、同じデバイス上で動く通常モードのソフトウェア、又は、ことによると、例えばトランザクションを開始するために使用されるPCなどの、例えばPCなどの、異なるデバイス上で動くソフトウェアである。ユーザを使用してタグを移送することは、旧式のソフトウェアにとってセキュリティ改善をもたらすのに特に有利である。
【0024】
タグは、例えば、ランダムな80ビット・シーケンス、128ビット、256ビット、又はそれ以上若しくはそれ以下等の、任意のデジタル・シーケンスである。タグがユーザによって移送されることになる場合、移送を簡単にするために、文字のシーケンス、ディジット、1つ又は複数の単語等を選択することが有利である。
【0025】
通常モード及びセキュア・モードは、独自の通常の及びセキュアなオペレーティング・システム、並びに/又は独自の通常の及びセキュアなアプリを動かす、ハードウェアが施行する隔離環境である。既存技術は、例えば、ARM TrustZoneなど、通常モード及びセキュア・モードを作り出すために使用されることが可能である。
【0026】
様々な実施形態のプロトタイプが作り出され、テストされてきた。具体的には、「SecurePay」と呼ばれる実施形態が、10個の既存のアプリ内に統合された。発明者は、所定の位置にあるセキュア・モードのソフトウェアによる、例えば既存の銀行取引アプリへの変更など、既存のアプリへの変更が最低限だったことに気づいた。変更は、典型的には、SMS又は同様のものからではなく、例えば、セキュア・モードからのインターフェースから、既存のアプリがOTPを受け入れるようにするための、既存のアプリのほんの小さい部分への修正を必要とした。その上、コード修正が、例えば許可されない場合など、可能でない場合、SecurePayの実施形態は、既存のSMSベースの2FAソリューションのセキュアなドロップインの代用品として、依然として使用されることがある。例えば、ドロップインの実施形態は、SMSを傍受し、復号されたタグをユーザに提供する。復号されたタグは、ユーザによって入力され、旧式アプリは、復号されたタグがセキュア・モードのソフトウェアによって復号されたことに気づかない。
【0027】
SecurePayの実施形態などの実施形態は、モバイル・デバイスの利便性を維持しつつ、全ての通常モードのソフトウェアが危険にさらされたデバイスの存在下であっても、セキュリティをもたらす。実施形態において、例えば第2の要素をハンドリングするための機能など、SecurePay機能の部分だけが、セキュア・モードでの実施を必要とする一方で、残りは、通常モード部分であることが可能であることに留意されたい。実際に、完全に機能的だが、正式の検証を可能にするのに十分小さい、セキュア・モードのアプリケーションを作り出すことが可能であることを証明した。
【0028】
実施形態は、モバイルのみのトランザクションに、及び、第2の要素のためだけに機能するモバイル・デバイスを用いてパーソナル・コンピュータ上で開始されたトランザクションに、適用する。実施形態において、暗号デバイスはモバイル・フォンではないが、それでも電子デバイスである。
【0029】
本開示の主題の態様は、暗号化ではなく、署名を使用したセキュア通信に関する。例えば、認証又は2FAのためのタグと共に必ずしも使用されないメッセージングの実施形態において、暗号化より署名を使用することが好ましい。暗号化と一緒に署名も使用する。暗号化のための本明細書で与えられる実装形態の例は、例えばサーバから受信したメッセージ及び/又はタグのために、署名を使用した、又は、暗号化を伴う署名を使用した実施形態に適用される。
【0030】
暗号デバイスは、電子デバイスである。例えば、暗号デバイスは、コンピュータである。暗号デバイスは、例えばモバイル・フォンなどの、モバイル電子デバイスである。暗号デバイスは、例えば、セット・トップ・ボックス、テレビ等の、家電である。
【0031】
本明細書で説明されるセキュア通信方法は、広範な実用的用途において適用される。このような実用的用途は、例えば金融又は医学情報などの機密情報の移送、例えば金融取引又は医療予約などのトランザクションの認証、等を含む。
【0032】
さらなる態様は、サーバとのセキュア通信のための暗号方法である。サーバは、コンピュータである。方法の実施形態は、コンピュータ実施方法としてコンピュータ上で、若しくは専用ハードウェアにおいて、又は両方の組合せにおいて実施される。方法の実施形態のための実行可能コードは、コンピュータ・プログラム製品に格納される。コンピュータ・プログラム製品の例は、メモリ・デバイス、光ストレージ・デバイス、集積回路、サーバ、オンライン・ソフトウェア等を含む。コンピュータ・プログラム製品は、前記プログラム製品がコンピュータ上で実行されたとき、方法の実施形態を実施するための、コンピュータ可読媒体に格納された非一時的プログラム・コードを備えるのが好ましい。
【0033】
実施形態において、コンピュータ・プログラムは、コンピュータ・プログラムがコンピュータ上で動かされるとき、方法の実施形態のステップの全て又は一部を実施するように適合されたコンピュータ・プログラム・コードを備える。コンピュータ・プログラムは、コンピュータ可読媒体上に含まれるのが好ましい。
【0034】
本開示の主題の別の態様は、コンピュータ・プログラムをダウンロードするのに利用可能にする方法である。この態様は、コンピュータ・プログラムが、例えば、AppleのApp Store、GoogleのPlay Store、又はMicrosoftのWindows Storeにアップロードされるとき、及び、コンピュータ・プログラムが、このようなストアからダウンロードするのに利用可能なとき、使用される。
【0035】
さらなる詳細、態様、及び実施形態が、図面を参照しながら、例としてのみ説明される。図における要素は、簡略化及び明瞭さのために示されており、必ずしも拡大縮小するように描かれていない。図において、既に説明された要素に対応する要素は、同じ参照番号を有する。
【図面の簡単な説明】
【0036】
【
図1】通信システムの実施形態の例を概略的に示す図である。
【
図2a】暗号デバイスの実施形態の例を概略的に示す図である。
【
図2b】暗号デバイスの実施形態の例を概略的に示す図である。
【
図2c】暗号デバイスの実施形態の例を概略的に示す図である。
【
図3a】暗号デバイスの実施形態の例を概略的に示す図である。
【
図3b】暗号デバイスの実施形態の例を概略的に示す図である。
【
図3c】暗号デバイスの実施形態の例を概略的に示す図である。
【
図4a】認証方法の実施形態の例を概略的に示す図である。
【
図4b】認証方法の実施形態の例を概略的に示す図である。
【
図5】暗号方法の実施形態の例を概略的に示す図である。
【
図6a】実施形態による、コンピュータ・プログラムを備える書込み可能部分を有するコンピュータ可読媒体を概略的に示す図である。
【
図6b】実施形態による、プロセッサ・システムの表現を概略的に示す図である。
【発明を実施するための形態】
【0037】
図1~
図3c、
図6a~
図6bにおける参照番号のリスト
100 通信システム
110 暗号デバイス
120 コンピュータ・ネットワーク
130、170 プロセッサ・システム
140、180 メモリ
150、190 通信インターフェース
160 サーバ
200~202 暗号デバイス
210 通信インターフェース
211 暗号化されたメッセージ
212 暗号化されたタグ
213 応答メッセージ
220 第1のソフトウェア
231、232 通常モード/セキュア・モード・インターフェース
241 秘密鍵
243 公開鍵
242 暗号処理ユニット
244 応答器
250 ディスプレイ生成器
251 共有された秘密
270 共通ハードウェア
271 ディスプレイ
272 入力デバイス
273 タグ
291 通常モード
292 セキュア・モード
300 暗号デバイス
311 ディスプレイ
312 入力ボタン
314 共有された秘密
315 メッセージ
316 タグ
317 受け入れボタン
318 公開鍵
1000 コンピュータ可読媒体
1010 書込み可能部分
1020 コンピュータ・プログラム
1110 集積回路
1120 処理ユニット
1122 メモリ
1124 専用集積回路
1126 通信要素
1130 相互接続
1140 プロセッサ・システム
【0038】
本開示の主題は、多くの異なる形の実施形態が可能であるが、本開示が、本開示の主題の原理の例示とみなされるべきであり、示され、説明される特有の実施形態に本開示を限定することを意図しないという理解の下に、1つ又は複数の特有の実施形態が図面に示され、本明細書で詳細に説明される。
【0039】
以下では、理解のために、実施形態の要素が、動作で説明される。それでも、それぞれの要素が、それぞれの要素によって実施されるものとして説明される機能を実施するように配置されることが明らかであろう。
【0040】
さらに、本開示の主題は、実施形態だけに限定されるのではなく、本明細書で説明された、又は相互に異なる従属請求項に列挙された、特徴のあらゆる組合せも含む。
【0041】
図1は、通信システム100の実施形態の例を概略的に示す。通信システム100は、暗号デバイス110及びサーバ160を備える。
【0042】
実施形態において、例えばデバイス110のユーザのために、サーバ160がメッセージをデバイス110に送ることが望まれる。例えば、メッセージは、機密であり、例えば金融若しくは医療問題に関し、又はメッセージは、セキュリティ関連のものであり、例えば、サーバ160に対してデバイス110若しくはそのユーザを認証するのに必要とされる。それでも、デバイス110が危険にさらされると、ユーザは、例えばデバイス110上で動く不正なソフトウェアによって、何らかのメッセージをディスプレイに示されるが、ユーザは、メッセージがサーバ160から生じていると考える。従来のハードウェアは、例えば、セキュリティ動作を非セキュリティ動作から分離するために通常モード及びセキュア・モードを有するハードウェアなどの、そうでなければ非常にセキュアなハードウェアでさえ、この問題に脆弱である。
【0043】
暗号デバイス110は、プロセッサ・システム130、メモリ140、及び通信インターフェース150を備える。サーバ160は、プロセッサ・システム170、メモリ180、及び通信インターフェース190を備える。システム110及び/又は160は、互いに、外部ストレージ、入力デバイス、出力デバイス、及び/又は1つ若しくは複数のセンサと、コンピュータ・ネットワーク120で通信する。コンピュータ・ネットワークは、インターネット、イントラネット、LAN、WLAN等である。コンピュータ・ネットワークは、インターネットである。システムは、システム内で、又はシステム外で、必要に応じて通信するために配置された接続インターフェースを備える。例えば、接続インターフェースは、例えば、イーサネット・コネクタ、光コネクタ等の、例えば有線コネクタ、又は、例えば、Wi-Fi、4G若しくは5Gアンテナなどの、例えばアンテナなどの、ワイヤレス・コネクタなどの、コネクタを備える。
【0044】
コンピュータ・ネットワーク120は、例えば、ルータ、ハブ等の、追加の要素を備えるが、これらの要素は、
図1に別々に示されていない。デバイス160において、通信インターフェース190は、例えば、1つ若しくは複数の暗号化されたメッセージをデバイス110に送るために、及び/又は、1つ若しくは複数の暗号化された応答をデバイス110から受信するために、使用される。デバイス110において、通信インターフェース150は、例えば、1つ若しくは複数の暗号化されたメッセージをサーバ160から受信するために、及び/又は、1つ若しくは複数の暗号化された応答をサーバ160に送るために、使用される。通信インターフェースは、暗号化されないメッセージ等を送るためにも使用される。メッセージは、例えば電子形式で受信される、デジタル・メッセージである。
【0045】
デバイス110及び160の実行は、例えばマイクロプロセッサなどの、例えば1つ又は複数のプロセッサ回路などの、プロセッサ・システムにおいて実施され、この例が本明細書に示されている。
図2a~
図2cは、デバイス110のプロセッサ・システムの機能ユニットである機能ユニットを示す。例えば、これらの図は、プロセッサ・システムの可能な機能編成の青写真として使用される。プロセッサ回路は、これらの図におけるユニットから分離して示されていない。例えば、
図2a~
図2cに示された機能ユニットは、例えばデバイス110の電子メモリ内など、デバイス110において格納され、デバイス110のマイクロプロセッサによって実行可能な、コンピュータ命令に全面的又は部分的に実装される。ハイブリッドの実施形態では、機能ユニットは、例えば暗号コプロセッサなどの、例えばコプロセッサとして、ハードウェア内に部分的に、また、デバイス110上で格納され、実行されるソフトウェア内に部分的に、提供される。
【0046】
図2aは、暗号デバイス200の実施形態の例を概略的に示す。例えば、デバイス200は、デバイス110などのデバイス上に提供される。デバイス200は、サーバとのセキュア通信のために構成される。サーバは、
図2aに示されていない。例えば、サーバは、サーバ160である。
【0047】
例えば、実施形態において、サーバは、暗号デバイスとのセキュア通信のために構成され、サーバは、デバイスと通信するように構成された通信インターフェース、暗号デバイスの秘密鍵に対応する公開鍵を格納するように構成されたキー・ストレージ、並びに、暗号デバイスのためのメッセージを生成すること、デバイスの公開鍵と共に存在するメッセージを暗号化すること、及び、暗号化されたメッセージをサーバからデバイスに送ることを行うように構成されたプロセッサ・システムを備える。
【0048】
デバイス200の実施形態において、サーバから送られた暗号化されたメッセージは、メッセージが、デバイス200のセキュア・モードによって表示されており、したがって、表示されているメッセージが、攻撃の結果としてデバイス200上で動いている不正なソフトウェアによって危険にさらされている可能性が低いという信頼度を、デバイス200のユーザが高めるように表示される。より一般的に言えば、例えば、署名、MAC、及び同様のものの検証などの、整合性の保護、又は、例えば復号などの、機密性の保護である、第2のソフトウェアの暗号処理の結果として、いくつかのコンテンツのために達成される任意の暗号保証が、これが、本明細書で説明されるように、共有された秘密と一緒に表示されている間、コンテンツに拡大される。
【0049】
デバイス200、及び具体的には、デバイス200のプロセッサ・システムは、通常モード及びセキュア・モードで構成される。通常モード及びセキュア・モードは、時には通常世界及びセキュア世界(並びに時には簡略化のために、第1のモード及び第2のモード)と呼ばれる。通常モードは、例えば、ユーザ・アプリケーション、ゲーム、及び同様のものなど、あまりクリティカルでないソフトウェアを動かすために使用される。セキュア・モードは、例えば秘密鍵などの秘密情報を扱うソフトウェアなど、よりクリティカルなソフトウェアを動かすために使用される。例えば、復号又は署名動作は、セキュア・モードで実施される。いくつかのアプリケーションは、大部分、通常モードで実施されるが、部分的に、秘密モードの構成要素に依存する。例えば、銀行取引アプリケーションは、大部分、通常モードで動くが、トランザクションを実施する必要があるとき、セキュア・モードで動く部分に依存する。
【0050】
図2aに示された図において、通常モード及びセキュア・モードの区画が、垂直の断続線で示されている。左にセキュア・モード292が示され、右に通常モード291が示されている。セキュア・モードで実施される動作がセキュア側292に描写され、その一方で、通常モードで実施される動作が通常側291に描写されている。通常モードで動いているソフトウェアは、第1のソフトウェアと呼ばれ、その一方で、セキュア・モードで動いているソフトウェアは、第2のソフトウェアと呼ばれる。セキュア・モードは、信頼できる実行環境(TEE:trusted execution environment)とも呼ばれる。
【0051】
セキュア・モードのデータ及びコードは、通常モードから隔離される。例えば、セキュア・モードで、秘密鍵241及び共有された秘密251が格納される。これは、通常モードで動いている第1のソフトウェアが、このデータにアクセスできないことを意味する。セキュア・モードで動いているソフトウェアは、このデータにアクセスすることができる。
【0052】
秘密鍵241は、サーバが利用可能な暗号デバイスの公開鍵に対応する。例えば、サーバからのメッセージは、公開鍵で暗号化される。秘密鍵241と公開鍵は一緒に、いわゆる、公開鍵/秘密鍵ペアを形成する。
【0053】
共有された秘密を設定することは、エンロールメント・フェーズで実施される。例えば、デバイスは、例えばデバイスを最初にスタートさせるときなど、例えばデバイスを初期化するときに、ユーザが共有された秘密を設定できるように構成される。エンロールメント・フェーズは、第2のモードのソフトウェアが、最初にインストールされるか、最初に構成されるときにも実施される。後者は、デバイスの第1の使用より後であり、場合によっては、ずっと後である。仮にデバイスがその時、既に危険にさらされていた場合、示されるメッセージは、まだ信頼することができず、ユーザが、自分の共有された秘密をセキュア・モードのソフトウェアに入力していると思っているとき、実際には、攻撃者のソフトウェアに入力している。それでも、これにはまだ、デバイスが後で危険にさらされたとしても、デバイスがその時危険にさらされていなければ、メッセージを信頼することができるという長所がある。一般的に言えば、エンロールメント・フェーズが、信頼できる、例えば初期の、例えば初期化された、デバイス状態に近ければ近いほど、メッセージの信頼が良くなる。しかし、システムのインストールは、それでも、これまで以上に後で行われる方が良い。
【0054】
通常モードで第1のソフトウェアが実行され、セキュア・モードで第2のソフトウェアが実行される。通常モードからセキュア・モードに、又は逆にセキュア・モードから通常モードに情報を渡すために、インターフェースがインストールされる。例えば、
図2aは、通常モード・インターフェース231及びセキュア・モード・インターフェース232を示し、これを通じて、メッセージが、一方のモードからもう一方のモードに渡される。様々なアクセス制約、又は制御が、これらのインターフェース上で課される。例えば、第1のソフトウェアは、第2のソフトウェアが第2のソフトウェア・データを通常モードに渡すためにインターフェース上に置く場合を除いて、第2のソフトウェア・データにアクセスすることができない。例えば、通常モードからセキュア・モードに渡されたコードは、例えばデバイス200の製造業者などの、適切な権威者の秘密鍵で署名された場合にしか実行されない。例えば、インターフェース231及び232は、セキュア・モードと通常モードで等しくアクセスされることが可能なメモリによって形成される。
【0055】
セキュア・モードは、ハードウェアが施行する隔離環境であることが好ましい。例えば、通常モード及びセキュア・モードは、ハードウェア・ビットを反転させることが、データ・アクセス権を変化させ、必要に応じて制御を第1又は第2のソフトウェアに変えるように構成された、前記ビットを使用して実施される。例えば、デバイス200は、例えば前記ビットがセキュア・ポジションにある場合、セキュア・モードでしかアクセスできない電子メモリを有する。例えば、デバイス200の第1のオペレーティング・システムが通常モードで動き、デバイス200の第2のオペレーティング・システムがセキュア・モードで動く。
【0056】
コード及びデータは、デバイス200において厳密に分離されるが、これらの2つのモードで動くソフトウェアは、それでも、同じハードウェアにアクセスするか、部分的にアクセスする。
図2aは、通常モードのソフトウェア及びセキュア・モードのソフトウェアによって使用される共通ハードウェア270を示す。例えば、共通ハードウェア270は、ディスプレイ271を備える。第1のモードのソフトウェアと第2のモードのソフトウェアの両方が、ディスプレイ271上に表示することができる。それでも、共通ハードウェアは、2つのモードの間にバックチャネルを形成しないように遮蔽される。例えば、通常モードで動くソフトウェアは、第2のソフトウェアによるメッセージの表示を画面がキャプチャすることからブロックされる。同様に、通常モードで動くソフトウェアは、第2のソフトウェアが動いている間、ディスプレイ上に重ね合わせることからブロックされる。例えば、実施形態において、ディスプレイは、通常モードからアクセス可能なフレーム・バッファから、及び、通常モードではなくセキュア・モードからアクセス可能なフレーム・バッファから、動作される。このようにして、セキュア・モードは、必要に応じて、ディスプレイへのアクセスを無効にすることができる。
【0057】
通常モードで動くソフトウェアによってアクセスされ得る、セキュア・モードで動くソフトウェアによって利用されるリソースに残されたどのような情報も、システムが通常モードに戻る前に、例えば、共有された秘密、メッセージの内容などの、機密情報から消去される。例えば、単一のフレーム・バッファがディスプレイを駆動するために使用され、セキュアなソフトウェアがセキュア・モードで動いている間、通常のソフトウェアがフレーム・バッファにアクセスすることからブロックされると仮定する。ディスプレイを使用して、例えば共有された秘密及びメッセージを示した後、フレーム・バッファは、システムが通常モードに戻る前にクリアされ、具体的には、共有された秘密、メッセージ、及び/又はタグが削除される。
【0058】
当技術分野において、セキュア・モード、セキュア・モードのソフトウェア、及び同様のものの多くの例が知られており、信頼できる実行環境(TEE)と呼ばれることもある。TEEは、例えばスマートフォン又は同様のデバイスの、オペレーティング・システムと同時に動くセキュアな実行環境である。いくつかのハードウェア・ベンダが、Intel Identity Protection Technology、Intel Software Guard eXtension、ARM TrustZone等といった、異なるハードウェア支援のTEEを導入してきた。具体的には、実施形態は、TrustZone上でプロトタイプ作成され、テストされてきた。TrustZoneベースのTEEは、多くのデバイスによってサポートされる。例えば、従来、TEEは、モバイル・デバイスの通常モードのオペレーティング・システム上で動く信頼できないアプリケーションに、セキュリティ・サービスを提供する信頼できるアプリケーションを管理する。例えば、セキュア・モードで動く信頼できるアプリケーションの作成のためのAPIを提供する。
【0059】
TEEは、例えばARM TrustZoneにおけるように、通常世界及びセキュア世界といった2つの実行ドメインを、システムが並列に動かすことを可能にすることによって提供される。システムの現在の状態は、セキュア構成レジスタの非セキュア(NS:Non Secure)ビットの値によって判定される。セキュア・ドメインは、CPUレジスタ、メモリ、及び周辺機器のような全てのハードウェア・リソースにアクセスできるように特権的であるが、通常ドメインは制限される。モニタと呼ばれる追加のCPUモードがあり、これは、2つのドメイン間の、例えばインターフェースなどの、ゲートキーパとして機能する。このモニタ・モードも、NSビットのステータスに関わらず、特権的である。同様に、メモリ・アドレス空間は領域に分割され、領域は、例えば、TrustZone Address Space Controllerを使用して、セキュア又は非セキュアとマークされる。周辺機器は、例えば、TrustZone Protection controllerをプログラムすることによって、セキュア世界にアクセス可能とマークされる。
【0060】
通常世界からセキュア世界に切り替えるために、システムは、Secure Monitor Call(SMC)を実行することによって、モニタ・モードに最初に切り替える。これは、一方の世界から他方の世界に切り替えることが許可されるべきかどうかを、モニタ・モードが検証することを可能にする。リクエストが有効であると判定されると、システムは、NSビットを適宜修正し、世界の切替えを完了させる。
【0061】
図2aは、サーバと通信するように構成された通信インターフェース210を示す。メッセージは、暗号化されてもされなくても、サーバとデバイス200との間で伝えることができる。インターフェース210は、コンピュータ・ネットワーク・インターフェースである。インターフェース210は、通常モードで動作し、したがって、そのコンテンツは危険にさらされると想定しなければならない。暗号化されたメッセージ211は、サーバから受信される。暗号化されたメッセージ211は、暗号デバイスの公開鍵で暗号化される。これは、暗号化されたメッセージ211が、公開鍵に対応する秘密鍵で、つまり秘密鍵241で、復号されることのみ可能であることを意味する。秘密鍵241はセキュア・モードでのみアクセス可能なので、攻撃者は、暗号化されたメッセージ211を復号できないと想定する。それでも、メッセージ211復号する代わりに、攻撃者はまた、メッセージ211の本当のコンテンツに対応しない情報を表示することによって、デバイス200のユーザを誤解させようとする。それでも、デバイス200は、このタイプの詐欺に対する対抗策も有する。
【0062】
暗号化に加えて、メッセージ211は、いくつかの他のやり方で暗号学的に保護されることに留意されたい。例えば、メッセージ211は、例えばサーバの秘密鍵で、例えばサーバによって署名することによって、又は、例えば暗号化中に、メッセージ認証コードを含めることによって、整合性が保護される。
【0063】
第1のソフトウェア220は、例えば第1のモードなど、通常モードで動く。第1のソフトウェア220は、例えば第2のモードなどの、セキュア・モードで動く第2のソフトウェアに、暗号化されたメッセージ211を転送するように構成される。例えば、メッセージ211は、インターフェース231/232を通じて伝えられる。
【0064】
第2のソフトウェアの種々の構成要素が、
図2aの左に示されている。例えば、暗号処理ユニット242は、例えば第2のソフトウェアに備わる、セキュア・モードで動く。暗号処理ユニット242は、復号又は検証動作などの暗号化動作を実施するように構成される。暗号処理ユニットなどは、例えば暗号ライブラリなどの、ソフトウェアを使用して、又は、少なくとも部分的に、例えば暗号コプロセッサを使用して、ハードウェアで、実施される。
【0065】
暗号処理ユニット242は、暗号化されたメッセージ211を秘密鍵241で復号するように構成される。秘密鍵241は、第1のソフトウェア220が鍵241にアクセスできないように、セキュア・モードのデータ内に格納される。例えば、復号アルゴリズムは、例えば、RSA秘密鍵復号、楕円曲線秘密鍵復号、又は同様のものなどの、非対称復号アルゴリズムである。
【0066】
暗号化されたメッセージ211はまた、例えばサーバの秘密鍵で、署名される。暗号処理ユニット242は、公開鍵243でメッセージ211の署名を検証するように構成される。公開鍵243は、サーバの秘密鍵に対応する。公開鍵243は、第1のソフトウェア220が鍵241にアクセスできないように、したがって、どのように検証が実施されるかに影響を与えることができないように、セキュア・モードのデータ内に格納される。セキュア・モードのデータ内に公開鍵243が格納される必要はないが、公開鍵243は、代わりに通常世界に格納されるか、メッセージ211と一緒に受信される。後者の2つのケースにおいて、公開鍵243の信憑性についてのいくつかのチェックは、公開鍵243に対して暗号ユニット242によって実施され、例えば、鍵243がその一部である証明書チェーンを検証する。証明書チェーンのルートは、セキュア・モードのデータ内に格納される。例えば、署名検証アルゴリズムは、例えば、RSA公開鍵検証、楕円曲線公開鍵復号、又は同様のものなどの非対称アルゴリズムである。
【0067】
公開鍵243を使用するべきか、及び署名を検証するべきか、若しくは、秘密鍵241を使用するべきか、及びメッセージを復号するべきかどうか、又は、公開鍵243及び秘密鍵241の両方を使用して署名を検証するべきか、及びメッセージを復号するべきかどうかは、アプリケーションに依存する。様々な例が下記に示され、様々な実施形態に適用される。
【0068】
メッセージ211が復号された後、ディスプレイ生成器は、表示コンテンツを作り出し、これをディスプレイ271に送る。例えば、表示コンテンツは、メッセージを含むが、共有された秘密251も含む。秘密鍵241のように、共有された秘密251も、セキュア・モードのデータ内に格納され、したがって、例えば第1のソフトウェアなどの、通常モードのソフトウェアは、これにアクセスできない。共有された秘密は、ユーザと共有される秘密である。ユーザが秘密を見ると、ユーザは、ディスプレイが、セキュア・モードで動くソフトウェアによってもたらされたことを知る。不正なソフトウェアは、通常モードよりセキュア・モードに入り込む可能性がはるかに高いので、これは、ユーザが見ている表示コンテンツが、例えば第1のソフトウェアではなく第2のソフトウェアによって生成されたものであるなど、例えば権限付与されたソフトウェアによって生成されたものであるなど、信頼できるものとして、ユーザの信頼を高める。
【0069】
第1のソフトウェアが、ディスプレイに書き込むことはできないが、第2のソフトウェアによって、例えば動作されるなど、確保されるようにデバイス200が構成されるのが好ましい。同様に、第2のソフトウェアは、共有された秘密251を取得するためにディスプレイから読み込むことができない。
【0070】
例えば、ユーザが、例えば、自分の銀行、自分の医者、自分の夫若しくは妻、又は同様のものからの指示と一緒に自分の共有された秘密251を見ると、ユーザは、前記メッセージが第2のソフトウェアによって表示されたことを知り、これは、前記メッセージが秘密鍵241によって復号されたことを意味し、これは、通常モードで動作する攻撃者が、メッセージを読んでいないはずであることを意味する。同様に、メッセージの署名が検証されると、メッセージを見ているユーザは、検証する公開鍵に対応する秘密鍵を知っていた人によってメッセージが本当に署名されたこと、例えば、メッセージがおそらく正式なものであることを保証されることが可能である。例えば鍵243などの、検証する公開鍵は、セキュア・モードのデータ内に格納されるが、例えば1つ又は複数の証明書の形で、通常世界から同様に受信される。
【0071】
第2のソフトウェアは、表示コンテンツ内のメッセージの暗号ステータス、例えば、メッセージが暗号化及び/又は署名されるべきだったか否か、並びに誰によって暗号化及び/又は署名されるべきだったかを、表示するように構成される。
【0072】
暗号化及び/又は署名されたメッセージを暗号デバイスに送る機能をサーバが実施するので、サーバはこのように呼ばれる。サーバは、典型的には、スタンドアロン・コンピュータを備えるが、例えば別の電話などの、モバイル・デバイスにおいて提供される。この場合、デバイスとサーバは、デバイスとサーバの役割を交互にしつつ、互いにメッセージを送ることができる。
【0073】
図3a及び
図3bは、例示的な暗号デバイスを示す。共有された秘密314及びメッセージ315がディスプレイに示される。(タグ316及びボタン317は任意選択であり、本明細書のほかの場所で論じられる。)
【0074】
図2aに戻る。例として、共有された秘密は、例えばユーザによって以前にタイプされた、又は、例えばランダムに選択されたなど、ユーザのために選択された、秘密のテキストである。共有された秘密は、例えばユーザに以前に示された、画像である。画像は、例えば、三角形、円、及び同様のものなどの、例えば画像要素を近くにランダムに位置付けることによって、ランダムに生成される。例えば、画像は、デバイス200のカメラによってキャプチャされる。例えば、カメラは共通ハードウェアの一部であるが、それでも、例えば一時的な制御など、第2のソフトウェアを制御している。例えば、ユーザは、共有された秘密として、例えば自分の庭又はバルコニーなど、自撮り又はランドマークの画像等を撮影する。共有された秘密は、ユーザと第2のソフトウェアにだけ知られているのが好ましい。
【0075】
実施形態において、デバイス200のブート・コードは、ブート・シーケンスの初期化中に、ユーザから共有された秘密を受信するように構成される。例えば、共有された秘密は、デバイスが初期状態にあると想定されるとき、第1のブート時に、又は完全なシステム・リセット時に、TEEにロードされる。信頼できるコードだけが秘密を知っているので、ユーザは、デバイスが画像及び/又はテキストを画面に表示すると、信頼できるコードが制御状態にあり、他のコードが動いていないことを知る。通常世界に制御を返す直前に、第2のソフトウェアは、第1のモードのソフトウェアがメモリにアクセスできる場合、メモリから共有された秘密を削除する。
【0076】
秘密鍵241及びその対応する公開鍵は、セキュア・モードで動く第2のソフトウェアによって生成される。例えば秘密鍵241などの、秘密鍵は、セキュア・モードのデータ内に格納される。公開鍵は、第1のソフトウェアに送られ、第1のソフトウェアは、公開鍵をサーバに送るように構成される。
【0077】
実施形態において、公開鍵は、例えば共有された秘密と一緒にコンピュータ光学可読フォーマットで、代わりに又は同様に、ディスプレイに表示される。光学可読フォーマットは、QRコード(登録商標)である。これには、示されたQRコード(登録商標)が、本当にこの秘密鍵に対応する公開鍵であることを、権威者より前にユーザが検証できるという長所がある。これには、例えば銀行などの、権威者がだまされて、攻撃者の鍵がユーザの鍵であると思うはずがないという長所がある。
【0078】
図3cは、例を示す。秘密鍵241に対応する公開鍵をエンコードしたQRコード(登録商標)318が示されている。共有された秘密314も示されている。共有された秘密は、例えばセキュア世界においてなど、セキュア・モードにおいてのみアクセス可能なデータ部分内にしか格納されないので、この画面は、通常モードのコードによって表示されるはずがなく、通常モードのコードが危険にさらされていたとしても、表示されない。デバイス300のユーザは、共有された秘密314を検証し、画面をスキャンすることができる。このようにして、ユーザは、例えば銀行などの、権威者をスキャナが記録することになる公開鍵が、例えば秘密鍵241など、ユーザ自身の秘密鍵に本当に対応する公開鍵であり、攻撃者の鍵ではないことを保証される。
【0079】
実施形態において、ユーザは、共有された秘密を開示しないように、画面をスキャンする前に秘密314を削除すること、例えばスワイプすることができる。
【0080】
実施形態において、第1のソフトウェア220は、例えば銀行振込のリクエストなど、サーバへのリクエストを行う。返信として、サーバは、暗号化されたメッセージを送る。例えば、暗号化されたメッセージは、リクエストに依存する。例えば、リクエストは、例えば銀行振込の額及び/又は意図される受け手などの、リクエストの概要を含む。例えば、リクエストは、病院予約のリクエストであることがある。メッセージは、この場合、リクエストに関する情報、又は病院の空き具合に関する情報も含むことがある。
【0081】
例えば、第1のソフトウェア220は、トランザクション・リクエストをサーバ送ること、及び、トランザクション・リクエストに応答して、暗号化された認証タグ212を受信することを行うように構成される。
【0082】
実施形態において、デバイス200は、ディスプレイのコンテンツがセキュア・モードから生じたかどうかを示すように構成された、例えばLEDなどの、さらなる視覚指標を備える。例えば、デバイスがセキュア・モードに切り替わると、指標はオンになる。これは、共有された秘密に加えて、又はことによるとその代わりに、使用されることが可能である。デバイス200は、第1のソフトウェアが視覚指標を制御できないように構成される。
【0083】
図2bは、暗号デバイス201の実施形態の例を概略的に示し、デバイスは、それ自体のサーバへの認証を行う。暗号デバイスは、したがって、「認証デバイス」と称される。デバイス201は、いくつかの追加について具体的に示される場合を除いて、デバイス200と同じである。
【0084】
デバイス201は、さらに、又はメッセージの代わりに、暗号化された認証タグ212をサーバから受信するように構成される。暗号化された認証タグは、暗号デバイスの公開鍵で暗号化される。これは、秘密鍵241に対応する同じ公開鍵であるが、異なる鍵でもよい。例えば、デバイス201は、メッセージの秘密鍵241、及び異なるタグの秘密鍵を備えることがある。
【0085】
それでも、暗号化された認証タグも、通常モードからセキュア・モードに送られ、ここで、暗号化された認証タグは、暗号処理ユニット242によって復号される。応答器は、復号されたタグ244を使用して、応答メッセージを生成する。例えば、応答メッセージは、(例えばサーバの公開鍵など、異なる鍵で)復号されたタグ、復号されたタグのハッシュ、復号されたタグに対する署名、又は復号されたタブの暗号化を含む。応答213は、次に、通常モードに、及びそこからサーバに送り返される。サーバが応答メッセージ213を受信すると、サーバは、応答メッセージの生成器が、復号されたタグ、及びしたがって、例えば鍵241などの、タグの秘密鍵を、知っていたと推測することができる。このことから、サーバは、メッセージが正しいデバイスに到着したこと、及びメッセージがディスプレイに示されたということについても、その信頼を高めることができる。
【0086】
例えば、実施形態において、セキュア・モードのデータは、サーバの公開鍵を含む。第2のソフトウェアは、サーバの公開鍵で認証タグを暗号化するように構成される。例えば、実施形態において、第2のソフトウェアは、例えば鍵241などの、第2のソフトウェアの秘密鍵で認証タグを署名するように構成される。署名は、第1のソフトウェアによっても行われることがあるが、例えば通常モードで格納された異なる秘密鍵などの、異なる鍵で行われる。
【0087】
応答器244は、任意選択として、入力デバイス272から入力を受信する。入力デバイス272は、ボタン、キー、キーボード、タッチ・スクリーン、マウス、ポインタ等である。入力デバイスを用いてユーザは、自分がメッセージを読んだこと、又は自分がメッセージに同意したことを示すことができる。例えば、ユーザは、自分がメッセージ内に示されたトランザクションに同意したことを示す。
図3bは、タッチ・ディスプレイに表示された受け入れボタン317を示す。ボタン317をタッチすることによって、ユーザは、自分がトランザクションを受け入れたことを示す。ディスプレイは、拒絶又はキャンセル・ボタンも備える。例えば受入れ又は拒絶ボタンなどの、タッチ・スクリーン・ボタンの代わりに、例えば機械式ボタン312など、他の入力デバイスが使用されてもよい。
【0088】
暗号化されたメッセージは、暗号化された認証タグと協働して受信される、例えば両方がより大きいメッセージの一部である、例えばこれらは連続している、等である。これらは、必ずしも同じソースから生じる必要はないが、これが典型的である。タグ及びメッセージは、場合によっては署名と共に、同じ暗号化されたメッセージ内にある。
【0089】
第2のソフトウェアがメッセージを表示し、表示されたメッセージに対するデバイス201のユーザからの応答を取得すると、認証タグが、応答に応じて、第1のソフトウェアに送られる。後者は平文であるが、例えば機密のために暗号化されることなど、暗号で保護されるように行われることが好ましい。
【0090】
タグ及び/又はメッセージは、サーバへの応答メッセージのために使用される通信チャネルとは異なる通信チャネルで受信される。例えば、実施形態において、暗号化された認証タグ及び/又はメッセージは、例えばSMSなどの、第1のタイプのコンピュータ通信インターフェースで受信され、認証メッセージは、第1のタイプとは異なる、例えばインターネットなどの、第2のタイプのコンピュータ通信インターフェースで送られる。タグは、乱数、ノンス、又は同様のものを備える。
【0091】
デバイス201において、復号されたタグ、又は復号されたタグから計算されたデータは、例えばインターフェース231/232などの、例えば認証タグを含むメッセージの形の、デバイス201の内部のソフトウェア・インターフェースで、第1のソフトウェアに送られることに留意されたい。
【0092】
実施形態において、メッセージ213は、2要素認証方式における1つの要素である。例えば、第1のソフトウェア及び/又は第2のソフトウェアは、サーバへの認証を完了させる前に、例えば資格証明書又はバイオメトリックなどの、さらなる認証要素を、認証デバイスのユーザから受信するように構成される。さらなる資格証明書等が、同様に又はその代わりに、サーバへの応答メッセージに含まれてよい。
【0093】
図2cは、暗号デバイス202の実施形態の例を概略的に示す。デバイス202は、タグが第1のソフトウェアに転送されるやり方を除いて、デバイス201と同じである。
【0094】
デバイス202において、例えばディスプレイ生成器250などの、第2のソフトウェアは、認証タグをディスプレイに表示するように構成される。応答器は、ここで任意選択であり、例えばメッセージ及び/又はタグの表示を終了させるために、使用される。
【0095】
ユーザは、今、表示されたタグ273を第1のソフトウェアに入力することを期待されている。このシナリオでは、暗号化されたタグ212を受信するソフトウェアと、復号されたタグを使用するソフトウェアとが、異なることに留意されたい。例えば、第1のソフトウェアは、例えば入力デバイス272などの、デバイス202の入力インターフェースを通じて、ユーザからの認証タグを受信するように構成される。例えば、第2のソフトウェアは、
図3aのタグ316のような、復号されたタグを表示する。例えばさらなる第1のソフトウェアなどの、さらなるソフトウェアが、サーバからの入力としてタグを受信し、これを使用して、例えばサーバへの、認証を行ってもよい。さらなるソフトウェアは、PC上又は暗号デバイス上で動く。
【0096】
デバイス202は、旧式のソフトウェアで作業するのに特に有用である。例として、例えば銀行取引ソフトウェアなどの、既存のソフトウェアがインストールされた、既存のモバイル・フォンを考える。ソフトウェアは、ソフトウェアがSMSメッセージを通じて受信した認証タグ内に、ユーザがタイプすることを期待する。システムをより高いセキュリティにアップグレードするために、タグは、暗号化されたタグを入力する代わりに、暗号化されて送られ、例えばSMSメッセージ全体など、暗号化されたタグが第2のソフトウェアに転送され、第2のソフトウェアで、暗号化されたタグが復号され、タグが、例えばメッセージ及び共有された秘密と一緒に、示される。ユーザがタグを信頼すると、ユーザは、ここで、復号されたタグを元の銀行取引アプリに入力する。銀行取引アプリは、タグがSMSインターフェースで受信されたかのように機能することになるが、実際にはタグは、第2のソフトウェアを通じて渡された。銀行取引アプリのセキュリティは、例えば、銀行取引アプリが変更されなかったとしても向上される。
【0097】
タグは、数字若しくは文字のシーケンス、又はいわゆるワンタイム・パスワード(OTP:one-time password)を含む。
【0098】
本明細書で提示される原理は、サーバから受信されたデータのために使用される暗号機密性保護を増幅させるため、及び/又は、暗号完全性保護を増幅させるために、使用される。これは、共有された秘密と一緒に処理されたデータを表示すること、したがって、所望の暗号処理が本当に第2のソフトウェアによって実施されたという信頼を高めることによって行われる。例えば暗号完全性保護が失敗しても、メッセージは、例えばメッセージの表示など、次のステップに回されないことになる。正確に暗号化と署名のどの組合せが使用されるかは用途によるが、いくつかの例が下記で示される。
【0099】
メッセージが、署名と共にサーバから受信される。メッセージは、例えば鍵243などの、サーバの公開鍵で検証される。鍵241は任意選択である。署名が間違っている場合、メッセージは署名と共に棄てられる。
【0100】
メッセージが、暗号化されて、及び署名と共に、サーバから受信される。メッセージは、例えば鍵243などの、サーバの公開鍵、及び秘密鍵241で検証される。
【0101】
メッセージが、暗号化されて、及び署名なしで、サーバから受信されるが、秘密鍵241に対応する公開鍵は秘密であり、例えば第2のソフトウェアとサーバに知られているだけである。
【0102】
メッセージが、署名及び/又は暗号化され、暗号化されたタグと共に、サーバから受信される。メッセージは、例えば鍵243などの、サーバの公開鍵で検証され、及び/又は復号され、タグは、秘密鍵241で復号される。この場合、メッセージとタグとの間のリンクが危険にさらされているはずがないことに注意する。例えば、タグの署名は、例えばメッセージのハッシュを署名に含めることによって、メッセージにリンクされる。これを解決するための別のやり方は、例えば秘密鍵241で応答に署名することによって、応答をメッセージにリンクすることであり、応答は、タグ及びメッセージに依存する。例えば、メッセージ及びタグのハッシュが含まれる。サーバは、ここで、正しいメッセージが実施されたかどうかを検証することができる。
【0103】
単一のメッセージが、表示されることになる情報、及びタグを含む。単一のメッセージは暗号化される。署名がないと、攻撃者が検出されずにメッセージを変更し得ることが想像できる。それでも、そうすることによって、攻撃者がタグを変更する可能性もある。タグ、又はタグの機能を返すことによって、デバイスは、正しい情報が表示されたことを暗示的に確認する。単一のメッセージは、例えば複数のメッセージを暗号学的にリンクすることによって、複数のメッセージで置き替えられることが可能である。
【0104】
最後の例として、単一のメッセージが、表示されることになる情報、及びタグを含む。単一のメッセージは暗号化され、署名を提供される。応答は、例えばタグ及びメッセージ自体又はハッシュ等の、タグの機能及びメッセージの機能を含む。サーバは、タグの機能を検証して暗号デバイスを認証し、メッセージの機能を検証して正しいメッセージが示されたことを検証する。メッセージの機能は、セキュア・モードで実施される。後者を示すために、応答も、暗号デバイスの秘密鍵で署名される。
【0105】
デバイス110、160、200、201、202の様々な実施形態において、通信インターフェースは、様々な選択肢から選択される。例えば、インターフェースは、例えばインターネットなどの、ローカル又はワイド・エリア・ネットワークへのネットワーク・インターフェース、外部データ・ストレージへのストレージ・インターフェース、キーボード、アプリケーション・インターフェース(API)等である。
【0106】
デバイス110、160、200、201、202はユーザ・インターフェースを有し、ユーザ・インターフェースは、1つ又は複数のボタン、キーボード、ディスプレイ、タッチ・スクリーン等などの、よく知られた要素を含む。ユーザ・インターフェースは、例えば、リクエストすること、又は、リクエスト、メッセージ、及び同様のものに応答することなど、システムを構成するためのユーザ対話を受け入れることを行うように配置される。ストレージは、例えばフラッシュ・メモリなどの、電子メモリ、若しくは例えばハードディスクなどの、磁気メモリ、又は同様のものとして実現される。ストレージは、ストレージを一緒に作り上げる複数の個別のメモリを備える。ストレージは、例えばRAMなどの、一時メモリを備える。ストレージは、クラウド・ストレージでもよい。
【0107】
サーバ160は、単一のデバイス内で実現される。デバイスは、単一のデバイス内で実現される。典型的には、デバイス110、160、200、201、202は、それぞれ、システムに格納された適切なソフトウェアを実行するマイクロプロセッサを備え、例えば、ソフトウェアは、例えばRAMなどの、揮発性メモリ、又はフラッシュなどの、不揮発性メモリなどの、対応するメモリにダウンロード及び/又は格納される。代替として、システムは、全体的又は部分的に、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)として、プログラム可能ロジック内で実現される。システムは、全体的又は部分的に、例えばシステムの特定の用途のためにカスタマイズされた集積回路(IC)などの、いわゆる特定用途向け集積回路(ASIC)として実現される。例として、回路は、例えばVerilog、VHDL等などのハードウェア記述言語を使用して、CMOS内で実現される。具体的には、デバイス110、160、200、201、202は、例えば、暗号化、復号、署名、検証など、暗号プリミティブの評価のための回路を備える。
【0108】
プロセッサ回路は、例えば複数のサブプロセッサ回路として、分散して実現される。ストレージは、複数の分散されたサブストレージにわたって分散される。メモリの一部又は全ては、電子メモリ、磁気メモリ等である。例えば、ストレージは、揮発性及び不揮発性部分を有する。ストレージの一部は、読出し専用である。
【0109】
下記のいくつかのさらなる任意選択の改良、詳細、及び実施形態が、可能な実施形態の例として示される。
【0110】
図4a及び
図4bは、認証方法の実施形態の例を概略的に示す。図は、ユーザ401と、サーバ410、この場合銀行とを示す。暗号デバイスは、通常モード421で動作しているモード、及びセキュア・モード422で動作しているモードという、2つのモードで示されている。しかし、部分421及び422は、同じデバイスである。
【0111】
図4aは、サポート・ソフトウェア431及び旧式のソフトウェア432を通常モードで示している。セキュア・モードでは第2のソフトウェアが動かされるが、これは図に別々に示されていない。矢印は、
図4aにおいて以下を描写する。
451:ユーザが、ソフトウェア431においてトランザクションを開始する。
452:ソフトウェア431が、リクエストをサーバ410に転送する。
453:サーバ410が、例えばOTP及びリクエスト概要を含む、暗号化されたメッセージを送る。
454:ソフトウェア431が、例えばSMSなどの、暗号化されたメッセージ検出し、セキュア・モードのソフトウェアを起動する。
455:ユーザが、トランザクション詳細を検証し、ディスプレイからOTPを取得する。
456:ユーザが、ソフトウェア432にOTPを入力する。
457:ソフトウェア432が、トランザクションを確認するためにOTPを転送する。
【0112】
図4bは、第1のソフトウェア441を通常モードで示している。この場合、旧式のソフトウェアはなく、代わりに、実施形態は統合される。矢印は、
図4bにおいて以下を描写する。
461:ユーザが、ソフトウェア441においてトランザクションを開始する。
462:ソフトウェア441が、リクエストをサーバ410に転送する。
463:サーバ410が、例えばOTP及びリクエスト概要を含む、暗号化されたメッセージを送る。
464:ソフトウェア441が、例えばSMSなどの、暗号化されたメッセージを検出し、セキュア・モードのソフトウェアを起動する。
465:ユーザが、トランザクション詳細を検証し、受入れをクリックする。
456:第2のソフトウェアが、署名されたOTPをソフトウェア441に送る。
457:ソフトウェア441が、トランザクションを確認するために、署名されたOTPを転送する。
【0113】
図4aにおいてOTPは、ユーザを介して渡されるが、
図4bにおいてOTPは、内部チャネルを介して渡されることに留意されたい。本明細書で説明されるものなどの変形形態が使用され、例えばOTPの代わりに、任意のタグが使用され、応答は、タグからそれぞれに計算される。ディスプレイはセキュア・モード422で共有された秘密を示すのが好ましい。
【0114】
実施形態による、「SecurePay」と名付けられたいくつかのプロトタイプが、構築され、テストされてきた。これらの実施形態には、トランザクションの信憑性を施行するために、ユーザが最新の情報を伝えられるという長所がある。SecurePayは、ハードウェアが施行する隔離環境を作り出すために、ARMのTrustZoneなどのTEEを使用する。SecurePayは、トランザクションの整合性を保護するために、公開鍵の暗号文及びTEEによってもたらされた信憑性を使用する。SecurePayは、ソフトウェア・ベースのセキュアな表示の実施に依存し、その出力は、したがってユーザによって認識可能な合法的なコードによって生み出されることだけが可能である。SecurePayは、例えば2要素認証(2FA)を通じた、認証を可能にするサービス・プロバイダにユーザがセキュアに登録することができる、TEEによって施行される改ざん抵抗性メカニズムを提供する。
【0115】
互換性を提供するために、SecurePayは、ユーザとサービス・プロバイダとの間の通信チャネルとしてSMSを利用することができ、受信された暗号化されたSMSを、TEEにおいてSecurePayの信頼できるアプリ(TA)に通信するために、通常世界構成要素であるSecurePayアプリを提供する。そうするのが有益だが、サービス・プロバイダは、SecurePayを利用するために自分のモバイル・アプリを修正する必要はない。
【0116】
暗号化されたOTP及びトランザクション概要を受信すると、ユーザは、SecurePayアプリを起動して、(TEEによって制御された)セキュアな画面に、復号されたメッセージを表示することができる。
【0117】
既存のSMSベースの方式のための完全に透過的なドロップイン置換である1つと、サービス・プロバイダのアプリへの小さい修正を必要とするが、ユーザ対話を簡素化するために完全な統合を提供するもう1つという、実施形態の2つの異なるタイプが動作で試行された。
【0118】
ドロップイン置換モードが、
図4aに示されている。最初に、ユーザは、電話上の(又は自分のPC上で動くブラウザ内の)アプリからトランザクションを開始する。サービス・プロバイダは、このリクエストを受信し、トランザクション概要及びOTPを含む(公開鍵、ユーザのSecurePayを使用して)暗号化されたメッセージを収めるSMSで応答する。SecurePayのセキュア・アプリは、このSMSを受信し、信頼できるUIを起動して、トランザクション概要及びOTPをユーザに表示する。ユーザがトランザクションの信憑性を検証すると、ユーザは、ユーザが既存のSMSベースのOTPを扱うのとちょうど同じように、サービス・プロバイダのアプリに切り替え、OTPに入力することができる。このOTPは、次に、サービス・プロバイダに転送され、OTPが、プロバイダによって以前に送られたものに一致した場合、トランザクションは、成功裏に完了する。SecurePayのこのバージョンは、電話上のサービス・プロバイダのアプリに対するどのような修正も必要としないが、ユーザがOTPを記憶し(又は書き留め)、サービス・プロバイダのモバイル・アプリ(又はウェブ・インターフェース)にOTPを入力して、トランザクションを確認することを必要とする。幸運にも、人が自分の短期記憶に、平均して7つの事項を苦もなく覚えることができることを、心理学における研究が示してきた。現在、ほとんどのサービスが、数桁(5から6)をOTPとして使用している。
【0119】
SecurePayは、SecurePayを完全に統合するためのサービス・プロバイダのアプリのわずかな修正で、OTPを完全に隠すことができる。
図4bは、SecurePayのこのバージョンにおいて、トランザクションを確認するための可能なシーケンスを示す。主な違いは、サービス・プロバイダのアプリが、SecurePayの信頼できるアプリと直接的に通信することである。以前のバージョンと同様に、ユーザは、サービス・プロバイダのアプリを使用してトランザクションを開始する。サービス・プロバイダは、次に、暗号化された概要及びOTPと共にSMSを電話に送る。SecurePayのコード・ベースを増加させたくないということを考慮して、(SecurePayの代わりに)プロバイダのアプリに、(SMS又はインターネットを介して)この情報を受信させ、SecurePayの信頼できるアプリにこの情報を転送させ、SecurePayの信頼できるアプリは、メッセージを復号し、(OTPではなく)トランザクション概要をユーザに示す。ユーザが行う必要があるただ1つのことは、概要を見た後、このトランザクションを受け入れるか、拒絶することである。SecurePayの信頼できるアプリは、次に、透過的にOTPに署名し、これをサービス・プロバイダのアプリに送り、サービス・プロバイダのアプリは、署名されたOTPをサービス・プロバイダに転送する。署名されたOTPを受信すると、プロバイダは、OTPが、以前に送られたものに一致した場合、トランザクションを完了させる。SecurePayのこのバージョンは、より多くの利便性をユーザにもたらすが、サービス・プロバイダのアプリのわずかな修正(平均しておよそ20ラインのコード)を必要とする。
【0120】
実際のサービスでSecurePayを有効にすることは、公開鍵をサービスに伝達することを伴う。ユーザがいくつかのデバイスを所有する場合、全てのデバイスが、SecurePay保護サービスに登録される。登録は、ユーザがクライアント部分(例えば、モバイル・アプリケーション)をデバイスにインストールしたときに行われる。登録を成功させるために、ユーザは、必ずしも機密性ではなく、整合性の観点から、公開鍵をサービスにセキュアに伝達する。
【0121】
SecurePayモバイル・アプリをインストールした後、ユーザは、SecurePay TAを起動して、公開鍵のQRコード(登録商標)を、信頼できる画面に表示することができる。個人仕様の画像又は秘密のテキストを銀行と共有する前に、個人仕様の画像又は秘密のテキストを検証することによって、ディスプレイが、信頼できるアプリによって現在制御されていることを、ユーザが確信できることに留意されたい。最後に、銀行は、QRコード(登録商標)を単純にスキャンして、ユーザのデバイスからの公開鍵を安全に取り出す。
【0122】
モバイル・デバイスが、登録時に既に危険にさらされていたとしても、攻撃者は、攻撃者自身の公開鍵をユーザのアカウントに登録するのを妨げられる。
【0123】
SecurePayの登録は、他の多くの支払いサービスのものに匹敵するか、これより簡単であることに留意されたい。例えば、eバンキングを有効にするために、多くの銀行が、ハードウェア・トークンを必要とする。より重要なことには、SecurePayの脅威モデルは、既存のシステムよりかなり強力であり、デバイスのオペレーティング・システム・カーネルさえも攻撃者が制御する完全に危険にさらされたデバイスから開始された攻撃から、ユーザを保護する。
【0124】
図5は、暗号方法500の実施形態の例を概略的に示す。方法500は、コンピュータが実施するものであり、
- プロセッサ・システムの通常モードで第1のソフトウェアを実行すること(510)であって、プロセッサ・システムが、通常モード及びセキュア・モードで構成され、セキュア・モードのデータ及びコードが、通常モードから隔離され、セキュア・モードのデータが、少なくとも、秘密鍵、及びユーザと共有された秘密を含み、第1のソフトウェアを実行することが、
- 暗号化されたメッセージをサーバから受信すること(511)であって、暗号化されたメッセージが、秘密鍵に対応する暗号デバイスの公開鍵で暗号化される、受信すること(511)
- 暗号化されたメッセージを第2のソフトウェアに転送すること(512)
を有する、第1のソフトウェアを実行すること(510)と、
- セキュア・モードで第2のソフトウェアを実行すること(520)であって、第2のソフトウェアを実行することが、
- 暗号化されたメッセージを、セキュア・モードのデータ内に格納された秘密鍵で復号すること(521)、
- メッセージがセキュア・モードで動くソフトウェアによって表示されていることをユーザに示すために、メッセージと一緒に共有された秘密をディスプレイに表示すること(522)
を有する、第2のソフトウェアを実行すること(520)と
を有する。
【0125】
メッセージを復号する代わりに又はこれに加えて、署名の検証を実施することによって、方法の興味深い変形形態が取得される。
【0126】
例えば、暗号方法は、コンピュータ実施方法である。例えば、第1及び第2のソフトウェアを実行することは、例えばマイクロプロセッサなどの、例えばプロセッサなどの、プロセッサ・システム上で行われる。例えば、受信及び表示は、例えば、受信インターフェース、アンテナ等の、ハードウェア、ディスプレイ、ディスプレイ画面、ディスプレイ・インターフェースを使用する。例えば、転送は、例えば、バス、API、コントローラ等の、内部転送メカニズムを使用する。例えば、復号は、暗号コプロセッサを使用する。秘密鍵のサイズは、選ばれた特定の非対称暗号化/復号方式、プラットフォーム、所望のセキュリティ・レベルなどに依存する。例えば、ElGamalに対して、768ビットの、又はそれより小さい若しくは大きい、鍵サイズを使用する。例えば、RSAに対して、2048ビット、又はそれより小さい若しくは大きいなどを使用する。非対称暗号化/復号は、例えば、128ビットの、又はそれより小さい若しくは大きい、一過性の対称鍵と併用して使用される。
【0127】
当業者に明らかなように、方法を実行する多くの異なるやり方が可能である。例えば、ステップの順序は、示された順序で実施することができるが、ステップの順序は、変化させることができるか、いくつかのステップは、並列に実行される。その上、ステップの間に他の方法のステップが挿入されてもよい。挿入されたステップは、本明細書で説明されるものなどの方法の改良を表すこともあれば、方法に関係しないものもある。例えば、いくつかのステップは、少なくとも部分的に並列に実行されてもよい。その上、所与のステップが、次のステップが開始される前に、完全に終了していないこともある。
【0128】
方法の実施形態は、方法500をプロセッサ・システムに実施させる命令を含むソフトウェアを使用して実行される。ソフトウェアは、システムの特定のサブエンティティによって行われるステップしか含まない。ソフトウェアは、ハードディスク、フロッピー、メモリ、光ディスク等などの、適切なストレージ媒体に格納される。ソフトウェアは、ワイヤ若しくはワイヤレスに沿った信号として、又は、例えばインターネットなどの、データ・ネットワークを使用して、送られる。ソフトウェアは、ダウンロードのため、及び/又はサーバ上でのリモート利用のために、利用可能にされる。方法の実施形態は、方法を実施するように、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)などの、プログラム可能ロジックを構成するために配置された、ビットストリームを使用して実行される。
【0129】
本開示の主題は、また、本開示の主題を実践させるように適合された、コンピュータ・プログラム、特に、キャリア上又は内のコンピュータ・プログラムに拡張することが理解されよう。プログラムは、ソース・コード、オブジェクト・コード、コード中間ソース、及び、部分的にコンパイルされた形式などのオブジェクト・コードの形式、又は、方法の実施形態の実施時の使用に適した任意の他の形式である。コンピュータ・プログラム製品に関する実施形態は、示された方法の少なくとも1つの処理ステップのそれぞれに対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに再分割される、及び/又は、静的若しくは動的にリンクされた1つ若しくは複数のファイルに格納される。コンピュータ・プログラム製品に関する別の実施形態は、示されたシステム及び/又は製品の少なくとも1つのデバイス、ユニット、及び/又は部品のそれぞれに対応するコンピュータ実行可能命令を含む。
【0130】
図7aは、コンピュータ・プログラム1020を含む書込み可能部分1010を有するコンピュータ可読媒体1000を示し、コンピュータ・プログラム1020は、実施形態によるセキュア通信のための方法をプロセッサ・システムに実施させるための命令を含む。コンピュータ・プログラム1020は、物理的なマークとして、又はコンピュータ可読媒体1000の磁化によって、コンピュータ可読媒体1000上で具体化される。それでも、任意の他の適切な実施形態も想像可能である。さらに、コンピュータ可読媒体1000が、ここでは光ディスクとして示されているが、コンピュータ可読媒体1000は、ハードディスク、ソリッド・ステート・メモリ、フラッシュ・メモリ等などの任意の適切なコンピュータ可読媒体でもよく、書込み不能でも、書込み可能でもよいことが理解されよう。コンピュータ・プログラム1020は、セキュア通信のための前記方法をプロセッサ・システムに実施させるための命令を含む。
【0131】
図7bは、セキュア通信のための暗号デバイス又は方法の実施形態によるプロセッサ・システム1140の概略図を示す。プロセッサ・システムは、1つ又は複数の集積回路1110を備える。1つ又は複数の集積回路1110のアーキテクチャが、
図7bに概略的に示されている。回路1110は、コンピュータ・プログラム構成要素を動かして、実施形態による方法を実行すること、及び/又は、そのモジュール若しくはユニットを実施することを行うための、例えばCPUなどの、処理ユニット1120を備える。回路1110は、プログラムミング・コード、データ等を格納するためのメモリ1122を備える。メモリ1122の一部は、読出し専用である。回路1110は、例えば、アンテナ、コネクタ、又は両方などの、通信要素1126を備える。回路1110は、方法において定義された処理の一部又は全てを実施するための、専用集積回路1124を備える。プロセッサ・ユニット1120、メモリ1122、専用IC1124、及び通信要素1126は、例えばバスなどの、相互接続1130を介して互いに接続される。プロセッサ・システム1110は、アンテナ及び/又はコネクタを使用した、接触及び/又は非接触通信のためにそれぞれ配置される。
【0132】
例えば、実施形態において、例えば暗号デバイスなどの、プロセッサ・システム1140は、プロセッサ回路及びメモリ回路を備え、プロセッサは、メモリ回路に格納されたソフトウェアを実行するように配置される。例えば、プロセッサ回路は、Intel Core i7プロセッサ、ARM Cortex-R8等である。実施形態において、プロセッサ回路は、ARM Cortex M0である。メモリ回路は、ROM回路、すなわち、例えばフラッシュ・メモリなどの、不揮発性メモリである。メモリ回路は、例えばSRAMメモリなどの、揮発性メモリである。後者のケースでは、デバイスは、ソフトウェアを提供するために配置された、例えば、ハード・ドライブ、ネットワーク・インターフェース等の、不揮発性ソフトウェア・インターフェースを備える。
【0133】
本明細書で使用されるように、用語「非一時的」は、一時的な信号を除くが、揮発性メモリと不揮発性メモリの両方を含む、ストレージの全ての形式を含むものと理解されよう。デバイス1110は、ぞれぞれの説明される構成要素の1つを含むものとして示されているが、様々な構成要素は、様々な実施形態におけるものと同じである。例えば、プロセッサ・ユニット1120は、本明細書で説明される方法を独立して実行するように構成された、又は、本明細書で説明される機能を達成するために複数のプロセッサが協働するように、本明細書で説明された方法のステップ若しくはサブルーチンを実施するように構成された、複数のマイクロプロセッサを含む。さらに、デバイス1110がクラウド・コンピューティング・システム内で実現される場合、様々なハードウェア構成要素は、別個の物理的なシステムに属する。例えば、プロセッサ1120は、第1のサーバ内に第1のプロセッサを、及び、第2のサーバ内に第2のプロセッサを含む。
【0134】
以下の番号付きの節は特許請求の範囲ではなく、想定される例を含む。新しい請求項は、例えば本出願又は本出願から導出される任意のさらなる出願の遂行中に、説明又は請求項からとられた、このような節、並びに/又は、このような節及び/若しくは特徴の組合せに公式化される。
【0135】
1.サーバとのセキュア通信のために構成された暗号デバイスであって、暗号デバイスが、
- サーバと通信する通信インターフェース、
- 通常モード及びセキュア・モードで構成されたプロセッサ・システムであって、セキュア・モードのデータ及びコードが、通常モードから隔離され、セキュア・モードのデータが、少なくとも、暗号デバイスの公開鍵に対応する秘密鍵、及び暗号デバイスのユーザと共有された秘密を含み、
- 通常モードで第1のソフトウェアが実行され、第1のソフトウェアが、
- 暗号化されたメッセージをサーバから受信することであって、暗号化されたメッセージが、暗号デバイスの公開鍵で暗号化される、受信すること、
- 暗号化されたメッセージを第2のソフトウェアに転送すること
を行うように構成され、
- セキュア・モードで第2のソフトウェアが実行され、第2のソフトウェアが、
- 暗号化されたメッセージを、セキュア・モードのデータ内に格納された秘密鍵で復号すること、
- 暗号化されたメッセージがセキュア・モードで動くソフトウェアによって表示されていることをユーザに示すために、暗号化されたメッセージと一緒に共有された秘密を暗号デバイスのディスプレイに表示すること
を行うように構成される、
プロセッサ・システム
を備える、暗号デバイス。
2.
- 認証ソフトウェアであって、通常モードで、
- 暗号化された認証タグをサーバから受信することであって、暗号化された認証タグが、暗号デバイスの公開鍵で暗号化される、受信すること、
- 第2のソフトウェアによって復号された暗号化された認証タグを有すること、
- サーバへの暗号デバイスの認証を行うために、認証タグに応じたサーバへの認証メッセージを送ること
を行う、認証ソフトウェア、
- 第2のソフトウェアであって、セキュア・モードで、
- 暗号化された認証タグを、公開鍵に対応する秘密鍵で復号すること
を行う、第2のソフトウェア
の、サーバへの認証を行う、節1に記載の暗号デバイス。
3.
暗号化されたメッセージが、暗号化された認証タグと協働して受信され、第2のソフトウェアが、
- 表示された暗号化されたメッセージへの応答を暗号デバイスのユーザから取得すること、
- 応答に応じて認証タグを第1のソフトウェアに送ること
を行う、節2に記載の暗号デバイス。
4.
- 第2のソフトウェアが、暗号デバイスの内部のソフトウェア・インターフェースで、認証タグを含む暗号化されたメッセージを第1のソフトウェアに送るように構成される、又は
- 第2のソフトウェアが、認証タグをディスプレイに表示するように構成され、第1の認証が、暗号デバイスの入力インターフェースを通じて認証タグをユーザから受信するように構成される、
節1から節3のいずれか一項に記載の暗号デバイス。
5.サーバとのセキュア通信のための暗号方法(500)であって、
- プロセッサ・システムの通常モードで第1のソフトウェアを実行すること(510)であって、プロセッサ・システムが、通常モード及びセキュア・モードで構成され、セキュア・モードのデータ及びコードが、通常モードから隔離され、セキュア・モードのデータが、少なくとも、秘密鍵、及びユーザと共有された秘密を含み、第1のソフトウェアを実行することが、
- 暗号化されたメッセージをサーバから受信すること(511)であって、暗号化されたメッセージが、秘密鍵に対応する暗号デバイスの公開鍵で暗号化される、受信すること(511)
- 暗号化されたメッセージを第2のソフトウェアに転送すること(512)
を有する、実行すること(510)と、
- セキュア・モードで第2のソフトウェアを実行すること(520)であって、第2のソフトウェアを実行することが、
- 暗号化されたメッセージを、セキュア・モードのデータ内に格納された秘密鍵で復号すること(521)、
- 暗号化されたメッセージがセキュア・モードで動くソフトウェアによって表示されていることをユーザに示すために、暗号化されたメッセージと一緒に共有された秘密をディスプレイに表示すること(522)
を有する、実行すること(520)と
を有する、方法。
6.サーバとのセキュア通信のために構成された暗号デバイスであって、暗号デバイスが、
- サーバと通信する通信インターフェース、
- 通常モード及びセキュア・モードで構成されたプロセッサ・システムであって、セキュア・モードのデータ及びコードが、通常モードから隔離され、セキュア・モードのデータが、少なくとも、暗号デバイスのユーザと共有された秘密を含み、
- 通常モードで第1のソフトウェアが実行され、第1のソフトウェアが、
- 署名されたメッセージをサーバから受信することであって、署名されたメッセージが、サーバの秘密鍵で署名される、受信すること、
- 署名されたメッセージを第2のソフトウェアに転送すること
を行うように構成され、
- セキュア・モードで第2のソフトウェアが実行され、第2のソフトウェアが、
- サーバの秘密鍵に対応する公開鍵を使用して、署名されたメッセージの署名を検証すること、
- 署名されたメッセージがセキュア・モードで動くソフトウェアによって表示されていることをユーザに示すために、署名されたメッセージと一緒に共有された秘密を暗号デバイスのディスプレイに表示すること
を行うように構成される、
プロセッサ・システム
を備える、暗号デバイス。
7.サーバとのセキュア通信のための暗号方法であって、暗号方法が、
- プロセッサ・システムの通常モードで第1のソフトウェアを実行することであって、プロセッサ・システムが、通常モード及びセキュア・モードで構成され、セキュア・モードのデータ及びコードが、通常モードから隔離され、セキュア・モードのデータが、少なくとも、ユーザと共有された秘密を含み、第1のソフトウェアを実行することが、
- 署名されたメッセージをサーバから受信することであって、署名されたメッセージが、サーバの秘密鍵で署名される、受信すること、
- 署名されたメッセージを第2のソフトウェアに転送すること
を有する、第1のソフトウェアを実行することと、
- セキュア・モードで第2のソフトウェアを実行することであって、第2のソフトウェアを実行することが、
- サーバの秘密鍵に対応する公開鍵を使用して、署名されたメッセージの署名を検証すること、
- 署名されたメッセージがセキュア・モードで動くソフトウェアによって表示されていることをユーザに示すために、署名されたメッセージと一緒に共有された秘密をディスプレイに表示すること
を有する、第2のソフトウェアを実行することと
を有する、暗号方法。
【0136】
上述の実施形態が、本開示の主題を限定することではなく示すこと、及び、当業者が、多くの代替実施形態をデザインできることに留意されたい。
【0137】
特許請求の範囲において、丸括弧の間に置かれた任意の引用符号は、特許請求の範囲を限定するものと解釈されてはならない。動詞「備える」及びその活用形の使用は、請求項において述べられるもの以外の要素又はステップの存在を除外しない。単数形の要素は、複数のこのような要素の存在を除外しない。「の少なくとも1つ」などの表現は、要素のリストの前にあるとき、リストからの要素の全ての、又は要素の任意のサブセットの、選択を表す。例えば、「A、B、及びCの少なくとも1つ」という表現は、Aだけ、Bだけ、Cだけ、AとBの両方、AとCの両方、BとCの両方、又は、A、B、及びCの全てを含むものと理解されるべきである。本開示の主題は、いくつかの別個の要素を備えるハードウェアによって、及び、適切にプログラムされたコンピュータによって実施される。いくつかの部品を列挙するデバイスの請求項において、これらの部品のいくつかは、ハードウェアのまさに同じアイテムによって具体化される。特定の手段が、相互に異なる従属請求項において列挙されるという単なる事実は、これらの手段の組合せを有利に使用できないことを示さない。
【0138】
特許請求の範囲において、丸括弧内の参照番号は、例示の実施形態の図面内の引用符号を、又は、実施形態の公式を指し、したがって、特許請求の範囲の理解しやすさを向上させる。これらの参照番号は、特許請求の範囲を限定するものと解釈されてはならない。
【符号の説明】
【0139】
100 通信システム
110 暗号デバイス、デバイス
120 コンピュータ・ネットワーク
130 プロセッサ・システム
140 メモリ
150 通信インターフェース
160 サーバ、デバイス
170 プロセッサ・システム
180 メモリ
190 通信インターフェース
200 暗号デバイス、デバイス
201 暗号デバイス、デバイス
202 暗号デバイス、デバイス
210 通信インターフェース、インターフェース
211 暗号化されたメッセージ
212 暗号化されたタグ、暗号化された認証タグ
213 応答メッセージ、応答、メッセージ
220 第1のソフトウェア
231 通常モード・インターフェース、インターフェース
232 セキュア・モード・インターフェース、インターフェース
241 秘密鍵、鍵
242 暗号処理ユニット
243 公開鍵
244 復号されたタグ、応答器
250 ディスプレイ生成器
251 共有された秘密
270 共通ハードウェア
271 ディスプレイ
272 入力デバイス
291 通常モード、通常側
292 セキュア・モード、セキュア側
300 暗号デバイス、デバイス
311 ディスプレイ
312 機械式ボタン
314 共有された秘密
315 メッセージ
316 タグ
317 ボタン、受け入れボタン
318 QRコード(登録商標)
401 ユーザ
410 サーバ
421 通常モード、部分
422 セキュア・モード、部分
431 サポート・ソフトウェア、ソフトウェア
432 旧式のソフトウェア、ソフトウェア
441 第1のソフトウェア、ソフトウェア
1000 コンピュータ可読媒体
1010 書込み可能部分
1020 コンピュータ・プログラム
1110 集積回路、回路、デバイス
1120 処理ユニット、プロセッサ・ユニット
1122 メモリ
1124 専用集積回路、専用IC
1126 通信要素
1130 相互接続
1140 プロセッサ・システム