Chương 4 : Các Phương pháp bảo mật trong mạng cảm biến không dây
4.4 Cơ chế Phân phối Key
Để có thể thực hiê ̣n quá trình mã hóa và giải mã dữ liê ̣u, quá trình phân phối key cần được thực hiê ̣n giữa các thiết bi ̣ muốn giao tiếp với nhau trước tiên, nhằm thông nhất các key dùng cho việc mã hóa, giải mã, xác thực. Các vấn đề liên quan đến cơ chế phân phối Key trong mạng cảm biến không dây gồm có: o Kiến trúc mạng: mạng phân bố (distributed) và mạng phân cấp (hierachical) o Phương thức giao tiếp giữa các thiết bị pair-wise (unicast), group-wise
(multicast), network-wise (broadcast).
o Các yêu cầu về bảo mật dành cho WSNs như tính xác thực (authentication), tính riêng tư (confidentiality), tính khơng thể chối từ (integrity), tính sẵn sàng (availability).
o Cơ chế phải có sự tiết kiệm năng lượng sử dụng, có thể thay đổi mức độ bảo mật khi tài nguyên hệ thống thay đổi.
o Có khả năng mở rộng mạng khi có những node cảm biến mới muốn kết nối. o Có thể hoạt động trên các thiết bị có tài nguyên hạn chế về tốc độ xử lý, bộ
nhớ, vùng lưu trữ.
o Có xác suất cao cho phép 2 thiết bị có thể dễ dàng thiết lập một share-key để liên lạc.
o Có tính phục hồi (resilence), cho phép các node mạng thay đổi bộ key mã hóa khi phát hiện mạng đã mất an tồn.
Trang 25
Hình 4. 8 - Mơ hình mạng: Hierarchical và Distributed WSNs [5]
Cơ chế phân phối key còn phải có khả năng chống la ̣i các kiểu tấn công để đảm bảo key được phân phối không bi ̣ bên thứ 3 phát hiện. Ngoài ra, trong trường hợp phát hiê ̣n có sự nghi vấn ở mô ̣t node ma ̣ng, cơ chế phân phối key có thể yêu cầu node đó thực hiê ̣n la ̣i quá trình phân phối key.
4.4.1 Một số cơ chế phân phối key dành cho mạng phân bố (distributed network) network)
Cơ chế phân phối key thường được chia thành 3 giai đoạn: key setup khởi tạo việc trao đổi key, shared-key discovery thống nhất một key chung, path-key establishment tạo các key dùng cho việc trao đổi dữ liệu.
Cơ chế phân phối key đơn giản nhất đó là sử du ̣ng mô ̣t key chung cho toàn bô ̣ các node trong ma ̣ng (network-wire key). Cơ chế này cho phép sử du ̣ng ít tài nguyên, nhưng trong trường hợp key mã hóa bi ̣ lô ̣ mo ̣i thông tin trong ma ̣ng đều có thể bi ̣ đánh cắp, thâ ̣m chí các thiết bi ̣ cảm biến bi ̣ điều khiển bởi kẻ tấn công. Cơ chế này có tính phục hồi (resilience) vơ cùng thấp. Một giải pháp tốt hơn mỗi node giao tiếp với các node khác bằng mô ̣t că ̣p key riêng biê ̣t (pair-wise key). Viê ̣c này cho phép đảm bảo tính riêng tư của thông tin trao đổi giữa 2 node không bi ̣ node khác biết được. Cơ chế này đòi hỏi thiết bi ̣ phải có nhiều bô ̣ nhớ để có thể lưu được toàn bô ̣ các că ̣p key mã hóa của các node khác. Do vâ ̣y trong thực tế, node sink thường là thiết bi ̣ sẽ chứa toàn bô ̣ các key mã hóa của các node trong ma ̣ng, và là nơi các node khác gửi yêu cầu nhâ ̣n mô ̣t key dùng mô ̣t lần, key
Trang 26
dùng mô ̣t lần này sẽ được dùng trong quá trình trao đổi key giữa 2 node trong ma ̣ng.
Cơ chế dùng cặp pair-wise key ngẫu nhiên (Random pair-wise key scheme), cơ chế này cho phép giải quyết vấn đề lưu trữ key trên các node cảm biến, và được đánh giá là có tính phục hồi cao. Cơ chế này lần đầu tiên được giới thiệu bởi Erdos và Renyi’s. Mỗi node sẽ có một chuỗi các Pair-wise key và 2 node sẽ có 1 xác xuất p để có thể sử dụng chung 1 key nào đó. Các node này sẽ mã hóa chuỗi key mà mình giữ bằng một ID và gửi broadcast sang tất cả các node xung quanh. Các node xung quanh nhận được sẽ xác định 2 node có key chung nào không và thống nhất nhất sử dụng 1 key chung nào đó để trao đổi thơng tin trong các bước tiếp theo.
Cơ chế Closet pair-wise keys pre-distribution scheme tạo key dựa vào địa chỉ của các node cảm biến, là một giải pháp thay thế cho cơ chế dùng cặp pair-wise key ngẫu nhiên. Ý tưởng của cơ chế này là cho phép một Node có tạo được 1 pair-wise với các node kế cận. Share Key được tạo bằng hàm PRF như sau KA,Bi = PRF(KBi|IDA). Trong đó A là đóng vai trị là một head-node chứa tất cả các Key KBi của các node Bi xung quanh. Bi là các node muốn kết nối với A sẽ tự tính share key khi có được IDA. Cơ chế này được đánh giá là có khả năng tạo key tốt (good key connectivity) giữa 2 node và có cũng tính phục hồi và mở rộng cao. Cơ chế dùng Master Key cho giải pháp phân phối key, mỗi thiết bị cảm biến có một Master Key Km. Hai thiết bị muốn liên lạc với nhau sẽ thực hiện trao đổi 1 số Nonce ngẫu nhiên với nhau. Session Key sẽ được tạo bằng hàm PRF với Share Key Ki,j = PRF(Km|RNi|RNj). Cơ chế này được đánh giá là có tính phục hồi rất thấp vì sử dụng một Master Key không đổi.
Trang 27
4.4.2 Cơ chế phân phối key dành cho mạng có kiến trúc phân tầng (Hierachical) (Hierachical)
Cơ chế quản lý các Group Key cho mạng phân tầng, cơ chế này cho phép các phần tử trong một nhóm giống nhau chia sẽ một group key với nhau. Các node trong cấu trúc phân tầng được phân cấp dựa theo năng lực tính toán và quyền truy câ ̣p khác nhau.
Hình 4. 9 - Mơ hình cơ chế phân phới group key cho mạng có phân tầng (Hierarchial) [4]
Mơ hình bao gờm node Cluster head và nhiều node cảm biến đóng vai trò là node con. Các Group key được ta ̣o ra như sau: Mỗi sensor node tự tính toán ngẫu nhiên 1 key được go ̣i là partial key. Các node con trong cùng mô ̣t nhánh nhưng ở vi ̣ trí cao hơn sẽ tính key trung gian bằng cách nhân Partial Key của nó với Key trung gian gử i lên bởi các node bên dưới. Cluster Node sẽ thu thâ ̣p tất cả Partial Key của các node và tính ra mô ̣t group key K từ tất cả các Key trung gian mà nó nhận được thu thập được. Sau đó Group Key K này sẽ được mã hóa bằng 1 key mã hóa bất đối xứng dùng 1 lần và gửi broadcast tới tất cả các Node trong Group. Khi Cluster Node gửi broadcast Key tới tất cả các node còn la ̣i lần đầu tiên, nó sẽ thêm vào mô ̣t yếu tố làm mù (blind factor), đó là mô ̣t con số riêng được cấp cho từng node. Mỗi node sẽ tự nhâ ̣n ra blind factor của mình và thay bằng bằng real factor tương ứng. Viê ̣c này giúp ngăn chă ̣n viê ̣c Group Key bi ̣ đánh cắp bởi bên thứ 3. Cơ chế quản lý các Group Key cho mạng phân tầng này có tính linh đô ̣ng
Trang 28
cao vì có khả năng ta ̣o mới Group Key hoặc cho phép thu hồi la ̣i key từ các Node.
4.4.3 Cơ chế phân phối Key dù ng mã hóa ECC
Mô ̣t cơ chế phân phối key đáng chú ý đó là dùng mã hóa hóa bất đối xứng, nhờ những ưu điểm trong khả năng thay đổi các key mã hóa nhanh chóng và xác thực các node mới tham giao vào ma ̣ng mô ̣t cách dễ dàng. Thuâ ̣t toán mã hóa bất đối xứng ECC có nhiều ưu điểm so với RSA khi triển khai trên các thiết bi ̣ có tài nguyên ha ̣n chế. ECC và RSA đều đã được triển khai trên các node cảm biến sử du ̣ng các vi xử lý dành cho ma ̣ng cảm biến không dây như ATmega128, MSP430 và CC1010. Viê ̣c triển khai các thuâ ̣t toán mã hóa này cần thực hiê ̣n viê ̣c tối ưu cho phù với với các node cảm biến có bô ̣ nhớ nhỏ, vi xử lý yếu. ECC sử du ̣ng key có kích thước nhỏ hơn RSA trong khi vẫn đảm bảo mức đô ̣ bảo mâ ̣t tương đương do đó ECC có thời gian xử lý ngắn hơn, sử du ̣ng ít tài nguyên hơn.
Cơ chế phân phối key Routing-Driven dùng mã hóa ECC
Trong cơ chế này, các node cảm biến (L-Node) chỉ giao tiếp với 1 neighbor node nằm gần nó được go ̣i là H-Node. H-Node đóng vai trò là mô ̣t gateway để đi ̣nh tuyến dữ liê ̣u về Sink Node. Cơ chế phân phối key chỉ cần thực hiê ̣n giữa các node cảm biến và H-Node.
Trang 29
Trong đó H-Node có số lượng nhỏ trong ma ̣ng và là những node có cấu hình ma ̣nh, có thể thực hiê ̣n nhiều nhiê ̣m vu ̣, tính toán phức ta ̣p. L-Node là những node cảm biến có cấu hình yếu hơn.
Viê ̣c trao đổi Key giữa H-Node và L-Node được thực hiê ̣n thông qua mô ̣t cơ chế go ̣i là Centralized Key Establishment. Cơ chế này được mô tả như sau:
Các că ̣p Key ECC được ta ̣o ra Public/Private Key (KUR, KUU) dành cho L- Node. H-Node giữ Public Key của tất cả các L-Node và mỗi L-Node giữ Private Key của mình.
Mỗi H-Node có mô ̣t că ̣p Public/Private Key dùng cho viê ̣c xác thực (KHR, KHU). Các L-Node sẽ giữ Public Key KHR. Că ̣p Key này dùng cho viê ̣c xác thực các gói tin gửi từ H-Node tới L-Node.
Giữa các H-Node giao tiếp với nhau bằng mô ̣t key mã hóa bất đối xứng. Trong mỗi Cluster, khi các L-Node gửi yêu cầu tới H-Node bao gồm các
thông tin của mình. H-Node sẽ ta ̣o ra mô ̣t shared-key và mã hóa bằng Public- Key KUR củ a L-Node đó sau đó gửi về la ̣i L-Node đó. Viê ̣c sử du ̣ng chữ ký điê ̣n tử bằng được ta ̣o bằng Private Key KHU cho phép L-Node xác thực được thông điê ̣p H-Node gửi.