অ্যাপ নিরাপত্তা

অ্যাপের উপাদান

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

প্রধান Android অ্যাপ বিল্ডিং ব্লক হল:

  • AndroidManifest.xml : AndroidManifest.xml ফাইল হল একটি কন্ট্রোল ফাইল যা একটি অ্যাপের সমস্ত শীর্ষ-স্তরের উপাদানগুলির (বিশেষত কার্যকলাপ, পরিষেবা, সম্প্রচার রিসিভার এবং নীচে বর্ণিত বিষয়বস্তু প্রদানকারী) সঙ্গে কী করতে হবে তা সিস্টেমকে বলে৷ এটি কোন অনুমতির প্রয়োজন তাও উল্লেখ করে।

  • অ্যাক্টিভিটিস : অ্যাক্টিভিটি হল, সাধারণত, Activity ক্লাস ব্যবহার করে একটি একক, ব্যবহারকারী-কেন্দ্রিক কাজের জন্য কোড। একটি কার্যকলাপ সাধারণত ব্যবহারকারীর কাছে একটি UI প্রদর্শন অন্তর্ভুক্ত করে, কিন্তু এটি করতে হবে না; কিছু ক্রিয়াকলাপ কখনই UI প্রদর্শন করে না। সাধারণত, অ্যাপের ক্রিয়াকলাপগুলির মধ্যে একটি হল একটি অ্যাপের প্রবেশ বিন্দু।

  • পরিষেবাগুলি : একটি পরিষেবা হল কোডের একটি অংশ যা ব্যাকগ্রাউন্ডে চলে। এটি নিজস্ব প্রক্রিয়ায় বা অন্য অ্যাপের প্রক্রিয়ার পরিপ্রেক্ষিতে চলতে পারে। অন্যান্য উপাদানগুলি একটি পরিষেবার সাথে "আবদ্ধ" করে এবং দূরবর্তী পদ্ধতি কলের মাধ্যমে এটিতে পদ্ধতিগুলি আহ্বান করে। একটি পরিষেবার একটি উদাহরণ হল একটি মিডিয়া প্লেয়ার: এমনকি যখন ব্যবহারকারী মিডিয়া-নির্বাচন UI ছেড়ে দেয়, ব্যবহারকারী সম্ভবত এখনও সঙ্গীত বাজানোর জন্য ইচ্ছুক। UI সম্পূর্ণ হয়ে গেলেও একটি পরিষেবা সঙ্গীতকে চালু রাখে।

  • ব্রডকাস্ট রিসিভার : একটি ব্রডকাস্ট রিসিভার হল এমন একটি বস্তু যা অপারেটিং সিস্টেম বা অন্য কোনও অ্যাপ দ্বারা ইস্যু করা হলে একটি আইপিসি মেকানিজম যা একটি ইন্টেন্ট নামে পরিচিত। একটি অ্যাপ কম ব্যাটারি বার্তার জন্য একটি রিসিভার নিবন্ধন করতে পারে, উদাহরণস্বরূপ, এবং সেই তথ্যের ভিত্তিতে তার আচরণ পরিবর্তন করতে পারে৷

অ্যান্ড্রয়েড অনুমতি মডেল: সুরক্ষিত API অ্যাক্সেস করুন

অ্যান্ড্রয়েডের সমস্ত অ্যাপ একটি অ্যাপ্লিকেশন স্যান্ডবক্সে চলে। ডিফল্টরূপে, একটি Android অ্যাপ শুধুমাত্র সীমিত পরিসরের সিস্টেম রিসোর্স অ্যাক্সেস করতে পারে। সিস্টেমটি এমন সম্পদগুলিতে Android অ্যাপের অ্যাক্সেস পরিচালনা করে যা ভুলভাবে বা দূষিতভাবে ব্যবহার করা হলে, ব্যবহারকারীর অভিজ্ঞতা, নেটওয়ার্ক বা ডিভাইসে ডেটার উপর বিরূপ প্রভাব ফেলতে পারে।

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

