- Một trường hợp FBI khôi phục các tin nhắn Signal đã xóa bằng cách sử dụng cơ sở dữ liệu thông báo nội bộ của iPhone đã được công khai qua lời khai tại tòa
- Trên iPhone của bị cáo, nội dung thông báo Signal nhận được vẫn còn lưu trong bộ nhớ nội bộ ngay cả sau khi ứng dụng Signal đã bị xóa, và cài đặt xem trước thông báo đã bị tắt
- Do trạng thái bảo mật của iPhone (AFU, BFU) và cấu trúc bộ nhớ đệm cục bộ, một phần dữ liệu có thể vẫn tồn tại trong hệ thống nội bộ
- Có khả năng rằng ngay cả sau khi xóa ứng dụng, token thông báo đẩy không bị vô hiệu hóa ngay lập tức, nên máy chủ vẫn tiếp tục gửi thông báo và iPhone tiếp nhận chúng
- Vụ việc này cho thấy cấu trúc lưu giữ dữ liệu của ứng dụng nhắn tin mã hóa và hệ thống thông báo iOS đang nổi lên như một vấn đề cốt lõi của bảo mật quyền riêng tư
Trường hợp FBI khôi phục tin nhắn Signal đã xóa từ dữ liệu thông báo trên iPhone
- Một trường hợp FBI khôi phục các tin nhắn Signal đã xóa bằng cách sử dụng cơ sở dữ liệu thông báo nội bộ của iPhone đã được công bố
- Theo bài đưa tin của 404 Media, việc này được hé lộ qua lời khai trong phiên tòa xét xử bị cáo liên quan đến một vụ pháo hoa và phá hoại tài sản tại cơ sở giam giữ ICE Prairieland ở Alvarado, Texas
- Đặc vụ FBI Clark Wiethorn đã giải thích quy trình thu thập chứng cứ trước tòa
-
Các tin nhắn được khôi phục từ dữ liệu thông báo
- Trên iPhone của bị cáo Lynette Sharp, nội dung các tin nhắn nhận được vẫn còn trong kho lưu trữ thông báo nội bộ ngay cả sau khi ứng dụng Signal đã bị xóa
- Theo phần tóm tắt chứng cứ tại tòa (Exhibit 158), “Signal đã bị xóa nhưng các thông báo nhận được vẫn được lưu trong bộ nhớ nội bộ thông qua kho lưu trữ thông báo nội bộ của Apple, và chỉ các tin nhắn nhận được mới được khôi phục”
- Signal có cài đặt ẩn nội dung tin nhắn trong phần xem trước thông báo, nhưng có vẻ bị cáo đã tắt tùy chọn này
- Cả Signal và Apple đều không đưa ra lập trường chính thức về cách dữ liệu thông báo được lưu trữ hay xử lý
-
Cấu trúc lưu trữ nội bộ và bối cảnh kỹ thuật
- Do thiếu thông tin kỹ thuật cụ thể về trạng thái chiếc iPhone của bị cáo, vẫn chưa rõ FBI đã khôi phục dữ liệu bằng cách nào
- iPhone có nhiều trạng thái bảo mật như BFU (Before First Unlock) và AFU (After First Unlock), và quyền truy cập dữ liệu thay đổi tùy theo từng trạng thái
- Khi thiết bị đang ở trạng thái đã mở khóa, hệ thống giả định người dùng đang trực tiếp thao tác nên phạm vi truy cập vào dữ liệu được bảo vệ sẽ được mở rộng
- iOS quản lý nhiều trạng thái bảo mật khác nhau dựa trên cơ chế tin cậy, đồng thời lưu nhiều dữ liệu dưới dạng bộ nhớ đệm cục bộ để tăng tiện lợi cho người dùng
-
Token thông báo đẩy và khả năng dữ liệu còn tồn tại
-
Ngay cả khi ứng dụng bị xóa, token dùng để gửi thông báo đẩy cũng không bị vô hiệu hóa ngay lập tức
- Máy chủ không thể biết ứng dụng đã bị xóa hay chưa, nên vẫn có thể tiếp tục gửi push sau thông báo cuối cùng và iPhone có khả năng tiếp nhận rồi xử lý chúng ở cấp nội bộ
- Apple gần đây đã thay đổi cách xác thực token thông báo đẩy trong iOS 26.4; chưa xác nhận có liên quan trực tiếp đến vụ việc này hay không, nhưng xét về thời điểm thì đây là chi tiết đáng chú ý
-
Khả năng trích xuất dữ liệu và công cụ điều tra
- Theo mô tả trong Exhibit 158, FBI đã khôi phục dữ liệu thông qua kho lưu trữ thông báo nội bộ của Apple, và có khả năng đây là thông tin được trích xuất từ bản sao lưu của thiết bị
- Các cơ quan thực thi pháp luật sở hữu nhiều công cụ pháp y thương mại có thể trích xuất dữ liệu bằng cách khai thác lỗ hổng iOS, và FBI cũng có thể đã sử dụng những công cụ như vậy
- 404 Media cũng công bố riêng báo cáo gốc của vụ việc này
-
Ý nghĩa của vụ việc
- Trường hợp này được chú ý như một ví dụ cho thấy chỉ xóa ứng dụng nhắn tin hoặc dùng mã hóa vẫn không đảm bảo dữ liệu được xóa hoàn toàn
- Cấu trúc lưu giữ dữ liệu của hệ thống thông báo iOS và cách quản lý bảo mật của nó có thể trở thành trọng tâm trong các cuộc thảo luận về quyền riêng tư thời gian tới
1 bình luận
Ý kiến trên Hacker News
Nghĩ từ góc độ người dùng thì Signal có forward secrecy, nên tôi tưởng rằng sau khi nhận xong thì tin nhắn sẽ biến mất.
Nhưng nếu không bật disappearing messages, các công cụ pháp chứng như Cellebrite vẫn có thể khôi phục. Mặc định tính năng này bị tắt.
Ngay cả khi đã bật, nếu tin nhắn xuất hiện trong thông báo (notification) thì HĐH vẫn có thể lưu lại. Apple thực sự đã làm như vậy, và có tùy chọn để ngăn việc này nhưng mặc định cũng đang tắt.
Xóa ứng dụng rồi mà tin nhắn vẫn còn trong HĐH. Cuối cùng, khi sự cân bằng giữa bảo mật và khả năng sử dụng bị phá vỡ, tôi cho rằng đây không phải lỗi của người dùng mà là vấn đề trong thiết kế hệ thống.
Tôi đã tổng hợp các trường hợp liên quan trong bài viết của mình
WhatsApp trên Android cũng mặc định khuyến khích sao lưu không được mã hóa lên Google Drive.
Tôi nghi ngờ Google, Apple và Meta đã tạo ra một kiểu thỏa thuận hậu PRISM kiểu “cho phép E2EE nhưng cấu hình mặc định vẫn có thể truy cập được”.
Vì đa số người dùng giữ nguyên thiết lập mặc định nên kết cục là bảo mật bị vô hiệu hóa.
Metadata (ai liên lạc với ai, vào lúc nào) vẫn tiếp tục bị lộ.
Như bài này, dữ liệu nhạy cảm không nên được đưa vào thông báo, hoặc phải gửi dưới dạng payload đã mã hóa.
Trang khuyến nghị Chat của Whonix
Trong phần cài đặt Signal,
nếu đổi Settings > Notifications > Notification Content > Show thành “Name Only” hoặc “No Name or Content”
thì khi đưa màn hình cho người khác xem, tin nhắn nhạy cảm sẽ không bị lộ. Xét theo vụ việc lần này, thiết lập này còn có lợi ích bảo mật bổ sung.
Nếu cài đặt xem trước thông báo của Signal không bị tắt, hệ thống sẽ lưu nội dung tin nhắn vào cơ sở dữ liệu.
Có thể xem bản ghi thông báo này trên macOS tại
~/Library/Group Containers/group.com.apple.usernoted/db2/dbvà dùng ứng dụng Crank để trích xuất bằng truy vấn SQL.
Nhưng hạ tầng thông báo tập trung như FCM(APNs) cũng có thể lưu dữ liệu ở giữa đường.
Mặc định là “xem trước khi mở khóa”, nhưng ngay cả trong trường hợp đó thì chưa rõ việc lưu trữ nội bộ có được mã hóa hay không.
Cuối cùng, đây là vấn đề OPSEC do người dùng cấu hình sai, và tôi cho rằng mặc định của Signal là hợp lý.
Tôi từng thắc mắc vì sao Signal cứ mỗi tháng lại hỏi bật thông báo. Dù đã từ chối nhưng nó vẫn lặp lại.
Việc cứ tiếp tục khuyến khích dù người dùng không muốn giờ đã trở thành một mẫu UX rất phổ biến.
Tôi nghĩ lời khai tại tòa mới là cách thật sự để kiểm chứng thực trạng bảo mật.
Quan trọng không phải tranh luận lý thuyết mà là trong vụ việc thực tế, dữ liệu nào đã được khôi phục.
Câu “bị cáo không bật cài đặt nên hệ thống đã lưu tin nhắn” thực chất đồng nghĩa với việc thiết lập mặc định của Apple có vấn đề.
Đa số người dùng không đổi cài đặt, và Apple cũng biết điều đó.
Dù không phải cố ý, chúng ta vẫn phải hành xử như thể đó là cố ý.
Cuối cùng, trách nhiệm bị đẩy sang người dùng, còn công ty tạo ra hệ thống thì nấp sau cái tên vô danh là “hệ thống”.
Bài gốc: FBI Extracts Suspect’s Deleted Signal Messages Saved in iPhone Notification Database
Tôi thắc mắc vì sao Apple không xóa các bản ghi còn lại trong cơ sở dữ liệu thông báo ngay cả khi ứng dụng đã bị gỡ.
Việc tiếp tục giữ nội dung thông báo cũ chính là mầm mống của sự cố bảo mật.
Theo tài liệu chính thức của Android, dữ liệu chỉ được giữ trong một khoảng thời gian nhất định.
Do wear leveling, dữ liệu có thể còn tồn tại nhiều năm.
Điều tương tự cũng xảy ra ở cấp độ hệ thống tệp và SSD.
Rốt cuộc đây là ví dụ cho thấy một đầu của E2E không phải là ứng dụng mà là chính chiếc điện thoại.
Việc có thể đọc tin nhắn từ thông báo mà không hiện đã xem, như trên WhatsApp, có nghĩa là HĐH đang đóng vai trò MITM (người đứng giữa).
echo "my_private_data" | notify-sendđã là điều nguy hiểm.Thực ra vấn đề lưu dữ liệu thông báo kiểu này đã được biết đến từ lâu.
Nó đã được đề cập trong RealityNet iOS Forensics References và
bài viết của The Forensics Scooter từ trước rồi.