SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Web Services Security



       Università Roma - Tor Vergata
- Corso di Laurea Specialistica in Informatica -
            Esame Sistemi Distribuiti

              Giuseppe Specchio
Introduzione
●   I servizi web si basano su messaggi SOAP
    scambiati via HTTP.
●   Il protocollo HTTP non è stato realizzato con
    l’obiettivo di creare connessioni sicure dal
    punto di vista della riservatezza e integrità
    dei dati e da solo non può offrire garanzie di
    scambio messaggi in modalità sicura.
●   Tuttavia sono state implementate alcune so-
    luzioni, come il protocollo SSL o sistemi di
    crittografia a chiave simmetrica e asimmetri-
    ca.
Obiettivi di sicurezza (1/2)
●   Autenticazione : è il processo che verifica
    l’identità di un’entità coinvolta nella
    transazione. Può essere implementato come
    una semplice username+password o con un
    più complicato riconoscimento biometrico
●   Disponibilità : una volta determinata
    l’autenticità di un’entità, bisogna verificarne i
    permessi, vedere quali attività è abilitata a
    svolgere e a quali risorse può accedere.
Obiettivi di sicurezza (2/2)
●   Integrità : è il processo che assicura che i
    messaggi non possono essere intercettati e
    alterati durante lo scambio fra entità.
●   Riservatezza : dati non solo non devono
    essere alterati,ma devono essere letti solo da
    chi ha il permesso di accedervi.
Informazioni di Messaggio
         SOAP Sicuro
1.che consentano di identificare l'entità o le
  entità interessate dal messaggio.
  (Autenticazione)
2. provino che le entità appartengono ai gruppi
  corretti.(Riservatezza)
3.provino che le entità godono dei diritti di
  accesso corretti.(Disponibilità)
4.stabiliscano che il messaggio non ha subito
  modifiche.(Integrità)
Sicurezza nel Web
●   Il protocollo Secure Socket Layer (SSL) si
    pone l’obiettivo di stabilire un canale sicuro,
    come un tunnel fra client e server.
                       1. il client si connette
                 2. il server invia il certificato
            3. il client invia la chiave crittografata
            4. Entrambe le parti usano la chiave
                durante la comunicazione
●   SSL garantisce gli obiettivi di autenticazione,
    integrità e riservatezza dei dati.
    L’autorizzazione può essere determinata
    automaticamente dall’autenticazione.
WS-Security
●   Per garantire i quattro aspetti della sicurezza
    Microsoft e IBM hanno elaborato le specifiche
    WS-Security.
Messaging Layer
●   Descrive le estensioni al protocollo SOAP
    per garantire uno scambio di messaggi
    sicuro.
●   WS-Security affronta il problema della
    protezione facendo ricorso a standard e
    specifiche esistenti: per l’autenticazione si
    utilizzano le specifiche Kerberos e X.509,
    oltre alla solita coppia username+password;
●   Le specifiche XML Encryption e XML
    Signature descrivono come crittografare e
    firmare il contenuto del messaggio XML.
Policy Layer
●   WS-Policy definisce un framework molto generale
    ed estensibile per i mittenti e destinatari per
    dichiarare le loro capacità e requisiti che
    interessano entrambe le parti.
●   WS-Trust definisce un modello per creare e gestire
    le relazioni fidate fra le parti. Comprende anche
    l’inclusione di terze parti e intermediari nelle
    relazioni di mediazione fidate.
●   WS-Privacy definisce invece un modello per
    richiedenti e serventi su come dichiarare le
    preferenze in fatto di privacy.
Federated Secure layer

●   WS-SecureConversation definisce un
    modello di autenticazione per autenticare i
    messaggi del richiedente e autenticare i
    servizi proposti al richiedente.
●   WS-Federation definisce come costruire vari
    scenari di mediazione utilizzando WS-
    Security, WS-Policy, WS- Trust e
    WSSecureConversation.
●   WS-Authorization definisce come le
    politiche di accesso sono gestite.
