Bài tập lớn an ninh mạng steganography
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Lê Đình Cường 20080370 Giáo viên hướng dẫn: Lê Đức Anh
HÀ NỘI 11-2011
Trang 2MỤC LỤC
Lời nói đầu 4
I TỔNG QUAN VỀ STEGANOGRAPHY 5
1 Steganography là gì ? 5
2 Phân biệt Steganography và Cryptography 5
3 Dữ liệu được ẩn ở đâu ? 6
4 Ưu và nhược điểm của Steganography 7
II CÁC PHƯƠNG PHÁP CƠ BẢN TRONG STEGANOGRAPHY 8
1 Các phương pháp cơ bản 8
a LSB – (Least Significant Bit) 8
b Injection (phép nội xạ) 8
2 Steganography trong “hình ảnh” 9
a LSB – (Least Significant Bit) 9
b Masking and Filtering 9
c Algorithms and Transformations 9
3 Steganography trong Audio 9
a LSB 9
b Mã hóa Parity (Parity Coding) 10
c Mã hóa Phase (Phase Coding) 10
d Kỹ thuật trải phổ 10
e Kỹ thuật giấu dựa vào tiếng vang (Echo) 11
f Kỹ thuật mã hóa Echo 11
4 Steganography trong Video 12
5 Steganography trong Document 12
Trang 3III STEGANALYSIS 12
a Xem tập tin 12
b Nghe tập tin 13
2 Phân loại 13
IV ỨNG DỤNG CỦA STEGANOGRAPHY 13
1 Lĩnh vực anh ninh mạng và che dấu thông tin 13
2 Watemarking (làm hình mờ) 14
a Giới thiệu 14
b Các trình ứng dụng của Watermarking 15
VI KẾT LUẬN 23
TÀI LIỆU THAM KHẢO 24
PHIẾU GIAO NHIỆM VỤ BÀI TẬP LỚN 25
Trang 4Lời nói đầu
Sự phát triển mạnh mẽ của Internet cùng với cuộc cách mạng thông tin số đã đem lại những bước tiến vượt bậc trong xã hội, vai trò của nó cũng đã vượt ra khỏi phạm vi kinh tế và dần đi vào cuộc sống như một nhu cầu thiết yếu Truyền thông bang tần rộng cùng với các định dạng dữ liệu số phong phú hiện nay đã
mở ra nhiều cơ hội và không ít thách thức Các thiết bị số ngày càng hiện đại và giá thành ngày càng rẻ, điều này cho phép người dung có thể dễ dàng tạo và chỉnh sửa hay trao đổi dữ liệu đa truyền thông Bên cạnh những tác dụng tích cực, ta cũng không thể phủ nhận những vấn đề nan giải nảy sinh trong thực tế: giả mạo, ăn cắp tác phẩm, sử dụng các tác phẩm không bản quyền,… Chính vì
vậy mà nhóm tôi đã chọn đề tài “STEGANOGRAPHY” để nghiên cứu và tìm
hiểu tầm quan trọng của nó trong tương lai Trong quá trình thực hiện đề tài không tránh khỏi những sai sót mong thầy góp ý bổ sung
Xin chân thành cảm ơn !
Nguyễn Khánh Hưng Nguyễn Lê Hoài Nam
Lê Đình Cường
Trang 5I TỔNG QUAN VỀ STEGANOGRAPHY
1 Steganography là gì ?
Steganography(ẩn thông tin) : là kỹ thuật ẩn thông tin liên lạc, là quá trình giấu thông tin cá nhân hay thông tin nhạy cảm vào một thứ gì mà không để lộ chúng theo dạng thông thường Steganography có nguồn gốc từ Hy Lạp
Steganos (có nghĩa là phủ hoặc bí mật) và graphy(bằng văn bản hoặc bản vẽ)
Các ghi chép đầu tiên về Steganography đã được một nhà sử học Hy Lạp là Herodotus ghi chép lại Một trong những câu chuyện kể nổi tiếng khi nói tới lĩnh vực này là câu chuyện về tên bạo chúa Histiaeus Trong suốt thế kỷ thứ 5 trước công nguyên (486-425 B.C), tên này bị giam cầm tại nhà tù Susa Trong thời gian này ông ta đã cố gắng liên lạc với con rể của mình là Aristagoras Để thực hiện được âm mưu này, Histaeus đã cạo đầu một tên nô lệ và xăm lên đó thông điệp cần chuyển và khi tóc mọc lại thì anh này được đưa tới Aristagoras Phương pháp này vẫn được các điệp viên Đức sử dụng vào đầu thế kỷ 20
Kỹ thuật che dấu văn bản giữa các dòng của một tài liệu bằng mực vô hình được tạo ra từ nước trái cây hoặc sữa, mà chỉ hiển thị khi đun nóng, đã được sử dụng từ thời La Mã cổ đại Năm 1499, xuất bản Trithemius Steganographia, một trong những cuốn sách đầu tiên về che giấu thông tin Trong thế chiến II của Đức
sử dụng microdots để ẩn lớn Số tiền của dữ liệu trên các tài liệu in, giả mạo như
là dấu chấm của dấu chấm câu Ngày nay che giấu thông tin là một phần của Internet Được sử dụng để truyền dữ liệu cũng như về việc che giấu các thông tin trong các hình ảnh và âm nhạc (được gọi là kỹ thuật số watermarking)
2 Phân biệt Steganography và Cryptography
Cryptography (hay Crypto) – mật mã học : là ngành học nghiên cứu về những
cách chuyển đổi thông tin từ dạng “có thể hiểu được” thành dạng “không thể hiểu được” và ngược lại Cryptography giúp đảm bảo : tính bí mật, toàn vẹn, xác thực và tính không chối bỏ cho thông tin
Trang 6Ta cần phân biệt Cryptography và Steganography vì rất dễ nhầm lẫn giữa hai khái niệm này Điểm khác nhau căn bản nhất giữa hai khái niệm này là : Cryptography là việc giấu nội dung của thông tin, trong khi Steganography là việc giấu sự tồn tại của thông tin đó Ta có thể kết hợp hai phương pháp này, bằng cách mã hóa một tin nhắn sau đó giấu nó trong một tập tin để truyền
3 Dữ liệu được ẩn ở đâu ?
Không giống như một tệp tin bạn tạo ra mà bạn đang có khả năng thông báo thư bí ẩn ở đây và nó có thể làm thay đổi các tệp tin đồ họa hoặc âm thanh mà không làm mất khả năng tổng thể cho người xem Với âm thanh, người ta có thể
sử dụng những bit của tập tin mà tai người không nghe được Với tập tin đồ họa, người ta có thể loại bỏ các bit dư thừa của màu sắc từ hình ảnh mà vẫn tạo ra một hình ảnh trông không thay đổi đối với mắt người, và rất khó có thể phân biệt với bản gốc
Steganography giấu dữ liệu của mình trong những mẩu nhỏ Một chương trình Steganography sử dụng thuật toán để nhúng dữ liệu trong một hình ảnh hoặc file
âm thanh Chương trình cho phép sử dụng mật khẩu để lấy lại thông tin Một số chương trình bao gồm mật mã và che dấu thông tin các công cụ để bảo mật thông tin ẩn tránh bị phát hiện
Chất lượng hình ảnh hoặc âm thanh, dữ liệu dự phòng nhiều hơn sẽ có đó là tại sao tệp tin âm thanh 16-bit và 24-bit, hình ảnh là những điểm ẩn phổ biến Nếu một người không có ảnh gốc hoặc tệp tin âm thanh gốc để so sánh thì họ sẽ khó thể phát hiện có dữ liệu ẩn giấu trong đó
Để nhấn mạnh sức mạnh của che giấu thông tin, kiểm tra hai hình ảnh được hiển thị trong hình 1.1 và 1.2 Nhìn vào hai hình ảnh, ta không thấy có sự khác biệt
Trang 7H.1.1- Không có thông tin được che giấu
H.1.2- Có thông tin được che giấu
4 Ưu và nhược điểm của Steganography
Steganography giúp ta có thể che dấu thông tin quan trọng, nhạy cảm mà không muốn công khai Stego là một công cụ rất mạnh mẽ nếu nó cho phép hai người được trao đổi với nhau bằng một đường dẫn truyền thông
Trang 8Để có một mức độ bảo mật cao, bạn phải triển khai nhiều cấp độ bảo mật Tuy nhiên, không có mức bảo mật hay công nghệ nào là an toàn tuyệt đối Stego cũng không nằm ngoại lệ, nó mang lại nhiều lợi ích, nhưng nó không phải là hoàn hảo Khía cạnh tiêu cực đầu tiên của Stego là ngay cả khi tin nhắn được ẩn, nếu ai đó biết được sự tồn tại của nó, họ vẫn có thể đọc được Điều này có thể giải quyết bằng cách mã hóa trước khi ẩn dấu thông tin Một vấn đề khác của Stego là nếu người nào đó nghĩ rằng bạn đang sử dụng Stego, họ có thể xóa bỏ thông điệp ẩn Trong hầu hết các trường hợp, khi ẩn dữ liệu trong hình ảnh, ta sẽ chèn tin nhắn vào các bit ít quan trọng nhất Và tin nhắn có thể bị xóa bỏ bằng cách chuyển đổi hình ảnh sang định dạng khác hay chuyển nó trở lại định dạng ban đầu
II CÁC PHƯƠNG PHÁP CƠ BẢN TRONG STEGANOGRAPHY
1 Các phương pháp cơ bản
Có rất nhiều phương pháp được sử dụng để ẩn thông tin dưới dạng tập tin hình ảnh, âm thanh và video Hai phương pháp phổ biến nhất là LSB (byte giá trị thấp nhất) và Injection (phép nội xạ)
a LSB – (Least Significant Bit)
Khi các tập tin được tạo ra, thường có một số byte trong tập tin không thực sự cần thiết, hoặc không quan trọng lắm Những phần này của tập tin có thể được thay thế bằng thông tin ẩn mà không làm thay đổi tập tin nhiều hoặc làm hư hại
nó Điều này cho phép một người giấu thông tin vào tập tin và đảm bảo rằng không ai có thể phát hiện ra sự thay đổi trong tập tin Phương pháp LSB này làm hoạt động tốt nhất trong các tập tin tranh ảnh (Picture) có độ phân giải cao, sử dụng nhiều màu sắc khác nhau, và với tập tin âm thanh (Audio) có nhiều âm thanh khác nhau và tỷ lệ bit cao Phương pháp LSB thường không làm tăng kích thước tập tin, nhưng tuỳ thuộc vào kích thước của các thông tin được ẩn bên trong tập tin, tập tin có thể bị biến dạng đáng kể
b Injection (phép nội xạ)
Injection là một phương pháp khá đơn giản, nó chỉ là việc tiêm trực tiếp thông tin bí mật vào tập tin chứa Vấn đề chính của phương pháp này là nó có thể làm tăng đáng kể kích thước của file chứa đó
Trang 9Sau đây ta sẽ tìm hiểu cụ thể các phương pháp được sử dụng để ẩn thông tin trong các file hình ảnh, âm thanh, video và document
2 Steganography trong “hình ảnh”
a LSB – (Least Significant Bit)
Phương pháp này thường được sử dụng khi ẩn thông tin trong files ảnh Thông tin cần được che dấu sẽ được thay thế bằng mỗi bit có trọng số thấp nhất (Least Significant Bit) của mỗi pixel trong bức ảnh LSB hoạt động tốt nhất trong file ảnh có độ phân giải cao như ảnh 24 Bit Lý do vì đây là loại ảnh lớn nhất và thường có chất lượng tốt nhất Khi ảnh ở độ phân giải cao và chất lượng tốt, nó dễ dàng che giấu thông tin bên trong Ví dụ :
Mẫu 8 bit ban đầu : 0 1 0 1 1 1 1 0
Sau khi giấu bit 1: 0 1 0 1 1 1 1 1
b Masking and Filtering
Bằng cách lọc độ chói của những vùng riêng biệt trên bức ảnh để che dấu dữ liệu Thay đổi này không gây ra khác biệt rõ ràng nào trên bức ảnh Với phương pháp này sử dụng định dạng ảnh là JEPG là tốt nhất
c Algorithms and Transformations
Đây là một cách che dấu sử dụng và được cải biến từ cách biến đổi cosin riêng Định dạng JPEG được sử dụng, đầu tiên biến đổi mỗi khối pixel tới Discrete Cosine Transformations (DCT) Thay các bit có trọng số thấp nhất của mỗi hệ số DCT, thay thế LSB với mỗi bit của thông điệp cần ẩn liệu.
3 Steganography trong Audio
Các kỹ thuật giấu tin trong audio dựa vào hệ thống thính giác của con người Việc giấu tin trong audio thường là khó hơn trong các dữ liệu media khác do hệ thống thính giác của con người khá nhạy với các nhiễu Các phương pháp sau đây có thể được sử dụng thể thực hiện giấu tin trong audio
a LSB
Tương tự như việc sử dụng phương pháp LSB trong hình ảnh.Ta sẽ thay thế các bit ít quan trọng nhất (thường là bit cuối) của mỗi mẩu dữ liệu bằng bit tin
Trang 10giấu Ưu điểm của phương pháp này là dễ cài đặt và cho phép giấu nhiều dữ liệu
Có thể tăng thêm dữ liệu giấu bằng cách dùng hai bit LSB Tuy nhiên cách làm này cũng làm tăng nhiễu trên đối tượng chứa dẫn đến đối phương dễ phát hiện và thực hiện tấn công Vì vậy dữ liệu chứa cần phải được chọn trước khi giấu sử dụng phương pháp LSB Để tăng độ cho kỹ thuật này, ta sử dụng bộ sinh số nguyên ngẫu nhiên để sinh ra các vị trí các mẫu được chọn giấu chứ không phải các mẫu liên tục Bộ sinh số này sử dụng một khóa bí mật key như là phần tử khởi tạo của bộ sinh số Khóa key này được sử dụng trong cả quá trình giấu tin và giải tin Lưu ý là bộ sinh số không tạo ra các giá trị trùng nhau để tránh trường hợp một vị trí được giấu hai lần
b Mã hóa Parity (Parity Coding)
Thay vì chia dữ liệu thành các mẫu riêng lẻ, phương pháp mã hóa chẵn lẻ chia dữ liệu thành các nhóm mẫu và giấu từng bit thông tin vào trong các nhóm mẫu này Nếu parity bít của nhóm mẫu này không trùng với bit thông tin giấu thì ta tiến hành điều chỉnh một bít nào đó trong nhóm mẫu này Phương pháp này cho ta nhiều sự lựa chọn hơn khi thay đổi 1 bít và có vẻ
“kín đáo” hơn so với phương pháp điều chỉnh LSB
Cả hai phương pháp LSB và Parity đều có những hạn chế Do tai người khá nhạy nên những thay đổi trên dữ liệu chứa sẽ sinh nhiễu và người nghe rất dễ nhận ra Một điểm nữa là hai phương pháp này không bền vững và thông tin sẽ bị mất sau khi thực hiện việc lấy mẫu lại Một trong những cách khắc phục là thực hiện việc giấu nhiều lần Tuy nhiên cách này cũng có hạn chế là nó làm tăng thời gian xử lý
c Mã hóa Phase (Phase Coding)
Phương pháp mã hóa pha giải quyết được các hạn chế do sinh ra nhiễu của hai phương pháp giấu dữ liệu trên Phương pháp mã hóa pha dựa vào tính chất là các thành phần của pha không gây ảnh hưởng đến hệ thống thính giác của con người như nhiễu Việc giấu tin được thực hiện bằng cách điều chỉnh pha trong phổ pha của dữ liệu số
d Kỹ thuật trải phổ
Thông thường các file audio được truyền qua các kênh truyền thông, các kênh truyền thông này sẽ tập trung dữ liệu audio trong vùng hẹp của phổ tần số để duy trì năng lượng và tiết kiệm băng thông Các kỹ thuật trải phổ cố
Trang 11gắng trải thông tin mật vào trong phổ tần số của dữ liệu audio càng nhiều càng tốt Nó cũng tương tự như kỹ thuật LSB là trải ngẫu nhiên thông tin giấu trên toàn bộ file audio Ưu điểm của phương pháp trải phổ là nó bền vững trước một số tấn công Tuy nhiên nó cũng có hạn chế là sinh nhiễu và dễ nhận
ra Hai phương pháp trải phổ sử dụng trong giấu tin audio là DSSS (Direct Sequency Spread Spectrum) và FHSS (Frenquency Hopped Spread Spectrum)
e Kỹ thuật giấu dựa vào tiếng vang (Echo)
Kỹ thuật giấu dựa vào tiếng vang thực hiện giấu tin bằng cách thêm vào tiếng vang trong tín hiệu gốc Dữ liệu nhúng được giấu bằng cách thay đổi 3 tham số của tiếng vang : Biên độ ban đầu, tỉ lệ phân rã và độ trễ Khi thời gian giữa tín hiệu gốc và tiếng vang giảm xuống, hai tín hiệu có thể trộn lẫn và người nghe khó có thể phân biệt giữa hai tín hiệu Số lượng tin giấu có liên quan ñến thời gian trễ của tiếng vang và biên độ của nó
H1 Kỹ thuật giấu điều chỉnh Echo
f Kỹ thuật mã hóa Echo
Bằng cách dùng thời gian trễ khác nhau giữa tín hiệu gốc và tiếng vang để thể hiện tương ứng giá trị nhị phân 1 hoặc 0, theo cách đó dữ liệu được giấu vào file audio Để giấu nhiều hơn một bit, tín hiệu gốc được chia thành các đoạn ngắn hơn và mỗi đoạn sau đó có thể được tạo tiếng vang để giấu số bit mong muốn Dữ liệu chứa cuối cùng bao gồm các đoạn được
mã độc lập nối lại theo thứ tự chia ban đầu Kỹ thuật giấu tin dựa vào tiếng vang rất hiệu quả trong các file audio chất lượng cao Các file âm thanh chưa làm giảm chất lượng và không có quá nhiều đoạn yên lặng thường dùng kỹ thuật này để giấu tin Một cách tiếp cận khác là tiến hành mã hóa chuỗi bit theo một cách nào đó giúp ta phát hiện ra lỗi Thay vì giấu trực tiếp L bit vào đối
Trang 12tượng chứa, ta biến đổi chuỗi bit bằng cách bổ sung một số bit vào S nhằm mục đích kiểm tra lỗi
4 Steganography trong Video
Khi mà thông tin được chứa trong chương trình video hoặc người, che giấu thông tin sẽ thường sử dụng DCT ( Discrete Cosine Transform) - phương pháp biến đổi hàm cosin rời rạc DCT hoạt động bằng cách thay đổi một chút đối với mỗi ảnh trong video, do vậy nó không gây chú ý đối với mắt người Cụ thể hơn, DCT thay đổi giá trị của những phần nhất định của tấm ảnh, nó thường thay đổi chúng Khi chỉ 1 phần nhỏ thông tin bị che giấu trong video, nói chung không gây chú ý chút nào Tuy nhiên, nhiều thông tin hơn bị che giấu có thể gây sự chú ý
5 Steganography trong Document
Có thể sử dụng phương pháp Steganography trong tài liệu bằng cách đơn giản
là thêm khoảng trắng và tab cho đến cuối dòng tài liệu Loại steganography này
là vô cùng hiệu quả bởi vì việc sử dụng khoảng trắng và tab sẽ không thể bị mắt thường phát hiện, ít nhất là đối với tất cả các trình biên tập văn bản/tài liệu
III STEGANALYSIS
1 Các phương pháp
Steganalysis là kỹ thuật dùng để phát hiện Steganography Có nhiều phương
pháp để kiểm tra sự tồn tại của thông tin được ẩn trong các tập tin, như các phương pháp dưới đây
Ví dụ, nếu bạn tải về một tập tin JPEG, tập tin nghi ngờ của bạn cũng là JPEG
và hai tập tin trông giống nhau hoàn hoàn ngoại trừ một tập tin lớn hơn tập tin