Conscrypt

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Conscrypt モジュールは、OTA 更新に依存することなく、セキュリティの改善を加速し、デバイスのセキュリティを向上させます。 Java コードとネイティブ ライブラリを使用して、Android TLS 実装と、キー ジェネレーター、暗号、メッセージ ダイジェストなどの Android 暗号化機能の大部分を提供します。 Conscrypt はオープン ソース ライブラリとして利用できますが、Android プラットフォームに含まれている場合はいくつかの特殊化があります。

Conscrypt モジュールは、 BoringSSLを使用します。これは、OpenSSL の Google フォークであり、Conscrypt コード (Java とネイティブ コードの両方) と組み合わせて、暗号化と TLS (特に Google Chrome) の多くの Google 製品で使用されているネイティブ ライブラリです。 BoringSSL には公式リリースがなく (すべてのユーザーが頭からビルドします)、API や ABI の安定性を保証しません。

Android 10 の変更点

Android 9 には、Conscrypt 用の Android 固有のパブリック API は含まれていませんが、代わりに、Cipher と MessageDigest を含む Java 暗号化アーキテクチャ (JCA) と、SSLSocket と SSLEngine を含む Java Secure Socket Extension (JSSE) の標準クラスを実装するセキュリティ プロバイダーを使用します。ユーザーはこれらのクラスと対話し、一部の非公開 Conscrypt API はlibcoreまたはフレームワーク コードで使用されます。

Android 10 では、 javax.net.sslの下のクラスによって公開されていない Conscrypt 機能にアクセスするために、 android.net.sslに少数のパブリック API メソッドが追加されています。 Android 10 には、 Bouncy Castleのスリム化されたコピーも含まれており、人気の低い暗号化ツールを Android ランタイムの一部として提供します (Conscrypt モジュールには含まれません)。

形式と依存関係

Conscrypt モジュール (`com.android.conscrypt`) は、Conscrypt Java コードと、Android NDK ライブラリ ( liblogなど) に動的にリンクする Conscrypt ネイティブ ライブラリを含むAPEXファイルとして配布されます。ネイティブ ライブラリには、NIST のCryptographic Module Validation Program (CMVP)によって検証された ( Certificate #3753 ) BoringSSL のコピーも含まれています。

Conscrypt モジュールは、次の API を公開します。

  • パブリック APIは、 java.*およびjavax.*の下にあるパッケージのクラスとインターフェース、およびandroid.net.ssl.*の下にあるクラスの拡張です。外部アプリ コードは Conscrypt を直接呼び出しません。プラットフォーム API 標準により、これらの API は下位互換性と上位互換性が維持されます。
  • コア プラットフォーム APIは、フレームワークが非公開機能にアクセスするために使用する隠し API です。これらは比較的限られています。最大のユーザーはNetworkSecurityConfigで、これは Conscrypt トラスト マネージャー (証明書を検証するコンポーネント) を拡張して、ネットワーク セキュリティ構成機能を実装します。
  • コア内 APIは、JCA および JSEE 機構によって反射的に呼び出される引数なしのコンストラクターに限定されます。