.Tạo và trao đổi khóa

Một phần của tài liệu (Luận án tiến sĩ) Nghiên cứu, phát triển phương pháp phát hiện và xử lý tấn công hố đen vào giao thức định tuyến RPL (Trang 57)

Khóa là một giá trị làm việc với một thuật toán mã hóa để tạo ra một bản mã cụ thể về cơ bản khóa là những con số rất lớn. Trong các thuật toán mã hóa, độ dài khóa càng lớn thì có nghĩa là tính bảo mật càng cao. Cách tạo và trao đổi khóa này, cho phép bên gửi và bên nhận cùng thiết lập một khóa bí mật trên một kênh không an toàn. Khóa này có thể được sử dụng cho một hệ mã hóa khóa đối xứng. Các đặc điểm kỹ thuật được thể hiện từng bước mã hóa và xác thực một gói tin; NaCl có thể tính toán gói tin theo một cách khác nhau nhưng cho kết quả chính xác như nhau.

Thiết lập khóa:

 A tạo 32–bytes khóa bí mật và khóa công khai 32–bytes A. Các khóa này có thể được sử dụng lại cho các gói tin khác cho B, gói tin được gửi đến người nhận khác và gói tin được gửi lại từ người nhận.

 Tiếp tục, B cũng tạo 32–bytes khóa bí mật và khóa công khai 32–bytes B. Các khóa này có thể được sử dụng lại cho các gói tin khác từ A, đối với các gói tin từ người gửi khác và các gói tin gửi lại cho người gửi.

 A, sử dụng khóa bí mật của A và khóa công khai của B, tính toán khóa bí mật 32–bytes. B có thể tính toán cùng một khóa bí mật bằng cách sử dụng khóa bí mật của B và khóa công khai của A.

Các bước mô tả gói tin:

 A sử dụng một giá trị nonce 24 bytes (số gói tin duy nhất), n không bao giờ được sử dụng lại cho các gói tin khác cho hoặc từ B, triển khai chia sẻ khóa bí mật k trong một chuỗi các byte bí mật. B đưa ra giá trị nonce có thể được tính toán cùng một chuỗi.

 A sử dụng chuỗi, ngoại trừ 32 bytes đầu tiên để mã hóa gói tin m.

 Tiếp tục, A sử dụng 32 bytes đầu tiên của chuỗi để tính toán xác thực gói tin được mã hóa.

2.3.3.4. Mô hình mã hóa xác thựcSalsa20-Poly1305

Salsa20-Poly1305 cung cấp tính bảo mật, tính toàn vẹn và tính xác thực cho các gói dữ liệu. Salsa20 sử dụng để mã hóa và Poly1305 để xác thực bản tin. Đối với tính toàn vện và tính xác thực dữ liệu, nếu chỉ có mã hóa không thì chưa đủ để bảo mật và trên thực tế đã chỉ ra rằng nếu chỉ sử dụng mã hóa mà không xác thực thì sẽ không đảm bảo an toàn vì thế ngoài việc mã hóa cần có cơ chế xác thực thông điệp.

45

Quy trình mã hóa xác thực của Salsa20-Poly1305 được thể hiện tại hình 2.1 như sau:  Bên gửi A có cặp khóa (KRA, KUA) và bên nhận B có cặp khóa (KRB, KUB) lần

lượt là cặp khóa bí mật và khóa công khai có kích thước 32 bytes được tạo ra bởi hàm Curve25519.

 Giá trị n (nonce) có kích thước 24 bytes duy nhất trên mỗi gói tin.  Độ dài các tham số trong sơ đồ được tính theo byte.

Quy trình mã hóa bản tinđược thực hiện như sau:

 A truyền khóa bí mật KRA của A và khóa công khai KUB của B vào hàm Curve25519 để tính toán giá trị khóa k dùng chung (32 bytes) theo giao thức thống nhất khóa Diffie-Hellman.

 A truyền khóa dùng chung k và nonce vào hàm mã hóa dòng Salsa20 thu được hai tham số r (16 bytes), s (16 bytes) và một dòng khóa (key stream).

 Key Stream đem XOR với bản rõ thu được bản mã có độ dài bằng bản rõ.  A truyền khóa r (16 bytes), s (16 bytes) và bản mã vào hàm Poly1305 để tính

