.2 8 Lw-TLS Record Payload của giao thức Handshake

Một phần của tài liệu Xây dựng hệ cơ sở dữ liệu TinySQL cho mạng cảm biến không dây có bảo mật kênh truyền (Trang 70)

4.7.5 Mã hóa và giải mã dữ liệu

Kênh liên lạc của các thiết bị trong mạng cảm biến không dây được đảm bảo các yếu tố bảo mật gờm tính riêng tư (confidentiality), tính khơng thể chối từ (integrity), tính xác thực (authentication), tính sẵn sàng (availability). Trong quá trình thực hiện câu truy vấn của cơ sở dữ liệu TinySQL, việc đảm bảo tính bảo mật được thực hiện bằng cách thực hiện mã hóa câu truy vấn và nội dụng phản hồi bằng thuật toán AES 128 dùng Session Key đã được trao đổi một cách an tồn giữa 2 bên thơng qua giao thức Handshake, việc này sẽ ngăn bên thứ 3 có thể nghe lén và đọc được dữ liệu truy vấn cơ sở dữ liệu. Quá trình xác thực được thực hiện bằng việc chèn thêm một đoạn mã MAC (Message Authentication

Trang 56

Code) vào phía sau mỗi tin được gửi đi. Đoạn MAC này được tính bằng hàm HMAC đoạn dữ liệu gồm Lw-TLS Record header và Payload chứa dữ liệu được mã hóa. Câu lệnh truy vấn và dữ liệu trả về chỉ được cơng nhận khi việc kiểm tra gói MAC cho kết quả hợp lệ. Để chống lại kiểu tấn công DoS, khi kẻ tấn công gửi lại liên tục những câu truy vấn hợp lệ của một Client Node đã gửi trước đó tới Server Node, việc kiểm tra Sequence Number sẽ giúp ngăn chặn việc này.

Esyn(Ses sion-Key, Respon se)||MAC Esyn(Session-Key , Response)||MA C Esyn(Session-Key , Response)||MA C Esyn(Session-Key , Response)||MA C Query Database Esyn(Sessi on-Key, Qu ery)||MAC Server Client Data MAC

Data: Câu truy vấn được mã hóa

bằng mã hóa AES 128. dùng Session- Key

MAC: đoạn code xác thực cho cả gói

tin của giao thức Leightweight TLS

Data: Dữ liệu trả về được mã hóa

bằng mã hóa AES 128, dùng Session- Key

MAC: đoạn code xác thực cho cả gói

tin của giao thức Leightweight TLS

Record Header Data MAC Record Header Data MAC Record Header Data MAC Record Header Data MAC Record Header

Hình 4. 29 – Q trình Mã hóa và giải mã dữ liệu

4.7.6 Cơ chế xử lý lỗi và chống tấn công

Gói tin truyền bị mất trong q trình thực hiện giao thức Handshake:

Trước khi gửi mỗi gói tin, Client node sẽ bật một timer có thời hạn 60 giây. Nếu như Client node khơng nhận được gói tin phản hồi trước khi timer timeout, Client node sẽ thực hiện lại giao thức Handshake.

Trang 57

Gói tin truyền bị lỗi trong q trình thực hiện giao thức Handshake:

Nếu như Server Node nhận được một gói tin bị lỗi, bên nhận sau khi tính tốn và kiểm tra sẽ cho kết quả không hợp lệ và sẽ gửi lại gói Alert tới Client Node. Client Node sẽ thực hiện lại giao thức Handshake. Trong trường hợp Client Node nhận gói tin bị lỗi, Client Node cũng sẽ thực hiện lại giao thức Handshake.

Chống DoS:

Trong trường hợp kẻ tấn công muốn làm cạn kiệt tài nguyên của các thiết bị cảm biến bằng cách gửi liên tục các yêu cầu khởi tạo kết nối tới Server Node, việc này sẽ được hạn chế bằng cách kiểm tra Session ID trong gói Hello nhận được. Nếu Session ID này bằng với Session ID của kết nối hiện tại của Server Node, thì giao thức Handshake mới thực hiện các bước tiếp theo. Nếu Session ID khơng hợp lệ, Server Node sẽ hủy gói tin này và khơng có phản hồi nào.

Replay Attack:

Trong trường hợp kẻ tấn công thực hiện sao chép các gói tin hợp lệ của Client Node đã gửi đi trước đó để gửi lại, việc kiểm tra sequence number của gói tin sẽ giúp chống lại kiểu tấn công này.

4.7.7 Giao thức Rime dùng để truyền dữ liệu trong mạng cảm biến hỗ trợ TinySQL trợ TinySQL

Rime là giao thức được dùng để truyền tin trong mạng cảm biến không dây sử dụng TinySQL. Rime là giao thức giao tiếp có kiến trúc theo lớp xếp chồng (layered communication stack) được thiết kế dành cho mạng cảm biến không dây, và kích thước nhỏ gọn hơn so với kiến trúc của giao thức mạng thông thường. Giao thức Rime hoạt động ở tầng mạng (network layer) cho phép đơn giản hoá việc triển khai mạng cảm biến không dây trong thực tế, và sử dụng rất ít tài nguyên của thiết bị cảm biến.

Trang 58

Giao thức Rime được sắp xếp thành các lớp nhỏ như trong hình 4.28. Tại mỗi lớp sẽ thêm đoạn header của mình vào thơng điệp trước khi gửi đi. Mỗi đoạn header có kích thước rất nhỏ chỉ vài byte.

Hình 4. 30 - Rime Stack [24]

Rime hỗ trợ phương thức truyền tin cậy được hỗ trợ bởi 2 lớp phụ. Một lớp có nhiệm vụ thực hiện xác nhận gói tin đã truyền thành cơng (ACK) và một lớp kiểm tra số thứ tự (sequencing) của gói tin được gọi là lớp Reliable transmission. Một lớp có nhiệm vụ thực hiện gửi lại thơng điệp cho đến khi lớp cao hơn yêu cầu dừng lại được gọi là lớp Stubborn stransmission. Lớp Stubborn Transmission cịn được dùng để gửi các thơng điệp định kỳ để duy trì kết nối với các node xung quanh phục vụ giao thức định tuyến, cho phép gửi chuyển tiếp các thông điệp ở lớp Rime network flooding (nf).

Lớp thấp nhất của giao thức Rime là Anonymous best-effort broadcast – abc. Lớp abc này có 16 bit channel nhưng không quy đinh địa chỉ của node dùng trong việc giao tiếp. Địa chỉ xác định của mỗi node được thêm bởi trường Identity header tại lớp Indentified sender best-effort broadcast – ibc và Unicast - uc. Các lớp cơ bản ở dưới như Anonymous best-effort broadcast – abc, Indentified sender best-effort broadcast – ibc và Unicast – uc có thể được triển khai trong phần cứng hoặc firmware.

Để tiết kiệm bộ nhớ, Rime sử dụng duy nhất một buffer cho cả gói đến và gói đi tương tự như giao thức µIP. Các dữ liệu khi đến sẽ được xếp vào hàng đợi trước khi được đẩy vào buffer.

Trang 59

4.7.8 Tích hợp giao thức Lightweight TLS vào TinySQL

Giao thức Lw-TLS được tích hợp như là một lớp phụ nằm giữa tầng ứng dụng và giao thức Rime Mesh Routing Protocol. Các dịch vụ ở tầng ứng dụng có thể điều khiển Lw-TLS thông qua các Interface được cung cấp. Khi được sử dụng, Lw-TLS sẽ dùng giao thức ở tầng thấp hơn là Rime Mesh Routing Protocol để gửi các gói tin tới các thiết bị khác. Khi giao thức Lw-TLS Handshake được thực hiện thành công, các dịch vụ ở tầng Application có thể sử dụng kênh liên lạc an toàn đã được tạo bởi Lw-TLS gồm các cơ chế như mã hóa dữ liệu, xác thực gói tin nhận được, chống kiểu tấn công reply attack.

