Steganography là nghệ thuật che giấu thông tin và trong hướng dẫn này, chúng ta sẽ sử dụng Steghide - một công cụ dòng lệnh đơn giản để thực hiện điều đó.
Steganography là gì?
Không giống như mã hóa có một thông tin được ẩn một cách rõ ràng, Steganography ẩn dữ liệu ở chế độ xem đơn giản, bên trong một tệp tin như hình ảnh, file âm thanh.
Steganography rất hữu ích trong các tính huống gửi tin nhắn được mã hóa chẳng hạn như ở những quốc gia không được tự do ngôn luận. Nó cũng thường được sử dụng như một watermark kỹ thuật số để tìm các hình ảnh hoặc tập tin âm thanh bị đánh cắp.
Cách Steganography hoạt động
Có một số kỹ thuật khác nhau để ẩn dữ liệu bên trong các tệp thông thường. Một trong những cách sử dụng rộng rãi nhất và có lẽ đơn giản nhất là kỹ thuật bit có trọng số nhỏ nhất (Least Significant Bit), thường được biết đến dưới tên LSB.
Kỹ thuật này thay đổi vài bit cuối cùng trong một byte để mã hoá một thông điệp, đặc biệt hữu ích với hình ảnh, trong đó các giá trị màu đỏ, xanh lá cây và xanh da trời của mỗi pixel được biểu diễn bằng 8 bit (một byte) có phạm vi từ 0 đến 255 theo thập phân hoặc 00000000 đến 11111111 ở dạng nhị phân.
Thay đổi hai bit cuối cùng trong một pixel màu đỏ hoàn toàn từ 11111111 xuống 11111101 sẽ chỉ thay đổi giá trị màu đỏ từ 255 xuống 253, mà mắt thường không thể nhận ra sự thay đổi màu sắc nhưng vẫn cho phép chúng ta mã hóa dữ liệu bên trong bức tranh.
Kỹ thuật bit có trọng số nhỏ nhất cũng được sử dụng cho các tệp âm thanh. Có hai thứ cần xem xét khi ẩn thông tin là mã hóa và nén. Mã hóa dữ liệu trước khi nhúng nó vào lớp bảo mật bổ sung trong khi nén dữ liệu.
Cách ẩn dữ liệu trong hình ảnh hoặc file âm thanh
Bước 1: Nhúng dữ liệu vào một tệp
Sử dụng Steghide rất dễ dàng, để cài đặt nó từ Terminnal trong Linux, chỉ cần sử dụng apt.
apt-get install steghide
Khi hoàn tất cài đặt, nhúng dữ liệu vào một tệp, nhập lệnh dưới đây.
steghide embed -ef secretFile -cf coverFile -sf outputFile -z compressionLevel -e scheme
Các thành phần câu lệnh được chia nhỏ như sau:
- -ef xác định đường dẫn của tệp muốn ẩn, có thể nhúng bất kỳ loại tệp nào bên trong tệp bìa như script Python hoặc tệp tin shell.
- -cf là tệp mà dữ liệu được nhúng vào, nó giới hạn ở các định dạng BMP, JPEG, WAV và AU.
- -sf là một đối số tùy chọn xác định tập tin đầu ra. Nếu bỏ qua, tệp gốc sẽ bị ghi đè bởi tệp steganographic mới.
- -z xác định mức độ nén, từ 1 đến 9. Nếu không muốn nén tệp, hãy sử dụng đối số -Z.
- -e xác định kiểu mã hóa. Steghide hỗ trợ nhiều kiểu mã hóa, và nếu bỏ qua đối số theo mặc định, Steghide sẽ sử dụng mã hóa AES 128-bit. Nếu không muốn sử dụng mã hóa, chỉ cần gõ -e none.
Trong ví dụ này, thông tin bí mật được ẩn trong hình ảnh của một chú mèo, không ghi đè lên hình ảnh ban đầu hoặc nén nó, chỉ mã hóa hình ảnh
steghide embed -ef secret.txt -cf StegoCat.jpg -e none -Z
Sau khi thực hiện lệnh Steghide, có một thông báo đặt mật khẩu để trích xuất dữ liệu nhúng xuất hiện, nhập mật khẩu và xác nhận lại.
Bước 2: Trích xuất dữ liệu ẩn từ tệp
Trích xuất dữ liệu ẩn từ một hình ảnh steganographic thậm chí còn dễ dàng hơn với lệnh sau:
$ steghide extract -sf stegoFile -xf outputFile
Khi chạy lệnh này, bạn sẽ được nhắc nhở để nhập cùng một mật khẩu đã tạo ra ở trên.
Chúc các bạn thực hiện thành công!
Ngoài ra, bạn có thể sử dụng cmd để giấu tài liệu mật vào hình ảnh Giấu tài liệu mật dưới dạng hình ảnh
Xem thêm: Hướng dẫn đặt mật khẩu bảo vệ tập tin và thư mục trong Windows