- GrapheneOS kết hợp mã hóa đĩa, giới hạn brute-force, giảm thiểu tấn công vào hệ điều hành và phòng vệ trước truy cập vật lý dựa trên tính năng bảo mật của Android 17 và phần cứng Pixel mới nhất
- Thành phần bảo mật mới nhất giới hạn việc nhập PIN hoặc mật khẩu ở tối đa 20 lần, trì hoãn 4 giờ sau 10 lần thất bại và lên tới 41 ngày sau 15 lần, đồng thời chặn việc thay đổi firmware nếu không có xác thực của chủ sở hữu để ngăn cả cách vượt qua từ nội bộ
- Hỗ trợ mật khẩu dài tối đa 128 ký tự và tùy chọn vân tay + PIN thứ cấp, cho phép dùng 6–8 từ Diceware ngẫu nhiên làm mật khẩu chính mà vẫn giữ được sự tiện lợi khi mở khóa hằng ngày
- Khi đang bị khóa, thiết bị chặn kết nối USB mới ở cả mức phần mềm lẫn phần cứng, đồng thời tự khởi động lại sau 10 phút đến 72 giờ và xóa bộ nhớ để đưa thiết bị về trạng thái Before First Unlock
- PIN hoặc mật khẩu cưỡng bức sẽ xóa thiết bị nếu được nhập tại bất kỳ cửa sổ xác thực nào của bất kỳ hồ sơ nào, nhưng việc bảo vệ dữ liệu tổng thể không dựa vào riêng tính năng này mà dựa trên hệ thống mã hóa, bảo mật phần cứng và giảm thiểu tấn công
Mã hóa và giới hạn số lần thử xác thực
- Việc phá trực tiếp mã hóa đĩa không phải là con đường thực tế ngay cả với những kẻ tấn công tinh vi nhất; thay vào đó, kẻ tấn công phải khai thác lỗ hổng hệ điều hành ở trạng thái After First Unlock hoặc brute-force PIN hay mật khẩu
- Giới hạn số lần thử của thành phần bảo mật trong Android 16 QPR2 tăng dần thời gian trì hoãn theo số lần thất bại
- Sau 10 lần thất bại sẽ bị trì hoãn 4 giờ, sau 15 lần là tới 41 ngày, và tổng số lần thử chỉ được phép tối đa 20 lần
- Từ chối sớm 5 giá trị khác nhau đã thất bại gần đây để tránh lãng phí số lần thử do lặp lại lỗi
- GrapheneOS chỉ hỗ trợ các thiết bị triển khai giới hạn số lần thử của thành phần bảo mật thế hệ mới nhất
- Để cập nhật firmware của thành phần bảo mật trên thiết bị được hỗ trợ, không chỉ cần khóa ký hợp lệ và số phiên bản cao hơn mà còn cần xác thực người dùng Owner
- Ngay cả khi chính phủ ép tạo firmware đã loại bỏ giới hạn số lần thử, cũng không thể cài đặt nó để vượt qua giới hạn
- Từ Pixel 2 ra mắt cuối năm 2017, Pixel đã sử dụng thành phần bảo mật có bộ hẹn giờ nội bộ và khả năng chống tấn công nội bộ, và sau đó còn được cải thiện tích hợp với hệ điều hành
- GrapheneOS nâng giới hạn độ dài mật khẩu từ 16 lên 128 ký tự, cho phép dùng cụm mật khẩu Diceware entropy cao mà không phụ thuộc vào giới hạn số lần thử của thành phần bảo mật
- Tùy chọn vân tay + PIN thứ cấp hỗ trợ đồng thời mật khẩu chính mạnh và việc mở khóa hằng ngày thuận tiện
- Ở trạng thái Before First Unlock, có thể dùng mật khẩu chính gồm 6–8 từ Diceware ngẫu nhiên, sau đó kết hợp vân tay với một PIN ngắn
- Ngay cả sau khi nhận diện vân tay hợp lệ, vẫn phải nhập PIN thứ cấp để mở khóa màn hình và kho khóa phần cứng
- Số lần thử vân tay được phép giảm từ 20 xuống 5, và PIN thứ cấp sai cũng được tính vào số lần thất bại
Phòng vệ trước hệ điều hành và truy cập vật lý
- GrapheneOS tăng độ khó của các cuộc tấn công vào hệ điều hành bằng các tính năng dựa trên phần cứng như bộ cấp phát bộ nhớ được tăng cường và gắn thẻ bộ nhớ phần cứng (MTE); chi tiết có thể xem tại tính năng giảm thiểu tấn công
- Để ngăn các cuộc tấn công khi kẻ xấu có thể tiếp cận thiết bị vật lý, hệ thống mặc định chặn các kết nối USB mới ở cả mức phần mềm và phần cứng trong lúc thiết bị bị khóa; khi kết nối USB đang hoạt động biến mất, chức năng dữ liệu cũng bị vô hiệu hóa ngay
- Bộ hẹn giờ tự khởi động lại cho thiết bị bị khóa, được giới thiệu từ tháng 6/2021, có thể đặt trong khoảng 10 phút đến 72 giờ
- Giá trị mặc định ban đầu là 72 giờ nhưng sau đó đã giảm xuống 18 giờ
- Thiết bị tắt hệ điều hành rồi khởi động lại, xóa bộ nhớ và đưa máy về trạng thái Before First Unlock
- Vào tháng 4/2024, việc khởi động vào chế độ fastboot của firmware Pixel cũng được bổ sung thao tác xóa bộ nhớ
- Apple và Google cũng đã thêm tính năng tự khởi động lại cho thiết bị bị khóa vào iOS 18.1 và Android 16; trên Android có thể bật bằng Advanced Protection Mode
- Android dùng khóa mã hóa riêng cho từng người dùng phụ và từng Private Space
- Trên GrapheneOS, có thể đưa các vùng đó trở lại trạng thái Before First Unlock mà không cần khởi động lại bằng cách kết thúc phiên người dùng phụ và dùng các nút gạt tương ứng
- Tuy nhiên, nếu muốn đưa dữ liệu người dùng chính trở lại trạng thái nghỉ được mã hóa, xóa hoàn toàn dữ liệu còn lại trong RAM và chặn cả cập nhật thành phần bảo mật, tốt hơn là khởi động lại toàn bộ thiết bị
Xóa dữ liệu trong tình huống bị cưỡng bức
- PIN hoặc mật khẩu cưỡng bức sẽ xóa thiết bị nếu được nhập tại bất kỳ cửa sổ xác thực hệ điều hành nào yêu cầu PIN hoặc mật khẩu của hồ sơ hiện tại
- Không chỉ màn hình khóa mà mọi cửa sổ cần xác thực, như khi thay đổi cài đặt nhạy cảm, đều hoạt động
- Có thể dùng trên mọi hồ sơ, bao gồm người dùng chính, người dùng phụ và Private Space
- Tính năng này cũng hoạt động nếu nhập làm PIN thứ cấp cho mở khóa bằng vân tay, nhưng không áp dụng cho SIM PIN
- Có thể ghi PIN hoặc mật khẩu cưỡng bức lên mảnh giấy để trong ốp điện thoại hay ví, nhưng việc xóa thiết bị trong tình huống cưỡng bức thực tế có thể dẫn đến hậu quả vật lý hoặc pháp lý, nên cần cân nhắc kỹ cách sử dụng
- Tính năng cưỡng bức có thể loại bỏ hoàn toàn khả năng khôi phục dữ liệu ngay cả khi mọi PIN và mật khẩu của các hồ sơ đều đã bị lộ, nhưng đây không phải biện pháp phòng vệ bắt buộc; các tính năng bảo vệ tổng thể có thể xem tại danh sách tính năng GrapheneOS và nhật ký thay đổi phát hành
- Hiện tại chỉ Pixel cung cấp các tính năng bảo mật phần cứng và cập nhật mà GrapheneOS yêu cầu, nhưng điều này dự kiến sẽ thay đổi từ năm 2027 theo tiến triển hợp tác với Motorola Mobility và phát triển từ Qualcomm
1 bình luận
Ý kiến trên Hacker News
Bài viết này có vẻ được đăng để phản hồi vụ việc một người bị truy tố sau khi đặt lại Pixel bằng mã PIN bị ép khai trong lúc bị khám xét ở biên giới Mỹ, nhằm làm rõ rằng khả năng chống trích xuất dữ liệu của GrapheneOS vẫn rất mạnh ngay cả khi không có mã PIN bị ép buộc
Gần đây cũng có bài trên Computer Weekly nói rằng tính năng tự khởi động lại sau 18 giờ của GrapheneOS đã đưa thiết bị trở về trạng thái trước lần mở khóa đầu tiên (BFU), nhờ đó ngăn việc trích xuất khóa và bảo vệ tài liệu tác nghiệp cùng các nguồn tin mật của một nhà báo
GrapheneOS cần chức năng sao lưu và khôi phục đầy đủ để có thể chủ động xóa sạch điện thoại trước khi qua biên giới. Sẽ rất tốt nếu có thể sao lưu và khôi phục mọi ứng dụng và dữ liệu lên máy chủ SSH/SFTP cá nhân giống như Google Cloud hay iCloud
Thay vì dùng mã PIN bị ép buộc và chấp nhận nguy cơ bị truy tố, tôi thích đặt lại điện thoại rồi chỉ nạp lại vài liên hệ, bản sao hộ chiếu và file PDF vé máy bay, sau đó nếu bị yêu cầu lúc nhập cảnh thì đưa mã PIN thật. Khi đi du lịch, chỉ cần nhớ mật khẩu của trình quản lý mật khẩu hoặc máy chủ SSH từ xa để khôi phục đúng dữ liệu cần thiết và có thể xóa lại bất cứ lúc nào
Tuy vậy, nếu đây trở thành tính năng mặc định thì cơ quan điều tra có thể nghi ngờ kho lưu trữ từ xa của mọi người dùng GrapheneOS và yêu cầu truy cập, khôi phục dữ liệu, nên có lẽ cấu hình riêng sẽ tốt hơn. Cũng có thể chuẩn bị một tài khoản Google giả chỉ dùng cho các giao dịch mua sắm bình thường và đăng ký YouTube để trông tự nhiên hơn
Tôi sắp đi du lịch nước ngoài một tháng sau 3 tuần nữa, nên đang phân vân giữa việc đặt lại điện thoại, hoặc để điện thoại chính ở nhà và mang theo một thiết bị mới giá 150 euro chỉ chứa liên hệ khẩn cấp của gia đình. May là chỉ nhìn màn hình khóa thì không lộ ra đây không phải Android Pixel thông thường
allowBackup="false", và cũng hỗ trợ bất kỳ dịch vụ đồng bộ nào cung cấp API tương thíchVì sao lưu theo từng profile nên còn có thể khôi phục sang người dùng phụ để thử nghiệm. Họ đang lên kế hoạch cải tổ toàn diện để cách triển khai và trải nghiệm người dùng đơn giản, gọn gàng hơn, nhưng hiện tại đang ưu tiên cải tổ các ứng dụng khác trước
Nếu nhập một mã PIN đặc biệt ở màn hình khóa thì sau một chút trì hoãn máy sẽ khởi động vào phân vùng mồi nhử, như vậy không chỉ với kiểm tra biên giới có thể đoán trước mà cả với kiểm tra đột xuất cũng có được khả năng chối bỏ hợp lý
Khóa hình vẽ Android chỉ cung cấp entropy
Log2(389112) ≈ 18.57 bit. Nó còn yếu hơn 3 ký tự ngẫu nhiên, 4 chữ thường, hoặc mã PIN thập phân 6 chữ sốCó thể dùng mẹo ghi nhớ cho mật khẩu dài, nhưng nhập vào thì bất tiện. Nếu quá dài thì đáng ra có thể cho phép kiểu dùng giá trị băm rút gọn, nhưng việc chặn mật khẩu mạnh lại khuyến khích những thói quen xấu như tái sử dụng hoặc tự gửi lại cho chính mình
Với khóa vân tay, có thể thêm mã PIN xác thực thứ hai nên vẫn dùng cụm mật khẩu mạnh một cách tiện lợi mà không gặp nhược điểm của việc chỉ dùng sinh trắc học. Khóa hình vẽ khiến người dùng chỉ chọn một phần rất nhỏ trong các tổ hợp thực sự có thể có, nên yếu hơn nhiều so với con số tính toán và tạo cảm giác an toàn sai lầm, vì thế đã bị loại bỏ từ nhiều năm trước. Tính năng tạo PIN và cụm mật khẩu ngẫu nhiên tích hợp cũng đang được phát triển
Họ đã thay đổi giới hạn của AOSP để cho phép mật khẩu dài tới 128 ký tự. Cụm mật khẩu dài chỉ cần nhập sau khi khởi động lại, và có ưu điểm là vẫn được bảo vệ ngay cả nếu secure element bị khai thác
Các tấn công side-channel vào chip bảo mật về lý thuyết là có thể, nhưng cần phương pháp tấn công đã được kiểm chứng, tháo rời thiết bị và thao tác tinh vi mang tính phá hủy
Thật buồn cười khi muốn có các đảm bảo bảo mật như thiết bị Apple lại bị đối xử như tội phạm. Apple cũng có tự động khởi động lại, mã hóa toàn bộ và Lockdown Mode
Kết quả của việc nhập mật khẩu dưới ép buộc phải là thứ mà người nhận chiếc điện thoại không thể nhận ra. Cần xóa thông tin tài khoản thật, nhưng hiển thị một hệ điều hành được lấp đầy bằng nội dung trông có vẻ hợp lý như các email lịch sự nhưng vô nghĩa để điều tra viên có thể xem xét
Google Photos, Samsung và nhiều hệ điều hành cùng dịch vụ khác đều cung cấp tính năng dữ liệu khóa
Việc xóa hồ sơ để lại siêu dữ liệu chứng minh sự tồn tại của nó trong thiết bị và kho lưu trữ được mã hóa của hồ sơ chủ sở hữu. Cũng có thể dễ dàng kiểm tra việc đặt lại và thời điểm bằng ADB, nên không thể mang lại khả năng chối bỏ hợp lý, và khiến người dùng tin rằng nó là kín đáo sẽ đặt họ vào nguy hiểm
Việc ẩn Private Space của Android cũng chỉ che giấu sơ sài trong giao diện người dùng; đã có nhiều cách phát hiện được công khai, và thực tế rất khó che giấu hoàn toàn kể cả trước ADB. Những tính năng không hoàn hảo sẽ nhanh chóng bị phổ biến qua thảo luận trực tuyến và được tích hợp vào LLM, công cụ pháp chứng và tài liệu hướng dẫn
Tính năng của GrapheneOS phải hoạt động ngay cả với đối thủ biết sự tồn tại của tính năng đó. PIN ép buộc không có cách nào phân biệt với PIN thật, nên ngay cả PIN nhận từ người dùng không dùng tính năng này cũng phải được xem là có khả năng là PIN ép buộc
Trong các thiết bị tương lai, họ muốn bổ sung hỗ trợ PIN ép buộc ngay trong thành phần bảo mật như một phần của giới hạn số lần thử Weaver, để ngay cả lỗ hổng hệ điều hành cũng không thể vượt qua
Có thắc mắc liệu sau lần mở khóa đầu tiên (AFU), thiết bị có còn được bảo vệ khi đang ở trạng thái khóa hay không. Vì dùng thường xuyên, nếu không thể bảo vệ dữ liệu AFU dù đã khóa lại trước khi cơ quan điều tra hay kẻ tấn công chiếm được thì cũng ít tác dụng, và cơ quan điều tra có thể phân tích ngay trong ngày bằng công cụ như Cellebrite
Điều này giống như dùng VeraCrypt nhưng ngại khởi động lại nên cứ để PC bật, trong trường hợp đó có thể bị giải mã qua trích xuất bộ nhớ
18 giờ là giá trị được đặt để gần như không kích hoạt ngay cả với những người chỉ dùng điện thoại vài lần mỗi ngày. Thường chỉ cần dài hơn một chút so với thời gian ngủ tối đa là đủ; việc khởi động lại trong đêm tự nó không sao, nhưng có thể làm lỡ các liên lạc khẩn cấp không phải cuộc gọi qua nhà mạng
Tài liệu Cellebrite Premium được công bố gần đây cũng cho thấy không có phương tiện tấn công các thiết bị GrapheneOS đã cập nhật và đang khóa sau một mức bản vá nhất định của năm 2022
Muốn biết liệu sự hợp tác giữa GrapheneOS và Motorola còn đang tiếp diễn không, và khi nào thiết bị Motorola sẽ ra mắt
Khi qua TSA hay kiểm tra nhập cảnh, luôn tắt điện thoại và laptop. Ở Mỹ, họ cho rằng không thể bị ép cung cấp mật khẩu, và ngay cả nếu thiết bị bị tịch thu thì nếu đang tắt nguồn cũng khó phá mật khẩu
Tự động khởi động lại của GrapheneOS có thể đặt thấp nhất là 10 phút và mặc định là 18 giờ. Sau đó Google và Apple cũng đưa vào bộ đếm thời gian cố định 72 giờ
Tuy nhiên, sẽ tốt hơn nếu GrapheneOS có phím tắt tắt máy nhanh hơn. Hiện tại, theo hiểu biết của tôi, vẫn phải nhấn nút vật lý rồi xác nhận lại trên màn hình
xkcd liên quan: https://xkcd.com/538/
Có vẻ anh ta đã đưa mật khẩu, nhưng đó là mật khẩu dùng để đặt lại điện thoại chứ không phải để mở khóa. Việc không sao lưu thiết bị trước cuộc khám xét là điều khá bất ngờ
Có thể tạo một PIN ép buộc giảm nhẹ chỉ xóa các ứng dụng đã chọn mà không lộ liễu. Hoặc đưa dữ liệu ứng dụng về một điểm khôi phục được chỉ định để trông như chưa từng có chuyện gì xảy ra, đồng thời không thể lần ra việc có thiết lập tính năng này, điều đó sẽ giúp giảm rủi ro pháp lý
Nhưng sự tồn tại của một hồ sơ cụ thể và thời điểm nó bị xóa sẽ vẫn hiện rõ trong siêu dữ liệu của hệ thống tệp và hệ điều hành. Dấu vết các tệp bị sao chép và sửa đổi rải rác trên SSD cũng còn lại; sau khi đã dùng bình thường trong thời gian dài, nếu mới yêu cầu xóa an toàn một phạm vi cụ thể thì đã quá muộn và vẫn có khả năng bị khôi phục. Bản thân việc thiếu mất siêu dữ liệu và thống kê lẽ ra phải có cũng là bằng chứng
Có thể làm một tính năng trong không gian lưu trữ dành riêng, chấp nhận mọi cụm mật khẩu là hợp lệ và đưa ra đầu ra ngẫu nhiên nếu chưa được thiết lập hoặc nhập sai. Để triển khai đúng cách sẽ cần máy ảo và không gian dành riêng mặc định, nhưng ngay cả vậy vẫn có khả năng việc sử dụng bị chứng minh qua phân tích mức thấp của SSD