Chèn bản ghi

Một phần của tài liệu Tìm hiểu kỹ thuật nhúng thông tin để bảo vệ bản quyền cơ sở dữ liệu quan hệ (Trang 54 - 71)

6. Ý nghĩa khoa học của đề tài

2.4.3 Chèn bản ghi

Kiểu tấn công này giống nhƣ kiểu tấn công xóa ngẫu nhiêu bản ghi, nó làm thay đổi kích thƣớc bảng hợp ban đầu, gây khó khăn cho quá trình giải tin. Một cách giải quyết tƣơng tự nhƣ với kiểu tấn công xóa bản ghi, ta luôn lấy đƣợc thông tin nhúng trong CSDL.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƢƠNG III: THỬ NGHIỆM GIẢI THUẬT ĐỀ XUẤT 3.1 Dữ liệu cho thử nghiệm

Chƣơng trình thử nghiệm thực hiện nhúng thông tin vào CSDL quan hệ, do đó CSDL đƣa có 2 bảng dữ liệu

CSDL dùng cho chậy thử nghiệm ứng dung đƣợc trích trong CSDL quản lý điểm trong trƣờng đại học Lƣơng Thế Vinh – Nam Định. Trong CSDL có rất nhiều thông tin, xong để phục vụ cho thử nghiệm này ta quan tâm đế một phần của lý lịch cá nhân và điểm học phần của sinh viên.

Hình 3.1.1: Biểu diễn tổ chức, lƣu trữ thông tin trong CSDL thử nghiệm Trƣờng đại học Lƣơng Thế Vinh có các hệ đào tạo cao đẳng, đại học chính quy tập trung, liên thông, và sau đại học. Phần dữ liệu cho thử nghiệm đƣợc lấy ở hệ đào tạo liên thông của trƣờng. Trong CSDL có rất nhiều thông tin liên quan tời sinh viên đƣợc tổ chức và lƣu trữ để phục vụ cho công tác quản lý hồ sơ, điểm học tập của sinh viên. Tuy nhiên, trong phần thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

của chƣơng trình ta quan tâm tới một số thông tin của sinh viên đƣợc diễn giải dƣới đây. Chƣơng trình thử nghiệm đƣợc cài đặt thử cho một số chức năng nhúng và giải nhúng, áp dụng cho các dữ liệu vào để nhúng và giải nhúng thuộc kiểu số thực. Do đó trong CSDL ta chỉ lấy ra một số trƣờng thỏa mãn yêu cầu của chƣơng trình. Sau khi tìm hiểu về CSDL trên tôi đƣa ra 2 trƣờng: “NamCT” (Năm kinh nghiệm), “Diem” (Điểm học phần) trong 2 bảng “SinhVien” (Sinh viên: Lƣu thông tin về hồ sơ sinh viên), KetQuaHocTap (Kết quả học tập: Lƣu trữ điểm cao nhất của các học phần).

Một thí sinh, để đƣợc dự thi liên thông tại trƣờng thì đối tƣợng là những thí sinh đã tốt nghiệp các trƣờng trung học, cao đẳng chuyên nghiệp. Những thí sinh nào tốt nghiệp loại khá trở lên đƣợc đủ điều kiện đăng ký dự thi liên thông ngay, còn các thí sinh tốt nghiệp loại trung bình khác trở xuống thì yêu cầu 2 năm kinh nghiệm thì mới đƣợc dự thi tuyển sinh vào các lớp liên thông từ cao đẳng lên đại học hay liên thông từ trung cấp lên đại học. Do đó trong việc tổ chức lƣu trữ thông tin sinh viên có phần lƣu trữ thông tin “năm kinh nghiệm của sinh viên”.

Tiếp theo, trong bảng dữ liệu “KetQuaHocTap”: Là điểm thi cao nhất của từng học phần của sinh viên. Đây là điểm cao nhất mà sinh viên đạt đƣợc các lần thi kết thúc học phần (Thi lần 1, thi lại, học lại).

Cả 2 trƣờng thông tin để lấy dữ liệu đều thuộc kiểu số thực, nhƣng trong quá trình xử lý nhập xuất thông tin này đƣợc có thể đƣợc làm tròn. Do thao tác nhúng thông tin của ta sẽ tác động vào phần thập phân không quan trọng của dữ liệu này.

Để thực hiện việc nhúng thông tin, ta cần tạo ra bảng hợp. Với mỗi giá trị trong bảng hợp ta lƣu trữ các tham số giúp tìm kiếm, xác định thông tin. Các tham số giúp xác định thông tin này làm sao phải xác định tính duy nhất, không trùng lặp. Và thông tin thỏa mãn điều kiện này là:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Mã sinh viên và mã môn học: Xác định tính duy nhất cho kết quả cao nhất sinh viên đạt đƣợc của 1 môn học

