Tải bản đầy đủ (.pdf) (77 trang)

Xây dựng giải pháp an ninh trong mạng AD HOC đa trạm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.9 MB, 77 trang )

ĐẠ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








LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN















Hà Nội – 2012









































ĐẠ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



Mụ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


2.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


Danh 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



Danh 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


Danh 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

1

MỞ ĐẦ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



2
Chƣơ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

3
bị 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.

4

1.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ẽ

5
đƣợ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

6
thể đ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
sẽ là vô cùng nghiêm trọng.
1.2.2.3. Mạo danh
Các cuộc tấn công mạo danh tạo thành một nguy cơ bảo mật nghiêm trọng trong
tất cả các cấp độ của mạng ad hoc . Nếu sự xác thực của các bên tham gia không đƣợc
hỗ trợ, một nút bị tổn hai trong mạng có thể cố tình gửi sai thông tin của một nút trong
mạng. Trong cấp độ quản lý mạng, những kẻ tấn công có thể đạt đƣợc truy cập vào hệ
thống cấu hình nhƣ một ngƣời quản trị. Ở cấp độ dịch vụ, một nút độc hại có thể có
chứng nhận khóa công khai của nó thậm chí khi nó không có các thông tin thích hợp.
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

7
đƣợ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

8
vớ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.

9
Hã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, (E
A,
S
A
) 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(E
A
).
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 E

A
khi B biết đƣợc mật khẩu p.

10
[2] B nhận đƣợc gói tin sẽ tiến hành sử dụng khóa p để giải mã p(E
A
) và lấy đƣợc E
A
.
B tạo ngẫu nhiên số „R‟ và mã hóa nó bởi E
A
. Sau đó toàn bộ thông tin đều đƣơc mã
hóa bởi p và gửi đến A.
B > A : P(E
A
(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à S
A
, 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
, S

A
).

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à S
A
.
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
, S
B
và gửi toàn bộ h((challenge)
A
), (challenge)
B
và S
B
đƣợc mã hóa bởi R
cho A
B > A : R(h((challenge)
A
), (challenge)
B
, S

B
).

Hàm băm h((challenge)
A
) B gửi cho A nhƣ một chữ ký xác thực lại với A rằng B đã
nhận đƣợc đúng (challenge)
A
và S
A.

[5] A giải mã thông tin nhận đƣợc và lấy ra đƣợc (challenge)
B
và S
B .
A sẽ dùng hàm
băm h để băm (challenge)
B
, sau đó mã hóa nó bởi R và gủi cho B
A > B : R(h(challenge)
B
).

Sau các bƣớc trên cả A và B đều biết đƣợc S
A
và S
B,
cả hai sẽ tiến hành tính toán
phiên khóa làm việc K = f(S
A

, S
B
) và bắt đầu trao đổi thông tin.

Giao thức trao đổi khóa này có thể dễ dàng mở rộng cho nhiều thành viên tham
gia bằng cách bầu chọn ra một ngƣời đứng đầu. Ngƣời đứng đầu này sẽ gửi broadcast
các tin trong bƣớc 1, các bƣớc còn lại sẽ là sự trao đổi khóa giữa ngƣời đứng đầu và
lần lƣợt các thành viên.
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.

11
Chú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:
[1] A > B : A, P(E
A
).

[2] B > A : P(E
A
(R, S
B
)).
Ở đây (challenge)
B
đƣợc thay thế bởi S
B
.


[3] A > B : R(S
A
).
S
A
đƣợc sử dụng thay vì (challenge)
A
.

[4] B > A : K(S
B
, h(S
A
, S
B
)).

[5] A > B : K(S
A
, h(S
A
, S
B
)).

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 M

i
với i=1…n với M
n
đƣợc chọn là ngƣời
đứng đầu, S
i
là khóa ngẫu nhiên đƣợc chọn bởi thành viên M
i
tham gia.
[1] M
n
> ALL : M
n
, P(E).
[2] M
i
> M
n
: M
i
, P(E(R
i
, S
i
)), i = 1 to n-1.
[3] M
n
> M
i
: R

i
({S
j
, j = 1 to n}), i = 1 to n-1.
[4] M
i
> M
n
: M
i
.
Bƣớc cuối cùng trong giao thức sửa đổi là gói tin của các thành viên dùng để xác
nhận lại với ngƣời đứng đầu khóa K dung chung của cả nhóm. Trong giao thức này ta
có thể nhận thấy mỗi thành viên tham gia đều có thể tự mình tính toán ra khóa dung
chung của cả nhóm mà không cần phụ thuộc vào ngƣời đứng đầu. Và ngƣời đƣơc chọn
đứng đầu M
n
có thể dựa trên các S
i
do các thành viên gửi tới để tính toán ra khóa
chung K.
Nếu nhƣ kẻ tấn công chiếm đƣợc một nút (trừ nút M
n
) 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à

12
gử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> = { g
n
với mọi số nguyên n }. Chẳng hạn, nếu G = { e, g
1
, g
2
, g
3
, g
4

,
g
5
}, 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 p
k
(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).
 Ví dụ: Với n = 14 ta có các phần tử của Zn
*
là các lớp đồng dƣ của {1, 3, 5, 9,
11, 13}
Sô phần tử tối đa của Zn
*
với n = 14 là φ(14) = 6.
x x, x
2
, x
3
, ……… (mod 14)
1 : 1
3 : 3, 9, 13, 11, 5, 1

5 : 5, 11, 13, 9, 3, 1
9 : 9, 11, 1
11 : 11, 9, 1
13 : 13, 1
Bậc của 1 là 1
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.

13
Vậ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,
2, 4, 7, 8, 11, 13, 14}
Sô phần tử tối đa của Zn
*
với n = 15 là φ(15) = 8 s
x x, x
2
, x
3
, (mod 15)
1 : 1
2 : 2, 4, 8, 1
4 : 4, 1
7 : 7, 4, 13, 1
8 : 8, 4, 2, 1
11 : 11, 1
13 : 13, 4, 7, 1

