Mục lục:
- Mã hóa là gì?
- Thay đổi trong Lollipop
- Vấn đề hiệu năng
- Mã hóa không bắt buộc (và dù sao bạn cũng cần nó?)
Có rất nhiều thông tin về mã hóa toàn bộ đĩa "mặc định" (FDE) của Android 5.0 Lollipop. Một số trong đó là thông tin tốt, một số trong đó là thông tin xấu, và rất nhiều trong số đó chỉ là những đoạn suy đoán lặp đi lặp lại. Trong khi điều này làm cho cuộc trò chuyện tốt - và FDE là điều đáng nói - chúng tôi muốn chia nhỏ các điểm tốt hơn thành một cuộc thảo luận dễ đọc.
Đây không phải là tài liệu cuối cùng về mã hóa Android. Google đã đăng cái đó rồi. Chúng tôi sẽ giải quyết các câu hỏi hướng tới người tiêu dùng mà chúng tôi tiếp tục nghe. Như mọi khi, sử dụng các ý kiến để thảo luận để tất cả chúng ta có thể học được một chút gì đó.
Mã hóa là gì?
Mã hóa là quá trình bảo vệ dữ liệu bằng khóa mã hóa. Hãy nghĩ về mật khẩu là một khóa và mã hóa là một khóa rất an toàn. Bạn cần chìa khóa để vào trong để làm một cái gì đó. Và trong khi vào mà không có chìa khóa phù hợp là có thể, nó không có khả năng lắm. (Có, bất kỳ và mọi hệ thống mã hóa đều có thể - về mặt lý thuyết, ít nhất - bị đánh bại bởi những cá nhân kiên nhẫn và xảo quyệt.)
Trên Android của chúng tôi, tất cả dữ liệu người dùng trên thiết bị (kể từ Android 3.0) có thể được mã hóa. Dữ liệu thực sự được mã hóa nhanh chóng, trước khi nó được ghi vào đĩa. Đổi lại, dữ liệu được giải mã trước khi nó được trả lại cho bất kỳ chương trình nào yêu cầu. Tất cả những gì bạn cần là khóa chính xác, là mật khẩu dựa trên mật khẩu chính của thiết bị.
Thay đổi trong Lollipop
Mặc dù FDE đã có sẵn trong Android kể từ Android 3.x Honeycomb, Android 5.0 mang đến một số thay đổi và cải tiến khá lớn về cách thức hoạt động của tất cả.
Trong Lollipop, FDE được thực hiện với tính năng kernel hoạt động trực tiếp trên lớp khối của bộ lưu trữ. Điều này có nghĩa là mã hóa có thể hoạt động trên các thiết bị flash như lưu trữ eMMC - vốn không có tính năng mã hóa riêng - vì chúng tự hiển thị với kernel như một thiết bị khối tiêu chuẩn. Mã hóa là không thể với các hệ thống tệp nói chuyện trực tiếp với bộ lưu trữ (như YAFFS). Những người tạo ra điện thoại hoặc máy tính bảng của bạn có thể đã bao gồm một phương pháp để mã hóa bộ nhớ ngoài (như Thẻ SD), nhưng AOSP của Android chủ yếu liên quan đến bộ nhớ trong. Thuật toán được sử dụng là AES 128 bit với CBC và vectơ khởi tạo ngành muối được mã hóa bằng hàm băm SHA256. Khóa chính cũng sử dụng các cuộc gọi đến thư viện OpenSSL.
Nói cách khác, nó an toàn chết tiệt.
Trong lần khởi động đầu tiên vào Android, thiết bị của bạn tạo khóa chính 128 bit ngẫu nhiên, sau đó băm nó và lưu trữ trong siêu dữ liệu tiền điện tử. Dữ liệu này được mở khóa bằng cụm mật khẩu người dùng của bạn. (Và hãy nhớ, mọi người, đừng sử dụng mật khẩu yếu.) Băm kết quả cũng được ký thông qua sao lưu phần cứng, chẳng hạn như các tính năng dựa trên TEE (đó là Môi trường thực thi tin cậy) như TrustZone. Trước Android 5.0, khóa chính được mã hóa chỉ dựa trên mật khẩu của người dùng, có thể dễ bị tấn công ngoài hộp thông qua ADB.
Thật thú vị, Google không sử dụng công cụ mã hóa phần cứng Qualcomm trong AOSP hoặc cho Nexus 6. Điều này không hiệu quả vì nó buộc mã hóa và giải mã dựa trên CPU trong I / O trên đĩa (có thể ở mỗi khoảng 512 byte) so với sử dụng dựa trên phần cứng của Qualcomm Các tính năng hiệu suất. Chúng tôi sẽ không đoán lần thứ hai tại sao điều này được thực hiện, nhưng biết rằng các OEM có thể tự do thực hiện nó theo ý muốn. Chúng tôi hy vọng họ sẽ.
Google đã làm rất nhiều để bảo mật mã hóa toàn bộ đĩa trên Android. Nói chung, họ đã làm rất tốt.
Vấn đề hiệu năng
Bạn có thể đã nghe về hiệu suất kém để đọc và ghi đĩa trên thiết bị Nexus có bật mã hóa. Đó là sự thật - khi bạn cần mã hóa và giải mã nhanh chóng, tốc độ I / O của đĩa sẽ bị ảnh hưởng. Như đã đề cập ở trên, Google không sử dụng các tính năng hạt nhân dựa trên phần cứng của Qualcomm trên Nexus 6, điều này khiến nó bị ảnh hưởng nhiều hơn một chút. Nhưng nó tệ đến mức nào?
Đĩa I / O trong Lollipop nhanh hơn nhiều lần so với trong KitKat và các phiên bản trước của Android. Tối ưu hóa phần mềm và mã dành riêng cho thiết bị có nghĩa là Android có thể đọc và ghi từ bộ lưu trữ nhanh hơn bao giờ hết. Đây là một điều rất tốt mà hầu hết bị phủ nhận bởi thời gian I / O chậm hơn do mã hóa.
Nếu bạn cần sử dụng FDE (hoặc bị buộc phải sử dụng vì bạn đã mua Nexus mới và không muốn cài đặt phần sụn tùy chỉnh), hiệu suất của bạn sẽ vẫn tốt hơn (trên giấy) so với trên KitKat. Nó sẽ không tốt như nó có thể được mà không cần mã hóa. Trong sử dụng trong thế giới thực, hầu hết người dùng chúng tôi đã nói chuyện không nhận thấy bất kỳ độ trễ nào của thiết bị vì I / O chậm. Kinh nghiệm của bạn có thể khác.
Nếu bạn muốn hoặc cần FDE, sự đánh đổi có lẽ là xứng đáng.
Mã hóa không bắt buộc (và dù sao bạn cũng cần nó?)
Bất cứ ai có điện thoại đã có bản cập nhật Lollipop đều có thể cho bạn biết rằng Lollipop không bắt buộc bạn phải sử dụng mã hóa. Mặc dù Nexus 6 và Nexus 9 (và có thể là tất cả các thiết bị Nexus trong tương lai) được bật và không có cách nào dễ dàng để tắt, nhưng điện thoại được cập nhật lên Lollipop - như Galaxy Note 4 - không tự động bật mã hóa toàn bộ ổ đĩa.
Điều tương tự cũng xảy ra với các thiết bị mới đang vận chuyển với Android 5.x như LG G Flex 2. Tùy chọn là bạn muốn kích hoạt nó, nhưng theo mặc định, mã hóa hoàn toàn bị tắt. Điều này đưa chúng ta đến một sự lựa chọn - chúng ta có cần mã hóa toàn bộ đĩa không?
Rất nhiều người trong chúng ta sẽ tìm thấy mã hóa toàn bộ đĩa hữu ích. Nếu bạn có thông tin nhạy cảm mà bạn không bao giờ, muốn rơi vào tay kẻ xấu trên điện thoại của bạn, FDE là một ơn trời. Để ai đó xâm nhập vào dữ liệu của bạn, họ phải biết mật khẩu thiết bị của bạn. Không có vấn đề gì liên quan đến dây sẽ cho phép chúng xâm nhập và với điều kiện bạn đã sử dụng mật khẩu mạnh, dữ liệu của bạn sẽ an toàn vì sau một số lần đoán sai, mọi thứ sẽ bị khóa.
Đối với những người khác, chỉ cần bảo mật màn hình khóa tiêu chuẩn là đủ. Nếu chúng tôi mất điện thoại, chúng tôi có thể xóa nó từ xa thông qua Trình quản lý thiết bị Android hoặc một tiện ích khác và nếu ai đó có thể ngoại tuyến trước khi chúng tôi có thể xóa, thì đủ may mắn để bỏ qua mật khẩu màn hình khóa của chúng tôi (tất cả đều có thể xảy ra) get là một vài hình ảnh và quyền truy cập tài khoản Google mà chúng ta có thể nhanh chóng thay đổi mật khẩu.
Ngoài ra còn có toàn bộ vấn đề rình mò của chính phủ để suy nghĩ. Mặc dù hầu hết chúng ta không có lý do để lo sợ bất kỳ hậu quả nào đối với những gì chúng ta đã lưu trữ trên điện thoại, chúng ta vẫn xứng đáng được bảo mật và bảo vệ khi có dữ liệu cá nhân. Mã hóa toàn bộ đĩa giúp chúng tôi gần hơn để giữ an toàn cho dữ liệu của chúng tôi khỏi các cơ quan chính phủ, những người nghĩ rằng họ cần phải xem nó.
Chỉ bạn biết nếu bạn cần mã hóa thiết bị đầy đủ.