| 62 | | * client singolo connesso a diversi BSS (anche independent?) |
| 63 | | * introduzione |
| 64 | | * obiettivi supplementari: basso overhead (costo intrinseco per il mantenimento) e |
| 65 | | portabilita' |
| 66 | | * livello a cui operare: pro/contro e trade-off tra efficienza |
| 67 | | * breve excursus delle soluzioni analizzate |
| 68 | | * livello di sistema operativo, sopra il firmware |
| 69 | | * descrizione |
| 70 | | * idea: il firmware offre primitive piu' elementari (anche legate a PHY) |
| 71 | | sfruttiamo il firmware a nostro piacimento! |
| 72 | | * il driver sara' in grado di gestire in un unico punto d'entrata le |
| 73 | | interfacce multiple offerte dal SO |
| 74 | | * rivisitazione di MAC, smanettandolo per i nostri sporchi fini |
| 75 | | (cambiamenti vigliacchi di BSSID mask, stato d'associazione, tipi di |
| 76 | | auth) |
| 77 | | * componente scheduler (-> interfacce virtuali) che pianifica le |
| 78 | | trasmissioni |
| 79 | | * -> riscrittura / patching del driver |
| 80 | | * all'esterno (-> idee generali) |
| 81 | | * lo sgamo del power-saving |
| 82 | | * pro |
| 83 | | * nessuna perdita di dati |
| 84 | | * power-saving e bufferizzazione dei dati da parte degli AP |
| 85 | | * buone prestazioni |
| 86 | | * reale associazione multipla -> nessun overhead per |
| 87 | | riautenticazione/riassociazione |
| 88 | | * si puo' non partire da zero (madwifi) |
| 89 | | * contro |
| 90 | | * grosso sforzo per l'implementazione |
| 91 | | * parziale :'-( reimplementazione di MAC per occuparsi di beghe causate |
| 92 | | dalla molteplicita' dei BSS (coordinamento, beacon persi, sottotipi di |
| 93 | | autenticazione/crittografia eventualmente differenti) |
| 94 | | * complessita' intrinseca dovuta al livello |
| 95 | | * firmware spesso solo binari |
| 96 | | * prestazioni non eccellenti |
| 97 | | * power-saving e obblighi temporali (TIM...) |
| 98 | | * troppo specifico |
| 99 | | * dipendenza dalla piattaforma -> portabilita' minima |
| 100 | | * necessita' di power saving |
| 101 | | * scarsa programmabilita' di parecchie implementazioni |
| 102 | | {{{ |
| 103 | | * livello utente, sopra il driver livello driver |
| 104 | | * portabilita' dovuta alle interfacce unificate |
| 105 | | * wext + wpasupplicant |
| 106 | | * ndis |
| 107 | | * overhead di questa soluzione |
| 108 | | * associazione (analisi costi) |
| 109 | | * sincronizzazione (analisi costi) |
| 110 | | * autenticazione (analisi costi) |
| 111 | | * autenticazione multipla - possibilita' e vantaggi effettivi (wext |
| 112 | | e wpa_supplicant) |
| 113 | | * ricezioni mancate ma comunque gestibili dai livelli di rete |
| 114 | | superiori (TCP) |
| 115 | | * conclusione sui costi |
| 116 | | * influenza della frequenza di swing sul troughput effettivo |
| 117 | | * idee implementative generali |
| 118 | | * virtualizzazione delle interfacce di rete (MAC address multipli) |
| 119 | | * gestione in maniera ottimale le scelte di swinging (QoS - priorita' |
| 120 | | delle comunicazioni, sincronizzazione, qualita' dei BSS ...) |
| | 75 | | * client singolo connesso a diversi BSS (anche independent?) |
| | 76 | * obiettivi supplementari |
| | 77 | . * basso overhead (costo intrinseco per il mantenimento) |
| | 78 | . * minimizzare la perdita di dati |
| | 79 | . * portabilita' |
| | 80 | . * facilita` implementativa |
| | 81 | : * virtualizzazione delle interfacce di rete (-> massima trasparenza): |
| | 82 | compliant a wext, con MAC address multipli, bridging/routing triviale, |
| | 83 | wpa_supplicant autentica agile |
| | 84 | |
| | 85 | * Scenario |
| | 86 | : * mezzo fisico partizionato in canali -> necessita` di sfruttarne |
| | 87 | : "contemporaneamente" + di 1 (spesso BSS differenti -> canali differenti) |
| | 88 | * standard |
| | 89 | | * introduzione ai concetti di autenticazione e associazione e alla loro |
| | 90 | | interrelazione (molteplicita` si/no ...) |
| | 91 | * imposizioni temporali |
| | 92 | : * sincronizzazione: beacon, timestamping, CFP ... |
| | 93 | : * mantenimento dell'autenticazione |
| | 94 | * powersaving |
| | 95 | : * notifica dello stato del CLI al AP (power-saving o no) |
| | 96 | : * bufferizzazione |
| | 97 | : * trasmissioni on-demand (PS-poll, TIM ...) |
| | 98 | * Linux Wireless Extensions |
| | 99 | . * interfacce unificate per i driver delle piattaforme GNU/Linux |
| | 100 | . * wireless tools a livello utente |
| | 101 | * implementazioni |
| | 102 | * architettura |
| | 103 | | livello di implementazione dello strato MAC, quasi tutto |
| | 104 | | e` nel firmware, a causa delle esigenze real-time precedentemente |
| | 105 | | menzionate, eccezion fatta per 802.11i (stato dell'autenticazione |
| | 106 | | mantenuto internamente). |
| | 107 | * distanza dallo standard |
| | 108 | | * preautenticazione non implementata da alcuno, probabile assenza di |
| | 109 | | strutture per supportare autenticazione multipla |
| | 110 | . * powersaving opzionale |
| | 111 | : * scarsa programmabilita` dei fw (ed eccezioni: atheros, forse broadcom) |
| | 112 | |
| | 113 | * caso reale |
| | 114 | * Atheros |
| | 115 | . * il chipset |
| | 116 | . * fw molto permissivo |
| | 117 | . * HAL (binarieta` e brevissima descrizione) |
| | 118 | * MADWiFi |
| | 119 | : * possibilita` offerte (modalita` multipla eterogenea) |
| | 120 | . * interfaccia verso l'alto |
| | 121 | |
| | 122 | * Soluzioni |
| | 123 | * trattasi di idee e non di SOLUZIONI FINALI |
| | 124 | : * introduzione sul livello a cui operare: pro/contro e trade-off tra |
| | 125 | : efficienza e portabilita`/facilita` implementativa |
| | 126 | |
| | 127 | * livello di sistema operativo, sopra il firmware |
| | 128 | * descrizione |
| | 129 | | * il firmware offre primitive piu' elementari (anche legate a PHY) |
| | 130 | | sfruttiamo il firmware a nostro piacimento! e riscriviamo/pacciamo un |
| | 131 | | driver |
| | 132 | : * il driver sara' in grado di gestire in un unico punto d'entrata le |
| | 133 | : interfacce multiple offerte dal SO |
| | 134 | | * rivisitazione di MAC, smanettandolo per i nostri sporchi fini |
| | 135 | | (cambiamenti vigliacchi di BSSID mask, stato d'associazione, tipi di |
| | 136 | | auth) |
| | 137 | | * lo sgamo del power-saving, la vigliaccheria, i buffer |
| | 138 | . * componente scheduler (-> interfacce virtuali wext compliant) che |
| | 139 | . pianifica le trasmissioni |
| | 140 | * pro |
| | 141 | : * nessuna perdita di dati |
| | 142 | . * power-saving e bufferizzazione dei dati da parte degli AP |
| | 143 | * buone prestazioni |
| | 144 | . * reale associazione multipla -> nessun overhead per |
| | 145 | . riautenticazione/riassociazione |
| | 146 | . * totale trasparenza grazie alle interfacce wext compliant |
| | 147 | . * si puo' non partire da zero (-> madwifi) |
| | 148 | * contro |
| | 149 | * grosso sforzo per l'implementazione |
| | 150 | . * parziale reimplementazione di MAC per occuparsi di beghe causate |
| | 151 | dalla molteplicita' dei BSS: |
| | 152 | . * tempistiche: sincronizzazione, rilevamento beacon persi ed eventuale |
| | 153 | . sfruttamento dei CFP. (beacon interval noti e mantenimento di informazioni |
| | 154 | . necessarie per ogni BSS) |
| | 155 | . * sottotipi di autenticazione/crittografia: mantenimento chiavi |
| | 156 | . (|di sessione), stato della crittografia e dell'autenticazione. |
| | 157 | . (getter e setter sugli attributi MIB relativi) |
| | 158 | . * complessita' intrinseca dovuta al livello implementativo |
| | 159 | . * firmware spesso solo binari, quindi probabile reverse engineering |
| | 160 | . * prestazioni non eccellenti, perche` limitate da power-saving e relativi |
| | 161 | . obblighi temporali (TIM...) {non posso proprio fare i miei comodi al 100%} |
| | 162 | * troppo specifico |
| | 163 | . * dipendenza dalla piattaforma fw -> portabilita' minima |
| | 164 | . * necessita' di power saving |
| | 165 | . * la soluzione dipende fortemente dal firmware di riferimento, scarsa |
| | 166 | . programmabilita' di parecchie implementazioni |
| | 167 | |
| | 168 | * livello utente, sopra il driver livello driver |
| | 169 | * descrizione |
| | 170 | : * idea: cheppalle riscriversi un driver, chissenefrega degli overhead, |
| | 171 | : lavoriamo pure a livello alto |
| | 172 | . * riassociazione ad ogni cambio di BSS |
| | 173 | . * GNU/Linux e Wireless Extensions come riferimento |
| | 174 | : * forse autenticazione multipla |
| | 175 | . * interfacce virtuali wext compliant (->) |
| | 176 | . * autenticazioni multiple a livelli superiori 802.1x (con wpa_supplicant) |
| | 177 | * pro |
| | 178 | . * facilita` implementativa |
| | 179 | . * totale trasparenza grazie alle interfacce wext compliant (in questo |
| | 180 | . la cosa e` non banale, per il livello implementativo e permette il |
| | 181 | . comodo uso di wpa_supplicant) |
| | 182 | . * portabilita' dovuta alle interfacce unificate |
| | 183 | * contro |
| | 184 | * dataloss [ma si puo` risolvere a livelli superiori (TCP, ATM)] |
| | 185 | : * latenze (|assai) ingenti (con|senza) autenticazione multipla |
| | 186 | * analisi costi vago in termini di ordini di grandezza: |
| | 187 | * associazione |
| | 188 | * sincronizzazione ~ 100 ms |
| | 189 | * autenticazione (PSK) |
| | 190 | |
| | 191 | : * Ottimizzazioni ulteriori (scelte di swinging) |
| | 192 | * obblighi temporali da rispettare [sincronizzazione] |
| | 193 | * costi dello switch |
| | 194 | * qualita' dei BSS (carico di lavoro, segnale) |
| | 195 | * caratteristiche delle comunicazioni (esigenze di interattivita` o meno, |
| | 196 | priorita' ...) -> politiche di QoS di 802.11e |
| | 197 | |
| | 198 | * Bibliografia |
| | 199 | * standard vari |
| | 200 | * la guida definitiva |
| | 201 | * madwifi |
| | 202 | * cisco (che fa figo) |
| | 203 | |
| | 204 | * Ringraziamenti |
| | 205 | * Vittorio Ghini, mentore |
| | 206 | * Luciano Bononi |
| | 207 | * Sam Leffler, autore di HAL (-> Atheros) |
| | 208 | * Jouni Malinen, autore di hostap e wpa_supplicant |
| | 209 | |
| | 210 | |
| | 211 | 8===D - - - |
| | 212 | |
| | 213 | "Non siamo mica dei tecnici" |
| | 214 | |