Vector khởi tạ o Initialization Vector (IV)

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

Trước khi tìm hiểu về thuật toán, ta phải đề cập đến mã hóa khóa một lần nữa. Như ta đã nói ở trước, độ dài nguyên bản của khóa là 40 bit, mà nhiều nhà sản xuất đã tăng lên thành 104 bit. Hiện nay nhiều nhà sản xuất đang tìm giải pháp để đưa lên thành bảo mật với khóa có chiều dài 128 bit. Điều gì sẽ xảy ra khi độ dài khóa tăng thêm 24 bit? Điều này nằm ở giá trị vector khởi tạo.

Có một vấn đề khi sử dụng giá trị khóa cố định. Mặc dù khóa có thể được cập nhật theo thời gian, nhưng nó thường được cố định để tránh làm tràn gói tin dữ liệu trong hệ thống. Thực tế thì tất cả các gói dữ liệu được mã hóa bằng một giá trị khóa giống nhau. Cứ cho là bạn chuẩn bị cho thuật toán RC4 làm việc với khóa của bạn như là “gdsaghywe”. Bạn có được kết quả mã hóa là “gggaggwhjeg”. Nhìn thì rất tốt và không thể giải mã được. Mặc dù vậy, nếu khóa là cố định, mọi thời điểm bạn sử dụng một đoạn text giống nhau “gdsaghywe” sau khi khởi tạo, bạn sẽ được một kết quả giống nhau. Theo một hướng nào đó, sẽ là tốt nếu bạn được một kết quả khác vào thời điểm nào đó, nhưng nó vẫn có thể giải mã được với một chút thủ thuật tinh tế. Thêm một điều rất quan trọng, là sẽ rất tồi tệ vì sẽ đưa cho kẻ muốn tấn công thêm thông tin. Nếu kẻ đó nắm được những byte mã hóa ở nhiều thời điểm, hắn sẽ biết được nguyên bản của đoạn dữ liệu đã được mã hóa.

Khả năng xảy ra những văn bản lặp đi lặp lại là có ích không? Như địa chỉ IP thường nằm ở những vị trí giống nhau ở một gói tin. Nếu bạn thấy những byte mã hóa giống nhau ở vị trí nào đấy. Bạn có thể biết thông báo đi đến từ những địa chỉ IP giống nhau (hoặc đi đến những địa chỉ IP giống nhau), bạn có thể nghĩ đến rất nhiều ví dụ, nhưng về cơ bản là bạn sẽ đưa những thông tin đó cho kẻ tấn công.

Giải pháp cho vấn đề này là vector khởi tạo (IV). Đây là một khái niệm khá đơn giản. Thay vì chỉ sử dụng khóa bí mật cố định để mã hóa gói tin, bạn có thể kết hợp khóa bí mật với 24 bit số thay đổi để các gói tin gửi đi. Các số phụ đó được gọi là IV và có tác dụng biến đổi 104 bit khóa thành 128 bit khóa. Quan điểm của chúng ta gọi 128 bit đó là tối thiểu vì giá trị của IV không phải là bí mật mà được truyền đi công khai trong một khung tin đã được mã hóa.

Để không sử dụng khóa cố định cho việc mã hóa, thì thực tế dùng khóa có giá trị khởi tạo bằng thuật toán RC4 là kết hợp khóa bí mật và IV, giống như ở hình .

Hình 2.4: Sử dụng vector khởi tạo IV

Bởi vì giá trị IV luôn luôn thay đổi, nên sử dụng khóa để mã hóa có thể thay đổi hiệu quả với mọi gói tin mặc dù dữ liệu đầu vào(văn bản không ở dạng không mã hóa) là giống nhau, thì dữ liệu mã hóa cũng luôn khác nhau.

Giá trị vector khởi tạo không phải bí mật. Trong thực tế, nó được truyền đi một cách công khai. Những kẻ tấn công có thể đọc được IP dễ dàng. Nhưng dù biết được giá trị IV cũng không có tác dụng nếu không biết giá trị bí mật của khóa. Để hiệu quả, các giá trị IV giống nhau sẽ không bao giờ được sử dụng hai lần với một khóa bí mật. Bởi vì khi kẻ tấn công biết được giá trị IV, hắn có thể đăng nhập được vào nếu giá trị đó được sử dụng lại lần nữa. Đó là cách tấn công cơ bản.

Đáng tiếc là IV của WEP trong chuẩn IEEE 802.11 chỉ có độ dài là 24 bit. Dường như đó là một con số khá dài, tuy nhiên theo một số tính toán thì như thế là chưa đủ. Một giá trị số dài 24 bit có giá trị từ 0 đến 16,777,216 nghĩa là có thể có 17 triệu giá trị của IV. Một điểm truy cập làm việc ở khoảng 11Mbps có khả năng phát hoặc nhận 700 gói tin có độ dài trung bình trong 1 giây. Nếu giá trị IV khác nhau sử dụng cho mỗi gói tin, thì tất cả các giá trị có thể sử dụng sẽ hết sau khoảng 7 tiếng. Và một số người thường thay đổi khóa của họ hàng ngày, nên giá trị IV sẽ bị dùng lại.

Có những trường hợp giá trị IV được dùng lài khác. Ví dụ như nhiều hệ thống luôn khởi động với một giá trị IV sau khi khởi động lại, và sau đó IV lại theo những trình tự giống nhau như được cập nhật cho mỗi gói tin. Nhiều hệ thống thay đổi giá trị IV cho phù hợp bằng các trình tự giả ngẫu nhiên – tức là một trình bề ngoài có vẻ ngẫu nhiên, nhưng luôn theo một số trình tự giống nhau. Nếu có 20 thiết bị truy cập vào buổi sáng, và chúng khởi động với cùng giá trị IV, và theo những trình tự giống nhau thì các giá IV đó sẽ xuất hiện 20 lần cho mỗi giá trị trong trình tự.

Có những vấn đề trong việc minh họa IV, đó là khó để thiết kế giao thức bảo mật cơ bản bằng mã hóa dòng bởi vì trạng thái bên trong của quá trình xử lý mã hóa không được khởi động lại theo chuỗi.

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