Phát hiện sửa đổi thông tin

Một phần của tài liệu Giao thức bảo mật WEP trong WLAN (Trang 61 - 62)

WEP có một cơ chế được thiết kế để ngăn ngừa thay đổi tin nhắn. Có thể sử dụng những cách thức phức tạp để sửa đổi thông báo. Nhiều người khi nghĩ về việc thay đổi nội dung của thông điệp đều nghĩ đến việc nội dung của thông điệp đó được thay đổi một cách rõ ràng. Ví dụ, việc thay đổi tài khoản ngân hàng được gửi tiền hoặc số tiền chuyển đến. Tuy nhiên, trong thực tế sửa đổi trên quy mô lớn sẽ rất khó vì cần phải đọc được thông điệp gốc và giả mạo nó.

Nếu không thể giải mã thông điệp, rõ ràng là sẽ khó khăn hơn trong việc sửa đổi bản thông tin được mã hóa. Tuy nhiên, trong trường hợp này có thể sửa đổi để trích xuất thông tin. Một bài báo kỹ thuật của Borisov et al. (2001) đề xuất một phương pháp để khai thác dữ liệu "bit flipping", trong đó một số bit mã hóa sẽ được thay đổi. Vị trí của IP header thường được biết đến vì sau khi mã hóa WEP không sắp xếp lại các vị trí byte. Bởi vì header IP có một trường là checksum, chỉ cần thay đổi một bit của header thì checksum sẽ thất bại. Tuy nhiên, nếu thay đổi bit trong trường checksum, có thể sẽ dẫn đến trùng khớp. Các nhà nghiên cứu đã chỉ ra rằng, nếu sửa một vài bit thích hợp thì khung IP có thể được chấp nhân, và dựa vào thông tin đáp ứng trở lại, họ cuối cùng có thể giải mã các phần của một khung.

Để ngăn chặn giả mạo, WEP bao gồm có một trường kiểm tra gọi là kiểm tra tính toàn vẹn giá trị (ICV). Chúng tôi xem lại phần trước về các định dạng frame. Ý tưởng về ICV là khá đơn giản: tính toán giá trị kiểm tra hoặc CRC (cyclic redundancy kiểm tra) trên tất cả các dữ liệu được mã hóa, thêm giá trị kiểm tra vào cuối dữ liệu, và sau đó mã hóa toàn bộ. Nếu một người nào đó thay đổi một chút trong bản mã, dữ liệu khi được giải mã sẽ không sẽ khoong có giá trị kiểm tra thích hợp và phát hiện là đã có sự sửa đổi. Vì ICV được mã hóa, nên không thể tính toán chính xác giá trị của nó để sửa đổi sao cho những thay đổi đã thực hiện trở nên thích hợp. ICV được sử dụng để bảo mật cho bản mã này.

Nhưng nếu kẻ tấn công biết khóa, hắn có thể sửa đổi dữ liệu và tính toán lại giá trị ICV trước khi mã hóa lại và gửi frame đi.

Một lần nữa Borisov et al. chỉ ra lỗ hổng về mặt logic. Phương pháp CRC được sử dụng để tính toán các ICV được gọi là một phương pháp tuyến tính. Với phương pháp này, bạn có thể dự đoán các bit trong ICV sẽ được thay đổi nếu bạn thay đổi chỉ một bit trong thông điệp. ICV là 32 bit. Hãy giả sử các thông điệp là 8.000 bit (1.000 byte) và bạn thay đổi ở 5.244 bit. Bạn có thể tính toán được các bit trong ICV bị thay đổi. Thường không chỉ một bit bị thay đổi nhưng sự kết hợp của các bit mà sẽ thay đổi. Lưu ý rằng ta sử dụng từ "thay đổi", không phải "đặt" hoặc "rõ ràng." Bạn không cần phải biết giá trị thực sự của văn bản, bạn chỉ cần biết rằng nếu bạn thay đổi giá trị của một số bit trong dữ liệu, bạn vẫn có thể giữ giá trị của ICV hợp lệ bằng cách thay đổi kết hợp một số bit của nó. Thật không may, bởi vì WEP hoạt động bằng cách XOR dữ liệu để có được bản mã, bit bị thay đổi sẽ tồn tại quá trình mã hóa. Flipping một bit trong bảng gốc sẽ dẫn đến thay đổi các bit tương tự trong bản mã, và ngược lại.

Giả thiết cho rằng các ICV được bảo vệ chỉ bởi khóa không còn được cho là đúng. giá trị thực tế của nó là bảo vệ, nhưng có thể thay đổi nhiều bit của nó. Có thể thay đổi các bit tương ứng với một sự thay đổi trong dữ liệu, như vậy hoàn toàn có thể đánh bại cơ chế bảo mật này. Thực tế là WEP không cung cấp bảo vệ hiệu quả chống lại bản mã sửa đổi.

Một phần của tài liệu Giao thức bảo mật WEP trong WLAN (Trang 61 - 62)