Hình 3.1.2: Mối liên giữa bảng dữ liệu sinh viên và bảng điểm kết quả học tập Trong CSDL mỗi sinh viên phải học nhiều môn học; do đó bảng kết quả học tập có mã môn học kết hợp với mã sinh viên để đảm bảo mỗi sinh viên có điểm của một môn học nào đó là duy nhất.

Toàn bộ các thông tin cần thiết trên đƣợc lƣu trữ trong file lƣu trữ của hệ quản trị cơ sở dữ liệu SQL Server 2008. Với cấu trúc bảng và các mối quan hệ theo chuẩn của CSDL quan hệ.

Sau khi xác định và chuẩn bị đƣợc dữ liệu, ta tiến hành cài đặt chƣơng trình thử nghiệm.

3.2 Xây dựng chƣơng trình thử nghiệm

Chƣơng trình thử nghiệm đƣợc lập trình bằng ngôn ngữ C# trong bộ Microsoft Visual Studio 2010.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

3.2.1Tổ chức, cài đặt giải thuật

Chƣơng trình thử nghiệm chỉ mang tính chất thử nghiệm giải thuật đề xuất, và để thuận tiện cho quá trình thực hiện, Tôi sẽ cài đặt ở mức độ đơn giản, dễ nhận biết.

Theo giải thuật đề xuất ở trên, để nhúng đƣợc thong tin vào CSDL ta cần xây dựng bảng hợp. Bảng hợp là một mảng 2 chiều, xong với thử nghiệm này ta tổ chức bảng hợp là mảng 1 chiều. Điều này không làm ảnh hƣởng tới việc thực hiện giải thuật. Ta có thể tính toán xác định theo công thức sau:

A là mảng 2 chiều, B là mảng 1 chiều tƣơng dƣơng nhau về ý nghĩa lƣu trữ:

A[x,y]=B[(x-1)*K+y] (K là kích thƣớc rộng của mảng A) Ta không tổ chức mảng A’ nữa mà kết hợp luôn vào trong A

Tiếp theo tới mảng dãy bit để nhúng vào, ở chƣơng trình này Tôi tổ chức dãy bit này dạng mảng 1 chiều, coi 1 chiều còn lại mang giá trị 1.

Vị trí nhúng là vị trí đầu tiên theo bảng hợp. Số lấn nhúng không hạn chế xong đảm bảo mỗi 1 dữ liệu xác định đƣợc qua bảng hợp đƣợc xét nhúng 1 lần.

Khoảng cách giũa các dãy bit nhúng là không có, nhúng liên tiếp vào dữ liệu.

Ta trình bày lại giải thuật theo cách tổ chức của chƣơng trình:

Input: - CSDL quan hệ D

- Dãy bit nhúng B[N]

Output: CSDL đƣợc nhúng tin D’

Action:

A[m]= Tạo bảng hợp(D);

// Trong 1 đối tƣợng A[m] có 1 gía trị: a[m].bit lƣu bit ii:=1;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn For i=1 to m do A[i].bit = B[ii]; ii++; if(ii>N) then ii:=1; end if; end for D’=Cập nhật(D,A[h,w]); Return D’;

3.2.2 Hoạt động của chƣơng trình

Nhƣ đã trình bày phần trên, các thông tin cần cho thử nghiệm lƣu trữ trong CSDL file của SQL server 2008 nên để lấy đƣợc thông tin cần thiết ra ta cần phải kết nối tới CSDL, ở đây do phải di chuyển ứng dụng nên ta thực hiện kết nối sql tới 1 file CSDL sql. Trong giao diện thấy dƣới đây cho phép ta lựa chọn file kết nối tới để lấy dữ liệu.

Hình 3.2.1: Giao diện kết nối tới CSDL

Sau khi chọn đƣợc CSDL kết nối, chƣơng trình thực hiện lệnh kiểm tra kết nối hợp lệ hay không và sẽ có thông báo. Sau khi kiểm tra, kết nối hợp lệ, chƣơng trình sẽ lấy toàn bộ tên các bảng trong CSDL và cho ta giao diện

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

chọn lấy một hay nhiều bảng cần nhúng thông tin vào. Một lƣu ý là khi lấy 2 bảng thì 2 bảng này có mối qua hệ lẫn nhau, bổ trợ thông tin cho nhau. Nhƣ trong CSDL quản lý sinh viên minh họa trên thì 2 bảng “sinh viên” và “bảng” thỏa mãn yêu cầu này.

Hình 3.2.2: Giao diện chọn bảng