All’interno di WS-Security (1/2)
●   In WS-Security, all’interno dell’intestazione di
    SOAP (SOAP Header) sono trasportati i dati
    (o metadati) relativi alla protezione.
●   Nel caso di autenticazione tramite login e
    password viene utilizzato l’elemento
    UsernameToken.
●   Per i token di autenticazione binari, quali i
    ticket Keberos e le coppie chiavi pubbliche-
    private (X.509) si utilizza l’elemento
    BinarySecurityToken.
All’interno di WS-Security (2/2)
●   Se il messaggio è firmato, l’intestazione
    deve contenere informazioni su come è stato
    firmato il messaggio e su dove sono
    memorizzate le informazioni relative alla
    chiave. La chiave può essere nel messaggio
    o altrove, nel qual caso il messaggio conterrà
    un riferimento ad essa.
●   Dato che un messaggio SOAP può
    contenere più di un’intestazione, un
    intermediario capisce quale intestazione è
    destinata a lui grazie all’attributo actor
    univoco.
Autenticazione tramite
     username e password
<wsse:UsernameToken>
    <wsse:Username>giuseppe</wsse:Username>
    <wsse:Password Type=quot;wsse:PasswordTextquot;>
        password
    </wsse:Password>
</wsse:UsernameToken>
UsernameToken Schema

<xs:element name=quot;UsernameTokenquot;>
  <xs:complexType>
    <xs:sequence>
        <xs:element ref=quot;Usernamequot;/>
        <xs:element ref=quot;Passwordquot; minOccurs=quot;0quot;/>
    </xs:sequence>
    <xs:attribute name=quot;Idquot; type=quot;xs:IDquot;/>
    <xs:anyAttribute namespace=quot;##otherquot;/>
  </xs:complexType>
</xs:element>
Schema di autenticazione
         tramite certificati X.509
<xs:element name=quot;BinarySecurityTokenquot;>
 <xs:complexType>
  <xs:simpleContent>
   <xs:extension base=quot;xs:stringquot;>
     <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; />
     <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; />
     <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; />
     <xs:anyAttribute namespace=quot;##otherquot;
        processContents=quot;strictquot; />
   </xs:extension>
  </xs:simpleContent>     definisce il tipo di codifica utilizzata:
                          ●wsse:X509v3: un certificato X.509 versione 3.
 </xs:complexType>
</xs:element>             ●wsse:Kerberosv5TGT: un TGT, conforme alla

                          definizione della sezione 5.3.1 della specifica
                          Kerberos.
                          ●wsse:Kerberosv5ST: un Service Ticket, con-

                          forme alla definizione della sezione 5.3.1 della
                          specifica Kerberos.
Schema di autenticazione
          tramite certificati X.509
<xs:element name=quot;BinarySecurityTokenquot;>
 <xs:complexType>
  <xs:simpleContent>
   <xs:extension base=quot;xs:stringquot;>
     <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; />
     <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; />
     <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; />
     <xs:anyAttribute namespace=quot;##otherquot;
        processContents=quot;strictquot; />
   </xs:extension>
  </xs:simpleContent>     definisce la codifica utilizzata che può essere
 </xs:complexType>        impostata su wsse:Base64Binary o
</xs:element>             wsse:HexBinary.
Schema di autenticazione
        tramite certificati X.509
<xs:element name=quot;BinarySecurityTokenquot;>
 <xs:complexType>
  <xs:simpleContent>
   <xs:extension base=quot;xs:stringquot;>
     <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; />
     <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; />
     <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; />
     <xs:anyAttribute namespace=quot;##otherquot;
        processContents=quot;strictquot; />
   </xs:extension>
                         Esempio di Intestazione:
  </xs:simpleContent>
 </xs:complexType>       <wsse:BinarySecurityToken
</xs:element>               ValueType=quot;wsse:X509v3quot;
                            EncodingType=quot;wsse:Base64Binaryquot;
                            Id=quot;SecurityToken-f49bd662-59a0-
                                 401a-ab23-1aa12764184fquot;>
                         MIIHdjCCB...
                         </wsse:BinarySecurityToken>
Crittografia (1/2)
 ●   La crittografia si rende necessaria quando il
     contenuto del messaggio non deve essere
     intercettato, come nella trasmissione del
     codice di carta di credito.
<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
<soap:Envelope
  xmlns:soap=quot;http://schemas.xmlsoap.org/soap/envelope/quot;
  xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;>
  <soap:Header
    xmlns:wsse=quot;http://schemas.xmlsoap.org/ws/2002/07/secextquot;
    xmlns:wsu=quot;http://schemas.xmlsoap.org/ws/2002/07/utilityquot;>
    <wsu:Timestamp>
      <wsu:Created wsu:Id=quot;Id-3beeb885-16a4-4b65-b14c-0cfe6ad26800quot;>
        2007-12-15T00:26:15Z</wsu:Created>
      <wsu:Expires wsu:Id=quot;Id-10c46143-cb53-4a8e-9e83-ef374e40aa54quot;>
        2007-12-15T00:31:15Z</wsu:Expires>
    </wsu:Timestamp>
Crittografia (2/2)
 <wsse:Security soap:mustUnderstand=quot;1quot; >
  <xenc:ReferenceList>
   <xenc:DataReference URI=quot;#EncryptedContent-f6f50b24-3458-41d3-
     aac4-390f476f2e51quot;/>
   </xenc:ReferenceList>
   <xenc:ReferenceList>
    <xenc:DataReference URI=quot;#EncryptedContent-666b184a-a388-46cc-
      a9e3-06583b9d43b6quot;/>
    </xenc:ReferenceList>
 </wsse:Security>
</soap:Header>
<soap:Body>
<xenc:EncryptedData Id=quot;EncryptedContent-f6f50b24-3458-41d3-
  aac4-390f476f2e51quot; Type=quot;http://www.w3.org/2001/04/xmlenc#Contentquot;>
 <xenc:EncryptionMethod
   Algorithm=quot;http://www.w3.org/2001/04/xmlenc#tripledes-cbcquot; />
  <KeyInfo xmlns=quot;http://www.w3.org/2000/09/xmldsig#quot;>
   <KeyName>Chiave simmetrica</KeyName>
  </KeyInfo>
  <xenc:CipherData>
    <xenc:CipherValue>InmSSXQcBV5UiT...
       Y7RVZQqnPpZYMg==
    </xenc:CipherValue>
  </xenc:CipherData>
 </xenc:EncryptedData>
</soap:Body>
</soap:Envelope>
Conclusioni
●   WS-Security è uno standard studiato per realizzare
    comunicazioni sicure e autenticate tra web
    services.
●   Non vuole definire nuovi strumenti per la sicurezza,
    ma fornisce un metodo per includere nei messaggi
    SOAP gli strumenti di autenticazione e protezione
    già creati e utilizzati, come Kerberos, i certificati X.
    509 i sistemi di login e password.
●   Inoltre nello stesso messaggio possono essere
    indicati diversi tipi di protezione, interpretati poi dai
    vari destinatari.
Strumenti
●   toolkit IBM WebSphereSDK for Web
    Services v5.1 (WSDK) compreso di JVM di
    IBM
●   Plug-in per Eclipse per generare Web
    Dinamic Project Sicuri

Mais conteúdo relacionado

Semelhante a Web Services Security

Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...azuredayit
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - GateinJBug Italy
 
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerManuel Scapolan
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Special report digital identity security
Special report digital identity securitySpecial report digital identity security
Special report digital identity securityLuigi Dessi
 
Catasto Rumore Struttura Informatica
Catasto Rumore Struttura InformaticaCatasto Rumore Struttura Informatica
Catasto Rumore Struttura Informaticaconfrontamutui
 
Autenticazione in ambito REST
Autenticazione in ambito RESTAutenticazione in ambito REST
Autenticazione in ambito RESTsorrenro
 
socket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Pythonsocket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in PythonPyCon Italia
 

Semelhante a Web Services Security (20)

Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Public Key Infrastructure
Public Key InfrastructurePublic Key Infrastructure
Public Key Infrastructure
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - Gatein
 
Global azure2020 identityserver
Global azure2020 identityserverGlobal azure2020 identityserver
Global azure2020 identityserver
 
Mfa.intro
Mfa.introMfa.intro
Mfa.intro
 
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
 
Corso web services
Corso web servicesCorso web services
Corso web services
 
Workshop 20092019 Lepidio
Workshop 20092019 LepidioWorkshop 20092019 Lepidio
Workshop 20092019 Lepidio
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Special report digital identity security
Special report digital identity securitySpecial report digital identity security
Special report digital identity security
 
Catasto Rumore Struttura Informatica
Catasto Rumore Struttura InformaticaCatasto Rumore Struttura Informatica
Catasto Rumore Struttura Informatica
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
IPsec
IPsecIPsec
IPsec
 
IPsec
IPsecIPsec
IPsec
 
Autenticazione in ambito REST
Autenticazione in ambito RESTAutenticazione in ambito REST
Autenticazione in ambito REST
 
Owasp parte3
Owasp parte3Owasp parte3
Owasp parte3
 
Bach Per Chi Non C Era Parte I
Bach Per Chi Non C Era Parte IBach Per Chi Non C Era Parte I
Bach Per Chi Non C Era Parte I
 
socket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Pythonsocket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Python
 

