Vì sao làm mờ, che pixel có thể bị khôi phục

Thí nghiệm cho thấy mã PIN bị che pixel được dò lại bằng cách đoán và so khớp, vì sao ô đen đặc là cách che an toàn, và những chỗ rò rỉ hay bị bỏ sót.

Trong bài này

Bạn chụp màn hình giao dịch chuyển khoản để chứng minh đã trả tiền, làm mờ số tài khoản rồi gửi đi. Nhìn thì không đọc được. Vấn đề là "bạn không đọc được" khác với "không thể khôi phục". Làm mờ và che pixel không xoá thông tin, chúng chỉ tóm tắt nó, và bản tóm tắt của một đoạn chữ ở phông chữ đã biết thường có thể được so khớp ngược lại thành chữ. Bài này chứng minh điều đó bằng một thí nghiệm nhỏ, giải thích khi nào làm mờ là đủ, và liệt kê những cách khác khiến ảnh đã che vẫn lộ thông tin.

Thí nghiệm dùng đúng đoạn mã che pixel của công cụ làm mờ và che ảnh trên trang. Công cụ chạy trong trình duyệt và không bao giờ tải ảnh lên.

Che pixel thực chất làm gì

Che pixel chia một vùng thành các ô vuông và thay mỗi ô bằng màu trung bình của các điểm ảnh bên trong. Một ô 4 x 4 gồm chữ đen trên nền trắng trở thành một ô xám, độ đậm nhạt cho biết ô đó chứa bao nhiêu "mực". Làm mờ cũng tương tự nhưng với các vùng lân cận chồng lên nhau: mỗi điểm ảnh đầu ra là trung bình có trọng số của các điểm xung quanh.

Cả hai thao tác đều không ngẫu nhiên. Cùng đầu vào, cùng thiết lập thì luôn cho cùng kết quả. Chính tính tất định đó là điểm yếu. Nếu kẻ tấn công đoán được đoạn chữ bị che có thể là gì, họ vẽ từng phương án bằng cùng phông và cỡ chữ, áp cùng hiệu ứng, rồi xem phương án nào cho ra đúng bức ảnh họ nhận được. Họ không cần "khử mờ" gì cả. Những công cụ đã công bố như Depix hoạt động theo nguyên lý này với ảnh chụp màn hình bị che pixel.

Thí nghiệm với mã PIN bốn số

Để xem còn lại bao nhiêu thông tin, chúng tôi vẽ mã PIN 4071 bằng một phông chữ bitmap đơn giản, mỗi chữ số rộng 10 điểm ảnh và cao 14 điểm ảnh, đen trên nền trắng. Sau đó che pixel bằng chính hàm của công cụ với nhiều cỡ ô, rồi vẽ toàn bộ 10.000 mã PIN từ 0000 đến 9999 theo cùng cách và đếm xem bao nhiêu mã cho kết quả giống hệt.

Cỡ ô (điểm ảnh)So với chiều cao chữ sốSố mã PIN khớp với ảnh đã che
2nhỏ hơn nhiều1 (chỉ 4071)
4dưới một phần ba1
7một nửa1
14bằng nhau3 (2071, 3071, 4071)
24lớn hơn một chữ số12
48cả dãy số trong một ô528

Khi cỡ ô chỉ bằng nửa chiều cao chữ trở xuống, bức tranh khảm xác định được đúng mã PIN duy nhất. Ngay cả khi ô cao bằng chữ số, cũng chỉ còn ba phương án, và thử ba lần thì ai cũng làm được. Khi cả dãy số bị gộp thành một ô xám duy nhất, thứ không ai gọi là đọc được, số phương án vẫn giảm từ 10.000 xuống 528, vì màu xám trung bình vẫn tiết lộ tổng lượng mực của các chữ số.

Đây là trường hợp thuận lợi nhất cho kẻ tấn công: phông bitmap sạch, biết trước vị trí, không nén ảnh. Ảnh chụp màn hình thật có khử răng cưa và nhiễu JPEG nên việc so khớp khó hơn, nhưng không phải vô vọng, và bí mật thật thường ngắn, lấy từ một tập nhỏ (mã PIN, ngày sinh, mấy số cuối của thẻ). Bí mật ngắn chính là loại mà cách tấn công bằng đoán xử lý tốt nhất.

Thế nào là "đủ mạnh"

Công cụ tính hiệu ứng theo kích thước ảnh, để cùng một mức có ý nghĩa như nhau trên ảnh điện thoại và ảnh chụp màn hình lớn. Bán kính làm mờ bằng mức độ nhân với 5% cạnh ngắn, còn cỡ ô pixel bằng mức độ nhân với 4%:

ẢnhMức 20Mức 40Mức 100
1920 × 1080, bán kính mờ11 px22 px54 px
1920 × 1080, cỡ ô pixel9 px17 px43 px
800 × 600, bán kính mờ6 px12 px30 px
800 × 600, cỡ ô pixel5 px10 px24 px

Chữ thường trong ảnh chụp màn hình cao 1080 điểm ảnh thường cao 14 đến 20 điểm ảnh. Mức 20 cho ô 9 điểm ảnh, khoảng nửa chiều cao chữ, mà thí nghiệm trên cho thấy là không đủ. Vì vậy công cụ đánh dấu mọi vùng làm mờ hay che pixel dưới mức 40 là yếu và khuyên dùng ô đen đặc cho những gì cần giữ bí mật.

Lựa chọn an toàn: ô đen đặc

Ô đen đặc thay toàn bộ điểm ảnh trong vùng bằng cùng một màu đục. Không còn gì để so khớp: phương án nào cũng cho ra cùng một hình chữ nhật đen. Thứ duy nhất ô đen còn tiết lộ là vị trí và kích thước, có thể gợi ý độ dài của đoạn chữ bị che. Nếu chính độ dài là thông tin nhạy cảm, ví dụ một cái tên, hãy vẽ ô rộng hơn chữ một chút.

Hãy dùng làm mờ khi mục đích là thẩm mỹ, không phải bí mật: làm mờ khuôn mặt người qua đường trong ảnh minh hoạ, giấu đồ đạc lộn xộn phía sau, hoặc làm dịu một vùng rối mắt. Với số, tên, địa chỉ, mã và mọi thứ liên quan tới pháp lý hay tài chính, hãy dùng ô đen.

Những chỗ rò rỉ chẳng liên quan gì tới làm mờ

  1. Phủ lên thay vì thay thế. Hình chữ nhật đen vẽ trong trình sửa PDF hay lớp chú thích có thể chỉ nằm đè lên chữ vẫn còn nguyên bên dưới. Chọn, sao chép hoặc xoá hình đó là chữ hiện lại. Hãy che bằng cách thay đổi điểm ảnh, rồi lưu thành một ảnh phẳng mới.
  2. Cắt ảnh nhưng vẫn giữ bản gốc. Năm 2023, lỗi có biệt danh aCropalypse cho thấy một số trình sửa ảnh chụp màn hình trên điện thoại và Windows ghi đè phần đầu tệp nhưng để nguyên phần còn lại của ảnh gốc, nên một phần vùng đã cắt có thể được khôi phục. Hãy xuất ra tệp mới thay vì lưu đè lên tệp gốc.
  3. Ảnh thu nhỏ nhúng sẵn và siêu dữ liệu. Một số máy ảnh lưu kèm ảnh xem trước nhỏ và vị trí GPS bên trong tệp JPEG. Trình sửa ảnh nào thay đổi ảnh chính nhưng sao chép nguyên siêu dữ liệu có thể gửi kèm cả bản xem trước chưa che. Công cụ của chúng tôi vẽ lại ảnh thành tệp mới nên không mang theo siêu dữ liệu hay ảnh xem trước; với các ảnh khác, xem cách xoá vị trí GPS khỏi ảnh.
  4. Những bản sao khác. Hình phản chiếu trên kính hay cửa sổ, ảnh chụp màn hình thứ hai trong cùng cuộc trò chuyện, cùng tài liệu hiện ở một tab khác, hoặc chính thông tin đó nằm trong tên tệp.
  5. Che không kín. Ô che hụt phần đầu của chữ cao hay phần đuôi chữ g vẫn để lại đủ hình dạng để đọc. Hãy phóng to kết quả trước khi gửi.

Quy trình ngắn

  1. Vẽ ô đen đặc lên từng thông tin bí mật, rộng hơn chữ một chút.
  2. Chỉ dùng làm mờ khi che vì thẩm mỹ, và giữ mức từ 40 trở lên.
  3. Xuất ra tệp mới rồi mở chính tệp đó, không phải màn hình của trình sửa, để kiểm tra ở kích thước đầy đủ.
  4. Kiểm tra tên tệp và tin nhắn bạn gửi kèm.

Công cụ làm mờ và che ảnh làm các bước 1 tới 3 ngay trong trình duyệt. Nếu cần nén hoặc đổi định dạng kết quả, bộ công cụ ảnh cũng làm việc đó trên máy của bạn.

Công cụ được nhắc trong bài

Về trang blog