mã xác thực thông điệp (MAC) có kích thước 16 bytes.

 Cuối cùng, gắn thông điệp đã được mã hóa vào sau mã MAC và gửi thông điệp trên đường truyền an toàn.

Quy trình xác thực bản tinđược thực hiện như sau:

 B truyền khóa bí mật KRB của B và khóa công khai KUA của A vào hàm Curve25519 để tính toán giá trị khóa k dùng chung (32 bytes) theo giao thức thống nhất khóa Diffie-Hellman.

 B tryền giá trị khóa dùng chung k và nonce vào hàm mã hóa dòng Salsa20 thu được hai tham số r (16 bytes), s (16 bytes) và một dòng khóa (key stream).  B truyền khóa r (16 bytes), s (16 bytes) và bản mã vào hàm Poly 1305 để tính

mã xác thực thông điệp (MAC’) có kích thước 16 bytes.

 Tách 16 bytes đầu trong bản tin mã hóa mà B nhận được và đem so sánh với mã MAC’ vừa tính toán được ở trên. Nếu MAC=MAC’ thì có nghĩa là bản tin mã hóa không bị thay đổi, đem key stream XOR với bản mã (lấy từ byte thứ 17 của bản tin mã hóa mà bên B nhận được) thu được bản rõ có độ dài bằng bản mã. Ngược lại, nếu MAC ≠ MAC’ thì có nghĩa là bản tin mã hóa nhận được đã bị thay đổi trên đường truyền, có thể bỏ qua việc giải mã gói tin.

46

Hình 2.1Mô hình mã hóa xác thựcSalsa20-Poly1305

2.3.3.5.Phân tích độ an toàn của Salsa20-Poly1305

Thuật toán Salsa20-Poly1305 có khả năng bảo mật và phòng chống các loại tấn công cụ thể như sau:

 Salsa20-Poly1305 có thể chống lại tấn công phát lại (Replay attack) và tấn công từ chối dịch vụ(DoS). Do trên mỗi gói tin đều có một giá trị nonce chỉ được sử dụng đúng một lần nên đảm bảo không bao giờ có 2 gói tin nào giống nhau được gửi trên đường truyền và tránh cuộc tấn công trung gian bắt và phát lại các gói tin đã trao đổi trước đó cũng như sinh một số lượng lớn gói tin.

 Tính mã MAC dựa trên bản mã giúp tránh lộ bản rõ do giá trị MAC sẽ không mang bất kỳ thông tin nào về cấu trúc của bản rõ.

n=(n 1, n 2)=(16,8) Dữ liệu mã hóa Bản mã Poly1305 Salsa20 Curve25519 K RA K UB r(16) s(16) Stream + Bản rõ MAC(16) Bản mã Curve25519 K RB K UA k (32) Dữ liệu mã hóa MAC(16) Bản mã Salsa20 r(16) s(16) Stream MAC=MAC’ Poly1305 MAC’(16) + Bản rõ Truyền tin

Bên gửi Bên nhận

Sai

Đúng

47

 Giúp chống lại các cuộc tấn công chọn sẵn bản mã, bên gửi sẽ chỉ giải mã những bản mã nào là hợp lệ (phù hợp với giá trị MAC nhận được).

 Kẻ tấn công dù biết n, bản mã nhưng không thể tính toán được cặp giá trị (MAC, thông điệp) giả mạo bởi chúng không biết khóa chia sẻ trước. Độ an toàn phụ thuộc vào hàm sinh khóa bất đối xứng trên đường con eliptic Curve25519 và giao thức thống nhất khóa Difflie-Hellman.

2.4. So sánh đánh giá cơ chế mã hóa xác thực AES-CCM, AES-GCM với Salsa20-Poly1305 GCM với Salsa20-Poly1305