এই সুরক্ষিত APIগুলির মধ্যে রয়েছে:

  • ক্যামেরা ফাংশন
  • অবস্থান তথ্য (GPS)
  • ব্লুটুথ ফাংশন
  • টেলিফোনি ফাংশন
  • এসএমএস/এমএমএস ফাংশন
  • নেটওয়ার্ক/ডেটা সংযোগ

এই সম্পদগুলি শুধুমাত্র অপারেটিং সিস্টেমের মাধ্যমে অ্যাক্সেসযোগ্য। ডিভাইসে সুরক্ষিত API ব্যবহার করতে, একটি অ্যাপকে অবশ্যই তার ম্যানিফেস্টে প্রয়োজনীয় ক্ষমতাগুলি সংজ্ঞায়িত করতে হবে। সমস্ত Android সংস্করণ 6.0 এবং উচ্চতর একটি রানটাইম অনুমতি মডেল ব্যবহার করে। যদি কোনও ব্যবহারকারী কোনও অ্যাপ থেকে এমন একটি বৈশিষ্ট্যের জন্য অনুরোধ করে যার জন্য একটি সুরক্ষিত API প্রয়োজন হয় তবে সিস্টেমটি একটি ডায়ালগ প্রদর্শন করে, ব্যবহারকারীকে অনুমতি অস্বীকার করতে বা অনুমতি দিতে অনুরোধ করে।

একবার মঞ্জুর হলে, যতক্ষণ পর্যন্ত এটি ইনস্টল করা থাকে ততক্ষণ পর্যন্ত অনুমতিগুলি প্রয়োগ করা হয়। ব্যবহারকারীর বিভ্রান্তি এড়াতে, সিস্টেমটি ব্যবহারকারীকে আবার অ্যাপটিকে দেওয়া অনুমতিগুলির বিষয়ে অবহিত করে না এবং মূল অপারেটিং সিস্টেমে অন্তর্ভুক্ত বা OEM দ্বারা বান্ডিল করা অ্যাপগুলি ব্যবহারকারীর কাছ থেকে অনুমতির অনুরোধ করে না। একটি অ্যাপ আনইনস্টল করা হলে অনুমতিগুলি সরানো হয়, তাই পরবর্তীতে পুনরায় ইনস্টলেশনের ফলে আবার অনুমতি প্রদর্শিত হয়।

ডিভাইস সেটিংসের মধ্যে, ব্যবহারকারীরা তাদের পূর্বে ইনস্টল করা অ্যাপগুলির অনুমতি দেখতে সক্ষম। ব্যবহারকারীরা যখন বেছে নেয় তখন বিশ্বব্যাপী কিছু কার্যকারিতা বন্ধ করতে পারে, যেমন GPS, রেডিও বা Wi-Fi অক্ষম করা।

যদি একটি অ্যাপ একটি সুরক্ষিত বৈশিষ্ট্য ব্যবহার করার চেষ্টা করে যা অ্যাপের ম্যানিফেস্টে ঘোষণা করা হয়নি, অনুমতি ব্যর্থতার ফলে সাধারণত একটি নিরাপত্তা ব্যতিক্রম অ্যাপে ফিরিয়ে দেওয়া হয়। প্রটেক্টেড এপিআই পারমিশন চেকগুলি ঠেকাতে সম্ভাব্য সর্বনিম্ন স্তরে প্রয়োগ করা হয়। সুরক্ষিত API-এ অ্যাক্সেসের অনুরোধ করার সময় একটি অ্যাপ ইনস্টল করা হলে ব্যবহারকারীর মেসেজিংয়ের একটি উদাহরণ চিত্র 2- এ দেখানো হয়েছে।

