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
Mục đớch Thay đổi Điểm yếu được
khắc phục Toàn vẹn gúi
tin
Thờm giao thức toàn vẹn gúi tin để ngăn chặn việc giả mạo gúi tin, dựa trờn phần mềm chạy trờn vi xử lý tốn ớt năng lượng.
(3) Lựa chọn và sử
dụng IV
Thay đổi cỏch sử dụng IV và sử dụng lại IV
như một bộ đếm để tớnh ngược. (1) (3) Tạo khúa cho
mỗi gúi tin
Thay đổi khúa cho mỗi gúi tin.
(1)(2)(4) Kớch thước của
IV
Tăng kớch cỡ của IV để trỏnh lặp lại.
(1)(4) Quản lý khúa Thờm cơ chế phõn phối và thay đổi cỏc khúa
broadcast (4)
2.3.2.1.1. 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- Massege 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 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ú.
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ú.
2.3.2.1.2. 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).
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 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ó 2.3.2.1.3. 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ột sau 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 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ẽ 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 :
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
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