Googleセキュリティチームは、拡張機能がChromeウェブストアに公開される前に、最初にApache 2.0ライセンスで拡張機能ソースコードをリリースすることを決定しました。 この理由は簡単です。Googleは多くの困難に直面しなければならなかったため、OpenPGPの実装が信頼できるかどうかはまだわかりません。 Googleは、JavaScriptランタイムはネイティブレベルで何が起こっているかを制御できないため、アーキテクチャ上の信頼性がないことに注意しており、データ漏洩のリスクがあります。 このプロジェクトが登場した理由に留意して、同社はGnuPGとPGPが現在存在していると述べたが、ユーザーからの暗号化の知識が必要であり、Googleの拡張機能は可能な限りユーザーフレンドリーな暗号化プロセスを実行しようとします。 実際のJavaScriptについては、Google FAQにいくつかの説明があります。
拡張機能の設計におけるすべての欠陥を可能な限り修正するために、Googleは発見および悪用に対する報酬として利用可能な脆弱性のリストにその新製品を含めています。 したがって、Googleのヘルプは無料ではなく、500ドルから2万ドルの報酬を受け取る機会があります。
Googleは、拡張機能を使用して会社への匿名の統計情報の送信を無効にするときにもユーザーに尋ねます。これは、ブラウザーのクラッシュなど、場合によってはユーザーの秘密キーを復元できるデータがGoogleに送信されるためです。
よくある質問
ソースコードを公開したので、拡張機能を自分でウェブストアで公開できますか?
これをしないでください。
開発チームは、この拡張機能がジャーナリスト、人権擁護者、および技術的に精通していない可能性のある人々によって使用される可能性があることを理解しているため、この拡張機能は不快な結果を引き起こす可能性があります。
私たちのチームが見逃したかもしれない脆弱性を特定することを期待して、ソースコードをリリースします。 したがって、実装が信頼できるという十分な証拠が得られ次第、カタログへの拡張機能をリリースし、さらなるサポートを提供します。
暗号化は添付ファイルでも機能しますか、GMailのレターのテキストのみで機能しますか?
テキストのみ。 また、手紙の件名と受信者のリストも暗号化されないことに注意してください。
なぜ楕円曲線でのみキー生成を使用するのですか?
RSAの生成は楕円曲線よりも遅くなります 。
エンドツーエンドはモバイルデバイスで動作しますか?
現在、AndroidおよびiOSのChromeは拡張機能をサポートしていません。
拡張機能ではどのような仕様を使用していますか?
RFC4880 -OpenPGPメッセージ形式
RFC6637 -OpenPGP楕円曲線暗号
残念ながら、この拡張機能はOpenPGPおよびCamelliaアルゴリズムを使用したMIME保護の仕様をまだサポートしていません。
割れ目があります!
ロマンス語以外の言語の偽物を表示しないようにしましたが、特にサービス地域で偽物に遭遇しても驚かないでください。 自動エンコードチェックは実装していません。
秘密鍵はメモリ内にありますか、各操作後にクリアされますか、またはパスフレーズのキャッシュがありますか?
秘密鍵は暗号化されずにメモリに保存されます。 「キーチェーン」にパスフレーズを付けることをお勧めします。 この場合、秘密鍵は暗号化されたlocalStorageに保存されます。
さて、そこでどれくらい保護されていますか?
キーはlocalStorageにあるため、暗号化する必要があります。 メモリ内で暗号化されていない場合は、Chromiumサンドボックスのみに依存します。
Javascript? Srsly?
はい、エンドツーエンドで作業を開始したとき、以前のJSはすべて私たちに適していないので、自分で補充する必要がありました。 JSが暗号化に関して持つすべての脅威を完全に理解しているため、リスクを軽減および排除するために思いついたすべての対策を講じました 。
javaScriptの多くの主要な暗号化機能はサポートされていません。 暗号化なしの場所は?
ChromeのV8などの最新のエンジンは型付き配列をサポートし、WebCryptoは暗号化された擬似乱数ジェネレーターを提供します 。
過去のJavaScriptの暗号化プロジェクトは繰り返し壊れており、そのような深刻なものを実装するための言語の信頼性が低下しています。
本当の声明。 しかし実際には、脆弱性に対する100%の保護を提供する共通プログラミング言語はありません。
私たちはすべての例をよく知っているので、最初から高い品質基準を設定しました。 私たちはゼロから始めて、テストで覆われた最新の暗号ライブラリを作成しました。 BigIntegerメソッド、モジュラー演算、楕円曲線、対称暗号化キーおよび公開暗号化キーをサポートします。 これを行った後、ライブラリの上にOpenPGPシェルを開発しました。 ライブラリコードの一部は、本番環境で社内で使用されています 。
Google Codeに関する完全なFAQ 。
これをしないでください。
開発チームは、この拡張機能がジャーナリスト、人権擁護者、および技術的に精通していない可能性のある人々によって使用される可能性があることを理解しているため、この拡張機能は不快な結果を引き起こす可能性があります。
私たちのチームが見逃したかもしれない脆弱性を特定することを期待して、ソースコードをリリースします。 したがって、実装が信頼できるという十分な証拠が得られ次第、カタログへの拡張機能をリリースし、さらなるサポートを提供します。
暗号化は添付ファイルでも機能しますか、GMailのレターのテキストのみで機能しますか?
テキストのみ。 また、手紙の件名と受信者のリストも暗号化されないことに注意してください。
なぜ楕円曲線でのみキー生成を使用するのですか?
RSAの生成は楕円曲線よりも遅くなります 。
エンドツーエンドはモバイルデバイスで動作しますか?
現在、AndroidおよびiOSのChromeは拡張機能をサポートしていません。
拡張機能ではどのような仕様を使用していますか?
RFC4880 -OpenPGPメッセージ形式
RFC6637 -OpenPGP楕円曲線暗号
残念ながら、この拡張機能はOpenPGPおよびCamelliaアルゴリズムを使用したMIME保護の仕様をまだサポートしていません。
割れ目があります!
ロマンス語以外の言語の偽物を表示しないようにしましたが、特にサービス地域で偽物に遭遇しても驚かないでください。 自動エンコードチェックは実装していません。
秘密鍵はメモリ内にありますか、各操作後にクリアされますか、またはパスフレーズのキャッシュがありますか?
秘密鍵は暗号化されずにメモリに保存されます。 「キーチェーン」にパスフレーズを付けることをお勧めします。 この場合、秘密鍵は暗号化されたlocalStorageに保存されます。
さて、そこでどれくらい保護されていますか?
キーはlocalStorageにあるため、暗号化する必要があります。 メモリ内で暗号化されていない場合は、Chromiumサンドボックスのみに依存します。
Javascript? Srsly?
はい、エンドツーエンドで作業を開始したとき、以前のJSはすべて私たちに適していないので、自分で補充する必要がありました。 JSが暗号化に関して持つすべての脅威を完全に理解しているため、リスクを軽減および排除するために思いついたすべての対策を講じました 。
javaScriptの多くの主要な暗号化機能はサポートされていません。 暗号化なしの場所は?
ChromeのV8などの最新のエンジンは型付き配列をサポートし、WebCryptoは暗号化された擬似乱数ジェネレーターを提供します 。
過去のJavaScriptの暗号化プロジェクトは繰り返し壊れており、そのような深刻なものを実装するための言語の信頼性が低下しています。
本当の声明。 しかし実際には、脆弱性に対する100%の保護を提供する共通プログラミング言語はありません。
私たちはすべての例をよく知っているので、最初から高い品質基準を設定しました。 私たちはゼロから始めて、テストで覆われた最新の暗号ライブラリを作成しました。 BigIntegerメソッド、モジュラー演算、楕円曲線、対称暗号化キーおよび公開暗号化キーをサポートします。 これを行った後、ライブラリの上にOpenPGPシェルを開発しました。 ライブラリコードの一部は、本番環境で社内で使用されています 。
Google Codeに関する完全なFAQ 。
参考のため 。 Habréで以前に、サードパーティ開発者からの同様の拡張機能の例についてはすでに議論されました 。