Trong phần này, tác giả đã so sánh đánh giá những ưu, nhược điểm của một số cơ chế mã hóa xác thực khác nhau dựa trên tính ứng dụng của thuật toán để lựa chọn thuật toán phù hợp cho hướng nghiên cứu. Tác giả đã đánh giá dựa trên hai tiêu chí về độ an toàn và tài nguyên mạng của các thuật toán như sau:

2.4.1. Độ an toàn

Phần so sánh các thuật toán AES-CCM, AES-GCM và Salsa20-Poly1305 dựa trên tính ứng dụng của thuật toán. Đây là những thuật toán mã hóa xác thực đã được sử dụng phổ biến. Theo đánh giá các tham số của các thuật toán mã hóa xác thực tại bảng 2.1. Tác giả có thể rút ra các kết luận như sau:

AES-CCM [45] là tiêu chuẩn được biết đến với cơ chế mật mã khối đối xứng sử dụng kích thước khóa 256 bits. AES-CCM là tiêu chuẩn mã hóa xác thực dựa trên cấu trúc quản lý khóa. Trong thuật toán này, bản rõ được chia thành các mật mã khối có kích thước 128 bits. Các chế độ hoạt động được sử dụng trong AES-CCM là chế độ bộ đếm (CTR) với chuỗi khối mật mã và mã xác thực bản tin (CBC-MAC). Chúng thực hiện các chức năng tạo mã hóa và giải mã xác thực. Tính năng bảo mật đạt được trong chế độ CTR bởi AES và xác thực đạt được trong CBC-MAC với giá trị MAC được tạo ra. AES-CCM có giá trị nonce độ dài 96 bits khả năng lặp lại giá trị nonce cao ảnh hưởng tới độ bảo mật khi truyền bản tin trên mạng.

AES-GCM được thiết kế để bảo mật chống lại các cuộc tấn công bản mã, thuật toán AES-GCM sử dụng mã hóa khối AES để tăng cường tính bảo mật và tính xác thực. Thuật toán AES- GCM chấp nhận một khóa có cùng kích thước 256 bits với mã hóa cơ bản, 96 bits nonce và hoạt động với 128-bitskhối. AES-GCM dựa trên chế độ CTR, trong chế độ này, nếu khóa / vectơ khởi tạo (IV) được sử dụng lặp lại thì kẻ tấn công có thể giải mã khóa, gây ảnh hưởng đến cấp độ bảo mật bản rõ và giảm thiểu tính bảo mật của các bản tin được truyền trên mạng trong RFC 5084 [52].

Độ an toàn của Salsa20-Poly1305 đã được đề cập chi tiết trong hai công trình công bố của Bernstein năm 2011 [49] và 2005 [50] là sự kết hợp giữa Salsa20 và Poly1305. Salsa20 [49] được sử dụng để mã hóa và được thiết kế để cung cấp bảo

48

mật 256 bits cho phép sử dụng các khóa khác nhau. Salsa20 mã hóa một gói tin có độ dài 256 bits bằng cách sử dụng độ dài nonce 192 bits được tạo ngẫu nhiên với độ dài bộ đếm cũng như các số vòng khác nhau và độ dài khóa bí mật 256 bits. Giả định bảo mật của Salsa20 có khả năng tạo ra các bản mã không thể phân biệt được với các bản mã hoàn hảo. Poly1305 [50] được sử dụng để xác thực bản tin, Poly1305 có thể bảo mật xác thực bản tin giống như cấp độ bảo mật tương tự như mã hóa AES-CCM, AES-GCM. Tuy nhiên, mã hóa Poly 1305 đảm bảo không thể mã hóa hai bản rõ khác nhau trong cùng một bản mã. Khoảng cách bảo mật tối đa là 14D [L/16]/2106, trong đó D là số nút giả mạo và kẻ tấn công nhìn thấy 264 được xác thực bản tin, được tính bằng cách sử dụng bản tin L-byte. Ngoài ra, thuật toán Poly 1305 dễ triển khai với tốc độ mã hóa nhanh và chi phí thấp.

