Specifica della sicurezza dei Servizi Web - una cronologia

Lo sviluppo della specifica di sicurezza dei servizi Web include informazioni sulla specifica di sicurezza dei servizi Web OASIS (Organization for the Advancement of Structured Information Standards). La specifica di sicurezza dei servizi Web OASIS serve come base per proteggere i servizi Web in WebSphere® Application Server.

Best practice: IBM® WebSphere Application Server supporta il modello di programmazione Java™ API for XML-Based Web Services (JAX-WS) e il modello di programmazione Java API for XML-based RPC (JAX- RPC ). JAX-WS è un modello di programmazione dei servizi web che estende le basi fornite dal modello di programmazione JAX- RPC. Il modello di programmazione JAX - WS semplifica lo sviluppo di servizi Web e client tramite il supporto di un modello di annotazioni basato sugli standard. Sebbene il modello di programmazione JAX- RPC e le relative applicazioni siano ancora supportati, è consigliabile sfruttare il modello di programmazione JAX-WS, facile da implementare, per sviluppare nuove applicazioni e client per servizi Web.
I vantaggi dell'utilizzo del modello di programmazione JAX - WS in WebSphere Application Server includono:
  • La configurazione della qualità del servizio (QoS) è semplificata quando si utilizzano le serie di politiche. Le serie di politiche combinano le impostazioni di configurazione, incluse quelle per il trasporto e la configurazione a livello di messaggio. Le serie di politiche e i bind generali possono essere riutilizzati in più applicazioni, rendendo i servizi Web QoS più utilizzabili.
  • WS - Security per JAX - WS è supportata sia in un ambiente gestito, come un contenitore Java EE , sia in ambienti non gestiti, come Java Platform, Standard Edition (Java SE 6). Inoltre, è disponibile un'API per abilitare WS - Security nel client JAX - WS.

Attività non OASIS

I servizi Web stanno ottenendo una rapida accettazione come una tecnologia praticabile per l'interoperabilità e l'integrazione. Tuttavia, la sicurezza dei servizi web è uno dei servizi di qualità fondamentale che rende l'adozione dei servizi web una soluzione commerciale e industriale praticabile per le imprese. IBM e Microsoft hanno pubblicato congiuntamente un articolo sulla sicurezza relativo ai servizi Web intitolato Security in a Web Services World: A Proposed Architecture and Roadmap. L'articolo illustra le seguenti specifiche iniziali e successive nella roadmap di sicurezza dei servizi Web proposta:
Sicurezza servizi Web
Questa specifica definisce come allegare una firma digitale, utilizzare la codifica e utilizzare i token di protezione nei messaggi SOAP.
WS-Policy
Questa specifica definisce il linguaggio utilizzato per descrivere i vincoli di sicurezza e la politica degli intermediari o degli endpoint.
WS - Trust
Questa specifica definisce un framework per i modelli di attendibilità per stabilire l'attendibilità tra i servizi Web.
WS - Privacy
Questa specifica definisce un modello di come esprimere una politica di riservatezza per un servizio Web e un richiedente.
WS-SecureConversation
Questa specifica definisce come scambiare e stabilire un contesto protetto, che deriva le chiavi di sessione tra i servizi Web.
Autorizzazione WS

Questa specifica definisce la normativa di autorizzazione per un servizio Web. Tuttavia, la specifica WS - Authorization non è stata pubblicata. L'implementazione esistente della sicurezza dei servizi Web si basa sui servizi Web per la specifica Java Platform, Enterprise Edition (Java EE) o Java Specification Requirements (JSR) 109. L'implementazione della sicurezza dei servizi web utilizza i controlli di autorizzazione basati sul ruolo Java EE . Per informazioni concettuali, leggere le informazioni sull'autorizzazione basata sul ruolo. Se si sviluppa un servizio Web che richiede i controlli di autorizzazione a livello di metodo, è necessario utilizzare i bean di sessione stateless per implementare il servizio Web. Per ulteriori informazioni, consultare la sezione relativa alla protezione delle applicazioni bean enterprise.

