Ứng dụng gallery lock và photo locker: có thực sự bảo vệ ảnh của bạn không?

Ứng dụng gallery lock và photo locker: có thực sự bảo vệ ảnh của bạn không?

Hầu hết ứng dụng gallery lock và photo locker chỉ đặt PIN trước các tệp không được mã hóa.

Ứng dụng gallery lock và photo locker đặt màn hình PIN hoặc mật khẩu trước ảnh của bạn. Ngôn ngữ tiếp thị ám chỉ bảo mật: "khóa," "an toàn," "bảo mật," "được bảo vệ." Nhưng trong phần lớn các ứng dụng này, màn hình PIN là toàn bộ biện pháp bảo vệ. Đằng sau đó, ảnh của bạn nằm không được mã hóa trong một thư mục thông thường.

Ổ khóa trên cửa kính chặn người tôn trọng ổ khóa. Nó không chặn bất kỳ ai nhìn qua kính.

Hướng dẫn này xem xét những gì ứng dụng gallery lock và photo locker thực sự làm ở cấp độ kỹ thuật, giải thích khoảng cách giữa "bị khóa" và "được mã hóa," và xác định bảo vệ ảnh thực sự cần gì.


Ứng dụng gallery lock thực sự làm gì

Ứng dụng gallery lock (còn gọi là photo locker, gallery vault hoặc ứng dụng thư viện riêng tư) tuân theo một kiến trúc nhất quán:

  1. Nhập. Ảnh được sao chép hoặc di chuyển từ camera roll của thiết bị vào thư mục lưu trữ riêng của ứng dụng.
  2. Kiểm soát. Kiểm tra PIN, mật khẩu, mẫu hình hoặc sinh trắc học được đặt tại điểm vào của ứng dụng.
  3. Hiển thị. Khi nhập thông tin chính xác, ứng dụng hiển thị ảnh được lưu trữ trong giao diện thư viện.

Đó là cơ chế đầy đủ cho hầu hết ứng dụng gallery lock. Thông tin xác thực mở khóa giao diện người dùng của ứng dụng. Nó không mã hóa, biến đổi hoặc bảo vệ mật mã các tệp bên dưới.

"Bị khóa" có nghĩa là gì trong thực tế

Khi ứng dụng gallery lock nói ảnh của bạn "bị khóa," thường có nghĩa là:

  • Ứng dụng Ảnh không còn hiển thị chúng (chúng đã được di chuyển vào thư mục của ứng dụng)
  • Mở ứng dụng gallery lock yêu cầu PIN
  • Ảnh bên trong ứng dụng chỉ có thể xem qua giao diện của ứng dụng

"Bị khóa" không có nghĩa là:

  • Các tệp được mã hóa
  • Tệp không thể đọc nếu không có PIN
  • Tệp được bảo vệ chống truy cập hệ thống tệp
  • Các tệp chống lại việc trích xuất sau khi người kiểm tra vượt qua giao diện ứng dụng

Sự phân biệt quan trọng vì "khóa" và "mã hóa" mô tả các hoạt động hoàn toàn khác nhau. Khóa kiểm soát ai có thể đi qua cửa. Mã hóa biến đổi nội dung để chúng không thể đọc nếu không có khóa toán học.


Khoảng cách giữa "khóa" và "mã hóa"

Đây là vấn đề kỹ thuật cốt lõi của danh mục gallery lock.

Thao tác Điều gì xảy ra với tệp Mức độ bảo vệ
Khóa (kiểm soát truy cập) Tệp vẫn ở định dạng gốc (JPEG, HEIC, PNG). Rào cản giao diện ngăn xem qua ứng dụng. Chỉ bảo vệ khỏi truy cập cấp ứng dụng
Mã hóa (bảo vệ bằng mật mã học) Nội dung tệp được một thuật toán mã hóa như AES-256-GCM biến thành bản mã có xác thực. Chống việc đọc trực tiếp bản mã bị sao chép khi không có khóa; trạng thái thiết bị, thông tin xác thực, siêu dữ liệu và cách triển khai vẫn quan trọng

