Tàng HìnhWiki
Tìm
Mật thư & mực vô hình

Giấu tin trong ảnh (steganography): nguyên lý và giới hạn thời số

Giấu tin trong ảnh là thay bit cuối của giá trị màu từng điểm ảnh để cài thông điệp mà mắt không thấy. Nén JPEG thường xoá mất tin; steganalysis giúp phát hiện.

Giấu tin trong ảnh (steganography): nguyên lý và giới hạn thời số

Giấu tin trong ảnh (steganography số) là cách cài một thông điệp vào những chi tiết của tấm ảnh mà mắt người không phân biệt được — phổ biến nhất là thay đổi bit cuối cùng trong giá trị màu của từng điểm ảnh. Tấm ảnh trông y hệt bản gốc, nhưng ai biết cách đọc thì lấy ra được cả một đoạn văn, thậm chí một tệp khác.

Đây là hậu duệ trực tiếp của bảng sáp Demaratus và mực nước chanh: không giấu nghĩa, mà giấu sự tồn tại. Bài này giải thích nguyên lý, giới hạn của nó, cách người ta phát hiện, và những ứng dụng hợp pháp mà bạn gặp hằng ngày.

Từ Trithemius đến điểm ảnh

Năm 1499, tu viện trưởng người Đức Johannes Trithemius viết bản thảo Steganographia, nhìn bề ngoài là sách về phép gọi thần linh. Bộ sách in năm 1606 và từng bị Giáo hội đưa vào danh mục sách cấm. Mãi tới cuối thế kỷ XX, các nhà nghiên cứu Thomas Ernst và Jim Reeds mới chỉ ra rằng phần "bùa chú" ở quyển thứ ba thật ra là các bảng mật mã. Cuốn sách nói về giấu tin chính nó cũng đã được giấu tin.

Chữ steganography của Trithemius nay chủ yếu dùng cho thế giới số. Lý do đơn giản: ảnh, âm thanh, video là những khối dữ liệu khổng lồ, chứa vô số chi tiết mà giác quan con người không nhận ra. Mỗi chi tiết như vậy là một chỗ có thể giấu.

Một tấm ảnh được làm bằng gì

Một ảnh số là lưới các điểm ảnh (pixel). Với ảnh màu thông thường, mỗi điểm ảnh có ba giá trị: đỏ, lục, lam, mỗi giá trị từ 0 tới 255 — tức 8 bit. Ví dụ, một điểm màu cam có thể là (230, 120, 40).

Mắt người không phân biệt nổi (230, 120, 40) với (231, 120, 41). Chênh lệch là 1 phần 256 — nhỏ hơn rất nhiều so với nhiễu do cảm biến máy ảnh tạo ra. Toàn bộ kỹ thuật giấu tin cơ bản dựa trên đúng khoảng "không ai để ý" ấy.

Kỹ thuật LSB: bit cuối cùng

Cách làm

Mỗi giá trị màu viết ở hệ nhị phân có 8 bit. Bit ngoài cùng bên phải — gọi là bit ít quan trọng nhất (least significant bit, LSB) — chỉ làm giá trị thay đổi 1 đơn vị. Kỹ thuật LSB làm như sau:

  1. Đổi thông điệp thành dãy bit 0 và 1. Ví dụ chữ "A" trong bảng mã ASCII là 65, tức 01000001.
  2. Lần lượt thay bit cuối của từng giá trị màu bằng một bit của thông điệp.
  3. Lưu ảnh lại bằng định dạng không nén mất dữ liệu, như PNG hoặc BMP.

Ví dụ nhỏ

Giá trị màu gốcNhị phânBit cần giấuGiá trị mới
230111001100230 (không đổi)
120011110001121
4000101000040 (không đổi)
231111001110230

Trung bình chỉ khoảng một nửa số giá trị phải đổi, và mỗi giá trị đổi nhiều nhất 1 đơn vị.

Giấu được bao nhiêu

