از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
مخفی کردن
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
ماژول Conscrypt بهبودهای امنیتی را سرعت می بخشد و امنیت دستگاه را بدون تکیه بر به روز رسانی OTA بهبود می بخشد. این برنامه از کد جاوا و یک کتابخانه بومی برای ارائه اجرای Android TLS و همچنین بخش بزرگی از عملکرد رمزنگاری اندروید مانند ژنراتورهای کلیدی، رمزنگاریها و خلاصه پیام استفاده میکند. Conscrypt به عنوان یک کتابخانه منبع باز در دسترس است، اگرچه در پلتفرم اندروید دارای برخی تخصص ها است.
ماژول Conscrypt از BoringSSL استفاده میکند، یک کتابخانه بومی که یک فورک Google از OpenSSL است و در بسیاری از محصولات Google برای رمزنگاری و TLS (بهویژه گوگل کروم)، در ارتباط با کد Conscrypt (هم جاوا و هم کد بومی) استفاده میشود. BoringSSL نسخه های رسمی ندارد (همه کاربران از سر خود می سازند) و هیچ تضمینی در مورد ثبات API یا ABI نمی دهد.
تغییرات اندروید 15
اندروید 15 استفاده از TLS نسخه 1.0 و 1.1 را محدود می کند. این نسخهها قبلاً در اندروید منسوخ شده بودند، اما اکنون برای برنامههایی که اندروید 15 را هدف قرار میدهند غیرمجاز هستند.
تغییرات اندروید 14
اندروید 14 یک فروشگاه اعتماد ریشه قابل به روز رسانی در Conscrypt معرفی می کند. گواهینامه های CA (یا گواهی ها) ریشه های اعتماد را برای کلیدهای عمومی مورد استفاده در Android و اینترنت به طور کلی فراهم می کند. این گواهی ها به طور معمول برای اطمینان از امضای رمزنگاری مناسب بررسی می شوند، بنابراین باید در همه دستگاه هایی که به آنها متکی هستند ارائه و ذخیره شوند.
قبل از Mainline، Android گواهیها را در پارتیشن سیستم (در system/ca-certificates
) ذخیره میکرد و با هر نسخه اندروید بهروزرسانی میکرد. اکنون با Mainline، امکان بهروزرسانی گواهیها با استفاده از بهروزرسانیهای قطار اصلی وجود دارد. این قابلیت جدید باید فرآیندهای بهروزرسانی را سادهتر کند، به ما امکان دهد زمانهای بازگشت سریعتری برای مشکلات داشته باشیم و به افزایش طول عمر دستگاه کمک کند.
با شروع اندروید 14، گواهیهای اعتماد ریشه در ماژول Conscrypt APEX و پارتیشن سیستم ذخیره میشوند. برنامهها همچنان میتوانند گواهیهای خود را انتخاب کنند و رفتار گواهی را با استفاده از NetworkSecurityConfig
تغییر دهند.
اندروید 14 شامل سایر تغییرات ماژول Conscrypt است:
- پیاده سازی AES-CMAC MAC اضافه شد.
- اجرای MAC «PBEwithHmacSHA2-*» منسوخ و حذف شد.
- پشتیبانی محدود برای کلیدهای X25519، قراردادهای کلیدی و امضاها اضافه شد.
- BoringSSL برای صحت X.509 به روز شد.
- پشتیبانی از گواهینامه های امضا شده با MD5 در API های عمومی CertPath قطع شد. چنین گواهیهایی برای اتصالات TLS از سطح API 16 پذیرفته نشدهاند.
تغییرات اندروید 10
اندروید 9 شامل یک API عمومی مخصوص اندروید برای Conscrypt نمیشود، اما در عوض از یک ارائهدهنده امنیتی استفاده میکند که کلاسهای استانداردی را برای معماری رمزنگاری جاوا (JCA) شامل Cipher و MessageDigest، و Java Secure Socket Extension (JSSE)، از جمله SSLSocket و SSLEngine، پیادهسازی میکند. کاربران با آن کلاسها تعامل دارند و برخی از APIهای Conscrypt غیرعمومی توسط کدهای libcore
یا Framework استفاده میشوند.
Android 10 تعداد کمی از روشهای API عمومی را در android.net.ssl
اضافه میکند تا به عملکرد Conscrypt دسترسی پیدا کند که توسط کلاسهای زیر javax.net.ssl
در معرض نمایش نیست. اندروید 10 همچنین شامل یک نسخه باریک از Bouncy Castle برای ارائه ابزارهای رمزنگاری با محبوبیت کمتر به عنوان بخشی از Android Runtime است (که در ماژول Conscrypt گنجانده نشده است).
ماژول Conscrypt ( com.android.conscrypt
) به عنوان یک فایل APEX که شامل کد جاوا Conscrypt و یک کتابخانه بومی Conscrypt است که به صورت پویا به کتابخانههای Android NDK (مانند liblog
) پیوند میدهد، توزیع میشود. کتابخانه بومی همچنین شامل یک نسخه از BoringSSL است که از طریق برنامه اعتبارسنجی ماژول رمزنگاری (CMVP) NIST تأیید شده است ( گواهی شماره 3753 ).
ماژول Conscrypt API های زیر را در معرض دید قرار می دهد:
- APIهای عمومی افزونههای کلاسها و رابطها در بستههای تحت
java.*
و javax.*
، به علاوه کلاسهای تحت android.net.ssl.*
هستند. کد برنامه خارجی به طور مستقیم با Conscrypt تماس نمی گیرد. استانداردهای پلتفرم API تضمین می کنند که این APIها سازگار با عقب و جلو باقی می مانند. - APIهای پلتفرم اصلی ، APIهای پنهانی هستند که توسط چارچوب برای دسترسی به عملکرد غیرعمومی استفاده می شوند. اینها نسبتاً محدود هستند. بزرگترین کاربر
NetworkSecurityConfig
است که مدیریت اعتماد Conscrypt (جزئی که گواهینامه ها را تأیید می کند) را برای پیاده سازی ویژگی پیکربندی امنیت شبکه گسترش می دهد. - APIهای درون هستهای محدود به سازندههای آرگومان صفر هستند که توسط ماشینهای JCA و JSEE به صورت بازتابی نامیده میشوند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Conscrypt\n\nThe Conscrypt module accelerates security improvements and improves device\nsecurity without relying on OTA updates. It uses Java code and a native\nlibrary to provide the Android TLS implementation as well as a large portion\nof Android cryptographic functionality such as key generators, ciphers, and\nmessage digests. Conscrypt is available as an\n[open source\nlibrary](https://github.com/google/conscrypt), though it has some specializations when included in the Android\nplatform.\n\n\nThe Conscrypt module uses\n[BoringSSL](https://boringssl.googlesource.com/boringssl/),\na native library that is a Google fork of OpenSSL and which is used in many\nGoogle products for cryptography and TLS (most notably Google Chrome), in conjunction with\nConscrypt code (both Java and native code). BoringSSL doesn't have official releases (all users\nbuild from head) and makes no guarantees around API or ABI stability.\n\nChanges in Android 15\n---------------------\n\n\nAndroid 15 restricts the usage of TLS versions 1.0 and 1.1. These versions\nhad previously been deprecated in Android, but are now disallowed for apps targeting Android\n15.\n\nChanges in Android 14\n---------------------\n\n\nAndroid 14 introduces an updatable root trust store within Conscrypt. CA\ncertificates (or certs) provide the roots of trust for public keys used within Android and the\ninternet at large. These certificates are routinely checked to ensure proper cryptographic signing,\nso they must be provided and stored on all devices that rely on them.\n\n\nPrior to Mainline, Android stored certificates in the system partition (in\n`system/ca-certificates`) and updated them with every Android release. Now with Mainline,\nit's possible to update certificates more frequently using Mainline train updates. This new\ncapability should streamline updating processes, allow us to have faster turnaround times for\nissues, and help to extend device lifetimes.\n\n\nStarting in Android 14, root trust certificates are stored in the Conscrypt\nmodule APEX and the system partition. Apps can still choose their own certificates and modify\ncertificate behavior using `NetworkSecurityConfig`.\n\nAndroid 14 includes these other Conscrypt module changes:\n\n- Added AES-CMAC MAC implementation.\n- Deprecated and removed \\`PBEwithHmacSHA2-\\*\\` MAC implementations.\n- Added limited support for X25519 keys, key agreements, and signatures.\n- Updated BoringSSL for X.509 correctness.\n- Dropped support for MD5-signed certificates in the public CertPath APIs. Such certificates haven't been accepted for TLS connections since API level 16.\n\nChanges in Android 10\n---------------------\n\n\nAndroid 9 doesn't include an Android-specific public API for Conscrypt but\ninstead uses a security provider that implements standard classes for Java\nCryptography Architecture (JCA) including Cipher and MessageDigest, and\nJava Secure Socket Extension (JSSE), including SSLSocket and SSLEngine.\nUsers interact with those classes and some nonpublic Conscrypt APIs are used\nby `libcore` or frameworks code.\n\n\nAndroid 10 adds a small number of public API methods\nin `android.net.ssl` to access Conscrypt functionality that isn't\nexposed by the classes under `javax.net.ssl`. Android\n10 also includes a slimmed copy of\n[Bouncy Castle](https://en.wikipedia.org/wiki/Bouncy_Castle_(cryptography)) to provide lower-popularity cryptographic\ntools as part of Android Runtime (not included in the Conscrypt module).\n\nFormat and dependencies\n-----------------------\n\nThe Conscrypt module (`com.android.conscrypt`) is distributed as an [APEX](/docs/core/ota/apex) file that\nincludes the Conscrypt Java code and a Conscrypt native library that dynamically\nlinks to Android NDK libraries (such as `liblog`). The native library\nalso includes a copy of BoringSSL that has has been validated ([Certificate #3753](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/3753)) through NIST's [Cryptographic Module Validation Program (CMVP)](https://csrc.nist.gov/projects/cryptographic-module-validation-program).\n| **Note:** The Conscrypt module includes [/external/conscrypt](https://android.googlesource.com/platform/external/conscrypt/) and [/external/boringssl](https://android.googlesource.com/platform/external/boringssl/), but doesn't include `/external/bouncycastle`.\n\n\nThe Conscrypt module exposes the following APIs:\n\n- **Public APIs** are extensions of classes and interfaces in packages under `java.*` and `javax.*`, plus classes under `android.net.ssl.*`. External app code doesn't call Conscrypt directly. Platform API standards ensure that these APIs remain backward- and forward-compatible.\n- **Core platform APIs** are hidden APIs used by the framework to access nonpublic functionality. These are relatively limited; the largest user is `NetworkSecurityConfig`, which extends the Conscrypt trust manager (the component that verifies certificates) to implement the [network security configuration feature](https://developer.android.com/training/articles/security-config).\n- **Intra-core APIs** are limited to zero-argument constructors called reflectively by the JCA and JSEE machinery."]]