Trong ứng dụng gallery lock, ảnh của bạn tồn tại dưới dạng tệp hình ảnh tiêu chuẩn. Chúng có siêu dữ liệu EXIF. Chúng có phần mở rộng tệp thông thường. Chúng có thể đọc bởi bất kỳ trình xem hình ảnh nào. PIN ngăn ứng dụng hiển thị chúng, nhưng bản thân các tệp không thay đổi.

Trong một ứng dụng két mã hóa được thiết kế đúng, nội dung tệp được lưu là bản mã chứ không phải ảnh thường. Mở bản mã đó bằng trình xem ảnh sẽ không thấy gì dùng được. Việc trường EXIF, kích thước tệp, số bản ghi, ảnh thu nhỏ hay siêu dữ liệu khác có còn lộ ra hay không phụ thuộc vào định dạng của ứng dụng, nên chỉ mã hóa byte ảnh chưa chứng minh được mọi chi tiết đều được che.

Một ví dụ cụ thể

Hãy tưởng tượng bạn lưu cùng một ảnh trong cả hai loại ứng dụng:

Ứng dụng gallery lock: Tệp IMG_4521.heic được chuyển đến /AppData/GalleryLock/photos/IMG_4521.heic. Bất kỳ ai có quyền truy cập hệ thống tệp đều mở được và thấy ảnh. Mã PIN chỉ ngăn ứng dụng hiển thị ảnh. Tệp vẫn nguyên vẹn và đọc được.

Ứng dụng két mã hóa: Tệp IMG_4521.heic được mã hóa thành một khối dữ liệu như a8f3b2c1..., lưu với tên tệp ngẫu nhiên và không có phần mở rộng. Mở nó bằng bất kỳ trình xem nào cũng chỉ thấy dữ liệu vô nghĩa. Tệp gốc không còn tồn tại ở dạng đọc được trên thiết bị.

Đó là sự khác biệt. Không phải lý thuyết. Không phải nhỏ. Mà là khác hẳn về bản chất.


Cách ứng dụng gallery lock bị vượt qua

Hiểu các phương pháp vượt qua sẽ cho thấy vì sao phép ẩn dụ "khóa" gây hiểu lầm.

1. Kết nối máy tính

Khi iPhone được sao lưu qua iTunes hoặc Finder (hoặc Android qua ADB), bản sao lưu có thể bao gồm dữ liệu sandbox của ứng dụng. Trong ứng dụng gallery lock, bản sao lưu này chứa tệp ảnh gốc không được mã hóa. Việc trích xuất chúng yêu cầu phần mềm miễn phí, được cung cấp rộng rãi.

2. Công cụ pháp y

Cơ quan thực thi pháp luật và giám định pháp y sử dụng công cụ như Cellebrite UFED và GrayKey trích xuất dữ liệu từ thiết bị di động ở cấp độ hệ thống tệp. Các công cụ này không tương tác với giao diện ứng dụng. Chúng đọc trực tiếp bộ lưu trữ. Tệp không mã hóa trong thư mục gallery lock hoàn toàn có thể truy cập.

Theo tài liệu công khai của Cellebrite, công cụ của họ hỗ trợ trích xuất dữ liệu sandbox của ứng dụng từ thiết bị iOS, bao gồm cả các ứng dụng két và gallery lock của bên thứ ba. Mã PIN không có tác dụng vì việc trích xuất diễn ra bên dưới tầng ứng dụng.

3. Phơi nhiễm sao lưu đám mây

Nếu thiết bị sao lưu lên iCloud hoặc Google Cloud, dữ liệu ứng dụng gallery lock có thể được đưa vào bản sao lưu. Apple và Google có thể truy cập các bản sao lưu này theo yêu cầu pháp lý. Vì tệp trong gallery lock không được mã hóa, chúng hoàn toàn có thể đọc sau khi trích xuất từ bản sao lưu.

