ব্যবহারের ক্ষেত্রে

এই পৃষ্ঠায় AVF-এর সাধারণ ব্যবহারের ক্ষেত্রে রয়েছে।

বিচ্ছিন্ন সংকলন

একটি সফ্টওয়্যার-সুরক্ষিত ছিটমহল হিসাবে, একটি সুরক্ষিত ভার্চুয়াল মেশিন (ভিএম) নিরাপত্তা-সংবেদনশীল কোড কম্পাইল করার জন্য একটি নিরাপদ পরিবেশ প্রদান করে। এই পরিবেশটি bootclasspath এবং সিস্টেম সার্ভার JAR-এর সংকলনকে (এপেক্স আপডেট দ্বারা ট্রিগার করা হয়েছে) প্রাথমিক বুট থেকে রিবুট করার আগে স্থানান্তরিত করার অনুমতি দেয় এবং APEX আপডেটের পর বুট সময় উল্লেখযোগ্যভাবে হ্রাস করে।

বাস্তবায়নটি com.android.compos APEX-এ রয়েছে। এই উপাদানটি ঐচ্ছিক এবং একটি মেকফাইল ব্যবহার করে অন্তর্ভুক্ত করা যেতে পারে।

বিচ্ছিন্ন সংকলন

চিত্র 1. মেইনলাইন আপডেটে JAR কম্পাইল করা। মেইনলাইন আপডেটে JAR কম্পাইল করা হচ্ছে

নিরাপত্তা লক্ষ্য হল সত্যভাবে যাচাইকৃত ইনপুট সংকলন করা এবং বিচ্ছিন্নভাবে আউটপুট তৈরি করা; একটি অবিশ্বস্ত ক্লায়েন্ট হিসাবে অ্যান্ড্রয়েড কম্পাইলেশন আউটপুটকে ব্যর্থ হওয়া ছাড়া অন্য কোনো উপায়ে পরিবর্তন করতে পারে না (যখন অ্যান্ড্রয়েড বুট টাইম সংকলনে ফিরে আসে)।

পুরো সংকলনের সময় কোনো ত্রুটি না থাকলেই VM-এ সংকলন পরিষেবা একটি স্বাক্ষর তৈরি করে। স্বাক্ষর যাচাইয়ের জন্য Android VM থেকে সর্বজনীন কী পুনরুদ্ধার করতে পারে।

VM-এর কীটি VM-এর DICE প্রোফাইল থেকে তৈরি করা হয়, যা ডিবাগবিলিটির মতো অন্যান্য VM প্যারামিটার ছাড়াও VM-এ মাউন্ট করা APEXes এবং APKs দ্বারা সংজ্ঞায়িত করা হয়।

সর্বজনীন কীটি অপ্রত্যাশিত VM থেকে নয় কিনা তা নির্ধারণ করতে, কীটি সঠিক কিনা তা নির্ধারণ করতে Android VM বুট করে। প্রতিটি APEX আপডেটের পর প্রাথমিক বুটে VM বুট করা হয়।

সুরক্ষিত VM এর যাচাইকৃত বুট সহ, সংকলন পরিষেবাটি শুধুমাত্র যাচাইকৃত কোড চালায়। ফলস্বরূপ, কোডটি নির্দিষ্ট শর্ত পূরণ করে এমন শুধুমাত্র ইনপুটগুলি গ্রহণ করার জন্য নির্ধারণ করতে পারে, উদাহরণস্বরূপ, একটি ইনপুট ফাইল গ্রহণ করুন যেখানে এর নাম এবং fs-verity ডাইজেস্ট একটি অনুমোদিত তালিকায় সংজ্ঞায়িত করা হয়েছে।

VM থেকে উন্মুক্ত API গুলি আক্রমণের পৃষ্ঠ। সমস্ত ইনপুট ফাইল এবং পরামিতি একটি অবিশ্বস্ত ক্লায়েন্ট থেকে অনুমান করা হয়, এবং প্রক্রিয়াকরণের আগে যাচাই এবং যাচাই করা আবশ্যক৷

