Android มีสัญญาณของอุปกรณ์หลากหลายรูปแบบที่ผู้ดูแลระบบสามารถใช้พิจารณาระดับความปลอดภัยของอุปกรณ์ได้ ในรูปแบบความปลอดภัยแบบ Zero Trust สัญญาณเหล่านี้จะใช้เพื่อประเมินว่าควรอนุญาตให้อุปกรณ์เข้าถึงข้อมูลองค์กรหรือไม่
ฟีเจอร์ | คำอธิบาย | อุปกรณ์ที่จัดการครบวงจร | โปรไฟล์งานในอุปกรณ์ของบริษัท | โปรไฟล์งานในอุปกรณ์ส่วนตัว (BYOD) | อุปกรณ์ที่ไม่มีการจัดการ |
---|---|---|---|---|---|
Play Integrity API | โบรกเกอร์ความน่าเชื่อถือจะดึงข้อมูลสัญญาณต่อไปนี้ได้
|
ได้ | ได้ | ได้ | ได้ |
ความปลอดภัย การนำเสนอฮาร์ดแวร์ / เอกสารรับรองคีย์ | โบรกเกอร์ความน่าเชื่อถือสามารถยืนยันว่าข้อมูลเข้าสู่ระบบ PKI ของตนสร้างขึ้นและจัดเก็บไว้ในฮาร์ดแวร์ที่ปลอดภัย | ได้ | ได้ | ได้ | ได้ |
เอกสารรับรองพร็อพเพอร์ตี้ ของอุปกรณ์ | คุณสามารถรวมพร็อพเพอร์ตี้ของอุปกรณ์ไว้เป็นส่วนหนึ่งของบันทึกเอกสารรับรองในฐานะส่วนหนึ่งของเอกสารรับรองหลัก | ได้ | ได้ | ได้ | ได้ |
ระดับแพตช์ความปลอดภัยของอุปกรณ์ | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบระดับแพตช์ความปลอดภัยของระบบปฏิบัติการได้ | ได้ | ได้ | ได้ | ได้ |
อุปกรณ์มี OTA ที่รอดำเนินการไหม | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบว่ามีการอัปเดตระบบปฏิบัติการของอุปกรณ์ที่รอดำเนินการหรือไม่ | ได้ | ได้ | ได้ | ไม่มีข้อมูล |
ระดับแพตช์ด้านความปลอดภัยหลัก | โบรกเกอร์ความน่าเชื่อถืออ่านระดับแพตช์ความปลอดภัยสำหรับการฝึกเมนไลน์ที่ติดตั้งไว้ได้ | ได้ | ได้ | ได้ | ได้ |
รหัสเฉพาะการลงทะเบียน | โบรกเกอร์ความน่าเชื่อถือเข้าถึงรหัสอุปกรณ์ที่ไม่ซ้ำกันสำหรับองค์กรนั้นๆ ได้ รหัสนี้จะยังคงอยู่หลังจากการสร้างโปรไฟล์งานซ้ำและรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น | ได้ | ได้ | ได้ | ไม่มีข้อมูล |
สถานะการจัดการ (และการจัดการแอป) | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ข้อมูลนี้เพื่อระบุว่ามีการจัดการอุปกรณ์หรือไม่ | ได้ | ได้ | ได้ | ไม่มีข้อมูล |
การเข้ารหัสดิสก์ | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบว่าอุปกรณ์เข้ารหัสไว้หรือไม่ (หากจำเป็นต้องรองรับ Android 8) | ได้ | ได้ | ได้ | ได้ |
เวอร์ชันของระบบปฏิบัติการ | Trust Broker สามารถตรวจสอบเวอร์ชันระบบปฏิบัติการของอุปกรณ์ และยืนยันว่าเป็นเวอร์ชันเกินกว่าที่กำหนด | ได้ | ได้ | ได้ | ได้ |
การเข้าถึง สถานะเครือข่าย (สถานะเครือข่ายและสถานะ Wi-Fi) | โบรกเกอร์ความน่าเชื่อถือสามารถรับข้อมูลเกี่ยวกับสถานะเครือข่ายที่ใช้งานอยู่ (เครือข่ายมือถือและ Wi-Fi) | ได้ | ได้ | ได้ | ได้ |
เข้าถึงสถานะ Wi-Fi (Android 11 และต่ำกว่า, Android 12 ขึ้นไปจะรองรับทั้งการติดต่อกลับหรือแบบออนดีมานด์) | โบรกเกอร์ความน่าเชื่อถือสามารถรับข้อมูลเกี่ยวกับเครือข่าย Wi-Fi ที่ใช้งานอยู่ได้ | ได้ | ได้ | ได้ | ได้ |
การตั้งค่าพร็อกซี | โบรกเกอร์ความน่าเชื่อถือสามารถรับข้อมูลเกี่ยวกับการตั้งค่าพร็อกซี HTTP เริ่มต้นปัจจุบันได้ | ได้ | ได้ | ได้ | ได้ |
การตรวจสอบคุณภาพ การล็อกหน้าจอ | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบว่าอุปกรณ์ได้กำหนดค่าการล็อกหน้าจอที่มีคุณภาพมาแล้ว ก่อนที่จะให้สิทธิ์เข้าถึง | ได้ | ได้ | ได้ | ได้ |
เปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ | โบรกเกอร์ความน่าเชื่อถือสามารถระบุว่าอุปกรณ์แสดงการโจมตีที่กว้างขึ้นเมื่อเปิดใช้ตัวเลือกของนักพัฒนาซอฟต์แวร์ | ได้ | ได้ | ได้ | ได้ |
มีการเปิดใช้ DNS ผ่าน TLS หรือไม่ | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ประโยชน์จากโหมดนี้เพื่อให้เปิดใช้โหมด DNS ส่วนตัวได้ | ได้ | ได้ | ได้ | ได้ |
SafetyNet Google Safe Browsing | โบรกเกอร์ความน่าเชื่อถือสามารถระบุได้ว่า URL หนึ่งๆ ได้รับการจัดประเภทโดย Google ว่าเป็นภัยคุกคามที่รู้จักหรือไม่ | ได้ | ได้ | ได้ | ได้ |
ภายนอก ติดกับสื่อ | ระบบสามารถแจ้งเตือนโบรกเกอร์ความน่าเชื่อถือเมื่อมีการต่อเชื่อมที่จัดเก็บข้อมูลภายนอก | ได้ | ได้ | ได้ | ได้ |
UsageStatsManager | โบรกเกอร์ความน่าเชื่อถือสามารถศึกษารูปแบบการใช้งานของแต่ละแอปได้ | ได้ | ได้ | ได้ | ได้1 |
การบันทึก ความปลอดภัย | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ประโยชน์จากข้อมูลนี้เป็นส่วนหนึ่งของเครื่องมือตามบริบท เพื่อตรวจสอบการปฏิบัติตามข้อกำหนด และสร้างลายนิ้วมือตามพฤติกรรม | ได้ | ได้2 | ได้2 | ไม่มีข้อมูล |
การบันทึกเครือข่าย | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ประโยชน์จากข้อมูลนี้เป็นส่วนหนึ่งของเครื่องมือตามบริบท เพื่อตรวจสอบการปฏิบัติตามข้อกำหนด และสร้างลายนิ้วมือตามพฤติกรรม | ได้ | ได้2 | ได้2 | ไม่มีข้อมูล |
NetworkStatsManager | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบการใช้งานเครือข่ายของแอปภายในช่วงเวลาที่ระบุ | ได้ | ได้ | ได้2 | ได้1 |
ระดับการเข้าถึงแพ็กเกจ (แสดงแอปทั้งหมดในอุปกรณ์) | โบรกเกอร์ความน่าเชื่อถือสามารถค้นหาแอปที่ติดตั้งไว้ในอุปกรณ์ได้ | ได้ | ได้3 | ได้3 | ได้ |
อ่าน สถานะโทรศัพท์ | โบรกเกอร์ความน่าเชื่อถือสามารถรับข้อมูลเครือข่ายมือถือ สถานะการโทรที่ดำเนินอยู่ และรายการ PhoneAccount ที่ลงทะเบียนในอุปกรณ์ได้ | ได้ | ได้ | ได้ | ได้ |
เวลาที่รีบูตอุปกรณ์ครั้งล่าสุด | นายหน้าของความน่าเชื่อถือสามารถรับระยะเวลาทำงานของระบบได้ | ได้ | ได้ | ได้ | ได้ |
สร้างบัญชี | ทรัสต์โบรกเกอร์สามารถใช้ประโยชน์จากข้อมูลนี้เพื่อเข้าถึงรายชื่อบัญชีในบริการบัญชี | ได้ | ได้3 | ได้3 | ได้1 |
ตรวจสอบการเปลี่ยนแปลงที่สำคัญในระดับแบตเตอรี่ | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบการเปลี่ยนแปลงที่สำคัญของระดับแบตเตอรี่ | ได้ | ได้ | ได้ | ได้ |
สถานที่ (ละเอียด หยาบ ฯลฯ...) | Trust Broker สามารถเข้าถึงสถานที่ตั้งจริงของอุปกรณ์ได้ | ได้ | ได้ | ได้1 | ได้1 |
1 เมื่อได้รับความยินยอมจากผู้ใช้
2 โปรไฟล์งานเท่านั้น
3 สิทธิ์เข้าถึงข้อมูลโปรไฟล์งานจำกัดเท่านั้น
เรียกข้อมูลเวอร์ชัน Mainline
Trust Broker สามารถเข้าถึง PackageInfo สำหรับโมดูล com.google.android.modulemetadata
และเรียกข้อมูลจาก 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
}
}
คุณแยกวิเคราะห์สตริงที่แสดงผลเป็นออบเจ็กต์ Date
ได้โดยใช้คลาส SimpleDateFormat
ดังนี้
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
}
โปรดทราบว่าสำหรับ Android 11 ขึ้นไป คุณต้องเพิ่มการประกาศคำค้นหาในไฟล์ AndroidManifest.xml
เพื่อให้เป็นไปการแสดงแพ็กเกจของ Android ดังนี้
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
เรียกดูสถานะการจัดการ
โบรกเกอร์ความน่าเชื่อถือสามารถใช้วิธีการเหล่านี้เพื่อตรวจสอบว่าอุปกรณ์อยู่ในโหมดการจัดการหรือไม่ และโหมดการจัดการใดทำงานอยู่
ตรวจสอบการจัดการอุปกรณ์
ใช้ getActiveAdmins() เพื่อตรวจสอบว่าอุปกรณ์อยู่ภายใต้การจัดการหรือไม่ หากวิธีนี้แสดงผล null
แสดงว่าอุปกรณ์ไม่มีการจัดการ
ตรวจหาอุปกรณ์ที่มีการจัดการครบวงจร
ใช้ isDeviceOwnerApp()
เพื่อตรวจสอบว่าอุปกรณ์มีการจัดการครบวงจรหรือไม่
ตรวจหาโปรไฟล์งานในอุปกรณ์ของบริษัท
ใช้ isOrganizationOwnedDeviceWithManagedProfile()
เพื่อตรวจสอบว่าอุปกรณ์ใช้โหมดการจัดการโปรไฟล์งานสำหรับอุปกรณ์ของบริษัทหรือไม่
ตรวจหาโปรไฟล์งานในอุปกรณ์ส่วนตัว
ใช้ isProfileOwnerApp() เพื่อตรวจสอบว่าอุปกรณ์มีโปรไฟล์งานหรือไม่ และยืนยันว่า isOrganizationOwnedDeviceWithManagedProfile()
แสดงผล false