مخفی کردن

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

ماژول Conscrypt بهبودهای امنیتی را سرعت می بخشد و امنیت دستگاه را بدون تکیه بر به روز رسانی OTA بهبود می بخشد. این برنامه از کد جاوا و یک کتابخانه بومی برای ارائه اجرای Android TLS و همچنین بخش بزرگی از عملکرد رمزنگاری اندروید مانند ژنراتورهای کلیدی، رمزنگاری‌ها و خلاصه پیام استفاده می‌کند. Conscrypt به عنوان یک کتابخانه منبع باز در دسترس است، اگرچه در پلتفرم اندروید دارای برخی تخصص ها است.

ماژول Conscrypt از BoringSSL استفاده می‌کند، یک کتابخانه بومی که یک فورک Google از OpenSSL است و در بسیاری از محصولات Google برای رمزنگاری و TLS (به‌ویژه گوگل کروم)، در ارتباط با کد Conscrypt (هم جاوا و هم کد بومی) استفاده می‌شود. BoringSSL نسخه های رسمی ندارد (همه کاربران از سر خود می سازند) و هیچ تضمینی در مورد ثبات API یا ABI نمی دهد.

تغییرات اندروید 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 به صورت بازتابی نامیده می‌شوند.