Độ dài của các tham số sử dụng trong các thuật toán được diễn tả trong bảng 2.1. Chúng ta biết rằng, mã hóa AES- CCM và AES-GCM là hai thuật toán dùng để xác thực bản tin được sử dụng rộng rãi. Tuy nhiên, những nhược điểm của hai thuật toán này là đều sử dụng giá trị nonce 96 bits cho nên khả năng lặp lại cao có thể dẫn đến gây ra xung đột và ảnh hưởng tới độ bảo mật bản tin. Còn đối với thuật toán Salsa20-Poly1305 dựa trên Poly1305 để xác thực và mã hóa Salsa20. Thuật toán Salsa20-Poly1305 sử dụng 256 bits khóa tương tự hai thuật toán mã hóa trên nhưng độ dài khối 512 bits và độ dài nonce 192 bits lớn hơn so với thuật toán AES-CCM và AES-GCM cho nên thuật toán Salsa20-Poly1305 mang lại tính bảo mật tốt hơn. Vì vậy, chúng ta có thể kết luận rằng, thuật toán Salsa20-Poly1305 có thể sử dụng để mã hóa/giải mã bản tin thay thế cho thuật toán AES-CCM và AES-GCM về bảo mật an toàn dữ liệu.

Bảng 2.1 So sánh các cơ chế mã hóa xác thực dựa trên các chỉ số khác nhau như vectơ khởi tạo (IV), độ dài khóa (Key size), độ dài khối (Block size), nonce

Mã hóa xác thực

Vectơ khởi tạo (bits) Độ dài khóa (bits) Độ dài khối (bits) Nonce (bits) AES-CCM 64 256 128 96 AES-GCM 64 256 128 96 Salsa20-Poly1305 128 256 512 192 2.4.2. Tài nguyên mạng

Trong phần này, tác giả đã tập hợp các công trình nghiên cứu thử nghiệm liên quan đã được công bố trước đây về so sánh hiệu suất của các thuật toán mã hóa xác thực dựa trên tài nguyên mạng. Ngoài ra, tác giả cũng đã tự thực nghiệm so sánh các

49

cơ chế mã hóa xác thực trên các thiết bị khác nhau để có cơ sở đề xuất sử dụng thuật toán làm tiền đề cho nghiên cứu này.

Trong bài báo [53], đã đánh giá khả năng ứng dụng của các thuật toán trên IoT, Salsa20-Poly1305 đã được triển khai cho bộ xử lý ARM Cortex–M4. Kết quả cho thấy thuật toán Salsa20-Poly1305 nhanh hơn AES-CCM và AES-GCM.

Trong nghiên cứu [54], [55], đã đề xuất thực hiện một so sánh giữa AES-CCM và AES-GCM để kiểm tra xem chế độ hoạt động nào có hiệu suất tốt hơn. Kết quả đã cho thấy AES-GCM nhanh hơn AES-CCM khi nói đến hiệu suất mạng. Ngoài ra, AES-GCM khả thi hơn khi được sử dụng trong các ứng dụng mà hiệu suất là mối quan tâm chính.

Tác giả Islam và cộng sự [56], đã so sánh về độ trễ truyền dữ liệu giữa AES- GCM và Salsa20-Poly1305 trên các nền tảng hạn chế tài nguyên mạng được tích hợp với giao thức DTLS. Kết quả cho thấy, thuật toán Salsa20-Poly1305 nhanh hơn thuật toán AES-GCM cấp ba lần về mã hóa và giải mã. Bởi vì thuật toán Salsa20-Poly1305 cung cấp mã hóa khóa 256-bits, sử dụng ít thời gian hơn để giải mã có thể được hiển thị nhanh. Salsa20-Poly1305 cũng có thể tiết kiệm năng lượng khi các gói dữ liệu được trao đổi giữa các hops trong mạng cảm biến được triển khai trong trình mô phỏng cooja được phân tích rộng rãi. Kết quả cho thấy độ trễ truyền dữ liệu trong hệ thống đã triển khai giảm từ 42.5% đến 50%–56%.