4. Xóa ứng dụng

Nếu ứng dụng gallery lock bị xóa (vô tình, trong sự cố cập nhật hệ điều hành, hoặc bởi bên thứ ba), các tệp không mã hóa trong sandbox của ứng dụng cũng bị xóa. Không giống như két được mã hóa có cơ chế sao lưu riêng, ứng dụng gallery lock thường không cung cấp tùy chọn khôi phục bên ngoài ứng dụng.

5. Lỗ hổng ứng dụng

Ứng dụng gallery lock không mã hóa tệp có vành đai bảo mật đơn giản hơn để xâm nhập. Bất kỳ lỗ hổng nào trong ứng dụng (một cửa hậu gỡ lỗi còn sót trong bản phát hành, một API cục bộ không an toàn, hoặc một màn hình xác thực bị vượt qua) đều làm lộ tệp trực tiếp, vì không có lớp mã hóa làm tuyến phòng thủ thứ hai.


Vấn đề thu thập dữ liệu

Hầu hết ứng dụng gallery lock và photo locker miễn phí với quảng cáo. Mô hình hỗ trợ quảng cáo yêu cầu SDK theo dõi thu thập mã định danh thiết bị, mẫu sử dụng và dữ liệu hành vi.

Một đánh giá năm 2023 về các ứng dụng gallery lock phổ biến trên App Store của iOS đã tìm thấy các dấu hiệu thu thập dữ liệu rộng rãi:

  • Nhiều SDK quảng cáo (Facebook Audience Network, Google AdMob, Unity Ads)
  • Các framework phân tích theo dõi lượt xem màn hình, thời lượng phiên và cách dùng tính năng
  • Lấy dấu vân tay thiết bị để nhắm mục tiêu quảng cáo
  • Trong một số trường hợp, truy cập dữ liệu vị trí

Đây là nghịch lý sâu sắc. Người dùng tải xuống các ứng dụng này đặc biệt vì quyền riêng tư. Sau đó các ứng dụng thu thập và truyền dữ liệu hành vi đến các mạng quảng cáo. Ảnh có thể "bị khóa" khỏi những người quan sát thông thường, nhưng hành vi của người dùng được phát sóng đến các nhà môi giới dữ liệu.

Các ứng dụng thu một mức giá hợp lý cho mã hóa thật sự thường theo dõi rất ít hoặc không theo dõi, vì mô hình kinh doanh của họ là sản phẩm, không phải dữ liệu của người dùng.


Bảo vệ ảnh thực sự trông như thế nào

Nếu ứng dụng gallery lock đại diện cho đầu "khóa" của phổ bảo vệ, thì đây là đầu "mã hóa":

Tiêu chuẩn mã hóa

AES-256-GCM (Advanced Encryption Standard, khóa 256-bit, chế độ Galois/Counter). Đây là thuật toán mã hóa có xác thực được NIST khuyến nghị (SP 800-38D) cho các ứng dụng bảo mật cao. Nó cung cấp cả tính bí mật (không có khóa thì không đọc được dữ liệu) lẫn tính toàn vẹn (mọi can thiệp vào dữ liệu đã mã hóa đều bị phát hiện).

Dẫn xuất khóa

Hàm tạo khóa như PBKDF2 kết hợp thông tin xác thực của người dùng với muối và hệ số công việc. Một hệ thống phân cấp đúng cách có thể dùng kết quả đó để mở lớp bọc của một khóa mã hóa tệp ngẫu nhiên riêng. KDF làm tăng chi phí cho mỗi lần đoán nhưng không làm tăng entropy của thông tin xác thực yếu, nên thời gian tấn công phải tính dựa trên chi phí mỗi lần đoán, phần cứng, mức song song và không gian mật khẩu hoặc mẫu hình thực tế của người dùng.

Cô lập theo từng tệp

Mỗi tệp nhận một vector khởi tạo (IV) ngẫu nhiên, duy nhất. Các ảnh giống hệt nhau tạo ra đầu ra mã hóa khác nhau. Kẻ tấn công không có quy luật nào để khai thác giữa các tệp.