Application Transport Network Datalink Physical Adoptation Security TinySQL Antelope

Rime Mesh Routing Protocol

Rime Stack

802.15.4

Lw-TLS

WSN Layering Model Lw-TLS Node

Hình 4. 31 - Tích hợp Lw-TLS vào mơ hình WSNs

Việc tích hợp như thế này cho phép Lw-TLS có thể dễ dàng được triển khai trong nhiều ứng dụng khác nhau của mạng cảm biến không dây như CoAP, Telnet, WebServer, Serial Shell… Tầng Transport có thể sử dụng như giao thức UDP, TCP. Tầng Network có thể thay bằng giao thức IPv6, giao thức RPL. Tầng Datalink có thể sử dụng một giao thức khác là 802.15.4 MAC.

Trang 60

Chương 5: Kết quả mô phỏng và thực nghiệm 5.1 Mô phỏng 5.1 Mô phỏng

5.1.1 Giới thiệu về Cooja

Cooja là một phần mềm mô phỏng được thiết kế cho mạng cảm biến không dây. Cooja cho phép mô phỏng nhiều loại node cảm biến khác nhau sử dụng hệ điều hành Contiki. Cách đơn giản nhất để sử dụng Cooja là download phiên bản template máy ảo InstantContiki về chạy trên một nền tảng ảo hóa như VMWare hay VirtualBox.

Hình 5. 1 - Mơ phỏng mảng cảm biến 20 Node bằng Cooja

Cooja thực sự là một cơng cụ hữu ích trong việc nghiên cứu mạng cảm biến khơng dây khi chúng ta khơng có đủ điều kiện về thiết bị phần cứng. Cooja cho phép tạo một hệ thống mạng cảm biến với nhiều node, cho phép chúng ta quản lý các node qua một giao diện đầy đủ với Node ID, address, vị trí đặt của các node, tầm phủ sóng của các node, trạng thái các cảm biến, cổng nối tiếp,… Quan sát trên Cooja chúng ta cũng có thể hiểu ra traffic trong mạng như hướng đi giữa các node cảm biến, quá trình truyền nhận gói tin trong mạng. Cooja cho phép chúng ta thực hiện mô phỏng những mạng cảm biến phức tạp với đầy đủ các giao thức,

Trang 61

ứng dụng được cung cấp cho mạng cảm biến không dây sử dụng hệ điều hành Contiki, với sự chính xác cao khi so sánh kết quả trong thực nghiệm.

Hình trên là một mơ phỏng một mạng cảm biến có 20 node, các node được sắp xếp một cách có chú ý nhờ Cooja cho biết phạm vi phủ sóng của từng node. Trong khi thử nghiệm, chúng ta dễ dàng tiến hành Debug nhờ quan sát các Node qua Interface View. Cooja cho phép điều chỉnh tốc độ mô phỏng lên 10, 100 lần hoặc nhiều hơn nhờ tính năng Speed Limit, để giúp rút ngắn thời gian đánh giá mô phỏng, điều này không làm được trong thực tế. Việc gửi nhận gói tin giữa các node mạng diễn ra thế nào có thể quan sát được nhờ tính năng Traffic Radio và Timeline Show.

5.1.2 Kịch bản mô phỏng

Tất cả các mô phỏng đều sử dụng phần mềm Cooja và các node cảm biến là Sky mode.

Mô phỏng 1: Từ một Lw-TLS Client node thực hiện khởi tạo kết nối đến 1

Lw-TLS Server Node, đo thời gian để hoàn thành giao thức Lightweight TLS, các thuật tốn mã hóa trên Sky Mode.

Trang 62