14 : 14, 1
Nhƣ vậy không có số nào có bậc là 8 nên ta sẽ không có căn nguyên thủy
modulo 15
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 Z
p
*
.
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 (g
a
) mod p và gửi kết quả cho B
A > B : (g
a
) mod p
[2] B chọn số tự nhiên b (bí mật) ( 1 ≤ b ≤ p-2)
B tính (g
b
) mod p và gửi kết quả cho A
B > A : (g
b
) mod p
A tính : (g
b
mod p)
a
mod p
B tính : (g

a
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 = (g
a
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 (g
a
mod p) và
(g
b
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.
Ví dụ: A và B chọn p = 541, g = 10
[1] A chọn khóa bí mật là a = 5
A tính (g
a
mod p) = (10
5

mod 541) = 456
A >B giá trị 456
[2] B chọn khóa bí mật là b = 7
A tính (g
b
mod p) = (10
7
mod 541) = 156
B >A giá trị 156

14
A và B sẽ tính khóa chung
key
a
= (g
a
mod p)
b
mod p = 156
5
mod 541 = 193
key
b
= (g
b
mod p)
a
mod p = 456
7
mod 541 = 193

Vậy cả A và B đều có khóa chung key
a
= key
b
= 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à K
A
= (A
z
mod p) và K
B
= (B
z
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 (g
a
) mod p và gửi kết quả cho B
A > B : (g
a
) mod p

[2] B chọn số tự nhiên b (bí mật) ( 1 ≤ b ≤ p-2).
B tính (g
b
mod p) và khóa chung của cả hai là K = (g

a
mod p)
b
mod p
B dùng K để mã hóa S
B
(g
a
, g
b
). Sau đó B gửi cả (g
b
mod p) và K(S
B
(g
a
,g
b
))
cho A (trong đó S
B
(g
a
, g
b
) là chữ ký của B lên g
a
, g
b


B > A : (g
b
mod p), K(S
B
(g
a
, g
b
))

[3] A nhận đƣợc tính khóa chung của cả hai là K = (g
b
mod p)
a
mod p
A dùng K giải mã K(S
B
(g
a
, g
b
)) và xác thực lại giá trị g
a

A dùng K để mã hóa S
B
(g
a
, g
b

) rồi gửi cho B (trong đó S
A
(g
a
, g
b
) là chữ ký
của A lên g
a
, g
b
.
A > B : K(S
A
(g
a
, g
b
))

Sau các bƣớc trên A và B đều có khóa chung là:
(g
b
mod p)
a
mod p = (g
a
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

15
Chƣơ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
và có hạn chế.
[+] Khóa luôn đƣợc làm mới: khóa bí mật không thể dự đoán trƣớc đƣợc ngay cả đối
với các thành viên trong nhóm.

Hình 2.1: Các trƣờng hợp xảy ra của nhóm ad hoc động
Các mục tiêu an ninh đối với các giao thức GKA:
 Khóa của nhóm phải bí mật: Bất cứ thành viên nao không tham gia thì không
thể biết đƣợc khóa của nhóm.
 Khóa tƣơng lai của nhóm phải bí mật: Khi một thành viên tham gia một nhóm,
không thể tính đƣợc khóa sau đó của nhóm nhƣ thế nào.
 Khóa trƣớc đó của nhóm phải bí mật: Khi một thành viên tham gia một nhóm,
không thể tính đƣợc khóa trƣớc đó nhƣ thế nào.
 Sự cô lập nhóm khóa :Các thành viên trong một nhóm không cần biết khóa nào
ngoài khóa nhóm đó.
 Sự chuyển tiếp khóa bí mật: Bảo đảm rằng nếu một kẻ tấn công thành công
trong việc làm tổn hại một trong những ngƣời tham gia, thì sau một khoảng thời

gian kẻ tấn công cũng không thể tìm ra chìa khóa phiên tiếp theo

16
Có 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 2d-cube và 2d-
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.
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=2
d

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 2
j-1

Với tính chất a xor b= c thì c xor b =a
Sau vòng j sẽ có 2
d-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 = 2
d
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 K
AB
= g
rA*rB

C và D cũng làm tƣơng tự để trao đổi khóa K
CD
= g
rC*rD

17

[+] 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
2.1.1.2. 2d-octopus

Hình 2.3: Minh họa giao thức 2d-octopus cho 7 nút
[+] Giả sử có n nút với n không là lũy thừa của 2 (2
d
<n <2
d+1
)
Các nút sẽ đƣợc đánh số theo cơ số 2 từ 1 đến n. Những ngƣời tham gia có địa chỉ
A<2
d
đóng vai trò của bộ điều khiển trung tâm. Các nút có địa chỉ A>2
d
sẽ liên kết với
các nút trung tâm.

18
[+] Ở vòng đầu tiên các nút có địa chỉ A với A>2
d
sẽ tiến hành trao đổi khóa DH với
các nút có địa chỉ A-2

d
.
[+] Vòng tiếp theo 2
d
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 2
d
phân phối cho các nút có địa chỉ A>2
d
.
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.
P3 không phải làm gì.
[+] Trong vòng thứ hai, P0, P1, P2, và P3 sẽ tiến hành trao đổi khóa theo giao thức 2d-
cube.
[+] Cuối cùng khóa sẽ đƣợc phân phối từ P0 cho P4, P1 cho P5, và P2 cho P6
2.1.2. Bộ giao thức Asokan-Ginzboorg
2.1.2.1. Xác thực khóa
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 S
A
, S
B

với 1 <= S
A
, S
B
<= 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 (g
SA
) 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 g
SA
.
B tính g
SB
và khóa chung của cả hai là K=(g
SA
)
SB

Tiếp theo B chọn một số ngẫu nhiên C
B
và mã hóa nó bằng khóa K.
B mã hóa S
B
bằng khóa P. Sau đó nó sẽ gửi P(S
B
), K(C

B
) cho A.
B > A : P(S
B
), K(C
B
).

[3] A dùng P giải mã gói tin và lấy đƣợc g
SB
.
Tiếp A tính khóa chung của cả hai là K=(g
SA
)
SB
.
Sau đó dùng K để giải mã K(C
B
) và lấy đƣợc C
B
.
A chọn một số ngẫu nhiên C
A
và mã hóa cả C
A,
C
B
bằng K và gửi nó đến B.

A > B : K(C

A
, C
B
).

×