Mã hóa siêu dữ liệu

Tên tệp, ngày tạo và cấu trúc két được mã hóa bằng mật mã riêng. Ngay cả khi ai đó biết tệp tồn tại, siêu dữ liệu không tiết lộ gì về nội dung.

Kiến trúc không-kiến-thức

Nhà phát triển ứng dụng không nhận khóa mã hóa hay nội dung két đọc được. Vì vậy, lệnh pháp lý không thể buộc nhà phát triển giải mã bản mã mà họ không mở được. Nhà phát triển hoặc nền tảng đám mây vẫn có thể giữ siêu dữ liệu vận hành, hồ sơ tài khoản hoặc bản ghi đã mã hóa trong tầm kiểm soát của họ, tùy kiến trúc sản phẩm và phạm vi của lệnh.

Vaultaire dùng mã hóa có xác thực AES-256-GCM cho nội dung tệp, tiêu đề tệp, siêu dữ liệu, chỉ mục và ảnh thu nhỏ; PBKDF2-HMAC-SHA512 cho các khóa tạo từ mẫu hình; và nonce mới cho mỗi thao tác mã hóa. Giao diện tách theo mẫu hình của ứng dụng không hiển thị danh sách két, dù người kiểm tra có quyền truy cập vùng chứa ứng dụng có thể đếm số két qua thư mục lưu trữ của từng két. Chế độ ép buộc xóa các bản ghi truy cập cục bộ của các két khác và tách thiết bị khỏi đồng bộ; nó không xóa bản sao lưu trên đám mây hay bản sao ở thiết bị ngang hàng.

Mỗi mẫu hình vẽ trên lưới 5x5 đã cấu hình sẽ tạo khóa cho két được gán, nên giao diện khi khóa không hiển thị danh sách két hay xác nhận có mẫu hình nào khác được cấu hình hay không. Người kiểm tra có quyền truy cập vùng chứa ứng dụng có thể đếm các tệp chỉ mục đã mã hóa cùng thư mục lưu trữ của từng két và ước tính số két cục bộ. Nội dung chỉ mục, tên két và các tệp vẫn được mã hóa nếu không có mẫu hình khớp.


Cách biết ứng dụng của bạn có thực sự mã hóa không

Ba phép thử nhanh:

Kiểm tra 1: Đặt lại mật khẩu

Thử đặt lại mật khẩu hoặc mã PIN qua ứng dụng. Nếu ứng dụng gửi cho bạn email khôi phục quyền truy cập vào tệp, nhà phát triển đang giữ khóa mã hóa (hoặc không hề có khóa mã hóa). Một ứng dụng mã hóa zero-knowledge không thể đặt lại thông tin xác thực của bạn vì nó chưa bao giờ có chúng.

Kiểm tra 2: Đặc tả mã hóa

Kiểm tra website hoặc mô tả App Store của ứng dụng để tìm thuật toán mã hóa được đặt tên: AES-256-GCM, AES-256-CBC, ChaCha20-Poly1305. Nếu ứng dụng nói "an toàn" hoặc "được bảo vệ" mà không đặt tên mật mã, nó có thể không mã hóa.

Kiểm tra 3: Nhãn dinh dưỡng quyền riêng tư

Kiểm tra nhãn quyền riêng tư trên App Store. So sánh dữ liệu nào ứng dụng thu thập với những gì bạn mong đợi từ ứng dụng tập trung vào quyền riêng tư. Nhiều danh mục theo dõi (đặc biệt "Dữ liệu dùng để theo dõi bạn" và "Dữ liệu được liên kết với bạn") cho thấy mô hình hỗ trợ quảng cáo với thu thập dữ liệu mở rộng.


Câu hỏi thường gặp

Ứng dụng gallery lock có thực sự bảo vệ ảnh không?

