Đăng ký Đăng nhập
Trang chủ Báo cáo an toàn mạng...

Tài liệu Báo cáo an toàn mạng

.PDF
15
931
88

Mô tả:

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ CÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG BÁO CÁO AN TOÀN MẠNG ĐỀ TÀI: TÌM HIỂU VÀ VIẾT CHƯƠNG TRÌNH ẨN DỮ LIỆU 1 Mục Lục 2 I.GIỚI THIỆU Trong thời đại mà công nghệ thông tin và internet phát triển như hiện nay,việc trao đổi thông tin,dữ liệu qua mạng là chiếm 1 phần lớn trong sự phát triển ấy. vấn đề bảo mật thông tin đóng 1 vai trò cực kỳ quan trọng .có nhiều các giải pháp bảo mật thông tin khi trao đổi trong đó phổ biến nhất là mã hóa dữ liệu trước khi gửi. Có nhiều các phương pháp, giải thuật mã hóa hiệu quả và độ an toàn cao tuy nhiên phương pháp mã hóa sẽ gây tò mò,tăng sự hiếu kỳ đối với những kẻ muốn đánh cắp thông tin,vì vậy có 1 giải pháp khác được đưa ra là ẩn giấu dữ liệu cần trao đổi dưới dạng 1 loại dữ liệu khác qua đó đánh lừa được những người xem không mong muốn. II. STEGANOGRAPHY Ngày nay, trên mạng Internet, những bức tranh hay bản nhạc có vẻ ngoài bình thường (như bức ảnh trên) có rất nhiều, nhưng bên trong nó có thể ẩn chứa những thông tin hoàn toàn bí mật. Ưu thế này khiến Steganography ngày càng trở nên phổ biến và được ứng dụng rộng rãi. Ngoài lĩnh vực an toàn dùng để che giấu sự tồn tại của thông tin, nó còn được dùng trong công nghiệp giải trí và phần mềm như một kỹ thuật đánh dấu (watermarking) trên các hình ảnh, âm nhạc hay phần mềm số để bảo vệ bản quyền tác giả, ngăn chặn mạo nhận, chống sao chép, xác thực nội dung, cho phép giám sát hay lần ngược dấu vết các bản sao bất hợp pháp. Trong nhiều trường hợp, kỹ thuật này còn được dùng để giám sát sự quảng bá. Ví dụ, bằng cách nhúng các dấu hiệu đánh dấu vào tệp hình ảnh cần quảng cáo và dùng một màn hình giám sát tự động, khi đó sẽ kiểm tra được liệu thông tin cần quảng cáo có được các cơ quan phát thanh truyền hình quảng bá đủ thời lượng như đã thỏa thuận hay không. 3 Ngoài những ứng dụng tích cực, Steganography cũng bị những kẻ có ý đồ xấu lợi dụng. Hãy hình dung trong một đĩa nhạc “The wall” của Pink Floyd được nhúng các kế hoạch tuyệt mật bằng phương pháp Steganography, đĩa sẽ được chuyển qua biên giới an toàn mà không bị phát hiện. Rồi các kế hoạch này sẽ được truyền công khai trên Internet dưới những tệp hình ảnh hay âm thanh bình thường, lẫn trong hàng triệu thông tin đang lưu chuyển trên nó. Steganography là một phương tiện che khuất dữ liệu mà các thông điệp bí mật được ẩn bên trong các tập tin máy tính như hình ảnh, tập tin âm thanh, video và thậm chí cả các file thực thi. Không có ai ngoại trừ người gửi và người nhận sẽ nghi ngờ sự tồn tại của thông tin ẩn trong đó. Steganography cũng có thể liên quan đến việc sử dụng mật mã, nơi các tin nhắn được mã hóa đầu tiên trước khi nó được giấu trong một tập tin khác. Nói chung, các thông điệp xuất hiện như một cái gì đó khác như hình ảnh, âm thanh hoặc video để truyển dữ liệu bí mật vẫn không bị nghi ngờ. III.ẢNH BITMAP 1. Ảnh BITMAP là gì ? đặc điểm -Trong đồ họa máy tính,ảnh bitmap hay window bitmap do microsoft đề xuất ,là 1 tập tin hình ảnh khá phổ biến, các tập tin bitmap thường được lưu với phần mở rộng là .BMP hay .DIB -đặc điểm nổi bật nhất của ảnh BMP là ảnh không được nén với bất kì thuật toán nào.khi lưu ảnh,các điểm ảnh được lưu trực tiếp vào tập tin- một điểm ảnh sẽ được lưu bằng 1 hay nhiều byte tùy thuộc vào giá trị của ảnh.do đó ,1 hình ảnh được lưu dưới dạng bmp có kích thước rất lớn,gấ nhiều lần so với các ảnh được nén. 2. Cấu trúc của tập tin ảnh BITMAP Cấu trúc tập tin ảnh bmp gồm 4 phần: Bitmap header( 14 byte):giúp nhận dạng tập tin bitmap Bitmap information(40 byte):lưu các thông tin chi tiết giúp hiển thị hình ảnh. Color palette(4 *X byte) với x là số màu của ảnh,định nghĩa các màu sẽ được sử dụng trong ảnh. Bitmap data:lưu dữ liệu hình ảnh. 4 Bitmap header: có độ dài cố định là 14 byte. Bitmap information: 5 Color palette (bảng màu):là bảng lưu trữ màu của bmp.bảng này sẽ có giá trị bằng 0 nếu ảnh có số màu lớn hơn 256 hay ảnh đen trắng. Với những ảnh có số màu nhỏ hơn hoặc bằng 256 thì sẽ gồm 1 bộ có kích thước 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và 1 byte dự trữ.kích thước của vùng palette = 4* x với x là số màu. Vì palette màu của màn hình là R-G-B nên khi đọc palette màu của bmp thì ta phải chuyển đổi cho phù hợp. Với ảnh 24 bit thì color table =0 ảnh 8 bit thì color table=256*4 byte.4 bit là 16*4 bytes. Bitmap data: vùng dữ liệu ảnh là giá trị của điểm ảnh,kích thước của vùng dữ liệu ảnh phụ thuộc và độ rộng,chiều cao và kiểu ảnh. Với ảnh 8 bit: Size=width*height. ảnh có số màu lớn hơn 256: size=width*height*số bit trên 1 điểm ảnh. ảnh 24 bit: mỗi điểm ảnh chiếm 3 byte mô tả 3 thành phần red,green,blue. Như vậy số lượng màu tối đa: 256^3=16.777.216 6 Ví dụ: ảnh 256 màu(8 bit): -mỗi điểm ảnh chiếm 1 byte,chỉ số hiệu màu của điểm ảnh này. Số hiệu màu của các điểm ảnh:0,1,2,…255. Màu của điểm ảnh được mô tả trong bảng màu.giả sử byte mô tả điểm ảnh có giá trị là b và bảng màu được chứa trong mảng P thì thành phần các màu của điểm ảnh này là P[b].R,P[b].G,p[b].B. Ví dụ: 1 điểm ảnh có số hiệu màu là 20, thì trong bảng màu sẽ được lưu là P[20].R, P[20].G, P[20].B IV.TÌM HIỂU FILE WAV 1. Định dạng wav Dữ liệu âm thanh trong tập tin WAV là dạng dữ liệu âm thanh không nén(RAW data) dựa trên định dạng mã hóa PCM (Pulse Code Modulation). 7 Caáu truùc cuûa Wave File thuoäc vaøo lôùp file ñöôïc söû duïng bôûi caùc haøm Multimedia cuûa Windows: ñoù laø RIFF FILE. RIFF laø chuõ vieát taét cuûa Resource Interchange File Format (daïng file trao ñoåi taøi nguyeân). Moät RIFF file goàm moät hoaëc nhieàu loaïi chunks, trong moãi chunk laïi chöùa con troû chæ ñeán chunk keá tieáp. Định dạng WAV có ưu điểm là ấu trúc đơn giản , chất lượng âm thanh được bảo toàn , nhưng nhược điểm là dùng lượng file khá lớn. Nếu được lấy mẫu với tần số 44.1 kHz (44100 lần/giây), độ phân giải 16 bit (tương đương với chất lượng CD) thì 1 phút âm thanh sẽ tiêu tốn tới 10 MB , nghĩa là một bài hát khoảng 5 phút sẽ mất dung lượng 50MB ổ cứng. 2. Cấu trúc tập tin wav. Tập tin wav có độ dài phần header là 44 byte, Phần dưới đây liệt kê các chunk và nội dung của chúng theo thứ tự: vị trí (từ byte ?? tới byte ??), kích thước (?? bytes) và mô tả. • RIFF chunk Vị trí 0-3 Giá trị “RIFF” Mô tả Cho biết file là 1 riff file 8 4-7 8-11 • • Kích thước file “WAVE” Luôn luôn là chuỗi “WAVE” FORMAT chunk 12-15 “fmt ” 16-19 16 20-21 22-23 1 2 24-27 44100 28-31 176400 32-33 4 34-35 16 Chuỗi fmt, ký tự cuối là dấu khoảng trắng, mã ASCII 32 Kích thước FORMAT chunk, mặc nhiên là 16. Kiểu của định dang(PCM) Số kênh-1 là mono,2 là stereo Tần số lấy mẫu- Các giá trị phổ biến là 44.100 (CD), 48000 (DAT). Sample Rate = Số mẫu trên mỗi giây, hoặc Hertz. Số byte dữ liệu trên 1 giây(Sample Rate * BitsPerSample * Channels) / 8 Số byte trong một mẫu trích. (BitsPerSample * Channels) Số bit trên 1 mẫu(chiều sâu bit) DATA chunk 36-39 “data” 40-43 File size 44 – hết data Lưu chuỗi data,cho biết phần tiếp theo sẽ là dữ liệu âm thanh. Kích thước dữ liệu âm thanh. Dữ liệu âm thanh. Dữ liệu trên tập tin WAVE tuân theo quy tắc Little-endian. Thí dụ, ta có tần số trích mẫu bằng 44100 Hz. Giá trị 4 bytes, hệ thập lục phân của nó là 0x0000AC44 (mỗi cặp số là một byte). Trên tập tin, con 9 số này sẽ được lưu theo thứ tự: 44 AC 00 00. Như vậy gọi là Littleendian.(Kiểu sắp xếp bình thường gọi là Big-endian.) Về cơ bản các file wave thường có cấu trúc các chunk như trên,nghĩa là đều có các chunk RIFF,FORMAT,DATA tuy nhiên thực tế thì có nhiều file wav mà các chunk fmt không phải luôn cùng kích thước,chúng có thể là 1 trường hợp của WAVEFORMATEX có thêm các byte ở cuối.vì vậy tốt nhất là nên kiểm tra trường subchunk1 size để biết chính xác kích thước của trường này.cũng cần phải lưu ý rằng data chunk không nhất thiết là ở ngay sau format chunk, 1 wav file thướng có nhiều hơn 1 frm chunk và 1 data chunk vì vậy trong demo nhóm sẽ tìm trong file wav chuỗi “data” từ đó xác định trường dữ liệu âm thanh ở đâu để có thể giấu thông tin vào đó. 10 V.KỶ THUẬT GIẤU TIN TRONG ẢNH 1. kỹ thuật substitution-sự thay thế. -phương pháp này sử dụng việc thay thế các thông tin ít quan trọng trong việc quyết định nội dung của file gốc,và dữ liệu được thay thế những phần đó ít gây ảnh hưởng đến chát lượng file chứa gốc. Mô hình thuật toán: Mô hình thuật toán Substitution Ưu điểm của kỹ thuật này là file chứa gốc sau khi giấu tin thì kích thước không thay đổi=> tránh việc bị nghi ngờ dẫn đến lấy cắp thông tin. Nhược điểm là làm giảm chất lượng của file chứa gốc ban đầu ,số lượng tin giấu được cũng bị hạn chế do phụ thuộc vào kích thước file chứa,số bít ít quan trọng của file chứa. 2. kỹ thuật giấu tin trong ảnh sử dụng các bít LSB. 11 -nằm trong số các kỹ thuật substitution thì kỹ thuật sử dụng các bít có trọng số thấp nhất (Least significant bit) là phổ biến nhất.với kỹ thuật này thì nó thay thế các bit được coi là ít quan trong nhất ở các file ảnh chứa gốc.và việc thay thế được tiến hành thei trình tự số lượng byte nhất định. -kỹ thuật này ít ảnh hưởng đến file chứa gốc,với file ảnh thì nó ít ảnh hưởng đến các pixel. Ví dụ: Màu : 0 205(11001101) 0 0 204(11001100) 0 Một ví dụ với ảnh bmp 24 bit như đã nói ở trên thì việc giấu 1 chữ cái “a” có thể tiến hành như sau: chữ a trong mã ascii là 97 và giá trị nhị phân là 01100001-có 8 bit vì vậy cần 8 byte ảnh để chứa được chữ cái a này theo như thuật toán LSB.8 byte ảnh sau khi giấu chữ a sẽ như sau: 10010010 01010011 10011011 11010010 10001010 00000010 01110010 00101011 Và để lấy lại thông tin giấu thì ta tiến hành đọc 8 bit LSB của các byte tương ứng để tái tạo lại thành 01100001 và đổi lại thành ký tự “a”. Ta có thể thấy được luôn luôn có ít nhiều nhất là 50% số bit trùng nhau giữa thông tin cần giấu và file chứa gốc do đó file chứa gốc ít bị ảnh hưởng về chất lượng. 12 VI.DEMO VÀ SOURCE CODE 1. Giao diện chính của chương trình. - Chương trình được viết bằng ngôn ngữ C# và công nghệ WPF.  Chương trình gồm 4 khung chính: 1. Khung 1: chứa File wav hoặc .bmp , các file này sẽ được ẩn bên trong các dữ liệu chúng ta muốn giấu. - Một textbox để hiển thị đường dẫn file. - Một button để dẫn đến file cần mở. - Một Picture box để hiện hình ảnh. 2. Khung 2: chứa file đã được phục hồi-là dữ liệu mà chúng ta muốn giấu - Một Picture box để hiện hình ảnh. 3. Khung 3: chứa dữ liệu chúng ta muốn giấu. - 2 radio button để cho phép lựa chọn loại dữ liệu muốn giấu: text hay hình ảnh. - textbox để nhập pass word. - textbox để nhập text cần giấu. - Các button Your Picture để chọn hình ảnh cần giấu,kế bên là textbox hiển thị hình ảnh cần giấu. hình ảnh này sẽ được hiển thị ở khung 2. 13 - Các button giấu thông tin, khôi phục thông tin có chúc năng như tên gọi của chúng. 4. Khung 4: gồm 1 picture box để hiển thị hình ảnh sau khi đã giấu dữ liệu vào file ở khung 1. 2. MỘT SỐ CODE TIÊU BIỂU. -Hàm mã hóa: hàm này có liên quan trực tiếp đến giải thuật LSB. Hàm này nằm trong class HideData. private void Mahoa(FileStream ins, FileStream outs, byte[] message) { file chứa. ThaotacBit thaotacBit = new ThaotacBit(); int i = 0, j = 0; int read; byte write; while ((read = ins.ReadByte()) != -1) { write = (byte)read; if (i < message.Length) { //Tách từng bít của thông điệp cần giấu. byte bit = thaotacBit.TachBit(message[i], j++); //Thay thế các bít tách được vào bít cuối cùng của từng byte của thaotacBit.ThaytheBit(ref write, 0, bit); if (j == 8) { j = 0; i++; } } outs.WriteByte(write); } - - } Hàm Giải mã: Hàm này sẽ lấy lại dữ liệu đã giấu trong file trước đó bằng cách tách ra từng bít cuối cùng trong file và ghi lại từng thành mảng byte và trả về mảng byte đó. Hàm này trong class GetDataBack: public static int Offset = 0; public byte[] Giaima(string inputPath, int offset, int inputLength, int passLength) { ThaotacBit thaotacBit = new ThaotacBit(); //Tạo luồng mới để ghi thành file mới. FileStream outs = new FileStream(inputPath, FileMode.Open, FileAccess.Read); int header = Offset + passLength * 8; //bỏ qua phần header của file. outs.Seek(header + offset, 0); byte[] docMang = new byte[inputLength * 8]; outs.Read(docMang, 0, docMang.Length); byte[] dulieu = new byte[inputLength]; int byteIndex = 0, bitIndex = 0, i = 0; 14 - //Tách từng bit cuối cùng của từng byte trong file chứa và lưu vào mảng dulieu. - while (i < docMang.Length) { byte bit = thaotacBit.TachBit(docMang[i], 0); thaotacBit.ThaytheBit(ref dulieu[byteIndex], bitIndex++, bit); if (bitIndex == 8) { bitIndex = 0; byteIndex++; } if (byteIndex == inputLength) break; i++; } outs.Close(); return dulieu; - - } Xin Cảm ơn !!! 15
- Xem thêm -

Tài liệu liên quan