সিস্টেমের ডিফল্ট অনুমতিগুলি https://developer.android.com/reference/android/Manifest.permission.html এ বর্ণনা করা হয়েছে। অন্যান্য অ্যাপ ব্যবহারের জন্য অ্যাপগুলি তাদের নিজস্ব অনুমতি ঘোষণা করতে পারে। এই ধরনের অনুমতি উপরের অবস্থানে তালিকাভুক্ত করা হয় না.

অনুমতির সংজ্ঞা দেওয়ার সময় একটি সুরক্ষা লেভেল অ্যাট্রিবিউট সিস্টেমকে বলে যে কীভাবে ব্যবহারকারীকে অনুমতির প্রয়োজন এমন অ্যাপ সম্পর্কে অবহিত করা হবে, বা কাকে অনুমতি দেওয়ার অনুমতি দেওয়া হয়েছে। অ্যাপ নির্দিষ্ট অনুমতিগুলি তৈরি এবং ব্যবহার করার বিশদ বিবরণ https://developer.android.com/guide/topics/security/security.html এ বর্ণনা করা হয়েছে।

কিছু ডিভাইসের ক্ষমতা আছে, যেমন এসএমএস সম্প্রচারের অভিপ্রায় পাঠানোর ক্ষমতা, যেগুলো তৃতীয় পক্ষের অ্যাপে উপলভ্য নয়, তবে সেটি OEM দ্বারা প্রি-ইনস্টল করা অ্যাপের মাধ্যমে ব্যবহার করা যেতে পারে। এই অনুমতিগুলি signatureOrSystem অনুমতি ব্যবহার করে।

ব্যবহারকারীরা তৃতীয় পক্ষের অ্যাপগুলি কীভাবে বোঝেন

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

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

কিছু অন্যান্য প্ল্যাটফর্ম ব্যবহারকারীর বিজ্ঞপ্তির জন্য একটি ভিন্ন পদ্ধতি ব্যবহার করে, প্রতিটি সেশনের শুরুতে বা অ্যাপগুলি ব্যবহার করার সময় অনুমতির অনুরোধ করে। অ্যান্ড্রয়েডের দৃষ্টিভঙ্গি হ'ল ব্যবহারকারীরা ইচ্ছামত অ্যাপগুলির মধ্যে নির্বিঘ্নে স্যুইচ করতে পারেন। প্রতিবার নিশ্চিতকরণ প্রদান করা ব্যবহারকারীকে ধীর করে দেবে এবং অ্যান্ড্রয়েডকে একটি দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে বাধা দেবে। ইনস্টল করার সময় ব্যবহারকারীর পর্যালোচনার অনুমতি থাকা ব্যবহারকারীরা অস্বস্তি বোধ করলে অ্যাপটি ইনস্টল না করার বিকল্প দেয়।

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

কিছু প্ল্যাটফর্ম অ্যাপ কার্যকারিতা সম্পর্কে কোনো তথ্য না দেখাতে পছন্দ করে। এই পদ্ধতি ব্যবহারকারীদের সহজেই বুঝতে এবং অ্যাপের ক্ষমতা নিয়ে আলোচনা করতে বাধা দেয়। যদিও সমস্ত ব্যবহারকারীর পক্ষে সর্বদা সম্পূর্ণ জ্ঞাত সিদ্ধান্ত নেওয়া সম্ভব হয় না, তবে Android অনুমতি মডেলটি ব্যবহারকারীদের একটি বিস্তৃত পরিসরের কাছে সহজেই অ্যাক্সেসযোগ্য অ্যাপগুলি সম্পর্কে তথ্য তৈরি করে৷ উদাহরণস্বরূপ, অপ্রত্যাশিত অনুমতির অনুরোধগুলি আরও পরিশীলিত ব্যবহারকারীদের অ্যাপ কার্যকারিতা সম্পর্কে সমালোচনামূলক প্রশ্ন জিজ্ঞাসা করতে এবং তাদের উদ্বেগগুলিকে Google Play-এর মতো জায়গায় শেয়ার করতে প্ররোচিত করতে পারে যেখানে তারা সমস্ত ব্যবহারকারীদের কাছে দৃশ্যমান।