ইনপুট এবং আউটপুট ফাইলের অখণ্ডতা VM দ্বারা যাচাই করা হয়, একটি অবিশ্বস্ত ফাইল সার্ভার হিসাবে Android এ সংরক্ষণ করা ফাইলগুলি নিম্নরূপ:

  • fs-verity অ্যালগরিদম ব্যবহার করার আগে ইনপুট ফাইলের বিষয়বস্তু অবশ্যই যাচাই করা উচিত। একটি ইনপুট ফাইল ভিএম-এ উপলভ্য হওয়ার জন্য, এর রুট হ্যাশ অবশ্যই একটি কন্টেইনারে (APK) প্রদান করতে হবে যা VM-এর DICE প্রোফাইলে অবদান রাখে। বিশ্বস্ত রুট হ্যাশের সাথে, একজন আক্রমণকারী সনাক্ত না করে ইনপুটটির সাথে হস্তক্ষেপ করতে পারে না।
  • আউটপুট ফাইলের অখণ্ডতা অবশ্যই VM-এ বজায় রাখতে হবে। এমনকি যদি একটি আউটপুট ফাইল Android এ সংরক্ষণ করা হয়, প্রজন্মের সময়, অখণ্ডতা একই fs-verity ট্রি বিন্যাসের সাথে বজায় থাকে তবে গতিশীলভাবে আপডেট করা যেতে পারে। চূড়ান্ত আউটপুট ফাইলটি রুট হ্যাশ দিয়ে সনাক্ত করা যেতে পারে, যা ভিএম-এ বিচ্ছিন্ন। ভিএম-এর পরিষেবাটি স্বাক্ষরের মাধ্যমে আউটপুট ফাইলগুলিকে রক্ষা করে।

লিনাক্স উন্নয়ন পরিবেশ

অ্যান্ড্রয়েড ঐতিহ্যগতভাবে একমাত্র প্রধান অপারেটিং সিস্টেম যা ব্যবহারকারীদের প্ল্যাটফর্মে অ্যাপ বিকাশ করতে দেয় না। লিনাক্স ডেভেলপমেন্ট এনভায়রনমেন্ট প্রবর্তনের মাধ্যমে, আমরা ডেভেলপার যারা অ্যান্ড্রয়েড ব্যবহারকারীদের একটি লিনাক্স-ভিত্তিক ডেভেলপমেন্ট এনভায়রনমেন্ট প্রদান করার লক্ষ্য রাখি। ভবিষ্যতে, আমরা আমাদের অংশীদারদের জন্য গ্রাফিকাল ইউজার ইন্টারফেস অ্যাপ এবং এমনকি গেম চালানোর মতো উদ্ভাবনী VM ব্যবহারের ক্ষেত্রে প্রয়োগ করা সম্ভব করার প্রচেষ্টা প্রসারিত করার পরিকল্পনা করছি।

লিনাক্স ডেভেলপমেন্ট এনভায়রনমেন্ট বাছাই করা ডিভাইসে পাওয়া যায় এবং একটি অ-সুরক্ষিত ভার্চুয়াল মেশিনে চলে।

লিনাক্স ডেভেলপমেন্ট এনভায়রনমেন্ট ইউজ কেস

চিত্র 2. লিনাক্স ডেভেলপমেন্ট এনভায়রনমেন্ট ব্যবহারের ক্ষেত্রে।

উচ্চ-স্তরের প্রবাহ নিম্নরূপ:

  1. লিনাক্স ডেভেলপমেন্ট এনভায়রনমেন্ট ব্যবহার করতে, ডেভেলপার অপশন সক্রিয় করুন
  2. আপনি বিকাশকারী বিকল্পগুলি সক্ষম করার পরে, টার্মিনাল অ্যাপটি আপনার হোম লঞ্চারে প্রদর্শিত হবে।
  3. আপনার হোম লঞ্চার থেকে টার্মিনাল অ্যাপ চালু করুন।
  4. প্রয়োজনে, টার্মিনাল অ্যাপ প্লে থেকে OS ইমেজ ডাউনলোড করে।
  5. টার্মিনাল অ্যাপটি একটি ভার্চুয়াল মেশিন (ভিএম) তৈরি করতে অ্যান্ড্রয়েড ভার্চুয়ালাইজেশন ফ্রেমওয়ার্ক (AVF) ব্যবহার করে।
  6. AVF তারপর OS ইমেজ সহ VM চালায়।
  7. ভার্চুয়াল মেশিন ছবিটি থেকে OS বুট করে।
  8. VM বুট হওয়ার পরে, টার্মিনাল অ্যাপের WebView ভার্চুয়াল মেশিনে একটি ওয়েব পরিষেবার সাথে সংযোগ করে। এই পরিষেবা HTTP এর মাধ্যমে টার্মিনাল অ্যাক্সেস প্রদান করে।
  9. আপনি কমান্ড প্রবেশ করে এবং অ্যাপে আউটপুট দেখে টার্মিনালের সাথে ইন্টারঅ্যাক্ট করেন।

