অ্যান্ড্রয়েড বিভিন্ন ধরনের ডিভাইস সিগন্যাল প্রদান করে যা অ্যাডমিনিস্ট্রেটররা একটি ডিভাইসের নিরাপত্তা ভঙ্গি নির্ধারণ করতে ব্যবহার করতে পারে। একটি জিরো ট্রাস্ট সুরক্ষা মডেলে, এই সংকেতগুলি মূল্যায়ন করতে ব্যবহৃত হয় যে কোনও ডিভাইসকে কর্পোরেট তথ্য অ্যাক্সেস করার অনুমতি দেওয়া উচিত কিনা।
বৈশিষ্ট্য | বর্ণনা | সম্পূর্ণরূপে পরিচালিত ডিভাইস | কোম্পানির মালিকানাধীন ডিভাইসে কাজের প্রোফাইল | ব্যক্তিগত মালিকানাধীন ডিভাইসে কাজের প্রোফাইল (BYOD) | নিয়ন্ত্রণহীন ডিভাইস |
---|---|---|---|---|---|
Integrity API খেলুন | একজন ট্রাস্ট ব্রোকার নিম্নলিখিত সংকেতগুলি পুনরুদ্ধার করতে পারে: | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
সুরক্ষিত হার্ডওয়্যার উপস্থিত / মূল প্রত্যয়ন | একজন ট্রাস্ট ব্রোকার যাচাই করতে পারে যে তাদের PKI শংসাপত্রগুলি তৈরি করা হয়েছে এবং সুরক্ষিত হার্ডওয়্যারে সংরক্ষণ করা হয়েছে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ডিভাইস বৈশিষ্ট্য প্রত্যয়ন | মূল প্রত্যয়নের অংশ হিসাবে, ডিভাইসের বৈশিষ্ট্যগুলি প্রত্যয়ন রেকর্ডের অংশ হিসাবে অন্তর্ভুক্ত করা যেতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ডিভাইস নিরাপত্তা প্যাচ স্তর | একজন ট্রাস্ট ব্রোকার OS সিকিউরিটি প্যাচ লেভেল যাচাই করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ডিভাইসের OTA মুলতুবি আছে কি | একটি ট্রাস্ট ব্রোকার একটি মুলতুবি ডিভাইস OS আপডেট উপলব্ধ আছে কিনা তা পরীক্ষা করতে পারেন৷ | হ্যাঁ | হ্যাঁ | হ্যাঁ | N/A |
মেইনলাইন নিরাপত্তা প্যাচ স্তর | একটি ট্রাস্ট ব্রোকার ইনস্টল করা প্রধান লাইন ট্রেনের নিরাপত্তা প্যাচ স্তর পড়তে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
তালিকাভুক্তির নির্দিষ্ট আইডি | একজন ট্রাস্ট ব্রোকার সেই এন্টারপ্রাইজের জন্য নির্দিষ্ট একটি অনন্য ডিভাইস আইডি অ্যাক্সেস করতে পারে। এই আইডিটি ওয়ার্ক প্রোফাইল পুনরায় তৈরি এবং ডিভাইস ফ্যাক্টরি রিসেট থেকে বেঁচে থাকে | হ্যাঁ | হ্যাঁ | হ্যাঁ | N/A |
ম্যানেজমেন্ট স্টেট (এবং ম্যানেজিং অ্যাপ) | একটি ট্রাস্ট ব্রোকার একটি ডিভাইস পরিচালিত কিনা তা নির্ধারণ করতে এটি ব্যবহার করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | N/A |
ডিস্ক এনক্রিপশন | একটি ট্রাস্ট ব্রোকার ডিভাইস এনক্রিপ্ট করা আছে কিনা তা পরীক্ষা করতে পারে (যদি Android 8 সমর্থন প্রয়োজন হয়) | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ওএস সংস্করণ | একটি ট্রাস্ট ব্রোকার ডিভাইসের OS সংস্করণ পরীক্ষা করতে পারে এবং নিশ্চিত করতে পারে যে এটি একটি নির্দিষ্ট সংস্করণ অতিক্রম করেছে৷ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
অ্যাক্সেস নেটওয়ার্ক স্টেট (নেটওয়ার্ক স্টেট এবং ওয়াইফাই স্টেট) | একজন ট্রাস্ট ব্রোকার সক্রিয় নেটওয়ার্ক অবস্থা (সেলুলার এবং ওয়াইফাই) সম্পর্কে তথ্য পেতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ওয়াইফাই স্টেট অ্যাক্সেস করুন ( অ্যান্ড্রয়েড 11 এবং নিম্ন , অ্যান্ড্রয়েড 12 এবং উচ্চতর সমর্থন একটি কলব্যাক বা একটি অন-ডিমান্ড পদ্ধতি উভয়ই) | একজন ট্রাস্ট ব্রোকার সক্রিয় ওয়াইফাই নেটওয়ার্ক সম্পর্কে তথ্য পেতে পারেন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
প্রক্সি সেটিংস | একজন ট্রাস্ট ব্রোকার বর্তমান ডিফল্ট HTTP প্রক্সি সেটিংস সম্পর্কে তথ্য পেতে পারে। | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
স্ক্রীন লক মান পরীক্ষা | একটি ট্রাস্ট ব্রোকার নিশ্চিত করতে পারে যে একটি ডিভাইসে অ্যাক্সেস দেওয়ার আগে একটি নির্দিষ্ট মানের স্ক্রিন লক কনফিগার করা আছে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
বিকাশকারী বিকল্পগুলি সক্ষম | একজন ট্রাস্ট ব্রোকার যখন ডেভেলপার বিকল্পগুলি সক্রিয় থাকে তখন একটি ডিভাইসকে একটি বিস্তৃত আক্রমণের পৃষ্ঠ হিসাবে চিহ্নিত করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
TLS এর উপর কি DNS সক্রিয় আছে | একটি ট্রাস্ট ব্রোকার প্রাইভেট ডিএনএস মোড সক্রিয় আছে তা নিশ্চিত করতে এটির সুবিধা নিতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
সেফটিনেট নিরাপদ ব্রাউজিং | একটি ট্রাস্ট ব্রোকার নির্ধারণ করতে পারে যে একটি নির্দিষ্ট URL Google দ্বারা পরিচিত হুমকি হিসাবে শ্রেণীবদ্ধ করা হয়েছে কিনা। | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
এক্সটার্নাল মিডিয়া মাউন্ট করা হয়েছে | একটি বাহ্যিক স্টোরেজ মাউন্ট করা হলে একটি ট্রাস্ট ব্রোকারকে অবহিত করা যেতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
UsageStatsManager | একজন ট্রাস্ট ব্রোকার পৃথক অ্যাপের ব্যবহারের ধরণ অধ্যয়ন করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ 1 |
নিরাপত্তা লগিং | একটি ট্রাস্ট ব্রোকার তাদের প্রাসঙ্গিক ইঞ্জিনের অংশ হিসাবে সম্মতি নিশ্চিত করতে এবং একটি আচরণ ভিত্তিক আঙ্গুলের ছাপ তৈরি করতে এই ডেটা ব্যবহার করতে পারে | হ্যাঁ | হ্যাঁ 2 | হ্যাঁ 2 | N/A |
নেটওয়ার্ক লগিং | একটি ট্রাস্ট ব্রোকার তাদের প্রাসঙ্গিক ইঞ্জিনের অংশ হিসাবে সম্মতি নিশ্চিত করতে এবং একটি আচরণ ভিত্তিক আঙ্গুলের ছাপ তৈরি করতে এই ডেটা ব্যবহার করতে পারে | হ্যাঁ | হ্যাঁ 2 | হ্যাঁ 2 | N/A |
নেটওয়ার্ক স্ট্যাটস ম্যানেজার | একটি ট্রাস্ট ব্রোকার একটি নির্দিষ্ট সময়ের ব্যবধানের মধ্যে অ্যাপের নেটওয়ার্ক ব্যবহার জিজ্ঞাসা করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ 2 | হ্যাঁ 1 |
প্যাকেজ দৃশ্যমানতা (ডিভাইসের সমস্ত অ্যাপ তালিকাভুক্ত করুন) | একটি ট্রাস্ট ব্রোকার ডিভাইসে কোন অ্যাপ ইনস্টল করা আছে তা জিজ্ঞাসা করতে পারে | হ্যাঁ | হ্যাঁ 3 | হ্যাঁ 3 | হ্যাঁ |
ফোনের অবস্থা পড়ুন | একজন ট্রাস্ট ব্রোকার মোবাইল নেটওয়ার্কের তথ্য, যেকোনো চলমান কলের স্থিতি এবং ডিভাইসে নিবন্ধিত ফোন অ্যাকাউন্টের একটি তালিকা পেতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
ডিভাইসটি শেষবার রিবুট হলে | একজন ট্রাস্ট ব্রোকার সিস্টেম আপটাইম পেতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
অ্যাকাউন্ট পান | একটি ট্রাস্ট ব্রোকার অ্যাকাউন্টস পরিষেবাতে অ্যাকাউন্টগুলির তালিকা অ্যাক্সেস করতে এটির সুবিধা নিতে পারে | হ্যাঁ | হ্যাঁ 3 | হ্যাঁ 3 | হ্যাঁ 1 |
ব্যাটারি স্তরে উল্লেখযোগ্য পরিবর্তন নিরীক্ষণ করুন | একটি ট্রাস্ট ব্রোকার ব্যাটারি স্তরের উল্লেখযোগ্য পরিবর্তনগুলি নিরীক্ষণ করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
অবস্থান (সূক্ষ্ম, মোটা, ইত্যাদি...) | একজন ট্রাস্ট ব্রোকার ডিভাইসের শারীরিক অবস্থান অ্যাক্সেস করতে পারে | হ্যাঁ | হ্যাঁ | হ্যাঁ 1 | হ্যাঁ 1 |
1 ব্যবহারকারীর সম্মতি সহ
2 শুধুমাত্র কাজের প্রোফাইল
3 কাজের প্রোফাইল তথ্যে সীমাবদ্ধ অ্যাক্সেস
মেইনলাইন সংস্করণ পুনরুদ্ধার করুন
একজন ট্রাস্ট ব্রোকার com.google.android.modulemetadata
মডিউলের জন্য PackageInfo অ্যাক্সেস করতে পারে এবং সেখান থেকে versionName
:
private fun mainlineVersion(context: Context): String? {
val moduleProvider = "com.google.android.modulemetadata"
return try {
val pm = context.packageManager
val packageInfo = pm.getPackageInfo(moduleProvider, 0)
packageInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
null
}
}
আপনি SimpleDateFormat
ক্লাস ব্যবহার করে একটি Date
অবজেক্টে ফেরত স্ট্রিং পার্স করতে পারেন:
private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
"yyyy-MM-dd",
"yyyy-MM"
)
private fun parseDateFromVersionName(text: String): Date? {
for (pattern in VERSION_NAME_DATE_PATTERNS) {
try {
val simpleDateFormat = SimpleDateFormat(
pattern,
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
return simpleDateFormat.parse(text)
} catch (e: ParseException) {
// ignore and try next pattern
}
}
return null
}
মনে রাখবেন যে অ্যান্ড্রয়েড 11 এবং নতুনটির জন্য আপনাকে Android এর প্যাকেজ দৃশ্যমানতা সন্তুষ্ট করার জন্য আপনার AndroidManifest.xml
ফাইলে একটি কোয়েরি ঘোষণা যোগ করতে হবে:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
ব্যবস্থাপনা অবস্থা পুনরুদ্ধার করুন
কোনো ডিভাইস ম্যানেজমেন্ট মোডের অধীনে আছে কিনা এবং কোন ম্যানেজমেন্ট মোড সক্রিয় আছে কিনা তা যাচাই করতে একজন ট্রাস্ট ব্রোকার এই পদ্ধতিগুলি ব্যবহার করতে পারে।
ডিভাইস পরিচালনার জন্য পরীক্ষা করুন
একটি ডিভাইস পরিচালনার অধীনে আছে কিনা তা পরীক্ষা করতে getActiveAdmins() ব্যবহার করুন। যদি এই পদ্ধতিটি null
দেয় তাহলে ডিভাইসটি অব্যবস্থাপিত।
সম্পূর্ণরূপে পরিচালিত ডিভাইসের জন্য পরীক্ষা করুন
ডিভাইসটি সম্পূর্ণরূপে পরিচালিত কিনা তা পরীক্ষা করতে isDeviceOwnerApp()
ব্যবহার করুন।
কোম্পানির মালিকানাধীন ডিভাইসে কাজের প্রোফাইল চেক করুন
কর্পোরেট-মালিকানাধীন ডিভাইসগুলির জন্য একটি ডিভাইস ওয়ার্ক প্রোফাইল ম্যানেজমেন্ট মোড ব্যবহার করছে কিনা তা পরীক্ষা করতে isOrganizationOwnedDeviceWithManagedProfile()
ব্যবহার করুন
ব্যক্তিগত মালিকানাধীন ডিভাইসে কাজের প্রোফাইল চেক করুন
একটি কাজের প্রোফাইলের মধ্যে একটি অ্যাপ চলছে কিনা তা পরীক্ষা করতে isProfileOwnerApp()
ব্যবহার করুন এবং যাচাই করুন যে isOrganizationOwnedDeviceWithManagedProfile()
false
রিটার্ন করে।