অ্যাপ ইনস্টলে অনুমতি - Google অনুবাদ একটি ইনস্টল করা অ্যাপের অনুমতি — Gmail
অ্যাপ্লিকেশন ইনস্টলে অনুমতি - Google অনুবাদএকটি ইনস্টল করা অ্যাপ্লিকেশনের অনুমতি - জিমেইল

চিত্র 1. অ্যাপ্লিকেশনগুলির জন্য অনুমতিগুলির প্রদর্শন৷

আন্তঃপ্রক্রিয়া যোগাযোগ

প্রসেসগুলি প্রথাগত UNIX-টাইপ মেকানিজম ব্যবহার করে যোগাযোগ করতে পারে। উদাহরণগুলির মধ্যে ফাইল সিস্টেম, স্থানীয় সকেট বা সংকেত অন্তর্ভুক্ত। যাইহোক, Linux অনুমতি এখনও প্রযোজ্য।

অ্যান্ড্রয়েড নতুন আইপিসি মেকানিজমও প্রদান করে:

  • বাইন্ডার : একটি লাইটওয়েট ক্ষমতা-ভিত্তিক রিমোট পদ্ধতি কল প্রক্রিয়া যা উচ্চ কার্যক্ষমতার জন্য ডিজাইন করা হয়েছে যখন ইন-প্রসেস এবং ক্রস-প্রসেস কলগুলি সম্পাদন করা হয়। বাইন্ডার একটি কাস্টম লিনাক্স ড্রাইভার ব্যবহার করে প্রয়োগ করা হয়। https://developer.android.com/reference/android/os/Binder.html দেখুন।

  • পরিষেবা : পরিষেবাগুলি (উপরে আলোচনা করা হয়েছে) বাইন্ডার ব্যবহার করে সরাসরি অ্যাক্সেসযোগ্য ইন্টারফেস প্রদান করতে পারে।

  • অভিপ্রায় : একটি অভিপ্রায় একটি সাধারণ বার্তা বস্তু যা কিছু করার "অভিপ্রায়" প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি আপনার অ্যাপটি একটি ওয়েব পৃষ্ঠা প্রদর্শন করতে চায়, তাহলে এটি একটি ইন্টেন্ট ইনস্ট্যান্স তৈরি করে এবং এটি সিস্টেমের কাছে হস্তান্তর করে URL দেখার জন্য তার "ইন্টেন্ট" প্রকাশ করে। সিস্টেমটি কোডের অন্য কিছু অংশ (এই ক্ষেত্রে, ব্রাউজার) সনাক্ত করে যেটি সেই অভিপ্রায় কীভাবে পরিচালনা করতে হয় তা জানে এবং এটি চালায়। ইন্টেন্টগুলি সিস্টেম-ব্যাপী আকর্ষণীয় ইভেন্টগুলি (যেমন একটি বিজ্ঞপ্তি) সম্প্রচার করতেও ব্যবহার করা যেতে পারে। https://developer.android.com/reference/android/content/Intent.html দেখুন।

  • ContentProviders : একটি ContentProvider হল একটি ডেটা স্টোরহাউস যা ডিভাইসে ডেটা অ্যাক্সেস প্রদান করে; ক্লাসিক উদাহরণ হল ContentProvider যা ব্যবহারকারীর পরিচিতির তালিকা অ্যাক্সেস করতে ব্যবহৃত হয়। একটি অ্যাপ এমন ডেটা অ্যাক্সেস করতে পারে যা অন্য অ্যাপগুলি একটি বিষয়বস্তু প্রদানকারীর মাধ্যমে প্রকাশ করেছে এবং একটি অ্যাপ তার নিজস্ব ডেটা প্রকাশ করার জন্য তার নিজস্ব সামগ্রী প্রদানকারীকেও সংজ্ঞায়িত করতে পারে। https://developer.android.com/reference/android/content/ContentProvider.html দেখুন।

