Android cung cấp nhiều tín hiệu thiết bị mà quản trị viên có thể dùng để xác định tình trạng bảo mật của thiết bị. Trong mô hình bảo mật không tin tưởng bất cứ điều gì, các tín hiệu này được dùng để đánh giá xem thiết bị có được phép truy cập vào thông tin của công ty hay không.
Tính năng | Nội dung mô tả | Thiết bị được quản lý hoàn toàn | Hồ sơ công việc trên thiết bị thuộc quyền sở hữu của công ty | Hồ sơ công việc trên thiết bị thuộc sở hữu cá nhân (BYOD) | Thiết bị không được quản lý |
---|---|---|---|---|---|
API Tính toàn vẹn của Play | Người môi giới tin cậy có thể truy xuất các tín hiệu sau:
|
Có | Có | Có | Có |
Chứng thực khoá / Chứng thực hiện tại phần cứng một cách an toàn | Trình môi giới tin cậy có thể xác minh rằng thông tin xác thực PKI của họ đã được tạo và lưu trữ trong phần cứng bảo mật | Có | Có | Có | Có |
Chứng thực thuộc tính thiết bị | Trong quá trình chứng thực khoá, các thuộc tính thiết bị có thể được đưa vào bản ghi chứng thực | Có | Có | Có | Có |
Cấp bản vá bảo mật của thiết bị | Trình môi giới tin cậy có thể xác thực Cấp bản vá bảo mật của hệ điều hành | Có | Có | Có | Có |
Thiết bị có OTA đang chờ xử lý không | Người môi giới tin cậy có thể kiểm tra xem có bản cập nhật hệ điều hành thiết bị nào đang chờ xử lý hay không | Có | Có | Có | Không áp dụng |
Cấp bản vá bảo mật của Mainline | Trình môi giới tin cậy có thể đọc cấp bản vá bảo mật cho chuyến tàu tuyến chính đã cài đặt | Có | Có | Có | Có |
Mã đăng ký cụ thể | Trình môi giới tin cậy có thể truy cập vào một mã thiết bị duy nhất dành riêng cho doanh nghiệp đó. Mã này vẫn tồn tại sau quá trình tạo lại hồ sơ công việc và đặt lại thiết bị về trạng thái ban đầu | Có | Có | Có | Không áp dụng |
Trạng thái quản lý (và quản lý ứng dụng) | Người môi giới tin cậy có thể dùng thông tin này để xác định xem một thiết bị có được quản lý hay không | Có | Có | Có | Không áp dụng |
Mã hoá ổ đĩa | Người môi giới tin cậy có thể kiểm tra xem thiết bị có được mã hoá hay không (nếu cần hỗ trợ Android 8) | Có | Có | Có | Có |
Phiên bản hệ điều hành | Trình môi giới tin cậy có thể kiểm tra phiên bản hệ điều hành của thiết bị và xác nhận rằng phiên bản đó vượt quá một phiên bản nhất định | Có | Có | Có | Có |
Truy cập vào Trạng thái mạng (Trạng thái mạng và trạng thái Wi-Fi) | Trình môi giới tin cậy có thể lấy thông tin về trạng thái mạng đang hoạt động (di động và Wi-Fi) | Có | Có | Có | Có |
Truy cập vào Trạng thái Wi-Fi (Android 11 trở xuống, Android 12 trở lên hỗ trợ cả phương thức gọi lại hoặc theo yêu cầu) | Người môi giới tin cậy có thể nhận thông tin về mạng Wi-Fi đang hoạt động | Có | Có | Có | Có |
Cài đặt proxy | Người môi giới tin cậy có thể nhận thông tin về các chế độ cài đặt proxy HTTP mặc định hiện tại. | Có | Có | Có | Có |
Kiểm tra chất lượng khoá màn hình | Trình môi giới tin cậy có thể đảm bảo thiết bị có một phương thức khoá màn hình chất lượng nhất định được định cấu hình trước khi cấp quyền truy cập | Có | Có | Có | Có |
Đã bật Tuỳ chọn cho nhà phát triển | Khi bạn bật các tuỳ chọn cho nhà phát triển, Trình môi giới tin cậy có thể xác định một thiết bị có bề mặt tấn công rộng hơn | Có | Có | Có | Có |
DNS qua TLS có được bật không | Nhà môi giới tin cậy có thể tận dụng điều này để đảm bảo rằng chế độ DNS riêng được bật | Có | Có | Có | Có |
Duyệt web an toàn SafetyNet | Nhà môi giới tin cậy có thể xác định xem một URL cụ thể có bị Google phân loại là mối đe doạ đã biết hay không. | Có | Có | Có | Có |
Gắn phương tiện bên ngoài | Bạn có thể nhận được thông báo khi một bộ nhớ ngoài được kết nối với Trình môi giới tin cậy | Có | Có | Có | Có |
UsageStatsManager | Nhà môi giới tin cậy có thể nghiên cứu quy luật sử dụng của từng ứng dụng | Có | Có | Có | Có1 |
Ghi nhật ký bảo mật | Nhà môi giới tin cậy có thể tận dụng dữ liệu này như một phần của công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay số dựa trên hành vi | Có | Có2 | Có2 | Không áp dụng |
Ghi nhật ký mạng | Nhà môi giới tin cậy có thể tận dụng dữ liệu này như một phần của công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay số dựa trên hành vi | Có | Có2 | Có2 | Không áp dụng |
NetworkStatsManager | Trình môi giới tin cậy có thể truy vấn mức sử dụng mạng của ứng dụng trong một khoảng thời gian nhất định | Có | Có | Có2 | Có1 |
Chế độ hiển thị gói (Liệt kê tất cả ứng dụng trên thiết bị) | Trình môi giới tin cậy có thể truy vấn những ứng dụng được cài đặt trên thiết bị | Có | Có3 | Có3 | Có |
Đọc trạng thái điện thoại | Trình môi giới tin cậy có thể nhận thông tin về mạng di động, trạng thái của mọi cuộc gọi đang diễn ra và danh sách PhoneAccount đã đăng ký trên thiết bị | Có | Có | Có | Có |
Lần gần đây nhất thiết bị khởi động lại | Trình môi giới tin cậy có thể biết thời gian hoạt động của hệ thống | Có | Có | Có | Có |
Tải tài khoản | Nhà môi giới tin cậy có thể tận dụng tính năng này để truy cập vào danh sách tài khoản trong Dịch vụ tài khoản | Có | Có3 | Có3 | Có1 |
Theo dõi những thay đổi đáng kể về mức pin | Nhà môi giới tin cậy có thể theo dõi những thay đổi đáng kể về mức pin | Có | Có | Có | Có |
Vị trí (Tốt, thô, v.v.) | Người môi giới tin cậy có thể truy cập vào thông tin vị trí thực của thiết bị | Có | Có | Có1 | Có1 |
1 Có sự đồng ý của người dùng
2 Chỉ hồ sơ công việc
3 Quyền truy cập bị giới hạn ở thông tin hồ sơ công việc
Truy xuất phiên bản Mainline
Trình môi giới tin cậy có thể truy cập vào PackageInfo (Gói thông tin) của mô-đun com.google.android.modulemetadata
và truy xuất 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
}
}
Bạn có thể phân tích cú pháp chuỗi được trả về thành đối tượng Date
bằng cách sử dụng lớp 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
}
Hãy nhớ rằng đối với Android 11 trở lên, bạn phải thêm nội dung khai báo truy vấn vào tệp AndroidManifest.xml
để đáp ứng chế độ hiển thị gói của Android:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
Truy xuất trạng thái quản lý
Trình môi giới tin cậy có thể sử dụng các phương thức này để xác minh xem một thiết bị có đang ở chế độ quản lý hay không và chế độ quản lý nào đang hoạt động.
Kiểm tra chế độ quản lý thiết bị
Sử dụng getActiveAdmins() để kiểm tra xem thiết bị có đang được quản lý hay không. Nếu phương thức này trả về null
, thì thiết bị không được quản lý.
Kiểm tra xem thiết bị có được quản lý toàn bộ hay không
Hãy dùng isDeviceOwnerApp()
để kiểm tra xem thiết bị có được quản lý hoàn toàn hay không.
Kiểm tra hồ sơ công việc trên thiết bị thuộc quyền sở hữu của công ty
Sử dụng isOrganizationOwnedDeviceWithManagedProfile()
để kiểm tra xem thiết bị có đang sử dụng chế độ quản lý hồ sơ công việc cho thiết bị do công ty sở hữu hay không
Kiểm tra hồ sơ công việc trên thiết bị thuộc sở hữu của cá nhân
Sử dụng isProfileOwnerApp() để kiểm tra xem thiết bị có hồ sơ công việc hay không và xác minh rằng isOrganizationOwnedDeviceWithManagedProfile()
trả về false
.