Temporal Key Integrity Protocol
# Temporal Key Integrity Protocol

Nella sicurezza informatica TKIP (acronimo di Temporal Key Integrity Protocol) è un protocollo di cifratura che garantisce confidenzialità dei dati e, accoppiato ad un protocollo MIC noto come "Michael", anche la loro integrità. Fa parte dello standard IEEE 802.11i. La sua versione commerciale è conosciuta con il nome WPA.

## Caratteristiche

TKIP/MIC è stato pensato per sostituire il protocollo WEP, ed è stato creato affinché funzionassero su hardware compatibile con WEP. Ciò ha garantito fondamentalmente la possibilità di passare a WPA tramite aggiornamenti software.

TKIP si presenta come un algoritmo più robusto rispetto al WEP, anche se non può essere considerato totalmente sicuro. È però il meglio che si poteva ottenere a partire dall'hardware WEP.

TKIP/MIC ha alcune funzionalità:

* chiave per-station, a differenza del WEP, si crea una chiave per ogni stazione appartenente al BSS, quindi tutti i nodi wireless hanno chiavi diverse (ciò diminuisce l'ammontare di traffico cifrato con la stessa chiave);
* chiave per-packet, la chiave cambia pacchetto per pacchetto, quindi è molto difficile che vi siano due pacchetti cifrati con la medesima chiave;
* integrità, basata sull'algoritmo Michael, che si affianca all'ICV standard del WEP, ma molto più robusto;
* key refresh, se si verificano più di due MIC-failure in minuto, l'AP considera questo come un attacco, e de-associa il client eliminando le chiavi, quindi bisogna effettuare una nuova procedura di associazione, con la conseguente creazione di una nuova chiave.
* IV mixing, il seme per il cifrario RC4 non è la semplice concatenazione dell'IV e della PTK (chiave per-session), ma è derivato da due fasi di mixing dell'IV con la PTK e con il MAC address della stazione trasmittente.

Le chiavi possono derivare da 802.1x (quindi secondo lo standard 802.11i, ad esempio tramite server RADIUS) oppure basarsi su chiave pre-condivisa. A partire da questa chiave ogni nodo calcola una PMK (tramite hashing con l'SSID della rete) e poi calcola la PTK.