Dựa vào thời gian và các thông điệp được in ra tại Mote Output, chúng ta có thể đo được chính xác thời gian thực hiện từng thuật tốn của giao thức Lw-TLS.

Type Time (s) Lw-TLS-Handshake 73 ECDSA 19,7 ECDH 16,7 HMAC-MD5 0.005 PRF-MD5 0.012 MD5 0.003

AES-Encrypt 16 byte data 0.022

AES-Decrypt 16 byte data 0.042

Bảng 4 - Thời gian xử lý của các thuật toán sử dụng trong Lw-TLS

Thời gian để thực hiện giao thức Lw-TLS Handshake là khoảng 73s, trong đó phần lớn thời gian để chạy các thuật toán ECDH (Elliptic Curve Diffie– Hellman) và ECDSA (Elliptic Curve Digital Signature) chiếm tổng cộng 72.8s.

Do đó, để rút ngắn thời gian thực hiện giao thức Handshake, cần chú trọng rút ngắn thời gian thực hiện các thuật tốn mã hóa ECC. Hiện nay, có một số dịng vi xử lý được thiết kế dành cho mạng cảm biến khơng dây có hỗ trợ mã hóa ECC và AES trên phần cứng, hứa hẹn sẽ giúp tăng tốc độ mã hóa và giải mã lên đáng kể.

Mô phỏng 2: Tạo một mạng MultiHop gồm nhiều Client và Server Node. Từ

Client Node thực hiện truy vấn dữ liệu tới Server Node. Client Node sẽ gửi câu query tới Server Node để lấy 100, 500, 1000 dòng dữ liệu. Biết rằng mỗi dòng dữ liệu trả về của TinySQL khi chưa mã hóa thường có kích thước 80 byte. Mô phỏng sẽ thử nghiệm ở 2 trường hợp có và khơng có mã hóa AES. Dữ liệu sẽ

Trang 63

được mã hóa bằng AES 128 trước khi gửi lại Client Node. Client Node sẽ thực hiện giải mã dữ liệu và in ra màn hình, sau đó nhận thêm các gói tin mới.

Hình 5. 3 - Mơ hình mạng mơ phỏng 2 - So sánh thời gian xử lý câu truy vấn khi dùng và không dùng mã hóa AES

Mục đích của mơ phỏng này để so sánh tốc độ xử lý câu truy vấn của TinySQL khi có sử dụng mã hóa AES 128 và khơng sử dụng AES 128.

Trang 64

Khi tích hợp mã hóa AES 128 vào TinySQL Database, thời gian cần để hoàn thành câu truy vấn và gửi toàn bộ dữ liệu tăng lên đáng kể, nhiều hơn so với khi khơng mã hóa 6 đến 7 lần. Thời gian để truyền dữ liệu giữa các hop rất nhỏ so với thời gian để xử lý câu truy vấn và mã hóa dữ liệu.

Mô phỏng 3: Tạo một mạng MultiHop gồm 10 Client node và 10 Server

Node như hình bên dưới. Một Client node sẽ thực hiện khởi tạo kết nối Lw-TLS tới một Server Node tại một thời điểm. Việc này sẽ được lặp lại 60 lần và ghi lại số lần thực hiện thành công giao thức Lw-TLS Handshake mà khơng có lỗi nào xảy ra.

Hình 5. 5 - Mơ hình WSNs cho Mơ phỏng 3

Mục đích của thí nghiệm này là kiểm tra tính ổn định của phần mềm được dùng để triển khai giao thức Lw-TLS và khả năng hoạt động của giao thức Lw- TLS trong một mạng multihop có điều kiện mơi trường truyền tin lý tưởng.

Kết quả cho thấy tỷ lệ thực hiện thành công giao thức Lw-TLS là 100% trong trường hợp Client Node và Server Node cách nhau 1, 2, 3, 4 hop. Vì vậy phần mềm được dùng để triển khai giao thức Lw-TLS có độ tin cậy cao.

Trang 65

