加密貨幣

Conscrypt 模塊可加速安全改進並提高設備安全性,而無需依賴 OTA 更新。它使用 Java 代碼和本機庫來提供 Android TLS 實現以及大部分 Android 加密功能,例如密鑰生成器、密碼和消息摘要。 Conscrypt 可作為一個開源庫使用,儘管它在包含在 Android 平台中時有一些專門化。

Conscrypt 模塊使用BoringSSL ,這是一個本地庫,它是 OpenSSL 的 Google 分支,在許多 Google 產品中用於加密和 TLS(最著名的是 Google Chrome),以及 Conscrypt 代碼(Java 和本地代碼)。 BoringSSL 沒有正式版本(所有用戶都是從頭開始構建的),並且不保證 API 或 ABI 的穩定性。

Android 10 的變化

Android 9 不包含用於 Conscrypt 的特定於 Android 的公共 API,而是使用安全提供程序來實現 Java 加密體系結構 (JCA) 的標準類,包括 Cipher 和 MessageDigest,以及 Java 安全套接字擴展 (JSSE),包括 SSLSocket 和 SSLEngine。用戶與這些類交互,一些非公共的 Conscrypt API 被libcore或框架代碼使用。

Android 10 在android.net.ssl中添加了少量公共 API 方法來訪問javax.net.ssl下的類未公開的 Conscrypt 功能。 Android 10 還包含Bouncy Castle的精簡副本,以提供較低流行度的加密工具作為 Android 運行時的一部分(不包含在 Conscrypt 模塊中)。

格式和依賴

Conscrypt 模塊作為APEX文件分發,其中包括 Conscrypt Java 代碼和動態鏈接到 Android NDK 庫(例如liblog )的 Conscrypt 本機庫。本機庫還包括已通過 NIST 的 加密模塊驗證程序 (CMVP) 驗證的 BoringSSL 副本( 證書 #3753 )。

Conscrypt 模塊公開了以下 API:

  • 公共 APIjava.*javax.*下的包中的類和接口的擴展,以及android.net.ssl.*下的類。外部應用程序代碼不直接調用 Conscrypt。平台 API 標準確保這些 API 保持向後和向前兼容。
  • 核心平台 API是框架用來訪問非公共功能的隱藏 API。這些是相對有限的;最大的用戶是NetworkSecurityConfig ,它擴展了 Conscrypt 信任管理器(驗證證書的組件)來實現網絡安全配置功能
  • 內核內 API僅限於由 JCA 和 JSEE 機制反射調用的零參數構造函數。