Một ảnh 1.000 × 1.000 điểm có 3 triệu giá trị màu. Giấu 1 bit mỗi giá trị là 3 triệu bit, khoảng 375 kilobyte — đủ cho cả một cuốn tiểu thuyết dạng chữ thuần. Giấu 2 bit mỗi giá trị thì gấp đôi, nhưng thay đổi bắt đầu có nguy cơ lộ ở những vùng màu phẳng như bầu trời.

Vì sao ảnh đăng mạng thường làm mất tin giấu

Kỹ thuật LSB có một điểm yếu lớn: nó sống trong những chi tiết mà các thuật toán nén ảnh coi là thừa. Khi ảnh được lưu thành JPEG, phần mềm chia ảnh thành các ô 8 × 8, biến đổi sang dạng tần số, rồi bỏ bớt chi tiết mịn. Bit cuối của từng điểm ảnh gần như chắc chắn bị xáo trộn.

Phần lớn mạng xã hội và ứng dụng nhắn tin nén lại ảnh khi bạn tải lên, đổi kích thước, cắt bớt siêu dữ liệu. Vì vậy một tấm ảnh LSB gửi qua đó thường đến tay người nhận đã mất tin. Các kỹ thuật giấu tin dành riêng cho JPEG làm việc với các hệ số sau biến đổi thay vì điểm ảnh, nhưng vẫn mong manh trước việc nén lại lần nữa.

Thao tác lên ảnhTin giấu bằng LSB
Sao chép tệp PNG nguyên vẹnCòn nguyên
Lưu lại thành JPEGGần như mất hết
Thu nhỏ, phóng toMất
Cắt bớt mépMất phần bị cắt, phần còn lại có thể lệch
Chụp màn hình rồi gửiMất

Phát hiện tin giấu: cuộc chạy đua ngầm

Ngành nghiên cứu phát hiện tin giấu gọi là steganalysis. Ý tưởng chung: ảnh tự nhiên có những quy luật thống kê nhất định, và việc ghi đè bit cuối làm các quy luật ấy lệch đi.

  • Phép thử thống kê theo cặp giá trị: cuối những năm 1990, Andreas Westfeld và Andreas Pfitzmann công bố một phép thử dựa trên việc LSB làm các cặp giá trị kề nhau (như 230 và 231) có số lượng gần bằng nhau một cách bất thường.
  • Phân tích vùng phẳng: ở vùng trời xanh trơn, nhiễu ở bit cuối của ảnh thật có kiểu riêng; ghi đè thông điệp tạo ra nhiễu "quá ngẫu nhiên".
  • So với bản gốc: nếu có bản gốc, chỉ cần trừ hai ảnh cho nhau là lộ ngay.

Giống như mọi cách giấu tin trong lịch sử, giấu tin số an toàn chỉ khi không ai nghi ngờ để kiểm tra. Vì vậy người dùng nghiêm túc thường mã hoá thông điệp trước rồi mới giấu — hai lớp giống hệt cách mực vô hình kết hợp mật mã thời xưa.

Không chỉ có ảnh

  • Âm thanh: tin có thể giấu ở bit cuối của mẫu âm thanh, hoặc vẽ thành hình trong phổ tần số. Một ví dụ nổi tiếng trong âm nhạc điện tử: bản nhạc trong đĩa đơn Windowlicker (1999) của Aphex Twin hiện ra một khuôn mặt khi xem bằng phần mềm vẽ phổ âm thanh.
  • Văn bản: các ký tự "độ rộng bằng không" — có trong bảng mã Unicode nhưng không hiện ra khi đọc — có thể chèn giữa các chữ để mang thông tin.
  • Bản in: nhiều máy in laser màu in thêm các chấm vàng li ti gần như không thấy bằng mắt thường, mã hoá thông tin về máy in. Tổ chức Electronic Frontier Foundation công khai giải mã một kiểu chấm này vào năm 2005.

Ứng dụng hợp pháp: watermark số