Web Services Security

  • 1. Web Services Security Università Roma - Tor Vergata - Corso di Laurea Specialistica in Informatica - Esame Sistemi Distribuiti Giuseppe Specchio
  • 2. Introduzione ● I servizi web si basano su messaggi SOAP scambiati via HTTP. ● Il protocollo HTTP non è stato realizzato con l’obiettivo di creare connessioni sicure dal punto di vista della riservatezza e integrità dei dati e da solo non può offrire garanzie di scambio messaggi in modalità sicura. ● Tuttavia sono state implementate alcune so- luzioni, come il protocollo SSL o sistemi di crittografia a chiave simmetrica e asimmetri- ca.
  • 3. Obiettivi di sicurezza (1/2) ● Autenticazione : è il processo che verifica l’identità di un’entità coinvolta nella transazione. Può essere implementato come una semplice username+password o con un più complicato riconoscimento biometrico ● Disponibilità : una volta determinata l’autenticità di un’entità, bisogna verificarne i permessi, vedere quali attività è abilitata a svolgere e a quali risorse può accedere.
  • 4. Obiettivi di sicurezza (2/2) ● Integrità : è il processo che assicura che i messaggi non possono essere intercettati e alterati durante lo scambio fra entità. ● Riservatezza : dati non solo non devono essere alterati,ma devono essere letti solo da chi ha il permesso di accedervi.
  • 5. Informazioni di Messaggio SOAP Sicuro 1.che consentano di identificare l'entità o le entità interessate dal messaggio. (Autenticazione) 2. provino che le entità appartengono ai gruppi corretti.(Riservatezza) 3.provino che le entità godono dei diritti di accesso corretti.(Disponibilità) 4.stabiliscano che il messaggio non ha subito modifiche.(Integrità)
  • 6. Sicurezza nel Web ● Il protocollo Secure Socket Layer (SSL) si pone l’obiettivo di stabilire un canale sicuro, come un tunnel fra client e server. 1. il client si connette 2. il server invia il certificato 3. il client invia la chiave crittografata 4. Entrambe le parti usano la chiave durante la comunicazione ● SSL garantisce gli obiettivi di autenticazione, integrità e riservatezza dei dati. L’autorizzazione può essere determinata automaticamente dall’autenticazione.
  • 7. WS-Security ● Per garantire i quattro aspetti della sicurezza Microsoft e IBM hanno elaborato le specifiche WS-Security.
  • 8. Messaging Layer ● Descrive le estensioni al protocollo SOAP per garantire uno scambio di messaggi sicuro. ● WS-Security affronta il problema della protezione facendo ricorso a standard e specifiche esistenti: per l’autenticazione si utilizzano le specifiche Kerberos e X.509, oltre alla solita coppia username+password; ● Le specifiche XML Encryption e XML Signature descrivono come crittografare e firmare il contenuto del messaggio XML.
  • 9. Policy Layer ● WS-Policy definisce un framework molto generale ed estensibile per i mittenti e destinatari per dichiarare le loro capacità e requisiti che interessano entrambe le parti. ● WS-Trust definisce un modello per creare e gestire le relazioni fidate fra le parti. Comprende anche l’inclusione di terze parti e intermediari nelle relazioni di mediazione fidate. ● WS-Privacy definisce invece un modello per richiedenti e serventi su come dichiarare le preferenze in fatto di privacy.
  • 10. Federated Secure layer ● WS-SecureConversation definisce un modello di autenticazione per autenticare i messaggi del richiedente e autenticare i servizi proposti al richiedente. ● WS-Federation definisce come costruire vari scenari di mediazione utilizzando WS- Security, WS-Policy, WS- Trust e WSSecureConversation. ● WS-Authorization definisce come le politiche di accesso sono gestite.
  • 11. All’interno di WS-Security (1/2) ● In WS-Security, all’interno dell’intestazione di SOAP (SOAP Header) sono trasportati i dati (o metadati) relativi alla protezione. ● Nel caso di autenticazione tramite login e password viene utilizzato l’elemento UsernameToken. ● Per i token di autenticazione binari, quali i ticket Keberos e le coppie chiavi pubbliche- private (X.509) si utilizza l’elemento BinarySecurityToken.
  • 12. All’interno di WS-Security (2/2) ● Se il messaggio è firmato, l’intestazione deve contenere informazioni su come è stato firmato il messaggio e su dove sono memorizzate le informazioni relative alla chiave. La chiave può essere nel messaggio o altrove, nel qual caso il messaggio conterrà un riferimento ad essa. ● Dato che un messaggio SOAP può contenere più di un’intestazione, un intermediario capisce quale intestazione è destinata a lui grazie all’attributo actor univoco.
  • 13. Autenticazione tramite username e password <wsse:UsernameToken> <wsse:Username>giuseppe</wsse:Username> <wsse:Password Type=quot;wsse:PasswordTextquot;> password </wsse:Password> </wsse:UsernameToken>
  • 14. UsernameToken Schema <xs:element name=quot;UsernameTokenquot;> <xs:complexType> <xs:sequence> <xs:element ref=quot;Usernamequot;/> <xs:element ref=quot;Passwordquot; minOccurs=quot;0quot;/> </xs:sequence> <xs:attribute name=quot;Idquot; type=quot;xs:IDquot;/> <xs:anyAttribute namespace=quot;##otherquot;/> </xs:complexType> </xs:element>
  • 15. Schema di autenticazione tramite certificati X.509 <xs:element name=quot;BinarySecurityTokenquot;> <xs:complexType> <xs:simpleContent> <xs:extension base=quot;xs:stringquot;> <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; /> <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; /> <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; /> <xs:anyAttribute namespace=quot;##otherquot; processContents=quot;strictquot; /> </xs:extension> </xs:simpleContent> definisce il tipo di codifica utilizzata: ●wsse:X509v3: un certificato X.509 versione 3. </xs:complexType> </xs:element> ●wsse:Kerberosv5TGT: un TGT, conforme alla definizione della sezione 5.3.1 della specifica Kerberos. ●wsse:Kerberosv5ST: un Service Ticket, con- forme alla definizione della sezione 5.3.1 della specifica Kerberos.
  • 16. Schema di autenticazione tramite certificati X.509 <xs:element name=quot;BinarySecurityTokenquot;> <xs:complexType> <xs:simpleContent> <xs:extension base=quot;xs:stringquot;> <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; /> <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; /> <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; /> <xs:anyAttribute namespace=quot;##otherquot; processContents=quot;strictquot; /> </xs:extension> </xs:simpleContent> definisce la codifica utilizzata che può essere </xs:complexType> impostata su wsse:Base64Binary o </xs:element> wsse:HexBinary.
  • 17. Schema di autenticazione tramite certificati X.509 <xs:element name=quot;BinarySecurityTokenquot;> <xs:complexType> <xs:simpleContent> <xs:extension base=quot;xs:stringquot;> <xs:attribute name=quot;Idquot; type=quot;xs:IDquot; /> <xs:attribute name=quot;ValueTypequot; type=quot;xs:QNamequot; /> <xs:attribute name=quot;EncodingTypequot; type=quot;xs:QNamequot; /> <xs:anyAttribute namespace=quot;##otherquot; processContents=quot;strictquot; /> </xs:extension> Esempio di Intestazione: </xs:simpleContent> </xs:complexType> <wsse:BinarySecurityToken </xs:element> ValueType=quot;wsse:X509v3quot; EncodingType=quot;wsse:Base64Binaryquot; Id=quot;SecurityToken-f49bd662-59a0- 401a-ab23-1aa12764184fquot;> MIIHdjCCB... </wsse:BinarySecurityToken>
  • 18. Crittografia (1/2) ● La crittografia si rende necessaria quando il contenuto del messaggio non deve essere intercettato, come nella trasmissione del codice di carta di credito. <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <soap:Envelope xmlns:soap=quot;http://schemas.xmlsoap.org/soap/envelope/quot; xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;> <soap:Header xmlns:wsse=quot;http://schemas.xmlsoap.org/ws/2002/07/secextquot; xmlns:wsu=quot;http://schemas.xmlsoap.org/ws/2002/07/utilityquot;> <wsu:Timestamp> <wsu:Created wsu:Id=quot;Id-3beeb885-16a4-4b65-b14c-0cfe6ad26800quot;> 2007-12-15T00:26:15Z</wsu:Created> <wsu:Expires wsu:Id=quot;Id-10c46143-cb53-4a8e-9e83-ef374e40aa54quot;> 2007-12-15T00:31:15Z</wsu:Expires> </wsu:Timestamp>
  • 19. Crittografia (2/2) <wsse:Security soap:mustUnderstand=quot;1quot; > <xenc:ReferenceList> <xenc:DataReference URI=quot;#EncryptedContent-f6f50b24-3458-41d3- aac4-390f476f2e51quot;/> </xenc:ReferenceList> <xenc:ReferenceList> <xenc:DataReference URI=quot;#EncryptedContent-666b184a-a388-46cc- a9e3-06583b9d43b6quot;/> </xenc:ReferenceList> </wsse:Security> </soap:Header> <soap:Body> <xenc:EncryptedData Id=quot;EncryptedContent-f6f50b24-3458-41d3- aac4-390f476f2e51quot; Type=quot;http://www.w3.org/2001/04/xmlenc#Contentquot;> <xenc:EncryptionMethod Algorithm=quot;http://www.w3.org/2001/04/xmlenc#tripledes-cbcquot; /> <KeyInfo xmlns=quot;http://www.w3.org/2000/09/xmldsig#quot;> <KeyName>Chiave simmetrica</KeyName> </KeyInfo> <xenc:CipherData> <xenc:CipherValue>InmSSXQcBV5UiT... Y7RVZQqnPpZYMg== </xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </soap:Body> </soap:Envelope>
  • 20. Conclusioni ● WS-Security è uno standard studiato per realizzare comunicazioni sicure e autenticate tra web services. ● Non vuole definire nuovi strumenti per la sicurezza, ma fornisce un metodo per includere nei messaggi SOAP gli strumenti di autenticazione e protezione già creati e utilizzati, come Kerberos, i certificati X. 509 i sistemi di login e password. ● Inoltre nello stesso messaggio possono essere indicati diversi tipi di protezione, interpretati poi dai vari destinatari.
  • 21. Strumenti ● toolkit IBM WebSphereSDK for Web Services v5.1 (WSDK) compreso di JVM di IBM ● Plug-in per Eclipse per generare Web Dinamic Project Sicuri