BÀI TOÁN, CƠ SỞ LÝ THUYẾT, PHƯƠNG PHAP ĐỀ XUẤT

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Bảo mật dữ liệu cho phương pháp đối sánh mẫu nhanh trên thiết bị IoT (Trang 38 - 45)

HINH 3.2: Ham compress trong thuật toán SHA-256. Trong đó W; là từ thứ t, K;

là một hang sé.

e Gia sử D là dữ liệu đầu vào và được chia thành N khối kích thước 512 bit, khối

thứ i được ký hiệu là D,

ô Từ thứ j của khối thứ i được ký hiệu là Dị,.

¢ Quá trình băm được biểu điễn như sau:

function SHA256(D)

xX + Xo

¡0 while i < N do

/c0

while j < 64 do

X < compress(D ĩj+1

end while

it i+l1 end while

ij X)

26

Chương 3. BÀI TOÁN, CƠ SỞ LÝ THUYẾT, PHƯƠNG PHAP ĐỀ XUẤT

return X end function

© Trong đó, X là một tập hợp gồm 8 giá trị 4 byte, ký hiệu lần lượt là A, B, C, D,

E,F, G, H. Các giá trị này được khởi tạo dựa trên các giá trị chuẩn của thuật toán SHA-256. Ham compress trong thuật toán trên được mô tả ở hình|3.2|

3.2.3. Xác thực tính toàn vẹn của dư liệu

HÌNH 3.3: Phương pháp đảm bảo tính toàn vẹn do sự cố dựa trên checksum

của một gói tin TCP.

Có nhiều phương pháp để kiểm tra tính toàn vẹn của đữ liệu, nhưng phương pháp phổ biến nhất là sử dụng hàm băm. Tùy thuộc vào giao thức mà cách thức sử dụng hàm băm để kiểm tra cũng khác nhau. Chẳng hạn để kiểm tra nội dung của gói tin

có bị thay đổi do sự có hay không, người ta thường đính kèm gói tin với giá trị hàm