Các công trình nghiên cứu trên cho thấy, thuật toán Salsa20-Poly1305 có thể giảm thiểu chi phí hiệu suất mạng, cho phép triển khai nhanh hơn và đạt hiệu suất cao hơn so với AES-CCM và AES-GCM. Điều đó cho thấy sử dụng Salsa20-Poly1305 có kết quả xử lý ấn tượng và truyền dữ liệu bằng thuật toán Salsa20-Poly1305 đạt hiệu quả tốt và nhanh hơn so với AES-CCM và AES-GCM.

Ngoài các kết quả nghiên cứu trên, tác giả đã tiến hành thực nghiệm về mặt thời gian và mức tiêu hao năng lượng liên quan đến chức năng mã hóa / giải mã trên một số các thiết bị IoT khác nhau, gồm có Zolertia Z1 [57], Tmote Sky [58] và WiSMote [59]. Đây là các thiết bị IoT được sử dụng phổ biến trong môi trường mạng cảm biến không dây. Đối với phần thực nghiệm này có thể được sử dụng để làm như một thước đo mức tiêu hao năng lượng cho các thiết bị di động khác nhau, các kết quả thực nghiệm cụ thể tại bảng 2.2 dưới đây.

50

Bảng 2.2 Thời gian và mức tiêu thụ năng lượng liên quan đến các chức năng mã hóa và

giải mã trên các thiết bị cảm biến khác nhau.

Salsa20- Poly1305

Mã hóa Giải mã

Z1 mote Tmote

Sky WiSMote Z1 mote

Tmote

Sky WiSMote

Thời gian (ms) 33 45 10 55 79 17

Năng lượng

(mJ) 0.04 0.24 0.67 0.07 0.42 1.12

Trong bảng 2.2, chúng ta có thể thấy những mối quan hệ giữa thời gian mã hóa, giải mã và mức tiêu hao năng lượng của các thiết bị IoT khác nhau như sau:

 Thời gian mã hóa và giải mã của thiết bị WiSMote là nhanh nhất nhưng cũng tiêu tốn nhiều năng lượng nhất so với các thiết bị khác.

 Thiết bị TmoteSky tốn nhiều thời gian mã hóa và giải mã nhất.  Thiết bị Z1mote tiết kiệm năng lượng nhất so với các thiết bị khác.

Do vậy, qua việc thực hiện các tham số kết quả trên, chúng ta có thể thấy rằng thuật toán Salsa20-Poly1305 có thời gian mã hóa và giải mã trên các thiết bị đều có tốc độ nhanh và ngược lại mức tiêu hao năng lượng mạng ít.

Bên cạnh đó, tác giả đã thực hiện so sánh giữa thuật toán Salsa20-Poly1305 và AES-CCM với ngữ cảnh mô phỏng ở đây được thực hiện trong môi trường mô phỏng COOJA trong ContikiOS, chương trình mã hóa /giải mã được cài đặt trên một phần mềm và chạy trên thiết bị WisMote. Trong đó, môi trường mô phỏng thì thời gian được lấy trong chương trình mô phỏng là COOJA, hàm năng lượng sử dụng công thức tính toán dựa theo môi trường trong Contiki đối với thiết bị mô phỏng WisMote, các kết quả đã được thể hiện tại bảng 2.3 như sau:

Bảng 2.3 So sánh Salsa20-Poly1305 với AES-CCM về thời gian và mức tiêu thụ năng lượng liên quan đến các chức năng mã hóa và giải mã trên thiết bị WiSMote

Thuật toán mã hóa xác thực Mã hóa Giải mã Thời gian

Một phần của tài liệu (Luận án tiến sĩ) Nghiên cứu, phát triển phương pháp phát hiện và xử lý tấn công hố đen vào giao thức định tuyến RPL (Trang 57)

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

(117 trang)