Người dùng hằng ngày gặp giấu tin chủ yếu dưới dạng thuỷ vân số (digital watermark): một dấu ẩn cài vào ảnh, nhạc, phim để chứng minh nguồn gốc, quyền tác giả.

  • Nhiếp ảnh gia và hãng ảnh cài dấu ẩn để chứng minh ảnh là của mình khi bị lấy dùng không phép.
  • Các hãng phim cài dấu vào bản chiếu thử, nếu bản đó bị phát tán lậu thì truy được nguồn.
  • Gần đây, nhiều công cụ tạo ảnh bằng trí tuệ nhân tạo cài dấu ẩn hoặc gắn siêu dữ liệu nguồn gốc để người xem biết ảnh do máy tạo; có cả một chuẩn công nghiệp tên C2PA cho thông tin nguồn gốc nội dung.

Khác với giấu tin bí mật, thuỷ vân cần bền: sống sót qua nén, cắt, đổi kích thước. Nó thường không chứa nhiều thông tin nhưng phải khó gỡ.

Góc nhìn hôm nay: điều người dùng nên biết

  • Ảnh trông bình thường chưa chắc đã "chỉ là ảnh": các chuyên gia an ninh mạng ghi nhận phần mềm độc hại từng giấu mã trong tệp ảnh. Đừng mở tệp đính kèm từ nguồn lạ, kể cả khi đuôi tệp là ảnh.
  • Siêu dữ liệu khác với tin giấu: thông tin như vị trí, thời gian chụp nằm ở phần EXIF đi kèm ảnh, không giấu trong điểm ảnh. Danh mục "Ẩn mình trên mạng" của wiki này có bài riêng về EXIF.
  • Muốn học thử: các khoá học lập trình nhập môn thường có bài tập giấu một câu chữ vào ảnh PNG bằng LSB — một bài tập tuyệt vời về bit, byte và màu sắc.
  • Đọc thêm: các giáo trình an toàn thông tin ở đại học có chương về steganography và steganalysis; sách phổ thông như The Code Book của Simon Singh đặt giấu tin cạnh mật mã trong một bức tranh lịch sử chung.

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

Steganography là gì?

Steganography là kỹ thuật giấu một thông điệp bên trong một vật mang trông bình thường, như ảnh, âm thanh hay văn bản, để người khác không biết là có thông điệp. Nó khác mật mã ở chỗ giấu sự tồn tại chứ không chỉ giấu nghĩa.

Giấu tin trong ảnh bằng LSB hoạt động thế nào?

Mỗi giá trị màu của điểm ảnh có 8 bit. Kỹ thuật LSB thay bit cuối cùng bằng một bit của thông điệp, làm giá trị màu thay đổi nhiều nhất 1 trên 256 — mắt người không nhận ra. Người biết cách chỉ cần đọc lại các bit cuối là lấy được tin.

Đăng ảnh lên mạng xã hội có làm mất tin giấu không?

Thường là có. Phần lớn mạng xã hội nén lại ảnh và đổi kích thước khi tải lên, làm xáo trộn chính những chi tiết nhỏ chứa tin giấu. Tin giấu bằng LSB đặc biệt dễ mất khi ảnh bị lưu lại thành JPEG.

Làm sao phát hiện ảnh có giấu tin?

Người ta dùng các phép thử thống kê, vì ảnh tự nhiên có những quy luật mà việc ghi đè bit cuối làm lệch đi. Nếu có ảnh gốc, chỉ cần so hai ảnh là thấy khác biệt. Đây là một ngành nghiên cứu riêng gọi là steganalysis.

Thuỷ vân số khác giấu tin thế nào?

Cả hai đều cài thông tin ẩn vào nội dung số, nhưng mục đích khác nhau. Giấu tin cần bí mật, còn thuỷ vân cần bền để chứng minh nguồn gốc hay quyền tác giả, sống sót qua nén và chỉnh sửa.

Mở app Tàng Hình

Lẻn qua lính gác, núp bóng tối, lấy ngọc rồi biến mất

Mở app Tàng Hình

Bài viết liên quan

Mở app Tàng Hình

Lẻn qua lính gác, núp bóng tối, lấy ngọc rồi biến mất

Mở app Tàng Hình Xem app khác