লিনাক্স ভিএম-এর উচ্চ-স্তরের উপাদানগুলি নিম্নরূপ:

  • টার্মিনাল অ্যাপ: একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন একটি টার্মিনাল ইন্টারফেস প্রদান করে। এটি ইন্টারঅ্যাকশনের জন্য VM-এ চলমান একটি ওয়েব পরিষেবার সাথে সংযোগ করতে একটি WebView ব্যবহার করে। এই অ্যাপটি ডিফল্টরূপে অক্ষম করা আছে। বিকাশকারী সেটিংসে এটি সক্রিয় করুন।
  • অ্যান্ড্রয়েড ভার্চুয়ালাইজেশন ফ্রেমওয়ার্ক (AVF): VM তৈরি এবং পরিচালনার জন্য Android এর বিদ্যমান সাবসিস্টেম। এই বৈশিষ্ট্যের জন্য কাস্টম OS ইমেজ সমর্থন করার জন্য ন্যূনতম পরিবর্তন প্রয়োজন।
  • ভার্চুয়াল মেশিন: একটি VM যা AVF তৈরি করে। এটি টার্মিনাল পরিষেবা হোস্ট করে এবং AVF এটি বিশেষভাবে টার্মিনাল অ্যাপের কার্যকারিতার জন্য তৈরি করে।
  • OS চিত্র: আপস্ট্রিম ডেবিয়ান থেকে একটি সামান্য পরিবর্তিত ডেবিয়ান-ভিত্তিক OS চিত্র। টার্মিনাল অ্যাপটি একটি বহিরাগত Google সার্ভার থেকে এই ছবিটি ডাউনলোড করে। এটি VM এর অপারেশনের ভিত্তি হিসাবে কাজ করে।
  • অতিথি এজেন্ট: ভিএম-এ নতুন সফ্টওয়্যার। এটি ওএসের অবস্থা AVF কে রিপোর্ট করে এবং ভার্চুয়াল মেশিনের নিয়ন্ত্রণ প্রদান করে।
  • ttyd : ভিএম-এ চলমান ওপেন-সোর্স সফ্টওয়্যার যা HTTP-তে টার্মিনাল এমুলেশন প্রয়োগ করে। টার্মিনাল অ্যাপের ওয়েবভিউ এটির সাথে সংযোগ করে।
  • টিথারিং ম্যানেজার: একটি বিদ্যমান অ্যান্ড্রয়েড সাবসিস্টেম। এটি Android-চালিত ডিভাইসে VM টিথারিং করে ভার্চুয়াল মেশিনে নেটওয়ার্ক অ্যাক্সেস প্রদান করে।

ডিভাইসে সামগ্রীর নিরাপত্তা

কনটেন্ট সেফটি অন-ডিভাইস হল একটি গোপনীয়তা-সংরক্ষণকারী কন্টেন্ট নিরাপত্তা সমাধান যা কনটেন্ট সেফটি অন-ডিভাইস টিম দ্বারা তৈরি করা হয়েছে। এটি 1P/3P ডিভাইসে বিভিন্ন Google পণ্যের জন্য সামগ্রী সুরক্ষা শ্রেণীবিভাগ সম্পাদন করে এবং 1B+ ব্যবহারকারীদের অপমানজনক সামগ্রী থেকে রক্ষা করে, ব্যবহারকারীর ডেটা Google সার্ভারে ফেরত পাঠানোর প্রয়োজন ছাড়াই৷ এটি ক্লায়েন্ট, ভার্চুয়াল মেশিন (ভিএম) এর মধ্যে স্বচ্ছ এবং গোপনীয়তা-সংরক্ষণকারী যোগাযোগ নিশ্চিত করতে এবং ব্যবহারকারীর ডেটার কোনও অপসারণ রোধ করতে প্রাইভেট কম্পিউট কোর (পিসিসি) নীতিগুলি মেনে চলার জন্য ডিজাইন করা হয়েছে। এটি ডিভাইসে অপব্যবহার সনাক্তকরণ সক্ষম করার মতো জিনিসগুলির জন্য ব্যবহার করা যেতে পারে, যেমন Play Protect লাইভ হুমকি সনাক্তকরণ