Ứng dụng gallery lock bảo vệ ảnh khỏi bị xem qua ứng dụng Ảnh của thiết bị hoặc bởi người tình cờ dùng điện thoại. Chúng không bảo vệ ảnh ở cấp hệ thống tệp. Tệp lưu trong hầu hết ứng dụng gallery lock không được mã hóa và có thể truy cập qua kết nối máy tính, trích xuất bản sao lưu hoặc công cụ pháp y. Mã PIN ngăn truy cập ở cấp ứng dụng; nó không mã hóa tệp.

Sự khác biệt giữa khóa và mã hóa ảnh là gì?

Khóa đặt rào cản kiểm soát truy cập (PIN, mật khẩu, sinh trắc học) trước các tệp vẫn ở định dạng gốc. Mã hóa biến đổi tệp bằng mật mã như AES-256-GCM thành dữ liệu không thể đọc về mặt toán học nếu không có khóa đúng. Tệp bị khóa có thể truy cập bằng cách bỏ qua giao diện. Tệp được mã hóa không thể truy cập nếu không có khóa mã hóa, bất kể bộ lưu trữ được truy cập như thế nào.

Công cụ pháp y có thể truy cập ứng dụng gallery lock không?

Có. Công cụ pháp y như Cellebrite UFED và GrayKey trích xuất dữ liệu ở cấp hệ thống tệp, bỏ qua hoàn toàn xác thực cấp ứng dụng. Vì hầu hết ứng dụng gallery lock lưu tệp không mã hóa, các công cụ này truy cập ảnh trực tiếp mà không cần mã PIN của ứng dụng. Đây là khả năng thông thường trong thực thi pháp luật và pháp y doanh nghiệp.

Ứng dụng gallery lock trả phí có an toàn hơn ứng dụng miễn phí không?

Không nhất thiết. Sự phân biệt trả phí/miễn phí không dự đoán đáng tin cậy về mã hóa. Một số ứng dụng gallery lock trả phí vẫn chỉ dùng kiểm soát truy cập mà không mã hóa. Tiêu chí quan trọng là: thuật toán mã hóa được nêu tên, mô hình quản lý khóa (phía máy khách hay phía máy chủ) và chính sách thu thập dữ liệu. Giá không đảm bảo kiến trúc bảo mật.

Tôi nên dùng gì thay cho gallery lock?

Để bảo vệ ảnh thực sự, hãy sử dụng ứng dụng két được mã hóa với: AES-256-GCM hoặc mã hóa tương đương, dẫn xuất khóa phía máy khách (PBKDF2, Argon2), kiến trúc zero-knowledge nơi nhà phát triển không thể truy cập tệp, và thu thập dữ liệu tối thiểu. Kiểm tra rằng ứng dụng đặt tên rõ ràng thuật toán mã hóa của nó và không cung cấp đặt lại mật khẩu dựa trên máy chủ.


Kết luận

Ứng dụng gallery lock và photo locker trả lời câu hỏi thực sự: "Làm thế nào để giữ một số ảnh riêng tư?" Nhưng hầu hết trong số chúng trả lời bằng màn hình PIN và không có gì khác.

Từ "khóa" gợi ý bảo mật. Trong thực tế, nó có nghĩa là kiểm soát truy cập. PIN là gợi ý cho phần mềm. Đó không phải là rào cản đối với dữ liệu.

Nếu màn hình PIN đủ cho tình huống của bạn, bất kỳ ứng dụng gallery lock nào cũng hoạt động. Nhưng nếu ai đó có công cụ, kiến thức hoặc thẩm quyền pháp lý có thể cố truy cập những ảnh đó, PIN không phải là thứ bảo vệ bạn. Mã hóa mới là.

Khác biệt giữa "bị khóa" và "được mã hóa" là khác biệt giữa một cánh cửa và một bức tường. Cái này mở được. Cái kia thì không.

Hướng dẫn liên quan: Ứng dụng photo locker tốt nhất cho iPhone, đã kiểm tra | Cách khóa ảnh trên iPhone | Ứng dụng ẩn ảnh: 5 cách tiếp cận