Các nút trong mạng ad hoc giao tiếp với nhau thông qua các kết nối không dây, nếu các nút ở xa nhau thì có thể dựa trên các nút khác để chuyển tiếp dữ liệu, lúc này các nút ở giữa đóng v
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐINH QUANG VŨ
XÂY DỰNG GIẢI PHÁP AN NINH TRONG MẠNG AD HOC ĐA TRẠM
Ngành : Công nghệ thông tin
Chuyên ngành : Truyền dữ liệu và Mạng máy tính
Mã số : 60 48 15
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM THANH GIANG
Hà Nội – 2012
Trang 3Mục lục
Lời cam đoan I Mục lục II Danh mục các ký hiệu và chữ viết tắt III Danh mục các bảng IV Danh mục các hình vẽ V
MỞ ĐẦU 1
Chương 1 - MẠNG AD HOC VÀ CÁC VẤN ĐỀ AN NINH TRONG MẠNG 2
AD HOC 2
1.1 GIỚI THIỆU VỀ MẠNG AD HOC 2
1.2 SỰ THIẾU AN NINH VÀ CÁC MỐI ĐE DỌA TRONG MẠNG AD HOC 4
1.2.1 Sự thiếu an ninh trong mạng ad hoc 4
1.2.2 Các mối đe dọa an ninh trong mạng ad hoc 4
1.2.2.1 Các hình thức tấn công 4
1.2.2.2 Tấn công từ chối dịch vụ 5
1.2.2.3 Mạo danh 6
1.2.2.4 Nghe lén 6
1.2.3 Mục tiêu an toàn 7
1.2.4 Các thách thức 7
1.3 GIẢI PHÁP AN NINH TRONG MẠNG AD HOC DỰA TRÊN GIAO THỨC THỎA THUẬN KHÓA 8
1.3.1 Thỏa thuận khóa có chứng thực mật khẩu 9
1.3.2 Giao thức thỏa thuận khóa Diffie-Hellman 12
Chương 2 - GIAO THỨC THỎA THUẬN KHÓA TRONG MẠNG AD HOC 15
2.1 BỘ GIAO THỨC ASOKAN-GINZBOORG CHO MẠNG AD HOC TĨNH 16
2.1.1 Bộ giao thức 2d-cube và 2d-octopus 16
2.1.1.1 2d-cube 16
2.1.1.2 2d-octopus 17
2.1.2 Bộ giao thức Asokan-Ginzboorg 18
2.1.2.1 Xác thực khóa 18
2.1.2.2 Khả năng để đối phó với các sự kiện bị lỗi 19
2.2 SỰ MỞ RỘNG CỦA GIAO THỨC DIFFIE-HELLMAN CHO MỘT NHÓM 20
2.2.1 Giao thức Cliques-I 20
2.2.1.1 Khởi tạo khóa ban đầu trong Cliques-I 20
2.2.1.2 Quá trình gia nhập thành viên mới và hợp nhất các nhóm trong Cliques-I 22
2.2.1.3 Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-I 24
2.2.2 Giao thức Cliques-II 25
2.2.2.1 Khởi tạo khóa ban đầu trong Cliques-II 25
2.2.2.2 Quá trình gia nhập thành viên mới và hợp nhất các nhóm trong Cliques-II 28
2.2.2.3.Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-II 28
2.3 QUẢN LÝ KHÓA TRONG MẠNG AD HOC DỰA TRÊN CÂY KHÓA 28
2.3.1 Giao thức STR 28
2.3.1.1 Khởi tạo khóa ban đầu trong giao thức STR 29
2.3.1.2 Quá trình gia nhập nhóm trong giao thức STR 30
2.3.1.3 Quá trình rời nhóm trong giao thức STR 31
2.3.1.4 Quá trình hợp nhất giữa các nhóm trong giao thức STR 32
2.3.1.5 Quá trình chia nhỏ nhóm trong giao thức STR 34
2.3.1.6 Thiết lập lại khóa trong giao thức STR 36
2.3.2 Giao thức TGDH 36
2.3.2.1 Khởi tạo khóa ban đầu trong giao thức TGDH 37
2.3.2.2 Quá trình gia nhập nhóm trong giao thức TGDH 40
Trang 42.3.2.3 Quá trình rời nhóm trong giao thức TGDH 42
2.3.2.4 Quá trình hợp nhất giữa các nhóm trong giao thức TGDH 43
2.3.2.5 Quá trình chia nhỏ nhóm trong giao thức TGDH 44
2.3.2.6 Thiết lập lại khóa trong giao thức TGDH 46
2.4 ĐÁNH GIÁ CÁC GIAO THỨC 47
2.4.1 So sánh về chi phí truyền thông 47
2.4.2 So sánh về chi phí tính toán 49
Chương 3 - XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG GIAO THỨC CLIQUES I-II 53
3.1 PHÂN TÍCH THIẾT KẾ 53
3.1.1 Tổng quan về dự án mô phỏng robot Player/Stage 53
3.1.2 Phân tích các lớp thư viện dùng để mô phỏng giao thức 53
3.2 CHƯƠNG TRÌNH MÔ PHỎNG 57
3.2.1 Môi trường và kịch bản mô phỏng 57
3.2.2 Mô phỏng giao thức Cliques-I 60
3.2.3 Mô phỏng giao thức Cliques-II 66
3.2.4 So sánh thời gian khởi tạo nhóm khóa của cliques-I và cliques-II 67
TÀI LIỆU THAM KHẢO 70
Trang 5Danh mục các ký hiệu và chữ viết tắt
Thuật ngữ,chữ viết tắt Giải thích
DH Diffie-Hellman
Giao thức Diffie-Hellman GKA Group Key Agreement
Giao thức thỏa thuận khóa nhóm IKA Initial Key Agreement
Phương thức khởi tạo khóa ban đầu của nhóm AKA Auxiliary key agreement
Phương thức bổ trợ thỏa thuận khóa MANET Mobile Ad hoc Network
Mạng ad hoc di động
Trang 6Danh mục các bảng
Bảng 2.1: Thuật toán khởi tạo khóa của CLIQUES-I 21
Bảng 2.2: Bảng tính độ phức tạp tính toán quá trình khởi tạo khóa của CLIQUES-I 22
Bảng 2.3: Thuật toán tính khóa khi có thành viên mới gia nhập của CLIQUES-I 23
Bảng 2.4: Độ phức tạp tính toán quá trình gia nhập thành viên mới CLIQUES-I 23
Bảng 2.5: Bảng tính độ phức tạp quá trình hợp nhất nhóm của CLIQUES-I 24
Bảng 2.6: Thuật toán khởi tạo khóa của CLIQUES-II 27
Bảng 2.7: Bảng tính độ phức tạp quá trình khởi tạo khóa của CLIQUES-II 27
Bảng 2.8: Bảng tính độ phức tạp tính toán khởi tạo khóa của STR 29
Bảng 2.9: Bảng tính độ phức tạp tính toán quá trình gia nhập nhóm của STR 31
Bảng 2.10: Bảng tính độ phức tạp tính toán quá trình rời nhóm của STR 32
Bảng 2.11: Bảng tính độ phức tạp tính toán quá trình hợp nhất giữa hai nhóm của STR 33
Bảng 2.12: Bảng tính độ phức tạp tính toán quá trình hợp nhất giữa m nhóm của STR 34
Bảng 2.13: Bảng tính độ phức tạp tính toán quá trình chia nhỏ nhóm của STR 35
Bảng 2.14: Bảng tính độ phức tạp tính toán quá trình thiết lập lại khóa 36
Bảng 2.15: Bảng tính độ phức tạp tính toán quá trình khởi tạo nhóm của TGDH 39
Bảng 2.16: Bảng tính độ phức tạp tính toán quá trình gia nhập nhóm của TGDH 41
Bảng 2.17: Bảng tính độ phức tạp tính toán quá trình rời nhóm của TGDH 42
Bảng 2.18: Bảng tính độ phức tạp tính toán quá trình hợp nhất các nhóm trong TGDH 44
Bảng 2.19: Bảng tính độ phức tạp tính toán quá trình chia nhỏ nhóm của TGDH 46
Bảng 2.20: Bảng tính độ phức tạp tính toán quá trình thiết lập lại khóa TGDH 46
Bảng 2.21: Bảng so sánh về chi phí truyền thông giữa bốn giao thức 47
Bảng 2.22: Bảng so sánh về độ chi phí tính toán giữa bốn giao thức 49
Bảng 3.1: Bảng trạng thái ban đầu các robot mô phỏng 60
Bảng 3.2: Bảng các giá trị khởi tạo ban đầu của các robot mô phỏng cliques-I 60
Bảng 3.3: Bảng các giá trị khởi tạo ban đầu của các robot mô phỏng cliques-II 66
Bảng 3.4: Bảng thời gian hội tụ khóa trong khởi tạo khóa ban đầu của cliques I-II 68
Trang 7Danh mục các hình vẽ
Hình 1.1: Sơ đồ một mạng hạ tầng 2
Hình 1.2: Sơ đồ một mạng ad hoc 3
Hình 1.3: Các hình thức tấn công cơ bản 5
Hình 1.4: Hình thức tấn công Man-in-the-middle trong giao thức Diffie-Hellman 14
Hình 2.1: Các trường hợp xảy ra của nhóm ad hoc động 15
Hình 2.2: Minh họa giao thức 2d-cube cho 4 nút 17
Hình 2.3: Minh họa giao thức 2d-octopus cho 7 nút 17
Hình 2.4: Minh họa khả năng đối phó với sự kiện bị lỗi của giao thức 20
Hình 2.5: Quá trình khởi tạo khóa ban đầu của nhóm trong CLIQUES-I 21
Hình 2.6: Quá trình gia nhập thành viên mới trong CLIQUES-I 23
Hình 2.7: Quá trình hợp nhất các nhóm trong CLIQUES-I 24
Hình 2.8: Quá trình rời nhóm trong CLIQUES-I 25
Hình 2.9: Quá trình khởi tạo khóa ban đầu của nhóm trong CLIQUES-I 27
Hình 2.10: Mô tả một cây STR 28
Hình 2.11: Quá trình gia nhập nhóm của cây STR 30
Hình 2.12: Quá trình rời nhóm của cây STR 31
Hình 2.13: Quá trình rời nhóm của cây STR 32
Hình 2.14: Quá trình chia nhỏ nhóm của cây STR 35
Hình 2.15: Cây TGDH với chiều cao h là 3 36
Hình 2.16: Mô tả cây khóa TGDH 37
Hình 2.17: Quá trình khởi tạo một cây TGDH với 6 thành viên 38
Hình 2.18: Quá trình gia nhập nhóm trong giao thức TGDH 40
Hình 2.19: Cây TGDH sau khi thành viên mới gia nhập 40
Hình 2.20: Quá trình gia nhập nhóm trong giao thức TGDH 41
Hình 2.21: Quá trình rời nhóm của giao thức TGDH 42
Hình 2.22: Quá trình hợp nhất giữa hai nhóm của giao thức TGDH 43
Hình 2.23: Quá trình chia nhỏ nhóm của giao thức TGDH 45
Hình 2.24: So sánh số vòng của bốn giao thức trong quá trình khởi tạo nhóm 48
Hình 2.25: So sánh số vòng của bốn giao thức trong quá trình hợp nhất nhóm 48
Hình 2.26: So sánh số vòng của bốn giao thức trong quá trình chia nhỏ nhóm 48
Hình 2.27: So sánh số gói tin của bốn giao thức trong quá trình khởi tạo nhóm 49
Hình 2.28: So sánh chi phí tính toán của bốn giao thức trong quá trình khởi tạo nhóm 50
Hình 2.29: So sánh chi phí tính toán khi có thành viên gia nhập nhóm 50
Hình 2.30: So sánh chi phí tính toán của bốn giao thức khi có thành viên rời nhóm 50
Hình 2.31: So sánh chi phí tính toán bốn giao thức khi có k thành viên gia nhập nhóm 51
Hình 2.32: So sánh chi phí tính toán của bốn giao thức khi có p thành viên rời nhóm 51
Hình 3.1: Giả lập cấu trúc điều khiển server/client của player/stage 53
Hình 3.2: Phân tích các lớp để vẽ giao diện mô phỏng giao thức cliques I-II 55
Hình 3.3: Phân tích các lớp tính toán khoá trong mô phỏng giao thức cliques I-II 56
Hình 3.4: Phân tích các lớp trao đổi thông tin mô phỏng giao thức cliques I-II 57
Hình 3.5: Khởi tạo môi trường mô phỏng 59
Hình 3.6: Mô phỏng quá trình khởi tạo nhóm của cliques I 60
Hình 3.7: Thông tin các robot khi hình thành nhóm ban đầu 62
Hình 3.8: Sau khi hình thành nhóm ban đầu 62
Hình 3.9: Mô phỏng quá trình gia nhập nhóm của cliques I 63
Hình 3.10: Quá trình gia nhập nhóm của cliques I 64
Hình 3.11: Mô phỏng quá trình rời nhóm của cliques I 65
Hình 3.12: Mô phỏng quá trình khởi tạo nhóm của cliques II 66
Hình 3.13: Biểu đồ thời gian hội tụ khóa trong khởi tạo khóa ban đầu của cliques I-II 68
Trang 8MỞ ĐẦU
Ngày nay, mạng không dây trong đời sống con người đang ngày càng đóng vị trí quan trọng Đã có rất nhiều mô hình, kiến trúc mạng không dây được đề xuất nhằm làm cho mạng không dây dần thoát khỏi hoàn toàn sự phụ thuộc vào cơ sở hạ tầng Một trong những mô hình mạng được đề xuất đó chính là mạng Ad hoc (Mobile Adhoc Network) thường được viết tắt là MANET Các mạng này thường được thiết lập trong các tình huống khẩn cấp, cho các hoạt động tạm thời hoặc đơn giản là do không có nguồn lực để thiết lập một mạng lưới phức tạp Việc các mạng không dây ít phụ thuộc vào cơ sở hạ tầng là một điều rất thuận lợi nhưng bên cạnh đó lại có những vấn đề khác đặt ra như tốc độ mạng không ổn định, các nút mạng hay di chuyển, topo mạng thay đổi liên tục và những thách thức rất lớn về bảo mật đường truyền Các thách thức về an ninh trong mạng ad hoc thường tập trung vào ba phần: bảo mật tầng liên kết, bảo mật đinh tuyến và trao đổi, quản lý khóa Trong khuôn khổ luận văn này, tập trung chủ yếu vào việc trao đổi và quản lý khóa trong mạng ad hoc
Luận văn được bố cục thành 3 chương chính :
Chương 1 Mạng ad hoc và các vấn đề an ninh trong mạng ad hoc
Tổng quan về mạng ad hoc, sự thiếu an ninh và các mối đe dọa trong mạng
ad hoc, đồng thời chỉ ra giải pháp an ninh trong mạng ad hoc thông qua quản lý khóa
Chương 2 Quản lý khóa trong mạng ad hoc dựa vào giao thức thỏa thuận khóa
Trình bày các giao thức thỏa thuận khóa trong mạng ad hoc và đánh giá các giao thức
Chương 3 Xây dựng chương trình mô phỏng giao thức thỏa thuận khóa CliquesI
Xây dựng chương trình mô phỏng giao thức thỏa thuận khóa Cliques I-II và chạy thử các kịch bản mô phỏng để chứng minh tính đúng đắn của thuật toán
Trang 9Chương 1 - MẠNG AD HOC VÀ CÁC VẤN ĐỀ AN NINH TRONG MẠNG
AD HOC 1.1 GIỚI THIỆU VỀ MẠNG AD HOC
Với sự cải tiến của công nghệ truyền thông không dây như Bluetooth, IEEE 802.11 hoặc Hiperlan, trong vài năm trở lại đây mạng di động đã thu hút đc sự chú ý
và phát triển ngày càng mạnh mẽ Dựa theo tính phụ thuộc vào các thiết bị hạ tầng cố định, mạng di động có thể được chia thành hai loại: mạng hạ tầng (Infrastructure-based Network) và mạng ad hoc (Mobile Ad hoc Network, MANET)
Trong mạng hạ tầng các nút di động có các điểm truy cập có dây AP(Access Point) cố định bên trong phạm vi truyền của nó Các AP cấu thành lên xương sống cho một mạng hạ tầng Mạng di động và WLAN thuộc dạng này
Hình 1.1: Sơ đồ một mạng hạ tầng
Ngược lại, mạng ad hoc tự mình tổ chức mạng một cách tự động mà không cần
có cơ sở hạ tầng hỗ trợ (chỉ cần có hai thiết bị không dây là có thể tạo ra một mạng ad hoc) Trong một mạng ad hoc các nút di chuyển tự do vì thế topo mạng
có thể bị thay đổi một cách nhanh chóng và không thể dự đoán được Các nút trong mạng ad hoc giao tiếp với nhau thông qua các kết nối không dây, nếu các nút ở xa nhau thì có thể dựa trên các nút khác để chuyển tiếp dữ liệu, lúc này các nút ở giữa đóng vai trò như một thiết bị định tuyến
Mạng Ad hoc được mong đợi sẽ làm cách mạng hóa thông tin không dây trong một vài năm tới bằng việc bổ sung thêm vào các mô hình mạng truyền thống (như Internet, mạng di động, truyền thông vệ tinh) Mạng Ad hoc cũng có thể được xem như những bản sao công nghệ của những khái niệm máy tính thường gặp Bằng việc khám phá công nghệ mạng không dây Ad hoc, những thiết bị cầm tay đủ chủng loại (như điện thoại di động, PDAs, máy tính xách tay, máy nhắn tin, máy tính bảng…) và các thiết
Trang 10bị cố định (như các trạm vô tuyến cơ sở, các điểm truy cập Internet không dây, …) có thể được kết nối với nhau, tạo thành mạng toàn cầu, khắp mọi nơi
Hình 1.2: Sơ đồ một mạng ad hoc Trong tương lai, công nghệ mạng Ad hoc có thể sẽ là lựa chọn rất hữu ích Ví dụ, hãy xem tình huống sau Một cơn động đất khủng khiếp đã tàn phá thành phố của chúng ta, trong đó có hầu hết các cơ sở hạ tầng viễn thông (như các đường điện thoại, trạm vô tuyến cơ sở …) Nhiều đội cứu hộ (như lính cứu hỏa, cảnh sát, bác sĩ, các tình nguyện viên …) đang nỗ lực để cứu mọi người khỏi cơn động đất và chữa trị cho những người bị thương Để hỗ trợ tốt hơn cho đội cứu hộ, các hoạt động cứu hộ của họ phải được hợp tác với nhau Rõ ràng là một hoạt động hợp tác như thế chỉ đạt được thành quả khi đội cứu hộ có thể giao tiếp, thông tin với nhau, cả với đồng nghiệp của mình (ví dụ một cảnh sát với một cảnh sát khác) và cả với thành viên của đội cứu hộ khác (ví dụ một lính cứu hỏa yêu cầu sự trợ giúp từ một bác sĩ) Với những công nghệ hiện có, những nỗ lực của đội cứu hộ sẽ rất khó thành công khi những cơ sở hạ tầng viễn thông cố định bị tàn phá nặng nề Thậm chí những thành viên của đội cứu hộ này được trang bị máy vô tuyến cầm tay (walkie-talkie) hay các thiết bị tương tự khác trong trường hợp không thể truy cập được với các điểm cố định, chỉ những kết nối giữa những thành viên của đội cứu hộ đứng gần nhau mới thực hiện được Vì vậy, một trong những ưu tiên trong việc quản lý và không chế thảm họa ngày nay là cài đặt lại các cơ sở hạ tầng viễn thông nhanh nhất có thể, bằng cách sửa chữa các thiết bị, kết cấu hư hỏng hay triển khai các thiết bị viễn thông tạm thời (ví dụ như vans được trang
bị angten radio)
Khó khăn này có thể được giải quyết đáng kể nếu chúng ta áp dụng những công nghệ dựa vào mạng Ad hoc : bằng cách sử dụng các giao tiếp không dây phân tán giữa nhiều điểm truy cập khác nhau, thậm chí các đội cứu hộ ở cách xa nhau cũng có thể liên lạc với nhau hay liên lạc với các thành viên đội cứu hộ khác ở khoảng giữa như hoạt động của một trạm chuyển tiếp Vì khu vực xảy ra thảm họa sẽ tập trung nhiều đội cứu hộ, nên các liên lạc trong phạm vi thành phố (hay thậm chí là phạm vi cả nước) có thể thực hiện được, cho phép các nỗ lực cứu hộ được hợp tác thành công mà không cần thiết lập lại các cơ sở viễn thông cố định
Trang 111.2 SỰ THIẾU AN NINH VÀ CÁC MỐI ĐE DỌA TRONG MẠNG AD HOC 1.2.1 Sự thiếu an ninh trong mạng ad hoc
Mạng Ad hoc là một mô hình mạng không dây mới cho thiết bị di động Không giống mạng không dây hạ tầng, mạng ad hoc không dựa trên bất kỳ cơ sở hạ tầng cố định nào Thay vào đó, các nút dựa vào các nút khác để giữ cho mạng kết nối và các nút thường di chuyển tự do vì thế topo mạng có thể bị thay đổi một cách nhanh chóng
Do thiếu sự hỗ trợ của cơ sở hạ tầng và đặc điểm như trên nên an ninh trong mạng ad hoc trở thành điểm yếu cố hữu Những điểm yếu do đặc điểm của mạng ad hoc được liệt kê dưới đây :
[+] Sự thay đổi thường xuyên và không đoán trước được của topo mạng và các nút trong mạng:
Cấu trúc liên kết mạng lưới của mạng ad hoc là rất năng động do sự di chuyển của các nút thành viên là rất ngẫu nhiên Điều này nhấn mạnh sự cần thiết của các giải pháp an ninh an toàn trong mạng ad hoc
[+] Các liên kết không dây trong mạng ad hoc rất dễ bị tấn công
Các cuộc tấn công cả thụ động như nghe trộm, giả mạo, … đến các hình thức tấn công chủ động như từ chối dịch vụ, mạo danh một nút là rất dễ dàng xảy ra do các nút di chuyển trong một môi trường thiếu sự hỗ trợ cơ sở
hạ tầng và các nút thường xuyên di chuyển nên sự tin tưởng của mối quan
hệ giữa các nút cũng thay đổi, đặc biệt là khi một số nút bị tấn công
[+] Việc mở rộng mạng và định tuyến cũng tồn tại nhiều yếu tố dễ bị tấn công
Trong mạng ad hoc các nút ở xa nhau thì có thể dựa trên các nút khác để chuyển tiếp dữ liệu, lúc này các nút ở giữa đóng vai trò như một thiết bị định tuyến Vì vậy bất kỳ nút nào bị tấn công hoặc bị hỏng có thể tạo ra sự nguy hại đến toàn mạng
1.2.2 Các mối đe dọa an ninh trong mạng ad hoc
1.2.2.1 Các hình thức tấn công
Các cuộc tấn công trong mạng ad hoc thường được chia thành hai nhóm:
[+] Các cuộc tấn công bên trong mạng:
Thụ động: các cuộc tấn công thường chỉ liên quan đến việc nghe trộm dữ liệu
Chủ động: các cuộc tấn công liên quan đến hành động thực hiện bởi đối thủ
ví dụ sự sao chép, sửa đổi và xóa dữ liệu trao đổi
[+] Các cuộc tấn công từ bên ngoài mạng: thường nhắm đến một số mục tiêu ví
dụ như gây ùn tắc, làm sai lệch thông tin định tuyến, ngăn chặn các dịch vụ hoặc tắt chúng hoàn toàn Các cuộc tấn công bên ngoài thường có thể được ngăn ngừa bằng cách sử dụng các cơ chế bảo mật tiêu chuẩn chẳng hạn như mã hóa, tường lửa…
Các cuộc tấn công xuất phát từ bên trong mạng thường nghiêm trọng hơn các cuộc tấn công từ bên ngoài Vì giả sử một nút nội bộ độc hại khi tham gia vào mạng nó sẽ
Trang 12được cung cấp các cơ chế bảo mật mạng và các dịch vụ trong mạng Nút độc hại này
sẽ được các thành viên trong nhóm tin tưởng và trong quá trình truyền thông nút độc hai này do cũng đóng một vai trò như một thiết bị định tuyến nên việc sao chép, sửa đổi và xóa dữ liệu trao đổi trong nhóm là rất dễ dàng
Hình 1.3: Các hình thức tấn công cơ bản
1.2.2.2 Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ luôn là mối đe doạ hàng đầu đến các hệ thống công nghệ thông tin trên thế giới Trong mạng ad hoc thì hậu quả của các cuộc tấn công thường phụ thuộc vào lĩnh vực ứng dụng của mạng ad hoc: Ví dụ trong lớp học một mạng adhoc giữa các thiết bị cầm tay của giáo viên và học sinh khi bị tấn công có thể gây sụp đổ nhưng lớp học vẫn có thể tiếp tục công việc bình thường bằng cách sử dụng mạng khác Hậu quả của cuộc tấn công gây ra cũng không nặng nề và không có thiết
bị hay cái gì bị phá huỷ Nhưng ngược lại, trong tình huống ở chiến trường hiệu quả hoạt động của các chiến sĩ hoàn toàn phụ thuộc vào hoạt động đúng đắn của các thiết
bị mạng của họ Nếu đối phương có thể đánh sập mạng, một nhóm có thể sẽ bị cô lập thành các đơn vị nhỏ lẻ dễ bị tổn thương và không thể giao tiếp với nhau hoặc với trụ
sở
Các cuộc tấn công từ chối dịch vụ có nhiều hình thức: cách cổ điển là làm quá tải năng lực xử lý, dẫn đến hệ thống không còn hoạt động một cách chính xác hoặc không thể thực thi bất kì một công việc nào khác, nhưng trong các mạng ad hoc thì cách tiếp cận này không khả thi do có sự phân bổ trách nhiệm giữa các thành viên Tuy nhiên do
sự phân bổ như vây việc tấn công từ chối dịch vụ càng là một mối đe dọa nghiêm trọng hơn: nếu những kẻ tấn công có đủ tài nguyên và băng thông để hoạt động thì các mạng adhoc nhỏ hơn có thể bị sụp đổ hoặc tắc nghẽn một cách dễ dàng Ví dụ như các nút bị tổn hại có thể thay đổi lại cấu hình định tuyến làm các gói tin trong mạng không
Trang 13thể đi được đến đích hoặc ngăn cản các nút cũ có được thông tin mới về việc thay đổi cấu trúc liên kết của mạng Trong trường hợp xấu nhất, kẻ thù có thể thay đổi cấu hình định tuyến làm cho mạng hoạt động một cách tùy tiện Vì vậy nếu một nút bị tổn hại gây ra sự ảnh hưởng đến cấu hình định tuyến không được phát hiện thì hậu quả xảy ra
Vì vậy, tấn công mạo danh liên quan đến tất cả các hoạt động quan trọng trong mạng
ad hoc Trong ví dụ lớp học, nếu một sinh viên mạo danh thiết bị của giáo viên, học sinh đó có thể có quyền truy cập, phá hủy dữ liệu được lưu trữ hoặc làm gián đoạn sự trao đổi của thiết bị giáo viên với học sinh trong lớp học Tác hại của cuộc tấn công này là không lớn và nó có thể sẽ được nhận thấy rất nhanh chóng nhưng ta xem xét trong ví dụ khác: Việc mạo danh thành công sẽ là nghiêm trọng hơn rất nhiều nếu trên chiến trường một nút mạng bị kiểm soát bởi kẻ thù Nó có thể có thể tham gia vào mạng adhoc và gây tổn hại đến các nút khác hoặc một dịch vụ nào đấy Nút đó có thể giả mạo chính nó thành một nút khác trong mạng và ra lệnh sai hoặc thông tin trạng thái sai đến các nút khác Các mối đe dọa trong tấn công mạo danh có thể được giảm nhẹ bằng cách áp dụng cơ chế xác thực các bên tham gia để có thể tin tưởng về nguồn gốc của dữ liệu đã nhận được hoặc dữ liệu đã được lưu trữ Thông thường ta có thể sử dụng chữ ký số hoặc mã xác thưc trên các thông điệp định tuyến, thông tin cấu hình hoặc thông tin tình trạng, trao đổi, dữ liệu tải trọng của các dịch vụ sử dụng Việc sử dụng chữ ký số cùng với mật mã khóa công khai là một vấn đề khó giải quyết vì trong mạng adhoc thường yêu cầu một dich vụ quản lý khoá hiệu quả, an toàn và sự tính toán tương đối nhiều Vì vậy, trong nhiều trường hợp các giải pháp nhẹ nhàng hơn như việc sử dụng các hàm khóa băm hoặc đàm phán và chứng nhận định danh phiên thường được sử dụng
1.2.2.4 Nghe lén
Trong mạng adhoc, các thông tin nghe lén có thể bao gồm bất cứ điều gì ví dụ như tình trạng chi tiết cụ thể của một nút, vị trí của các nút, các thông điệp riêng tư hay bí mật, mật khẩu… Đôi khi các dữ liệu điều khiển thông tin lại có ý nghĩa quan trọng hơn
so với các dữ liêu trao đổi Chẳng hạn như các chỉ thị định tuyến trong phần đầu các gói tin như nhận dạng hoặc vị trí của các nút đôi khi có thể có giá trị hơn so với thông báo trên tầng ứng dụng Điều này đặc biệt quan trọng trong các ứng dụng quân sự Ví
dụ trên chiến trường dữ liệu của một gói bắt tay trao đổi giữa các nút có thể không
Trang 14được đối phương quan tâm Thay vào đó, danh tính của các nút quan trọng hoặc các đài phát thanh liên lạc có thể giúp kẻ thù phát hiện và tấn công các mục tiêu trọng yếu Ngược lại, trong ví dụ lớp học việc nghe lén thông tin trao đổi, lưu trữ là quan trọng hơn so với vị trí và danh tính của các nút
1.2.3 Mục tiêu an toàn
Các mục tiêu an toàn cần đạt tới trong mạng ad hoc như sau:
[+] Tính sẵn sàng: Đảm bảo cho mạng và các dich vụ trong mạng luôn hoạt động kể
cả khi bị tấn công từ chối dịch vụ (DOS) Về tầng vật lý và liên kết dữ liêu kẻ tấn công
có thể sử dụng các kỹ thuật gây nhiễu, gây trở ngại cho giao tiếp Trên tầng mạng, kẻ tấn công có thể phá vỡ các giao thức định tuyến Trên các tầng cao hơn, kẻ tấn công có thể đánh sập các dịch vụ cao cấp ví dụ như: dịch vụ quản lý khóa
[+] Tính bí mật: Đảm bảo thông tin không bao giờ bị tiết lộ cho các tổ chức trái
phép
[+] Tính toàn vẹn: Luôn đảm bảo dữ liệu truyền thông không bao giờ bị hỏng
[+] Tính xác thực: Cho phép một nút đảm bảo danh tính của mình là xác thực và đáng
tin cậy với các nút ngang hàng mà nó tiếp xúc Nếu không có tính xác thực một kẻ tấn công có thể mạo danh một nút, do đó đạt được quyền truy cập trái phép vào tài nguyên, thông tin nhạy cảm và ảnh hưởng đến hoạt động của các nút khác
[+] Tính không khoái thác: Khi thông điệp được gửi đi, người nhận có thể khẳng
định rằng thông điệp đích thực được gửi tới từ người được ủy quyền và đảm bảo người chủ của thông điệp không thể phủ nhận nguồn gốc gói tin hay những thao tác mà người đó đã thực hiện
1.2.4 Các thách thức
[+] Bảo mật tầng liên kết: Trong môi trường không dây thì tầng liên kết là tầng dễ bị
tấn công và khi đó kẻ nghe trộm có thể dễ dàng giả mạo thông tin liên lạc trong mạng
Vì không có các biện pháp bảo vệ như tường lửa hoặc kiểm soát truy cập nên trong mạng ad hoc bất kỳ nút nào cũng có thể bị tổn thương và trở thành nút mạo danh, nên các cuộc tấn công trong mạng adhoc có thể đến từ bất kỳ hướng nào hoặc từ bất kỳ nút nào trong mạng.Các hình thức của các cuộc tấn công bao gồm giả mạo danh tính của một nút, giả mạo với các thông tin nút, nghe lén… Những kiểu tấn công này có thể dễ dàng làm tổn hại đến các đặc tính bảo mật cơ bản như tính bảo mật, tính toàn vẹn, tính sẵn sàng và sự riêng tư của một nút
[+] Bảo mật định tuyến: Vì đặc điểm trong mạng ad hoc mỗi nút có thể đóng vai trò
như một thiết bị định tuyến nên các giao thức đinh tuyến trong mạng ad hoc rất dễ bị tấn công Bất kỳ một thông tin định tuyến giả mạo nào cũng có thể gây ảnh hưởng tới toàn bộ mạng Một kẻ tấn công có thể chèn các thông tin định tuyến sai lệch hoặc từ chối phục vụ các dịch vụ bằng cách phát lại các thông tin yêu cầu đăng nhập hoặc các thông tin lưu trữ cũ Việc các nút bị tổn hại có thể truyền các thông tin định tuyến sai lệch đến các nút khác, sẽ gây ra thiệt hại vô cùng nghiêm trọng Những đề xuất về các giải pháp định tuyến trong mạng ad hoc thường chỉ giúp mạng có khả năng hoạt động
Trang 15với cấu trúc liên kết năng động, nhưng về biện pháp an ninh thì các giải pháp đó mới chỉ cung cấp một phần hoặc không có Vì vậy, việc bảo mật an toàn trong định tuyến
ad hoc cũng là một trong những thách thức lớn
[+] Quản lý khóa: Nhìn chung, mục tiêu bảo mật và quản lý khóa trong mạng adhoc
có thể đạt được thông qua các cơ chế mã hóa như mật mã khóa công khai hoặc chữ ký
số Cơ chế này được hỗ trợ thông qua một nhà cung cấp chứng chỉ số (CA) chuyên cung cấp và xác minh chứng chỉ số để các nút có thể có được sự tin tưởng lẫn nhau Tuy nhiên cơ chế này đòi hỏi bên thứ ba là nhà quản lý CA phải có các giải pháp để cung cấp, xác minh các chứng chỉ số và các biện pháp để bảo mật trong việc chia sẻ khóa bí mật hay mật mã khóa công khai, những công việc này thường đòi hỏi cần có một quy mô lớn Ngoài ra cơ chế này còn yêu cầu các thiết bị di động của người sử dụng phải tích hợp chức năng sử dụng chứng chỉ số, điều này cũng là một phiền phức không nhỏ Cuối cùng mục tiêu của việc quản lý và bảo mật các khóa trong mạng ad hoc cùng gặp khó khăn lớn là do sự di động ngẫu nhiên của các nút nên các kết nối thường không được duy trì liên tục
1.3 GIẢI PHÁP AN NINH TRONG MẠNG AD HOC DỰA TRÊN GIAO THỨC THỎA THUẬN KHÓA
Trong một hệ thống bảo mật, theo khoá đối xứng truyền thống hay khóa công khai, việc thiết lập khoá, trao đổi khoá luôn luôn là một vấn đề cơ bản Khoá là đầu mối của sự an toàn bảo mật, nên sự an toàn của khâu quản lý (thiết lập, trao đổi) tất nhiên là tối quan trọng
Trao chuyển khoá trong các hệ thống đối xứng Trong các hệ thống này, hai người dùng cần phải sử dụng một khoá chung, tức là phải có cách trao đổi thông tin để thiết lập nên khoá này Nhưng khi này đường truyền tin không có bảo mật, vậy làm sao có thể giữ bí mật được thông tin trao đổi thiết lập khoá này? Điều này có thể thực hiện qua một số cách như sau:
[+] Hai người dùng sẽ sử dụng một kênh truyền tin mật bổ sung chẳng hạn như dùng người đưa thư Nhược điểm rõ ràng: tốn kém, chậm, độ an toàn vẫn bị đặt dấu hỏi (người đưa thư có tin cậy được không?)
[+] Trao đổi khoá thông qua một nhà thẩm quyền tin cậy : mỗi người dùng sẽ liên lạc bí mật với S (nhà thẩm quyền đáng tin) Mỗi người dùng cần thiết lập trước với S một kênh liên lạc bí mật, có thể là dùng khoá đối xứng với khoá chung được thiết lập do gặp gỡ trực tiếp Sau này nếu một người dùng A muốn thiết lập liên lạc bí mật với một người dùng B khác thì A có thể gửi yêu cầu thiết lập liên lạc tới B cho S
để qua S sẽ làm việc với B Nhờ qua S mà khóa chung được thiết lập giữa A và B
Nhược điểm: nó đòi hỏi phải có một nhà thẩm quyền đáng tin trên mạng mà việc này đòi hỏi khá nhiều vấn đề kèm theo không đơn giản Ngoài ra nó tạo ra một điểm thắt nút cổ chai (bottleneck) trên mạng do tất cả các khởi đầu liên lạc giữa một cặp thành viên bất kỳ đều phải thông qua S nên S sẽ dễ bị quá tải, gây tắc ngẽn
[+] Trao đổi khoá vẫn dùng kênh truyền tin công cộng sử dụng các giao thức thỏa thuận khóa
Trang 16Hãy xem xét một kịch bản như sau: một nhóm người tổ chức cuộc họp trong một căn phòng và họ muốn thiết lập một mạng ad hoc thông qua máy tính xách tay của họ Tất cả bon họ đều tin tưởng lẫn nhau, tuy nhiên không có một biện pháp bảo mật nào
để họ có thể xác thực lẫn nhau Trong cuộc họp họ không muốn bất cứ ai bên ngoài phòng có thể biết được cuộc trò chuyện của họ Với kịch bản này kẻ tấn công có thể dễ dàng gây tổn thương cho mạng bằng cách nghe lén, theo dõi các thông tin hay cũng có thể sửa đổi các tin nhắn và cũng có thể chèn các thông điệp làm cho mọi người trong phòng tưởng lầm kẻ tấn công là ai đó trong bọn họ Đây là một ví dụ cổ điển của mạng
ad hoc và cách đơn giản nhất, để bảo mật kịch bản này ta có thể dùng một “giấy” xác thực khóa công khai cho phép người tham gia xác minh sự gắn kết giữa các địa chỉ IP
và khóa của những người tham gia
Có hai vấn đề xảy ra:
[+] Sẽ rất khó khăn để xác định người tham gia nếu “giấy” xác thực của người tham gia đã bị thu hồi
[+] Những người tham gia có thể tham gia vào hai hoặc nhiều phân cấp xác thực, nhưng ta chưa có hệ thống phân cấp xác thực chéo
Một số giải pháp:
[+] Sử dụng một bên thứ ba tin cậy có khả năng xác thực các bên tham gia, tuy nhiên giải pháp này không phải lúc nào cũng khả thi do tính chất không có sự hỗ trợ của cơ sở hạ tầng trong mạng ad hoc
[+] Tạo ra các kênh truyền vật lý an toàn cho những người có mặt trong phòng thương lượng các khóa phiên trước khi chuyển sang các kênh không dây không an
toàn
1.3.1 Thỏa thuận khóa có chứng thực mật khẩu
Khi một nhóm các thành viên tham gia trao đổi thông tin thì một mật khẩu sẽ được chọn và chia sẻ giữa những người tham gia trong nhóm Nếu mật khẩu này là một chuỗi ngẫu nhiên dài, thì có thể đảm bảo an ninh nhưng lại kém thân thiên với người dùng Nếu mật khẩu là một cụm từ theo ngôn ngữ tự nhiên, thì nó sẽ thân thiện với người dùng hơn, tuy nhiên lại bị dễ dàng tấn công theo hìn thức tấn công từ điển
Vì vậy yêu cầu đặt ra là cần phải chọn ra được một khóa chung mạnh từ một mật khẩu chia sẻ yếu
Một giao thức thông thường nhất được đề xuất như sau:
A và B là hai thành viên sẽ trao đổi thông tin với nhau dựa trên một khóa bí mật p, (EA, SA) là khóa của A
[1] A sẽ mã hóa mật khẩu bằng khóa p và gửi đến B Và A cũng gửi kèm một nhãn „A‟
để xác định chính nó
A > B : A, P(EA)
Thông báo này nhằm xác thực xem B có biêt mật khẩu P hay không, B chỉ có thể giải
mã và lấy được EA khi B biết được mật khẩu p
Trang 17[2] B nhận được gói tin sẽ tiến hành sử dụng khóa p để giải mã p(EA) và lấy được EA
B tạo ngẫu nhiên số „R‟ và mã hóa nó bởi EA Sau đó toàn bộ thông tin đều đươc mã hóa bởi p và gửi đến A
B > A : P(EA (R))
Thông báo này nhằm xác thực xem A có biêt mật khẩu P hay không, A chỉ có thể giải
mã và lấy được R khi A biết được mật khẩu p
[3] A nhận được gói tin từ B sẽ giải mã gói tin và lấy được „R‟ A sẽ chọn cho mình một số ngẫu nhiên (challenge)A và SA, rồi sử dụng R vừa giải mã được để mã hóa nó
và gửi cho B
A > B : R((challenge)A, SA)
Thông báo này đóng vai trò như một sự ghi nhận là A đã lấy được R thành công
[4] B nhận được gói tin sẽ giải mã thông tin nhận được và lấy được (challenge)A và SA
B sẽ sử dụng một hàm băm h để băm (challenge)A Sau đó B cũng chọn cho mình (challenge)B, SB và gửi toàn bộ h((challenge)A), (challenge)B và SB được mã hóa bởi R cho A
Vào bước cuối cùng của mỗi lần trao đổi khóa, mỗi thành viên sẽ trao đổi khóa của mình với người đứng đầu Sau đó người đứng đầu sẽ chọn ra khóa chung cả nhóm
và phân phối nó cho những người dung khác Tuy nhiên hạn chế của giao thức này là khóa chung chỉ được tính bởi người đứng đầu
Trang 18Chúng ta có thể thay đổi giao thức để cho nó có thể hoạt động như một giao thức mà tất cả các bên đều tham gia tính toán khóa chung như sau:
Trong hai bước cuối cùng 4 và 5 đều sử dụng khoá K là khóa chung của cả A và B
để mã hóa, điều này giúp cả hai xác thực khóa dùng chung K
Với giao thức đã sửa đổi này ta có thể dễ dàng mở rộng cho nhiều bên tham gia
Ví dụ: giả sử ta có tập hợp n thành viên Mi với i=1…n với Mn được chọn là người đứng đầu, Si là khóa ngẫu nhiên được chọn bởi thành viên Mi tham gia
Nếu như kẻ tấn công chiếm được một nút (trừ nút Mn) giao thức này có ưu điểm khó phá vỡ Nhưng kẻ tấn công có thể gửi các tin nhắn rác, và các thành viên sẽ xây dựng khóa chung trong đó có cả khóa rác của kẻ tấn công Tuy nhiên do kẻ tấn công không biết khóa khởi tạo p ban đầu nên nó cũng không thể xác định được khóa cuối cùng của nhóm
Trong giao thức này cũng có một số chậm chễ nhất định do người đứng đầu phải chờ đợi các thông điệp trả về từ các thành viên thì mới có thể tiến hành tính toàn và gửi trả lại thông tin
Hạn chế của giao thức:
[+] Theo giao thức ta thấy có một số lượng lớn các thông tin được mã hóa bằng cách
sử dụng một khóa yếu P mà trong bước một của giao thức khóa E được P mã hóa và
Trang 19gửi cho tất cả các thành viên, do đó E không thể là một khóa tốt xét về lâu dài được
Vì vậy, việc sử dụng một cặp khóa mới cho mỗi lần chạy giao thức này là quan trọng
và đây là sự trả giá về mặt tính toán
[+] Các thành phần của khóa mã E có các đặc điểm đặc biệt có thể giúp cho kẻ tấn công tấn công từ điển lên P(E) Do đó ta lại cần phải quan tâm đến mã hóa các thành phần không dự đoán được của E, điều này làm tăng chi phí tính toán của giao thức
1.3.2 Giao thức thỏa thuận khóa Diffie-Hellman
Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa công khai Công trình này chịu sự ảnh hưởng trước đó của Ralph Merkle về phân phối khóa công khai Trao đổi khóa Diffie-Hellman (DH) là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không an toàn
[+] Các khái niệm toán học trong giao thức Diffie-Hellman
Một nhóm G được gọi là nhóm cyclic nếu trong G tồn tại phần tử sinh g sao cho
G = <g> = { gn với mọi số nguyên n } Chẳng hạn, nếu G = { e, g1, g2, g3, g4,
g5}, thì G là cyclic, và G là đẳng cấu với nhóm của các số { 0, 1, 2, 3, 4, 5 } với phép cộng modulo 6
Căn nguyên thủy modul n :
Nếu n ≥ 1 là một số nguyên thì các số nguyên nguyên tố cùng nhau với n tạo thành một nhóm với phép nhân modulo n, nhóm này được ký hiệu là Zn* Nhóm này là nhóm cyclic nếu và chỉ nếu n bằng pk
(p là một số nguyên tố p ≥ 3
và lũy thừa k ≥ 1)
Phần tử sinh của nhóm cyclic sẽ được gọi là một căn nguyên thủy modulo n, hay một phần tử nguyên thủy của Zn* Nói cách khác, một căn nguyên thủy modulo n là một số nguyên g mà mọi số nguyên không có ước chung nào khác với n ngoài các lũy thừa của g (mod n)
Bậc của 3 và 5 là 6
Bậc của 9 và 11 là 3
Bậc của 13 là 2
Trang 20Vậy 3 và 5 là căn nguyên thủy modulo 14
Một ví dụ khác với n = 15 ta có các phần tử của Zn* là các lớp đồng dư của {1,
Trong giao thức trao đổi khóa Diffie-Hellman cơ bản, hai bên A và B sẽ cùng khởi tạo một số nguyên tố lớn p (ít nhất là 512 bit) và một số g là căn nguyên thủy modulo
p (2 ≤ g ≤ p-2) hay g còn gọi là phần tử sinh của nhóm cyclic Zp*
Các bước trao đổi khóa trong giao thức Diffie-Hellman:
[1] A chọn số tự nhiên a (bí mật) ( 1 ≤ a ≤ p-2)
A tính (ga) mod p và gửi kết quả cho B
A > B : (ga) mod p [2] B chọn số tự nhiên b (bí mật) ( 1 ≤ b ≤ p-2)
B tính (gb) mod p và gửi kết quả cho A
B > A : (gb) mod p
A tính : (gb mod p)a mod p
B tính : (ga mod p)b mod p
Sau các bước trên A và B đều có khóa chung là:
(g b mod p)a mod p = (ga mod p)b mod p = g(a*b) mod p
Kẻ tấn công chỉ có thể nghe trôm được trên đường truyền giá trị của (ga mod p) và (gb mod p) Nếu chỉ dựa vào hai giá trị trên kẻ tấn công sẽ rất khó để tìm ra khóa chung K vì để tìm được K kẻ tấn công phải giải mã để biết được giá tri a và b, lúc này
độ an toàn của giao thức được quyết định bởi tính khó của bài toán logarit rời rạc
Trang 21A và B sẽ tính khóa chung
keya = (ga mod p)b mod p = 1565 mod 541 = 193
keyb = (gb mod p)a mod p = 4567 mod 541 = 193
Vậy cả A và B đều có khóa chung keya = keyb = 193
Tuy nhiên giao thức này có điểm yếu là nó không an toàn với hình thức tấn công mitm (man-in-the-middle) Như trong hình vẽ mô tả kẻ tấn công có thể đứng giữa Alice và Bob để thiết lập khóa chung là KA = (Az mod p) và KB = (Bz mod p), trong khi Alice và Bob cứ tưởng là mình đã thiết lập hai khóa chung với nhau
Một giải pháp đã được đề xuất đề khắc phục điểm yếu trên như sau:
[1] A chọn số tự nhiên a (bí mật) ( 1 ≤ a ≤ p-2)
A tính (ga) mod p và gửi kết quả cho B
A > B : (ga) mod p
[2] B chọn số tự nhiên b (bí mật) ( 1 ≤ b ≤ p-2)
B tính (gb mod p) và khóa chung của cả hai là K = (ga mod p)b mod p
B dùng K để mã hóa SB(ga, gb) Sau đó B gửi cả (gb mod p) và K(SB(ga,gb)) cho A (trong đó SB(ga, gb) là chữ ký của B lên ga
, gb
B > A : (gb mod p), K(SB(ga, gb))
[3] A nhận được tính khóa chung của cả hai là K = (gb mod p)a mod p
A dùng K giải mã K(SB(ga, gb)) và xác thực lại giá trị ga
A dùng K để mã hóa SB(ga, gb) rồi gửi cho B (trong đó SA(ga
, gb) là chữ ký của A lên ga
, gb
A > B : K(SA(ga, gb))
Sau các bước trên A và B đều có khóa chung là:
(g b mod p)a mod p = (ga mod p)b mod p = g(a*b) mod p
Hình 1.4: Hình thức tấn công Man-in-the-middle trong giao thức Diffie-Hellman
Trang 22Chương 2 - GIAO THỨC THỎA THUẬN KHÓA TRONG MẠNG AD HOC
Giao thức thỏa thuận khóa (GKA) được sử dụng nhiều trong các ứng dụng nhóm khác nhau bao gồm cả điện thoại và video hội nghị, tư vấn từ xa, hệ thống chẩn đoán cho y tế…Đã có rất nhiều giao thức GKA được đưa ra, mỗi một giao thức đều có điểm manh và yếu khác nhau nhưng các giải pháp đưa ra đều phải thỏa các yếu tố sau: [+] Tất cả các bên đều phải tham gia vào giao thức GKA (group key agreement) [+] Không có một cá thể nào đảm nhận vai trò điều khiển quá trình thực thi của giao thức Thay vào đó có một vài cá thể đòng vài trò "đứng đầu" trong 1 thời gian ngắn
Trang 23Có nhiều đề xuất các giải pháp nhưng các giải pháp đều có chung các phương thức sau:
IKA (Initial Key Agreement) : Phương thức khởi tạo khóa ban đầu của nhóm
AKA (Auxiliary key agreement) : Thay đổi, tạo khóa của nhóm trong các
trường hợp:
+ Gia nhập nhóm (join) : Khi có thành viên gia nhập nhóm
+ Rời khỏi nhóm (delete) : Khi có thành viên rời khỏi nhóm
+ Chia nhỏ nhóm (partion) : Khi một nhóm bị chia thành hai hay nhiều
nhóm nhỏ hơn Có thể coi như phương thức “delete” với nhiều hơn 1 thành viên rời nhóm
+ Hợp nhất nhóm (merge) : Khi hai hoặc nhiều nhóm hợp lại thành một
nhóm 2.1 BỘ GIAO THỨC ASOKAN-GINZBOORG CHO MẠNG AD HOC TĨNH
Becker và Wille đã đề xuất bộ giao thức hypercube bao gồm cube và octopus, trong đó có sử dụng giao thức trao đổi khóa Diffie-Hellman giữa các bên khá hiệu quả Sau đó Asokan và Ginzboorg đã mở rộng phát triển thêm bộ giao thức hypercube với việc xác thực khóa của các bên tham gia và khả năng đối phó với các sự kiện bị lỗi, bộ giao thức mới mở rộng này được gọi là bộ giao thức Asokan-Ginzboorg
2d-Một trong những lợi thế chính của các giao thức được mô tả trong phần này là chi phí bộ nhớ thấp hơn, mỗi thành viên chỉ cần biết chìa khóa thỏa thuận, do đó chi phí bộ nhớ là chỉ có 1 Tuy nhiên, cả hypercube và Asokan-Ginzboorg chỉ có thể xử lý việc thỏa thuận khóa trong các nhóm tĩnh, vì vậy nó chỉ phù hợp với mạng ad hoc tĩnh
2.1.1 Bộ giao thức 2d-cube và 2d-octopus
2.1.1.1 2d-cube
[+] Giả sử có n thành viên tương ứng với n nút sẽ tham gia vào giao thức
Toàn bộ quá trình trao đổi khóa của n=2d nút sẽ chạy với d vòng
Các nút sẽ được đánh số theo cơ số 2 từ 1 đến n
[+] Ở vòng j các nút có địa chỉ là A sẽ tiến hành trao đổi khóa DH với nút có địa chỉ là
A xor 2j-1
Với tính chất a xor b= c thì c xor b =a
Sau vòng j sẽ có 2d-j cặp khóa (Tức sau 1 vòng số khóa giảm đi 1 nửa)
[+] Sau d vòng thì tất cả các nút có khóa giống nhau
Ví dụ : Giả sử chúng ta có 4 thành viên tham gia vào một nhóm Quá trình giao thức
2d-cube thỏa thuận khóa được thể hiện trong hình dưới đây
Bốn người tham gia, A, B, C, và D được đánh dấu theo thứ tự với 2 bit địa chỉ theo cơ số 2 là 00, 01, 10, và 11, tương ứng Vì có 4 người = 2d
nên ta cần d=2 vòng để thỏa thuận khóa chung của nhóm
[+] Trong vòng đầu tiên, A và B thực hiện hai bên trao đổi khóa DH và tính toán khóa
bí mật KAB = grA*rB
C và D cũng làm tương tự để trao đổi khóa KCD = grC*rD
Trang 24[+] Vòng tiếp theo A và C thực hiện trao đổi khóa DH với nhau với khóa đạt được ở vòng trước B và D cũng làm tương tự
Sau 2 vòng ta có khóa chung là
Tuy nhiên giao thức 2d-cube ở trên chỉ hoạt động khi số người tham gia là một
lũy thừa của 2 Đối với trường hợp tổng quát, giao thức 2d-octopus sẽ được giới thiệu trong hình 2.2
Hình 2.2: Minh họa giao thức 2d-cube cho 4 nút
Trang 25[+] Ở vòng đầu tiên các nút có địa chỉ A với A>2d sẽ tiến hành trao đổi khóa DH với các nút có địa chỉ A-2d
[+] Vòng tiếp theo 2d nút còn lại sẽ tiến hành trao đổi khóa theo giao thức 2d-cube [+] Cuối cùng khóa sẽ được các nút 2d
phân phối cho các nút có địa chỉ A>2d
Ví dụ : Giả sử chúng ta có 7 thành viên tham gia vào một nhóm Quá trình giao thức
2d-octopus thỏa thuận khóa được thể hiện trong hình 2.3
Giả sử 7 người tham gia P0, P1, · · ·, P6 được đánh dấu theo thứ tự với 3 bit địa chỉ theo cơ số 2 là 000, 001, · · ·, 110, tương ứng P0, P1, P2 và P3 là bộ điều khiển trung tâm, P4, P5, P6, là các nút liên kết
[+] Trong vòng đầu tiên thì :
P4 và P0, P1 và P5, P2 và P6 sẽ thực hiện trao đổi khóa DH
Trong bộ giao thức 2d-cube và 2d-octopus không có sự chứng thực của những
bên tham gia vào nhóm Một giải pháp đã được đề xuất bởi Asokan và Ginzboorg : Ban đầu hai bên A và B sẽ cùng khởi tạo một số nguyên tố lớn p và một số g là bội
số của tập Zp* {1, 2, …, p-1} A và B chọn ngẫu nhiên khóa bí mật của mình SA, SB với 1 <= SA, SB <= p-2 Mục tiêu của giao thức là phải chọn ra được một khóa chung
K mạnh từ một mật khẩu chia sẻ yếu ban đầu là P Quá trình trao đổi khóa DH giữa 2 thành viên A và B sẽ gồm 4 bước như sau :
[1] A tính (gSA) mã hóa nó bởi P sau đó gửi kết quả đến B
A > B : A, P(gSA)
[2] B dùng P giải mã gói tin và lấy được gSA
B tính gSB và khóa chung của cả hai là K=(gSA)SB
Tiếp theo B chọn một số ngẫu nhiên CB và mã hóa nó bằng khóa K
B mã hóa SB bằng khóa P Sau đó nó sẽ gửi P(SB), K(CB) cho A
B > A : P(SB), K(CB)
[3] A dùng P giải mã gói tin và lấy được gSB
Tiếp A tính khóa chung của cả hai là K=(gSA)SB
Sau đó dùng K để giải mã K(CB) và lấy được CB
A chọn một số ngẫu nhiên CA và mã hóa cả CA,CB bằng K và gửi nó đến B
A > B : K(CA, CB)
Trang 26Thông báo này của A gửi cho B nhằm xác thực rằng A đã giải mã thông báo [2] của B một cách chính xác
[4] B dùng K giải mã gói tin và lấy được CA
Sau đó mã hóa CA bằng K và gửi nó đến A
B > A : K(CA)
A giải mã các tin nhắn để xác thực lại giá trị CA Điều này giúp A khẳng định được rằng A và B đều biết K
2.1.2.2 Khả năng để đối phó với các sự kiện bị lỗi
Giao thức 2d-octopus hoạt động tốt khi có thêm thành viên mới gia nhập vào
nhóm Tuy nhiên, nó lại không hiệu quả khi một thành viên rời khỏi nhóm Một vấn đề
khác nữa là giao thức 2d-octopus không giải quyết được khi có bất kỳ sự trao đổi khóa
nào giữa hai bên bị lỗi Becker và Wille đã không chỉ ra được làm thế nào để đối phó
với vấn đề này Asokan và Ginzboorg đã cung cấp một giải pháp để đối phó với
những vấn đề trên
Trong phương pháp Asokan và Ginzboorg, nếu một nút trong quá trình tìm một thành viên để trao đổi khóa DH trong một vòng bị lỗi, nó sẽ sử dụng một thuật toán phân phối để tìm một thành viên khác phù hợp không bị lỗi
Ví dụ : Giả sử chúng ta có 8 người tham gia được đánh địa chỉ với 3 bit như hình vẽ Trong quá trình trao đổi khóa giả sử G bị lỗi, quá trình trao đổi khóa sẽ diễn
ra như sau:
[+] Trong vòng 1 : Các nút tiến hành tìm các đối tác để trao đổi khóa DH Với thành viên H:111 sẽ tìm các thành viên có d-k=3-1=2 bit đầu giống nhau và k=1 bit cuối khác nhau để trao đổi khóa DH, ở đây là thành viên G:110 Nhưng do G bị lỗi nên
H sẽ không làm gì cả
[+] Trong vòng 2 : Nút E:100 sẽ tìm các thành viên có d-k=3-2=1 bit đầu giống nhau và k=2 bit cuối khác nhau để trao đổi khóa DH, ở đây sẽ gồm H:111 và G:110 Nút G sẽ được ưu tiên trước, nhưng do G bị lỗi nên E sẽ chọn H để trao đổi khóa DH
[+] Trong vòng 3: Nút C:010 sẽ tìm các thành viên có d-k=3-3=1 bit đầu giống nhau và k=3 bit cuối khác nhau để trao đổi khóa DH, ở đây sẽ gồm H:111 và G:110 Nút G sẽ được ưu tiên trước, nhưng do G bị lỗi nên C sẽ chọn H để trao đổi khóa DH
Trang 27Hình 2.4: Minh họa khả năng đối phó với sự kiện bị lỗi của giao thức
Asokan-Ginzboorg
2.2 SỰ MỞ RỘNG CỦA GIAO THỨC DIFFIE-HELLMAN CHO MỘT NHÓM
Tất cả các giao thức đề xuất trong phần này là CLIQUES-I và CLIQUES-II đều
để giải quyết một vấn đề khó khăn duy nhất trong giao thức Diffie-Hellman đó là: Khi hai bên tham gia vào giao thức Diffie-Hellman và trao đổi cho nhau khóa (ga
bậc q với p=kq+1 (k là số tự nhiên nhỏ)) , α là phần tử sinh của G
và giữa hai thành viên bất kỳ Mi, Mj chia sẻ khóa riêng biệt Kij Khóa riêng biệt Kij = (αxi*xj mod p) là khóa sinh ra giữa hai thành viên Mi, Mj bằng giao thức DH, với xi là khóa bí mật của Mi và (αxi
mod p) là khóa công khai tương ứng (Các định nghĩa toán học này đã được giới thiệu trong mục 1.2.2)
2.2.1 Giao thức Cliques-I
2.2.1.1 Khởi tạo khóa ban đầu trong Cliques-I
Quá trình tạo khóa ban đầu có thể chia thành 2 giai đoạn:
[+] Giai đoạn 1 gồm n-1 vòng :
- Các thành viên sẽ thống nhất chọn p là một số nguyên tố lớn, q là ước số
nguyên tố của p-1 và G là nhóm cyclic con bậc q của Zp* ,còn α là phần tử sinh của G
- Các thành viên tự chọn cho mình khóa bí mật r (thuộc Zq*), sau đó tính toán với khóa của mình rồi lần lượt gửi cho nhau
- Quá trình thu thập khóa cứ tiếp diễn đến thành viên cuối cùng
[+] Giai đoạn 2 gồm 1 vòng :
Trang 28- Khi thành viên cuối cùng nhận được khóa, sẽ đóng vai trò như người điều khiển tạm thời tính toán các kết quả và gửi lại cho tất cả các thành viên trong nhóm
- Các thành viên trong nhóm sẽ tính toán ra khóa dùng chung theo công thức
Sau quá trình tính toán trên các thành viên có khóa chung là αr1*r2*…*rn
Bảng 2.1: Thuật toán khởi tạo khóa của CLIQUES-I
Hình 2.5: Quá trình khởi tạo khóa ban đầu của nhóm trong CLIQUES-I
Ví dụ: Giả sử có 1 nhóm có 4 thành viên ban đầu Việc tạo khóa ban đầu sẽ diễn ra theo trình tự :
[+]Các thành viên tự chọn cho mình 1 khóa bí mật và thống nhất với nhau số nguyên tố p và α sẽ sử dụng
[+] Các thành viên tự chọn cho mình khóa bí mật r1, r2, r3, r4 là các phần tử thuộc
Trang 29D tính toán khóa dung chung là K = αr1*r2*r3*r4
D gửi lại các kết quả tính toán cho các thành viên:
DA : K = αr2*r3*r4*K14DB : K = αr1*r3*r4*K24DC : K = αr1*r2*r4*K34Sau đó các thành viên tự tính toán kết hợp với khóa của mình để ra khóa dùng chung
là K = αr1*r2*r3*r4
Bảng 2.2: Bảng tính độ phức tạp tính toán quá trình khởi tạo khóa của CLIQUES-I
2.2.1.2 Quá trình gia nhập thành viên mới và hợp nhất các nhóm trong Cliques-I
a Quá trình gia nhập thành viên mới
Quá trình tạo này chia thành 2 bước:
[+] Bước 1:
- Khi 1 thành viên (n+1) muốn gia nhập vào nhóm, thì thành viên n đang tạm thời
đảm nhận vai trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của
minh rn‟, tính toán lại các kết quả khóa đang lưu trữ
- Sau đó n sẽ chuyển tất cả các tính toán cho thành viên mới
[+] Bước 2:
- Thành viên mới sẽ chọn cho mình một khóa rn+1 (thuộc Zq*)
- Sau đó thành viên mới sẽ tiếp nhận vai trò “người điều khiển” mới, tính toán
các kết quả và gửi lại cho các thành viên trong nhóm như sau:
- Các thành viên trong nhóm sẽ tính toán ra khóa dùng chung theo công thức
Sau quá trình tính toán trên các thành viên có khóa chung là αr1*r2*…*rn
Ví dụ: Giả sử ở đây thành viên E sẽ ra nhập nhóm trên, E tự chọn cho mình
khóa bí mật r5 Thành viên D đang giữ vai trò “người điều khiển” tạm thời, D sẽ chọn
Trang 30cho mình 1 khóa bí mật mới là r4‟ và chuyển các kết quả tính toán với khóa r4‟ mới gồm αr2*r3*r4‟, αr1*r3* r4‟, αr1*r2* r4‟, αr1*r2*r3, αr1*r2*r3* r4‟ cho thành viên mới E
E sẽ đảm nhận vai trò “người điều khiển” tạm thời mới tính toán các kết quả và
gửi lại cho từng thành viên :
EA : K = αr2*r3* r4‟*r5*K15EB : K = αr1*r3* r4‟*r5*K25EC : K = αr1*r2* r4‟*r5*K35ED : K = αr1*r2*r3*r5*K45 Sau đó các thành viên tự tính toán kết hợp với khóa của mình để ra khóa dùng chung là K = αr1*r2*r3* r4‟*r5
Bảng 2.3: Thuật toán tính khóa khi có thành viên mới gia nhập của CLIQUES-I
Hình 2.6: Quá trình gia nhập thành viên mới trong CLIQUES-I
Bảng 2.4: Độ phức tạp tính toán quá trình gia nhập thành viên mới CLIQUES-I
Trang 31b Quá trình hợp nhất các nhóm
Khi một nhóm có n phần tử hợp nhất với một nhóm có k phần tử thành viên n
đang tạm thời đảm nhận vai trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí
mật của minh rn‟, tính toán lại các kết quả khóa đang lưu trữ Sau đó n sẽ chuyển tất cả các tính toán cho thành viên mới Mn+1 Quá trình này sẽ được lập lại đến hết các thành
viên mới Lúc này thành viên đảm nhận vai trò “người điều khiển” sẽ chuyển các kết
quả tính toán cho các thành viên trong nhóm
Các thành viên trong nhóm sẽ kết hợp với khóa của mình tính toán ra khóa dung chung của nhóm
Ví dụ một nhóm có hai phần tử gia nhập nhóm có ba phần tử như hình minh họa sau:
Hình 2.7: Quá trình hợp nhất các nhóm trong CLIQUES-I
Thành viên thứ 5 gia nhập nhóm lúc cuối sẽ đóng vai trò “người điều khiển” tạm
thời mới tính toán các kết quả và gửi lại cho từng thành viên Các thành viên sẽ tự tính
ra khóa dùng chung của cả nhóm
Bảng 2.5: Bảng tính độ phức tạp quá trình hợp nhất nhóm của CLIQUES-I
2.2.1.3 Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-I
a Quá trình rời nhóm
Trang 32Khi 1 thành viên rời khỏi 1 nhóm, , thì giả sử thành viên n đang tạm thời đảm
nhận vai trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của mình là rn‟
và tiến hành tính toán lại rồi chuyển các kết quả tính toán cho các thành viên trong nhóm trừ thành viên mới rời nhóm
Ví dụ : Trong nhóm bên dưới gồm các thành viên A,B,C,D,E với các khóa bí mật tương ứng r1, r2, r3, r4, r5
Khi D rời nhóm, lúc này E là “người điều khiển “ tạm thời sẽ chọn lại khóa bí
mật của mình là r5‟ và tính toán lại, sau đó gửi các kết quả cho các thành viên còn lại trong nhóm
EA : K = αr2*r3*r4*r5‟*K15EB : K = αr1*r3*r4*r5‟*K25EC : K = αr1*r2*r4 *r5‟*K35Các thành viên sẽ kết hợp với khóa của mình tính ra khóa chung mới là :
2.2.2 Giao thức Cliques-II
2.2.2.1 Khởi tạo khóa ban đầu trong Cliques-II
Quá trình tạo khóa ban đầu có thể chia thành các bước:
Trang 33- Mỗi thành viên Mi sẽ chuyển cho Mi+1 kết quả tính toán αr1*r2*…*ri (với 0<i<n-1)
[+] Bước 2: Thành viên Mn-1 sau khi nhận được kết quả tính toán của Mn-2 sẽ tính toán
αr1*r2*…*rn-1
và gửi broadcasts kết quả tính toán cho tất cả các thành viên trong nhóm
[+] Bước 3: Các thành viên trong nhóm sau khi nhận được gói tin từ Mn-1 sẽ tiến hành tính toán và gủi kết quả đến Mn
[+] Bước 4: Mn sau nhận được các gói tin từ các thành viên sẽ tính toán và gửi broadcasts lại cho tất cả các thành viên
Các thành viên trong nhóm sẽ tính toán ra khóa dùng chung theo công thức
Ví dụ : Giả sử có 1 nhóm có 4 thành viên, việc tạo khóa ban đầu sẽ diễn ra theo trình
o Tất cả các thành viên nhận được thông tin từ C liền tính toán và gửi đến
D : AD : αr2*r3 BD : αr1*r3 CD : αr1*r2
o D nhận được liền tính αr1*r3*r4, αr2*r3*r4, αr1*r2*r4, αr1*r2*r3*r4
D tính toán khóa dung chung là K = αr1*r2*r3*r4
D gửi lại cho các thành viên
Trang 34DA : K = αr2*r3*r4*K14DB : K = αr1*r3*r4*K24DC : K = αr1*r2*r4*K34Sau đó các thành viên tự tính toán kết hợp với khóa của mình để ra khóa dung chung là K = αr1*r2*r3*r4
Hình 2.9: Quá trình khởi tạo khóa ban đầu của nhóm trong CLIQUES-I
Bảng 2.6: Thuật toán khởi tạo khóa của CLIQUES-II
Bảng 2.7: Bảng tính độ phức tạp quá trình khởi tạo khóa của CLIQUES-II
Trang 352.2.2.2 Quá trình gia nhập thành viên mới và hợp nhất các nhóm trong Cliques-II
Quá trình này tương tự như trong giao thức CLIQUES-I Khi 1 thành viên (n+1)
muốn gia nhập vào nhóm, thì thành viên n đang tạm thời đảm nhận vai trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của minh rn‟, tính toán lại các kết quả và
chuyển tất cả các tính toán cho thành viên mới Và thành viên mới sẽ tiếp nhận vai trò
“người điều khiển” mới, kết hợp các kết quả tính toán với khóa của mình và gửi lại cho
từng thành viên trong nhóm Các thành viên trong nhóm sẽ tiến hành tính toán lại để sinh ra khóa mới
2.2.2.3.Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-II
Quá trình này tương tự như trong giao thức CLIQUES-I Khi 1 thành viên rời
khỏi 1 nhóm, thì giả sử thành viên n đang tạm thời đảm nhận vai trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của mình là rn‟ và tiến hành tính toán lại
rồi chuyển các kết quả tính toán cho các thành viên còn lại trong nhóm Các thành viên trong nhóm sẽ tiến hành tính toán lại để sinh ra khóa mới
2.3 QUẢN LÝ KHÓA TRONG MẠNG AD HOC DỰA TRÊN CÂY KHÓA
2.3.1 Giao thức STR
STR được tối ưu hóa để làm việc với sự trễ của mạng truyền thông, nó đặc biệt hiệu quả đối với thỏa thuận nhóm khóa trong mạng lưới có độ trễ cao STR sử dụng một cây chìa khóa để quản lý nhóm khóa Mỗi một nút Mi được gắn với một nút lá LNi Mỗi nút nội bộ INi lại được liên kết với hai con là : nút con trái INi-1 và nút con phải LNi
Hình 2.10: Mô tả một cây STR Mỗi nút lá LNi chọn ngẫu nhiên một khóa ri bí mật, và tính bri = gri
mod p Một nút nội bộ INi có một khóa ki và một khóa công khai bki = gki
Trang 36Kết quả ta sẽ đƣợc khóa chung 4 phần tử là :
2.3.1.1 Khởi tạo khóa ban đầu trong giao thức STR
[+] Mỗi thành viên Mi ban đầu chọn ngẫu nhiên một khóa ri bí mật ngẫu nhiên, và tính
bri = gri Sau đó gửi broadcasts bri đến toàn mạng
[+] Thành viên M1 :
Tính toán đệ quy tất cả
Sau quá trình tính toán trên M1 sẽ tính đƣợc khóa chung là Kn
Sau đó M1 sẽ gửi broadcasts các giá trị bki với i = 2,…, n-1 đến tất cả thành viên trong mạng
[+] Các thành viên Mi với i>1 sẽ tính toán ki = (bki-1)ri và tính toán đệ quy tất cả giá trị
kj với :
Sau quá trình tính đệ quy trên Mi sẽ tìm đƣợc khóa chung là Kn
Bảng 2.8: Bảng tính độ phức tạp tính toán khởi tạo khóa của STR
Trang 37Như vậy với một nút C bất kỳ sau khi tính toán nó sẽ lưu trữ các giá trị :
rc
bri , bki , với i = 1…n (br1=bk1)
ki với i = c…n
2.3.1.2 Quá trình gia nhập nhóm trong giao thức STR
Giả sử nhóm hiện tại có n thành viên, một thành viên mới tham gia vào nhóm là
Mn +1 Cây sẽ được cập nhật bằng cách tăng số nút lên n +1 và thêm một nút nội bộ
INn+1 mới với hai con: con trái là nút nội bộ INn và con phải là nút lá LNn+1 Nút INn+1
sẽ trở thành nút gốc của cây mới
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Thành viên mới sẽ chọn cho mình một khóa bí mật rn+1 và tính brn+1 gửi brn+1 đến cho toàn bộ các thành viên trong nhóm
Thành viên gốc cũ Mn :
Chọn lại cho mình một khóa rn và tính lại brn
Tính lại kn và bkn
Gửi broadcasts đến toàn mạng giá trị brn và bkn
[+] Đối với mỗi thành viên Mi tính toán lại khóa :
Nếu i = 1,…,n-2 tính kn và kn+1
Nếu i = n (gốc cũ) tính kn+1 = (brn+1)kn
Nếu i = n+1 (nút mới) tính ra khóa kn+1 = (bkn)^rn+1
Sau quá trình tính như trên ta được khóa chung cả nhóm là kn+1
Hình 2.11: Quá trình gia nhập nhóm của cây STR
Trang 38Bảng 2.9: Bảng tính độ phức tạp tính toán quá trình gia nhập nhóm của STR
2.3.1.3 Quá trình rời nhóm trong giao thức STR
Giả sử chúng ta có một nhóm gồm n thành viên n và Mj là thành viên rời khỏi nhóm, với 1 ≤ j ≤ n Chúng ta cần một nút đóng vai trò nút “bảo đảm” Ms để cập nhật các khóa ngẫu nhiên Nếu j > 1, nút Ms là nút lá trực tiếp dưới nút dời đi tức là Mj-1, nếu j=1 thì nút “bảo đảm” là M2 Sau đó cây sẽ được cập nhật và đánh số lại
Hình 2.12: Quá trình rời nhóm của cây STR Quá trình tính toán lại khóa sẽ theo thuật toán sau:
Gửi broadcasts đến toàn mạng giá trị brs và bki với i = s…n-1
[+] Đối với mỗi thành viên Mi tính toán lại khóa :
Nếu i < s tính
Nếu i > s thì