এই ব্যবহারের ক্ষেত্রে, সিস্টেমটি প্লে প্রোটেক্ট লাইভ হুমকি সনাক্তকরণের জন্য তার মডেল শ্রেণীবিভাগ চালানোর জন্য সুরক্ষিত ভার্চুয়াল মেশিন ব্যবহার করে যা তারপরে এর মডেল এবং সুরক্ষাগুলির নিরাপত্তাকে উল্লেখযোগ্যভাবে বৃদ্ধি করে। এটি শুধুমাত্র অনুমোদিত কোড রান এবং এর ক্রিয়াকলাপগুলি বাহ্যিক প্রক্রিয়া থেকে লুকানো নিশ্চিত করে, এমনকি রুটেড ডিভাইসেও আক্রমণকারীদের দ্বারা বিপরীত প্রকৌশল এবং ম্যানিপুলেশন প্রতিরোধ করে৷

উচ্চ স্তরের প্রবাহ নিম্নরূপ:

  1. লাইভ হুমকি শনাক্তকরণ VM শুরু করতে ব্যক্তিগত কম্পিউট পরিষেবাগুলিকে পিং করে৷ Private Compute Services হল PCC এবং ক্লাউড সার্ভারের মধ্যে একটি গোপনীয়তা-কেন্দ্রিক মধ্যস্থতাকারী
  2. প্রাইভেট কম্পিউট সার্ভিস VM শুরু করে এবং VM থেকে এর পাবলিক কী পায়
  3. প্রাইভেট কম্পিউট সার্ভিস প্লে প্রোটেক্ট লাইভ হুমকি সনাক্তকরণের জন্য VM মালিকানা হস্তান্তর করে
  4. প্রাইভেট কম্পিউট সার্ভিস সার্ভারে সত্যায়ন এবং সর্বজনীন কী পাঠায়
  5. সার্ভার VM পাবলিক কী দিয়ে প্রত্যয়ন এবং এনক্রিপ্ট সুরক্ষা যাচাই করে
  6. সার্ভার তারপর এনক্রিপ্ট করা সুরক্ষাগুলিকে ডিভাইসে ফেরত পাঠায়
  7. তারপরে, ডিভাইসে লাইভ হুমকি সনাক্তকরণ VM-এর মধ্যে এনক্রিপ্ট করা সুরক্ষা ব্যবহার করতে পারে। VM হল ব্যক্তিগত কী সহ একমাত্র সত্তা যা সুরক্ষাগুলিকে ডিক্রিপ্ট করতে পারে৷

উচ্চ স্তরের উপাদান নিম্নরূপ:

  • সার্ভার: এনক্রিপ্ট করুন এবং ভিএম-এ এনক্রিপ্ট করা সুরক্ষা প্রদান করুন
  • প্রাইভেট কম্পিউট পরিষেবা: ভিএম শুরু করতে এবং ভিএম-এর সাথে যোগাযোগের মধ্যস্থতা করতে ব্যবহৃত হয় এবং স্বচ্ছতা দেখায় যে কোনও ব্যবহারকারীর ডেটা অ্যাস্ট্রিয়া থেকে সার্ভারে যাচ্ছে না
  • Play Protect লাইভ হুমকি সনাক্তকরণ:
    • কন্টেন্ট সেফটি অন-ডিভাইস দ্বারা প্রদত্ত মডেল ক্লাসিফায়ার ধারণ করে এবং ব্যবহার করে
    • VM এর মালিকানা গ্রহণ করে এবং এটিকে শ্রেণীবিভাগ ব্যবহারের জন্য ধরে রাখে
    • প্রয়োজন অনুসারে VM শুরু এবং বন্ধ করে।