Sau khi xác định đƣợc bảng để lấy thông tin, chƣơng trình cần xác định tới trƣờng lấy thông tin. Giao diện xác định trƣờng cho phép ta lựa chọn các trƣờng để lấy thông tin và các trƣờng phục vụ mục đích xác định vị trí thông tin trong bảng dữ liệu. Ở đây với bảng có 1 khóa chính ta lấy trƣờng khóa để làm vai trò xác định dữ liệu cho trƣờng lấy tiếp theo để nhúng tin. Tới bảng tiếp theo, có 2 trƣờng đóng vai trò khóa để xác định tính duy nhất của thông tin, ta lấy cả 2 trƣờng này để lấy giá trị làm thao số tìm kiếm định vị dữ liệu. Và lấy 1 trƣờng nữa để lấy dữ liệu nhúng tin.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.2.3: Giao diện xác định các trƣờng lấy thông tin

Với CSDL quản lý sinh viên minh đã dẫn dắt từ trƣớc thì các bảng: + “sinhvien” ta lấy “Idsinhvien” là trƣờng lấy giá trị làm tham số xác định dữ liệu, lấy “namCT” là trƣờng dùng cho mục đích nhúng tin vào.

+ “ketquahoctap” ta lấy 2 trƣờng “idsinhvien” và “idmonhoc” để lấy thông tin làm tham số xác định dữ liệu cho trƣờng “diem” để nhúng tin.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

KẾT LUẬN

Từ những kết quả đã nghiên cứu đƣợc trong luận văn cho phép rút ra những kết luận sau:

Trong thời gian qua, mặc dù có những hạn chế về mặt thời gian và điều kiện làm việc, tác giả đã hoàn thành mục tiêu luận văn, tìm hiểu và khai thác các kỹ thuật nhúng vào trong cơ sở dữ liệu quan hệ. Tôi xin đƣa ra một cách giải quyết mới, một cách đơn giản trong vấn đề nhúng tin để bảo vệ bản quyền CSDL. Tuy nhiên không có kỹ thuật nào có thể vƣợt qua đƣợc tất cả các tấn công, mỗi kỹ thuật đều có ƣu, nhƣợc điểm riêng và thông thƣờng chỉ chịu đƣợc một số tấn công nhất định. Và giải pháp tôi đƣa ra cũng có những ƣu điểm và nhựơc điểm khác nhau.

Ƣu điểm:

- Giải pháp mới trong luận văn này nêu ra có xây dựng bảng hợp để nhúng tin. Với bảng hợp ta có thể áp dụng nhiều giải thuật khác nhau trên ma trận để thực hiện giải thuật nhúng tin (giải nhúng).

- Do giải pháp đƣợc áp dụng trên ma trận, tƣơng tự nhƣ các điểm ảnh; do

đó có thể áp dụng một số giải thuật đã đƣợc áp dụng thành công trên ảnh số sang CSDL.

- Với giải pháp này khi CSDL nhúng tin bị tấn công, ta có thể không những vẫn lấy đƣợc các thông tin còn nguyên vẹn mà còn xác định đƣợc vị trí bị tấn công. Đây là một điều khá nổi bật ở giải pháp sử dụng bảng hợp.

Hạn chế:

- Với từng giải thuật nhúng tin đều có tính bền vững khác nhau, không thể trải qua đƣợc tất cả các tấn công từ bên ngoài.

- Giải pháp đang trong giai đoạn phát triển nên vẫn còn nhiều hạn chế về phạm vi, kích thƣớc dữ liệu.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Tiếp tục tìm hiểu và nghiên cứu sâu hơn về lĩnh vực nhúng tin vào CSDL.

- Thực hiện nhúng dữ liệu trên các định dạng dữ liệu khác nhau.

- Phát triển thuật toán trong sao cho có thể đảm bảo tính bền vững cao của

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

PHỤ LỤC

1. Mã xác thực thông tin (MAC)

Trong phân hoạch dữ liệu, mã xác thực thông tin (MAC) đƣợc sử dụng để xác định nguồn gốc của thông tin

Hình 4.1. Sơ đồ hoạt động của MAC

Ngƣời gửi thông điệp thực hiện thông qua một thuật toán MAC để sinh ra một thẻ dữ liệu MAC. Sau đó, thông điệp và thẻ MAC đƣợc gửi tới ngƣời nhận. Ngƣời nhận lần lƣợt tiến hành chia thông điệp để truyền thông qua một thuật toán tƣơng tự MAC sử dụng một khoá tƣơng tự, kết quả

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

đƣợc một thẻ dữ liệu MAC thứ hai. Khi đó, ngƣời nhận so sánh thẻ MAC đầu tiên nhận đƣợc trong quá trình truyền trƣớc đó với thẻ MAC sinh ra thứ hai. Nếu thấy giống nhau, ngƣời nhận có thể cho rằng là an toàn, tính toàn vẹn của thông điệp không bị xâm phạm và thông điệp không bị thay đổi trong quá trình truyền nhận

