問題タブ [webcrypto-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Web暗号化APIを使用したJavaScriptでのBrowseridアサーションの検証
Web Cryptography APIで提案されたWebブラウザーのJavaScriptランタイム環境への追加により、JavaScriptを使用してブラウザーのbrowseridアサーションを安全に検証できますか?
javascript - WebCryptoAPI - 暗号トークンによる署名をサポートしていますか?
100% JavaScript と暗号化トークン ベースのキーを使用して、ブラウザーでデータに署名できるようにしたいと考えています。
私がこれまで見てきたことから、この機能の古い実装はすべて廃止されています (たとえばnew ActiveXObject("CAPICOM.Store");
、IE11 ではエラーがスローされるため、もはや機能していないようです! - 何かが足りないかどうかわかりません...おそらく、コンソールウィンドウで実行したためです...)。
私は WebCryptoAPI の仕様を調べました (これは新しいサポートされている方法であると思われます):
http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-sign
...そしてこれで(より明確で、整理され、役立つ):
http://msdn.microsoft.com/en-us/library/ie/dn302332(v=vs.85).aspx
...新しいキーを作成できることはわかりましたgenerateKey
が ( )、トークンからのキーの使用をサポートしているかどうかはわかりません。ありますがimportKey
、説明から、OSが認識できる既存のキーで署名するために必要なものではないようです。
この Web 標準は、そのような機能を許可することを目的としていますか? 今のままで目的を達成できるか?
少なくとも、デバイス マネージャー ([オプション] -> [証明書] -> [セキュリティ デバイス]) を備えた Firefox で何か改善できることはありますか?
関連する質問:
JavaScript を使用してブラウザのキーストアで署名/暗号化にアクセスする - サンプル コード? (WebCryptoAPI)
アップデート:
この PDF も見つけました: http://webpki.org/papers/PKI/x509-webcrypto-extension-scheme.pdf
私が見たところ、window.crypto.subtle.KeyStore
どのブラウザにもありません。これは、人々が遠い未来に向けて抱く野蛮な夢だと思います...
UPDATE2: これが、IE11 で ActiveX を読み込めなかった理由です: https://stackoverflow.com/a/5157766/2173353
したがって、少なくとも、まだ機能している古い方法が 1 つあります...
javascript - ブラウザでサーバーの秘密鍵を保護する方法は?
このユース ケースでは、サーバーは暗号化された BLOB をブラウザーに送信し、ブラウザーの JavaScript はサーバーに復号化キーを要求し、BLOB を復号化して使用可能なコンテンツにします。
ブラウザでこのキーをブックマークレットやブラウザ プラグインによる攻撃、またはブラウザで JavaScript デバッガをステップ実行するユーザーから保護する方法はありますか? または、少なくとも攻撃者にとって少し難しい問題にします。
編集 : 問題のコンテキストは、EME 仕様で指定されている HTML ビデオ DRM です。この標準の一部であり、WideVine や FairPlay などのクローズド ソース プラグインを必要としない ClearKey API があります。しかし、複数の回答が指摘しているように、ClearKey は保護できません。(残念ながら、これは独自の DRM プラグインを使用することを意味します)。
google-chrome - Chrome の電子スマートカードからのデジタル署名
ブラウザー上で実行され、専門家による個人の署名が必要な電子処方箋システムの場合、Java アプレットを使用して XML 要求に署名し、スマートカードを使用して WS に送信します。
しかし、バージョン 42 以降、Chrome はデフォルトで NPAPI サポートを無効にしています。2015年 9 月以降の将来のバージョンでは完全に無効になり、アプレットはまったく使用できなくなります。
Chrome NPAPI deprecation page では、代替としてWebCryptoと TLS が示されています。しかし、WebCryptoは smartcards のサポートの範囲外にあるようであり、TLS は暗号化プロトコルに関するものであり、電子カードを使用する方法を提供していないようです。
誰かが完全にブラウザ ネイティブのソリューションを使用してドキュメントに署名し、プロセスを適切に制御していますか。少なくとも次のものが必要です。
- ユーザーによって署名された XML 要求の確認も視覚化もありません。署名されているのは、ユーザーにとって価値のない内部の技術的要求であり、アプリケーションは内部 LAN の制御された信頼できるシステムで実行されるためです。
javascript - WebCrypto による否認防止
WebCrypto API で否認防止を実現するには?
テキストを暗号化/署名する方法でWebCryptoに関する多くの例を見ましたが、問題は常にページの実行時にキーが生成され、これにより否認防止が破られます..質問する方法があるはずだと思います.使用する秘密鍵についてのユーザー。
Mozilla firefox にはユーザーにキーを要求する方法があったと思いますが、現在は削除されています: https://developer.mozilla.org/en-US/docs/Security/Crypto_Sign_Text_Removal
ありがとう、