(a) Khuông dạng dữ liệu (b) Khuông dạng lệnh (c) Khuông dạng ACK
Khng dạng gói tin của lớp APS bao gồm 3 dạng là dạng dữ liệu, dạng lệnh và dạng xác nhận, cụ thể:
Frame Control: trường này chứa các thơng tin điều khiển, có cấu trúc như sau
Hình 3. 37: Khn dạng trƣờng FrameControl trong lớp con APS [4, tr 122]
- Trong lớp APS định nghĩa thêm một dạng định chỉ đích nữa là dạng vơ hướng (indirect addressing), dạng địa chỉ này cho phép thiết bị có thể truyền gói tin tới ZC mà không cần biết đích đến, và ZC sẽ tìm kiếm dựa vào địa chỉ nguồn, địa chỉ đầu cuối và định danh cụm trong
- Frame type: dạng gói tin.
- Delivery mode: dạng gửi gói tin.
- Indirect Addr mode: dùng khi gửi vô hướng. - Security: dùng khi có bảo mật.
- ACK request: bật khi cần gửi xác nhận.
Destination Endpoint: địa chỉ đích của thiết bị đầu cuối.
Group Address: địa chỉ nhóm, thơng điệp sẽ được chuyển tới tất cả các nút
thành viên trong nhóm nếu địa chỉ này được dùng. Nếu dùng địa chỉ này thì địa chỉ Destination Endpoint sẽ không được dùng nữa.
Cluster ID: định danh cụm, chỉ được sử dụng trong quá trình liên kết (binding) và định danh này sẽ được dùng trong quá trình khởi tạo/duy trì liên kết.
Profile ID: định danh của hồ sơ.
Source Endpoint: địa chỉ nguồn của nút gửi dữ liệu.
APS Counter: biến đếm, 8-bit, được tăng lên mỗi khi một khung dữ liệu mới được truyền đi. Bộ đếm này sẽ tránh được việc gửi trùng lặp một khung dữ liệu
Payload: tải (dữ liệu) của lớp APS.
Phần lệnh các trường cũng có giá trị tương tự và cũng được phân thành tiêu đề và tải, các gói tin xác nhận (ACK) thì chỉ bao gồm duy nhất phần tiêu đề.
3.9. Bảo mật trong mạng Zigbee [4, tr 123-134]
Mạng Zigbee (IEEE 802.15.4) xây dựng cơ chế bảo mật ở cả ba tầng là tầng MAC, tầng Mạng và tầng Ứng dụng. Trong tầng MAC, việc bảo mật đảm bảo cho các gói tin truyền trực tiếp từ một nút mạng sang nút hàng xóm lân cận của nó. Cơ chế bảo mật trong tầng Mạng và tầng Ứng dụng áp dụng cho các gói tin phải chuyển qua một hoặc nhiều nút trung gian trong mơ hình mạng lớn.
Nên tảng bảo mật trong mạng Zigbee được dựa trên phương pháp mã hóa AES 128- bit, AES (Advance Encryption Standard): tiêu chuẩn mã hóa tiên tiến, là một phương phápmã hóa khối (block ciphers) được chính phủ Mỹ áp dụng làm tiêu chuẩn mã hóa. Đây là phương phápmã hóa đối xứng với độ dài khóa là 128bit, (ngồi ra cịn có các độ dài 192-bit và 256-bit), dữ liệu sẽ được mã hóa và giải mã nhờ một cặp khóa có quan hệ rõ ràng với nhau (có thể tìm được một khóa nếu biết khóa kia) hoặc có thể hồn toàn giống nhau. Dữ liệu sẽ được tách để mã hóa và giải mã theo từng khối 128-bit (để phân biệt với mã hóa luồng với dữ liệu được mã hóa theo từng bit).
Hình 3. 38: Mơ hình mã hóa và giải mã trong mạng Zigbee [4, tr123]
Có hai dạng khóa được sử dụng trong q trình truyền thơng là khóa liên kết (link key) và khóa mạng (network key). Khóa liên kết là khóa dùng cho việc truyền thông giữa chỉ 2 thiết bị và sử dụng phương thức truyền đơn điểm (unicast), cịn khóa mạng là khóa dùng cho việc truyền quảng bá vì được chia sẻ đến tất cả các thành viên trong mạng. Trong mạng Zigbee, có một thiết bị được thiết kế để thực hiện chức năng phân phối khóa có tên là Trung tâm Tin cậy (Trust Center), thiết bị đóng vai trị này sẽ phân phối cả khóa mạng và khóa liên kết đến các thiết bị khác.
Trung tâm Tin cậy được hoạt động dưới 2 chế độ: chế độ thương mại (commercial mode) và chế độ dân cư (residential mode).
Chế độ thương mại: trong chế độ này, Trung tâm Tin cậy phải duy trì danh sách các thiết bị, các khóa. Tất cả các thông điệp đi qua đều phải kiểm tra sự “tươi”. Một gói tin được cho là tươi nếu thỏa mãn khơng có gói tin nào trùng nó (tránh việc mạo danh). Trong chế độ này, bộ nhớ của nút được làm Trung tâm Tin cậy sẽ gia tăng tỉ lệ thuận với số lượng các thiết bị trong mạng.
Chế độ dân cư: chế độ này ngược lại, được thiế kế cho việc ít bảo mật. Chỉ có khóa là được quản lí bởi trung tâm, hai u cầu cịn lại là tùy chọn. Việc kiểm tra thiết bị cũng không phải là công việc bắt buộc. Trong chế độ này, bộ nhớ của nút được làm Trung tâm Tin cậy sẽ không gia dựa số lượng các thiết bị trong mạng như chế độ thương mại.
Các chức năng bảo mật trong mạng Zigbee:
- Xác thực (Authentication): có hai dạng là xác thực thiết bị và xác thực dữ liệu.
- Xác thực thiết bị được thực hiện bởi Trung tâm Tin cậy khi thiết bị khởi đầu tham gia vào mạng, thiết bị không được xác thực bởi trung tâm sẽ không được gia nhập mạng.
- Xác thực dữ liệu trong mạng Zigbee thì để đảm bảo tính tồn vẹn của các dữ liệu truyền đi, việc xác thực này dùng mã đặc biệt là Mã Tồn Vẹn Thơng Điệp MIC (Message Integrity Code), được tạo bởi phương
pháp mã hóa được thống nhất giữa bên gửi và bên nhận, thiết bị không được xác thực sẽ khơng có quyền tạo ra mã này. Thiết bị nhận sẽ kiểm tra MIC của gói tin được gửi bởi thiết bị gửi để xem dữ liệu nhận được có đảm bảo tính tồn vẹn và chính xác hay khơng.
Hình 3. 39: Ứng dụng MIC trong xác thực dữ liệu của mạng Zigbee
MIC cũng được gọi là thông điệp mã xác thực MAC (Message Authentication Code) nhưng mạng Zigbee không dùng khái niệm này để tránh hiểu nhầm với khái niệm tầng MAC trong mạng. MIC trong Zigbee được triển khai sử dụng giao thức nâng cấp Mã hóa khối Chuỗi thơng điệp mã xác thực với biến đếm CCM* (enhanced Couter with Chaining Message Authentication Code). Giao thức này được định nghĩ để sử dụng kết hợp với mã hóa 128-bit AES và dùng chung dữ liệu khóa.
Trong cấu trúc khung dữ liệu tầng MAC trong mạng Zigbee, có ba trường có liên quan đến việc xác thực dữ liệu bằng MIC/CCM*, đó là trường : Frame Control, Auxiliary Security Header và Data Payload. Trường Auxiliary Security Header khơng chỉ có ở tầng MAC mà cịn có ở các tầng Mạng và Ứng dụng để xác thực dữ liệu. Trong mơ hình trao đổi dữ liệu ở trên, có 3 thơng tin được đưa vào bộ mã hóa AES-CCM* là dữ liệu, khóa và một thông tin tổng hợp nonce. Nonce được tạo ra bởi các thông tin trong cấu trúc trường Auxiliary Security
Hình 3. 40: Cấu trúc Auxiliary Security Header và CCM* Nonce [4, tr 131]
Trường Security Control cũng quy định mức độ bảo mật của MIC và quy định dữ liệu có được mã hóa hay khơng với thuộc tính ENC(Encryption). Bảng dưới đây mô tả các dạng bảo mật của MIC, bao gồm MIC có kích thước 32, 64 và 128-bit. Các mức bảo mật này cũng được áp dụng cho tầng Mạng và tầng Ứng dụng
Bảng 3. 7: Các mức bảo mật về xác thực dữ liệu trong mạng Zigbee
Việc kiểm tra xác thực dữ liệu được áp dụng cho cả 3 tầng là tầng MAC, tầng Mạng và tầng Ứng dụng, trường chứa MIC sẽ được nằm phía bên phải của trường Tải dữ liệu (Payload) của mỗi tầng như thể hiện ở hình 3.41
Hình 3. 41: Trƣờng MIC trong các tầng trong mạng Zigbee [4, tr 131]
Tổng kết lại, các dịch vụ bảo mật của mạng Zigbee có nhiệm vụ: -Mã hóa để bảo mật dữ liệu
-Xác thực thiết bị và xác thực dữ liệu
-Bảo vệ việc chuyển tiếp (bằng cách loại bỏ các gói tin bị trùng lặp)
3.10. Kết luận
Chương này đã trình bày từ tổng quan đến chi tiết về chuẩn mạng không dây Zigbee với phần tầng vật lí và tầng MAC được kế thừa từ tiêu chuẩn IEEE 802.15.4, và các tầng trên như tầng Mạng và tầng Ứng dụng được định nghĩa riêng theo cấu trúc và các tiêu chuẩn được đưa ra bởi tổ chức Zigbee Alliance. Qua chương này chúng ta có thể thấy được cấu trúc của một mạng không dây cá nhân Zigbee qua các đặc điểm về mặt vật lí như tốc độ, kênh truyền, đến các cấu trúc, phương pháp ở tầng MAC và tầng Mạng để thích ứng với nhiều mơ hình mạng có số lượng các nút từ nhỏ, vừa đến quy mô lớn. Tầng ứng dụng cũng cho ta thấy được cấu trúc tổ chức linh hoạt để hỗ trợ nhiều dịch vụ trong các lĩnh vực của đời sống, y tế, công nghiệp, ... cũng như một số cơ chế bảo mật để đảm bảo an ninh, an toàn dữ liệu trong mạng.
Sau khi tìm hiểu được chi tiết về mạng Zigbee và chuẩn IEEE 802.15.4, cũng như các chuẩn IEEE 802.11, IEEE 802.15.1, IEEE 802.15.3 với các mạng tương ứng Wifi, Bluetooth và Ultra Wide Band, chúng ta có thể lập một bảng so sánh các chuẩn (mạng) này như bảng 3.8.
Bảng 3. 8: So sánh giữa các mạng không dây cá nhân và Wifi
Loại mạng Wifi Bluetooth UWB Zigbee
Chuẩn IEEE 802.11 802.15.1 802.15.3a 802.15.4
Băng tần 2.4GHz; 5GHz 2.4GHz 3.1-10.6GHz 868/915MHz; 2.4GHz Tốc độ (lý thuyết) 54Mbps 1Mbps 110Mbps 250Kbps Khoảng cách 100m 10m 10m 10-100m
Số kênh 14 kênh 79 kênh 1-15 kênh 16 kênh
Độ rộng kênh 22MHz 1MHz 500MHz – 7.5GHz 0.3/0.6 MHz ; 2MHz Kỹ thuật điều chế BPSK, QPSK COFDM, CCK,M- QAM GFSK BPSK, QPSK BPSK(+ASK), O-QPSK Kỹ thuật trải phổ DSSS, CCK, OFDM DSSS, CCK, OFDM FHSS DS-UWB, MB-OFDM DSSS
Đơn vị trong mạng BSS Piconet Piconet Star Khả năng mở rộng
số nút mạng 2007 8 8 65536
Mã hóa dữ liệu Mã hóa khối Mã hóa
luồng Mã hóa khối Mã hóa khối
Bảo mật dữ liệu WPA CBC-MAC CBC-MAC CBC-MAC
Chƣơng 4: MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA MẠNG ZIGBEE 4.1. Chƣơng trình mơ phỏng mạng NS2 [1, tr 47-52]
NS-2 là một bộ mô phỏng mạng mã nguồn mở, vận hành theo các sự kiện rời rạc (Discrete Event -Driven Simulator), được xây dựng và phát triển bởi dự án VINT của phịng thí nghiệm Lawrence Berkeley National Laboratory. Phiên bản 1 của NS được phát triển vào năm 1995 và phiên bản 2 ra đời vào năm 1996. Phiên bản 2 của NS thêm vào một ngôn ngữ gọi là Object oriented Tcl(Otcl). Trong đó phần nhân ít thay đổi hơn của NS được viết bằng C++, chứa các module thực hiện mô phỏng và các chức năng cơ bản nhất của mạng. Phần vỏ được viết bằng ngôn ngữ Otcl, là một ngôn ngữ thông dịch kịch bản và thực thi các câu lệnh tạo ra bởi người sử dụng. NS-2 là một gói phần mềm mã nguồn mở chạy được cả trên nền hệ điều hành Windows và Linux.
4.1.1. Kiến trúc của NS2
NS-2 được xây dựng theo kiến trúc phân tầng, tương tự với các tầng tương ứng trong mơ hình OSI. Việc làm này nhằm mục đích giúp người dùng NS-2 kết hợp các giao thức phù hợp với yêu cầu của riêng họ.
NS-2 được phát triển bởi ngôn ngữ C++, tuy nhiên mô-đun điều khiển mô phỏng được viết bằng OTcl. Điều này cho phép người sử dụng chỉ định một cách rõ ràng và có khả năng tùy biến cao với mô phỏng mà không cần can thiệp vào mã nguồn C++.
Hình 4. 1: Tổng quan kiến trúc của NS2 đƣợc đơn giản hóa
Trong bộ chương trình mơ phỏng mạng NS-2, chương trình mơ phỏng NS- 2 là thành phần chính, được tích hợp các mơ hình lưu lượng hay được sử dụng trong nghiên cứu. Các ứng dụng phổ biến khác cũng được tích hợp trong NS-2 như WEB, FTP, Telnet… Các giao thức như TCP, UDP, SCTP cũng được NS-2 hỗ trợ rất tốt. Nhiều phương pháp định tuyến phổ biến trong các mạng có dây và khơng dây cũng như các môi trường vật lý khác nhau đã và sẽ được đưa vào bộ mô phỏng NS-2.
Thành phần thứ hai là các công cụ hiển thị thực quan NAM và và công cụ vẽ đồ thị XGRAPH. NAM là công cụ hiển thị cho phép người dùng thấy được hình ảnh trực quan của các đối tượng tham gia mô phỏng cũng như các hoạt động cụ thể của chúng, sự chuyển động của các gói số liệu trên mạng. XGRAPH là một ứng dụng có khả năng vẽ đồ thị trong khơng gian hai chiều, dựa trên dữ liệu nhận vào từ các tệp dạng văn bản, do chương trình mơ phỏng sinh ra. Người nghiên cứu thường sử dụng XGRAPH để hiển thị và so sánh các kết quả nhận được dưới dạng đồ thị và các kết quả này có thể được lưu lại phục vụ cho các chương trình khác. NAM và XGRAPH đều sử dụng tệp vết (trace file), là tệp chứa thông tin vết các sự kiện trong thời gian tiến hành chạy mô phỏng, làm tệp đầu vào. Ngồi ra, người dùng có thể dùng các cơng cụ khác như các ngơn ngữ Awk, Perl hoặc Tcl để xử lý tệp kết quả này phục vụ cho mục đích nghiên cứu.
4.1.2. Mơi trường mô phỏng
Thông thường đối với các cấu trúc liên kết mạng lớn thì các mẫu chuyển động và các mẫu lưu lượng được định nghĩa riêng cho thuận lợi và chúng được tạo ra bởi máy các nguồn phát được hỗ trợ sẵn trong chương trình mơ phỏng mạng NS2. Trong NS2, các tệp mẫu cần thiết để giả lập một mạng gồm những file như sau:
- Tệp ngữ cảnh (Scenario File): tệp ngữ cảnh chứa các mẫu chuyển động của các nút. Ngữ cảnh mô phỏng có thể là ngữ cảnh tĩnh (thiết lập tọa độ của các nút mạng) hoặc có thể tự động được sản sinh ra bởi các cơng cụ (ví dụ. Cơng cụ Setdest).
- Tệp chương trình chính (Main Program File): File chương trình chính chỉ định các thiết lập chung cho việc thực hiện mô phỏng. Các tham số bao gồm: giao thức nào sẽ được mơ phỏng, tên và vị trí của dữ liệu ra sau khi thực hiện mô phỏng (trace file), tên và vị trí của file trực quan hóa (NAM file).
-Tệp NAM: đây là công cụ hiển thị trực quan hóa cho các thiết lập ở tệp chương trình chính. Cửa sổ NAM sẽ cho ta thấy được hoạt động của các nút mạng trong mạng theo trình tự thời gian.
Chương trình mơ phỏng mạng NS2 hỗ trợ việc mơ phỏng cả mạng có dây, mạng khơng dây và mạng hỗn hợp cả có dây và khơng dây.
4.1.3. Tệp vết (File Trace)
Dữ liệu ra sau khi mô phỏng với NS-2 thường được lưu trong một tệp, tệp này được gọi là tệp dấu vết (trace file). Tệp dấu vết chứa thông tin về các sự kiện của gói tin xảy ra trong suốt thời gian mơ phỏng theo từng tầng: tầng MAC, tầng mạng, tầng giao vận, tầng ứng dụng.
Sau khi mô phỏng thành công, tệp dấu vết sẽ chứa các thông tin chi tiết về các sự kiện xảy ra trong mạng theo các mốc thời gian mơ phỏng. Tệp vết có chứa rất nhiều các thơng số quan trọng để có thể giúp chúng ta phân tích được ảnh hưởng
của các tham số truyền vào mạng. Ví dụ dưới đây là là định dạng của một tệp vết trong mạng khơng dây:
Hình 4. 2: Định dạng của tệp vết mạng không dây trong NS2
Tệp vết của mạng khơng dây trong NS2 có 2 phần như sau:
- Phần cơ bản: chứa các thơng tin cơ bản cho việc phân tích mạng khơng dây ở tầng MAC.
- Phần mở rộng: chứa các thơng tin phục vụ cho việc phân tích mạng khơng dây ở tầng mạng và tầng ứng dụng.
Cụ thể các thông số trong các trường như sau:
- Event Type: dạng sự kiện được lưu trong tệp vết.
“s”: gói tin gửi.
“r” gói tin nhận.
“D” gói tin bị loại.
“f” gói tin được chuyển tiếp đến đích. - Time: thời gian xảy ra sự kiện.
- Node ID: số thứ tự của node trong kịch bản mô phỏng. - Trace Level: mức theo dõi của tệp vết.
“AGT”: gói tin tầng ứng dụng.
“RTR” :gói tin định tuyến tầng mạng (routing).
“MAC”: gói tin trao đổi ở tầng MAC.
- Reason: lí do cho sự kiện (ví dụ “NRTE” là No RouTe Entry). - Packet Unique ID : ID của gói tin.
- Payload Type: dạng tải của gói tin. - Packet Size: kích thước gói tin.
- Time to Send Data: thời gian trễ dự kiến cần thiết để truyền gói tin trên mạng không dây được chỉ ra bởi các giao thức tầng MAC. - Destination MAC Address: địa chỉ MAC đích.
- Source MAC Address: địa chỉ MAC nguồn.
- Ethernet packet type: dạng gói tin (ví dụ IP là 800).
- Source IP Address, Source IP port : IP nguồn và cổng nguồn.