web-dev-qa-db-ja.com

「USBスティック」オンライン識別はどのように機能するのでしょうか。

私の銀行は最近そのウェブサイトを刷新しましたが、私に関する限り、それは好転しました。特にセキュリティが飛躍的に向上したようです。

最も重要なのは、彼らが「電子証明書」と呼ぶかなり珍しい(これまで見たことがない)識別方法を導入したことです。基本的に、銀行に直接行かなければなりません、そして、男はあなたに非常に低い容量の小さくて安いUSBスティックを与えます。この時点から、ログインするたびにスティックをコンピューターに接続する必要があります。スティックだけでは不十分で、パスワードも入力する必要があります。基本的に、USBデバイスによる2要素認証第二の要素です。

これはどのように機能する可能性がありますか?もちろん、USBスティックには、ログインプロセスで使用される証明書/暗号化キーが含まれていると思いますが、ユーザーがインストールする必要はありません。マシン上のソフトウェア。プラグイン/モジュール/アプリ/ツールバーがまったくインストールされていない、サンドボックス化されたWebブラウザーからアクセスしたWebサイトが、差し込んだばかりのUSBスティックを見ることができるのはかなり気味が悪いようです。このスティックを参照しますが、読んで、その内容を十分に深く使用して、オンラインバンキングアプリの最も機密性の高いレベルにログを記録します。

そもそも、未知のデバイスをコンピュータに接続するのはあまり好きではなく、説明があったときに警告灯が点滅したので、別の識別方法を選択しました(選択できます)。気になります。

PS:スマートフォンにはUSBポートがないため、この測定はモバイルアプリには適用されませんが、電話アプリでは多くのことができないため、大したことではありません(主にコンサルティングアプリであり、実際に作成できるものではありません)。大きな支払い/送金)。

編集:ファイルを開くダイアログは使用されないため、説明が非常に明確になります。

70
user135452

あなたの銀行があなたに与えたものは SBセキュリティトークン デジタル証明書付き( これらのように )です。これらは 標準化された ハードウェアデバイスであり、ほとんどすべてのオペレーティングシステムが標準のプラグアンドプレイをサポートしています。これらは、エンタープライズITの高セキュリティシステムに多要素認証を実装するために非常に一般的です。

Webブラウザーは、HTTPSとクライアントベースの証明書を使用して、銀行のWebサイトにアクセスします。オペレーティングシステムの証明書ストアを使用して、Webサーバーが要求するIDと一致するインストール済みの証明書を検索します。標準のUSBセキュリティトークンがインストールされている場合、オペレーティングシステムはトークン上の証明書も検索します。

トークンはWebサーバーに直接格納されている証明書の秘密鍵を読み取ることができないため、オペレーティングシステムはそれ自体ではWebサーバーとの検証プロセスを実行できません。トークンには、検証を実行するためのハードウェアが含まれています。したがって、秘密鍵がUSBスティックから出ることはありません。つまり、PCがマルウェアに感染している場合でも、証明書の秘密鍵が盗まれる危険はありません(ただし、この方法では、認証が成功した後は保護されないことに注意してください。ウェブブラウザ)。

ちなみに、それはどの銀行ですか?私の銀行もこの認証方法をサポートしている場合は、オンラインバンキングを開始することさえできるでしょう。

64
Philipp

これが機能する方法の1つは、ChromeがプラグインなしのFIDO U2Fをサポートすることです。現在、Chromeが現在最も人気のあるブラウザーであり、ChromeはWindows、Mac、およびLinuxで動作します。「USBポートを備えたデバイス、Windows、Mac、Linuxなどで動作し、そのまま動作する」と主張することは完全に不正確ではありません。

彼らはそれがどんなブラウザでも、ちょうどどんなOSでも動くと主張しましたか?

29
Lie Ryan

....ユーザーがマシンにソフトウェアをインストールする必要はありません。..ユーザーのアクションなしでWebページがファイルシステムを自由に閲覧する機能は、デフォルトではあまりにも制限されていると思いました