Mô phỏng 4: Tạo một mạng MultiHop gồm 10 Client node và 10 Server

Node. 10 Server Node thực hiện khởi tạo giao thức Lw-TLS tới 10 Client Node đã được xác định trước. Ví dụ Client Node ID 18 sẽ khởi tạo kết nối tới Server Node ID 8, Client Node ID 17 sẽ khởi tạo kết nối tới Server Node ID 7. Dù thực hiện thành công hay thất bại giao thức Lw-TLS Handshake, Client Node đều sẽ khởi động lại giao thức Lw-TLS. Số lần khởi tạo giao thức Lw-TLS trên mỗi Client Node là 20. Số lần thực hiện giao thức Lw-TLS thành công và thất bại do mất gói tin hay thất bại gói tin bị thay đổi sẽ được ghi lại.

Hình 5. 6 - Mơ hình WSNs cho Mơ phỏng 4

Hình 5. 7 - Đánh giá khả năng thực hiện thành công giao thức Lw-TLS Handshake trong mạng multihop đang chịu tải lớn

Trang 66

Mục đích của mơ phỏng này là kiểm tra khả năng thực hiện thành công giao thức Lw-TLS Handshake mà khơng có lỗi nào xảy ra trong mạng multihop và trong điều kiện các node cảm biến đang chịu tải lớn do các Client node liên tục khởi tạo kết nối Lw-TLS tới Server node.

Kết quả cho thấy giao thức Lw-TLS Handshake có thể thực hiện thành cơng trong điều kiện các phần tử mạng phải chịu tải lớn do các node liên tục thực hiện tính tốn và gửi tin cho nhau. Nếu 2 node cảm biến được kết nối trực tiếp với nhau thì có tỷ lệ thực hiện thành cơng giao thức Lw-TLS Handshake mà khơng có lỗi nào xảy ra cao hơn so với 2 node kết nối qua nhiều node.

Mô phỏng 5: Tạo một mạng MultiHop gồm 10 Client node và 10 Server

Node. Các Server Node gửi 500 dòng dữ liệu tới Client Node, 1 dịng có kích thước 24 byte (data 16 byte), mỗi lần gửi cách nhau 0.5s. Đo đạt tổng số dòng dữ liệu Client Node nhận được.

Hình 5. 8 - Mơ hình WSNs cho mơ phỏng 5

Mục đích của mơ phỏng này là đánh giá khả năng thực hiện thành công câu truy vấn mà dữ liệu trả về được mã hóa trong điều kiện mạng đang chịu tải cao do tất cả các Client đều thực hiện truy vấn về tới Server Node. Mơ hình mạng giống với mơ phỏng 5.

Trang 67

Hình 5. 9 - Mơ phỏng 5 - Đánh giá khả năng truyền nhận dữ liệu được mã hóa trong mạng multihop đang chịu tải lớn

Như kết quả thu được ở hình Trong điều kiện mạng đang chịu tải lớn do tất cả các Server Node đều gửi tin tới Client Node với tốc độ 0.5 giây một gói tin chứa dữ liệu mã hóa có kích thước 23 byte, tỷ lệ gửi nhận thành cơng các gói tin giữ Server và Client Node tỷ lệ nghịch với khoảng cách giữ các node.

Mô phỏng 6: Tạo một mạng MultiHop gồm 10 Client node và 10 Server Node như mô phỏng 5. Một Client Node sẽ thực hiện khởi tạo giao thức Lw-TLS tới 1 Server Node 60 lần. Chín Client Node còn lại liên tục thực hiện 100 câu truy vấn tới 9 Database Server Node, mỗi câu cách nhau 5s, và lấy 1 dòng dữ liệu từ Database Server Node. Đo đạt số lần thực hiện thành công giao thức Lw-TLS

Một phần của tài liệu Xây dựng hệ cơ sở dữ liệu TinySQL cho mạng cảm biến không dây có bảo mật kênh truyền (Trang 70)

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

(92 trang)