CHƯƠNG 3 GIAO THỨC BẢO MẬT MẠNG KHÔNG DÂY CHUẨN IEEE 802
3.4.3.2. CCMP được sử dụng như thế nào trong RSN
Phần này sẽ mô tả cách mà các gói tin trong mạng WiFi được mã hóa bằng cách sử dụng CCMP. Điều quan trọng đầu tiên là CCMP mã hóa dữ liệu ở mức MPDU. Có một MPDU cho mỗi cấu trúc truyền và chính MPDU có thể là kết quả của gói tin phân mảnh lớn hơn thông qua một lớp cao hơn, được gọi là MSDU.
a. Các bước trong mã hóa đường truyền.
Hình 3. cho thấy luồng dữ liệu từ MSDU tới MPDU và cuối cùng ra ngoài liên kết vô tuyến.
Dữ liệu đến MSDU và có thể được chia ra thành nhiều phần. Mỗi phần được hình thành vào một MPDU và được chuyển tới IEEE 802.11 header chứa địa chỉ nguồn, địa chỉ đích và các thông tin khác. Tại thời điểm này, mỗi MPDU được xử lý bằng các thuật toán CCMP để tạo ra một mã MPDU mới. Chỉ có một phần dữ liệu được mã hóa, không phải header. Nó cũng chèn thêm một số trường làm cho kết quả mã hóa MPDU dài hơn bản gốc 16 byte.
Tổng quan về các bước trong mã hóa một MPDU được thể hiện trong Hình 3. và được mô tả:
1. Bắt đầu với một MPDU không được mã hóa, đầy đủ với IEEE 802.11 MAC Header. Header bao gồm địa chỉ đích, nguồn nhưng giá trị của một số trường không được biết trước và được đặt là “0”. 2. Các MAC Header được tách ra khỏi MPDU và đặt qua một bên.
Thông tin từ Header được tách ra và được sử dụng trong khi tạo 8 byte giá trị MIC. Ở giai đoạn này, 8 byte CCMP Header được xây dựng để sau đó đưa vào MPDU.
3. Giá trị MIC được tính toán để bảo vệ CCMP Header, dữ liệu và một phần của IEEE 802.11 Header. Giá trị MIC được gắn thêm vào dữ liệu.
4. Sự kết hợp của dữ liệu và MIC được mã hóa, sau khi mã hóa CCMP Header được thêm vào trước.
5. Cuối cùng, MAC Header được phục hồi vào trước MPDU mới và MPDU đã sẵn sàng xếp hàng đợi để truyền. Việc truyền tải logic cần các thông tin của CCMP Header. Cho đến lúc truyền chỉ có MAC Header được cập nhật.
b. CCMP Header
Các CCMP Header phải được quyết định trước để mã hóa dữ liệu và truyền đi rõ ràng (tức là không mã hóa). CCMP Header có hai mục đích. Đầu tiên, nó cung cấp 48 bit PN (định danh gói) được sử dụng để chống tấn công Replay, cho phép người nhận lấy giá trị nonce đã được sử dụng trong mã hóa. Thứ 2, trong trường hợp multicast, nó nói cho người nhận khóa nhóm đã được dùng trường KeyID. Định dạng của CCMP Header là tương tự như được sử dụng cho TKIP Header. Điều này cố ý làm đơn giản hóa cho AP, cái mà cần được truyền đi từ nhóm hỗn hợp của TKIP và thiết bị di động CCMP. Định dạng này được thể hiện trong Hình 3.:
Hình 3. CCMP Header
Sáu bytes dành cho 48 bit giá trị PN, một byte để dự trữ và một byte còn lại để chứa các bit KeyID. Lưu ý rằng các bit kế tiếp tới các bit KeyID có giá trị là 1, giá trị này chỉ ra rằng các cấu trúc định dạng là RSN chứ không phải là định dạng WEP trước đó.
c. Tổng quan về cài đặt
Việc cài đặt của các khối CCMP có thể được xem như là một quá trình duy nhất với các đầu vào và đầu ra, như thể hiện trong Hình 3..
Hình 3. Mã hóa và giải mã với CCMP
Giai đoạn giải mã có đầu vào tương tự như giai đoạn mã hóa (trừ đầu vào MPDU được mã hóa). Điều này là do thông tin Header, bao gồm CCMP Header được truyền qua liên kết trong bản rõ và do đó có thể được rút ra bởi người nhận trước khi giải mã.
Việc cài đặt của CCMP (thể hiện trong Hình 3. như là một khối) phải lưu giữ một chuối đếm được gọi là Packet Number (PN). Điều này ngăn kẻ tấn công tái sử dụng một gói tin trước đó đã được gửi. PN có độ dài 48 bit, đủ lớn để đảm bảo nó không bị tràn. Và không bao giờ có hai gói tin được gửi đi với cùng một chuỗi giá trị. Tất nhiên nếu bạn tắt nguồn thiết bị và khởi động lại thì giá trị PN sẽ được reset, nhưng nó sẽ có một giá trị ngẫu nhiên khác và không tạo ra một mối đe dọa.
Hình 3. Khối mã hóa CCMP
Lưu ý rằng cách tính toán xảy ra trong hai giai đoạn: đầu tiên, MIC được tính và nối vào MPDU và sau đó toàn bộ MPDU (bao gồm cả MIC) được mã hóa và tạo ra kết quả. Hãy xem xét chi tiết tại mỗi bước.
Một MPDU được mã hóa có hai trường, hơn một MPDU không được mã hóa. Nó có CCMP Header và giá trị MIC. Trường MIC là 8 octet (64 bit). Lưu ý rằng MIC có kích thước bằng nửa khối AES nhưng đủ dài để làm giảm cơ hội giả mạo MIC thành công xuống dưới 1/1019.
Thứ tự của các trường trong mã hóa MPDU được thể hiện ở Hình 3. (CH = CCMP Header).
Hình 3. Mã hóa MPDU dưới CCMP