যদিও নেটওয়ার্ক সকেট বা ওয়ার্ল্ড-রাইটেবল ফাইলের মতো অন্যান্য মেকানিজম ব্যবহার করে IPC প্রয়োগ করা সম্ভব, এইগুলি হল প্রস্তাবিত Android IPC ফ্রেমওয়ার্ক। অ্যান্ড্রয়েড ডেভেলপারদের ব্যবহারকারীদের ডেটা সুরক্ষিত করার জন্য এবং নিরাপত্তা দুর্বলতার প্রবর্তন এড়াতে সর্বোত্তম অনুশীলনগুলি ব্যবহার করতে উত্সাহিত করা হবে৷

খরচ-সংবেদনশীল API

একটি খরচ সংবেদনশীল API হল যে কোনও ফাংশন যা ব্যবহারকারী বা নেটওয়ার্কের জন্য একটি খরচ তৈরি করতে পারে। অ্যান্ড্রয়েড প্ল্যাটফর্মটি OS দ্বারা নিয়ন্ত্রিত সুরক্ষিত APIগুলির তালিকায় ব্যয় সংবেদনশীল APIগুলিকে রেখেছে৷ ব্যবহারকারীকে খরচ সংবেদনশীল API ব্যবহার করার অনুরোধ করে তৃতীয় পক্ষের অ্যাপের সুস্পষ্ট অনুমতি দিতে হবে। এই APIগুলির মধ্যে রয়েছে:

  • টেলিফোনি
  • এসএমএস/এমএমএস
  • নেটওয়ার্ক/ডেটা
  • ইন-অ্যাপ বিলিং
  • NFC অ্যাক্সেস

Android 4.2 এসএমএস ব্যবহারে আরও নিয়ন্ত্রণ যোগ করে। যদি কোনও অ্যাপ প্রিমিয়াম পরিষেবা ব্যবহার করে এমন একটি শর্ট কোডে এসএমএস পাঠানোর চেষ্টা করে যা অতিরিক্ত চার্জের কারণ হতে পারে তাহলে Android একটি বিজ্ঞপ্তি প্রদান করবে। ব্যবহারকারী অ্যাপটিকে বার্তা পাঠাতে বা ব্লক করার অনুমতি দেবেন কিনা তা চয়ন করতে পারেন।

সিম কার্ড অ্যাক্সেস

সিম কার্ডে নিম্ন স্তরের অ্যাক্সেস তৃতীয় পক্ষের অ্যাপের জন্য উপলব্ধ নয়। OS সিম কার্ড মেমরিতে ব্যক্তিগত তথ্য (পরিচিতি) অ্যাক্সেস সহ সিম কার্ডের সাথে সমস্ত যোগাযোগ পরিচালনা করে। অ্যাপগুলিও AT কমান্ডগুলি অ্যাক্সেস করতে পারে না, কারণ এগুলি একচেটিয়াভাবে রেডিও ইন্টারফেস লেয়ার (RIL) দ্বারা পরিচালিত হয়৷ RIL এই কমান্ডগুলির জন্য কোন উচ্চ স্তরের API প্রদান করে না।

ব্যক্তিগত তথ্য

অ্যান্ড্রয়েড এমন APIগুলিকে রেখেছে যা ব্যবহারকারীর ডেটাতে অ্যাক্সেস প্রদান করে সুরক্ষিত APIগুলির সেটে৷ সাধারণ ব্যবহারের সাথে, অ্যান্ড্রয়েড ডিভাইসগুলি ব্যবহারকারীদের দ্বারা ইনস্টল করা তৃতীয় পক্ষের অ্যাপগুলির মধ্যে ব্যবহারকারীর ডেটাও জমা করবে৷ যে অ্যাপগুলি এই তথ্য শেয়ার করতে বেছে নেয় তারা তৃতীয় পক্ষের অ্যাপ থেকে ডেটা রক্ষা করতে Android OS অনুমতি পরীক্ষা ব্যবহার করতে পারে।

