বেশিরভাগ ডিস্ক এবং ফাইল এনক্রিপশন সফ্টওয়্যারের মতো, অ্যান্ড্রয়েডের স্টোরেজ এনক্রিপশন ঐতিহ্যগতভাবে সিস্টেম মেমোরিতে উপস্থিত কাঁচা এনক্রিপশন কীগুলির উপর নির্ভর করে যাতে এনক্রিপশনটি সম্পাদন করা যায়। এমনকি যখন এনক্রিপশনটি সফ্টওয়্যারের পরিবর্তে ডেডিকেটেড হার্ডওয়্যার দ্বারা সম্পাদিত হয়, তখনও সফ্টওয়্যারকে সাধারণত কাঁচা এনক্রিপশন কীগুলি পরিচালনা করতে হয়।
ঐতিহ্যগতভাবে এটিকে কোনও সমস্যা হিসেবে দেখা হয় না কারণ অফলাইন আক্রমণের সময় কীগুলি উপস্থিত থাকে না, যা প্রধান ধরণের আক্রমণ যা থেকে রক্ষা করার জন্য স্টোরেজ এনক্রিপশন ব্যবহার করা হয়। তবে, অন্যান্য ধরণের আক্রমণের বিরুদ্ধে বর্ধিত সুরক্ষা প্রদানের ইচ্ছা রয়েছে, যেমন কোল্ড বুট আক্রমণ এবং অনলাইন আক্রমণ যেখানে আক্রমণকারী ডিভাইসটিকে সম্পূর্ণরূপে আপস না করেই সিস্টেম মেমোরি লিক করতে সক্ষম হতে পারে।
এই সমস্যা সমাধানের জন্য, অ্যান্ড্রয়েড ১১ হার্ডওয়্যার-র্যাপড কীগুলির জন্য সমর্থন চালু করেছে, যেখানে হার্ডওয়্যার সমর্থন বিদ্যমান। হার্ডওয়্যার-র্যাপড কীগুলি হল স্টোরেজ কী যা শুধুমাত্র ডেডিকেটেড হার্ডওয়্যারের কাছে কাঁচা আকারে পরিচিত; সফ্টওয়্যার এই কীগুলি কেবল মোড়ানো (এনক্রিপ্ট করা) আকারে দেখে এবং কাজ করে। এই হার্ডওয়্যারটি স্টোরেজ কী তৈরি এবং আমদানি করতে, ক্ষণস্থায়ী এবং দীর্ঘমেয়াদী আকারে স্টোরেজ কী মোড়ানো, সাবকিগুলি বের করতে, একটি সাবকি সরাসরি একটি ইনলাইন ক্রিপ্টো ইঞ্জিনে প্রোগ্রাম করতে এবং সফ্টওয়্যারে একটি পৃথক সাবকি ফিরিয়ে দিতে সক্ষম হতে হবে।
দ্রষ্টব্য: একটি ইনলাইন ক্রিপ্টো ইঞ্জিন (অথবা ইনলাইন এনক্রিপশন হার্ডওয়্যার ) বলতে এমন হার্ডওয়্যার বোঝায় যা স্টোরেজ ডিভাইসে/থেকে/যাওয়ার পথে ডেটা এনক্রিপ্ট/ডিক্রিপ্ট করে। সাধারণত এটি একটি UFS বা eMMC হোস্ট কন্ট্রোলার যা সংশ্লিষ্ট JEDEC স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত ক্রিপ্টো এক্সটেনশনগুলি বাস্তবায়ন করে।
ডিজাইন
এই বিভাগে হার্ডওয়্যার-র্যাপড কী বৈশিষ্ট্যের নকশা উপস্থাপন করা হয়েছে, যার মধ্যে এর জন্য কী কী হার্ডওয়্যার সাপোর্ট প্রয়োজন তাও অন্তর্ভুক্ত রয়েছে। এই আলোচনাটি ফাইল-ভিত্তিক এনক্রিপশন (FBE) এর উপর আলোকপাত করে, তবে সমাধানটি মেটাডেটা এনক্রিপশনের ক্ষেত্রেও প্রযোজ্য।
সিস্টেম মেমোরিতে কাঁচা এনক্রিপশন কীগুলির প্রয়োজন এড়ানোর একটি উপায় হল সেগুলিকে শুধুমাত্র একটি ইনলাইন ক্রিপ্টো ইঞ্জিনের কীলটে রাখা। তবে, এই পদ্ধতিতে কিছু সমস্যার সম্মুখীন হতে হয়:
- এনক্রিপশন কী-এর সংখ্যা কী-লটের সংখ্যার চেয়ে বেশি হতে পারে।
- স্টোরেজ হোস্ট কন্ট্রোলার রিসেট করা হলে ইনলাইন ক্রিপ্টো ইঞ্জিনগুলি সাধারণত তাদের কীলটগুলির বিষয়বস্তু হারায়। স্টোরেজ হোস্ট কন্ট্রোলার রিসেট করা একটি স্ট্যান্ডার্ড ত্রুটি পুনরুদ্ধার পদ্ধতি যা নির্দিষ্ট ধরণের স্টোরেজ ত্রুটি দেখা দিলে কার্যকর করা হয় এবং এই ধরনের ত্রুটি যে কোনও সময় ঘটতে পারে। অতএব, যখন ইনলাইন ক্রিপ্টো ব্যবহার করা হচ্ছে, তখন অপারেটিং সিস্টেমকে সর্বদা ব্যবহারকারীর হস্তক্ষেপ ছাড়াই কীলটগুলি পুনরায় প্রোগ্রাম করার জন্য প্রস্তুত থাকতে হবে।
- ইনলাইন ক্রিপ্টো ইঞ্জিনগুলি কেবল ডিস্কে থাকা সম্পূর্ণ ডেটা ব্লক এনক্রিপ্ট/ডিক্রিপ্ট করার জন্য ব্যবহার করা যেতে পারে। তবে, FBE-এর ক্ষেত্রে, সফ্টওয়্যারটিকে এখনও অন্যান্য ক্রিপ্টোগ্রাফিক কাজ যেমন ফাইলের নাম এনক্রিপশন এবং কী শনাক্তকারী বের করার জন্য সক্ষম হতে হবে। এই অন্যান্য কাজ করার জন্য সফ্টওয়্যারকে এখনও raw FBE কীগুলিতে অ্যাক্সেসের প্রয়োজন হবে।
এই সমস্যাগুলি এড়াতে, স্টোরেজ কীগুলিকে হার্ডওয়্যার-র্যাপড কীগুলিতে তৈরি করা হয়, যা খোলা যায় এবং শুধুমাত্র ডেডিকেটেড হার্ডওয়্যার দ্বারা ব্যবহার করা যায়। এটি সীমাহীন সংখ্যক কী সমর্থন করার অনুমতি দেয়। এছাড়াও, কী শ্রেণিবিন্যাস পরিবর্তন করা হয় এবং আংশিকভাবে এই হার্ডওয়্যারে স্থানান্তরিত করা হয়, যা একটি সাবকিকে সফ্টওয়্যারে ফিরিয়ে আনার অনুমতি দেয় এমন কাজের জন্য যা একটি ইনলাইন ক্রিপ্টো ইঞ্জিন ব্যবহার করতে পারে না।
মূল শ্রেণিবিন্যাস
কী ডেরিভেশন ফাংশন (KDF) যেমন HKDF ব্যবহার করে অন্যান্য কী থেকে কী তৈরি করা যেতে পারে, যার ফলে একটি কী হায়ারার্কি তৈরি হয়।
হার্ডওয়্যার-র্যাপড কী ব্যবহার না করা হলে নিম্নলিখিত চিত্রটি FBE-এর জন্য একটি সাধারণ কী শ্রেণিবিন্যাস চিত্রিত করে:
FBE ক্লাস কী হল একটি কাঁচা এনক্রিপশন কী যা অ্যান্ড্রয়েড লিনাক্স কার্নেলে পাঠায় নির্দিষ্ট এনক্রিপ্ট করা ডিরেক্টরিগুলির একটি সেট আনলক করার জন্য, যেমন একটি নির্দিষ্ট অ্যান্ড্রয়েড ব্যবহারকারীর জন্য ক্রেডেনশিয়াল-এনক্রিপ্ট করা স্টোরেজ। (কার্নেলে, এই কীটিকে fscrypt মাস্টার কী বলা হয়।) এই কী থেকে, কার্নেল নিম্নলিখিত সাবকিগুলি গ্রহণ করে:
- কী শনাক্তকারী। এটি এনক্রিপশনের জন্য ব্যবহৃত হয় না, বরং এটি এমন একটি মান যা কোনও নির্দিষ্ট ফাইল বা ডিরেক্টরি সুরক্ষিত কী সনাক্ত করতে ব্যবহৃত হয়।
- ফাইলের বিষয়বস্তু এনক্রিপশন কী
- ফাইলের নাম এনক্রিপশন কী
বিপরীতে, নিম্নলিখিত চিত্রটি হার্ডওয়্যার-র্যাপড কী ব্যবহার করার সময় FBE-এর কী শ্রেণিবিন্যাস চিত্রিত করে:
আগের কেসের তুলনায়, কী হায়ারার্কিতে একটি অতিরিক্ত স্তর যোগ করা হয়েছে, এবং ফাইল কন্টেন্ট এনক্রিপশন কী স্থানান্তরিত করা হয়েছে। রুট নোড এখনও সেই কীটি প্রতিনিধিত্ব করে যা অ্যান্ড্রয়েড এনক্রিপ্ট করা ডিরেক্টরিগুলির একটি সেট আনলক করার জন্য লিনাক্সে প্রেরণ করে। যাইহোক, এখন সেই কীটি ক্ষণস্থায়ীভাবে মোড়ানো আকারে রয়েছে এবং ব্যবহারের জন্য এটি ডেডিকেটেড হার্ডওয়্যারে প্রেরণ করতে হবে। এই হার্ডওয়্যারটিতে দুটি ইন্টারফেস প্রয়োগ করতে হবে যা একটি ক্ষণস্থায়ীভাবে মোড়ানো কী গ্রহণ করে:
-
inline_encryption_keyবের করার জন্য একটি ইন্টারফেস এবং এটি সরাসরি ইনলাইন ক্রিপ্টো ইঞ্জিনের একটি কীলটে প্রোগ্রাম করা যায়। এটি সফ্টওয়্যারের raw কী অ্যাক্সেস না করেই ফাইলের বিষয়বস্তু এনক্রিপ্ট/ডিক্রিপ্ট করার অনুমতি দেয়। অ্যান্ড্রয়েড সাধারণ কার্নেলগুলিতে, এই ইন্টারফেসটিblk_crypto_ll_ops::keyslot_programঅপারেশনের সাথে সঙ্গতিপূর্ণ, যা স্টোরেজ ড্রাইভার দ্বারা প্রয়োগ করা আবশ্যক। -
sw_secret("সফ্টওয়্যার সিক্রেট" -- কিছু জায়গায় "রঙের গোপন"ও বলা হয়) থেকে প্রাপ্ত এবং ফেরত দেওয়ার জন্য একটি ইন্টারফেস, যা লিনাক্স ফাইল কন্টেন্ট এনক্রিপশন ছাড়া অন্য সবকিছুর জন্য সাবকিগুলি প্রাপ্ত করার জন্য ব্যবহার করে। অ্যান্ড্রয়েড সাধারণ কার্নেলগুলিতে, এই ইন্টারফেসটিblk_crypto_ll_ops::derive_sw_secretঅপারেশনের সাথে মিলে যায়, যা স্টোরেজ ড্রাইভার দ্বারা প্রয়োগ করা আবশ্যক।
raw স্টোরেজ কী থেকে inline_encryption_key এবং sw_secret বের করার জন্য, হার্ডওয়্যারটিকে একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী KDF ব্যবহার করতে হবে। এই KDF-কে অবশ্যই ক্রিপ্টোগ্রাফির সর্বোত্তম অনুশীলন অনুসরণ করতে হবে; এর নিরাপত্তা শক্তি কমপক্ষে 256 বিট থাকতে হবে, যা পরবর্তীতে ব্যবহৃত যেকোনো অ্যালগরিদমের জন্য যথেষ্ট। প্রতিটি ধরণের সাবকি বের করার সময় এটিকে একটি স্বতন্ত্র লেবেল এবং প্রসঙ্গ ব্যবহার করতে হবে যাতে নিশ্চিত করা যায় যে ফলস্বরূপ সাবকিগুলি ক্রিপ্টোগ্রাফিকভাবে বিচ্ছিন্ন, অর্থাৎ, তাদের মধ্যে একটির জ্ঞান অন্য কোনও প্রকাশ করে না। কী স্ট্রেচিং প্রয়োজন হয় না, কারণ raw স্টোরেজ কী ইতিমধ্যেই একটি অভিন্ন র্যান্ডম কী।
টেকনিক্যালি, নিরাপত্তার প্রয়োজনীয়তা পূরণ করে এমন যেকোনো KDF ব্যবহার করা যেতে পারে। তবে, পরীক্ষার উদ্দেশ্যে, vts_kernel_encryption_test সফ্টওয়্যারে একই KDF প্রয়োগ করে অন-ডিস্ক সিফারটেক্সট পুনরুত্পাদন করে এবং এটি সঠিক কিনা তা যাচাই করে। পরীক্ষার সহজতার জন্য এবং একটি নিরাপদ এবং ইতিমধ্যে পর্যালোচনা করা KDF ব্যবহার করা হয়েছে তা নিশ্চিত করার জন্য, আমরা সুপারিশ করি যে হার্ডওয়্যারটি পরীক্ষাটি পরীক্ষা করে এমন ডিফল্ট KDF প্রয়োগ করে। যে হার্ডওয়্যারগুলি একটি ভিন্ন KDF ব্যবহার করে, সেগুলির জন্য পরীক্ষাটি কীভাবে কনফিগার করবেন তা জানতে টেস্ট র্যাপড কীগুলি দেখুন।
চাবি মোড়ানো
হার্ডওয়্যার-মোড়ানো কীগুলির নিরাপত্তা লক্ষ্য পূরণের জন্য, দুই ধরণের কী মোড়ানো সংজ্ঞায়িত করা হয়েছে:
- ক্ষণস্থায়ী মোড়ক : হার্ডওয়্যারটি একটি কী ব্যবহার করে কাঁচা কী এনক্রিপ্ট করে যা প্রতিটি বুটে এলোমেলোভাবে তৈরি হয় এবং সরাসরি হার্ডওয়্যারের বাইরে প্রকাশিত হয় না।
- দীর্ঘমেয়াদী মোড়ক : হার্ডওয়্যারটি হার্ডওয়্যারের মধ্যে তৈরি একটি অনন্য, স্থায়ী কী ব্যবহার করে কাঁচা কী এনক্রিপ্ট করে যা সরাসরি হার্ডওয়্যারের বাইরে প্রকাশিত হয় না।
স্টোরেজ আনলক করার জন্য লিনাক্স কার্নেলে পাঠানো সমস্ত কী ক্ষণস্থায়ীভাবে মোড়ানো থাকে। এটি নিশ্চিত করে যে যদি কোনও আক্রমণকারী সিস্টেম মেমরি থেকে একটি অব্যবহৃত কী বের করতে সক্ষম হয়, তবে সেই কীটি কেবল ডিভাইসের বাইরেই নয়, রিবুট করার পরে ডিভাইসেও অব্যবহারযোগ্য হয়ে যায়।
একই সময়ে, অ্যান্ড্রয়েডকে এখনও ডিস্কে কীগুলির একটি এনক্রিপ্টেড সংস্করণ সংরক্ষণ করতে সক্ষম হতে হবে যাতে সেগুলি প্রথমেই আনলক করা যায়। এই উদ্দেশ্যে কাঁচা কীগুলি কাজ করবে। তবে, কাঁচা কীগুলি কখনই সিস্টেম মেমোরিতে উপস্থিত না থাকা বাঞ্ছনীয় যাতে বুট করার সময় বের করা হলেও ডিভাইসের বাইরে ব্যবহার করার জন্য সেগুলি কখনই বের করা না যায়। এই কারণে, দীর্ঘমেয়াদী মোড়কের ধারণাটি সংজ্ঞায়িত করা হয়েছে।
এই দুটি ভিন্ন উপায়ে মোড়ানো কী পরিচালনা সমর্থন করার জন্য, হার্ডওয়্যারকে নিম্নলিখিত ইন্টারফেসগুলি বাস্তবায়ন করতে হবে:
- স্টোরেজ কী তৈরি এবং আমদানি করার জন্য ইন্টারফেস, যা দীর্ঘমেয়াদী মোড়ানো আকারে ফিরিয়ে আনে। এই ইন্টারফেসগুলি KeyMint এর মাধ্যমে পরোক্ষভাবে অ্যাক্সেস করা হয় এবং এগুলি
TAG_STORAGE_KEYKeyMint ট্যাগের সাথে সঙ্গতিপূর্ণ। "জেনারেট" ক্ষমতাটিvoldদ্বারা Android দ্বারা ব্যবহারের জন্য নতুন স্টোরেজ কী তৈরি করতে ব্যবহৃত হয়, যেখানে "আমদানি" ক্ষমতাটিvts_kernel_encryption_testদ্বারা পরীক্ষা কী আমদানি করতে ব্যবহৃত হয়। - একটি দীর্ঘমেয়াদী মোড়ানো স্টোরেজ কীকে একটি ক্ষণস্থায়ী-মোড়ানো স্টোরেজ কীতে রূপান্তর করার জন্য একটি ইন্টারফেস। এটি
convertStorageKeyToEphemeralKeyMint পদ্ধতির সাথে সম্পর্কিত। স্টোরেজ আনলক করার জন্য এই পদ্ধতিটিvoldএবংvts_kernel_encryption_testউভয় দ্বারা ব্যবহৃত হয়।
কী মোড়ানো অ্যালগরিদম একটি বাস্তবায়ন বিবরণ, তবে এটিতে র্যান্ডম IV সহ AES-256-GCM এর মতো একটি শক্তিশালী AEAD ব্যবহার করা উচিত।
সফ্টওয়্যার পরিবর্তন প্রয়োজন
AOSP-তে ইতিমধ্যেই হার্ডওয়্যার-র্যাপড কী সমর্থন করার জন্য একটি মৌলিক কাঠামো রয়েছে। এর মধ্যে রয়েছে vold এর মতো ইউজারস্পেস উপাদানগুলিতে সমর্থন, সেইসাথে blk-crypto , fscrypt এবং dm-default-key- তে লিনাক্স কার্নেল সমর্থন।
তবে, বাস্তবায়ন-নির্দিষ্ট কিছু পরিবর্তন প্রয়োজন।
KeyMint পরিবর্তন
TAG_STORAGE_KEY সমর্থন করার জন্য এবং convertStorageKeyToEphemeral পদ্ধতি বাস্তবায়নের জন্য ডিভাইসের KeyMint বাস্তবায়ন পরিবর্তন করতে হবে।
Keymaster-এ, convertStorageKeyToEphemeral এর পরিবর্তে exportKey ব্যবহার করা হয়েছিল।
লিনাক্স কার্নেলের পরিবর্তন
ডিভাইসের ইনলাইন ক্রিপ্টো ইঞ্জিনের জন্য লিনাক্স কার্নেল ড্রাইভারটি হার্ডওয়্যার-র্যাপড কী সমর্থন করার জন্য পরিবর্তন করতে হবে।
android14 এবং উচ্চতর কার্নেলের জন্য, blk_crypto_profile::key_types_supported এ BLK_CRYPTO_KEY_TYPE_HW_WRAPPED সেট করুন, blk_crypto_ll_ops::keyslot_program এবং blk_crypto_ll_ops::keyslot_evict সাপোর্ট প্রোগ্রামিং/ইভিকটিং হার্ডওয়্যার-র্যাপড কী তৈরি করুন এবং blk_crypto_ll_ops::derive_sw_secret বাস্তবায়ন করুন।
android12 এবং android13 কার্নেলের জন্য, blk_keyslot_manager::features এ BLK_CRYPTO_FEATURE_WRAPPED_KEYS সেট করুন, blk_ksm_ll_ops::keyslot_program এবং blk_ksm_ll_ops::keyslot_evict সাপোর্ট প্রোগ্রামিং/ইভিকটিং হার্ডওয়্যার-র্যাপড কী তৈরি করুন এবং blk_ksm_ll_ops::derive_raw_secret বাস্তবায়ন করুন।
android11 কার্নেলের জন্য, keyslot_manager::features এ BLK_CRYPTO_FEATURE_WRAPPED_KEYS সেট করুন, keyslot_mgmt_ll_ops::keyslot_program এবং keyslot_mgmt_ll_ops::keyslot_evict সাপোর্ট প্রোগ্রামিং/ইভিকটিং হার্ডওয়্যার-র্যাপড কী তৈরি করুন এবং keyslot_mgmt_ll_ops::derive_raw_secret বাস্তবায়ন করুন।
মোড়ানো চাবি পরীক্ষা করুন
যদিও হার্ডওয়্যার-র্যাপড কী দিয়ে এনক্রিপশন পরীক্ষা করা কাঁচা কী দিয়ে এনক্রিপশনের চেয়ে কঠিন, তবুও একটি টেস্ট কী আমদানি করে এবং হার্ডওয়্যার যে কী ডেরিভেশন করে তা পুনরায় বাস্তবায়ন করে পরীক্ষা করা সম্ভব। এটি vts_kernel_encryption_test এ বাস্তবায়িত হয়। এই পরীক্ষাটি চালানোর জন্য, চালান:
atest -v vts_kernel_encryption_test
পরীক্ষার লগটি পড়ুন এবং যাচাই করুন যে হার্ডওয়্যার-র্যাপড কী টেস্ট কেসগুলি (উদাহরণস্বরূপ, FBEPolicyTest.TestAesInlineCryptOptimizedHwWrappedKeyPolicy এবং DmDefaultKeyTest.TestHwWrappedKey ) হার্ডওয়্যার-র্যাপড কীগুলি সনাক্ত না হওয়ার কারণে বাদ দেওয়া হয়নি, কারণ সেই ক্ষেত্রে পরীক্ষার ফলাফল এখনও "পাস" করা হয়।
ডিফল্টরূপে, vts_kernel_encryption_test ধরে নেয় যে হার্ডওয়্যারটি একটি KDF প্রয়োগ করে যাকে এটি kdf1 বলে। এই KDF NIST SP 800-108 থেকে KDFs এর কাউন্টার মোড পরিবারের অন্তর্গত, এবং এটি AES-256-CMAC কে সিউডোর্যান্ডম ফাংশন হিসেবে ব্যবহার করে। CMAC সম্পর্কে আরও তথ্যের জন্য, CMAC স্পেসিফিকেশন দেখুন। KDF প্রতিটি সাবকি বের করার সময় নির্দিষ্ট প্রসঙ্গ এবং লেবেল ব্যবহার করে। হার্ডওয়্যারের এই KDF বাস্তবায়ন করা উচিত, প্রতিটি সাবকি বের করার সময় নির্দিষ্ট ইনপুট স্ট্রিংয়ের প্রসঙ্গ, লেবেল এবং ফর্ম্যাটিং এর সঠিক পছন্দ সহ।
তবে, vts_kernel_encryption_test অতিরিক্ত KDFs kdf2 থেকে kdf4 পর্যন্ত প্রয়োগ করে। এগুলি kdf1 এর মতোই সমানভাবে সুরক্ষিত এবং কেবলমাত্র নির্দিষ্ট ইনপুট স্ট্রিংয়ের প্রসঙ্গ, লেবেল এবং ফর্ম্যাটিংয়ের ক্ষেত্রে পার্থক্য করে। এগুলি কেবল বিভিন্ন হার্ডওয়্যার সামঞ্জস্য করার জন্য বিদ্যমান।
যেসব ডিভাইস ভিন্ন KDF ব্যবহার করে, তাদের জন্য PRODUCT_VENDOR_PROPERTIES এ ro.crypto.hw_wrapped_keys.kdf সিস্টেম প্রোপার্টি টেস্ট সোর্স কোডে সংজ্ঞায়িত KDF-এর নামে সেট করুন। এর ফলে vts_kernel_encryption_test kdf1 পরিবর্তে সেই KDF-এর জন্য পরীক্ষা করবে। উদাহরণস্বরূপ, kdf2 নির্বাচন করতে, ব্যবহার করুন:
PRODUCT_VENDOR_PROPERTIES += ro.crypto.hw_wrapped_keys.kdf=kdf2
যেসব ডিভাইসে KDF ব্যবহার করা হয় এবং পরীক্ষাটি সমর্থন করে না, তাদের জন্য পরীক্ষায় সেই KDF-এর একটি বাস্তবায়ন যোগ করুন এবং এটিকে একটি অনন্য নাম দিন।
মোড়ানো কীগুলি সক্ষম করুন
যখন ডিভাইসের হার্ডওয়্যার-র্যাপড কী সাপোর্ট সঠিকভাবে কাজ করছে, তখন FBE এবং মেটাডেটা এনক্রিপশনের জন্য অ্যান্ড্রয়েডকে এটি ব্যবহার করতে সাহায্য করার জন্য ডিভাইসের fstab ফাইলে নিম্নলিখিত পরিবর্তনগুলি করুন:
- FBE:
fileencryptionপ্যারামিটারেwrappedkey_v0ফ্ল্যাগ যোগ করুন। উদাহরণস্বরূপ,fileencryption=::inlinecrypt_optimized+wrappedkey_v0ব্যবহার করুন। আরও বিস্তারিত জানার জন্য, FBE ডকুমেন্টেশন দেখুন। - মেটাডেটা এনক্রিপশন:
metadata_encryptionপ্যারামিটারেwrappedkey_v0ফ্ল্যাগ যোগ করুন। উদাহরণস্বরূপ,metadata_encryption=:wrappedkey_v0ব্যবহার করুন। আরও বিস্তারিত জানার জন্য, মেটাডেটা এনক্রিপশন ডকুমেন্টেশন দেখুন।