Se si sviluppa un servizio Web implementato come servlet, è possibile utilizzare un'autorizzazione a grana grossa o basata su URL nel contenitore Web. Tuttavia, in questa situazione, non Š possibile utilizzare l'identit ... dalla sicurezza dei servizi Web per i controlli di autorizzazione. È invece possibile utilizzare l'identità dal trasporto. Se si usa SOAP su HTTP, l'identità si trova nel trasporto HTTP.

La seguente figura mostra la relazione tra queste specifiche:

Relazione delle diverse specifiche
Nell'aprile 2002, IBM, Microsoft e VeriSign hanno proposto la specifica WS - Security (Web Services Security) sui loro siti Web, come illustrato dalla casella verde nella figura precedente. Questa specifica includeva le idee di base di un token di sicurezza, della firma digitale XML e della crittografia XML. La specifica ha definito anche il formato per i token nome utente e i token di sicurezza binari codificati. Dopo una discussione e un test di interoperabilità basato sulla specifica, sono stati evidenziati i seguenti problemi:
  • La specifica richiede che i processori della sicurezza dei servizi Web comprendano correttamente lo schema in modo che il processore distingua tra l'attributo ID per la codifica XML e la firma digitale XML.
  • La freschezza del messaggio, che indica se il messaggio è conforme ai vincoli di tempo predefiniti, non può essere determinata.
  • Le stringhe di password digerite non rafforzano la sicurezza.
Nell'agosto 2002, IBM, Microsoft e VeriSign hanno pubblicato il Web Services Security Addendum, che ha tentato di risolvere i problemi precedentemente elencati. Nell'addendum sono state prese in esame le soluzioni seguenti:
  • Richiedere un attributo ID globale per la firma XML e la codifica XML.
  • Utilizzare gli elementi di intestazione data / ora che indicano l'ora di creazione, ricezione o scadenza del messaggio.
  • Utilizzare le stringhe di password che sono digerite con una data / ora e nonce, che è un token generato casualmente.

Le specifiche per le blue box nella figura precedente sono state proposte da vari fornitori del settore e vari eventi di interoperabilità sono stati organizzati dai fornitori per verificare e perfezionare le specifiche proposte.

Attività OASIS

Nel giugno 2002, OASIS ha ricevuto una specifica di sicurezza dei servizi Web proposta da IBM, Microsoft e VeriSign. Il Web Services Security Technical Committee (WSS TC) è stato organizzato a OASIS subito dopo la presentazione. Il comitato tecnico comprendeva molte aziende, tra cui IBM, Microsoft, VeriSign, Sun Microsystems e BEA Systems.

Nel settembre 2002, WSS TC ha pubblicato la sua prima specifica, Web Services Security Core Specification, Working Draft 01. Questa specifica includeva il contenuto della specifica di sicurezza dei servizi Web originale e il relativo addendum.

La copertura del comitato tecnico divenne più ampia man mano che la discussione procedeva. Poiché la specifica principale di sicurezza dei servizi Web consente tipi arbitrari di token di sicurezza, le proposte sono state pubblicate come profili. I profili descrivevano il metodo per incorporare i token, inclusi i token Security Assertion Markup Language ( SAML ) e i token Kerberos incorporati nei messaggi Web Services Security. Successivamente, le definizioni dell'utilizzo dei token nome utente e dei token di sicurezza binari dell' X.509, che erano state definite nella specifica originale Web Services Security Specification, sono state suddivise nei profili.

WebSphere Application Server Versioni 5.0.2, 5.1e 5.1.1 supportano le seguenti specifiche:
  • Sicurezza dei servizi web: SOAP Message Security Draft 13 (in precedenza Web Services Security Core Specification)
  • Sicurezza dei servizi Web: Profilo token nome utente bozza 2
Nell'aprile 2004, la specifica Web Service Security (ufficialmente denominata Web Services Security: SOAP Message Security Version 1.0) è diventata la versione 1.0 standard OASIS. Inoltre, il token Username e i profili token X.509 sono specifiche della Versione 1.0 . WebSphere Application Server 6 e versioni successive supportano le seguenti specifiche di sicurezza dei servizi Web da OASIS:
Nel febbraio 2006, la specifica di Web Service Security principale è stata aggiornata ed è diventata lo standard OASIS della versione 1.1 . Inoltre, il token Username, il profilo token X.509 e il profilo token Kerberos sono stati aggiornati alle specifiche della Versione 1.1 . Parti delle seguenti specifiche di sicurezza dei servizi Web da OASIS sono supportate in WebSphere Application Server, in particolare la conferma della firma, l'intestazione codificata e i riferimenti di identificazione personale:

La seguente specifica descrive l'utilizzo dei token Kerberos rispetto alle specifiche di sicurezza dei messaggi di sicurezza dei servizi Web. La specifica definisce come utilizzare un token Kerberos per supportare l'autenticazione e la protezione dei messaggi: OASIS: Web Services Security Kerberos Token Profile 1.1 Specifica standard OASIS, 1 febbraio 2006.

Nel 2007, l'OASIS Web Services Secure Exchange Technical Committee (WS-SX) ha prodotto e approvato le seguenti specifiche. Parti di queste specifiche sono supportate da WebSphere Application Server Versione 7 e successive.

La seguente figura mostra le varie specifiche relative alla sicurezza dei servizi Web.

Specifiche OASIS

WebSphere Application Server fornisce anche la funzione plug-in per consentire ai provider di sicurezza di estendere la funzione di runtime e implementare alcune delle specifiche di livello superiore nello stack di sicurezza del servizio web. I punti plug-in sono esposti come SPI (Service Provider Programming Interfaces). Per ulteriori informazioni su queste SPI, consultare Implementazioni predefinite delle interfacce di programmazione del servizio di sicurezza dei servizi Web.

Sviluppo della specifica di sicurezza dei servizi Web 1.0

La specifica OASIS Web Services Security si basa sulle seguenti specifiche World Wide Web Consortium (W3C). La maggior parte delle specifiche W3C si trova nello stato consigliato del corpo standard.

Queste specifiche sono supportate in WebSphere Application Server nel contesto della sicurezza dei servizi Web. Ad esempio, è possibile firmare un messaggio SOAP specificando l'opzione di integrità nei descrittori di distribuzione. Esiste un'API (application programming interface) lato client che un'applicazione può utilizzare per attivare la sicurezza dei servizi Web per la protezione di un messaggio SOAP.

La specifica OASIS Web Services Security Versione 1.0 definisce i miglioramenti utilizzati per garantire l'integrità e la riservatezza dei messaggi. Fornisce inoltre un framework generale per l'associazione dei token di sicurezza con un messaggio SOAP. La specifica è progettata per essere estensibile per supportare più formati token di sicurezza. Il particolare utilizzo del token di sicurezza è indirizzato con il profilo del token di sicurezza.

Supporto di specifiche e profili in WebSphere Application Server

OASIS sta lavorando su vari profili. Per ulteriori informazioni, fare riferimento a Organizzazione per l'avanzamento dei comitati per gli standard delle informazioni strutturati.

Il seguente elenco include i profili bozza pubblicati e i lavori del comitato tecnico di sicurezza dei servizi Web OASIS in corso.

WebSphere Application Server non supporta questi profili:

  • Sicurezza dei servizi Web: SAML token profile 1.0
  • Sicurezza dei servizi Web: profilo token REL (Rights Expression Language) 1.0
  • Sicurezza dei Servizi Web: SOAP Messages with Attachments (SwA) profile 1.0
Funzione obsoleta: il supporto per Web Services Security draft 13 e Username token profile draft 2 è obsoleto in WebSphere Application Server 5.0.2, 5.1.0 e 5.1.1. Per informazioni sulla migrazione, consultare Migrazione delle applicazioni JAX- RPC con funzionalità di sicurezza Web Services dalla versione Java EE alla versione 1.3 alla versione 1.4.

Il formato del collegamento del messaggio SOAP con la sicurezza dei servizi Web nella sicurezza dei servizi Web versione 1.0 è stato modificato e non è compatibile con le bozze precedenti della specifica della sicurezza dei servizi Web OASIS. L'interoperabilità tra OASIS Web Services Security Versione 1.0 e le bozze di sicurezza dei servizi Web precedenti non è supportata. Tuttavia, è possibile eseguire un'applicazione che si basa sulla bozza 13 di sicurezza dei servizi Web su WebSphere Application Server Versione 6 e successive. L'applicazione pu interagire con un'applicazione che si basa sulla bozza 13 di sicurezza dei servizi Web su WebSphere Application Server Versione 5.0.2, 5.1 o 5.1.1.