সংবেদনশীল ব্যবহারকারী ডেটা অ্যাক্সেস শুধুমাত্র সুরক্ষিত মাধ্যমে উপলব্ধ এপিআই

চিত্র 2. সংবেদনশীল ব্যবহারকারীর ডেটাতে অ্যাক্সেস শুধুমাত্র সুরক্ষিত API-এর মাধ্যমে উপলব্ধ

সিস্টেম কন্টেন্ট প্রদানকারী যেগুলিতে ব্যক্তিগত বা ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য থাকতে পারে যেমন পরিচিতি এবং ক্যালেন্ডার স্পষ্টভাবে চিহ্নিত অনুমতিগুলির সাথে তৈরি করা হয়েছে। এই গ্রানুলারিটি ব্যবহারকারীকে অ্যাপে যে ধরনের তথ্য প্রদান করা হতে পারে তার স্পষ্ট ইঙ্গিত দেয়। ইনস্টলেশনের সময়, একটি তৃতীয় পক্ষের অ্যাপ এই সম্পদগুলি অ্যাক্সেস করার অনুমতির অনুরোধ করতে পারে। অনুমতি দেওয়া হলে, অ্যাপটি ইনস্টল করা যেতে পারে এবং এটি ইনস্টল করার সময় যে কোনো সময় অনুরোধ করা ডেটাতে অ্যাক্সেস থাকবে।

ডিফল্টরূপে ব্যক্তিগত তথ্য সংগ্রহ করে এমন যেকোনো অ্যাপের ডেটা শুধুমাত্র নির্দিষ্ট অ্যাপে সীমাবদ্ধ থাকবে। যদি কোনো অ্যাপ আইপিসি থাকা সত্ত্বেও অন্যান্য অ্যাপে ডেটা উপলব্ধ করতে পছন্দ করে, তবে অ্যাক্সেস প্রদানকারী অ্যাপটি অপারেটিং সিস্টেম দ্বারা প্রয়োগ করা IPC পদ্ধতিতে অনুমতি প্রয়োগ করতে পারে।

সংবেদনশীল ডেটা ইনপুট ডিভাইস

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

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

ডিভাইস মেটাডেটা

অ্যান্ড্রয়েড এমন ডেটাতে অ্যাক্সেস সীমিত করারও চেষ্টা করে যা অভ্যন্তরীণভাবে সংবেদনশীল নয়, কিন্তু পরোক্ষভাবে ব্যবহারকারী, ব্যবহারকারীর পছন্দ এবং তারা কোন ডিভাইস ব্যবহার করে তার বৈশিষ্ট্যগুলি প্রকাশ করতে পারে।

ডিফল্টরূপে অ্যাপগুলির অপারেটিং সিস্টেম লগ, ব্রাউজারের ইতিহাস, ফোন নম্বর, বা হার্ডওয়্যার/নেটওয়ার্ক শনাক্তকরণ তথ্যে অ্যাক্সেস নেই৷ যদি কোনো অ্যাপ ইনস্টল করার সময় এই তথ্যে অ্যাক্সেসের অনুরোধ করে, তাহলে ইনস্টলার ব্যবহারকারীকে জিজ্ঞাসা করবে যে অ্যাপটি তথ্য অ্যাক্সেস করতে পারে কিনা। ব্যবহারকারী যদি অ্যাক্সেস না দেয়, তাহলে অ্যাপটি ইনস্টল করা হবে না।

শংসাপত্র কর্তৃপক্ষ

