Sommario Capitolo 1 3 Introduzione 3 Capitolo 2 9 Tecnologie wireless 9 2.1. WAP: standardizzazione e Internet 9 2.2. Statistiche e potenzialità: l e-commerce 11 2.2.1. WAP e il mobile commerce 13 2.3. Problemi tecnici ed economici 14 2.3.1. Problemi tecnici 14 2.3.2. Problemi economici 16 2.3.3. Servizi wireless di trasmissione dati 16 2.3.3.1. Short Message Service (SMS) 16 2.3.3.2. Connessione dial-up 17 2.3.3.3. Circuit Switched Data (CSD) 18 2.3.3.4. Unstructured Supplementary Services Data (USSD) 18 2.3.3.5. General Packet Radio Service (GPRS) 19 2.4. Cenni sull architettura WAP 20 2.4.1. I componenti dell architettura WAP 21 2.4.2. Il WAP Gateway 23 2.4.3. Critiche e punti irrisolti 24 2.4.4. Applicazioni 27 Capitolo 3 29 La sicurezza 29 3.1. La fiducia 29 3.1.1. Fiducia indiretta 30 3.1.2. Fiducia diretta 31 3.1.3. Fondamento della validità dei certificati 31 3.1.4. Responsabilità di una CA 33 339
3.2. La sicurezza 34 3.2.1. I quattro concetti base 34 3.2.2. Tecniche crittografiche 35 3.2.2.1. La crittografia simmetrica 36 3.2.2.2. La crittografia asimmetrica 36 3.2.2.3. L utilizzo pratico della crittografia 37 3.2.3. La firma digitale 39 3.2.4. Distribuzione sicura di certificati digitali 41 3.2.5. Richiesta di un certificato digitale 43 3.2.6. Difficoltà dell utente di fronte alla certificazione 44 3.3. SSL 3.0 44 3.3.1. Sequenza di handshake 44 3.3.2. I tre protocolli della sequenza di handshake 46 3.3.3. Crittanalisi e attacchi alla sicurezza 47 3.3.4. Attacchi pratici 50 Capitolo 4 53 PKI 53 4.1. Public Key Infrastructure 53 4.1.1. Funzioni assolte da una PKI 56 4.1.2. Certificato degli attributi 59 4.1.3. Timestamping 60 4.1.4. Catene di certificati e certificati incrociati 61 4.1.5. Estensioni 62 4.1.6. LDAP 63 4.1.7. CRL 66 4.1.7.1. Attributi 68 4.1.7.2. Punti di distribuzione 69 4.1.8. OCSP 69 4.1.9. VPN 70 4.2. VeriSign 71 4.2.1. L importanza dell interfaccia nella sicurezza 72 4.2.2. VeriSign e il mondo wireless 74 4.2.3. Mini-certificati per Gateway WAP 75 4.2.4. Certificazione del client wireless 77 340
4.2.5. Algoritmi crittografici per ambienti wireless 78 4.2.6. Il brevetto su RSA 78 Capitolo 5 81 L architettura WAP 81 5.1. Background 81 5.1.1. L architettura WWW 82 5.1.2. L architettura WAP 84 5.2. WAE (Wireless Application Environment) 86 5.2.1. Il modello 87 5.2.2. I componenti 89 5.2.2.1. User Agent 89 5.2.2.2. WML 90 5.2.2.3. WMLScript 91 5.2.2.4. Formato dei dati supportati dal WAE 93 5.2.2.5. Caratteristiche dello User Agent 93 5.2.2.6. Il trattamento delle immagini 94 5.3. WSP (Wireless Session Protocol) 95 5.3.1. Tipi di primitive e parametri 96 5.3.2. Servizi di sessione con connessione 97 5.3.3. Variabili di connessione o capabilities 97 5.4. WTP (Wireless Transaction Protocol) 98 5.4.1. Caratteristiche 99 5.4.2. Relazione con gli altri protocolli 99 5.4.3. Entità di gestione 100 5.4.4. Requisiti necessari del livello sottostante 100 5.5. WTLS (Wireless Transport Layer Security) 100 5.5.1. Il modello di sicurezza WAP 101 5.5.2. Il funzionamento su datagram 103 5.6. WDP (Wireless Datagram Protocol) 103 5.6.1. Profili WDP dipendenti dal portatore sottostante 105 5.7. Interoperabilità e futuri sviluppi 106 Capitolo 6 109 341
WML 109 6.1. WML 109 6.1.1. Panoramica dei costrutti base 109 6.1.1.1. Entità carattere 110 6.1.1.2. Elementi 110 6.1.1.3. Attributi 111 6.1.2. Tipi di dati 111 6.1.2.1. CDATA, PCDATA e NMTOKEN 111 6.1.2.2. Il tipo vdata 112 6.1.3. Lo stato e le variabili 113 6.1.4. La metafora organizzativa deck/card 115 6.1.4.1. L elemento wml 116 6.1.4.2. L elemento card 116 6.1.4.3. WML e URL 117 6.1.4.4. L elemento head 119 6.1.4.5. L elemento access 119 6.1.4.6. L elemento meta 119 6.1.4.7. L elemento template 120 6.1.4.8. L elemento timer 120 6.1.5. Eventi e navigazione 121 6.1.5.1. Lo stack di navigazione 122 6.1.5.2. L elemento go 123 6.1.5.3. L elemento do 126 6.1.5.4. L elemento anchor 127 6.1.5.5. L elemento select 129 6.1.5.6. L elemento input 131 6.1.5.7. L elemento fieldset 133 6.1.6. Formattazione del testo 133 6.1.6.1. Enfasi 134 6.1.6.2. Linee 134 6.1.6.3. L elemento p 134 6.1.6.4. L elemento br 135 6.1.6.5. L elemento table 135 6.1.6.6. L elemento img 137 Capitolo 7 139 Push WAP e SMS 139 7.1.1. Il Push Initiator e il Push Proxy Gateway 140 7.1.2. PPG 140 7.1.3. PAP 142 7.1.4. POTAP 144 7.1.5. Indirizzamento 144 342
7.1.6. Considerazioni sulla sicurezza 146 7.1.7. Dettagli sulla operazione di push 147 7.1.8. Differenze tra specifiche WAP 1.1 e WAP 1.2 148 7.1.9. Possibile implementazione di un PPG 149 7.2. SMS (Short Message Service) 150 7.2.1. Le pietre miliari di SMS 151 7.2.2. SMS e GSM 153 7.2.2.1. Il Centro Messaggi SMS (SMSC) 153 7.2.3. Il sistema GSM 154 7.2.4. UMTS (Universal Mobile Telecommunication System) 157 Capitolo 8 159 L applicazione 159 8.1. Obiettivi e software utilizzati 159 8.1.1. WAP Gateway: WAPLite 159 8.1.2. Certificato trial 161 8.1.3. Web server OpenSA 162 8.1.3.1. OpenSA 163 8.1.4. Installazione di OpenSA, JVM, JRE, JSDK, Jserv1.1 164 8.1.5. Finalmente la sicurezza 165 8.2. L applicazione realizzata 171 8.2.1. Specifica dei requisiti 171 8.2.2. Analisi dei requisiti 172 8.2.3. Progetto 174 8.2.4. Implementazione 181 8.2.4.1. Gestione delle sessioni 185 8.2.5. Risultato ottenuto 188 Capitolo 9 195 Conclusioni 195 9.1 Conclusioni su WAP 195 9.2 Conclusioni sull esperienza della Tesi 196 Appendice A 199 343
Definizioni e Abbreviazioni 199 A.1 Definizioni 199 A.2 Abbreviazioni 255 Appendice B 264 Dettagli modello WAP 264 B.1 Dettagli su WSP 264 B.1.1. Servizi di sessione con connessione 264 B.1.2. Servizi di sessione senza connessione 269 B.1.3. Struttura dell unità dati WSP: PDU 270 B.2. Dettagli su WTP 270 B.2.1. Servizi forniti ai livelli superiori 270 B.2.1.1. Classi di operazioni 271 B.2.2. Le caratteristiche del protocollo 272 B.2.2.1. Trasferimento messaggi 272 B.2.2.2. Identificatore di una transazione 275 B.2.2.3. Struttura e controllo delle PDU 276 B.2.2.4. Esempi 277 B.3. Dettagli su WTLS 279 B.3.1. Creazione di una connessione sicura 280 B.3.1.1. Le primitive SEC-Unitdata 280 B.3.2. La macchina a stati del WTLS 282 B.3.3. Record Protocol 288 B.3.3.1. Connection state 288 B.3.4. Livello Record 289 B.3.5. Specifiche del protocollo di handshake 291 B.3.6. Sottoprotocolli 292 B.3.6.1. Protocollo CipherSpec 293 B.3.6.2. Protocollo di Alert 293 B.3.6.3. Stabilità e resistenza dell handshake su datagram 291 B.4. Dettagli su WDP 299 B.4.1. Descrizione del protocollo 299 B.4.2. Definizione dei numeri di porta 300 Appendice C 301 XML 301 344
C.1. XML 301 C.1.1. Origine ed obiettivi 301 C.1.1.1. Relazione tra XML e SGML 303 C.1.1.2. Relazione tra XML e HTML 304 C.1.2. Le proprietà di XML 305 C.1.3. Quattro applicazioni base per XML 306 C.1.3.1. Migrazione tra database eterogenei 307 C.1.3.2. Distribuzione dei processi 308 C.1.3.3. Viste 308 C.1.3.4. Motori di ricerca 309 C.1.4. Struttura e sintassi 309 C.1.4.1. Struttura logica del linguaggio XML 310 C.1.4.2. Struttura fisica del linguaggio XML 311 C.1.4.3. Sintassi XML 313 C.1.4.4. Documenti XML validi e ben formati 313 C.1.5. DTD 314 C.1.5.1. Struttura della DTD 314 C.1.5.2. Dichiarazione di elementi 316 C.1.5.3. Tipi di dati 317 C.1.5.4. Attributi 318 C.1.5.5. Istruzioni, commenti e vocabolari 322 C.1.6. Spazio dei nomi XML (XML Namespace) 323 C.1.6.1. Creazione di nomi univoci tramite gli spazi dei nomi XML 324 C.1.6.2. Dichiarazione dello spazio dei nomi come URL e URN 325 Appendice D 327 WAP Gateway 327 D.1. Da Proxy Server HTTP a WAP Gateway 327 D.1.1. La struttura del WAP Gateway 327 D.1.2. I moduli del WAP Gateway 329 D.1.3. Conversione del proxy HTTP nel WAP Gateway 333 D.1.4. Test di performance del Gateway 333 D.2. WAP Gateway Kannel 335 D.2.1.1. Requisiti e funzionalità 335 D.2.1.2. Interfacce esterne 336 D.2.1.3. Componenti interni 337 D.2.1.4. Comunicazione tra componenti interni 338 D.2.2. Architettura del BearerBox 338 D.2.3. Cenni sull SmsBox 340 D.2.4. Cenni sul WapBox 341 345
Appendice E 343 UML 343 E.1. Motivazioni per la scelta di UML 343 E.2. Le tre prospettive 345 E.3. Tecniche descrittive di UML 346 E.3.1. Static Structure diagram 346 E.3.1.1. Class diagram 346 E.3.1.2. Object diagram 354 E.3.2. Use Case Diagram 355 E.3.3. Interaction diagram 356 E.3.3.1. Sequence diagram 356 E.3.3.2. Collaboration diagram 357 E.3.4. Package diagram e Collaboration 358 E.3.4.1. Package diagram 358 E.3.4.2. Collaboration 359 E.3.5. State diagram 359 E.3.6. Activity diagram 361 E.3.7. Physical diagram 363 Appendice F 365 F.1.1. Codici HTTP 365 F.1.1.1. Codici di informazione 365 F.1.1.2. Codici di successo 365 F.1.1.3. Codici di ridirezione 365 F.1.1.4. Errori del client 365 F.1.1.5. Errori del server 365 Sommario 367 346