[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.

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

CVE-2019-12839: Lỗ hổng thực thi mã lệnh tùy ý trên OrangeHRM CMS

[Steganography] Kỹ thuật che dấu thông tin - Phần 2

PHP Race Condition Vulnerability Example