WebSphere Application Server supporta la specifica OASIS Web Services Security draft 13 e OASIS Web Services Security 1.0 . Tuttavia, in WebSphere Application Server Versione 6 e successive, il supporto di OASIS Web Services Security draft 13 è obsoleto. Tuttavia, le applicazioni sviluppate utilizzando OASIS Web Services Security draft 13 su WebSphere Application Server 5.0.2, 5.1.0 e 5.1.1 possono essere eseguite su WebSphere Application Server Versione 6 e successive. Il supporto OASIS Web Services Security Versione 1.0 è disponibile solo per le applicazioni Java Platform, Enterprise Edition (Java EE) Versione 1.4 e successive. Il formato di configurazione per il descrittore di distribuzione e il collegamento è diverso dalle versioni precedenti di WebSphere Application Server. È necessario migrare le applicazioni esistenti a Java EE 1.4 e migrare la configurazione della sicurezza dei servizi Web nel formato WebSphere Application Server Versione 6.

Sviluppo di altre specifiche di sicurezza dei servizi Web

Le versioni aggiornate più recentemente delle seguenti specifiche di sicurezza dei servizi Web OASIS sono supportate in WebSphere Application Server nel contesto della sicurezza dei servizi Web:
  • WS - Trust Versione 1.3

    Il WS-Trust (Web Services Trust Language) utilizza i meccanismi di messaggistica sicura della sicurezza dei servizi Web per definire ulteriori primitive ed estensioni per l'emissione, lo scambio e la convalida dei token di sicurezza. WS - Trust consente l'emissione e la diffusione di credenziali all'interno di domini di attendibilità differenti. Questa specifica definisce i modi per stabilire, valutare la presenza e le relazioni di trust tra broker.

  • WS-SecureConversation Versione 1.3

    Il Web Services Secure Conversation Language ( WS-SecureConversation ) si basa sui modelli WS-Security e WS-Policy per fornire una comunicazione sicura tra i servizi. WS - Security si concentra sul modello di autenticazione del messaggio, ma non su un contesto di sicurezza, e quindi è soggetto a diverse forme di attacchi di sicurezza. Questa specifica definisce i meccanismi per stabilire e condividere i contesti di sicurezza e derivare le chiavi dai contesti di sicurezza, per consentire una conversazione sicura. Utilizzando il modello di estendibilità SOAP, le specifiche modulari basate su SOAP sono progettate per essere composte tra loro per fornire un ambiente di messaggistica completo.

  • WS-SecurityPolicy Versione 1.2

    La politica di sicurezza dei servizi Web (WS-Policy) fornisce un modello e una sintassi di scopo generale per descrivere e comunicare le politiche di un servizio Web. Le asserzioni WS - Policy esprimono le funzioni e i vincoli di un particolare servizio Web. WS-PolicyAttachments definisce diversi metodi per associare le espressioni WS-Policy ai servizi web (come WSDL). Le specifiche di Web Services Security sono state aggiornate in seguito alla ripubblicazione di WS-Security Policy nel luglio 2005, per riflettere i vincoli e le capacità dei servizi web che utilizzano WS-Security, WSTrust e WS-SecureConversation. WS-ReliableMessaging La politica è stata anche ripubblicata nel 2005 per esprimere le capacità e i vincoli dei servizi web che implementano WS-ReliableMessaging.

Attività WS-I (Web Services Interoperability Organization)

Web Services Interoperability Organization (WS-I) è un settore aperto per promuovere l'interoperabilità dei servizi Web tra fornitori, piattaforme, linguaggi di programmazione e applicazioni. L'organizzazione è un consorzio di aziende di diversi settori, tra cui IBM, Microsoft, Oracle, Sun, Novell, VeriSign, e Daimler Chrysler. WS-I ha sviluppato versioni BSP (Basic Security Profile) 1.0 e 1.1 . Le versioni BSP 1.0 e 1.1 sono costituite da una serie di specifiche di servizi Web non proprietari che chiariscono e ampliano tali specifiche per promuovere l'interoperabilità della sicurezza dei servizi Web tra le diverse implementazioni del fornitore.

WebSphere Application Server JAX - WS WS - Security supporta le seguenti specifiche: