BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
HỌC VIỆN KỸ THUẬT QUÂN SỰ
PHAN THÀNH VINH
NGHIÊN CỨU GIẢI PHÁP BẢO MẬT MẠNG KHÔNG DÂY
Chuyên ngành: Khoa Học Máy Tính
LUẬN VĂN THẠC SĨ KỸ THUẬT
Hà Nội - Năm 2014
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
HỌC VIỆN KỸ THUẬT QUÂN SỰ
PHAN THÀNH VINH
NGHIÊN CỨU GIẢI PHÁP BẢO MẬT MẠNG KHÔNG DÂY
Chuyên ngành: Khoa Học Máy Tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KỸ THUẬT
Hà Nội - Năm 2014
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
HỌC VIỆN KỸ THUẬT QUÂN SỰ
Cán bộ hướng dẫn chính: TS. Hồ Văn Hương
Cán bộ hướng dẫn phụ (nếu có):
Cán bộ chấm phản biện 1:
Cán bộ chấm phản biện 2:
Luận văn thạc sĩ được bảo vệ tại:
HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ
HỌC VIỆN KỸ THUẬT QUÂN SỰ
Ngày tháng năm 2014
Tôi xin cam đoan:
Những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn
trung thực, của tôi, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và
pháp luật Việt Nam. Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật.
TÁC GIẢ LUẬN VĂN
Phan Thành Vinh
MỤC LỤC
Trang
Trang phụ bìa ...................................................................................................
Bản cam đoan...................................................................................................
Mục lục ............................................................................................................
Tóm tắt luận văn ..............................................................................................
Bảng các từ viết tắt...........................................................................................
Danh mục các bảng ..........................................................................................
Danh mục các hình vẽ ......................................................................................
MỞ ĐẦU....................................................................................................... 1
Chương 1
TỔNG QUAN VỀ MẠNG WLAN
1.1. Tìm hiểu về mạng WLAN ....................................................................... 3
1.1.1. Giới thiệu .......................................................................................... 3
1.1.2. Ưu điểm của mạng WLAN................................................................ 3
1.1.3. Hoạt động của mạng WLAN ............................................................. 4
1.1.4. Các mô hình của mạng WLAN.......................................................... 5
1.2. Chuẩn IEEE 802.11 cho mạng LAN........................................................ 7
1.2.1. Giới thiệu .......................................................................................... 7
1.2.2. Nhóm lớp vật lý PHY........................................................................ 8
1.2.3. Nhóm lớp liên kết dữ liệu MAC ...................................................... 10
1.3. Các quá trình cơ bản diễn ra trong mô hình BSS ................................... 11
1.3.1. Beacon ............................................................................................ 13
1.3.2. Thăm dò .......................................................................................... 13
1.3.3. Kết nối với một AP.......................................................................... 14
1.3.4. Roaming .......................................................................................... 14
1.3.5. Trao đổi dữ liệu ............................................................................... 14
1.4. Kết chương............................................................................................ 15
Chương 2
MỘT SỐ GIẢI PHÁP ĐẢM BẢO AN NINH AN TOÀN CHO MẠNG
KHÔNG DÂY
2.1. Thực trạng mất an ninh an toàn của mạng không dây ............................ 16
2.1.1. Khái niệm an ninh an toàn thông tin ................................................ 16
2.1.2. Đánh giá vấn đề an toàn, bảo mật hệ thống...................................... 17
2.1.3. Các nguy cơ mất an ninh an toàn trong mạng không dây................. 20
Hình 2.1: Phần mềm bắt gói tin Ethereal....................................................... 21
2.2. Cơ sở khoa học của mật mã ứng dụng trong việc đảm bảo an toàn và bảo
mật mạng không dây .................................................................................... 27
2.2.1. Giới thiệu chung.............................................................................. 27
2.2.2. Hệ mật mã khóa đối xứng................................................................ 28
2.2.3. Hệ mật mã khóa công khai .............................................................. 30
2.3. Nghiên cứu một số giải pháp đảm bảo an ninh an toàn cho mạng
WLAN ......................................................................................................... 32
2.3.1. Phương pháp bảo mật dựa trên WEP ............................................... 32
2.3.2. Phương pháp bảo mật dựa trên TKIP............................................... 40
2.3.3. Phương pháp bảo mật dựa trên AES-CCMP .................................... 52
2.3.4. Nghiên cứu thuật toán mã hóa đối xứng RSA.................................. 68
2.4. Kết chương............................................................................................ 71
Chương 3
XÂY DỰNG PHẦN MỀM BẢO MẬT MẠNG KHÔNG DÂY WLAN SỬ
DỤNG USB ETOKEN
3.1. Phân tích yêu cầu, đề xuất giải pháp ...................................................... 73
3.1.1. Bài toán đặt ra ................................................................................. 73
3.1.2. Sơ đồ ứng dụng ............................................................................... 74
3.1.3. Môi trường hệ thống........................................................................ 76
3.1.4. Thiết kế cơ sở dữ liệu ...................................................................... 79
3.1.5. USB Token...................................................................................... 79
3.2. Xây dựng ứng dụng ............................................................................... 81
3.2.1. Giới thiệu chung về ứng dụng.......................................................... 81
3.2.2. Server .............................................................................................. 81
3.2.3. Client............................................................................................... 84
KẾT LUẬN
TÀI LIỆU THAM KHẢO.......................................................................... 90
Tóm tắt luận văn:
+ Họ và tên học viên: Phan Thành Vinh
+ Chuyên ngành: Khoa học Máy tính Khoá: 24
+ Cán bộ hướng dẫn: TS. Hồ Văn Hương
+ Tên đề tài: Nghiên cứu giải pháp bảo mật mạng không dây.
Tóm tắt: Nghiên cứu, tìm hiểu mạng LAN không dây, nguy cơ mất an ninh,
an toàn mạng LAN, cơ sỡ khoa học, lý thuyết mật mã. Nghiên cứu đề xuất giải
pháp mã hóa gói tin kết hợp mã hóa đường truyền sẵn có để xây dựng phần mềm
ứng dụng sử dụng eToken, bảo mật mạng WLAN nội bộ. Một ứng dụng hoàn toàn
mới và thiết thực cho các công ty, trường học, quân sự…, trong luận văn này em sẽ
trình bày và xây dựng ra phần mềm bảo mật mạng không dậy WLAN.
BẢNG CÁC TỪ VIẾT TẮT
Từ viết tắt Từ gốc AES AMPS Advanced Encryption Standard Advanced Mobile Phone System
AP BS Access Point Base Station Nghĩa tiếng việt Chuẩn mã hóa tiên tiến Hệ thống điện thoại di động Điểm truy cập Trạm cơ sở
BSS CCM Tập dịch vụ cơ bản Mode mã hóa CBC
CCMP Giao thức mã hóa CCM
CDMA CRC DOS DSSS ESS FHSS GSM IBSS ICV
IEEE Basic Service Set Counter Mode - CBC MAC Counter Mode - CBC MAC Protocol Code Division Multiple Access Cyclic Redundancy Check Denial Of Service Direct Sequence Spread Spectrum Extended Service Set Frequency Hopping Spread Group Special Mobile Independent Basic Service Set Integrity Check Value Institute of Electrical and Electronics Đa truy nhập phân chia Kiểm tra dư thừa vòng Từ chối dịch vụ Trải phổ dãy trực tiếp Tập dịch vụ mở rộng FHSS Trải phổ nhảy tần Nhóm đặc biệt về di động Tập dịch vụ cơ bản độc lập Giá trị kiểm tra tính toàn Viện Công nghệ điện và điện tử
IETF Internet Engineering Task Force Hiệp hội kỹ sư tham gia phát triển về internet
IMTS Improved Mobile Telephone System Hệ thống điện thoại di động cải tiến
Mã chứng thực gói tin MAC Message Authentication Code (cryptographic community use)
MIC Message Integrity Code Mã toàn vẹn gói tin
MPDU MAC Protocol Data Unit Đơn vị dữ liệu giao thức MAC
MSC Mobile Switching Center Trung tâm chuyển mạch di động
MSDU MAC Service Data Unit Đơn vị dữ liệu dịch vụ MAC
MTS Mobile Telephone System Hệ thống điện thoại di động
NMT Nordic Mobile Telephony Hệ thống điện thoại di động Bắc Âu
OFDM Orthogonal Frequency Division Multiplexing Ghép kênh phân chia theo tần số trực giao
Personal Area Network Private Brach Exchange PAN PBX
Personal Handy-phone System PHS Mạng vùng cá nhân Tổng đài nhánh riêng Hệ thống điện thoại cầm tay cá nhân
PSTN Packet Switched Telephone Network Mạng điện thoại chuyển mạch gói
Radio Frequency Short Message Service RF SMS
Wireless Station STA Tần số sóng vô tuyến Dịch vụ nhắn tin ngắn Thiết bị có hỗ trợ mạng không dây
TACS Total Access Communication System Hệ thống truyền thông truy cập hoàn toàn
TDMA Time Division Multiple Access Đa truy nhập phân chia theo thời gian
TKIP Temporal Key Integrity Protocol Giao thức toàn vẹn khóa thời gian
WEP Wired Equivalent Privacy Bảo mật tương đường mạng hữu tuyến
WLAN Wireless Local Area Network
WPA Wi-Fi Protected Access Mạng cục bộ không dây Truy cập mạng Wifi an toàn
DANH MỤC CÁC BẢNG
Trang
Bảng 2.1: Những điểm yếu của WEP………………………………………41
Bảng 2.2: Cách khắc phục điểm yếu của WEP……………………………..41
DANH MỤC CÁC HÌNH VẼ
Trang
Hình 1.1: Mô hình mạng Ad - hoc (mạng ngang hàng) ……………………..5
Hình 1.2: Mô hình mạng cơ sở………………………………………………6
Hình 1.3: Mô hình mạng mở rộng…………………………………………...7
Hình 1.4: Thông số của 802.11n……………………………………………10
Hình 2.1: Phần mềm bắt gói tin Ethereal……………………………............21
Hình 2.2: Phần mềm thu thập thông tin hệ thống mạng không dây NetStumbler………………………………………………………………...22
Hình 2.3: Mô tả quá trình tấn công DOS tầng liên kết dữ liệu……………...25
Hình 2.4: Mô tả quá trình tấn công theo kiểu chèn ép……………………....27
Hình 2.5: Mô tả quá trình tấn công theo kiểu thu hút…………………….…27
Hình 2.6: Mô hình hệ mật mã khóa đối xứng…………………………….…29
Hình 2.7: Mô hình hệ mật mã khóa công khai……………………………....31
Hình 2.8: Quá trình chứng thực diễn ra trong WEP……………………......34
Hình 2.9: Định dạng của gói tin chứng thực………………………………...35
Hình 2.10: Mã hóa chuỗi…………………………………………………....36
Hình 2.11: Sự kết hợp của IV với khóa…………………………………......37
Hình 2.12: Thêm ICV……………………………………………………….39
Hình 2.13: Thêm IV và KeyID……………………………………………...40
Hình 2.14: Tạo và so sánh giá trị MAC (hoặc MIC) ……………………..…43
Hình 2.15: Quá trình tạo khóa để mã………………………………………..46
Hình 2.16: Quá trình xử lý ở bên phát………………………………………50
Hình 2.17: Quá trình xử lý ở bên thu……………………………………….51
Hình 2.18: Quá trình hoạt động của ECB Mode……………………………54
Hình 2.19: Ví dụ về Counter Mode…………………………………………55
Hình 2.20: Quá trình xử lý gói tin trong CCMP………………………….…59
Hình 2.21: Trình tự xử lý một MPDU………………………………………61
Hình 2.22: Phần đầu CCMP………………………………………………...61
Hình 2.23: Mã hóa và giải mã………………………………………………62
Hình 2.24: Bên trong khối mã hóa CCMP……………………………….....63
Hình 2.25: MPDU sau quá trình mã (CH=CCMP Header)…………………63
Hình 2.26: Định dạng của khối đầu tiên để đưa vào CBC-MAC…………...64
Hình 2.27: Thành phần của khối đầu tiên để đưa vào CBC-MAC………….65
Hình 2.28: Kết hợp số đếm Ctr trong CCMP AES Counter Mode…………66
Hình 2.29. RSA – Tạo khóa…………………………………………………69
Hình 2.30. RSA – Mã hóa…………………………………………………...69
Hình 2.31. RSA – Giải mã…………………………………………………..70
Hình 3.1 Sơ đồ đăng kí token - đăng kí tài khoản…………………………..74
Hình 3.2. Đăng nhập………………………………………………………..75
Hình 3.3. Trao đổi giữa Client A và Client B……………………………….75
Hình 3.4. Trao đổi giữa Server – Client…………………………………….76
Hình 3.5. Usecase chức năng người quản trị Server………………………..77
Hình 3.6. Usecase Quản lý thông tin tài khoản……………………………..78
Hình 3.7. Usecase giao tiếp với mọi Client…………………………………78
Hình 3.8. Chức năng người dùng Client…………………………………….78
Hình 3.9. Usecase Client giao tiếp với Server………………………………79
Hình 3.10. USB Token của Viettel………………………………………….79
Hình 3.11. Đặc tính kĩ thuật của USB eToken………………………………81
Hình 3.12. Mô hình ứng dụng……………………………………………...81
Hình 3.13. Màn hình chính của Server……………………………………82
Hình 3.14. Màn hình quản lý tài khoản…………………………………...83
Hình 3.15. Màn hình thêm tài khoản……………………………………...83
Hình 3.16. Màn hình đăng nhập…………………………………………...84
Hình 3.17. Màn hình chính của Client…………………………………….85
Hình 3.18. Màn hình chọn file………………………………………………85
Hình 3.19. Màn hình lưu fie………………………………………………...86
Hình 3.20. Màn hình cảnh báo không thấy token…………………………..86
Hình 3.21. So sánh 2 file mã hóa và gốc……………………………………87
1
MỞ ĐẦU
Cùng với các công nghệ mới thúc đẩy sự phát triển của mạng Internet
thì mạng không dây cũng đã có một chuyển biến mạnh mẽ, trong đó có mạng
WLAN. Các thiết bị trong mạng này kết nối với nhau không phải bằng các
phương tiện truyền dẫn hữu tuyến mà là bằng sóng vô tuyến. Ích lợi mà mạng
này mang lại là khả năng thiết lập kết nối tới các thiết bị không phụ thuộc vào
hạ tầng dây dẫn. Cũng nhờ vào đặc điểm của mạng không dây mà chi phí cho
việc lắp đặt, duy trì, bảo dưỡng hay thay đổi đường dây đã được giảm đi rất
nhiều, đồng thời, tính linh hoạt được áp dụng một cách khá hiệu quả, ở bất cứ
đâu trong phạm vi phủ sóng của thiết bị, ta đều có thể kết nối vào mạng.
Trong những năm gần đây, giới công nghệ thông tin đã chứng kiến sự
bùng nổ của nền công nghiệp mạng không dây. Khả năng liên lạc không dây
gần như là tất yếu trong các thiết bị cầm tay, máy tính xách tay, điện thoại di
động và các thiết bị số khác.
Với các tính năng ưu việt và vùng phục vụ kết nối linh động, khả năng
triển khai nhanh chóng, giá thành ngày càng giảm, mạng WLAN đã trở thành
một trong những giải pháp cạnh tranh có thể thay thế mạng Ethernet LAN
truyền thống. Tuy nhiên, sự tiện lợi của mạng không dây cũng đặt ra một thử
thách lớn về bảo đảm an toàn an ninh cho mạng không dây đối với các nhà
quản trị mạng. Ưu thế về sự tiện lợi của kết nối không dây có thể bị giảm sút
do những khó khăn nảy sinh trong bảo mật mạng.
Vấn đề này càng ngày càng trở nên cấp thiết và cần nhận được sự quan
tâm từ nhiều phía. Vì những lý do đó cùng với niềm đam mê thực sự về
những tiện lợi mà mạng không dây mang lại đã khiến em quyết định chọn đề
tài: “Nghiên cứu giải pháp bảo mật mạng không dây WLAN” làm luận văn
tốt nghiệp với mong muốn có thể tìm hiểu, nghiên cứu và ứng dụng các giải
2
pháp để đảm bảo an ninh cho mạng không dây. Mục tiêu đóng góp chính của
luận văn là hoàn thiện phần mềm trao đổi thông tin nội bộ một cách bảo mật
hoàn toàn mới, chưa có ứng dụng nào phát triển. Toàn bộ luận văn được chia
làm 3 chương:
Chương 1: Tổng quan về mạng không dây
Trình bày tổng quan về các loại mạng không dây và các kỹ thuật
được ứng dụng trong mạng không dây, sau đó tập trung trình bày về mạng
WLAN và chuẩn của mạng WLAN cũng như những gì diễn ra trong quá
trình thiết lập kết nối với một hệ thống WLAN đơn giản (chưa có chứng thực
và mã hóa).
Chương 2: Một số giải pháp đảm bảo an ninh an toàn cho mạng
không dây
Trình bày thực trạng mất an ninh an toàn của mạng không dây, các
kiểu tấn công trong mạng không dây, các giao thức bảo mật trong mạng
không dây, các kỹ thuật mật mã ứng dụng để bảo mật mạng không dây và
một số giải pháp cho việc đảm bảo an ninh an toàn cho mạng WLAN.
Chương 3: Xây dựng phần mềm bảo mật mạng không dây
WLAN sử dụng USB ETOKEN
Nội dung chính của luận văn này là sử dụng USB eToken kết hợp thuật
toán mã hóa bất đối xứng RSA để bảo mật mạng không dây WLAN. USB
Token là thiết bị phần cứng dùng để tạo cặp khóa bí mật, công khai và lưu trữ
khóa bí mật, các thiết bị này sẽ được nhà cung cấp dịch vụ chữ ký số giao cho
khách hàng để khách hàng có thể tạo cặp khóa và ký lên dữ liệu cần ký.
Trong luận văn này tôi sẽ trình bày và xây dựng ra phần mềm bảo mật mạng
không dây WLAN.
3
Chương 1
TỔNG QUAN VỀ MẠNG WLAN
1.1. Tìm hiểu về mạng WLAN
1.1.1. Giới thiệu
Thuật ngữ “mạng máy tính không dây” hay còn gọi là mạng WLAN
nói đến công nghệ cho phép hai hay nhiều máy tính giao tiếp với nhau dùng
những giao thức mạng chuẩn nhưng không cần dây cáp mạng. Các mạng máy
tính không dây sử dụng các sóng điện từ không gian (sóng vô tuyến hoặc
sóng ánh sáng) để thu, phát dữ liệu qua không khí, giảm thiểu nhu cầu về kết
nối bằng dây. Vì vậy, các mạng WLAN kết hợp liên kết dữ liệu với tính di
động của người dùng.
Công nghệ này bắt nguồn từ một số chuẩn công nghiệp như là IEEE
802.11 [7] đã tạo ra một số các giải pháp không dây có tính khả thi trong kinh
doanh, công nghệ chế tạo, các trường đại học…khi mà ở đó mạng hữu tuyến
là không thể thực hiện được. Ngày nay, các mạng WLAN càng trở nên quen
thuộc hơn, được công nhận như một sự lựa chọn kết nối đa năng cho một
phạm vi lớn các khách hàng kinh doanh.
1.1.2. Ưu điểm của mạng WLAN
- Tính di động: Những người sử dụng mạng WLAN có thể truy
cập nguồn thông tin ở bất kì nơi nào. Tính di động này sẽ tăng năng suất và
tính kịp thời, thỏa mãn nhu cầu về thông tin mà các mạng hữu tuyến không
thể có được.
- Tính đơn giản: Việc lắp đặt, thiết lập, kết nối một mạng WLAN
rất dễ dàng, đơn giản và có thể tránh được việc kéo cáp qua các bức tường và
trần nhà.
- Tinh linh hoạt: Có thể triển khai mạng WLAN ở những nơi mà
mạng hữu tuyến không thể triển khai được hoặc khó triển khai.
4
- Tiết kiệm chi phí lâu dài: Trong khi đầu tư cần thiết ban đầu đối
với phần cứng của một mạng máy tinh không dây có thể cao hơn chi phí phần
cứng của một mạng hữu tuyến nhưng toàn bộ chi phí lắp đặt và các chi phí về
thời gian tồn tại có thể thấp hơn đáng kể. Chi phí dài hạn có lợi nhất trong các
môi trường động cần phải di chuyển và thay đổi thường xuyên.
- Khả năng vô hướng: Các mạng WLAN có thể được cấu hình
theo các cách khác nhau để đáp ứng các nhu cầu ứng dụng và lắp đặt cụ thể.
Các cấu hình dễ dàng thay đổi từ các mạng ngang hàng thích hợp cho một số
lượng nhỏ người sử dụng đến các mạng có cơ sở hạ tầng đầy đủ dành cho
hàng nghìn người sử dụng mà có khả năng di chuyển trên một vùng rộng.
1.1.3. Hoạt động của mạng WLAN
Các mạng WLAN sử dụng các sóng điện tử không gian (vô tuyến hoặc
ánh sáng) để truyền thông tin từ một điểm tới điểm khác. Các sóng vô tuyến
thường được xem như các sóng mang vô tuyến do chúng chỉ thực hiện chức
năng cung cấp năng lượng cho một máy thu ở xa. Dữ liệu đang được phát
được điều chế trên sóng mang vô tuyến (thường được gọi là điều chế sóng
mang nhờ thông tin đang được phát) sao cho có thể được khôi phục chính xác
tại máy thu. Trong một cấu hình mạng WLAN tiêu chuẩn, một thiết bị
thu/phát (bộ thu/phát) được gọi là một điểm truy cập, nối với mạng hữu tuyến
từ một vị trí cố định sử dụng cáp tiêu chuẩn. Chức năng tối thiểu của điểm
truy cập là thu, làm đệm và phát dữ liệu giữa mạng WLAN và cơ sở hạ tầng
mạng hữu tuyến. Một điểm truy cập đơn có thể hỗ trợ một nhóm nhỏ người sử
dụng và có thể thực hiện chức năng trong một phạm vi từ một trăm với vài
trăm feet. Điểm truy cập (hoặc anten được gắn vào điểm truy cập) thường
được đặt cao nhưng về cơ bản có thể được đặt ở bất kỳ chỗ nào miễn là đạt
được vùng phủ sóng mong muốn. Những người sử dụng truy cập mạng
WLAN thông qua các bộ thích ứng máy tính không dây như các Card mạng
5
không dây trong các máy tính, các máy Palm, PDA. Các bộ thích ứng máy
tính không dây cung cấp một giao diện giữa hệ thống điều hành mạng (NOS –
Network Operation System) của máy khách và các sóng không gian qua một
anten. Bản chất của kết nối không dây là trong suốt đối với hệ điều hành
mạng.
1.1.4. Các mô hình của mạng WLAN
1.1.4.1. Mô hình mạng độc lập IBSS (Ad-hoc)
Các trạm(máy tính có hỗ trợ card mạng không dây) tập trung lại trong
một không gian nhỏ để hình thành nên kết nối ngang cấp (peer-to-peer) giữa
chúng. Các nút di động có card mạng wireless là chúng có thể trao đổi thông
tin trực tiếp với nhau, không cần phải quản trị mạng. Vì các mạng ad-hoc này
có thể thực hiện nhanh và dễ dàng nên chúng thường được thiết lập mà không
cần một công cụ hay kỹ năng đặc biệt nào vì vậy nó rất thích hợp để sử dụng
trong các hội nghị thương mại hoặc trong các nhóm làm việc tạm thời. Tuy
nhiên chúng có thể có những nhược điểm về vùng phủ sóng bị giới hạn, mọi
người sử dụng đều phải nghe được lẫn nhau.
Hình 1.1: Mô hình mạng Ad - hoc (mạng ngang hàng)
- Ưu điểm: Kết nối Peer-to-Peer không cần dùng Access Point, chi
phí thấp, cấu hình và cài đặt đơn giản.
6
- Khuyết điểm: Khoảng cách giữa các máy trạm bị giới hạn, số lượng
người dùng cũng bị giới hạn, không tích hợp được vào mạng có dây sẵn có.
1.1.4.2.Mô hình mạng cơ sở BSS
Trong mô mạng cơ sở, các Client muốn liên lạc với nhau phải thông
Access Point (AP). AP là điểm trung tâm quản lý mọi sự giao tiếp trong
mạng, khi đó các Client không thể liên lạc trực tiếp với như trong mạng IBSS.
Để giao tiếp với nhau các Client phải gửi các Frame dữ liệu đến AP, sau đó
AP sẽ gửi đến máy nhận.
Hình 1.2: Mô hình mạng cơ sở
- Ưu điểm: Các máy trạm không kết nối trực tiếp được với nhau,
các máy trạm trong mạng không dây có thể kết nối với hệ thống mạng có dây.
- Khuyết điểm: Giá thành cao, cài đặt và cấu hình phức tạp hơn
mô hình Ad- Hoc.
1.1.4.3. Mô hình mạng mở rộng ESS
Nhiều mô hình BSS kết hợp với nhau gọi là mô hình mạng ESS. Là mô
hình sử dụng từ 2 AP trở lên để kết nối mạng. Khi đó các AP sẽ kết nối với
nhau thành một mạng lớn hơn, phạm vi phủ sóng rộng hơn, thuận lợi và đáp
ứng tốt cho các Client di động. Đảm bảo sự hoạt động của tất cả các Client.
7
Hình 1.3: Mô hình mạng mở rộng
1.2. Chuẩn IEEE 802.11 cho mạng LAN
1.2.1. Giới thiệu
IEEE là tổ chức đi tiên phong trong lĩnh vực chuẩn hóa mạng LAN với
đề án IEEE 802 nổi tiếng bắt đầu triển khai từ năm 1980 và kết quả là hàng
loạt chuẩn thuộc họ IEEE 802.x ra đời, tạo nên một sự hội tụ quan trọng cho
việc thiết kế và cài đặt các mạng LAN trong thời gian qua. IEEE 802.11 [7] là
chuẩn mạng WLAN do Ủy ban các chuẩn về LAN/MAN của IEEE phát triển,
hoạt động ở tần số 5Ghz và 2.4 Ghz. IEEE 802.11 và Wifi nhiều khi được
hiểu là một, những thực ra là có sự khác biệt giữa chúng. Wifi là một chuẩn
công nghiệp đã được cấp chứng nhận và chỉ là một bộ phận của chuẩn 802.11.
Wifi do Wi-Fi Alliance đưa ra để chỉ các sản phẩm của WLAN dựa trên các
chuẩn IEEE 802.11 được tổ chức này chứng nhận. Những ứng dụng phổ biến
của Wifi bao gồm Internet, VoIP, Game…ngoài ra còn có các thiết bị điện tử
gia dụng như Tivi, đầu DVD, Camera….
Họ các chuẩn 802.11 hiện nay bao gồm rất nhiều các kỹ thuật điều chế
dựa trên cùng một giao thức cơ bản. Các kỹ thuật phổ biến nhất là b,g và n,
các chuẩn khác cũng đang được phát triển và cải tiến. Các chuẩn khác như c,
f, h, j là những sửa đổi, mở rộng của các chuẩn trước đó. Chuẩn 802.11a là
8
chuẩn mạng không dây đầu tiên, nhưng 802.11b lại được sử dụng nhiều nhất,
sau đó mới đến các chuẩn 802.11g, 802.11a, 802.11n.
1.2.2. Nhóm lớp vật lý PHY
1.2.2.1. Chuẩn 802.11b
802.11b là chuẩn đáp ứng đủ cho phần lớn các ứng dụng mạng. Với
một giải pháp rất hoàn thiện, 802.11b có nhiều đặc điểm thuận lợi so với các
chuẩn không dây khác. Chuẩn 802.11b sử dụng kiểu trải phô dãy trực tiếp
DSSS, hoạt động ở dải tần 2.4GHz, tốc độ truyền dữ liệu tối đa là 11Mbps
trên một kênh, tốc độ thực tế là khoảng từ 4-5 Mbps. Khoảng cách có thể lên
đến 500 mét trong một môi trường mở rộng. Khi dùng chuẩn này tối đa có 32
người dùng/ điểm truy cập. Đây là chuẩn đã được chấp nhận rộng rãi trên thế
giới và được triển khai rất mạnh hiện này do công nghệ này sử dụng dải tần
không phải đăng kí cấp phép phục vụ cho công nghiệp, dịch vụ, y tế. Nhược
điểm của 802.11b là hoạt động ở dải tần 2.4Ghz trùng với dải tần của nhiều
thiết bị trong gia đình như lò vi sóng, điện thoại mẹ con… nên có thể bị
nhiễu.
1.2.2.2. Chuẩn 802.11a
Trong khi 802.11b vẫn đang được phát triển, IEEE đã tạo một mở rộng
thứ cấp cho chuẩn 802.11 có tên gọi 802.11a. Vì 802.11b được sử dụng rộng
rãi quá nhanh so với 802.11a, nên một số người cho rằng 802.11a được tạo
sau 802.11b. Tuy nhiên trong thực tế, 802.11a và 802.11b được tạo một cách
đồng thời. Do giá thành cao hơn nên 802.11a chỉ được sử dụng trong các
mạng doanh nghiệp còn 802.11b thích hợp hơn với thị trường mạng gia đình.
802.11a hỗ trợ băng thông lên đến 54 Mbps vì nó sử dụng công nghệ
OFDM (Orthogonal Frequency-Division Multiplexing) và sử dụng tần số vô
tuyến 5GHz UNII nên nó sẽ không giao tiếp được với chuẩn 802.11 và
802.11b. Tần số của 802.11a cao hơn so với 802.11b chính vì vậy đã làm cho
9
phạm vi của hệ thống này hẹp hơn so với các mạng 802.11b. Với tần số này,
các tín hiệu 802.11a cũng khó xuyên qua các vách tường và các vật cản khác
hơn.
Do 802.11a và 802.11b sử dụng các tần số khác nhau, nên hai công
nghệ này không thể tương thích với nhau. Chính vì vậy một số hãng đã cung
cấp các thiết bị mạng hybrid cho 802.11a/b nhưng các sản phẩm này chỉ đơn
thuần là bổ sung thêm hai chuẩn này.
- Ưu điểm: tốc độ cao, tần số 5Ghz tránh được sự xuyên nhiễu từ
các thiết bị.
- Nhược điểm: giá thành đắt, phạm vi hẹp và dễ bị che khuất.
1.2.2.3. Chuẩn 802.11g
Vào năm 2002 và 2003, các sản phẩm WLAN hỗ trợ một chuẩn mới
hơn đó là 802.11g, được đánh giá cao trên thị trường. 802.11g thực hiện sự
kết hợp tốt nhất giữa 802.11a và 802.11b. Nó hỗ trợ băng thông lên đến
54Mbps vì sử dụng công nghệ OFDM và sử dụng tần số 2.4 Ghz để có phạm
vi rộng. 802.11g có khả năng tương thích với các chuẩn 802.11b, điều đó có
nghĩa là các điểm truy cập 802.11g sẽ làm việc với các adapter mạng không
dây 802.11b và ngược lại.
- Ưu điểm: tốc độ cao, phạm vi tín hiệu tốt và ít bị che khuất.
- Nhược điểm: giá thành đắt hơn 802.11b, các thiết bị có thể bị
xuyên nhiễu từ nhiều thiết bị khác sử dụng cùng băng tần.
1.2.2.4. Chuẩn 802.11n
Chuẩn mới nhất trong danh mục Wi-Fi chính là 802.11n. Đây là chuẩn
được thiết kế để cải thiện cho 802.11g trong tổng số băng thông được hỗ trợ
bằng cách tận dụng nhiều tín hiệu không dây và các anten (công nghệ
MIMO).
10
Khi chuẩn này được đưa ra, các kết nối 802.11n sẽ hỗ trợ tốc độ dữ liệu
lên đến 100 Mbps. 802.11n cũng cung cấp phạm vi bao phủ tốt hơn so với các
chuẩn Wi-Fi trước nó nhờ cường độ tín hiệu mạnh của nó. Thiết bị 802.11n sẽ
tương thích với các thiết bị 802.11g. Sau đây là thông số của 802.11n
Hình 1.4: Thông số của 802.11n
Ưu điểm: tốc độ lý thuyết cao 270-600Mbps. Sử dụng công nghệ -
“channel bonding” kết hợp được 2 kênh 20MHz thành 1 kênh 40Mhz.
Nhược điểm: có thể gây nhiễu cho 802.11b vì nó lấy toàn bộ dải -
phổ 2.4Ghz mà 802.11b đang sử dụng.
1.2.3. Nhóm lớp liên kết dữ liệu MAC
1.2.3.1. Chuẩn 802.11d
Chuẩn này chỉnh sửa lớp MAC của 802.11 cho phép máy trạm sử dụng
FHSS có thể tối ưu các tham số lớp vật lý để tuân theo các quy tắc của các
nước khác nhau nơi mà nó được sử dụng.
1.2.3.2. Chuẩn 802.11r
Mở rộng của IEEE 802.11d, cho phép nâng cấp khả năng chuyển vùng.
1.2.3.3. Chuẩn 802.11e
Đây là chuẩn bổ sung cho chuẩn 802.11 cũ, nó định nghĩa thêm các mở
rộng về chất lượng dịch vụ (QoS) nên rất thích hợp cho các ứng dụng
multimedia như voice, video (VoWLAN).
Chuẩn 802.11e cho phép phân các mức độ ưu tiên lưu thông để các dữ
liệu cần thời gian thực (như các luồng tín hiệu hình hay cuộc gọi VoIP) sẽ
được truyền trước các dữ liệu kém quan trọng hơn (như e-mail hoặc trang
11
web). Một số sản phẩm sử dụng một phần của chuẩn này (gọi là WMM - Wi-
Fi Multimedia).
1.2.3.4. Chuẩn 802.11f
Được phê chuẩn năm 2003. Đây là chuẩn định nghĩa các thức các AP
giao tiếp với nhau khi một client roaming từng vùng này sang vùng khác.
Chuẩn này còn được gọi là Inter-AP Protocol (IAPP). Chuẩn này cho phép
một AP có thể phát hiện được sự hiện diện của các AP khác cũng như cho
phép AP “chuyển giao” client sang AP mới (lúc roaming), điều này giúp cho
quá trình roaming được thực hiện một cách thông suốt.
1.2.3.5. Chuẩn 802.11h
Hiện đang được sử dụng tại châu Âu, đây là khu vực mà quy định tần
số radio đòi hỏi các sản phẩm phải có hệ thống TPC (Transmission Power
Control) và DFS (Dynamic Frequency Selection). TPC giới hạn năng lượng
được truyền tải tới mức tối thiểu cần thiết để vươn tới người dùng xa nhất.
DFS lựa chọn kênh dẫn radio tại điểm truy nhập nhằm hạn chế tối thiểu nhiễu
với các hệ thống khác, đặc biệt là ra đa. Tại một số khu vực trên thế giới, đa
phần tần số 5 GHz được dành cho chính phủ và quân đội sử dụng.
1.2.3.6. Chuẩn 802.11i
Là một chuẩn về bảo mật, nó bổ sung cho các yếu điểm của WEP trong
chuẩn 802.11. Chuẩn này sử dụng các giao thức như giao thức xác thực dựa
trên cổng 802.1X, và một thuật toán mã hóa được xem như là không thể crack
được đó là thuật toán AES (Advance Encryption Standard), thuật toán này sẽ
thay thế cho thuật toán RC4 được sử dụng trong WEP.
1.2.3.7. Chuẩn 802.11w
Là nâng cấp của các tiêu chuẩn bảo mật được mô tả ở IEEE 802.11i,
hiện chỉ trong giai đoạn khởi đầu.
1.3. Các quá trình cơ bản diễn ra trong mô hình BSS
12
Để hiểu được quá trình kết nối giữa STA và AP diễn ra như thế nào và
khi nào thì chúng thực sự truyền dữ liệu, chúng ta sẽ xem xét ở góc độ tổng
quan trước. Đó là một loạt các quá trình diễn ra trong hệ thống không sử dụng
chế độ bảo mật. Ở đây, ta coi AP đã được cấp nguồn và hoạt động bình
thường. AP quảng bá sự hiện diện của chính bản thân nó bằng cách gửi các
thông báo vô tuyến ngắn liên tục khoảng 10 lần trong một giây. Những thông
báo này được gọi là beacon và cho phép các thiết bị không dây phát hiện ra sự
tồn tại của AP đó.
Giả sử rằng có ai đó bật máy tính có card mạng không dây STA. Sau
khi được kích hoạt, STA này bắt đầu dò tìm các AP. Nó cũng có thể được cấu
hình để tìm kiếm một AP duy nhất, tuy nhiên, nó cũng có thể kết nối với một
AP bất kỳ nào khác mà nó “nhìn thấy”. Có rất nhiều tần số khác nhau (được
gọi là các kênh) mà STA có thể sử dụng để dò tìm các beacon. Quá trình này
gọi là quét.
STA này có thể phát hiện một vài AP xung quanh mà nó có thể truy
cập và phải quyết định kết nối với AP nào, vì tại một thời điểm nó chỉ có thể
kết nối tới một AP duy nhất, thường AP được lựa chọn có độ lớn tín hiệu lớn
nhất. Khi STA đã sẵn sàng kết nối với một AP nào đó, trước hết, nó gửi một
thông báo yêu cầu chứng thực tới AP. Chuẩn 802.11 ban đầu coi thông báo
chứng thực như là một phần của giải pháp bảo mật. Vì trong tình huống đặt
ra, ta không sử dụng phương pháp bảo mật nào, AP lập tức đáp ứng yêu cầu
chứng thực bằng cách gửi thông báo đáp trả lại và chỉ ra rằng nó chấp nhận
kết nối.
Khi một STA kết nối với một AP, nó được phép gửi và nhận dữ liệu từ
mạng đó. STA gửi một thông báo yêu cầu kết nối và AP gửi trả lại một thông
báo thể hiện kết nối thành công. Sau thời điểm đó, dữ liệu do STA gửi tới AP
13
được gửi tiếp tới mạng LAN thông qua chính AP đó. Và ngược lại, dữ liệu từ
mạng LAN muốn chuyển tới STA cũng phải thông qua AP.
Đối với các sản phẩm hỗ trợ Wifi thời kì đầu, khi đã kết nối nghĩa là ta
có quyền truy nhập ngay lập tức. Tuy nhiên, theo quan niệm bảo mật mới, kết
nối tức là cho phép STA bắt đầu quá trình chứng thực, quá trình này thực sự
cần thiết để đảm bảo việc truy cập mạng được an toàn.
1.3.1. Beacon
Việc quảng bá beacon là một phương pháp mà nhờ đó, AP thông báo
với các thiết bị xung quanh là nó đã sẵn sàng hoạt động trong môi trường
mạng. Các beacon là những khung chứa thông tin quản lý do chính AP gửi đi,
thường là 10 lần trong một giây. Beacon này chứa các thông tin như là tên
mạng và khả năng của AP. Ví dụ, beacon có thể cho STA biết liệu AP đó có
hỗ trợ các phương pháp bảo mật mới của chuẩn IEEE 802.1 hay không.
1.3.2. Thăm dò
Khi một thiết bị được bật lên, nó có thể lắng nghe các beacon và hy
vọng sẽ thấy một AP nào đó để thiết lập kết nối. Ta có thể cho rằng là 10
beacon trong một giây là quá nhiều và lãng phí. Tuy nhiên, nên nhớ rằng có
nhiều kênh tần số khác nhau và STA phải quét trên mỗi tấn số và đợi 0,1 giây,
như vậy là cũng phải mất một thời gian mới có thể quét được hết tất cả các
kênh. Thêm vào đó, nếu ta đã kết nối và muốn tìm một AP mới vì tín hiệu AP
cũ quá yếu, ta phải làm sao tìm và kết nối được càng nhanh càng tốt để không
bị gián đoạn. Vì vậy mà STA có một lựa chọn là gửi đi thông báo thăm dò. Ta
có thể hình dung nó như khi ta về nhà mà chẳng thấy mọi người đâu, lúc đó ta
sẽ hỏi: “Có ai ở nhà không? “. Nếu bất kì một AP nào nhận được thông tin
thăm dò đó, nó ngay lập tức gửi trả lại thông báo giống như dạng một beacon.
Nhờ đó mà một STA có thể nhanh chóng biết được thông tin về các AP xung
quanh nó.
14
1.3.3. Kết nối với một AP
Như ta đã nói ở trên quá trình kết nối với một AP được gọi là
association. Khi muốn kết nối, thiết bị phải gửi yêu cầu kết nối, AP có thể đáp
trả lại yêu cầu đó. Nếu được chấp nhận, ta có thể kết nối thành công với AP.
1.3.4. Roaming
Nếu có nhiều AP trong cùng một mạng, STA của ta có thể gặp trường
hợp chuyển kết nối từ AP này sang AP khác. Để làm được điều đó, trước hết
nó phải ngắt kết nối với AP cũ bằng thông báo hủy kết nối, rồi sau đó nó kết
nối với AP mới sử dụng thông báo tạo lại kết nối. Thông báo này có chứa một
vài thông tin về AP cũ để giúp cho quá trình chuyển giao diễn ra dễ dàng hơn.
Thông tin này cũng cho phép AP mới trao đổi với AP cũ để đảm bảo rằng
việc chuyển dữ liệu vừa mới diễn ra.
1.3.5. Trao đổi dữ liệu
Khi đã kết nối thành công và sau khi chứng thực đã hoàn tất, đó chính
là lúc bắt đầu gửi dữ liệu. Trong phần lớn các trường hợp thì dữ liệu được
trao đổi giữa STA và AP. Thực tế diễn ra đúng như vậy ngay cả khi ta muốn
gửi dữ liệu đến một STA khác. Đầu tiên, ta phải gửi dữ liệu đến AP và sau đó
AP gửi dữ liệu đến STA. Thường dữ liệu được gửi đến AP và nó sẽ đẩy dữ
liệu vào mạng LAN hoặc tới Internet gateway. Để làm được điều này, mỗi gói
dữ liệu IEEE 802.11 đi và đến AP đều có 3 địa chỉ. Hai trong số đó là địa chỉ
nguồn và đích thật sự, địa chỉ còn lại là địa chỉ trung gian, đó chính là địa chỉ
AP.
Khi gửi dữ liệu từ STA tới AP thì chỉ có một địa chỉ nguồn, đó chính là
địa chỉ của STA gửi thông tin đi và có tới 2 địa chỉ đích. Một địa chỉ đích là
của AP và địa chỉ còn lại chính là đích thực sự mà dữ liệu cần gửi đến. Giống
như dữ liệu từ AP đến STA cũng có một địa chỉ đích nhưng lại có đến 2 địa
chỉ nguồn, một là của AP và một là của thiết bị gửi dữ liệu đi.
15
1.4. Kết chương
Chương này giúp cho chúng ta có một cái nhìn tổng quan về sự phát
triển của mạng không dây, các công nghệ ứng dụng trong mạng không dây
cũng như các kỹ thuật điều chế trải phổ. Chúng ta cũng có thể hiểu một cách
khái quát cơ chế hoạt động của mạng WLAN, ưu điểm cũng như các mô hình
hoạt động của mạng WLAN.
Ngoài ra, chúng ta cũng tìm hiểu về chuẩn 802.11 cho mạng WLAN,
nắm được những gì diễn ra trong quá trình thiết lập kết nối với một hệ thống
WLAN đơn giản (chưa có chứng thực và mã hóa).
Chương tiếp theo sẽ nghiên cứu theo sẽ nghiên cứu thực trạng mất an
ninh an toàn của mạng không dây, các kiểu tấn công trong mạng không dây,
các kỹ thuật mật mã ứng dụng để bảo mật mạng không dây và một số giải
pháp cho việc đảm bảo an ninh an toàn cho mạng không dây mà cụ thể là
WLAN.
16
Chương 2
MỘT SỐ GIẢI PHÁP ĐẢM BẢO AN NINH AN TOÀN CHO MẠNG KHÔNG DÂY
2.1. Thực trạng mất an ninh an toàn của mạng không dây
2.1.1. Khái niệm an ninh an toàn thông tin
An ninh an toàn thông tin (ANATTT) nghĩa là thông tin được bảo vệ,
các hệ thống và những dịch vụ có khả năng chống lại những hiểm họa, lỗi
và sự tác động không mong đợi, các thay đổi tác động đến độ an toàn của hệ
thống là nhỏ nhất. Thực chất ANATTT không chỉ là những công cụ mà là cả
một quá trình trong đó bao gồm những chính sách liên quan đến tổ chức, con
người, môi trường bảo mật, các mối quan hệ và những công nghệ để đảm bảo
an toàn hệ thống mạng. Hệ thống có một trong các đặc điểm sau là không an
toàn: Các thông tin dữ liệu trong hệ thống bị người không có quyền truy
nhập tìm cách lấy và sử dụng (thông tin bị rò rỉ). Các thông tin trong hệ
thống bị thay thế hoặc sửa đổi làm sai lệch nội dung (thông tin bị xáo
trộn)…Không thể đảm bảo ANATTT 100%, nhưng có thể giảm bớt các rủi
ro không mong muốn. Khi các tổ chức, đơn vị tiến hành đánh giá những rủi
ro và cân nhắc kỹ những biện pháp đối phó về mất ANATTT họ luôn luôn đi
đến kết luận: Những giải pháp công nghệ (kỹ thuật) đơn lẻ không thể cung
cấp đủ sự an toàn. Những sản phẩm Anti-virus, Firewall và các công cụ khác
không thể cung cấp sự an toàn cần thiết cho hầu hết các tổ chức. ANATTT là
một mắt xích liên kết hai yếu tố: yếu tố công nghệ và yếu tố con người.
- Yếu tố công nghệ: Bao gồm những sản phẩm của công nghệ như
Firewall, phần mềm phòng chống virus, giải pháp mật mã, sản phẩm
mạng, hệ điều hành và những ứng dụng như: trình duyệt Internet và phần
mềm nhận Email từ máy trạm.
17
- Yếu tố con người: Là những người sử dụng máy tính, những người
làm việc với thông tin và sử dụng máy tính trong công việc của mình. Con
người là khâu yếu nhất trong toàn bộ quá trình đảm bảo ANATTT. Hầu như
phần lớn các phương thức tấn công được hacker sử dụng là khai thác các
điểm yếu của hệ thống thông tin và đa phần các điểm yếu đó rất tiếc lại do
con người tạo ra. Việc nhận thức kém và không tuân thủ các chính sách về
ANATTT là nguyên nhân chính gây ra tình trạng trên. Đơn cử là vấn đề sử
dụng mật khẩu kém chất lượng, không thay đổi mật khẩu định kỳ, quản lý
lỏng lẻo là những khâu yếu nhất mà hacker có thể lợi dụng để xâm nhập
và tấn công.
2.1.2. Đánh giá vấn đề an toàn, bảo mật hệ thống
Để đảm bảo an ninh cho mạng, cần phải xây dựng một số tiêu
chuẩn đánh giá mức độ an ninh an toàn mạng. Một số tiêu chuẩn đã được
thừa nhận là thước đo mức độ an ninh mạng.
2.1.2.1. Đánh giá trên phương diện vật lý
a. An toàn thiết bị
Các thiết bị sử dụng trong mạng cần đáp ứng được các yêu cầu sau:
- Có thiết bị dự phòng nóng cho các tình huống hỏng đột ngột. Có
khả năng thay thế nóng từng phần hoặc toàn phần (hot-plug, hot-swap).
- Khả năng cập nhật, nâng cấp, bổ sung phần cứng và phần mềm.
- Yêu cầu đảm bảo nguồn điện, dự phòng trong tình huống mất điện đột
ngột.
- Các yêu cầu phù hợp với môi trường xung quanh: độ ẩm, nhiệt độ,
chống sét,phòng chống cháy nổ, vv...
b. An toàn dữ liệu
- Có các biện pháp sao lưu dữ liệu một cách định kỳ và không định kỳ
trong các tình huống phát sinh.
18
- Có biện pháp lưu trữ dữ liệu tập trung và phân tán nhằm giảm bớt rủi
ro trong các trường hợp đặc biệt như cháy nổ, thiên tai, chiến tranh, ...
2.1.2.2. Đánh giá trên phương diện logic
Đánh giá theo phương diện này có thể chia thành các yếu tố cơ bản sau:
a. Tính bí mật
Là sự bảo vệ dữ liệu truyền đi khỏi những cuộc tấn công bị động. Có
thể dùng vài mức bảo vệ để chống lại kiểu tấn công này. Dịch vụ rộng nhất
là bảo vệ mọi dữ liệu của người sử dụng truyền giữa hai người dùng trong
một khoảng thời gian. Nếu một kênh ảo được thiết lập giữa hai hệ thống,
mức bảo vệ rộng sẽ ngăn chặn sự rò rỉ của bất kỳ dữ liệu nào truyền trên kênh
đó.
Cấu trúc hẹp hơn của dịch vụ này bao gồm việc bảo vệ một bản tin
riêng lẻ hay những trường hợp cụ thể bên trong một bản tin. Khía cạnh khác
của tin bí mật là việc bảo vệ lưu lượng khỏi sự phân tích. Điều này làm cho
những kẻ tấn công không thể quan sát được tần suất, những đặc điểm khác
của lưu lượng trên một phương tiện giao tiếp.
b. Tính xác thực
Liên quan tới việc đảm bảo rằng một cuộc trao đổi thông tin là đáng
tin cậy. Trong trường hợp một bản tin đơn lẻ, ví dụ như một tín hiệu báo
động hay cảnh báo, chức năng của dịch vụ ủy quyền là đảm bảo với bên nhận
rằng bản tin là từ nguồn mà nó xác nhận là đúng.
Trong trường hợp một tương tác đang xảy ra, ví dụ kết nối của một
đầu cuối đến máy chủ, có hai vấn đề sau: thứ nhất tại thời điểm khởi tạo kết
nối, dịch vụ đảm bảo rằng hai thực thể là đáng tin. Mỗi chúng là một thực
thể được xác nhận. Thứ hai, dịch vụ cần phải đảm bảo rằng kết nối là không
bị gây nhiễu do một thực thể thứ ba có thể giả mạo là một trong hai thực thể
hợp pháp để truyền tin hoặc nhận tin không được cho phép.
19
c. Tính toàn vẹn
Cùng với tính bí mật, tính toàn vẹn có thể áp dụng cho một luồng các
bản tin, một bản tin riêng biệt hoặc những trường lựa chọn trong bản tin. Một
lần nữa, phương thức có ích nhất và dễ dàng nhất là bảo vệ toàn bộ luồng dữ
liệu
Một dịch vụ toàn vẹn hướng kết nối, liên quan tới luồng dữ liệu, đảm
bảo rằng các bản tin nhận được cũng như gửi đi không có sự trùng lặp, chèn,
sửa, hoán vị hoặc tái sử dụng. Việc hủy dữ liệu này cũng được bao gồm
trong dịch vụ. Vì vậy, dịch vụ toàn vẹn hướng kết nối phá hủy được cả sự
thay đổi luồng dữ liệu và cả từ chối dữ liệu. Mặt khác, một dịch vụ toàn vẹn
không kết nối, liên quan tới từng bản tin riêng lẻ, không quan tâm tới bất kỳ
một hoàn cảnh rộng nào, chỉ cung cấp sự bảo vệ chống lại sửa đổi bản tin
d. Tính không thể phủ nhận
Tính không thể phủ nhận bảo đảm rằng người gửi và người nhận không
thể chối bỏ một bản tin đã được truyền. Vì vậy, khi một bản tin được gửi đi,
bên nhận có thể chứng minh được rằng bản tin đó thật sự được gửi từ người
gửi hợp pháp. Hoàn toàn tương tự, khi một bản tin được nhận, bên gửi có thể
chứng minh được bản tin đó đúng thật được nhận bởi người nhận hợp lệ.
e. Khả năng điều khiển truy nhập
Trong hoàn cảnh của an ninh mạng, điều khiển truy nhập là khả năng
hạn chế các truy nhập với máy chủ thông qua đường truyền thông. Để đạt
được việc điều khiển này, mỗi một thực thể cố gắng đạt được quyền truy
nhập cần phải được nhận diện, hoặc được xác nhận sao cho quyền truy
nhập có thể được đáp ứng nhu cầu đối với từng người.
f. Tính khả dụng, sẵn sàng
Một hệ thống đảm bảo tính sẵn sàng có nghĩa là có thể truy nhập dữ
liệu bất cứ lúc nào mong muốn trong vòng một khoảng thời gian cho phép.
20
Các cuộc tấn công khác nhau có thể tạo ra sự mất mát hoặc thiếu về sự sẵn
sàng của dịch vụ. Tính khả dụng của dịch vụ thể hiện khả năng ngăn chặn
và khôi phục những tổn thất của hệ thống do các cuộc tấn công gây ra.
2.1.3. Các nguy cơ mất an ninh an toàn trong mạng không dây
2.1.3.1. Tấn công bị động
a. Định nghĩa
Tấn công bị động là kiểu tấn công không tác động trực tiếp vào thiết bị
nào trên mạng, không làm cho các thiết bị trên mạng biết được hoạt động của
nó vì thế kiểu tấn công này nguy hiểm ở chỗ nó rất khó phát hiện. Ví dụ
như việc lấy trộm thông tin trong không gian truyền sóng của các thiết bị
sẽ rất khó bị phát hiện dù thiết bị lấy trộm đó nằm trong vùng phủ sóng
của mạng chứ chưa nói đến việc nó được đặt ở khoảng cách xa và sử dụng
anten được định hướng tới nơi phát sóng, khi đó cho phép kẻ tấn công giữ
được khoảng cách thuận lợi mà không để bị phát hiện.
Các phương thức thường dùng trong tấn công bị động: nghe trộm
(Sniffing,Eavesdropping), phân tích luồng thông tin (Traffic analysis).
b. Phương thức bắt gói tin
Bắt gói tin – Sniffing là khái niệm cụ thể của khái niệm tổng quát
“Nghe trộm – Eavesdropping” sử dụng trong mạng máy tính. Có lẽ đây là
phương pháp đơn giản nhất, tuy nhiên nó vẫn có hiệu quả đối với việc tấn
công WLAN. Bắt gói tin có thể hiểu như là một phương thức lấy trộm
thông tin khi đặt một thiết bị thu nằm trong hoặc nằm gần vùng phủ sóng.
Tấn công kiểu bắt gói tin sẽ khó bị phát hiện ra sự có mặt của thiết bị bắt
21
gói dù thiết bị đó nằm trong hoặc nằm gần vùng phủ sóng nếu thiết bị không
thực sự kết nối tới AP để thu các gói tin.
Những chương trình bắt gói tin có khả năng lấy các thông tin quan
trọng, mật khẩu, … từ các quá trình trao đổi thông tin trên máy người dùng
với các site HTTP, email, các instant messenger, các phiên FTP, các phiên
telnet nếu những thông tin trao đổi đó dưới dạng văn bản không mã hóa. Có
những chương trình có thể lấy được mật khẩu trên mạng không dây của quá
trình trao đổi giữa Client và Server khi đang thực hiện quá trình nhập mật
khẩu để đăng nhập.
Bắt gói tin ngoài việc trực tiếp giúp cho quá trình phá hoại, nó còn gián
tiếp là tiền đề cho các phương thức phá hoại khác. Bắt gói tin là cơ sở của
các phương thức tấn công như ăn trộm thông tin, thu thập thông tin phân bố
mạng (wardriving), dò mã, bẻ mã (Key crack), ...
Hình 2.1: Phần mềm bắt gói tin Ethereal
22
Wardriving: là một thuật ngữ để chỉ thu thập thông tin về tình hình
phân bố các thiết bị, vùng phủ sóng, cấu hình của mạng không dây. Với ý
tưởng ban đầu dùng một thiết bị dò sóng, bắt gói tin, kẻ tấn công ngồi trên
xe ô tô và đi khắp các nơi để thu thập thông tin chính vì thế mà có tên là
wardriving.
Hình 2.2: Phần mềm thu thập thông tin hệ thống mạng không dây
NetStumbler
Biện pháp đối phó: Vì “bắt gói tin” là phương thức tấn công kiểu bị
động nên rất khó phát hiện và do đặc điểm truyền sóng trong không gian nên
không thể phòng ngừa việc nghe trộm của kẻ tấn công. Giải pháp đề ra ở đây
là nâng cao khả năng mã hóa thông tin sao cho kẻ tấn công không thể giải mã
được, khi đó thông tin lấy được sẽ không có giá trị đối với kẻ tấn công.
2.1.3.2. Tấn công chủ động
a. Định nghĩa
Tấn công chủ động là tấn công trực tiếp vào một hoặc nhiều thiết bị
trên mạng ví dụ như vào AP, STA. Kiểu tấn công này dễ phát hiện nhưng
khả năng phá hoại của nó rất nhanh và nhiều, khi phát hiện ra chúng ta chưa
23
kịp có phương pháp đối phó thì kẻ tấn công đã thực hiện xong quá trình phá
hoại.
So với kiểu tấn công bị động thì tấn công chủ động có nhiều phương
thức đa dạng hơn, ví dụ như: Tấn công DOS, Sửa đổi thông tin (Message
Modification), Đóng giả, mạo danh, che dấu (Masquerade), Lặp lại thông tin
(Replay), Bomb, Spam mail,…
Message Modification Denied of service
Active Attacks
Replay Masquerade
b. Tấn công DOS
Với mạng máy tính không dây và mạng có dây thì không có khác biệt
cơ bản về các kiểu tấn công DOS ở các tầng ứng dụng và vận chuyển nhưng
giữa các tầng mạng, liên kết dữ liệu và vật lý lại có sự khác biệt lớn. Chính
điều này làm tăng độ nguy hiểm của kiểu tấn công DOS trong mạng máy tính
không dây. Trước khi thực hiện tấn công DOS, kẻ tấn công có thể sử dụng
chương trình phân tích lưu lượng mạng để biết được chỗ nào đang tập trung
nhiều lưu lượng, số lượng xử lý nhiều và kẻ tấn công sẽ tập trung tấn công
DOS vào những vị trí đó để nhanh đạt được hiệu quả hơn.
Tấn công DOS tầng vật lý
Tấn công DOS tầng vật lý ở mạng có dây muốn thực hiện được thì
yêu cầu kẻ tấn công phải ở gần các máy tính trong mạng. Điều này lại không
đúng trong mạng không dây. Với mạng này, bất kỳ môi trường nào cũng dễ
24
bị tấn công và kẻ tấn công có thể xâm nhập vào tầng vật lý từ một khoảng
cách rất xa, có thể là từ bên ngoài thay vì phải đứng bên trong tòa nhà.
Trong mạng máy tính có dây khi bị tấn công thì thường để lại các dấu
hiệu dễ nhận biết như là cáp bị hỏng, dịch chuyển cáp, hình ảnh được ghi lại
từ camera thì với mạng không dây lại không để lại bất kỳ một dấu hiệu nào.
802.11 PHY đưa ra một phạm vi giới hạn các tần số trong giao tiếp. Một kẻ
tấn công có thể tạo ra một thiết bị làm bão hòa dải tần 802.11 với nhiễu.
Như vậy, nếu thiết bị đó tạo ra đủ nhiễu tần số vô tuyến thì sẽ làm giảm tín
hiệu / tỷ lệ nhiễu tới mức không phân biệt được dẫn đến các STA nằm
trong dải tần nhiễu sẽ bị ngừng hoạt động. Các thiết bị sẽ không thể phân
biệt được tín hiệu mạng một cách chính xác từ tất cả các nhiễu xảy ra ngẫu
nhiên đang được tạo ra và do đó sẽ không thể giao tiếp được. Tấn công theo
kiểu này không phải là sự đe dọa nghiêm trọng, nó khó có thể thực hiện phổ
biến do vấn đề giá cả của thiết bị quá đắt trong khi kẻ tấn công chỉ tạm
thời vô hiệu hóa được mạng.
Tấn công DOS tầng liên kết dữ liệu
Do ở tầng liên kết dữ liệu kẻ tấn công cũng có thể truy cập bất kì đâu
nên lại một lần nữa tạo ra nhiều cơ hội cho kiểu tấn công DOS. Thậm chí khi
WEP đã được bật, kẻ tấn công có thể thực hiện một số cuộc tấn công DOS
bằng cách truy cập tới thông tin lớp liên kết. Khi không có WEP, kẻ tấn công
truy cập toàn bộ tới các liên kết giữa các STA và AP để chấm dứt truy cập tới
mạng. Nếu một AP sử dụng không đúng anten định hướng kẻ tấn công có
nhiều khả năng từ chối truy cập từ các client liên kết tới AP. Anten định
hướng đôi khi còn được dùng để phủ sóng nhiều khu vực hơn với một AP
bằng cách dùng các anten. Nếu anten định hướng không phủ sóng với khoảng
cách các vùng là như nhau, kẻ tấn công có thể từ chối dịch vụ tới các trạm
25
liên kết bằng cách lợi dụng sự sắp đặt không đúng này, điều đó có thể được
minh họa ở hình dưới đây:
Hình 2.3: Mô tả quá trình tấn công DOS tầng liên kết dữ liệu
Giả thiết anten định hướng A và B được gắn vào AP và chúng được
sắp đặt để phủ sóng cả hai bên bức tường một cách độc lập. Client A ở bên
trái bức tường, vì vậy AP sẽ chọn anten A cho việc gửi và nhận các khung.
Client B ở bên phải bức tường, vì vậy chọn việc gửi và nhận các khung với
anten B. Client B có thể loại client A ra khỏi mạng bằng cách thay đổi địa chỉ
MAC của Client B giống hệt với Client A. Khi đó Client B phải chắc chắn
rằng tín hiệu phát ra từ anten B mạnh hơn tín hiệu mà Client A nhận được từ
anten A bằng việc dùng một bộ khuếch đại hoặc các kỹ thuật khuếch đại
khác nhau. Như vậy AP sẽ gửi và nhận các khung ứng với địa chỉ MAC ở
anten B. Các khung của Client A sẽ bị từ chối chừng nào mà Client B tiếp tục
gửi lưu lượng tới AP.
Tấn công DOS tầng mạng
Nếu một mạng cho phép bất kì một client nào kết nối, nó dễ bị tấn
công DOS tầng mạng. Mạng máy tính không dây chuẩn 802.11 là môi
trường chia sẻ tài nguyên. Một người bất hợp pháp có thể xâm nhập vào
26
mạng, từ chối truy cập tới các thiết bị được liên kết với AP. Ví dụ như kẻ
tấn công có thể xâm nhập vào mạng 802.11b và gửi đi hàng loạt các gói tin
ICMP qua cổng gateway. Trong khi cổng gateway có thể vẫn thông suốt lưu
lượng mạng, thì dải tần chung của 802.11b lại dễ dàng bị bão hòa. Các Client
khác liên kết với AP này sẽ gửi các gói tin rất khó khăn.
Biện pháp đối phó: Biện pháp mang tính “cực đoan” hiệu quả nhất là
chặn và lọc bỏ đi tất cả các bản tin mà DOS hay sử dụng, như vậy có thể sẽ
chặn bỏ luôn cả những bản tin hữu ích. Để giải quyết tốt hơn, cần có
những thuật toán thông minh nhận dạng tấn công – attack detection, dựa vào
những đặc điểm như gửi bản tin liên tục, bản tin giống hệt nhau, bản tin
không có ý nghĩa, ... Thuật toán này sẽ phân biệt bản tin có ích với các cuộc
tấn công để có biện pháp lọc bỏ.
2.1.3.3. Tấn công theo kiểu chèn ép
Ngoài việc sử dụng phương pháp tấn công bị động, chủ động để lấy
thông tin truy cập tới mạng của người dùng, phương pháp tấn công theo kiểu
chèn ép Jamming là một kỹ thuật sử dụng đơn giản để làm mạng ngừng
hoạt động. Phương thức Jamming phổ biến nhất là sử dụng máy phát có tần
số phát giống tần số mà mạng sử dụng để áp đảo làm mạng bị nhiễu, bị
ngừng làm việc. Tín hiệu RF đó có thể di chuyển hoặc cố định.
27
Hình 2.4: Mô tả quá trình tấn công theo kiểu chèn ép
2.1.3.4. Tấn công theo kiểu thu hút
Tấn công theo kiểu thu hút có nghĩa là dùng một khả năng mạnh hơn
chen vào giữa hoạt động của các thiết bị và thu hút, giành lấy sự trao đổi
thông tin của thiết bị về mình. Thiết bị chèn giữa đó phải có vị trí, khả năng
thu phát trội hơn các thiết bị sẵn có của mạng. Một đặc điểm nổi bật của
kiểu tấn công này là người sử dụng không thể phát hiện ra được cuộc tấn
công, và lượng thông tin thu được bằng kiểu tấn công này là giới hạn.
Hình 2.5: Mô tả quá trình tấn công theo kiểu thu hút
Phương thức thường sử dụng theo kiểu tấn công này là Mạo danh
AP (AP rogue), có nghĩa là chèn thêm một AP giả mạo vào giữa các kết nối
trong mạng.
2.2. Cơ sở khoa học của mật mã ứng dụng trong việc đảm bảo an toàn và
bảo mật mạng không dây
2.2.1. Giới thiệu chung
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ
khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai
Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng
rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu
thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc
biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trước hết là
28
một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông
tin. Để thực hiện được một phép mật mã, cần có một thuật toán biến bản rõ
cùng với khóa mật mã thành bản mã mật và một thuật toán ngược lại biến
bản mật cùng với khóa mật mã thành bản rõ. Các thuật toán đó được gọi
tương ứng là thuật toán lập mã và thuật toán giải mã. Các thuật toán này
thường không nhất thiết phải giữ bí mật, cái luôn cần được giữ bí mật là
khóa mật mã. Trong thực tiễn có những hoạt động ngược lại với hoạt động
bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này
thường được gọi là mã thám hay phá khóa.
2.2.2. Hệ mật mã khóa đối xứng
Các phương pháp mật mã cổ điển đã được biết đến từ khoảng 4000
năm trước. Một số kỹ thuật đã được những người Ai Cập sử dụng từ nhiều thế
kỷ trước. Những kỹ thuật này chủ yếu sử dụng hai phương pháp chính là:
phép thay thế và phép chuyển dịch. Trong phép thay thế, một chữ cái này
được thay thế bởi chữ cái khác và trong phép chuyển dịch, các chữ cái được
sắp xếp theo một trật tự khác [10].
Hệ mã chuẩn DES được xây dựng tại Mỹ trong những năm 70 theo yêu
cầu của Văn phòng quốc gia về chuẩn và được sự thẩm định của cơ quan an
ninh quốc gia là một ví dụ về mật mã đối xứng. DES kết hợp cả hai phương
pháp thay thế và chuyển dịch. DES thực hiện mã hoá trên từng khối bản rõ
là một xâu 64 bit, có khóa là một xâu 56 bit và cho ra bản mã cũng là một
xâu 64 bit. Hiện nay, DES và biến thể của nó (3DES) vẫn được sử dụng thành
công trong nhiều ứng dụng.
Trong các hệ mã đối xứng chỉ có một khóa được chia sẻ giữa các bên
tham gia liên lạc. Cứ mỗi lần truyền tin bảo mật, cả người gửi A và người
nhận B cùng thoả thuận trước với nhau một khóa chung K, sau đó người gửi
dùng giải thuật lập mã để lập mã cho thông báo gửi đi và người nhận dùng
29
giải thuật giải mã để giải mã bản mật mã nhận được. Người gửi và người
nhận có cùng một khóa chung K, khóa này được giữ bí mật dùng cho cả lập
mã và giải mã. Những hệ mật mã cổ điển với cách sử dụng trên được gọi là
mật mã khóa đối xứng hay còn gọi là mật mã khóa bí mật. Độ an toàn của hệ
mật mã đối xứng phụ thuộc vào khóa. Nếu để lộ khóa thì bất kỳ người nào
cũng có thể mã hóa và giải mã thông điệp.
Hình 2.6: Mô hình hệ mật mã khóa đối xứng
Ưu điểm nổi bật của các hệ mật mã khóa đối xứng là việc xây dựng
một hệ mật mã có độ bảo mật cao khá dễ dàng về mặt lý thuyết. Nhưng như
nếu không kể đến việc cần có một nguồn sinh khóa ngẫu nhiên thì việc phân
phối, lưu trữ bảo mật và thoả thuận khóa là một vấn đề khó chấp nhận
được trong mạng truyền thông ngày nay. Trong một mạng có n người dùng,
nếu cần khóa cho từng cặp thì cần n(n+1)/2 khóa.
Để khắc phục hiện tượng không thể lưu trữ một khối lượng khóa quá
lớn đáp ứng được nhu cầu mã dịch, người ta xem xét đến việc sử dụng các hệ
mật mã khối với độ dài không lớn lắm như DES…hoặc các hệ mật mã dòng
mà khóa được sinh ra từ một nguồn giả ngẫu nhiên bằng thuật toán.
Mặc dù đã thực hiện việc mã hóa và giải mã bằng các hệ mật mã khối
hay bằng thuật toán sinh khóa như đã nêu ở trên thì vấn đề phân phối và
30
thoả thuận khóa vẫn phải được thực hiện. Như vậy phân phối và thoả thuận
khóa là một vấn đề chưa thể được giải quyết trong các hệ mật mã khóa đối
xứng.
2.2.3. Hệ mật mã khóa công khai
Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa
đối xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã
khóa công khai [10] và một phương pháp trao đổi công khai để tạo ra một
khoá bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bài
toán toán học cụ thể (là bài toán tính “logarit rời rạc”). Hệ mật mã khóa
công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp
khóa, khóa mã hóa còn gọi là khóa công khai và khóa giải mã được gọi là
khóa bí mật hay khóa riêng. Trong hệ mật này, khóa mã hóa khác với khóa
giải mã. Về mặt toán học thì từ khóa công khai rất khó tính được khóa riêng.
Biết được khóa này không dễ dàng tìm được khóa kia. Khóa giải mã được
giữ bí mật trong khi khóa mã hóa được công bố công khai. Một người bất kỳ
có thể sử dụng khóa công khai để mã hoá tin tức, nhưng chỉ có người nào có
đúng khóa giải mã mới có khả năng xem được bản rõ. Người gửi A sẽ mã
hoá thông điệp bằng khóa công của người nhận và người nhận B sẽ giải mã
thông điệp với khoá riêng tương ứng của mình.
31
Hình 2.7: Mô hình hệ mật mã khóa công khai
Có nhiều hệ thống khóa công khai được triển khai rộng rãi như hệ
RSA, hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên
trong những năm gần đây là hệ đường cong Elliptic. Trong số các hệ mật mã
trên thì hệ RSA là hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp
nhận rộng rãi trong việc thực thi mật mã khóa công khai.
Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã được
công bố lần đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American.
Hệ mật mã RSA được sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích
bảo mật và xác thực dữ liệu số. Tính bảo mật và an toàn của chúng được bảo
đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích
số nguyên thành các thừa số nguyên tố.
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc
“cách mạng” trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn
triển khai cho thấy tốc độ mã hóa khối dữ liệu lớn bằng các thuật toán mã
32
hóa công khai chậm hơn rất nhiều so với hệ mã hóa đối xứng. Ví dụ, để đạt
được độ an toàn như các hệ mã đối xứng mạnh cùng thời, RSA đòi hỏi thời
gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn lần. Do đó, thay
bằng việc mã hóa văn bản có kích thước lớn bằng lược đồ khóa công khai thì
văn bản này sẽ được mã hóa bằng một hệ mã đối xứng có tốc độ cao như
DES, IDEA,… sau đó khóa được sử dụng trong hệ mã đối xứng sẽ được mã
hóa sử dụng mật mã khóa công khai. Phương pháp này rất khả thi trong việc
mã và giải mã những văn bản có kích thước lớn.Vấn đề còn tồn đọng của hệ
mật mã khóa đối xứng được giải quyết nhờ hệ mật mã khóa công khai. Chính
ưu điểm này đã thu hút nhiều trí tuệ vào việc đề xuất, đánh giá các hệ mật mã
công khai. Nhưng do bản thân các hệ mật mã khóa công khai đều dựa vào
các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều
có tốc độ mã dịch không nhanh lắm. Chính nhược điểm này làm cho các hệ
mật mã khóa công khai khó được dùng một cách độc lập.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là
việc xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các
khóa mã công khai được công bố một cách công khai trên mạng cho nên việc
đảm bảo rằng “khóa được công bố có đúng là của đối tượng cần liên lạc hay
không?” là một kẽ hở có thể bị lợi dụng. Vấn đề xác thực này được giải
quyết cũng chính bằng các hệ mật mã khóa công khai. Nhiều thủ tục xác thực
đã được nghiên cứu và sử dụng như Kerberos, X.509… Một ưu điểm nữa của
các hệ mật mã khóa công khai là các ứng dụng của nó trong lĩnh vực chữ ký
số, cùng với các kết quả về hàm băm, thủ tục ký để bảo đảm tính toàn vẹn
của một văn bản được giải quyết.
2.3. Nghiên cứu một số giải pháp đảm bảo an ninh an toàn cho
mạng WLAN
2.3.1. Phương pháp bảo mật dựa trên WEP
33
2.3.1.1. Vấn đề chứng thực
Có hai vấn đề cần phải quan tâm khi nói đến WEP, đầu tiên là chứng
thực và thứ hai là mã hóa.
Với IEEE 802.11 WEP [7], trong giai đoạn chứng thực một thiết bị mới
phải chứng minh rằng nó đúng là thành viên của nhóm, vậy nó chứng minh
bằng cách nào? Về phía AP mà nói, nếu một thiết bị có thể chứng tỏ nó đúng
là đáng tin cậy thì có thể tin địa chỉ MAC của nó không phải là địa chỉ giả
mạo và nó cho phép thiết bị mới này kết nối vào mạng. Tuy nhiên thật không
may là chẳng có dấu hiệu đảm bảo nào được sử dụng trong quá trình chứng
thực vì thế mà chẳng có cơ sở để biết liệu gói tin đến từ thiết bị đáng tin cậy
hay là không. Kiểu chứng thực này thực sự không đảm bảo tin cậy và do đó
nó đã bị loại bỏ khỏi tính năng của WLAN, cho dù là nó nằm trong chuẩn
IEEE 802.11.
Dù yếu nhưng một số hệ thống vẫn sử dụng kiểu chứng thực của
chuẩn IEEE 802.11 ban đầu. Chúng ta đã biết rằng IEEE 802.11 sử dụng 3
kiểu gói tin là gói tin điều khiển, gói tin quản lý và gói tin dữ liệu. Giai
đoạn chứng thực sử dụng gói tin quản lý, để chứng thực trong trường hợp
không có bảo mật STA gửi một gói tin yêu cầu chứng thực và AP gửi trả lại
gói tin báo chứng thực thành công. Đối với chứng thực dựa trên WEP có 4
gói tin được trao đổi. Đầu tiên STA gửi yêu cầu chứng thực, sau đó AP gửi
trả lại một gói tin challenge. STA đáp lại gói tin challenge đó để chứng tỏ
rằng nó biết khóa bảo mật và nếu được chấp nhận AP sẽ gửi lại gói tin báo
chứng thực thành công.
34
Hình 2.8: Quá trình chứng thực diễn ra trong WEP
Về mặt nguyên tắc, nếu một AP hoạt động ở chế độ không có bảo mật
nó luôn luôn chấp nhận các yêu cầu chứng thực và đáp lại với một gói tin
báo chứng thực thành công. Tuy nhiên, trong thực tế nhiều hệ thống cung
cấp các phương pháp riêng của mình, phổ biến nhất là sử dụng danh sách địa
chỉ MAC. AP có một danh sách các địa chỉ MAC mà nó cho phép truy nhập
vào mạng. Danh sách này do người quản trị tạo ra và lưu lại trên AP. Quá
trình chứng thực dựa vào danh sách này, tức là nếu STA có địa chỉ MAC nằm
trong danh sách thì nó được phép truy cập vào mạng, nếu không, nó sẽ bị từ
chối. Đương nhiên là không thể ngăn chặn được những địa chỉ MAC giả,
nhưng dù sao thì nó cũng có tác dụng nhất định nhằm tránh việc vô tình truy
cập nhầm mạng.
Chứng thực WEP với mục đích là chứng minh với AP rằng STA biết
khóa bảo mật. Khi một STA yêu cầu chứng thực, AP gửi tới nó một số ngẫu
nhiên được gọi là challenge text. Đây là một số 128 bit bất kỳ (giả ngẫu
nhiên). STA sau đó mã hóa số này bằng khóa bảo mật và gửi trả lại cho AP.
Do AP đã lưu lại số ngẫu nhiên mà nó đã gửi đi, đồng thời nó cũng có khóa
35
bảo mật mà STA có từ đó nó có thể giải mã số mà STA gửi đến, so sánh hai
kết quả nếu hai kết quả trùng nhau thì STA đó là thiết bị biết khóa mật mã và
đáng tin cậy. Ở đây có một vấn đề là STA chẳng có cách nào biết được
liệu AP có biết khóa bảo mật hay không. Nếu một kẻ nào đó đang theo dõi,
thì vô tình ta đã cho hắn ta một cơ hội bẻ khóa vì hắn đã có thể có trong tay
cả số ngẫu nhiên và số đã được mã hóa bằng khóa bảo mật, dựa vào đó có
thể tìm ra khóa. Đó cũng là lý do tại sao hiệp hội Wifi Alliance loại bỏ kiểu
trao đổi này.
Dưới đây là định dạng của gói tin chứng thực, cho dù nhiều gói tin
được trao đổi nhưng nó có chung một dạng:
Algorithm Num Transaction Seq Status Code Challenge Text
Hình 2.9: Định dạng của gói tin chứng thực
Algorithm Num: chỉ kiểu chứng thực được sử dụng:
0 – Không có bảo mật.
1 – Có sử dụng khóa bảo mật (WEP).
Transaction Seq: chỉ ra ta đang ở phần nào của quá trình chứng
thực. Gói tin thứ nhất ứng với giá trị 1, gói tin thứ hai ứng với giá trị 2 và gói
tin thứ 3 (chỉ dùng với WEP) có giá trị là 3.
Status Code: được gửi cuối cùng để thông báo yêu cầu chứng
thực có thành công hay không.
Challenge Text: là số ngẫu nhiên như đã được nói ở trên.
2.3.1.2. Vấn đề mã hóa
Ngoài việc chứng thực, mã hóa là một phần không thể thiếu được khi
nói đến WEP. Để bảo vệ những thông tin cần thiết, tránh nguy cơ bị lộ thông
tin thì mã hóa chính là giải pháp được tính đến.
Khi WEP được kích hoạt, dữ liệu được truyền đi dưới dạng mã hóa nên
những kẻ tấn công có lấy được gói tin cũng không giải mã được. Để giải mã
36
gói tin chúng ta phải biết khóa. Chuẩn IEEE 802.11 ban đầu đã đưa ra 2 quá
trình: trước hết là phải chứng thực sau đó mới mã hóa. Như đã nói ở phần
trước, phương pháp chứng thực ở đây gần như không có ý nghĩa, nó đôi khi
còn nguy hơn là không sử dụng. Vì thế, hầu hết các hệ thống WLAN bỏ qua
giai đoạn chứng thực và chuyển luôn sang mã hóa sau khi đã tạo được kết nối.
Các hệ thống bảo mật có thể dựa vào việc mã hóa theo chuỗi hoặc mã
hóa khối. WEP sử dụng thuật toán mã hóa chuỗi gọi là RC4 để mã hóa các
gói dữ liệu. RC4 là tên viết tắt của Rivest Cipher 4 do Ron Rivest thiết kế
vào năm 1987. Ở mức độ cao nhất, RC4 giống như là một hộp đen, nó lấy
một byte từ chuỗi dữ liệu và tạo một byte khác tương ứng ở đầu ra. Việc giải
mã là quá trình ngược lại và vẫn sử dụng khóa như quá trình mã hóa.
Hình 2.10: Mã hóa chuỗi
Một trong những ưu điểm của RC4 là nó dễ thực hiện và không sử
dụng bất kỳ các phép toán phức tạp hay tốn thời gian tính toán nào giống
như phép nhân. Nói chung đây cũng là một thách thức đối với những nhà
thiết kế thuật toán, làm sao để thỏa mãn vừa đảm bảo tính bảo mật lại vừa dễ
thực hiện. Có 2 giai đoạn chính trong việc dùng thuật toán RC4. Giai đoạn
đầu là khởi tạo: một số bảng dữ liệu được tạo nên dựa trên khóa đã cho, giai
đoạn hai: dữ liệu được đưa qua dây truyền mã. Trong trường hợp đối với
WEP, cả giai đoạn khởi tạo và giai đoạn mã hóa xảy ra đối với từng gói. Mỗi
gói được coi như là một chuỗi dữ liệu, điều này đảm bảo rằng nếu một gói bị
mất thì gói tin tiếp theo vẫn có thể giải mã được. Có một vấn đề trong việc sử
dụng giá trị khóa cố định. Cho dù khóa đó có được thay đổi đi chăng nữa, nó
vẫn gặp phải vấn đề đối với các gói tin khi đi qua hệ thống mã hóa đó là tất
37
cả các gói tin được mã hóa với cùng một khóa. Giả sử ta dùng thuật toán
RC4 với khóa đã cho và với dữ liệu là “asfecewa” và giả sử ta thu được đoạn
mã “&(#cheiv”. Nó trông có vẻ ngẫu nhiên, tuy nhiên, do khóa không thay
đổi nên cứ lần nào ta cho dữ liệu vào là “asfecewa” thì cũng được kết quả
tương tự như trên. Một mặt nào đó nó có thể chấp nhận được nhưng mặt
khác nó lại là một mối nguy hiểm, tạo điều kiện cho kẻ khác cơ hội giải
mã. Nếu như biết được các đoạn dữ liệu mã hóa giống nhau tại những vị trí
cho trước có thể đoán được là dữ liệu ban đầu có sự lặp lại. Để giải quyết tình
huống này vector khởi tạo IV được sử dụng, nó là một khái niệm khá đơn
giản. Thay vì chỉ sử dụng khóa cố định để mã hóa ta có thể kết hợp khóa này
với 24 bit để làm sao cho mỗi gói tin mã hóa sẽ khác nhau cho dù nội dung
của chúng có giống nhau. Số 24 bit này chính là vector khởi tạo IV, nó biến
khóa 104 bit thành khóa 128 bit. Gọi là mã hóa 128 bit nghe có vẻ không
được đúng cho lắm vì IV được gửi đi cùng với gói tin được mã hóa nhưng
chính nó lại không được mã.
Hình 2.11: Sự kết hợp của IV với khóa
Do giá trị của IV luôn thay đổi nên khi kết hợp với khóa để mã hóa
đã tạo ra các gói tin được mã hoàn toàn khác nhau cho dù dữ liệu được mã
giống nhau. Để đảm bảo an toàn, không bao giờ được sử dụng 2 lần cùng một
IV với cùng một khóa. Do IV không được mã hóa và dễ dàng đọc được từ gói
tin gửi đi nên việc lưu lại để so sánh với các giá trị sau là việc đơn giản.
Một điều không may là IV trong IEEE 802.11 WEP chỉ có 24 bit mà
thôi. Giá trị này có vẻ khá lớn nhưng tính toán một lúc ta sẽ thấy nó quả
38
thực không phải như vậy. Một số 24 bit sẽ có giá trị từ 0 đến 16777216, tức
là vào khoảng gần 17 triệu giá trị IV khác nhau. Nếu một AP hoạt động liên
tục với tốc độ 11 Mbps có thể truyền và nhận 700 gói có kích thước trung
bình trong một giây. Nếu mỗi gói ứng với một IV khác nhau thì không đầy
7 tiếng sau nó đã cạn kiệt. Do rất ít người thay đổi khóa mỗi ngày nên việc
sử dụng lại IV chắc chắn sẽ xảy ra.
Những vấn đề với IV chỉ ra rằng thực sự là khó thiết kế các giao thức
bảo mật dựa trên việc mã hóa chuỗi bởi vì trạng thái của quá trình mã hóa
không được khởi động lại trong toàn bộ chuỗi đó. Một phiên bản khác của
WEP là TKIP cũng dựa trên RC4 nhưng khắc phục được việc tái sử dụng IV
sẽ được đề cập đến ở phần sau.
2.3.1.3. Cơ chế hoạt động của WEP
Nếu trong một mạng có kết nối WLAN thì dữ liệu bao giờ cũng
phải đi qua tầng dịch vụ mạng IEEE 802.11 MAC. Hay nói một cách khác,
gói dữ liệu tới WLAN cùng với những thông tin cần thiết để gửi gói tin đến
đích, gói dữ liệu này được gọi là một MSDU. Nếu không gặp lỗi nào,
MSDU này sẽ được gửi đến tầng dịch vụ MAC của thiết bị đích và sẽ được
hệ điều hành hay trình điều khiển đưa đến đúng ứng dụng đang chạy. Tuy
nhiên, trước khi được chuyển thành dạng sóng điện từ, MSDU có thể được
chia thành những phần nhỏ hơn, gọi là các phân mảnh (fragment). Mỗi một
fragment được mã hóa bởi WEP. Một MAC header được gắn vào phần đầu và
từ kiểm tra được gắn vào phần cuối. Như vậy, từ một MSDU ban đầu sẽ được
phân chia ra thành các phần dữ liệu nhỏ hơn (fragment), đồng thời các byte
thông tin khác cũng được thêm vào chứ không chỉ có mỗi phần dữ liệu được
mã hóa. Mỗi phần nhỏ đó được gọi là một MPDU. Quá trình này coi dữ liệu
như một khối gồm các byte, độ lớn tùy theo MSDU ban đầu cũng như việc
chọn lựa độ lớn của fragment, nó thường có giá trị từ 10 đến 1500 byte.
39
Bước đầu tiên trong quá trình mã hóa là thêm giá trị kiểm tra tính toàn vẹn
ICV.
Mục đích của việc sử dụng ICV là để phát hiện sự thay đổi nội
dung gói tin trong quá trình nó được truyền đi. Đối với cả các gói tin được
mã và không được mã, cần có một số kiểm tra nhằm phát hiện bit sai lệch
trong quá trình truyền tin. CRC là một số 4 byte được thêm vào cuối của
khung ngay trước khi xử lý để truyền. Nếu có một bit bị sai, bên thu sẽ phát
hiện ra ngay dựa vào giá trị CRC và hủy gói tin đó. Có nhiều khi không phát
hiện được sự thay đổi này do kẻ gian đã tính toán lại giá trị CRC và thay nó
vào gói tin.
ICV cũng tương tự như CRC, chỉ có điều nó được tính toán và thêm
vào trước khi mã hóa, còn CRC thì về nguyên tắc vẫn được thêm vào sau khi
mã hóa. Về mặt lý thuyết do ICV được mã hóa nên không có kẻ nào có thể
tính toán lại nhằm thay đổi nội dung, nhưng thực tế lại là chuyện khác.
Hình 2.12: Thêm ICV
Sau khi ICV được thêm vào, khung này đã sẵn sàng để mã hóa. Trước
tiên, hệ thống phải lựa chọn một IV và kết hợp nó với khóa, thực hiện việc
mã hóa bằng thuật toán RC4, từng byte dữ liệu và khối ICV lần lượt được mã
hóa. Ứng với một byte đầu vào thì tương ứng có một byte được mã hóa ở đầu
ra, quá trình này diễn ra liên tục cho đến khi toàn bộ dữ liệu được mã, đây
chính là kiểu mã hóa chuỗi.
40
Để bên thu có thể giải mã được, cả KeyID và IV cũng phải được thêm
vào, nó chiếm tổng cộng 4 byte: 3 byte đối với IV (24 bit) và 1 byte với
KeyID (0, 1, 2 hoặc 3).
Hình 2.13: Thêm IV và KeyID
Cuối cùng, MAC header và CRC được thêm vào lần lượt vào đầu và
cuối, trong phần MAC có một bit thông báo cho bên thu biết gói tin được mã
hóa WEP, nhờ đó nó biết cách để xử lý.
Sau khi nhận được gói tin mà bên phát gửi đến, bên thu sẽ thực hiện
quy trình như sau: nhờ vào một bit ở phần MAC header để biết gói dữ liệu
nhận được có mã hóa hay không, nếu có, nó đọc và lưu lại giá trị IV, tiếp
đến là đọc KeyID và chọn khóa giải mã, khởi tạo chương trình mã RC4 và
thực hiện quá trình giải mã. Nếu ta thực hiện việc giải mã hai lần thì dữ liệu
lại trở lại trạng thái mã hóa như ban đầu, do đặc điểm của thuật toán mã hóa
mà việc mã hóa và giải mã là như nhau, tức là vẫn thuật toán ấy, nếu đầu vào
là bản rõ thì đầu ra là bản mã và nếu đầu vào vẫn bản mã ấy thì đầu ra lại trở
lại bản rõ ban đầu. Sau khi thu được bản rõ ban đầu, bước cuối cùng là tính
ICV và đảm bảo rằng không có sự thay đổi nào đối với dữ liệu gốc. Nếu mọi
việc hoàn thành, chỉ riêng phần dữ liệu mới được xử lý ở những công đoạn
sau mà thôi, tất cả những phần thông tin thêm vào đến thời điểm này không
còn cần thiết nữa.
2.3.2. Phương pháp bảo mật dựa trên TKIP
41
TKIP được tạo ra nhằm nâng cấp độ bảo mật cho WEP. Khi WEP bị
hack, ngay tức khắc toàn bộ hàng triệu hệ thống WLAN rơi vào tình trạng
không an toàn. Cần tìm một giải pháp làm sao nâng cấp được các hệ thống
đang tồn tại để đảm bảo độ an toàn cao hơn.
Và giải pháp đó chính là TKIP, yêu cầu đặt ra là TKIP vẫn hoạt động
được trên các hệ thống sử dụng WEP đang tồn tại. Trong trường hợp với
AES, đó là giải pháp được thiết kế từ đầu, các nhà thiết kế có thể tập trung
vào giải pháp tốt nhất có thể, vừa đảm bảo việc triển khai khả thi đồng thời
thực hiện với chi phí hợp lý. Ở một vài khía cạnh nào đó, do được thiết kế
từ đầu nên AES giải quyết vấn đề một cách đơn giản hơn. Nhưng TKIP thì
khác, nó bị ràng buộc bởi phải làm sao đảm bảo an toàn dựa trên nền tảng
WEP đã và đang sử dụng.
2.3.2.1. Những điểm khác biệt của TKIP so với WEP
TKIP đưa ra một loạt những cải tiến nhằm khắc phục những điểm yếu
tồn tại trong WEP. Không thể thay đổi các thành phần chính như việc RC4
được thực hiện bằng phần cứng, nhưng có thể thêm các công cụ điều chỉnh
liên quan đến phần cứng đó. Các điều chỉnh đối với WEP để tạo ra TKIP
được tóm lược trong bảng 2.2. Những điểm yếu của WEP cần khắc phục được
nêu ra trong bảng 2.1.
Bảng 2.1: Những điểm yếu của WEP
1 IV quá ngắn và không khắc phục được việc tái sử dụng.
2 Cách tạo ra các khóa từ IV khiến nó dễ bị tấn công vào các khóa yếu.
3 Không có cơ chế phát hiện việc giả mạo gói tin. 4 Sử dụng trực tiếp khóa chính và không có cơ chế nâng cấp khóa.
5 Không có biện pháp ngăn chặn việc gửi lại gói tin.
Bảng 2.2: Cách khắc phục điểm yếu của WEP
42
Điểm yếu được Mục đích Thay đổi khắc phục
Thêm giao thức toàn vẹn gói tin để ngăn
Toàn vẹn gói tin chặn việc giả mạo gói tin, dựa trên phần
Lựa chọn và sử mềm chạy trên vi xử l ý tốn ít năng Thay đổi cách sử dụng IV và sử dụng (3)
lại IV như một bộ đếm để tính ngược. (1) (3)
dụng IV Tạo khóa cho mỗi Thay đổi khóa cho mỗi gói tin. (1)(2)(4) gói tin
Kích thước của IV Tăng kích cỡ của IV để tránh lặp lại. (1)(4)
Thêm cơ chế phân phối và thay đổi các Quản lý khóa (4) khóa Broadcast
a. Tính toàn vẹn gói tin
Tính toàn vẹn của gói tin là một phần quan trọng của bảo mật. Nếu kẻ
gian có thể thay đổi nội dung gói tin thì dẫn đến nhiều khả năng hệ thống bị
vô hiệu hóa. WEP có một biện pháp để phát hiện sự thay đổi này gọi là ICV
như đã được nói đến ở phần trước nhưng ICV thực sự chẳng có tác dụng gì.
Nó không được coi là một phần của TKIP cho dù giá trị đó vẫn được kiểm
tra.
Nếu muốn phát hiện sự thay đổi này, một phương pháp đơn giản là
thêm vào mỗi byte trong gói tin một giá trị kiểm tra và sau đó gửi đi cùng gói
tin. Bên thu có thể thực hiện tính toán tương tự và kiểm tra xem có cho ra
cùng kết quả. Nếu một bit bị thay đổi, tổng đó sẽ không cho kết quả đúng.
Thuật ngữ chuẩn sử dụng trong bảo mật để chỉ giá trị kiểm tra là mã
chứng thực gói tin (MAC- Message Authentication Code). Nhưng thuật
ngữ này lại trùng với MAC sử dụng trong mạng LAN để chỉ việc điều
43
khiển truy nhập chung, vì vậy, để tránh nhầm lẫn, trong chuẩn IEEE 802.11
người ta sử dụng thuật ngữ MIC.
Mục đích là kết hợp tất cả các byte trong gói tin để tạo ra một giá trị
kiểm tra gọi là MIC và gửi nó đi cùng với gói tin. MIC được tính toán theo
một quá trình đặc biệt không thể tính ngược lại được nếu như không biết
khóa. Chỉ có bên thu đích thực mới có thể tính toán và kiểm tra so sánh kết
quả .
Hình 2.14: Tạo và so sánh giá trị MAC (hoặc MIC)
Để tính ra được giá trị này cần phải có được một phương pháp vừa
đảm bảo được tính bảo mật lại vừa có thể thực hiện được mà không cần các
phép toán phức tạp hay các thuật toán mới. Một giải pháp rất hay do nhà mật
mã học Niels Ferguson đưa ra được ông ta gọi là Michael. Michael là một
phương pháp tính toán giá trị MIC mà không cần đến các phép nhân, chỉ
dùng đến phép cộng và dịch tạo ra một từ kiểm tra khá ngắn. Michael có thể
được thực hiện trên các AP hiện đang sử dụng mà không tiêu tốn nhiều khả
năng của nó.
44
Michael hoạt động trên MSDU, việc tính ra MIC được thực hiện trên
MSDU chứ không phải là MPDU. Nó có hai điểm lợi, thứ nhất: đối với STA,
nó cho phép việc tính toán trên máy tính rồi mới đưa ra WLAN card, thứ hai:
nó giảm dữ liệu thêm vào bởi vì không cần thiết phải thêm MIC vào mỗi
MPDU. Ngược lại, việc mã hóa TKIP được thực hiện ở MPDU.
Michael yêu cầu phải có một khóa riêng, khác với khóa được dùng để
mã, điều này dễ dàng được thực hiện khi tạo ra các khóa tạm thời từ khóa
chính.
Việc tính MIC đơn giản vì thế cái giá phải trả cho sự đơn giản này
khiến nó có nguy cơ bị tấn công brute force, trong quá trình đó, kẻ tấn công
có thể tấn công liên tục, hết lần này đến lần khác. Michael khắc phục lỗi này
bằng cách đưa ra khái niệm countermeasure.
Mục đích của countermeasure là phát hiện những kiểu tấn công giống
như thế này và ngăn chặn không cho chúng thực hiện lặp đi lặp lại việc đó
nhiều lần.
Như vậy ta đã có phương pháp tính toán giá trị MIC, giá trị này nhằm
kiểm tra tính toàn vẹn của gói tin mà WEP không có.
b. Lựa chọn và sử dụng IV
Phần 2.3.1 đã cho chúng ta biết IV là gì, mục đích sử dụng của nó ra
sao cũng như cách nó kết hợp với khóa để tạo ra chuỗi khóa cho mỗi gói.
Cần lưu ý rằng cách dùng IV trong WEP có 3 điểm yếu cơ bản:
IV quá ngắn nên việc lặp lại là không thể tránh khỏi đối với
mạng hoạt động liên tục.
IV không được dành riêng cho từng STA nên cùng một IV có
thể được dùng với cùng một khóa trên nhiều STA.
Cách thêm IV vào khóa khiến nó dễ bị tấn công kiểu FMS
(Fluhrer- Mantin-Shamir attack).
45
TKIP đưa ra một số quy tắc mới đối với việc sử dụng IV. Đặc biệt, có
3 điểm khác nhau khi so sánh với IV dùng trong WEP:
Kích thước của IV tăng từ 24 bit lên 48 bit.
IV có một vai trò như một bộ đếm tuần tự để tránh nguy cơ bị
sử dụng lại gói tin.
IV được tạo ra để tránh những khóa yếu.
Như chúng ta đã biết IV trong WEP có độ dài là 24 bit, tức là nó có
16777216 giá trị, vì thế mà nó dễ bị lặp lại trong các hệ thống mạng hoạt
động liên tục. Trong quá trình thiết kế TKIP, các chuyên gia bảo mật khuyến
cáo rằng cần phải tăng độ dài của IV mới đảm bảo an toàn. Việc thêm 32 bit
tạo nên IV có 56 bit, tuy nhiên chỉ có 48 bit được sử dụng bởi vì một byte
được bỏ đi nhằm tránh gặp phải các khóa yếu. Ưu điểm của IV mới là hiển
nhiên, giả sử cần truyền 10000 gói trong một giây, các gói tin có độ dài 64
byte với tốc độ truyền 11Mbps. Với IV 24bit, chưa đến 1 giờ 30 phút sau đã
cạn kiệt không gian số, nhưng với IV 48 bit, để dùng hết phải mất 90000 năm.
Việc chuyển sang IV 48 bit đã loại bỏ được vấn đề về việc lặp IV, nhưng vẫn
cần phải tránh việc hai thiết bị sử dụng cùng một IV với cùng một khóa.
Việc tăng độ dài của IV nghe có vẻ đơn giản, nhưng nó gặp phải một
số vấn đề trong quá trình thực hiện. IV trong WEP ban đầu được kết hợp với
khóa để tạo ra khóa mã cho RC4. Vì vậy, 40 bit (hoặc 104 bit nếu sử dụng chế
độ mã 128 bit) của khóa kết hợp với 24 bit IV để tạo ra khóa RC4 64 bit.
Phần cứng của các hệ thống đã được tạo ra để làm việc với khóa 64 bit này
và không thể nâng cấp lên ngay 88 bit khóa RC4 (40 bit khóa + 48 bit IV).
Trong TKIP, vấn đề này được giải quyết một cách khá thông minh. Thay vì
tạo ra một khóa RC4 mới bằng cách kết hợp khóa 40 bit với IV 48 bit, thì IV
được tách ra làm hai phần: 16 bit đầu được bổ sung thêm để tạo ra 24 bit
nhưng vẫn tránh được trường hợp các khóa yếu, 24 bit này được dùng y hệt
46
như WEP cũ. Tuy nhiên, thay vì kết hợp giá trị này với khóa 40 bit (hoặc 104
bit), một khóa hỗn hợp mới được tạo ra bằng cách ghép khóa dùng để mã với
32 bit còn lại của IV, cách biến đổi một IV dài thành một khóa được gọi là
kết hợp khóa cho mỗi gói, sẽ được nói đến sau và được mô tả như hình dưới
đây. Điều quan trọng cần lưu ý ở đây là cách này đạt được hai mục đích:
Giá trị của khóa dùng trong mã hóa RC4 là khác nhau đối với
mỗi IV.
Cấu trúc khóa của RC4 là một trường 24 bit IV và một trường
104 bit khóa.
Hình 2.15: Quá trình tạo khóa để mã
c. Bộ đếm tuần tự
WEP không có cơ chế nào để ngăn chặn việc sử dụng lại gói tin.
Ngăn chặn kiểu dùng lại gói tin là làm sao ngăn không cho sử dụng các gói
tin đã dùng rồi. TKIP có một cơ chế chống lại kiểu tấn công này gọi là bộ
đếm tuần tự TKIP (TSC- TKIP Sequence Counter).Thực tế, TSC và IV có
giá trị như nhau. Nó bắt đầu từ giá trị 0 và tăng lên mộtsau mỗi lần gửi gói
tin được gửi. Bởi vì IV được đảm bảo là không bị lặp lại ứng với một khóa
nên ta có thể ngăn chặn việc gửi lại gói tin bằng cách hủy tất cả những gói
47
tin nào có TSC đã nhận. Quy tắc này khiến cho việc gửi lại gói tin cũ không
thực hiện được.
Cách đơn giản nhất để ngăn chặn kiểu dùng lại gói tin là hủy bất cứ gói
tin nào có TSC không lớn hơn TSC của gói tin vừa nhận được 1 đơn vị.
Tuy nhiên có rất nhiều lý do giải thích tại sao cách đơn giản như vậy lại
không áp dụng được vào thực tế. Trước hết là do khả năng các gói tin bị thất
lạc trong quá trình truyền bởi nhiễu. Ví dụ, nếu thu được một khung có số
TSC là 1234 và khung tiếp theo (1235) bị mất, nhưng vẫn thu được khung
kế tiếp có TSC là 1236, nó lớn hơn 1234 là 2 đơn vị. Bởi vì khung 1235 bị
thất lạc nên tất cả các khung sau đó bị hủy bởi vì TSC có giá trị tăng lên
không phải là 1.
Với quy tắc: hủy bất cứ gói tin nào có TSC nhỏ hơn hoặc bằng TSC
của gói tin trước đó, nhưng khi phải truyền lại thì làm thế nào? Theo chuẩn,
các gói tin phải được bên thu xác nhận bằng gói tin ACK. Nếu không nhận
được sự xác nhận từ phía bên kia, gói tin đó cần được truyền lại với một bit
được thiết lập để chỉ rằng nó là gói tin được gửi lại. Bởi là gói tin gửi lại nên
nó có TSC trùng với gói tin trước. Thực tế thì nó vẫn được chấp nhận bởi
chỉ có một bản copy duy nhất mà bên thu cần. Do có khả năng phải truyền lại
nên các gói tin có TSC giống nhau không phải lúc nào cũng được coi là do kẻ
gian gửi đến.
Có một vấn đề nan giải hơn liên quan đến khái niệm burst-ack. Trong
chuẩn IEEE 802.11, mỗi gói dữ liệu được gửi đi phải có một gói tin xác nhận
riêng. Như vậy dường như không hiệu quả cho lắm vì bên phát phải dừng và
đợi cho đến khi nhận được xác nhận do bên thu gửi thì mới được truyền
tiếp. Ý tưởng của burst-ack là gửi 16 gói tin liên tiếp rồi mới gửi trả lại xác
nhận cho 16 gói tin đó. Nếu có một số gói tin không nhận được, bên thu sẽ
48
báo lại chính xác gói tin nào cần truyền lại. Burst-ack chưa được đưa vào
chuẩn nhưng nó chắc chắn sẽ được đưa vào trong tương lai.
Với burst-ack, thì vấn đề đối với TSC là quá rõ ràng. Giả sử 16 gói tin
đã được gửi đi, mỗi gói lại có TSC lớn hơn gói trước và bên thu không nhận
được gói đầu tiên. Nó yêu cầu gửi lại gói đầu tiên đó, điều gì sẽ xảy ra với số
TSC ban đầu. Nó nhỏ hơn 15 đơn vị so với gói tin nó nhận được cuối cùng
và sẽ bị hủy nếu tuân theo quy tắc TSC phải lớn hơn.
Để khắc phục, TKIP sử dụng một khái niệm gọi là cửa sổ truyền lại.
Bên thu theo dõi TSC cao nhất nhận được và 16 TSC sau cùng. Nếu nhận
được một gói mới, nó phân loại gói đó ra thành một trong 3 dạng:
Chấp nhận (accept): nếu TSC lớn hơn số lớn nhất mà nó đã biết.
Hủy (reject): nếu TSC nhỏ hơn số lớn nhất trừ đi 16.
Cửa sổ (window): nếu TSC nhỏ hơn số lớn nhất và lớn hơn số lớn
nhất trừ đi 16.
Đối với dạng cửa sổ, nó kiểm tra xem liệu có gói tin nào mà có TSC
đã được nhận trước đó, nếu đã có rồi thì nó hủy luôn. Bên thu phải lưu lại 16
giá trị TSC và kiểm tra từng cái khi nó nhận được.
Quy tắc này phức tạp hơn quy tắc ban đầu, nhưng nó ngăn chặn một
cách có hiệu quả các gói tin do kẻ gian truyền lại trong khi vẫn đảm bảo
giao thức hoạt động tốt.
2.3.2.2. Những quá trình diễn ra trong TKIP
Phần này mô tả chi tiết cách hoạt động của thuật toán TKIP. Trước
hết, ta coi các khóa chính đã được đưa đến các thiết bị và các khóa phiên
được tạo ra từ khóa chính đã được tạo ra. Khóa chính được cung cấp thông
qua các lớp trên theo phương pháp EAP, hoặc sử dụng khóa chính được thiết
lập từ trước.
Có 3 loại khóa được tạo ra đối với TKIP :
49
Khóa được dùng để mã gói tin trao đổi EAPOL-Key.
Khóa được dùng để mã các gói tin unicast (Pairwise key).
Nhóm khóa dùng để mã các gói tin broadcast (Group key).
Pairwise key này lại bao gồm các khóa:
Khóa tạm thời (128bit): được dùng như là một khóa đầu vào cho
giai đoạn tạo khóa hỗn hợp trước khi đi qua RC4.
Khóa MIC TX chứng thực tạm thời: được dùng để tạo ra MIC
(bằng phương pháp chứng thực Michael) cho các khung do AP gửi đi.
Khóa MIC RX chứng thực tạm thời: dùng trong thuật toán Michael
để tạo ra MIC trong các khung do STA gửi đi.
Đối với các khóa nhóm (khóa dùng để mã các gói tin multicast hoặc
broadcast), chỉ cần có 2 kiểu đầu tiên bởi vì chỉ có AP gửi broadcast và
multicast, STA không bao giờ gửi những gói tin này.
Nhiệm vụ của TKIP là cung cấp dịch vụ bảo mật để xác nhận tính
hợp lệ của gói tin nhận được và làm giảm lượng thông tin cần thiết để xác
thực. Để làm được điều này, TKIP sử dụng các công cụ sau:
Tạo ra IV và kiểm tra.
Tạo ra MIC và kiểm tra.
Mã hóa và giải mã.
Đứng từ phía phát, vị trí của những thành phần trên liên quan tới
những hoạt động khác trong MAC như mô tả trong hình 2.16. Bốn quá
trình xử lý trong TKIP được mô tả dưới đây:
Michael
Tạo khóa phái sinh.
IV/TSC
RC4
50
Hình 2.16: Quá trình xử lý ở bên phát
Lưu ý rằng, giá trị kiểm tra tính toàn vẹn MIC được tính đầu tiên và
được gắn vào MSDU trước khi nó được chia nhỏ. Vì thế mà các byte kiểm
tra này sẽ nằm ở MPDU cuối cùng và nằm trong phần dữ liệu được mã hóa.
ICV của WEP vẫn được tính toán và thêm vào cho mỗi MPDU cho dù nó
không nằm trong phần kiểm tra tính toàn vẹn của TKIP.
Bởi MIC được tính toán ở mức MSDU, không bảo vệ được IV,
khiến cho kẻ tấn công ngăn chặn STA bằng cách gửi các gói tin cũ với một
IV mới. Vấn đề này gia tăng bởi IV có giá trị 48 bit, bằng TSC, giá trị dùng
để tránh bị tấn công theo kiểu gửi lại gói tin cũ. Những gói tin giả mạo này
đương nhiên sẽ không được giải mã và bị hủy, chúng không tác động đến
tính toàn vẹn của giao thức. Tuy nhiên, nó khiến cho các gói tin hợp lệ sau
đó giống như một kiểu tấn công gửi lại gói tin. Khi một gói tin hợp lệ tới, nó
51
có thể bị từ chối bởi TSC của nó đã bị STA của tin tặc dùng. Đây là một kiểu
tấn công DOS. Trong môi trường mạng không dây, có rất nhiều cách đơn
giản để thực hiện kiểu tấn công này, không thể nào ngăn chặn được nó và
hiện đang là mối nguy hại khó tránh khỏi.
Phần mã hóa trong hình 2.16 giống quá trình mã hóa RC4 trong WEP.
Hầu hết các nhà sản xuất đã thực hiện quá trình mã hóa này theo cách mà
không thể nâng cấp được bằng firmware. Các thiết bị dùng WEP thường có
RC4 S-box tạo bởi phần cứng, không thể thay đổi đổi được, chính nó là vấn
đề khó giải quyết nhất khi thiết kế TKIP. Quá trình xử lý diễn ra tại phía đầu
thu được mô tả như trong hình 2.17:
Hình 2.17: Quá trình xử lý ở bên thu
Quá trình xử lý diễn ra ở đây không hoàn toàn ngược lại với bên phát.
Có một điều, việc giải mã không phải được thực hiện trước tiên, mà là
kiểm tra TSC nhằm ngăn chặn khả năng bị tấn công kiểu gửi lại gói tin. ICV
52
cũng được dùng để kiểm tra nhằm loại những gói tin không hợp lệ. Nó
không phải là một kỹ thuật kiểm tra tính toàn vẹn, nhưng nó là một cách
để tìm câu trả lời cho câu hỏi liệu việc giải mã có thành công hay không,
vì giải mã một gói tin không đúng khóa hay không đúng IV thường chắc
chắn tạo ra một ICV sai.
MIC được kiểm tra sau khi toàn bộ các fragment đã nhận đủ và được
ghép lại thành một MSDU. Nếu MIC sai, MSDU đó sẽ bị hủy. Cho dù là có
khả năng xảy ra nhưng gần như chắc chắn là khó có khả năng các lỗi ngẫu
nhiên trong quá trình truyền có thể qua được quá trình kiểm tra CRC và giải
mã thành công ra ICV hợp lệ. Nếu nhận sai MIC, ta có thể tin chắc rằng đó
là do sự can thiệp có chủ ý và không phải do nhiễu hay lỗi đường truyền.
2.3.3. Phương pháp bảo mật dựa trên AES-CCMP
2.3.3.1. Giới thiệu về AES-CCMP
AES-CCMP có độ an toàn cao nhất trong chuẩn IEEE 802.11i. Các
hệ thống bảo mật sử dụng thuật toán AES cùng với một mode hoạt động nào
đó, một số mode đơn giản và phổ biến nhất sẽ được nói đến ở đây. Sau đó
chúng ta sẽ tìm hiểu CCMP, giao thức được sử dụng trong IEEE 802.11 và
tìm hiểu cách thức hoạt động của giao thức này. Phần này cũng cho thấy làm
thế nào mà CCMP lại phù hợp với IEEE 802.11 framework và cung cấp chế
độ bảo mật hợp lý mà thỏa mãn hầu hết nhu cầu của người sử dụng.Phần
trước đã tìm hiểu về TKIP, một trong những phương pháp dùng để mã hóa và
chứng thực gói tin nằm trong RSN. TKIP là phần không thể thiếu được trong
WPA, nó được sử dụng khá rộng rãi để đảm bảo an toàn trong quá trình sử
dụng mạng không dây dựa trên những thiết bị chạy trên nền tảng của WEP.
Tuy nhiên, nó lại không phải là mode mặc định đối với IEEE 802.11i mà là
mode dựa trên chuẩn mã hóa AES. Việc mã hóa dựa trên AES mạnh hơn so
với TKIP. Vấn đề tại sao nó lại được chọn lựa và vì lí do gì? Khi nói đến
53
RSN dựa trên AES thì AES không phải là một giao thức bảo mật,nó chỉ là
thuật toán mã khối. Trong RSN, giao thức bảo mật có sử dụng thuật toán
AES được gọi là giao thức Counter Mode-CBC MAC hay CCMP. CCMP
bao gồm một loạt các quy tắc trong đó có sử dụng thuật toán mã hóa khối
AES để bảo vệ các khung dữ liệu IEEE 802.11. AES chỉ là thuật toán dùng
trong CCMP giống như RC4 là thuật toán dùng trong TKIP.Một lý do mà
CCMP được cho là mạnh hơn TKIP bởi nó được xây dựng từ đầu, tức là
nó được tạo ra hoàn toàn mới với những kỹ thuật tốt nhất. Khác hoàn toàn
với TKIP, bởi TKIP là một giải pháp tình thế được tạo ra nhằm khắc phục
những điểm yếu của WEP.
2.3.3.2. Thuật toán AES và các mode mã hóa
AES là thuật toán mã hóa khối, nó sử dụng các phép toán thông
thường, các phép toán logic và khóa để biến một khối dữ liệu rõ 128 bit thành
một khối dữ liệu mã. AES dựa trên thuật toán Rijdael do Joan Daeman và
Vincent Rijmen tìm ra. Thuật toán này được chứng minh bằng tài liệu rất
rõ ràng, bao gồm cả phần thuật toán và cách sử dụng rất chi tiết và đầy đủ
(Daeman and Rijmen, 2000, 2001).Thuật toán Rijdael cho phép chọn các
kích thước của khối và khóa khác nhau,có thể chọn 128, 192 hay 256 bit.
Khi NIST quyết định chọn Rijdael cho AES thì ban đầu chỉ với độ lớn của
khối là 128 bit nhưng vẫn cho phép chọn lựa 3 độ dài khóa khác nhau. IEEE
802.11i tiếp tục hạn chế thêm tức là chỉ chọn kích thước khóa và khối có độ
dài 128 bit, điều này làm đơn giản hóa việc triển khai và tránh gây rắc rối
cho người sử dụng phải chọn lựa khi cài đặt. Có thể dùng AES để mã hóa và
giải mã một khối dữ liệu riêng biệt có độ dài cố định tuy nhiên dữ liệu thực tế
lại không phải như vậy. Ví dụ, dữ liệu của WLAN được truyền đi với các
khung có độ dài khác nhau, từ 512 đến 12000 bit. Vì thế, để sử dụng thuật
toán mã hóa khối như AES chẳng hạn, chúng ta cần phải tìm cách tách ghép
54
dữ liệu sao cho nó có thể tạo thành được các khối có độ dài cố định trước
khi mã, cũng như làm sao tái tạo lại khung dữ liệu như ban đầu sau khi giải
mã. Phương pháp dùng để biến đổi dữ liệu thành các khối và ngược lại gọi là
mode mã hóa. Việc chọn lựa một mode nào đó là rất quan trọng bởi nó liên
quan đến cả độ phức tạp trong quá trình triển khai cũng như đối với vấn đề
bảo mật. Các mode không hợp lý có thể tạo ra những lỗ hổng ngay cả khi
được mã bởi AES.
Để hiểu được các mode hoạt động, chúng ta sẽ tìm hiểu một trong
những mode đơn giản và dễ hiểu nhất: ECB (Electronic Code Book). Mode
này khi được sử dụng cùng với thuật toán AES có tên gọi là AES/ECB.
a. Electronic Code Book (ECB)
Mode này đơn giản chỉ việc chia dữ liệu ban đầu ra thành các khối, sau
đó thực hiện việc mã hóa đối với từng khối riêng biệt nhưng với cùng một
khóa cho đến khi khối cuối cùng được mã hóa hết. Hình dưới đây mô tả
quá trình thực hiện theo cả phương pháp nối tiếp và song song.
Hình 2.18: Quá trình hoạt động của ECB Mode
55
Cách này thực hiện rất đơn giản nhưng lại gặp phải một số vấn đề.
Trước hết đó là do dữ liệu đầu vào không phải lúc nào cũng vừa đủ chia thành
cách khối, vì thế phải thêm các bit và phải nhớ độ dài thực sự của dữ liệu ban
đầu. Tiếp đến là vấn đề về bảo mật: nếu hai khối có nội dung như nhau thì
sau khi mã sẽ có bản mã tương tự nhau do cùng khóa.
Ví dụ xét một chuỗi có 64 ký tự giống nhau “AAAAAA…”, nếu kích
thước của khối AES là 128 bit (hay 16 byte) thì khi dùng ECB chuỗi đó sẽ
được chia ra thành 4 khối, mỗi khối gồm 16 chữ A. Sau khi mã hóa, 4 khối
này sẽ cho ra 4 khối bản mã giống hệt nhau, từ bản mã đó dưới con mắt của
người ngoài sẽ dễ dàng nhận ra là 4 khối đó có dữ liệu ban đầu giống nhau.
Do đặc điểm này và một số đặc điểm khác nữa của ECB nên trong thực tế nó
không được sử dụng. Ngay cả NIST cũng khuyến cáo không nên dùng mode
này, ngay cả khi nó được bảo vệ bằng thuật toán mạnh nhất.
b. Counter Mode
Counter mode phức tạp hơn ECB và nó hoạt động theo cách hoàn toàn
khác, nó không trực tiếp sử dụng khối mã AES, thay vào đó, nó mã giá trị
của số đếm tương ứng rồi sau đó XOR kết quả mã với khối dữ liệu để
được khối mã. Các số đếm này được tăng lên một đơn vị ứng với mỗi khối
được mã. Quá trình này được mô tả trên hình sau:
Hình 2.19: Ví dụ về Counter Mode
Trên hình vẽ ta thấy, dữ liệu được chia thành các khối, mỗi khối được
XOR với kết quả mã của số đếm. Ở đây, giá trị của bộ đếm tăng từ 1 đến 11
56
ứng với 11 khối dữ liệu. Thực tế, bộ đếm có thể bắt đầu từ một số bất kỳ và
tăng theo một quy luật khác. Điều quan trọng là bên thu nếu muốn mã hóa
được dữ liệu thì phải biết giá trị ban đầu của bộ đếm cũng như quy luật tăng
của nó.
Do bộ đếm thay đổi giá trị khác nhau ứng với mỗi khối nên vấn đề về
các khối mã giống nhau mà ECB gặp phải đã được giải quyết. Ngay cả với
hai khối dữ liệu đầu vào giống hệt nhau thì kết quả sau của bản mã thu
được vẫn khác nhau nhờ vào bộ đếm. Tuy nhiên, có trường hợp phương
pháp này vẫn mã hóa hai khối giống hệt nhau, tách biệt hẳn nhau nhưng vẫn
cho giá trị mã giống nhau, điều này giải thích tại sao bộ đếm không bắt đầu
từ một mà nó thường bắt đầu từ một giá trị bất kỳ rồi thay đổi ứng với mỗi
khối.Counter mode có một số đặc điểm khá thú vị. Việc giải mã được thực
hiện y hệt như quá trình mã bởi vì XOR cùng một giá trị 2 lần sẽ trả lại kết
quả như ban đầu. Điều đó có nghĩa là khi thực hiện chỉ cần mỗi khối mã
hóa AES mà không cần đến khối giải mã. Một đặc điểm khác là quá trình mã
hóa có thể được thực hiện song song, do tất cả các giá trị của bộ đếm được
biết trước nên giá trị mã hóa AES của các bộ đếm có thể được tính toán
trước, nhờ đó có thể mã hóa toàn bộ dữ liệu cùng một lúc. Không phải
mode nào cũng thực hiện được giống như vậy. Và một đặc điểm nữa là dữ
liệu không phải chia chính xác đúng độ dài của một khối. Đơn giản chỉ cần
lấy một khối (ví dụ chỉ là 100 bit chứ không phải là 128 bit) và XOR nó với
giá trị mã của số đếm rồi lấy đúng số bit mà ta cần (lấy 100 bit chứ không
phải là 128 bit, bỏ 28 bit). Do vậy mà độ dài của bản mã bằng đúng độ dài
của bản rõ. Do việc mã hóa mỗi khối phụ thuộc vào giá trị của khối trước đó
nên counter mode cần cho mã hóa chuỗi.Counter mode đã được sử dụng trên
20 năm và khá phổ biến cũng như được cộng đồng những nhà mật mã tin
cậy. Tính đơn giản và chín muồi của nó là một lựa chọn hấp dẫn đối với
57
RSN. Tuy nhiên, mode này không cung cấp khả năng chứng thực, vì thế
mà RSN đã phải đưa thêm tính năng mới này vào.
c. Counter Mode + CBC MAC (CCM)
CCM mode được tạo ra dành riêng cho IEEE 802.11i RSN, nhưng nó
cũng có thể được áp dụng cho các hệ thống khác và là mode chính sử dụng
với AES. Nó cũng được đệ trình lên IETF để dùng cho bảo mật IP. CCM
được 3 nhà mật mã học trong nhóm IEEE 802.11i tìm ra, đó là: Doug
Whiting, Russ Housley và Niels Ferguson. Nó được tạo ra dựa trên counter
mode.CCM sử dụng counter mode cùng với một phương pháp chứng thực dữ
liệu gọi là CBC (Cipher Block Chaining). CBC được dùng để tạo ra MIC.
MIC được gọi là mã chứng thực gói tin, vì thế mà có tên là CBC-MAC.CBC-
MAC là một kỹ thuật khác cũng được dùng trong rất nhiều năm và được
chuẩn hóa trên toàn thế giới. Nó được thực hiện như sau:
1. Lấy một khối dữ liệu đầu tiên và mã hóa nó bằng AES (hay bằng
phương pháp mã khối nào đó).
2. XOR kết quả với khối thứ 2 và lại mã tiếp.
3. Lại tiếp tục XOR kết quả trước với khối tiếp theo và mã kết quả
vừa XOR, cứ lặp lại quá trình như vậy cho đến khi toàn bộ dữ liệu được mã
hết. Kết quả cuối cùng là một khối (trong trường hợp này là 128 bit) là sự
kết hợp của tất cả dữ liệu. Nếu chỉ cần một hay một số bit bị thay đổi, kết quả
thu được sẽ hoàn toàn khác (xác suất trùng nhau chỉ là 2-128). CBC-MAC
rất đơn giản nhưng lại không thực hiện được theo kiểu song song, việc mã
hóa phải thực hiện tuần tự. Thêm vào đó, nó chỉ có thể sử dụng đối với dữ
liệu có số khối chính xác. CCMP cung cấp một giải pháp là thêm bit (pading)
nhưng nó lại khiến cho một số nhà mật mã học lo lắng.CCM mode dùng cả
hai kỹ thuật nổi tiếng, đó là counter mode và CBC-MAC. Nó thêm vào
58
những đặc điểm rất hữu ích cho các ứng dụng như là đối với RSN. Các đặc
điểm đó là:
Tạo ra số nonce nên các dữ liệu là hoàn toàn khác nhau.
Việc mã hóa và chứng thực chỉ sử dụng một khóa.
Mở rộng việc chứng thực đối với dữ liệu không được mã hóa.
Đặc điểm cuối cùng cần phải tìm hiểu kỹ và khá quan trọng đối với
RSN. Trong hầu hết các phương pháp đang được sử dụng để thực hiện mã
hóa và chứng thực, thường giả định rằng toàn bộ dữ liệu sẽ được mã hóa.
Tuy nhiên, trong IEEE 802.11 chỉ có một phần dữ liệu là được mã. Phần
header của khung IEEE 802.11 có chứa địa chỉ MAC để chuyển gói tin đến
đích cũng như các thông tin về hoạt động của WLAN cần phải được ở dạng
rõ, tức là không mã hóa. Vì thế mà chỉ có phần dữ liệu là được mã mà thôi.
Tuy nhiên, dù phần header không được mã thì bên thu vẫn muốn đảm bảo nó
không bị thay đổi. Ví dụ, ta không muốn một kẻ nào đó thay đổi địa chỉ
nguồn, vì nếu xảy ra như vậy, ta sẽ gửi trả lại dữ liệu cho kẻ gian thay vì gửi
cho chính người ta muốn gửi. Để làm được điều này, người ta sử dụng CCM,
nó cho phép việc mã hóa được thực hiện ở một phần của gói tin được chứng
thực bởi CBC-MAC.
Nhìn chung việc sử dụng cùng một khóa để thực hiện hai chức năng
mã hóa là không hay cho lắm. Ở đây chính là việc dùng một khóa để mã hóa
và chứng thực. Tuy dùng chung một khóa nhưng trong mỗi trường hợp lại
dùng cùng với IV. Cấu trúc của IV là khác nhau đối với các phần counter
mode và CBC-MAC, vì thế dẫn đến hai khóa tách riêng biệt.
2.3.3.3. Sử dụng CCMP trong quá trình mã hóa và giải mã
Phần này mô tả cách mà các gói WLAN được mã hóa và giải mã sử
dụng CCMP. Điều quan trọng đầu tiên là CCMP mã hóa dữ liệu ở cấp
MPDU chứ không phải là ở MSDU. Mỗi một MPDU ứng với một khung
59
truyền và nó là một phần của MSDU do MSDU được chia ra thành các
MPDU.
a. Các bước mã hóa tổng quát
Dữ liệu đầu MSDU được chia ra thành các fragment. Mỗi fragment tạo
nên một MPDU và có phần header IEEE 802.11 bao gồm địa chỉ nguồn, địa
chỉ đích và các thông số khác. Mỗi MPDU được xử lý bằng thuật toán
CCMP để tạo ra một MPDU mã. Chỉ có phần dữ liệu là được mã, còn phần
header thì không. Tuy nhiên, CCMP thực hiện nhiều việc khác chứ không
chỉ mã hóa các phần của MPDU. Nó còn thêm vào các trường, khiến cho độ
dài của MPDU sau khi mã lớn hơn MPDU trước 16 byte.
Hình 2.20 mô tả quá trình của dữ liệu từ MSDU đến MPDU và truyền
dữ liệu đi.
Hình 2.20: Quá trình xử lý gói tin trong CCMP
60
Trình tự xử lý với một MPDU được thể hiện như trong hình 2.21 và
được mô tả như sau:
1. Ban đầu là với MPDU chưa được mã, có đầy đủ phần IEEE
802.11 MAC header. Phần header này bao gồm cả địa chỉ nguồn, địa chỉ
đích, một số trường được gán giá trị sau nên tại thời điểm này nó có giá trị
0.Thông tin chứa trong header được trích ra và được sử dụng trong quá trình
tạo ra số MIC 8 byte. Trong giai đoạn này phần CCMP header 8byte được
tạo ra để sau đó ghép vào MPDU.
3. MIC đã được tính toán nhằm bảo vệ CCMP header, dữ liệu và
các phần khác của IEEE 802.11 header. Những giá trị của trạng thái hiện tại
được đưa vào trong số nonce. MIC sau đó được ghép với dữ liệu.
4. Cả phần dữ liệu và MIC đều được mã hóa. Sau khi mã hóa, phần
CCMP
header được gắn vào.
5. Cuối cùng, phần MAC header được phục hồi và gắn vào phần
đầu của MPDU vừa mã ở trên, đến thời điểm này, nó đã sẵn sàng trong hàng
đợi để truyền đi. Trong quá trình truyền, chỉ có phần MAC header được quan
tâm và cập nhật, không có thay đổi gì đối với CCMP header.
61
Hình 2.21: Trình tự xử lý một MPDU
Các MPDU được mã được đưa đến hàng đợi trước khi truyền. Có thể
có một vài hàng đợi khác nhau và thứ tự của các hàng đợi dựa trên một số
chính sách ưu tiên. Điều này cho phép mở rộng về sau đối với các lớp dữ
liệu khác nhau trong IEEE 802.11e. Ngay trước khi truyền, một số trường
của IEEE 802.11 header được thay đổi để phù hợp với quy tắc truyền. Các
trường bị thay đổi được gọi là các trường có thể biến đổi và chúng không
được dùng để tính lại số MIC nữa.
Ở đây ta tìm hiểu một chút về CCMP header. Nó được tạo ra và được
gắn vào dữ liệu sau khi mã và được truyền đi dưới dạng không mã hóa.
CCMP header được sử dụng với hai mục đích, trước hết, nó cung cấp một số
thứ tự gói (PN-Packet Number) 48 bit để ngăn chặn việc sử dụng lại gói tin
và cho phép bên thu tạo ra được số nonce dùng trong việc mã hóa. Thứ hai,
trong trường hợp multicast, nó sẽ thông báo cho bên thu biết sử dụng khóa
nhóm nào. Định dạng của CCMP header giống như định dạng của TKIP
header, điều này nhằm mục đích đơn giản hóa cho AP vì nó nhận cả TKIP
và CCMP từ các STA. Định dạng này được mô tả trong hình 2.22.
Hình 2.22: Phần đầu CCMP
62
Trong số 8 byte thì 6 byte là dành cho số PN (48 bit), 1 byte dự phòng,
byte còn lại có các bit của KeyID. Lưu ý rằng bit bên cạnh KeyID được
thiết lập giá trị 1 ứng với bit IV mở rộng trong TKIP. Nó cũng chỉ ra rằng đó
là khung định dạng của RSN chứ không phải của WEP.
b. Quá trình thực hiện
Quá trình làm việc của khối CCMP có thể được xem như là một quá
trình xử lý với các đầu vào và đầu ra như hình 2.23 đã thể hiện:
Hình 2.23: Mã hóa và giải mã
Quá trình giải mã có các đầu vào giống như quá trình mã, chỉ khác mỗi
MPDU mã chứ không phải là MPDU rõ. Ta có thể tách được các thông tin
đầu vào giống như bên phát vì phần header chứa đầy đủ các thông tin cần
thiết, bao gồm cả CCMP header.
Việc thực hiện CCMP phải luôn đúng thứ tự của gói bởi nó luôn có giá
trị khác nhau đối với mỗi gói. Điều này nhằm ngăn không cho kẻ gian sử
dụng lại gói tin đã được gửi trước đó. Số PN này có độ dài là 48 bit, đủ lớn
để đảm bảo rằng nó không bị cạn kiệt trong khoảng thời gian dài, không
bao giờ có hai gói tin có cùng số này. Đương nhiên nếu ta tắt nguồn và
khởi động lại thiết bị, PN cũng sẽ được gán giá trị lại từ đầu, nhưng với giá trị
khóa hoàn toàn khác nên cũng không đáng ngại.
Những gì diễn ra trong khối mã CCMP được mô tả trong hình 2.24.
63
Hình 2.24: Bên trong khối mã hóa CCMP
Có hai giai đoạn tính toán: đầu tiên là tính ra số MIC để gắn vào
MPDU, sau đó cả MPDU bao gồm cả MIC được mã hóa.
Một MPDU đã được mã lại có thêm hai trường nữa, đó là CCMP
header và MIC. Trường MIC (64 bit) và chỉ bằng một nửa kích thước của
khối AES nhưng cũng đủ lớn để giảm khả năng giả số MIC xuống còn 10 19.
Thứ tự của các trường trong MPDU mã được mô tả trong hình 2.25.
Hình 2.25: MPDU sau quá trình mã (CH=CCMP Header)
Các bước mã hóa một MPDU:
64
Trước khi bắt đầu việc mã hóa, cần phải chuẩn bị tất cả những gì cần
thiết của MPDU để nó thực hiện đúng thứ tự. Bắt đầu với 3 phần: MAC
header, CCMP header và dữ liệu rõ. Các trường có thể thay đổi của MAC
header được thiết lập toàn 0. CCMP header được gán các giá trị PN và các
bit KeyID. Lưu ý một điều là PN tăng đối với mỗi MPDU. Phần dữ liệu là
phần chứa dữ liệu chưa mã.
Phần MAC header và CCMP header sẽ không được mã nhưng lại cần
trong quá trình tạo ra số MIC. Hai header này được nhóm lại tạo ra dữ liệu
chứng thực. Việc đầu tiên sau khi ghép nối các phần lại với nhau là tính toán
MIC.
Việc tính ra số MIC được thực hiện bằng cách sử dụng CBC-MAC, nó
mã khối đầu tiên, XOR kết quả đó với khối tiếp theo và lại mã, quá trình
được lặp lại cho đến hết. Kết quả cuối cùng là số MIC 128 bit, nhưng chỉ cần
có 64 bit đối với CCMP nên 64 bit thấp bị loại bỏ.
Đối với CCMP khối đầu tiên trong quá trình tính CBC-MAC không
phải lấy từ MPDU mà là chính số nonce. Định dạng của khối đầu tiên này
(hình 2.26) bao gồm số nonce và hai trường: Flag và Dlen.
Hình 2.26: Định dạng của khối đầu tiên để đưa vào CBC-MAC
Số nonce luôn ứng với các trạng thái hiện thời và đảm bảo rằng dữ liệu
mã hóa không bao giờ giống nhau sau khi mã. Ta có thể cho rằng chỉ cần sử
dụng số PN là đủ vì mỗi gói có một giá trị PN khác nhau, tuy nhiên, cần nhớ
rằng khóa được dùng cho ít nhất là bên thu và bên phát (có thể nhiều hơn đối
với khóa nhóm), các bên này vào một thời điểm nào đó, sử dụng số PN đã
65
được dùng ở nơi khác, như vậy là vi phạm quy tắc mỗi khóa chỉ dùng một
lần. Để tránh vấn đề này, số nonce được tạo ra bởi sự kết hợp giữa PN với địa
chỉ MAC của bên gửi. Không chỉ có vậy, trường thứ 3 trong nonce là trường
Priority (trường ưu tiên). Trường này được dự trữ dùng sau này khi có nhiều
luồng dữ liệu khác nhau cần độ ưu tiên khác nhau (ví dụ: audio, video
…). Trong trường hợp đó, nên tách PN ứng với mỗi loại dữ liệu khác nhau
sẽ hiệu quả hơn. Cả 3 trường kết hợp lại tạo ra số nonce 104 bit (hình 2.27).
Hình 2.27: Thành phần của khối đầu tiên để đưa vào CBC-MAC
Hai trường còn lại là Flag và Dlen cùng với số nonce tạo nên khối
đầu tiên để tính CBC-MAC. Trường flag có giá trị cố định là 01011001 và
chỉ ra rằng số MIC là 64 bit. Trong các ứng dụng CCM khác không phải là
RSN thì flag này có giá trị khác và không được đề cập đến ở đây. Trường
cuối cùng, Dlen chỉ độ dài của dữ liệu chưa mã. Khi khối đầu tiên đã sẵn
sàng, số MIC được tính dựa trên dữ liệu chứng thực và dữ liệu cần mã. Một
đặc điểm của CBC-MAC là nó chỉ làm việc với đúng kích thước khối quy
định. Nếu dữ liệu chia không đủ một khối thì phải thêm các bit cho đủ. Đối
với IEEE 802.11, chắc chắn rằng cả dữ liệu chứng thực và dữ liệu chưa mã
sẽ không vừa đủ các khối và như vậy các bit 0 được thêm vào. Vì thế nhiều
lúc số MIC được tính bao gồm cả khối đầu tiên, dữ liệu chứng thực, dữ liệu
ban đầu và cả các byte toàn 0. Các byte thêm vào này chỉ dùng để tính ra
số MIC chứ không được thêm vào MPDU.
66
Ngay khi MIC được tính và gắn vào dữ liệu rõ thì quá trình mã có thể
bắt đầu được thực hiện. Việc mã hóa sử dụng counter mode và bắt đầu ngay
với dữ liệu theo sau CCMP header. Nhớ rằng do phải chèn thêm bit trong quá
trình tính MIC, các khối được mã sẽ tương ứng với các khối trong quá trình
tính MIC. Phần dữ liệu được mã sẽ thay thế toàn bộ dữ liệu ban đầu và số
MIC, tạo ra một MPDU hoàn chỉnh sẵn sàng đợi để truyền đi. Không phải
thêm bit trong quá trình mã vì counter mode cho phép loại bỏ các bit thừa
trong khối cuối cùng.
Một bước quan trọng trong counter mode là thiết lập giá trị đếm
theo cách không bao giờ tạo ra hai số giống nhau. Vì thế mà bộ đếm được
tạo nên từ một số nonce theo một cách gần giống với việc tạo ra số MIC,
bao gồm số thứ tự, địa chỉ MAC nguồn và các trường ưu tiên. Sau đó nó kết
hợp với hai trường Flag và Counter (“Ctr”) (hình 2.28).
Hình 2.28: Kết hợp số đếm Ctr trong CCMP AES Counter Mode
Ctr bắt đầu từ 1 và tăng dần lên, do số nonce là giá trị duy nhất và
trường ctr có độ lớn 16 bit nên ta đảm bảo chắc chắn rằng các giá trị bộ đếm
là duy nhất đối với tất cả các gói tin dưới 65536 khối. Điều này dễ dàng xác
định được số MPDU lớn nhất trong IEEE 802.11.
Như vậy quá trình mã hóa đã gần hoàn tất. Ta cần phải đặt lại tất cả
các trường trong MAC header vào vị trí của nó. Cho dù các trường này
không dùng cho MIC nhưng chúng vẫn quan trọng.
67
Khi bộ đếm được thiết lập, quá trình mã hóa được thực hiện như đã nói
trong phần counter mode ở phần trước. Mỗi giá trị của counter được mã hóa
bằng khóa rồi sau đó được XOR với dữ liệu để tạo ra dữ liệu được mã.
Giải mã các MPDU:
Khi các MPDU mã được đưa tới bên thu, công việc đầu tiên là chọn
đúng khóa để giải mã. Khóa dùng để giải mã được chọn dựa vào địa chỉ
MAC nguồn trong MAC header. Bên thu phải thực hiện một loạt các bước để
có được dữ liệu ban đầu và kiểm tra sự hợp lệ của dữ liệu đó.
Số PN được gắn vào phần CCMP header nên không được mã hóa.
Khi nhận được một gói tin, việc đầu tiên bên thu kiểm tra chính là số PN
và so sánh nó với khung nhận được trước đó, nếu nó nhỏ hơn hoặc bằng thì
khung đó sẽ bị hủy và bên thu sẽ tạm dừng xử lý với MPDU. Giả sử rằng
số PN là hợp lệ, bước tiếp theo sẽ là quá trình giải mã AES/counter mode.
Yêu cầu đặt ra là giá trị của bộ đếm phải trùng khớp với giá trị của nó sau khi
giải mã. Tất cả thông tin cần thiết giờ đã nhận được đầy đủ. Số thứ tự được
kết hợp với địa chỉ MAC nguồn và giá trị ưu tiên tạo nên số nonce. Sau đó giá
trị của flag và ctr được thêm vào để tạo số ban đầu cho bộ đếm. Lưu ý rằng
chẳng có tý bảo mật nào ở đây cả, bất kỳ ai cũng có thể tính ra được giá trị
này. Tuy nhiên, nó chẳng có nghĩa lý gì nếu không biết khóa. Quá trình giải
mã cũng được dùng giống như quá trình mã. Các giá trị đúng của bộ đếm
được giải mã và XOR với MPDU nhận được, kết quả thu được là MPDU rõ
cùng với số MIC.
Bước tiếp theo là kiểm tra lại xem liệu số MIC có đúng hay không.
MIC được tính lại với cùng dữ liệu vừa giải mã (bao gồm cả phần padding)
giống như ở bên gửi. Các trường có thể thay đổi được trong phần header
không được tính đến và việc tính toán được thực hiện đối với toàn bộ
MPDU, đương nhiên là không tính phần MIC. Nếu dữ liệu không có sự
68
khác biệt so với lúc gửi đi, cộng với khóa chính xác, ta sẽ thu lại được kết
quả như mong muốn. Giá trị MIC sẽ được so sánh, nếu trùng khớp, kết quả
thu được là hợp lệ. Nếu không, gói tin có thể bị cho là của kẻ tấn công và
sẽ bị hủy.
Khi MPDU đã được giải mã, số MIC và CCMP header được loại bỏ,
phần dữ liệu còn lại cùng với các phần dữ liệu giải mã ở các MPDU khác sau
đó sẽ được kết hợp lại, tái tạo lại thành MSDU. Như vậy quá trình thực hiện
với CCMP cho thấy độ an toàn rất cao, chống lại các kiểu tấn công như giả
mạo, nghe lén hay dùng lại gói tin.
2.3.4. Nghiên cứu thuật toán mã hóa đối xứng RSA
Ở phần trên chúng ta đã nghiên cứu về các phương pháp mã hóa đối
xứng. Ứng dụng trong luận văn này, khi phối hợp sử dụng token key, em áp
dụng thuật toán mã hóa RSA, mã hóa từng gói tin với khóa công khai và khóa
bí mật nằm trong token của mỗi Client.
2.3.4.1. Mô tả sơ lược
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và
khóa bí mật (hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong
quá trình mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi
người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa
công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. Nói cách
khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí
mật) mới có thể giải mã được.
Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau:
Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice có
thể đọc được. Để làm được điều này, Alice gửi cho Bob một chiếc hộp có
khóa đã mở sẵn và giữ lại chìa khóa. Bob nhận chiếc hộp, cho vào đó một tờ
giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sập
69
chốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được
không đọc lại hay sửa thông tin trong thư được nữa). Sau đó Bob gửi chiếc
hộp lại cho Alice. Alice mở hộp với chìa khóa của mình và đọc thông tin
trong thư. Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công
khai, chiếc chìa khóa chính là khóa bí mật.
2.3.4.2. Nguyên tắc thuật toán
Tạo khóa
Hình 2.29. RSA – Tạo khóa
Mã hóa
Hình 2.30. RSA – Mã hóa
70
Giải mã
Hình 2.31. RSA – Giải mã
Ví dụ
Sau đây là một ví dụ với những số cụ thể. Ở đây chúng ta sử dụng
những số nhỏ để tiện tính toán còn trong thực tế phải dùng các số có giá trị đủ
lớn.
Lấy:
p = 61 — số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)
q = 53 — số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)
n = p*q = 3233— môđun (công bố công khai)
e = 17 — số mũ công khai
d = 2753— số mũ bí mật
Khóa công khai là cặp (e, n). Khóa bí mật là d. Hàm mã hóa là:
encrypt(m) = m^e mod n = m^17 mod 3233
với m là văn bản rõ. Hàm giải mã là:
decrypt(c) = c^d mod n = c^2753 mod 3233
với c là văn bản mã.
Để mã hóa văn bản có giá trị 123, ta thực hiện phép tính:
encrypt(123) = 12317 mod 3233 = 855
71
Để giải mã văn bản có giá trị 855, ta thực hiện phép tính:
decrypt(855) = 8552753 mod 3233 = 123
Cả hai phép tính trên đều có thể được thực hiện hiệu quả nhờ thuật toán
bình phương và nhân.
2.4. Kết chương
Chương này đã trình bày thực trạng mất an ninh an toàn của mạng
không dây, các kỹ thuật mật mã ứng dụng để bảo mật mạng không dây và một
số giải pháp cho việc đảm bảo an ninh an toàn cho mạng không dây mà cụ thể
là mạng WLAN. Giải thích hoạt động của WEP và lý do tại sao không nên sử
dụng nó. Khi chuẩn IEEE 802.11 được công bố ra công chúng thì đi kèm với
nó là WEP, một biện pháp bảo mật mạng không dây đầu tiên. Phần này cũng
cho ta thấy những điểm yếu của WEP, những lỗ hổng mà khi thiết kế đã
không được những nhà chuyên gia bảo mật quan tâm đến. Tuy nhiên, cũng
qua đó, ta càng hiểu thêm được tại sao những phương pháp bảo mật sau này
lại đảm bảo an toàn hơn.
Các nhà thiết kế đã tìm cách khắc phục những hạn chế của WEP và tạo
ra một giao thức bảo mật mới phù hợp với nó. TKIP là một biện pháp quan
trọng cung cấp chế độ bảo mật thực sự mà WEP không thể có được. Mọi
điểm yếu cơ bản của WEP đã được khắc phục, bao gồm cả tấn công vào khóa
yếu, nghe lén, gửi lại gói tin cũng như các điểm yếu khác. Thêm vào đó,
TKIP được thiết kế bởi những chuyên gia cao cấp trong lĩnh vực bảo mật và
đảm bảo được tính toàn vẹn dữ liệu cho người sử dụng.
Một lượng lớn các hệ thống WLAN trên thế giới đã được triển khai với
thức bảo mật dựa trên thuật toán RC4. Các hệ thống này sử dụng WEP hoặc
TKIP. Tuy nhiên, khi ủy bản về IEEE 802.11 tìm kiếm một giải pháp bảo mật
mới và muốn xây dựng nó từ đầu thì họ đã lựa chọn AES. AES là một thuật
72
toán mã hóa được dùng theo nhiều cách khác nhau để tạo ra các giao thức bảo
mật.
Phần tiếp theo sẽ nghiên cứu, xây dựng một mô hình, đề xuất giải pháp,
phát triển thử nghiệm một ứng dụng nhằm đảm bảo an ninh an toàn cho mạng
WLAN.
73
Chương 3
XÂY DỰNG PHẦN MỀM BẢO MẬT MẠNG KHÔNG DÂY WLAN SỬ DỤNG USB ETOKEN
3.1. Phân tích yêu cầu, đề xuất giải pháp
3.1.1. Bài toán đặt ra
Với người dùng hiện nay, mạng Wifi đang trở nên rất phổ biến và dần
dần thay thế mạng không dây. Ở những nơi mạng LAN khó triển khai như
bệnh viện, trường học, quán cafe, các công ty… thì mạng WLAN như một
cứu cánh tuyệt vời, giảm thiểu tối đa các thiết bị cứng như đường dây,
switch… Song hành với lợi ích mang lại là những hiểm họa như lộ thông tin,
xâm nhập trái phép… Do mạng không dây là vô tuyến, ai bắt được mạng thì
cũng “có thể” xâm nhập vào mạng. Với những công ty thì điều này là rất
nguy hiểm, hoàn toàn có thể bị đánh cắp, gây rò rỉ thông tin. Các phương thức
bảo mật được áp dụng hiện nay thường thấy là đặt pass wifi bằng WPA hoặc
WPA2, nhưng trên mạng internet ta dễ dàng tìm thấy những video, các tut
chia sẻ cách “hack WPA2” sử dụng linux. Bài toán đặt ra ở đây là làm cách
nào, thông tin chia sẻ trong mạng WLAN được bảo vệ, mã hóa, quản lý được
số người truy cập mạng LAN một cách cẩn thận tới từng đơn vị sử dụng mà
vẫn có sự linh động khi di chuyển.
Để giải quyết yêu cầu trên, em đã xây dựng phần mềm bảo mật mạng
không dây WLAN sử dụng USB eToken để quản lý đăng nhập và mã hóa gói
tin khi di chuyển trong WLAN. Mục đích đặt ra: muốn sử dụng phần mềm
phải có eToken, mỗi gói tin khi các client giao tiếp với nhau đều được mã hóa
đảm bảo dù có bị nghe trộm hay bắt gói tin, nếu không có eToken thì không
thể giải mã được những gói tin đã nhận. Nâng cao bảo mật an toàn, phù hợp
với các công ty có nhu cầu bảo mật, hạn chế số người sử dụng phần mềm
bằng cách phát cho nhân viên USB eToken.
74
3.1.2. Sơ đồ ứng dụng
3.1.2.1. Đăng kí
Hình 3.1 Sơ đồ đăng kí token đăng kí tài khoản
Người dùng muốn đăng kí phải cầm token lên Server để đăng kí,
Database do Server quản lý sẽ lưu trữ tên đăng nhập, mật khẩu và khóa công
khai của từng token. Sau khi đăng kí thành công, người dùng mới có thể
mang token về client của mình và sử dụng phần mềm. Điều này hướng tới
mục đích đăng kí token một cách tập trung tại một phòng nào đó trong công
ty, chuyển quản lý token (tức quản lý người dùng, tránh người dùng tự đăng
kí tại client).
3.1.2.2. Đăng nhập
75
Hình 3.2. Đăng nhập
3.1.2.3.Trao đổi giữa Client và Client
Hình 3.3. Trao đổi giữa Client A và Client B
Ở đây ta xét trường hợp tin tổng quát. Chat hay gửi file giữa các Client
với nhau qua socket đều quy thành các “gói”. Server quản lý tất cả Public
Key của các Client đang online. Client A lấy khóa công khai của Client B và
76
mã hóa gói tin cần gửi. Client B khi nhận gói tin, lấy khóa bí mật của mình để
giải mã gói tin. Như vậy ai cũng có thể mã hóa gói tin nhưng muốn giải mã
thì chỉ có thể giải mã bằng khóa bí mật, nằm trong token của người nhận
3.1.2.4. Trao đổi giữa Server – Client
Hình 3.4. Trao đổi giữa Server – Client
Về vấn đề trao đổi file giữa Server và Client có đôi chút khác biệt khi
trao đổi file giữa Client và Client. Ở đây khi trao đổi file, ta không mã hóa
bằng token vì hai lý do sau:
- Do Server bật liên tục và là duy nhất, không cần phải sử dụng
eToken
- Muốn tự viết phần mã hóa RSA như đã trình bày ở trên.
Với những lý do đó, khi trao đổi giữa Server và Client, em sử dụng một
file key.dat có lưu trữ 3 giá trị e, p, q để phục vụ cho thuật toán RSA tự viết.
Việc sử dụng key.dat hay token là tương đương nhau. Tùy theo nhu cầu
của công ty mà ta có thể chuyển giữa việc dùng token hay dùng key.dat.
3.1.3. Môi trường hệ thống
3.1.3.1. Các tác nhân của hệ thống
77
- Quản trị Server: Là người được quản lý server, khởi động, tắt Server.
Quản lý thêm sửa xóa các tài khoản người sử dụng. Có thể chat và gửi file
đồng thời tới mọi Client đang online.
- Người dùng: Mỗi người dùng là một client, tham gia sử dụng phần
mềm, họ phải đăng nhập bằng token để sử dụng phần mềm. Có thể chat, gửi
file tới Server hoặc Client khác đang online.
3.1.3.2. Đặc tả các Usecase:
Các chức năng cho người quản trị Server
Hình 3.5. Usecase chức năng người quản trị Server
Usecase Quản lý thông tin tài khoản
78
Hình 3.6. Usecase Quản lý thông tin tài khoản
Usecase Giao tiếp với mọi Client
Hình 3.7. Usecase giao tiếp với mọi Client
Các chức năng cho người dùng Client
Hình 3.8. Chức năng người dùng Client
Usecase giao tiếp với Server
79
Hình 3.9. Usecase Client giao tiếp với Server
3.1.4. Thiết kế cơ sở dữ liệu
Với mục đích sử dụng cho các công ty là chính, cơ sở dữ liệu của
chương trình khá đơn giản, lưu trữ tài khoản, mật khẩu, tên nhân viên, khóa
công khai của nhân viên và có thể thêm thắt các thông tin khác tùy ý. Ở đây
hướng chính của phần mềm là demo luận văn, em chỉ thêm một trường là
ngày tháng, không có ý nghĩa gì với chương trình, chỉ mang tính demo. Bảng
cơ sở dữ liệu trên là bảng của các Client. Server chỉ có một nên không có
đăng nhập và quản lý bằng cơ sở dữ liệu.
3.1.5. USB Token
3.1.5.1. Đôi nét về USB Token
Hình 3.10. USB Token của Viettel
80
eToken Pro USB là một sản phẩm thuộc dòng sản phẩm eTokenTM
của Aladdin Knowledge Systems Ltd., Israel.
eToken Pro USB là một thiết bị bảo mật cao, giao tiếp với máy tính qua
cổng USB, sử dụng tiện lợi, an toàn, dễ mở rộng. eToken Pro USB hỗ trợ tất
cả hạ tầng khóa công khai eToken PKI như xác thực người dùng, quản lý mật
khẩu, bảo mật chữ ký số và bảo mật dữ liệu...
Ngoài ra, do eToken Pro USB hỗ trợ các giao diện và hệ thống bảo mật
theo tiêu chuẩn công nghiệp, nên eToken Pro USB còn đảm bảo việc tích hợp
dễ dàng với hạ tầng và các chính sách bảo mật.
Đặc tính kỹ thuật của eToken Pro USB được thể hiện trong bảng dưới
đây:
81
Hình 3.11. Đặc tính kĩ thuật của USB eToken
Dựa trên các tiêu chí đánh giá, eToken có tính năng nổi trội về khả
năng hỗ trợ hệ điều hành, hỗ trợ các ứng dụng PKI, hỗ trợ các chuẩn bảo mật
và khả năng tích hợp.
3.2. Xây dựng ứng dụng
3.2.1. Giới thiệu chung về ứng dụng
Ứng dụng là một hệ thống Server – Client chạy trong mạng LAN nội
bộ, có thể là mạng có dây hoặc không dây. Do hướng của luận văn là bảo mật
mạng không dây, phần mềm được thiết kế để có thể mã hóa các gói tin, hạn
chế người dùng…chống lại các cuộc tấn công nghe trộm, bắt gói tin, đảm bảo
một mức độ bảo mật của các công ty. Hệ thống sử dụng ngôn ngữ lập trình
Java và quản trị cơ sở dữ liệu SQL Server. Các chức năng chính của chương
trình là chat và gửi file giữa các người dùng trong mạng. Các gói tin đều được
mã hóa trước khi gửi đi và giải mã khi nhận về. Sau đây là sơ đồ ứng dụng:
Hình 3.12. Mô hình ứng dụng
3.2.2. Server
Server của hệ thống là nơi khởi tạo kết nối. Các chức năng của
Server:
82
1. Khởi tạo kết nối, làm điểm truy nhập của các Client
2. Lưu giữ các PublicKey của các Client đang kết nối
3. Đăng kí mới, sửa, xóa các eToken đã đăng kí tài khoản
4. Chat với mọi Client
5. Gửi file cho mọi Client
Trước tiên, người dùng vào màn hình chính của chương trình. Do
mỗi lần sử ở một mạng WLAN khác nhau, máy làm Server sẽ được cấp
một địa chỉ IP khác nhau. Trên thực tế nếu dự án được triển khai thực sự.
Server sẽ nằm cố định ở một máy và kết nối với một mạng WLAN cũng cố
định, ta sẽ không cần quan tâm tới giải IP của Server nữa. Để vào mục
quản lý tài khoản, ta ấn nút Account Manager, để bắt đầu Server. Ta ấn
nút Start. Các Client sau khi kết nối tới Server này sẽ hiển thị ở ô bên trái
màu vàng.
Hình 3.13. Màn hình chính của Server
Dưới đây là màn hình quản lý tài khoản, cũng chính là cơ sở dữ liệu
của hệ thống. Lưu trữ lại các thông tin cùng với khóa công khai.
83
Hình 3.14. Màn hình quản lý tài khoản
Với mục tiêu hạn chế và quản lý người dùng. Những ai muốn sử
dụng phần mềm phải có token và phải mang token đó để cho Server để
đăng kí sử dụng.
Hình 3.15. Màn hình thêm tài khoản
84
Sau khi thêm tài khoản, người quản trị Server có thể sửa đổi thông
tin của tài khoản đó, trừ tên đăng nhập.
3.2.3. Client
Client của hệ thống là những người sử dụng mạng nội bộ. Họ bắt
buộc phải có token, ở đây đóng vai trò như chìa khóa để sử dụng phần
mềm này. Nếu trong quá trình sử dụng, rút token, Client sẽ kết thúc. Các
chức năng của Client:
1. Chat với Server, Client
2. Gửi file tới Server, Client
3. Hiển thị danh sách các Client đang sử dụng phần mềm
Trước tiên, người dùng cần cắm token vào máy tính chạy Client, sau
đó chạy phần mềm để đăng nhập:
Hình 3.16. Màn hình đăng nhập
Nếu đăng nhập thành công, ta sẽ vào được giao diện chính của
Client. Đây là màn hình có thể xem danh sách Client đang online và cũng
nơi giao tiếp trực tiếp với Server.
85
Hình 3.17. Màn hình chính của Client
Với giao diện trên ta có thể chat và gửi file tới Server hoặc Client
khác. Do kết nối socket không ổn định và mã hóa RSA làm giảm tốc độ
nên bạn không được gửi file quá lớn. Để đảm bảo tính ổn định của chương
trình, bạn nên gửi những file được cung cấp trong thư mục “test” có trong
thư mục chương trình.
Hình 3.18. Màn hình chọn file
86
Khi nhận được file, sẽ có thông báo nhận file
Hình 3.19. Màn hình lưu file
Tất cả các Client đều phải cắm token khi sử dụng, trong quá trình sử
dụng, vì bất kì lý do gì không tìm thấy token, chương trình lập tức hiện ra
cảnh báo và thoát khỏi chương trình ngay lập tức
Hình 3.20. Màn hình cảnh báo không thấy token
Ứng dụng hướng đến đối tượng sử dụng là các công ty hoặc các trường
học, rất cần sự trao đổi thông tin nội bộ, bảo mật và kiểm soát người dùng.
USB eToken là chìa khóa để sử dụng phần mềm nội bộ này. Mạng WLAN
vẫn bật, mọi người có thể truy cập vào mạng, nhưng để trao đổi với nhau thì
phải có token. Tin tặc có thể bắt được gói tin nhưng nếu không có USB
eToken, hắn sẽ không thể giải mã gói tin vì không có PrivateKey. Đây là hình
ảnh file đã mã hóa, cũng chính là file mà tin tặc bắt được nhưng không thể
giải mã:
87
Hình 3.21. So sánh 2 file mã hóa và gốc
Phần mềm đã giải quyết được các vấn đề:
1. Quản lý người dùng bằng cách cấp phát token.
2. Quản lý tài khoản token để quyết định có cho phép truy cập hay
không, kể cả khi có token.
3. Người dùng có thể chat và trao đổi file.
4. Mã hóa và giải mã các gói tin trao đổi trong mạng nội bộ.
Những điều phần mềm chưa giải quyết được:
5. Chưa có chứng thực gói tin (kí và kiểm tra chữ kí).
6. Do sử dụng thuật toán để mã hóa và đường truyền bằng socket không
ổn định nên chưa thể gửi được file có dung lượng lớn.
88
KẾT LUẬN
Với sự phổ biến của mạng WLAN như hiện nay, vừa mang lại lợi ích
cũng như các hiểm họa. Với mạng không dây, bạn có thể giảm bớt gánh nặng
khi thiết kế các mạng WLAN, không còn phải thấy các đường dây mạng
chằng chịt. Đồng nghĩa với việc thông tin “trôi nổi” trong không khí thì ai
cũng có thể “tóm” được gói tin của bạn. Các kĩ thuật tấn công ngày càng tinh
vi, thực hiện trên diện rộng và nhiều cách khác nhau. Kết hợp với những
phương thức bảo mật sẵn có của mạng WLAN như WPA, WPA2…việc mã
hóa gói tin là hướng giải quyết tốt nhất. Thỏa mãn được hai vấn đề: bảo mật
đường truyền và bảo mật mức độ gói tin.
Luận văn lần này đã đóng góp được các vấn đề chính sau đây:
1. Trình bày tổng quan sự phát triển của mạng không dây, các công
nghệ ứng dụng trong mạng không dây. Tìm hiểu một cách khái quát cơ chế
hoạt động của mạng WLAN, ưu điểm, nhược điểm cũng như các mô hình
hoạt động của mạng WLAN. Tìm hiểu chuẩn 802.11 cho mạng WLAN, nắm
được những gì diễn ra trong quá trình thiết lập kết nối với một hệ thống
WLAN đơn giản
2. Trình bày thực trạng mất an ninh an toàn của mạng không dây, các
kiểu tấn công trong mạng không dây, các kỹ thuật mật mã ứng dụng để bảo
mật mạng không dây và một số giải pháp cho việc đảm bảo an ninh an toàn
cho mạng không dây mà cụ thể là mạng WLAN như: phương pháp mã hóa
đối xứng, mã hóa công khai, bảo mật đường truyền WEP, WPA, WPA2…
3. Nghiên cứu đề xuất giải pháp mã hóa gói tin kết hợp mã hóa đường
truyền sẵn có để xây dựng phần mềm ứng dụng eToken, bảo mật mạng
WLAN nội bộ. Một ứng dụng hoàn toàn mới và thiết thực cho các công ty,
trường học, quân sự…
Đóng góp của phần mềm:
89
1. Đã tích hợp được thiết bị eToken trong việc sử dụng toàn bộ hệ
thống,thiết bị lưu trữ khóa bí mật, đảm bảo người dùng đã đăng kí mới có khả
năng truy cập vào hệ thống.
2. Áp dụng được việc sự dụng mật mã khóa đối xứng trong việc mã hóa
gói tin.
3. Chống được các cuộc tấn công sniffing, passive…Việc trao đổi
thông tin trong mạng nội bộ được quy thành các “gói tin”. Mỗi gói tin sẽ được
mã hóa trước khi gửi đi và giải mã trước khi nhận về. Kết hợp với các phương
pháp bảo mật đường truyền có sẵn như WEP, WPA, WPA2… sẽ là một thách
thức không nhỏ với tin tặc. Dù có tóm được gói tin cũng không thể giải mã
được.
Hạn chế của ứng dụng:
1. Ứng dụng hoạt động là Windows Application, muốn sử dụng phải
cài phần mềm vào máy.
2. Mã hóa và truyền gói tin còn chậm, không truyền được file lớn.
3. Chưa tích hợp khả năng kí để xác thực gói tin.
4. Giao diện có sơ sài, chưa bắt mắt.
5. Do tích hợp eToken nên việc nhập mã PIN sai quá 3 lần sẽ khóa
eToken lại, gây phiên phức cho người dùng vì nó mang tính bảo mật
cao, yêu cầu phải thực hiện đúng
Hướng phát triển tiếp theo:
1. Chuyển phần mềm thành ứng dụng webbase. Có thể sử dụng không
cần cài đặt, có thể sử dụng trên các thiết bị di động.
2. Cải tiến khả năng truyền tải file giữa các người dùng với nhau.
3. Tích hợp khả năng kí xác thực.
4. Cải tiến giao diện, tích hợp vào cổng thông tin điện tử.
90
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Phạm Huy Điển, Hà Huy Khoái, (2003), Mã hóa thông tin cơ sở
toán học và ứng dụng, Nhà xuất bản Đại học Quốc gia Hà Nội.
[2]. Phan Đình Diệu, (1999), Lý thuyết mật mã và an toàn thông tin,
Đại học Quốc Gia Hà Nội, Hà Nội.
[3]. Trịnh Nhật Tiến, (2004), Bài giảng: “Một số vấn đề về an toàn dữ
liệu”.
[4]. Nguyễn Thúy Vân, (1999), Lý thuyết mã, Nhà xuất bản Khoa học
và kỹ thuật.
Tiếng Anh
[5]. Aaron E. Earle, (2006), Wireless Security Handbook, Auerbach
Publications Taylor & Francis Group, New York.
[6]. Cyrus Peikari, Seth Fogie, (2002), Maximum Wireless Security,
Sams Publishing, USA.
[7]. Jahanzeb Khan, Anis Khwaja, (2003), Building Secure Wireless
Networks with 802.11, Wiley Publishing, Indianapolis, Indiana.
[8]. Jon Edney, William A. Arbaugh, (2003), Real 802.11 Security:
Wi-Fi Protected Access and 802.11i, Addison Wesley, Boston.
[9]. Lee Barken, (2003), How Secure Is Your Wireless Network?
Safeguarding Your Wi-Fi LAN, Prentice Hall PTR, New Jersey.
[10]. William Stallings (2005), Cryptography and Network Security
Principles and Practices, Fourth Edition, Prentice Hall.
91
LÝ LỊCH TRÍCH NGANG
Họ và tên: Phan Thành Vinh
Ngày tháng năm sinh: 21/10/1981 Nơi sinh: Thanh Hoá
Địa chỉ liên lạc: Thôn Cầu - Bãi Trành – Như Xuân – Thanh Hóa
Quá trình đào tạo:
- 2000 - 2005: Học CNTT tại Đại Học Vinh.
- 2012 - 2014: Học Cao học CNTT tại Học viện Kỹ thuật Quân sự.
Quá trình công tác:
- 2006 - 2012: Giáo viên Trường THPT Như Xuân 2.
- 2012 - 2014: Giảng Viên Trường Đại Học Kinh Doanh Và Công
Nghệ Hà Nội.
XÁC NHẬN QUYỂN LUẬN VĂN ĐỦ ĐIỀU KIỆN NỘP LƯU CHUYỂN
CHỦ NHIỆM KHOA (BỘ MÔN) CÁN BỘ HƯỚNG DẪN
QUẢN LÝ CHUYÊN NGÀNH (Ký và ghi rõ họ tên)
(Ký và ghi rõ họ tên)