Conscrypt মডিউল নিরাপত্তা উন্নতি ত্বরান্বিত করে এবং OTA আপডেটের উপর নির্ভর না করে ডিভাইসের নিরাপত্তা উন্নত করে। এটি Android TLS বাস্তবায়নের পাশাপাশি Android ক্রিপ্টোগ্রাফিক কার্যকারিতার একটি বড় অংশ যেমন কী জেনারেটর, সাইফার এবং মেসেজ ডাইজেস্ট প্রদান করতে জাভা কোড এবং একটি নেটিভ লাইব্রেরি ব্যবহার করে। কনস্ক্রিপ্ট একটি ওপেন সোর্স লাইব্রেরি হিসাবে উপলব্ধ, যদিও অ্যান্ড্রয়েড প্ল্যাটফর্মে অন্তর্ভুক্ত করা হলে এর কিছু বিশেষত্ব রয়েছে।
কনস্ক্রিপ্ট মডিউল বোরিংএসএসএল ব্যবহার করে, একটি নেটিভ লাইব্রেরি যা ওপেনএসএসএল-এর একটি গুগল ফর্ক এবং যা ক্রিপ্টোগ্রাফি এবং টিএলএস (সবচেয়ে উল্লেখযোগ্যভাবে গুগল ক্রোম) এর জন্য অনেক Google পণ্যে কনস্ক্রিপ্ট কোড (জাভা এবং নেটিভ কোড উভয়ই) এর সাথে ব্যবহার করা হয়। বোরিংএসএসএল-এর অফিসিয়াল রিলিজ নেই (সমস্ত ব্যবহারকারীরা মাথা থেকে তৈরি করে) এবং এপিআই বা এবিআই স্থায়িত্ব সম্পর্কে কোনও গ্যারান্টি দেয় না।
অ্যান্ড্রয়েড 15 এ পরিবর্তন
Android 15 TLS সংস্করণ 1.0 এবং 1.1 ব্যবহার সীমাবদ্ধ করে। এই সংস্করণগুলি পূর্বে অ্যান্ড্রয়েডে অবহেলিত ছিল, কিন্তু এখন Android 15 টার্গেট করা অ্যাপগুলির জন্য অননুমোদিত।
Android 14 এ পরিবর্তন
Android 14 কনস্ক্রিপ্টের মধ্যে একটি আপডেটযোগ্য রুট ট্রাস্ট স্টোর প্রবর্তন করেছে। CA সার্টিফিকেট (বা শংসাপত্র) অ্যান্ড্রয়েড এবং ইন্টারনেটে ব্যাপকভাবে ব্যবহৃত পাবলিক কীগুলির জন্য বিশ্বাসের মূল প্রদান করে। সঠিক ক্রিপ্টোগ্রাফিক স্বাক্ষর নিশ্চিত করার জন্য এই সার্টিফিকেটগুলি নিয়মিতভাবে পরীক্ষা করা হয়, তাই সেগুলি অবশ্যই তাদের উপর নির্ভরশীল সমস্ত ডিভাইসে সরবরাহ এবং সংরক্ষণ করতে হবে৷
মেইনলাইনের আগে, অ্যান্ড্রয়েড সিস্টেম পার্টিশনে সার্টিফিকেট সংরক্ষণ করত ( system/ca-certificates
) এবং প্রতিটি অ্যান্ড্রয়েড রিলিজের সাথে আপডেট করত। এখন মেইনলাইনের সাথে, মেইনলাইন ট্রেন আপডেটগুলি ব্যবহার করে আরও ঘন ঘন সার্টিফিকেট আপডেট করা সম্ভব। এই নতুন ক্ষমতাটি আপডেট করার প্রক্রিয়াগুলিকে স্ট্রীমলাইন করা উচিত, সমস্যাগুলির জন্য আমাদের দ্রুত টার্নঅ্যারাউন্ড সময় পেতে দেয় এবং ডিভাইসের জীবনকাল প্রসারিত করতে সহায়তা করে।
অ্যান্ড্রয়েড 14 থেকে শুরু করে, রুট ট্রাস্ট সার্টিফিকেট কনস্ক্রিপ্ট মডিউল APEX এবং সিস্টেম পার্টিশনে সংরক্ষণ করা হয়। Apps এখনও তাদের নিজস্ব শংসাপত্র চয়ন করতে পারে এবং NetworkSecurityConfig
ব্যবহার করে শংসাপত্রের আচরণ পরিবর্তন করতে পারে।
অ্যান্ড্রয়েড 14 এই অন্যান্য কনস্ক্রিপ্ট মডিউল পরিবর্তনগুলি অন্তর্ভুক্ত করে:
- AES-CMAC MAC বাস্তবায়ন যোগ করা হয়েছে।
- 'PBEwithHmacSHA2-*' MAC বাস্তবায়নকে অবমূল্যায়িত ও সরানো হয়েছে।
- X25519 কী, মূল চুক্তি এবং স্বাক্ষরের জন্য সীমিত সমর্থন যোগ করা হয়েছে।
- X.509 সঠিকতার জন্য বোরিংএসএসএল আপডেট করা হয়েছে।
- সর্বজনীন CertPath API-এ MD5-স্বাক্ষরিত শংসাপত্রের জন্য সমর্থন বাদ দেওয়া হয়েছে। API স্তর 16 থেকে TLS সংযোগের জন্য এই ধরনের শংসাপত্র গ্রহণ করা হয়নি।
Android 10 এ পরিবর্তন
অ্যান্ড্রয়েড 9 কনস্ক্রিপ্টের জন্য একটি অ্যান্ড্রয়েড-নির্দিষ্ট পাবলিক API অন্তর্ভুক্ত করে না তবে পরিবর্তে একটি নিরাপত্তা প্রদানকারী ব্যবহার করে যা জাভা ক্রিপ্টোগ্রাফি আর্কিটেকচার (JCA) এর জন্য সাইফার এবং মেসেজডাইজেস্ট এবং জাভা সিকিউর সকেট এক্সটেনশন (JSSE) সহ SSLSocket এবং SSLEngine সহ স্ট্যান্ডার্ড ক্লাসগুলি প্রয়োগ করে৷ ব্যবহারকারীরা সেই ক্লাসগুলির সাথে যোগাযোগ করে এবং কিছু অপাবলিক কনস্ক্রিপ্ট API libcore
বা ফ্রেমওয়ার্ক কোড দ্বারা ব্যবহৃত হয়।
Android 10 কনস্ক্রিপ্ট কার্যকারিতা অ্যাক্সেস করতে android.net.ssl
এ অল্প সংখ্যক পাবলিক API পদ্ধতি যোগ করে যা javax.net.ssl
এর অধীনে ক্লাস দ্বারা প্রকাশ করা হয় না। অ্যান্ড্রয়েড 10 এ অ্যান্ড্রয়েড রানটাইমের অংশ হিসাবে কম জনপ্রিয়তার ক্রিপ্টোগ্রাফিক সরঞ্জাম সরবরাহ করতে বাউন্সি ক্যাসলের একটি স্লিমড কপি অন্তর্ভুক্ত রয়েছে (কনস্ক্রিপ্ট মডিউলে অন্তর্ভুক্ত নয়)।
বিন্যাস এবং নির্ভরতা
Conscrypt মডিউল ( com.android.conscrypt
) একটি APEX ফাইল হিসাবে বিতরণ করা হয় যাতে কনস্ক্রিপ্ট জাভা কোড এবং একটি কনস্ক্রিপ্ট নেটিভ লাইব্রেরি রয়েছে যা গতিশীলভাবে Android NDK লাইব্রেরির সাথে লিঙ্ক করে (যেমন liblog
)। নেটিভ লাইব্রেরিতে BoringSSL-এর একটি কপিও রয়েছে যা NIST-এর ক্রিপ্টোগ্রাফিক মডিউল ভ্যালিডেশন প্রোগ্রাম (CMVP) এর মাধ্যমে যাচাই করা হয়েছে ( সার্টিফিকেট #3753 )।
Conscrypt মডিউল নিম্নলিখিত APIs প্রকাশ করে:
- পাবলিক এপিআই হল
java.*
এবংjavax.*
, প্লাসandroid.net.ssl.*
এর অধীনে থাকা প্যাকেজের ক্লাস এবং ইন্টারফেসের এক্সটেনশন। বহিরাগত অ্যাপ কোড সরাসরি কনস্ক্রিপ্ট কল করে না। প্ল্যাটফর্ম API মানগুলি নিশ্চিত করে যে এই APIগুলি পিছিয়ে- এবং এগিয়ে-সামঞ্জস্যপূর্ণ থাকে। - কোর প্ল্যাটফর্ম APIগুলি হল লুকানো APIগুলি যা অপাবলিক কার্যকারিতা অ্যাক্সেস করতে ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত হয়। এগুলো তুলনামূলকভাবে সীমিত; সবচেয়ে বড় ব্যবহারকারী হল
NetworkSecurityConfig
, যা নেটওয়ার্ক নিরাপত্তা কনফিগারেশন বৈশিষ্ট্য বাস্তবায়নের জন্য Conscrypt ট্রাস্ট ম্যানেজার (যে উপাদানটি সার্টিফিকেট যাচাই করে) প্রসারিত করে। - ইন্ট্রা-কোর এপিআইগুলি জেসিএ এবং জেএসইই মেশিনের দ্বারা প্রতিফলিতভাবে বলা শূন্য-আর্গুমেন্ট কনস্ট্রাক্টরের মধ্যে সীমাবদ্ধ।