1. Giới thiệu
Ngày nay chúng ta thường nghe nói đến Steganography. Đó là một hình thức che dấu sự tồn tại của thông điệp. Khác với Cryptography thì Steganography ẩn đi các thông tin cần giữ bí mật trong các dữ liệu vô hại để đối phương không thể biết được sự hiện diện của thông điệp. Thực chất Steganography đã được con người biết tới từ rất lâu rồi. Năm 440 trước công nguyên, người Herodotus (Người Hy Lạp xa xưa) đã cạo trọc đầu các nô lệ tin cậy rồi xăm lên đó các thông điệp và chờ tóc mọc lại. Mục đích của việc này là nhằm gửi tin đi trong cuộc chiến tranh giữa người Herodotus và Persians (Người Ba Tư). Trong cuộc cách mạng của Mỹ, mực không màu cũng được sử dụng để trao đổi thông điệp giữa người Mỹ và người Anh. Trong các cuộc chiến tranh thế giới, Steganography cũng được sử dụng. Người Đức đã sử dụng mực không màu để viết các dấu chấm nhỏ lên phía trên và dưới các chữ cái bằng cách thay đổi chiều cao các chữ trong đoạn văn bản. Trong chiến tranh thế giới thứ nhất, các tù nhân cũng sử dụng mã Morse để gửi thư về nhà bằng cách viết các dấu chấm và gạch ngang lên các chữ cái i,j,t,f. Trong chiến tranh thế giới thứ 2, các gián điệp của Đức đã sử dụng đoạn văn bản sau:
“Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects for pretext embargo on by-products, ejecting suets and vegetable oils.”
Bằng cách đọc những chữ thứ 2 của các từ ta sẽ được đoạn thông điệp sau:
“Pershing sails for NY June 1”.
Ngày nay trên mạng có rất nhiều đoạn nhạc hay các bức hình tưởng chừng như bình thường nhưng nó lại chứa các thông tin hoàn toàn bí mật. Điều này càng làm cho Steganography càng trở nên phổ biến. Dưới đây là hình ảnh minh họa cho điều này:
Bức ảnh trên có chứa một thông điệp mà nếu chỉ nhìn bằng mắt thường thì khó có thể nhận thấy được.
2. Quá trình mã hóa và giải mã của Stegranography
Tiếp theo ta sẽ cùng tìm hiểu về ẩn thông tin trong Steganography. Đầu tiên, thông điệp và bức ảnh ban đầu sẽ được đưa vào trong bộ mã hóa (encoder). Trong bộ mã hóa, một bộ giao thức sẽ được thực thi để nhúng thông điệp vào trong bức ảnh. Kiểu của giao thức sẽ phụ thuộc vào kiểu của thông điệp và cách ta nhúng. Ví dụ hình dưới đây sẽ cho ta thấy giao thức để ẩn thông điệp trong các bức ảnh.
Khóa là cần thiết trong quá trình giấu thông tin. Người gửi có thể dùng khóa chính để mã hóa và người nhận có thể dùng khóa công khai để giải mã. Điều này có thể giảm thiểu khả năng bên thứ 3 biết được thông điệp và giải mã.
3. Một số cơ chế trong Stegranography
3.1 Cơ chế ẩn thông điệp trong văn bản hoặc đoạn ký tự Đối với các tài liệu giấy thì khi bạn copy, bạn có thể sẽ không vi phạm bản quyền vì chất lượng của các tài liệu này khác nhau. Tuy nhiên đối với các tài liệu trên máy tính thì các bản copy sẽ giống hệt các bản gốc nên bạn rất dễ vi phạm bản quyền. Sở dĩ có thể biết được là do trong các tài liệu này đã được chèn thêm vào một số đoạn text để đánh dấu. Những đoạn này là ẩn với người dùng và bằng mắt thường khó có thể nhận biết được. Chúng ta chỉ có thể giải mã nhờ máy tính thì mới có thể nhìn thấy được.
Dưới đây là một số cách để ẩn đoạn text trong văn bản. 3.1.1 DỊCH CHUYỂN VỊ TRÍ DÒNG Chúng ta sẽ dịch chuyển vị trí của các dòng một khoảng nhỏ khoảng 1/300 inch. Điều này rất khó có thể phát hiện bằng mắt thường vì khoảng cách thay đổi khá nhỏ. Chúng ta chỉ có thể phát hiện nhờ máy tính bằng cách đo khoảng cách giữa các dòng. Trong các khoảng trống đó ta có thể chèn vào các bit 0 hoặc 1, do đó trong toàn bộ văn bản, ta có thể ẩn đi một lượng thông tin khá lớn. 3.1.2 DỊCH CHUYỂN VỊ TRÍ TỪ Cơ chế này cũng giống như dịch chuyển vị trí dòng, nhưng ta sẽ dịch chuyển vị trí các từ. Sau đó tùy vào khoảng trống đó nằm bên trái hay bên phải từ mà ta quy định nó là bit 0 hay bit 1. Dịch trái sẽ là bit 0 còn dịch phải sẽ là bit 1. Dưới đây là một ví dụ:
Trong ví dụ trên, dòng thứ nhất các chữ có vị trí không bị thay đổi. Còn dòng thứ 2 các chữ bị dịch trái hoặc phải để mã hóa cho chuỗi 01000001(65-A). Nếu không so sánh với chuỗi ban đầu thì ta khó có thể nhận biết được chuỗi đó có bị thay đổi hay không. 3.1.3 CHÈN VÀO KHOẢNG TRẮNG CUỐI MỖI DÒNG Một cách khác để ẩn đoạn text là sử dụng các khoảng trắng. Bằng cách vận dụng khéo léo các khoảng trắng, ta có thể lưu trữ được một lượng lớn các bit. Các khoảng trắng ở cuối mỗi dòng có thể bị bỏ qua và không hiện lên các bởi các ứng dụng đọc văn bản. Trong toàn bộ văn bản, ta có thể có đủ không gian để lưu trữ chuỗi bí mật. SNOW là một chương trình sử dụng cơ chế này. Bạn có thể tham khảo theo link sau: http://www.darkside.com.au/snow/index.html. 3.1.4 ẨN THÔNG ĐIỆP TRONG NỘI DUNG CỦA CÁC ĐOẠN VĂN BẢN KHÁC Một trong những cách khác để ẩn thông điệp là ta thay đổi cấu trúc của văn bản ban đầu sao cho nghĩa không bị thay đổi để mà ta có thể lưu trữ được thông điệp. TextHide là một chương trình sử dụng cơ chế này. Bạn có thể truy nhập vào link sau và tìm hiểu thêm: http://www.compris.com/TextHide/en/. Ngoài ra ta có thể ẩn thông điệp trong các đoạn email spam. Điểu này có thể thực hiện bởi chương trình SpamMimic theo link sau: http://www.spammimic.com. Ở đây mình sẽ thêm chuỗi “Hi ! How are you ?” vào email spam:
Khi đó ta được email sau:
Dear Friend , Especially for you – this breath-taking
news ! If you no longer wish to receive our publications
simply reply with a Subject: of “REMOVE” and you will
immediately be removed from our database . This mail
is being sent in compliance with Senate bill 2116 ,
Title 8 ; Section 309 . This is not multi-level marketing
. Why work for somebody else when you can become rich
within 65 weeks ! Have you ever noticed how many people
you know are on the Internet & society seems to be
moving faster and faster . Well, now is your chance
to capitalize on this ! We will help you turn your
business into an E-BUSINESS and decrease perceived
waiting time by 150% ! You are guaranteed to succeed
because we take all the risk ! But don’t believe us
. Mr Ames of Iowa tried us and says “Now I’m rich,
Rich, RICH” . This offer is 100% legal ! We beseech
you – act now ! Sign up a friend and you get half off
! God Bless ! Dear Friend ; This letter was specially
selected to be sent to you . This is a one time mailing
there is no need to request removal if you won’t want
any more . This mail is being sent in compliance with
Senate bill 1620 , Title 9 , Section 302 . THIS IS
NOT MULTI-LEVEL MARKETING . Why work for somebody else
when you can become rich in 41 DAYS . Have you ever
noticed people love convenience plus most everyone
has a cellphone . Well, now is your chance to capitalize
on this . We will help you deliver goods right to the
customer’s doorstep & turn your business into an E-BUSINESS
. The best thing about our system is that it is absolutely
risk free for you ! But don’t believe us . Ms Anderson
of Hawaii tried us and says “I was skeptical but it
worked for me” ! We are licensed to operate in all
states ! We BESEECH you – act now ! Sign up a friend
and you get half off ! God Bless .
3.2 Cơ chế ẩn thông điệp trong tệp tin âm thanh
Định dạng MP3 là định dạng phổ biến của các file nhạc.Do đó ta có thể sử dụng chúng để ẩn các đoạn text trong đó.Có nhiều công cụ có thể giúp bạn ẩn thông tin trong file .MP3 và MP3Stego là một chương trình trong số đó. Dưới đây là giao diện của chương trình này:
Khi ẩn thông điệp bạn cần phải chọn thông điệp là file có định dạng .txt và file âm thanh có định dạng .wav. Bạn có thể dùng phần mềm để chuyển đổi file âm thanh từ định dạng .mp3 về .wav.
Còn đây là giao diện khi bạn muốn giải mã:
Bạn cần chọn file .mp3 đã bị ẩn thông điệp ở trong rồi click vào button “DECODE FILE”. Khi đó file .txt của bạn sẽ được tách ra khỏi file nhạc .mp3. Trong phần trên mình đã trình bày với các bạn tổng quan về SteganoGraphy và một số cơ chế cơ bản để ẩn thông điệp trong các file văn bản, hình ảnh, âm thanh. Trong phần sau mình sẽ trình bày kỹ hơn về cơ chế ẩn thông điệp trong file ảnh. Tài liệu tham khảo:
- Steganography and Digital Watermarking
- https://en.wikipedia.org/wiki/Steganography
- Một số tài liệu khác trên Internet.