Mặc dù có nhiều phương pháp để giấu thông tin trên tài liệu thẻ nhưng trong phạm vi bài báo này chúng tôi chỉ giới thiệu hai phương pháp là “Chèn khoảng trắng trong [r]
(1)25
TẠP CHÍ KHOA HỌC, Đại học Huế, Số 58, 2010
PHƯƠNG PHÁP CẢI TIẾN KỸ THUẬT CHE GIẤU THÔNG TIN TRONG CÁC TÀI LIỆU THẺ DỰA TRÊN KỸ THUẬT STEGANOGRAPHY
Nguyễn Thị Hương Giang Trường Đại học Sư phạm, Đại học Huế
Nguyễn Xuân Linh
Trung tâm Công nghệ Thông tin tỉnh Thừa Thiên Huế
TÓM TẮT
Che giấu thơng tin cơng nghệ nhúng thơng tin bí mật vào liệu ngụy trang làm cho thơng tin bí mật trở thành “vơ hình” Ngày nay, tài liệu thẻ HTML, XML, XHTML WML biết đến định dạng chuẩn để lưu trữ liệu có cấu trúc để trình diễn liệu trình duyệt web Chúng ngơn ngữ sở cho việc trao đổi thông tin mạng Internet Khác với phương pháp che giấu thông tin trên liệu hình ảnh âm thanh, có số phương pháp che giấu thông tin vào liệu văn bản, đặc biệt tài liệu thẻ Hơn nữa, hạn chế những phương pháp dễ dàng bị phát đối tượng công biết phương pháp được sử dụng để che giấu thông tin (stego-key) Trong báo này, đề xuất phương pháp cải tiến để nâng cao tính bảo mật phương pháp truyền thống thông qua việc sử dụng khái niệm khóa động (dynamic stego-key) để che giấu thông tin tài liệu thẻ
1 Giới thiệu
Steganography hay giấu liệu liệu bắt nguồn từ thuật ngữ Hy Lạp stegos, có nghĩa bao phủ che giấu graphia – nghĩa viết, vừa nghệ thuật vừa ngành khoa học để che giấu thông tin bên thông tin Với tốc độ phát triển nhanh chóng cơng nghệ liệu Internet, lượng thông tin liệu dạng điện tử truyền nhận mạng tăng lên không ngừng Khi công nghệ truyền nhận thông tin mạng cần phải bảo mật tầm quan trọng việc che giấu thơng tin nhìn nhận cách rộng rãi
Bằng việc sử dụng liệu “ngụy trang” (cover data) để che giấu, thơng tin bí mật bên truyền an tồn mạng mà khơng gây nghi ngờ hay bất thường mặt thơng tin, thơng tin bí mật trích xuất sau cần [3], [4], [5] Hình mô tả phương pháp che giấu thông tin tổng quát [4]
(2)26
thơng tin khác Ví dụ để giấu thơng tin bí mật liệu hình ảnh, sử dụng bit khơng quan trọng điểm ảnh ảnh để che giấu thông tin Sau giấu thông tin này, thay đổi hình dạng màu sắc ảnh khó nhận thấy mắt thường Đối với liệu văn bản, thay đổi vị trí dấu chấm câu khoảng trắng từ cách đơn giản để thêm giá trị thông tin mà không làm thay đổi nội dung văn gốc Tương tự vậy, tài liệu thẻ sử dụng để che giấu thông tin cách thay đổi cấu trúc tài liệu mà khơng ảnh hưởng tới nội dung hiển thị trình duyệt Web
Hình 1 Sơ đồ che giấu thơng tin tổng quát [4] 2 Các phương pháp che giấu thông tin tài liệu thẻ
Mặc dù có nhiều phương pháp để giấu thơng tin tài liệu thẻ phạm vi báo giới thiệu hai phương pháp “Chèn khoảng trắng thẻ” “Thay đổi thứ tự thuộc tính thẻ” hai phương pháp cho phép tận dụng tất thẻ tài liệu để che giấu thông tin (lượng thơng tin che giấu lớn so với phương pháp khác) Đồng thời đề xuất phương pháp cải tiến để nâng cao tính bảo mật với ý tưởng sử dụng khóa động thay khóa tĩnh phương pháp truyền thống
2.1 Phương pháp truyền thống a Chèn khoảng trắng thẻ
Phương pháp “Chèn khoảng trắng thẻ” phương pháp hiệu sử dụng để che giấu thông tin tài liệu thẻ khai thác sử dụng tất thẻ có tài liệu Theo W3C, thẻ chứa nhiều khoảng trắng khơng có khoảng trắng trước ký hiệu đóng thẻ Bằng việc thêm vào xóa khoảng trắng này, nhúng liệu vào mà bảo đảm giữ nguyên ý nghĩa nội dung thẻ gốc [4] Chẳng hạn, định nghĩa quy tắc theo ví dụ sau:
Ví dụ 1: Văn XML [4] Khóa tĩnh:
Khóa bímật Khóa bímật
Thuật tốn che dấu thơng tin
Truyền mạng
Thuật tốn bóc tách thơng tin
Thơng điệp bí mật Dữ liệu
ngụy trang
(3)27
<tag>, </tag> or <tag attribute=value>: Không có khoảng trắng thẻ trước đóng thẻ kí hiệu đại diện cho bit
<tag >, </tag >, or <tag attribute=value >: Có khoảng trắng trước đóng thẻ kí hiệu đại diện cho bit
Dữ liệu ngụy trang trước nhúng thông tin <user><name>Peter</name><id>01</id></user> <user><name>Mary</name><id>02</id></user> Dữ liệu ngụy trang sau nhúng thông tin: <user ><name>Peter</name ><id >01</id></user> <user><name >Mary</name><id>02</id ></user >
Rõ ràng thấy liệu ngụy trang trước sau nhúng thơng tin hiển thị hồn tồn giống trình duyệt Web
If (có khoảng trắng trước ký hiệu đóng thẻ) { Bit “1” mã hóa thẻ
} Else {
Bit “0” mã hóa thẻ }
Trong ví dụ trên, liệu nhúng là: 101100 010011
Ví dụ 2: Văn HTML [4]
Qui tắc giấu thông tin sử dụng khóa tĩnh (static stego-key):
<tag>, </tag> or <tag attribute=value>: Khơng có khoảng trắng thẻ trước đóng thẻ kí hiệu đại diện cho bit
<tag >, </tag >, or <tag attribute=value >: Có khoảng trắng trước đóng thẻ kí hiệu đại diện cho bit
Giả sử muốn nhúng ký tự A (A = 01000001) Dữ liệu ngụy trang sau giấu thông tin (stego data): <html xmlns="http://www.w3.org/1999/xhtml"> <head ><title>Microsoft Corporation</title>…100 <meta http-equiv= "X-UA-Compatible">
(4)28
</meta>0 </html >…1
Trong ví dụ trên, liệu nhúng là: 01000001 (A)
Đối với phương pháp truyền thống này, hạn chế lớn việc sử dụng khóa tĩnh Đó định dạng thẻ <tag> </tag> luôn đại diện cho giá trị (bit bit 1) liệu kết sau chứa thơng tin bí mật (stego data) Chính vậy, đối tượng cơng tìm thấy thơng tin bí mật che giấu biết phương pháp che giấu
b Thay đổi thứ tự xuất thuộc tính thẻ
Phương pháp “Thay đổi thứ tự xuất thuộc tính thẻ” xem phương pháp hiệu để che giấu thông điệp bí mật tài liệu thẻ Mặc dù chèn thêm liệu vào tài liệu thẻ chúng hiển thị trình duyệt nhìn thấy mã nguồn; thơng điệp bí mật giấu tài liệu XML, HTML, XHTML v.v thông qua việc thay đổi thứ tự xuất thuộc tính bên thẻ mà khơng làm thay đổi hiển thị nội dung thẻ trình duyệt gia tăng kích thước tài liệu [4], [6]
Trong phương pháp này, thứ tự xuất thuộc tính quy ước khóa (stego-key) cho việc che giấu trích xuất thơng tin Quy ước cố định áp dụng cho tồn tài liệu, cịn gọi khóa tĩnh (static stego-key) Chúng ta định nghĩa nhiều cặp thuộc tính để tăng khối lượng thơng tin che giấu Ví dụ sau mơ tả rõ phương pháp
Ví dụ 3: Đoạn mã XML [4]
Định nghĩa khóa thông qua cặp thứ tự:
<event month=”MONTH” date=”DATE”>EVENT</event> đại diện bit (khi thuộc tính “month” đứng trước thuộc tính “date”)
<event date=”DATE” month=”MONTH”>EVENT</event> đại diện bit (khi thuộc tính “month” đứng sau thuộc tính “date”)
Dữ liệu sau giấu thơng tin có dạng:
<event month="JUL" date="4">Independence day</event> <event date="24" month="DEC">Christmas</event>
Chuỗi bit thông điệp che giấu đoạn liệu là: 01
Ví dụ 4: Đoạn mã HTML [4]
(5)29
What is the difference? </span>
<span style="color #012388ff" class="normal Text"> What is the difference?
</span>
Chúng ta định nghĩa thứ tự cặp thuộc tính từ ví dụ sau: Bảng 1 Khóa tĩnh cho phương pháp “Thay đổi thứ tự xuất thuộc tính thẻ”
Thuộc tính thứ Thuộc tính thứ hai
Month Date
Class Style
Cellpadding Cellspacing
Align Valign
Width Height
If (“Thuộc tính thứ nhất” đứng trước “Thuộc tính thứ hai”) {
Bit "0" mã hóa }
Else {
Bit "1" mã hóa }
Dữ liệu che giấu là: 01 2.2 Phương pháp cải tiến
Trong phương pháp cải tiến này, chúng tơi sử dụng khái niệm khóa động để nhúng thông tin cần che giấu thay sử dụng khóa tĩnh (biểu diễn bit bit ký hiệu cố định) để tăng độ an tồn cho thơng tin bí mật gửi Khóa động kết thuật tốn XOR kết hợp khóa tĩnh truyền thống khóa phụ bí mật, khóa phụ người gửi người nhận tự qui ước Trong phương pháp sử dụng khóa động, bit bit biểu diễn ký hiệu không cố định, tùy thuộc vào chuỗi mật bí mật tên thẻ
a Khoảng trắng thẻ
(6)30
định trước tên thẻ thẻ Bảng sau mô tả khóa động cho phương pháp “Khoảng trắng thẻ”
Bảng 2 Khóa động cho phương pháp “Khoảng trắng thẻ”
Dynamic Stego – Key Nếu
((N mod 2) = 1)
Nếu ((N mod 2) = 0)
<tên thẻ “thuộc tính”=“giá trị”> or </tên thẻ> Biểu diễn bit Biểu diễn bit <tên thẻ thuộc tính=“giá trị” > or </tên thẻ > Biểu diễn bit Biểu diễn bit
Bước 1: Xác định khóa bí mật từ người sử dụng Bước 2: Với thẻ tài liệu thẻ
Bước 2.1: Trích xuất tên thẻ, ví dụ html, title, meta, head, v.v Bước 2.2: Tách chuỗi ký tự khóa bí mật tên thẻ thành ký tự riêng lẻ
Ví dụ: khóa bí mật pswd tách thành
p: 01110000 (mã ASCII tương ứng) s: 01110011 w: 01110111 d: 01100100 tên thẻ: title
t: 01110100 i: 01101001 t: 01110100 l: 01101100 e:01100101 Bước 2.3: Thực phép tốn XOR khóa bí mật tên thẻ
t i t l e XOR
p s w d p (lặp lại ký tự khóa bí mật nhỏ độ dài tên thẻ) Tương ứng với:
01110100 01101001 01110100 01101100 01100101 XOR
01110000 01110011 01110111 01100100 01110000 - 00000100 00011010 00000011 00001000 00010101
Gọi N số lượng bit “1” chuỗi bit kết phép tốn XOR, trường hợp này, ta có N= 10
(7)31
If ((N mod 2) = 1)
Bit "0" mã hóa thẻ Else
Bit "1"-đã mã hóa thẻ }
Else {
If ((N mod 2) = 1)
Bit "1"-đã mã hóa thẻ Else
Bit "0" mã hóa thẻ }
Bước 3: Kết thúc thủ tục
Ví dụ 5: Đoạn mã HTML với khóa động [4] Dữ liệu dùng để giấu thông tin:
<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Microsoft Corporation</title> <meta http-equiv= "X-UA-Compatible">
<meta http-equiv="Content-Type" charset=UTF-8"> </meta>
</html>
Giả sử, cần giấu ký tự A vào liệu để truyền mạng (A = 01000001, mã ASCII)
Mật định nghĩa trước: pswd
Tên thẻ: html, head, title, /title, meta, /meta, /html html XOR pswd cho kết quả:
01101000 01110100 01101101 01101100 01110000 01110011 01110111 01100100 -