[Steganography] Kỹ thuật che dấu thông tin - Phần 1
Gần đây tôi có tham gia giải một số bài CTF về Steganography
khá thú vị, vừa rồi lại có dịp được làm một đề tài nhỏ cho môn học An Toàn Mạng
về mảng này. Hôm nay xin chia sẻ ở đây
cho ai đó quan tâm, nội dung sẽ khá dài vì tôi muốn trình bày chi tiết cho bạn
nào muốn tìm hiểu sâu về nó hơn là chơi một bài CTF để lấy điểm (như tôi chẳng hạn :D), tôi sẽ chia làm 2 phần, bài bạn đang đọc là phần giới thiệu về Steganography.
Theo Wikipedia thì: “Kỹ thuật giấu thư (tiếng Anh: Steganography) là nghệ thuật và khoa học về việc viết và chuyển tải các thông điệp một cách bí mật, sao cho ngoại trừ người gửi và người nhận, không ai biết đến sự tồn tại của bức thư, là một dạng của bảo mật bằng cách che giấu…..“
Ví dụ cụ thể:
A muốn gửi cho B thông điệp “MY SECRET” mà không muốn người
khác biết đến sự tồn tại của nó, A sẽ tìm cách truyền tải thông điệp này vào một
tập tin hình ảnh, âm thanh hoặc video sau đó gửi tập tin này cho B, người khác
chỉ thấy và xem được nội dung tập tin mà không biết là có thông điệp ẩn dấu bên
trong nó. Các phương pháp ẩn dấu dữ liệu theo phương pháp này được gọi là
Steganography.
(Nguồn: internet)
Lưu ý Steganography khác Cryptography (Mật mã học) ở chỗ người
gửi không muốn cho người khác biết là có thông điệp bí mật đang được gửi. Trong
Cryptography sẽ xảy ra hai quá trình ngược chiều nhau là mã hóa (Encrypt) và giải
mã (Decrypt) dựa vào một chìa khóa bí mật (key). Trong Steganography cũng sẽ xảy
ra hai quá trình ngược nhau là mã hóa (Encode) và giải mã (Decode) nhưng không
cần thông qua chìa khóa nào cả. Mặc dù vậy cũng có thể kết hợp cả Steganography
và Cryptography để bảo mật thông tin nếu bạn thích.
- Encode là cách chuyển dữ liệu từ định dạng X sang Y dựa theo một chuẩn nào đó thông qua một thuật toán cụ thể, ai biết được thuật toán này thì sẽ đọc được dữ liệu.
- Encrypt là cách chuyển dữ liệu từ dạng có nghĩa X sang dạng không rõ nghĩa Y thông qua một thuật toán cụ thể, thuật toán này cần một chìa khóa bí mật K. Muốn đọc được dữ liệu thì cần phải biết thuật toán sử dụng và chìa khóa bí mật K. Thời gian tới tôi sẽ viết nhiều bài về Cryptography vì đây cũng chính là mảng tôi rất thích và đang được học tại trường.
Bài kế tiếp tôi sẽ trình bày chi tiết thuật toán để Encode một thông
điệp vào một bức ảnh và hiện thực nó bằng Java, thuật toán sử dụng ở đây là LSB
steganography, đây
là một thuật toán rất đơn giản và phổ biến.
Tks anh, hóng bài Crypto... :)
Trả lờiXóa