Steganography là một phương pháp giấu thông tin vào trong các phương tiện truyền thông như hình ảnh, âm thanh hoặc văn bản giúp cho việc truyền tin không gây nghi ngờ. Trong steganography, thông tin cần giấu đi thường là một thông điệp hoặc một file khác mà chỉ người nhận cần biết. Để làm điều này, steganography sử dụng các kỹ thuật để chèn thông tin bí mật vào trong dữ liệu gốc. Ví dụ trong hình ảnh, steganography có thể thay đổi một số giá trị bit không sử dụng để ẩn thông điệp.
Bài trước mình đã nói về Ẩn giấu file bằng NTFS Streams.
Steganography khác với mã hóa thông thường, vì mã hóa thông thường chỉ ẩn thông điệp nhưng không che giấu sự tồn tại của thông điệp đó. Trong khi đó, steganography tạo ra một nơi che giấu thông điệp một cách hiệu quả, làm cho việc phát hiện thông điệp trở nên khó khăn đối với hacker.
Hacker cũng sử dụng kỹ thuật steganography để ẩn thông tin khi việc mã hóa không khả thi. Về mặt bảo mật, nó ẩn file dưới dạng một định dạng đã được mã hóa, đảm bảo rằng ngay cả khi hacker giải mã nó, tin nhắn vẫn sẽ được ẩn đi.
Phân loại Steganography
Steganography có thể được phân loại như hình bên dưới:
Technical Steganography
Invisible Ink
Kỹ thuật này có nghĩa là viết thông tin một cách “vô hình” bằng các chất lỏng không màu và sau đó làm thông tin hiện thị thông qua các phương pháp đặc biệt như nhiệt độ hoặc ánh sáng. Ví dụ, nếu ta sử dụng nước củ hành và sữa để viết một tin nhắn, khi viết sẽ không nhìn thấy, nhưng khi hơ nóng, nó sẽ chuyển thành màu nâu và tin nhắn sẽ hiện ra.
Các ứng dụng của invisible ink như sau:
- Gián điệp
- Chống làm giả
- Đánh dấu tài sản
- Đánh dấu cho phép vào lại nơi tổ chức sự kiện
- Đánh dấu nhận diện trong sản xuất
Microdots
Một microdot là một văn bản hoặc hình ảnh được thu gọn đáng kể về kích thước có thể chứa đến một trang giấy trong một dấu chấm duy nhất. Microdots thường có hình dạng tròn và đường kính khoảng một millimet nhưng có thể được chuyển đổi thành các hình dạng và kích cỡ khác nhau.
Computer-Based Methods
Phương pháp computer-based thực hiện việc thay đổi các carrier để nhúng thông tin bên ngoài vào các carrier gốc. Việc truyền tải thông tin này xảy ra dưới dạng văn bản, binary file, thiết bị lưu trữ, dữ liệu truyền thông qua mạng. Nó có thể thay đổi phần mềm, giọng nói, hình ảnh, video hoặc bất kỳ dữ liệu nào được biểu diễn dưới dạng kỹ thuật số.
- Kỹ thuật thay thế (Substitution Techniques): Trong kỹ thuật này, người gửi cố gắng mã hóa thông tin bí mật bằng cách thay thế các bit không quan trọng bằng thông điệp bí mật. Nếu người nhận biết được những vị trí mà người gửi nhúng vào thì có thể trích xuất được thông điệp đó.
- Kỹ thuật biến đổi (Transform Domain Techniques): Kỹ thuật này che giấu thông tin trong những phần quan trọng của hình ảnh gốc, chẳng hạn như cắt, nén và xử lý hình ảnh làm cho việc tấn công trở nên khó khăn hơn. Hacker có thể áp dụng các biến đổi này cho từng khối hình ảnh hoặc trên toàn bộ hình ảnh.
- Kỹ thuật phổ phân tán (Spread Spectrum): Tín hiệu truyền thông chiếm nhiều băng thông hơn mức cần thiết để gửi thông tin. Người gửi tăng băng thông phổ bằng cách sử dụng code (độc lập với dữ liệu), và người nhận sử dụng thu sóng được đồng bộ với code để khôi phục thông tin từ dữ liệu phổ phân tán.
- Kỹ thuật thống kê (Statistical Techniques): Kỹ thuật này sử dụng các phương pháp ẩn tin “1-bit” bằng cách thay đổi hình hình ảnh cover sao cho khi truyền tải một “1“, một số đặc điểm thống kê thay đổi đáng kể.
- Kỹ thuật biến dạng (Distortion Techniques): Trong kỹ thuật này, người dùng thực hiện một chuỗi các biến đổi trên hình ảnh cover để thu được một đối tượng ẩn tin. Chuỗi biến đổi đại diện cho quá trình chuyển đổi của một thông điệp cụ thể. Quá trình giải mã trong kỹ thuật này yêu cầu có kiến thức về hình ảnh cover gốc. Người nhận thông điệp có thể đo đạc sự khác biệt giữa hình bìa gốc và hình bìa nhận được để tái tạo chuỗi biến đổi.
- Kỹ thuật tạo ảnh cover (Cover Generation Techniques): Trong kỹ thuật này, các đối tượng số học được phát triển đặc biệt để tạo ảnh cover cho việc truyền thông bí mật. Khi thông tin này được mã hóa, nó đảm bảo tạo ra một hình bìa cho việc truyền thông bí mật.
Linguistic Steganography
Trong Linguistic Steganography, thông tin bí mật được che giấu bằng cách thay đổi, mã hóa, hoặc chèn vào văn bản gốc thông qua việc sử dụng các kỹ thuật ngôn ngữ như thay đổi từ ngữ, cú pháp, cấu trúc câu, hoặc sử dụng các mã hóa ngôn ngữ đặc biệt.
Mục tiêu của Linguistic Steganography là tạo ra văn bản che giấu thông tin sao cho nó không gây nghi ngờ hoặc khó phát hiện cho người đọc thông thường. Các kỹ thuật này thường sử dụng sự tương đồng trong ngôn ngữ hoặc sự kỳ quặc của ngôn ngữ để giấu thông tin.
Semagrams
Semagrams là một kỹ thuật ẩn tin sử dụng các biểu tượng hoặc ký hiệu để giấu thông tin. Trong kỹ thuật này, người gửi nhúng một số đối tượng hoặc biểu tượng vào dữ liệu để thay đổi diện mạo của dữ liệu thành một ý nghĩa đã được xác định trước. Phân loại của semagrams như sau:
- Visual Semagrams (Semagrams hình ảnh): Kỹ thuật này ẩn thông tin trong một bức vẽ, tranh, chữ viết, âm nhạc hoặc một biểu tượng.
- Text Semagrams (Semagrams văn bản): Một semagram văn bản giấu thông điệp văn bản bằng cách thay đổi hoặc biến đổi diện mạo của văn bản chủ để, thay đổi cỡ chữ, kiểu chữ, thêm khoảng trắng dư thừa trong tài liệu, thêm hoa văn trong các chữ cái hoặc văn bản viết tay, …
Open Codes
Open code giấu tin nhắn bí mật trong một thông điệp chứa thông tin hợp pháp và được thiết kế một cách rõ ràng trên tài liệu mà người đọc thông thường không hiểu rõ. Thông điệp chứa thông tin được gọi là “overt communication” (giao tiếp rõ ràng), trong khi tin nhắn bí mật được gọi là “covert communication” (giao tiếp ẩn). Kỹ thuật open code bao gồm hai nhóm chính: code ngôn ngữ chuyên môn (jargon codes) và code ẩn danh (covered ciphers).
- Code ngôn ngữ chuyên môn (Jargon Codes): Trong loại ẩn dụ này, một ngôn ngữ cụ thể được sử dụng có thể được hiểu bởi nhóm người cụ thể mà thông điệp định hướng, trong khi đối với những người khác thì vô nghĩa. Một thông điệp ngôn ngữ chuyên môn tương tự như một mã thay thế về nhiều mặt, nhưng thay vì thay thế các chữ cái riêng lẻ, chính các từ được thay đổi. Một ví dụ về mã ngôn ngữ chuyên môn là “mã cue”. Một cue là một từ xuất hiện trong văn bản và sau đó truyền tải thông điệp.
- Code ẩn danh (Covered Ciphers): Trong Covered Ciphers, thông tin bí mật được che giấu bằng cách mã hóa nó và sau đó chèn vào văn bản gốc một cách tự nhiên và khó phát hiện. Covered Ciphers thường sử dụng các phương pháp mã hóa mạnh để bảo vệ thông tin bí mật và đảm bảo tính bí mật của dữ liệu che giấu. Đồng thời, văn bản kết quả vẫn phải có tính hợp lệ và không gây nghi ngờ cho người đọc thông thường.
Phân loại dựa trên Cover Medium
Ẩn tin là nghệ thuật và khoa học của việc viết thông điệp ẩn sao cho chỉ người nhận mới biết về sự tồn tại của thông điệp. Ẩn tin cơ bản có thể được chia thành hai lĩnh vực chính: giấu dữ liệu và tạo tài liệu. Tạo tài liệu liên quan đến bảo vệ chống xóa bỏ.
Whitespace Steganography
Ẩn tin bằng khoảng trắng (Whitespace steganography) được sử dụng để giấu thông điệp trong văn bản ASCII bằng cách thêm các khoảng trắng vào cuối các dòng. Vì khoảng trắng và kí tự tab thường không hiển thị trên các chương trình xem văn bản cho nên thông điệp được giấu một cách hiệu quả. Nếu sử dụng mã hóa tích hợp, thì ngay cả khi phát hiện, thông điệp cũng không thể đọc được.
Công cụ Snow, được sử dụng để giấu thông điệp trong file văn bản bằng cách thêm khoảng trắng và tab vào cuối các dòng. Đồng thời, nó cũng có thể trích xuất thông điệp từ các file chứa thông điệp ẩn. Người dùng có thể giấu dữ liệu bằng cách thêm chuỗi khoảng trắng và tab vào file. Các chuỗi này có thể dài tối đa đến bảy khoảng trắng và cho phép lưu trữ ba bit trong mỗi tám cột. Tuy nhiên, cũng có một phương pháp mã hóa khác sử dụng khoảng trắng và tab xen kẽ để biểu thị cho các ký tự 0 và 1. Tuy nhiên, phương pháp này không được sử dụng nhiều vì yêu cầu nhiều cột hơn cho mỗi bit (4,5 so với 2,67).
Khi sử dụng Snow, ký tự tab được thêm vào để đánh dấu chỗ bắt đầu của dữ liệu, cho phép người gửi chèn header mà không làm hỏng dữ liệu.
snow [ -CQS ] [ -p passwd ] [ -I line-len ] [ -f file | -m message ] [ infile [ outfile ]]
Trong đó:
-C
: Nén dữ liệu nếu đang giấu tin, hoặc giải nén nó nếu đang trích xuất tin.-Q:
Chế độ im lặng. Báo cáo các thống kê như tỷ lệ nén và lượng dung lượng lưu trữ sẵn có đã sử dụng.-S
: Báo cáo về số lượng khoảng trống có thể sử dụng để giấu tin trong file văn bản.-p <password>
: Việc mã hóa dữ liệu sẽ được thực hiện với mật khẩu chỉ định trong quá trình giấu tin hoặc giải mã trong quá trình trích xuất tin.-I <length>
: Khi thêm khoảng trắng, Snow sẽ luôn tạo ra các dòng ngắn hơn giá trị này. Mặc định, độ dài dòng là 80.-f <file>
: File văn bản đầu vào.-m <msg>
: Ẩn nội dung của chuỗi này trong file.
Image Steganography
Trong Steganography, hình ảnh là đối tượng bao phủ phổ biến nhất được sử dụng để giấu thông điệp bí mật. Ta có thể nhúng thông điệp của mình vào bằng cách tận dụng các bit dư thừa trong hình ảnh. Các bit dư thừa này không ảnh hưởng đến hình ảnh nếu bị thay đổi và việc phát hiện sự thay đổi này cũng không dễ dàng chút nào. Ta có thể giấu thông tin của mình trong các loại hình ảnh có định dạng khác nhau như .PNG, JPG hoặc .BMP.
Steganography trên hình ảnh được phân loại thành hai loại: miền hình ảnh (image domain) và miền biến đổi (transform domain). Trong kỹ thuật miền hình ảnh, người dùng nhúng thông điệp trực tiếp vào độ sáng của các pixel trong hình ảnh. Trong kỹ thuật miền biến đổi, trước khi nhúng thông điệp, hình ảnh sẽ được biến đổi. Sau đó, người dùng sẽ nhúng thông điệp vào trong hình ảnh.
Image File Steganography Techniques
Least-Significant-Bit Insertion
Phương pháp least-significant-bit insertion là phương pháp thường được sử dụng nhất trong steganography hình ảnh, trong đó least-significant-bit (LSB) của mỗi pixel được sử dụng để giữ dữ liệu bí mật. LSB là bit bên phải nhất của mỗi pixel trong hình ảnh.
Trong phương pháp chèn least-significant-bit, dữ liệu nhị phân của thông điệp được chia ra và chèn vào LSB của mỗi pixel trong file hình ảnh theo một trình tự quyết định. Việc sửa đổi LSB không dẫn đến sự khác biệt rõ ràng vì sự thay đổi rất nhỏ và có thể không thể phát hiện bằng mắt thường. Do đó, việc phát hiện nó là rất khó.
Khi giấu dữ liệu:
- Tạo một bản sao của bảng màu hình ảnh bằng mô hình: đỏ, xanh lục và xanh dương (RGB).
- Mỗi pixel của số nhị phân 8 bit của LSB được thay thế bằng một bit của thông điệp bí mật.
- Một màu RGB mới trong bảng màu đã sao chép được tạo ra.
- Với màu RGB mới, pixel được thay đổi thành một số nhị phân 8 bit.
Giả sử ta chọn một hình ảnh 24 bit để giấu dữ liệu bí mật có dạng số nhị phân như sau:(00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001)
Giả sử ta muốn giấu chữ “H” trong hình ảnh 24 bit trên. Hệ thống đại diện cho chữ “H” bằng các chữ số nhị phân 01001000
. Để giấu “H” này, ta có thể thay đổi dãy trước đó như hình dưới:
Chỉ cần thay thế LSB của mỗi pixel trong file hình ảnh như được hiển thị trong hình vẽ. Để lấy lại chữ H ở phía nhận, người nhận kết hợp tất cả các bit LSB của hình ảnh và tìm ra chữ H.
Masking and Filtering
Các kỹ thuật che giấu (masking) và lọc (filtering) tận dụng những giới hạn của thị giác của con người, khi thị giác của con người không thể phát hiện được những thay đổi nhỏ trên hình ảnh. Hình ảnh đen trắng (grayscales) và digital watermarks có thể che giấu thông tin một cách tương tự như watermarks trên giấy.
Kỹ thuật che giấu cho phép chúng ta giấu dữ liệu bí mật bằng cách đặt dữ liệu trong file ảnh. Ta có thể sử dụng các kỹ thuật che giấu và lọc trên hình ảnh có độ phân giải 24 bit mỗi pixel và hình ảnh đen trắng. Để che giấu thông tin bí mật, ta phải điều chỉnh độ sáng và độ trong suốt của hình ảnh. Nếu việc thay đổi độ sáng có kết quả không đáng kể, thì những người khác sẽ không phát hiện ra. Kỹ thuật này có thể áp dụng dễ dàng vì hình ảnh vẫn giữ nguyên. Trong hầu hết các trường hợp, người ta thường che giấu trên hình ảnh JPEG.
Algorithms and Transformation
Trong kỹ thuật này, người gửi che giấu thông tin bằng cách áp dụng các thuật toán nén và các hàm biến đổi toán học khác nhau nhằm che giấu hệ số của bit ít quan trọng trong quá trình nén ảnh. Nhìn chung, hình ảnh JPEG là phù hợp nhất cho việc nén, vì chúng có thể hoạt động ở các mức nén khác nhau. Có ba loại biến đổi được sử dụng trong thuật toán nén:
- Biến đổi Fourier nhanh (Fast Fourier transformation)
- Biến đổi cosine rời rạc (Discrete cosine transformation)
- Biến đổi sóng (Wavelet transformation)
Document Steganography
Document steganography là một phương pháp để ẩn thông điệp bí mật vào trong các tài liệu. Nó liên quan đến việc thêm khoảng trống và tab vào cuối các dòng. Tài liệu chứa tin nhắn ẩn được gọi là tài liệu stego. Ở phía người gửi, ta sử dụng các thuật toán steganography, còn được gọi là “hệ thống stego“, để giấu tin nhắn bí mật. Người nhận sử dụng cùng một thuật toán để trích xuất tin nhắn ẩn từ tài liệu stego. Hình dưới đây mô tả quy trình steganography tài liệu:
StegoStick là một công cụ steganography cho phép hacker giấu bất kỳ file vào bất kỳ file khác. Nó dựa trên kỹ thuật steganography hình ảnh, âm thanh hoặc video, giúp giấu file hoặc tin nhắn nào vào hình ảnh (BMP, JPG, GIF, v.v.), âm thanh/video (MPG, WAV, v.v.) hoặc bất kỳ định dạng file nào khác (PDF, EXE, CHM, v.v.).
Video Steganography
Phương pháp giấu tin hình ảnh chỉ có thể giấu được một lượng dữ liệu nhỏ bên trong các file hình ảnh, vì vậy nó chỉ phù hợp khi số lượng dữ liệu cần giấu là nhỏ. Nếu muốn giấu các lượng dữ liệu lớn hơn, người ta có thể sử dụng phương pháp giấu tin video vì mỗi khung hình bao gồm cả hình ảnh và âm thanh. Vì file video là một luồng liên tục của hình ảnh và âm thanh, nên khó để người khác nhận ra sự méo mó trong file video do thông điệp bí mật.
Phương pháp giấu tin video cho phép giấu bất kỳ loại file nào với bất kỳ định dạng nào bên trong file video với nhiều định dạng khác nhau như .AVI, .MPG4, .WMV, và nhiều định dạng khác. Quá trình biến đổi rời rạc hóa cosin (DCT) được sử dụng trong trường hợp này. Thông tin giấu trong file video gần như không thể nhận ra bởi mắt người, vì sự thay đổi màu pixel cũng rất nhỏ.
Audio Steganography
Giấu file âm thanh là phương pháp nhúng các thông điệp bí mật vào định dạng âm thanh kỹ thuật số với các định dạng khác nhau như WAV, AU hoặc thậm chí là file MP3. Việc này thực hiện bằng cách thay đổi một chút chuỗi nhị phân của file âm thanh. Ta có thể giấu thông tin trong một tệp âm thanh bằng cách thay thế LSB hoặc bằng cách sử dụng các tần số không nghe được bởi tai người (>20.000 Hz).
Echo Data Hiding
Trong phương pháp che giấu dữ liệu bằng âm thanh phản chiếu, ta có thể cất giấu thông tin bí mật vào tín hiệu âm thanh chủ đạo bằng cách tạo ra hiệu ứng âm thanh phản chiếu. Ba thông số của hiệu ứng phản chiếu được sử dụng là cường độ ban đầu, tốc độ suy giảm và độ trễ. Khi khoảng cách giữa tín hiệu chủ đạo và âm thanh phản chiếu giảm xuống, chúng kết hợp lại vào một thời điểm mà tai người không thể phân biệt được hai tín hiệu này. Ở điểm này, âm thanh phản chiếu sẽ tạo thành một âm vang được thêm vào tín hiệu gốc. Tuy nhiên, điểm này không thể phân biệt âm thanh phụ thuộc vào các yếu tố như chất lượng của tín hiệu âm thanh ban đầu, loại âm thanh và khả năng nghe của người nghe.
Để mã hóa tín hiệu kết quả thành dạng nhị phân, hai khoảng thời gian trễ khác nhau sẽ được sử dụng. Những khoảng thời gian này phải nhỏ hơn ngưỡng nhận thức của con người. Các thông số như tốc độ suy giảm và cường độ ban đầu cũng cần được đặt ở dưới mức giá trị nghe thấy để không tạo ra âm thanh có thể nghe được.
Spread Spectrum Method
Phương pháp này sử dụng hai phiên bản của phổ trải tần số: phổ trải tần số trực tiếp (DSSS) và phổ trải tần số nhảy (FHSS).
- Phổ trải tần số trực tiếp (DSSS): DSSS là một kỹ thuật điều chế tần số, trong đó thiết bị truyền thông trải rộng tín hiệu có băng thông thấp qua một dải tần số rộng hơn để cho phép chia sẻ một kênh duy nhất giữa nhiều người dùng. Kỹ thuật che giấu thông tin bằng DSSS chuyển vị các tin nhắn bí mật vào các tần số sóng radio. DSSS có thể tạo ra một số nhiễu ngẫu nhiên cho tín hiệu.
- Phổ trải tần số nhảy (FHSS): Trong FHSS, người dùng thay đổi phổ tần số của tập tin âm thanh để nhanh chóng nhảy qua các tần số khác nhau. Phương pháp phổ trải tần số đóng một vai trò quan trọng trong việc truyền thông an toàn, cả trong lĩnh vực thương mại và quân sự.
Tone Insertion
Phương pháp này liên quan đến việc cất giấu dữ liệu trong tín hiệu âm thanh bằng cách chèn các âm thanh có công suất thấp. Những âm thanh này không thể nghe thấy khi có sự hiện diện của các tín hiệu âm thanh có công suất cao đáng kể. Phương pháp này giúp cho việc phát hiện thông điệp bí mật từ tín hiệu âm thanh trở nên rất khó và giúp tránh các kiểu tấn công như lọc thông qua bộ lọc thấp và cắt bớt bit.
Phase Encoding
Mã hóa theo pha được hiểu như đoạn âm thanh ban đầu được thay thế bằng một pha tham chiếu đại diện cho dữ liệu. Nó mã hóa các bit thông điệp bí mật dưới dạng sự thay đổi pha trong phổ pha của tín hiệu kỹ thuật số, đạt được mã hóa mềm dựa trên tỷ lệ tín hiệu – độ nhiễu.
Folder Steganography
Folder steganography là thuật ngữ dùng để chỉ việc che giấu thông tin bí mật trong các thư mục. Trong quá trình này, người dùng di chuyển file vật lý nhưng vẫn liên kết với thư mục gốc để có thể khôi phục sau này.
Ta có thể sử dụng công cụ GiliSoft File Lock Pro .
Steganalysis – Phân tích giấu tin
Giới thiệu
Steganalysis, còn được gọi là phân tích giấu tin, là quá trình phát hiện sự tồn tại của thông tin ẩn trong một phương tiện truyền thông. Đây là quá trình ngược lại của steganography (kỹ thuật giấu tin). Steganalysis đóng vai trò là kỹ thuật tấn công, trong đó người tấn công, được gọi là nhà phân tích giấu tin, cố gắng tìm kiếm và khám phá các tin nhắn ẩn được nhúng trong hình ảnh, văn bản, âm thanh, video. Steganalysis xác định các thông điệp ẩn đã được mã hóa và nếu có thể thì khôi phục lại chúng. Kiểu phân tích này có thể phát hiện thông điệp bằng cách xem xét sự khác biệt giữa các mẫu bit và kích thước file không bình thường.
Steganalysis có hai khía cạnh chính: phát hiện và biến dạng thông điệp. Trong giai đoạn phát hiện, người phân tích quan sát các mối quan hệ giữa các công cụ steganography, phương tiện, thông điệp. Trong giai đoạn biến dạng, người phân tích can thiệp vào phương tiện để trích xuất thông điệp đã được nhúng và quyết định xem có ích hay vô ích và cần loại bỏ hoàn toàn hay không.
Hình ảnh gốc (cover images) tiết lộ nhiều dấu hiệu hình ảnh hơn so với hình ảnh giấu tin (stego-images). Việc phân tích hình ảnh giấu tin là cần thiết để xác định thông tin được che giấu. Khoảng cách giữa kích thước file của hình ảnh gốc và hình ảnh giấu tin là dấu hiệu đơn giản nhất. Nhiều dấu hiệu rõ ràng khác đó là sử dụng một số lược đồ màu sắc của hình ảnh gốc.
Thách thức của phân tích giấu tin
Một số thách thức của phân tích giấu tin như sau:
- Luồng thông tin nghi ngờ có thể có hoặc không có dữ liệu ẩn.
- Việc phát hiện nội dung ẩn trong hình ảnh kỹ thuật số một cách hiệu quả và chính xác là rất khó khăn.
- Thông điệp có thể đã được mã hóa trước khi được chèn.
- Một số tín hiệu hoặc file nghi ngờ có thể chứa dữ liệu không liên quan hoặc nhiễu được mã hóa vào chúng.