Android cung cấp nhiều tín hiệu thiết bị mà quản trị viên có thể sử dụng để xác định trạng thái bảo mật của thiết bị. Trong mô hình bảo mật Không tin cậy, các tín hiệu này được dùng để đánh giá xem có nên cho phép một thiết bị truy cập vào thông tin của công ty hay không.
Tính năng | Mô tả | Thiết bị được quản lý hoàn toàn | Hồ sơ công việc trên thiết bị 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ý |
---|---|---|---|---|---|
Phát API Tính toàn vẹn | Đại lý
tin cậy có thể truy xuất các tín hiệu sau:
|
Có | Có | Có | Có |
An toàn Trình bày phần cứng / Chứng thực khoá | Người 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ó |
Thiết bị Chứng thực thuộc tính | Trong quá trình chứng thực khoá, bạn có thể đưa các thuộc tính thiết bị 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ị | Cố vấn 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ó |
Có thiết bị có trạng thái OTA đang chờ xử lý | Đối tác trung gian tin cậy có thể kiểm tra xem có bản cập nhật hệ điều hành thiết bị đang chờ xử lý hay không | Có | Có | Có | Không áp dụng |
Cấp bản vá bảo mật chính | Người môi giới tin cậy có thể đọc cấp bản vá bảo mật của phiên bản được cài đặt tàu chính | Có | Có | Có | Có |
Mã nhận dạng cụ thể của gói đăng ký | 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 thiết bị đó doanh nghiệp. Mã nhận dạng này vẫn tồn tại trong quá trình tạo lại hồ sơ công việc và trạng thái ban đầu của thiết bị đã đặt lại | Có | Có | Có | Không áp dụng |
Trạng thái quản lý (và quản lý ứng dụng) | Cố vấn tin cậy có thể sử 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 | Nhà 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 | 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ó |
Quyền truy cập Trạng thái mạng (Trạng thái mạng và Trạng thái Wi-Fi) | Nhà môi giới tin cậy có thể nhận được 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 WiFi (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 Trust có thể nhận được thông tin về mạng Wi-Fi đang hoạt động | Có | Có | Có | Có |
Cài đặt proxy | Một trình quản lý ủy thác có thể nhận thông tin về chế độ cài đặt proxy HTTP mặc định hiện tại. | Có | Có | Có | Có |
Màn hình khoá kiểm tra chất lượng | Một bên môi giới tin cậy có thể đảm bảo thiết bị có phương thức khoá màn hình có 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ó |
Nhà phát triển đã bật các tuỳ chọn | Một bên môi giới tin cậy có thể xác định một thiết bị đang có cuộc tấn công có quy mô lớn hơn nền tảng khi bật tuỳ chọn cho nhà phát triển | Có | Có | Có | Có |
Là Đã bật DNS-over-TLS | Người quản lý tin cậy có thể tận dụng thông tin này để đảm bảo rằng chế độ DNS riêng đã được bật | Có | Có | Có | Có |
SafetyNet Duyệt web an toàn | Một trình quản lý 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ó |
Bên ngoài Kết nối với phương tiện truyền thông | Nhà môi giới tin cậy có thể nhận được thông báo khi bộ nhớ ngoài được kết nối | Có | Có | Có | Có |
UsageStatsManager | Người môi giới tin cậy có thể nghiên cứu các mẫu sử dụng của từng ứng dụng | Có | Có | Có | Có1 |
Bảo mật ghi nhật ký | Người quản lý tín nhiệm có thể tận dụng dữ liệu này trong công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay dựa trên hành vi | Có | Có2 | Có2 | Không áp dụng |
Ghi nhật ký mạng | Người quản lý tín nhiệm có thể tận dụng dữ liệu này trong công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay dựa trên hành vi | Có | Có2 | Có2 | Không áp dụng |
NetworkStatsManager | Một trình quản lý tín nhiệm 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 |
Gói hàng Chế độ hiển thị (Liệt kê tất cả ứng dụng trên thiết bị) | Công cụ dàn xếp 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 | Nhà môi giới Trust có thể nhận được thông tin về mạng di động, trạng thái của mọi sự kiện cuộc gọi và danh sách PhoneAccount đã đăng ký trên thiết bị | Có | Có | Có | Có |
Thời điểm thiết bị khởi động lại lần gần đây nhất | Một trình quản lý tín nhiệm có thể nhận được thời gian hoạt động của hệ thống | Có | Có | Có | Có |
Nhận tài khoản | Người môi giới tin cậy có thể tận dụng lợi ích 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í (Chính xác, Tương đối, v.v.) | Một trình quản lý tin cậy có thể truy cập vào vị trí thực tế 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 chỉ giới hạn ở thông tin hồ sơ công việc
Truy xuất phiên bản Mainline
Người môi giới Trust có thể truy cập vào PackageInfo cho
mô-đun com.google.android.modulemetadata
và truy xuất 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
}
Lưu ý 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 trong
tệp AndroidManifest.xml
của bạn để đá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ý
Nhà môi giới tin cậy có thể dùng các phương thức này để xác minh xem một thiết bị có thuộc quyền quản lý hay không và chế độ quản lý nào đang hoạt động.
Kiểm tra tính năng quản lý thiết bị
Sử dụng getActiveAdmins() để kiểm tra xem một 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 thiết bị được quản lý đầy đủ
Sử dụng isDeviceOwnerApp()
để kiểm tra xem thiết bị có được quản lý đầy đủ hay không.
Kiểm tra hồ sơ công việc trên thiết bị của công ty
Sử dụng isOrganizationOwnedDeviceWithManagedProfile()
để kiểm tra xem một 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ị của cá nhân
Sử dụng isProfileOwnerApp()
để kiểm tra xem một ứng dụng có đang chạy bên trong hồ sơ công việc hay không và xác minh rằng isOrganizationOwnedDeviceWithManagedProfile()
trả về false
.