Xác thực bằng MAC

Trong đó:

M: Thông tin gốc

K: Khoá bí mật dùng chung giữa bên gửi và bên nhận

||: Nối mã xác thực vào thông tin gốc C: Hàm tạo mã xác thực Hình 4.2. Mô tả quá trình xác thực thông tin bằng MAC

2. Hàm băm

Khái niệm hàm băm

Hàm băm (hash function) là giải thuật nhằm sinh ra các giá trị băm tƣơng ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối tƣợng trong lập trình hƣớng đối tƣợng, v.v...). Giá trị băm đóng vai trò gần nhƣ một khóa để phân biệt các khối dữ liệu, tuy nhiên, ngƣời ta chấp nhận hiện tƣợng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giải thuật

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

để giảm thiểu sự đụng độ đó. Hàm băm thƣờng đƣợc dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thƣớc lớn).

Vì tính thông dụng của bảng băm, ngày nay, đa số ngôn ngữ lập trình đều cung cấp thƣ viện ứng dụng bảng băm, trong đó có các vấn đề nhƣ: tập hợp (collection), danh sách (list), bảng(table), ánh xạ (mapping), từ điển (dictionary)). Thông thƣờng, các lập trình viên chỉ cần viết hàm băm cho các đối tƣợng nhằm tích hợp với thƣ viện bảng băm đã đƣợc xây dựng sẵn.

Một hàm băm tốt phải thỏa mãn các điều kiện sau:

*Tính toán nhanh.

*Các khoá đƣợc phân bố đều trong bảng.

*Ít xảy ra đụng độ.

*Xử lý đƣợc các loại khóa có kiểu dữ liệu khác nhau.

Tính chất của hàm băm

Hai tính chất quan trọng của hàm băm là:

-Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả.

-Tính duy nhất: xác suất để có sự đụng độ (hash collision), tức là hai

thông điệp khác nhau có cùng một kết quả băm, là nhỏ.

Ứng dụng

Các hàm băm đƣợc ứng dụng trong nhiều lĩnh vực, chúng thƣờng đƣợc thiết kế phù hợp với từng ứng dụng. Ví dụ, các hàm băm mật mã học giả thiết sự tồn tại của một đối phƣơng - ngƣời có thể cố tình tìm các dữ liệu vào với cùng một giá trị băm. Một hàm băm tốt là một phép biến đổi "một chiều", nghĩa là không có một phƣơng pháp cụ thể để tính toán đƣợc dữ liệu vào nào đó tƣơng ứng với giá trị băm mong muốn, khi đó việc giả mạo sẽ rất khó khăn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Bảng băm, một ứng dụng quan trọng của các hàm băm, cho phép tra cứu nhanh một bản ghi dữ liệu nếu cho trƣớc khóa của bản ghi đó (Lƣu ý: các khóa này thƣờng không bí mật nhƣ trong mật mã học, nhƣng cả hai đều đƣợc dùng để "mở khóa" hoặc để truy nhập thông tin.) Ví dụ, các khóa trong một từ điển điện tử Anh-Anh có thể là các từ tiếng Anh, các bản ghi tƣơng ứng với chúng chứa các định nghĩa. Trong trƣờng hợp này, hàm băm phải ánh xạ các xâu chữ cái tới các chỉ mục của mảng nội bộ của bảng băm.

Các hàm băm dành cho việc phát hiện và sửa lỗi tập trung phân biệt các trƣờng hợp mà dữ liệu đã bị làm nhiễu bởi các quá trình ngẫu nhiên. Khi các hàm băm đƣợc dùng cho các giá trị tổng kiểm, giá trị băm tƣơng đối nhỏ có thể đƣợc dùng để kiểm chứng rằng một file dữ liệu có kích thƣớc tùy ý chƣa bị sửa đổi. Hàm băm đƣợc dùng để phát hiện lỗi truyền dữ liệu. Tại nơi gửi, hàm băm đƣợc tính cho dữ liệu đƣợc gửi, giá trị băm này đƣợc gửi cùng dữ liệu. Tại đầu nhận, hàm băm lại đƣợc tính lần nữa, nếu các giá trị băm không trùng nhau thì lỗi đã xảy ra ở đâu đó trong quá trình truyền. Việc này đƣợc gọi là kiểm tra dƣ thừa (redundancy check).

Các hàm băm còn đƣợc ứng dụng trong việc nhận dạng âm thanh, chẳng hạn nhƣ xác định xem một file MP3 có khớp với một file trong danh

Một phần của tài liệu Tìm hiểu kỹ thuật nhúng thông tin để bảo vệ bản quyền cơ sở dữ liệu quan hệ (Trang 54 - 71)

Tải bản đầy đủ (PDF)

(71 trang)