băm của gói tin đó và kiểm tra nó ở nơi nhận (hình (3.3). Tuy nhién, phuong phap

này không hiệu quả đối với bai toán nội dung gói tin bi thay đổi do có ý. Những bài toán này cần phương pháp phức tạp hơn, chẳng hạn sử dụng HMAC như trong

27

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

message message

Z ` Z

HINH 3.4: Phương pháp đảm bao tính toàn vẹn của gói tin sử dụng HMAC.

hình

Trong bài toán của chúng tôi, dữ liệu được lưu trữ ở máy chủ đám mây và chúng tôi

muốn kiểm tra tính toàn vẹn của dữ liệu này trước khi thực hiện các thao tác với nó. Các cách đơn giản nhất được đề ra là:

1. Máy khách tải vé đữ liệu va tự tính toán giá trị hàm băm.

2. Yêu cầu máy chủ đám mây tính toán giá trị hàm băm và gửi nó cho máy khách.

Đối với cách thứ nhất, tải về dữ liệu sẽ tiêu tốn một lượng băng thông và tài nguyên tính toán lớn đối với máy khách, đặc biệt hơn khi các máy khách trong bài toán của chúng tôi là những thiết bi IoT. Cách thứ hai sẽ đảm bảo giảm tải được băng thông, tuy nhiên vẫn yêu cau tính toán nhiều ở máy chủ. Hơn nữa nhà cung cấp dịch vụ đám mây có thể sử dụng phương pháp replay-attack để đánh lừa người dùng về sự toàn vẹn của dữ liệu, do giá trị hàm băm của một tệp tin là không đổi.

3.2.4 Kỹ thuật kiểm tra tính toàn ven an toàn

Trong phần này, chúng tôi mô tả phương pháp yêu cầu máy chủ đám mây tính toán

giá trị hàm băm mà vẫn có thể chống lại các cuộc tấn công replay-attack. Ateniese

và cộng sự 6| đề xuất thêm một giá trị đặc biệt vào dữ liệu trước khi tính toán giá

trị hàm băm, giá trị này được gọi là nonce. nonce là một giá trị ngẫu nhiên được sinh

ra bởi máy khách mỗi lần nó cần tính toán giá trị hàm băm, điều này dẫn đến giá

28

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

trị hàm băm sẽ luôn thay đổi. Giá trị này chỉ được máy chủ biết đến khi nó được yêu cầu chứng minh sự toàn vẹn của dữ liệu. Phương pháp dé xuất của Ateniese và

cộng sự được tóm gọn như sau:

nonce ‹*- {0,1}!

digest = hash(nonce + data)

Cu thé, trước khi gửi dữ liệu lên máy chu, Alice cần tinh toán một số giá tri digest của dữ liệu đó với các giá trị nonce ngẫu nhiên. Cô ấy cần giữ bí mật các giá trị này với máy chủ. Khi cần xác thực tính toàn vẹn, Alice chọn một cặp nonce và digest bat

kỳ, sau đó gửi nonce đến máy chủ đám mây và yêu cầu nó tinh toán lai digest bang công thức trên. Nếu kết quả của máy chủ giống với kết quả đã tính toán trước, dữ liệu đã được chứng minh là toàn vẹn. Ngược lại, Alice có thể phát hiện dữ liệu của mình bị hỏng. Vì nonce được sinh ra ngẫu nhiên và khác nhau với mỗi lần xác thực,

nó có thể chống lại replay-attack. Lưu ý rằng ta không được dùng lại các giá trị nonce

đã được sử dụng. Sau khi sử dụng hết các cặp nonce và digest đã được tính trước ở máy cục bô, chúng ta cần tải lại di liệu và tính thêm các cặp giá trị mới cho những lần xác thực tiếp theo.

3.2.5 Kiểm tra tính toàn ven mang tính xác suất

Mặc dù chúng ta có thể xác thực toàn bộ dữ liệu, điều này rất tốn tài nguyên để tính

toán các thông tin xác thực. Ateniese và cộng sự l6] đã đề xuất phương pháp sử

dụng ít chi phí tính toán hơn bằng cách chỉ xác thực một phần của dữ liệu. Dữ liệu được chia thành nhiều khối nhỏ; máy khách chỉ yêu cầu máy chủ chứng minh sự toàn vẹn của một số khối mà nó chọn. Các tác giả cho biết, nếu dữ liệu được chia thành 10,000 khối và người xác thực yêu cầu bằng chứng của 460 khối (4.6% của 10,000), thì khả năng người này có thể phát hiện được sự thay đổi của 100 khối (1%

của 10,000) là 99%.

Trong nghiên cứu này, chúng tôi sẽ áp dung các phương pháp được dé xuất bởi

Ateniese và cộng sự [6] vào bài toán xác thực dữ liệu của chúng tôi. Gọi:

¢ Dla dit liệu và được đại điện bởi đ khối có kích thước bằng nhau: D[1], D[2],

..„ Did).

29

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

® SHẶ) là hàm băm SHA-256.

® nonce là một giá trị được tạo ngẫu nhiên bởi máy khách.

đ I =i,ù›,...,1„ là danh sỏch cỏc khối được chọn dộ chứng minh tớnh toàn vẹn.

Trong đó, r là số lượng khối cần chứng minh. Giống với nonce, I cũng được tao ngẫu nhiên bởi máy khách.

Máy khách cần tính toán digest bằng công thức sau:

digest = SHA(nonce, Dị¡|, Dịi] ..., Dị¡;])

Trong đó, các dau phẩy được coi là phép nối dữ liệu. Trong hướng tiếp cận nay, các

dữ liệu bí mật được lưu trữ ở máy cục bộ bao gồm nonce, I và digest. Máy khách cần

gửi nonce và I khi cần xác thực tính toàn ven của dit liệu. Các bước tiếp theo trong

giao thức được thực hiện giống với phẩn|3.2.4|

3.2.6 Đối sánh mẫu với phép toán XOR

Có nhiều thuật toán đối sánh mẫu đã được đề xuất, tuy nhiên, chúng tôi sẽ sử dụng phương pháp cơ bản nhất với toán tử XOR. Thuật toán này sẽ so sánh từng byte giữa hai mẫu đữ liệu với nhau. Nếu hai byte giống nhau, kết quả của phép toán XOR trên hai byte đó là 0, ngược lại là một số khác 0. Để tính toán được độ tương đồng giữa hai mẫu, ta cần đếm số lượng byte có giá trị là 0 trong kết quả phép XOR và chia nó

cho kích thước của mẫu. Chúng tôi trình bày công thức của thuật toán như sau:

counto(Pị @ Pạ)

size(P) í

similarity =

trong đó, Pị và P là hai mẫu, size(P) là kích thước của mẫu P; và nó cũng bằng với kích thước của mẫu P; (để đơn giản hóa, chúng tôi giả định kích thước của hai mẫu

là bằng nhau). Phép toán XOR là phép toán đặt biệt, nó có thể tương tác tốt với chế

độ CTR của mã hóa khối và là trọng điểm trong nghiên cứu của chúng tôi. Thêm vào đó, nó cũng có hai tính chất đơn giản nhưng thú vị mà chúng tôi sẽ sử dụng

30

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

trong mô hình dé xuất, đó là:

0@a=a

(3.1) a@a=0

3.3. Phương pháp đề xuất

Trong phần này, chúng tôi dé xuất mô hình đối sánh mẫu an toàn gồm ba giao thức

sau:

1. Giao thức tải lên dữ liệu: mô tả cách chủ sở hữu dữ liệu mã hóa, sinh dữ liệu

xác thực và tải dữ liệu lên máy chủ đám mây.

2. Giao thức kiểm tra tính toàn vẹn: giúp máy khách kiểm tra dữ liệu có bị thay

đổi hay không, chuẩn bị cho quá trình đối sánh mẫu.

3. Giao thức đối sánh mẫu an toàn: mô tả cách máy chủ thực hiện đối sánh mẫu

trên các dữ liệu đã bị mã hóa được lưu trữ ở dịch vụ đám mây.

3.3.1 Ký hiệu

Đầu tiên, chúng tôi sẽ liệt kê các ký hiệu được sử dụng trong các mô hình đề xuất.

® klà khóa bí mật của Alice.

® Dy, là dữ liệu của Alice và Dp là dữ liệu của Bob. Chúng có cùng kích thước và

có thể được biểu diễn dưới dạng tập hợp đ khối bằng nhau: D¡ [1],..., D¡|[đ] và

D;[1|,..., Dạ|đ].

® SHẶ) là hàm băm mật mã SHA-256.

© AES,(.) là phép mã hóa bằng thuật toán AES-256 với counter mode và khóa k.

¢ RNG() là một hàm sinh số ngẫu nhiên.

® RPG,(r) là một ham sinh hoán vị ngẫu nhiên. Nó có thể sinh ra một tổ hợp

chập r cua tập hợp {1,..., 4}.

31

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

3.3.2 Giao thức tải lên dữ liệu

(1) Encrypt the data

(2) Randomly generate the nonce and indices

©

(3) Compute the digest

ơ

\

CSP

DATA OWNER _ (°°) Upload the encrypted data dk

® i =Q

(4) Keep the nonce, indices and digest at local

HINH 3.5: Giao thức tải lên dữ liệu

Trong phần này, Alice muốn tải dữ liệu Dị lên máy chủ đám mây. Đầu tiên, cô ấy cần sinh ra một số dữ liệu xác thực Proof theo các bước dưới đây:

1. AES,(Dị) > DJ.

2. RNG() —> nonce.

3. RPGa(r) > I = {ủ,...,ớ„}, với r là số lượng khối dữ liệu cần được chứng

minh.

4. SHA(nonce, D‡[i4],..., Di [í„]) —> digest.

5. Proof = {nonce, I, digest}.

32

Chương 3. BÀI TOÁN, CO SO LY THUYET, PHƯƠNG PHAP ĐỀ XUẤT

Sau đó, Alice chỉ gửi dữ liệu đã mã hóa D} lên CSP và có thể xóa đi dữ liệu gốc DỊ. Các dữ liệu xác thực Proof cần được giữ bí mật với máy chủ đám mây và lưu trữ ở máy cục bộ cho việc kiểm tra tính toàn vẹn của dữ liệu trong tương lai.

3.3.3. Giao thức kiểm tra tính toàn vẹn dữ liệu

(1) Send the nonce and indices as = (2) Compue Ae digest with the

the challenge allenge

„( CSP `

©

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Bảo mật dữ liệu cho phương pháp đối sánh mẫu nhanh trên thiết bị IoT (Trang 38 - 45)

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

(71 trang)