Tải bản đầy đủ (.docx) (15 trang)

BÁO CÁO AN TOÀN MẠNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (458.87 KB, 15 trang )

ĐẠ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

Mục Lục

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.

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.

Bitmap header: có độ dài cố định là 14 byte.
Bitmap information:

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

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
 Đị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).

Cấu trúc của Wave File thuộc vào lớp file được sử dụng bởi các
hàm Multimedia của Windows: đó là RIFF FILE. RIFF là chũ viết
tắt của Resource Interchange File Format (dạng file trao đổi tài
nguyên). Một RIFF file gồm một hoặc nhiều loại chunks, trong mỗi
chunk lại chứa con trỏ chỉ đến chunk kế tiế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 tồ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.

 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í Giá trị Mơ tả
0-3 “RIFF” Cho biết file là 1 riff
file

4-7 Kích thước file
8-11 “WAVE” Luôn luôn là chuỗi
“WAVE”
• FORMAT chunk
12-15 “fmt ” Chuỗi fmt, ký tự cuối là
dấu khoảng trắng, mã
ASCII 32
16-19 16 Kích thước FORMAT
chunk, mặc nhiên là 16.
20-21 1 Kiểu của định dang(PCM)
22-23 2 Số kênh-1 là mono,2 là
stereo
24-27 44100 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.
28-31 176400 Số byte dữ liệu trên 1
giây(Sample Rate *
BitsPerSample *
Channels) / 8
32-33 4 Số byte trong một mẫu
trích. (BitsPerSample *
Channels)
34-35 16 Số bit trên 1 mẫu(chiều
sâu bit)

• DATA chunk
36-39 “data” Lưu chuỗi data,cho biết
phần tiếp theo sẽ là dữ
liệu âm thanh.
40-43 File size Kích thước dữ liệu âm
thanh.
44 – hết data 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

số này sẽ được lưu theo thứ tự: 44 AC 00 00. Như vậy gọi là Little-
endian.(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 đó.

V.KỶ THUẬT GIẤU TIN TRONG ẢNH
 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.
 kỹ thuật giấu tin trong ảnh sử dụng các bít LSB.

-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.

VI.DEMO VÀ SOURCE CODE
1. Giao diện chính của chương trình.
  !"#$%&
 '()*+,
 -*,./&012/34(567801"9:;<=37> 0#*
?/(*@A*
BC1D3DEEFG>H801
BC*I3E>H801J(K
BC%*13DE#L
-*,./801M5N'0"> 0#*("?/(*@A*
BC%*13DE#L
-*,./> 0#*?/(*@A*
/>3*I3E35O50P/Q03R> 0#*(*@A*,1D/9L
1D3DES55/::23>
1D3DES51DJA*
7*I3T3*%*1EQLJA*6)=0"1D3DEF
LJA*L"9:;EFK)*

7*I3A*U6)5NUV?W=QX/?
-*,'(5*13DEEFL:/*)MA*> 0#*"3801K
)*
2. MỘT SỐ CODE TIÊU BIỂU.
Y"((MV/,"("9V0=Z*/PU5L*S[\]Y"("9(30/::Y>1^//
private void Mahoa(FileStream ins, FileStream outs, byte[] message)
{

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
file chứa.
thaotacBit.ThaytheBit(ref write, 0, bit);
if (j == 8)
{
j = 0;
i++;
}
}
outs.WriteByte(write);
}
}
 Y"(_L(M,Y"("9:;0A90R> 0#*MA*3801`V77/a+
*@b3801"0Ra"(L91"Lc(L91VY"("93
0/::_1^//]/),
 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;

 //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;

 }

dL(eee


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×