Servizi Web - Sicurezza
La sicurezza è fondamentale per i servizi web. Tuttavia, né le specifiche XML-RPC né SOAP impongono requisiti espliciti di sicurezza o autenticazione.
Esistono tre problemi di sicurezza specifici con i servizi Web:
- Confidentiality
- Authentication
- Sicurezza della rete
Riservatezza
Se un client invia una richiesta XML a un server, possiamo garantire che la comunicazione rimanga riservata?
La risposta sta qui -
- XML-RPC e SOAP vengono eseguiti principalmente su HTTP.
- HTTP ha il supporto per Secure Sockets Layer (SSL).
- La comunicazione può essere crittografata tramite SSL.
- SSL è una tecnologia collaudata e ampiamente utilizzata.
Un singolo servizio Web può essere costituito da una catena di applicazioni. Ad esempio, un servizio di grandi dimensioni potrebbe legare insieme i servizi di altre tre applicazioni. In questo caso, SSL non è adeguato; i messaggi devono essere crittografati in ogni nodo lungo il percorso del servizio e ogni nodo rappresenta un potenziale anello debole della catena. Al momento, non esiste una soluzione concordata a questo problema, ma una soluzione promettente è lo standard di crittografia XML W3C. Questo standard fornisce una struttura per crittografare e decrittografare interi documenti XML o solo parti di un documento XML. Puoi verificarlo su www.w3.org/Encryption
Autenticazione
Se un client si connette a un servizio web, come identifichiamo l'utente? L'utente è autorizzato a utilizzare il servizio?
Le seguenti opzioni possono essere prese in considerazione ma non c'è un chiaro consenso su uno schema di autenticazione forte.
HTTP include il supporto integrato per l'autenticazione Basic e Digest, e quindi i servizi possono essere protetti più o meno allo stesso modo in cui i documenti HTML sono attualmente protetti.
SOAP Digital Signature (SOAP-DSIG) sfrutta la crittografia a chiave pubblica per firmare digitalmente i messaggi SOAP. Consente al client o al server di convalidare l'identità dell'altra parte. Controllalo su www.w3.org/TR/SOAP-dsig .
L'Organizzazione per l'avanzamento degli standard di informazioni strutturate (OASIS) sta lavorando al Security Assertion Markup Language (SAML).
Sicurezza della rete
Al momento non esiste una risposta facile a questo problema ed è stato oggetto di molti dibattiti. Per ora, se sei veramente intenzionato a filtrare i messaggi SOAP o XML-RPC, una possibilità è filtrare tutte le richieste HTTP POST che impostano il tipo di contenuto su text / xml.
Un'altra alternativa è filtrare l'attributo dell'intestazione HTTP SOAPAction. I fornitori di firewall stanno attualmente sviluppando strumenti progettati esplicitamente per filtrare il traffico dei servizi web.