অ্যান্ড্রয়েড ইনস্টল করা সিস্টেম শংসাপত্র কর্তৃপক্ষের একটি সেট অন্তর্ভুক্ত করে, যা বিশ্বস্ত সিস্টেম-ব্যাপী। Android 7.0-এর আগে, ডিভাইস নির্মাতারা তাদের ডিভাইসে পাঠানো CA-এর সেট পরিবর্তন করতে পারত। যাইহোক, 7.0 এবং তার উপরে চলমান ডিভাইসগুলিতে সিস্টেম CA-এর একটি অভিন্ন সেট থাকবে কারণ ডিভাইস নির্মাতাদের দ্বারা পরিবর্তনের আর অনুমতি নেই।

অ্যান্ড্রয়েড স্টক সেটে একটি নতুন পাবলিক CA হিসাবে যোগ করার জন্য, CA-কে অবশ্যই Mozilla CA অন্তর্ভুক্তি প্রক্রিয়াটি সম্পূর্ণ করতে হবে এবং তারপর Android ওপেন সোর্স প্রজেক্টে (AOSP) সেট করা স্টক Android CA-এ CA যুক্ত করার জন্য Android ( https://code.google.com/p/android/issues/entry ) এর বিরুদ্ধে একটি বৈশিষ্ট্য অনুরোধ ফাইল করতে হবে৷

এখনও এমন CA আছে যেগুলি ডিভাইস-নির্দিষ্ট এবং AOSP CA-এর মূল সেটে অন্তর্ভুক্ত করা উচিত নয়, যেমন ক্যারিয়ারের ব্যক্তিগত CA যেগুলি এসএমএস/এমএমএস গেটওয়ের মতো ক্যারিয়ারের পরিকাঠামোর উপাদানগুলিকে নিরাপদে অ্যাক্সেস করার জন্য প্রয়োজন হতে পারে৷ ডিভাইস নির্মাতারা শুধুমাত্র ব্যক্তিগত CA গুলিকে সেই উপাদান/অ্যাপগুলিতে অন্তর্ভুক্ত করার জন্য উত্সাহিত করা হয় যেগুলিকে এই CAগুলিকে বিশ্বাস করতে হবে৷ আরও বিস্তারিত জানার জন্য, নেটওয়ার্ক নিরাপত্তা কনফিগারেশন দেখুন।

অ্যাপ সাইনিং

কোড সাইনিং ডেভেলপারদের অ্যাপের লেখককে শনাক্ত করতে এবং জটিল ইন্টারফেস এবং অনুমতি না তৈরি করে তাদের অ্যাপ আপডেট করতে দেয়। অ্যান্ড্রয়েড প্ল্যাটফর্মে চালানো প্রতিটি অ্যাপ ডেভেলপার দ্বারা স্বাক্ষরিত হতে হবে। যে অ্যাপগুলি স্বাক্ষর না করে ইনস্টল করার চেষ্টা করে সেগুলি হয় Google Play বা Android ডিভাইসে প্যাকেজ ইনস্টলার দ্বারা প্রত্যাখ্যান করা হয়৷

Google Play-তে, অ্যাপ সাইনিং ব্রিজ ডেভেলপারের সঙ্গে Google-এর আস্থা এবং ডেভেলপারদের তাদের অ্যাপের ওপর আস্থা রয়েছে। বিকাশকারীরা জানেন যে তাদের অ্যাপ সরবরাহ করা হয়েছে, অ্যান্ড্রয়েড ডিভাইসে অপরিবর্তিত; এবং ডেভেলপারদের তাদের অ্যাপের আচরণের জন্য দায়ী করা যেতে পারে।

অ্যান্ড্রয়েডে, অ্যাপ সাইনিং হল অ্যাপ স্যান্ডবক্সে অ্যাপ রাখার প্রথম ধাপ। স্বাক্ষরিত অ্যাপ সার্টিফিকেট নির্ধারণ করে যে কোন ব্যবহারকারী আইডি কোন অ্যাপের সাথে যুক্ত; বিভিন্ন অ্যাপ বিভিন্ন ইউজার আইডির অধীনে চলে। অ্যাপ সাইনিং নিশ্চিত করে যে একটি অ্যাপ সু-সংজ্ঞায়িত IPC ছাড়া অন্য কোনো অ্যাপ অ্যাক্সেস করতে পারবে না।

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

অ্যাপগুলি তৃতীয় পক্ষের (OEM, অপারেটর, বিকল্প বাজার) দ্বারা স্বাক্ষরিত হতে পারে বা স্ব-স্বাক্ষরিত হতে পারে৷ Android স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করে কোড স্বাক্ষর প্রদান করে যা বিকাশকারীরা বাহ্যিক সহায়তা বা অনুমতি ছাড়াই তৈরি করতে পারে। অ্যাপগুলিতে কেন্দ্রীয় কর্তৃপক্ষের স্বাক্ষর থাকতে হবে না। Android বর্তমানে অ্যাপ সার্টিফিকেটের জন্য CA যাচাইকরণ করে না।

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

অ্যাপ যাচাইকরণ

Android 4.2 এবং পরবর্তীতে অ্যাপ যাচাইকরণ সমর্থন করে। ব্যবহারকারীরা "অ্যাপস যাচাইকরণ" সক্ষম করা বেছে নিতে পারেন এবং ইনস্টলেশনের আগে একটি অ্যাপ যাচাইকারীর দ্বারা অ্যাপগুলিকে মূল্যায়ন করতে পারেন৷ অ্যাপ যাচাইকরণ ব্যবহারকারীকে সতর্ক করতে পারে যদি তারা এমন কোনও অ্যাপ ইনস্টল করার চেষ্টা করে যা ক্ষতিকারক হতে পারে; যদি কোনও অ্যাপ বিশেষত খারাপ হয় তবে এটি ইনস্টলেশন ব্লক করতে পারে৷

ডিজিটাল অধিকার ব্যবস্থাপনা

অ্যান্ড্রয়েড প্ল্যাটফর্ম একটি এক্সটেনসিবল ডিজিটাল রাইটস ম্যানেজমেন্ট (DRM) ফ্রেমওয়ার্ক প্রদান করে যা অ্যাপগুলিকে বিষয়বস্তুর সাথে যুক্ত লাইসেন্সের সীমাবদ্ধতা অনুযায়ী অধিকার-সুরক্ষিত সামগ্রী পরিচালনা করতে দেয়৷ DRM ফ্রেমওয়ার্ক অনেক DRM স্কিম সমর্থন করে; কোন ডিআরএম স্কিমগুলি একটি ডিভাইস সমর্থন করে তা ডিভাইস প্রস্তুতকারকের উপর ছেড়ে দেওয়া হয়।

অ্যান্ড্রয়েড ডিআরএম ফ্রেমওয়ার্ক দুটি স্থাপত্য স্তরে প্রয়োগ করা হয়েছে (নীচের চিত্রটি দেখুন):

  • একটি ডিআরএম ফ্রেমওয়ার্ক এপিআই, যা অ্যান্ড্রয়েড অ্যাপ ফ্রেমওয়ার্কের মাধ্যমে অ্যাপের সংস্পর্শে আসে এবং স্ট্যান্ডার্ড অ্যাপের জন্য ART VM-এর মাধ্যমে চলে।

  • একটি নেটিভ কোড ডিআরএম ম্যানেজার, যা ডিআরএম ফ্রেমওয়ার্ক প্রয়োগ করে এবং বিভিন্ন ডিআরএম স্কিমের জন্য অধিকার ব্যবস্থাপনা এবং ডিক্রিপশন পরিচালনা করার জন্য ডিআরএম প্লাগ-ইনগুলির (এজেন্ট) জন্য একটি ইন্টারফেস প্রকাশ করে।

অ্যান্ড্রয়েডে ডিজিটাল রাইটস ম্যানেজমেন্টের আর্কিটেকচার প্ল্যাটফর্ম

চিত্র 3. অ্যান্ড্রয়েড প্ল্যাটফর্মে ডিআরএমের আর্কিটেকচার