はい、それは間違いなくスマートカードドライバーなしでは不可能です。これは、あらゆるブラウザの基本的なセキュリティメカニズムです。 「ファイルを開く」ダイアログ、Javaダイアログ、またはドライバーのプレインストール)をクリックせずに証明書が読み取られるとはどういうことですか?別の検証オプションを選択したとのことですが、.

これは、たとえば中国銀行によって使用されているUSBキーのように聞こえます。 このようなテクノロジーはここで説明されています。

「USBポートを持つすべてのデバイス」と互換性があると言われました

PKCS#11証明書、または#12をパスフレーズと組み合わせると、すべてのOSで機能します。これは、keepassのようなパスワードマネージャーが機能するのと同じ方法で、知っていることと、認証の2つの要素を取得するために必要なものを組み合わせます。

25
J.A.K.

おそらく、USBサイズのスマートカードリーダーで、SIMサイズのスマートカードが挿入されています。

最新のほとんどのOSには、リーダーとカードの両方の汎用ドライバーがすでにインストールされているため、ドライバーを手動でインストールする必要はありません。

そのようなデバイスの例については、下の画像を参照してください。

Photo of USB device.

リーダー内部のそのSIMスマートカードに保存されている秘密鍵の証明書があります。コンピューターに接続すると、スマートカードからの証明書がOS証明書ストアに読み込まれます。それ以降は、基本的にはコンピューターに保存されている他の証明書と同じように動作し、保護されたリソースへのアクセス、ドキュメント/メールへの署名、暗号化などに使用できます。

これは特に、私の銀行(Webバンキング)とState(主にIRS関連のものや実際のドキュメントを要求するために私が使用する)から信頼されているCert Authorityによって発行されます。

12
user2720406

キーボードのふりをしているデバイスである可能性が高いため、特別なドライバーを必要とせずにOSによって認識されます。内部的には、おそらくHOTP(またはRTCチップとバッテリーがある場合はTOTP)を使用し、ボタンが押されるたびにOTPを「タイプ」します ( Yubikey または同様のU2Fデバイス。

ブラウザはUSBが存在することを話したり、認識したりしません。ユーザーにデバイスの物理的なボタンを押すように指示し(ブラウザー自体がコードに「入力できない」ようにデバイスにコードを入力するように指示する)、キーストロークを(コードの長さまで)解釈しますデバイスからの受信として受信します。

11
André Borie

私が10年ほど前に持っていた理論的な考えのように聞こえます。

ほとんどすべてのOSがUSBネットワークデバイスをサポートしています。お使いのUSBスティックは、ローカルネットワークに接続されたネットワークカードであるかのように振る舞い、そのネットワーク上にWebサーバーもあります。そのWebサーバーもHTTPS証明書を持つことができます。

WebブラウザーはそのWebサーバーにHTTPSリクエストを送信し、USBスティックと銀行のWebサイトが相互に信頼していることを検出できます。これはサンドボックスエスケープとは見なされません。ブラウザもOSも、Webサーバーが実際にUSBスティック上にあることを認識していないためです。

知財警告:私の知る限り、私の元雇用主はほとんどの法域でこのアイデアに関する特許を取得しています。このアイデアをコピーする前に、弁理士に連絡してください。

9
MSalters

他のいくつかの回答が述べたように、これはおそらくUSBセキュリティトークンです。スマートカードリーダー+埋め込みスマートカードと考えてください(実際には、この方法で実装されている場合もあります)。米国の防衛機関で使用されている CACカード と考えてください。 PGPカードだと思います。一部のYubikeyモデルは、スマートカードとしての機能もサポートしています。

この種類のデバイスは、中国の銀行がオンラインバンキングのWebサイト/デスクトップクライアントソフトウェアを保護するために広く使用しています。私の答えは、中国でのこれらのトークンの使用経験に基づいています。

それをどうやって使いますか?

オンラインバンキングにサインアップしてUSBトークンを選択すると、銀行からトークンが提供され、公開鍵と秘密鍵のペアと個人証明書が作成され、トークンに読み込まれます。オンラインバンキングのログインパスワードとは別のパスワードをトークンに設定します。

銀行から提供されたドライバーをパーソナルコンピューターにインストールし、トークンを接続して、銀行のWebサイトに移動します。ログインまたは機密性の高い操作(送金、連絡先情報の変更、オンライン購入の承認など)を実行するたびに、ブラウザー/オペレーティングシステムがトークンのパスワードを要求し、トークンのライトが数秒間点滅し、トランザクション通過します。

ドライバーをインストールする必要がありますか?

はい。 Windowsオペレーティングシステムには標準のスマートカードインターフェイスがありますが、USBトークンの各モデルには依然としてドライバーが必要です。ごくまれに、Windows Updateが正しいドライバーをインストールしますが、ほとんどの場合、銀行のWebサイトからパッケージをダウンロードする必要があります。

多くの場合、サポートされているオペレーティングシステムはWindowsのみで、サポートされているブラウザはIEのみです。 (ActiveXが好きです。)一般に、スマートカード/ USBトークンが他のOS /ブラウザをサポートすることは確かに可能です。上記のCACカードを参照してください。自分の銀行との互換性を確認する必要があります。

それで、それはどのようにあなたを認証しますか?

ブラウザはOSにトークンに小さなデータ(おそらくトランザクションの詳細)に署名するように要求します。トークンは、秘密鍵と証明書を使用して署名します。ブラウザは署名を銀行に送信します。銀行は署名を検証し、銀行から提供されたトークンのみがこの署名を生成するための秘密鍵を持っていることを確認します。

秘密鍵がトークンを離れることはありません。適切に設計されている場合、トークンは秘密鍵を漏らしてはなりません。

まず第一に、私は技術者ではない従業員によるクレームが、ブラウザやOSに関係なく、「USBポートを持つすべてのデバイス」で機能するという主張にかなり懐疑的であることを述べさせてください。サポートされているOSがいくつかのWindowsバージョン(そしておそらくMacOS)であったとしても、私は驚かないでしょう。ただし、このようなデバイスがどのように機能するかを考えるのは興味深いことです。

AndréBorieによるUSBキーボードの提案など、ドライバを必要としないほとんどのソリューションでは、ハードウェアボタンなどの追加のインターフェイスが必要になります。

それでも、user2720406の投稿から、USBポートを備えた[電源が入っている]デバイスで[特定の場所で]実際に機能するデバイスがわかりました。

USBデバイスは単純に SIMカード を含み、それを使用してGPRS/3Gを介してインターネットに独自にアクセスします。次に、デバイスは、「トークン12312121を持つ顧客はオンラインバンキングを使用しています」というデジタル署名されたメッセージを送信するだけです。オンラインセッションは、最後の5分間に受信されない限り許可されません(さらに、顧客のIPがデバイスのIPと同様の地理位置情報を持っているなど、他の要因も考えられます)。したがって、USBポートは電源にのみ使用され、デバイスはコンピュータにインストールされているものから完全に独立しています。

5
Ángel

これはユビキーのように聞こえます。彼らはよく知られていて、素晴らしい働きをします。 https://www.yubico.com/products/yubikey-hardware/yubikey4/

  • ドライバーが不要な場合:Yubikeyはキーボードとして認識されるため、キーボードドライバーを備えたすべてのマシンがテキスト出力を読み取ることができます。
  • 仕組み:ボタンを押すと、Yubikeyが(デバイスに埋め込まれた安全な秘密鍵から)公開鍵を発行します。次に銀行はあなたを認証し、あなたが知っているもの(パスワード)とあなたが持っているもの(物理的に保護された秘密鍵)を持っていることを確認します。
  • 安全な理由:コンピューター上のソフトウェアが秘密キーにアクセスできないため、マルウェアがキーをコピーして本人になりすますことができません。物理的にあなたから盗まれる必要があります。 (それは可能ですが、それがあなたが知っているものとペアリングする理由です)

  • 誰が使用するのか、その理由:Googleはユビキーの設計を支援し、ユーザーが不在のときにローカルの資格情報を取得するコンピューター上のマルウェアの問題を解決できるようにしました。すべてのGoogleエンジニアが1つ持っています。私はそれらを何年も使用し、それらの周りに多数の2faソリューションを展開しました。

2
jorfus