Condividi tramite


Cenni preliminari sulla protezione

Windows Communication Foundation (WCF) è una piattaforma di programmazione distribuita basata su messaggi SOAP. La protezione dei messaggi tra i client e i servizi è pertanto essenziale per garantire la protezione dei dati. WCF fornisce una piattaforma versatile e interoperativa per lo scambio di messaggi protetti basata sull'infrastruttura di protezione esistente e sugli standard di protezione riconosciuti per i messaggi SOAP.

WCF utilizza concetti che sono familiari a coloro che hanno creato applicazioni distribuite protette utilizzando tecnologie esistenti quali HTTPS, la protezione integrata di Windows o nomi utente e password per autenticare gli utenti. WCF non solo si integra alle infrastrutture di protezione esistenti, ma estende la protezione distribuita anche ai domini non Windows utilizzando messaggi SOAP protetti. WCF può essere considerato come un'implementazione di meccanismi di protezione esistenti, con l'ulteriore vantaggio di utilizzare il protocollo SOAP in aggiunta ai protocolli esistenti. Ad esempio, le credenziali che identificano un client o un servizio, quali nome utente e password o certificati X.509, hanno profili SOAP interoperativi basati su XML. Se si utilizzano questi profili, i messaggi vengono scambiati in modo protetto usufruendo dei vantaggi delle specifiche aperte quali le firme digitali e la crittografia XML. Per un elenco delle specifiche, vedere Protocolli di servizi Web supportati da associazioni di interoperabilità fornite dal sistema.

Un altro servizio parallelo è COM (Component Object Model) sulla piattaforma Windows, che consente applicazioni distribuite protette. COM dispone di un meccanismo di protezione completo mediante il quale il contesto di protezione può essere propagato tra i componenti. Questo meccanismo applica l'integrità, la riservatezza e l'autenticazione. Contrariamente a WCF, tuttavia, COM non consente la messaggistica protetta tra piattaforme diverse. Utilizzando WCF è possibile compilare servizi e client che si estendono da domini Windows su Internet. I messaggi interoperativi di WCF sono essenziali per la compilazione di servizi dinamici gestiti dall'azienda che garantiscono la protezione delle informazioni.

Vantaggi della protezione di Windows Communication Foundation

WCF è una piattaforma di programmazione distribuita basata su messaggi SOAP. Utilizzando WCF è possibile creare applicazioni che funzionano sia come servizi che come client di servizio, creando ed elaborando messaggi da un numero illimitato di altri servizi e client. In un'applicazione distribuita di questo tipo i messaggi possono fluire da nodo a nodo, attraverso firewall, su Internet e attraverso numerosi intermediari SOAP. Ciò introduce tutta una serie di rischi per la protezione dei messaggi. Negli esempi seguenti sono illustrate alcune minacce comuni che la protezione di WCF può consentire di mitigare quando si scambiano messaggi tra entità:

  • Osservazione del traffico di rete per ottenere informazioni riservate. In uno scenario di online banking, ad esempio, un cliente richiede il trasferimento di fondi da un conto a un altro. Un utente malintenzionato intercetta il messaggio e, disponendo del numero di conto e della password, esegue successivamente un trasferimento di fondi dal conto compromesso.
  • Entità non autorizzate che agiscono come servizi all'insaputa del cliente. In questo scenario un utente malintenzionato (l'entità non autorizzata) agisce come un servizio in linea e intercetta messaggi inviati dal cliente per ottenere informazioni riservate. L'entità non autorizzata utilizza quindi i dati rubati per trasferire fondi dal conto compromesso. Questo attacco è noto anche come attacco di phishing.
  • Modifica di messaggi per ottenere un risultato diverso da quello voluto dal chiamante. Ad esempio, la modifica del numero di conto nel quale viene effettuato un deposito consente il trasferimento di fondi in un conto non autorizzato.
  • Riproduzioni hacker in cui un hacker "nuisance" riproduce lo stesso ordine di acquisto. Ad esempio, una libreria in linea riceve centinaia di ordini e invia i libri a un cliente che non li ha ordinati.
  • Incapacità di un servizio di autenticare un client. In questo caso, il servizio non può assicurare che la transazione sia stata eseguita dalla persona appropriata.

In sintesi, la protezione del trasferimento fornisce le garanzie seguenti:

  • Autenticazione dell'endpoint servizio (rispondente).
  • Autenticazione dell'entità client (iniziatore).
  • Integrità del messaggio.
  • Riservatezza del messaggio.
  • Rilevamento riproduzione.

Integrazione con infrastrutture di protezione esistenti

Nelle distribuzioni di servizi Web sono spesso già presenti soluzioni di protezione quali Secure Sockets Layer (SSL) o il protocollo Kerberos. Alcune distribuzioni sfruttano un'infrastruttura di protezione che è già stata distribuita, come i domini Windows che utilizzano Active Directory. Spesso è necessario integrare le distribuzioni con queste tecnologie esistenti, nonché valutare e adottare nuove tecnologie.

La protezione di WCF si integra con i modelli di protezione del trasporto esistenti e può sfruttare l'infrastruttura esistente per modelli di protezione del trasferimento più recenti basati sulla protezione dei messaggi SOAP.

Integrazione con modelli di autenticazione esistenti

Un aspetto importante di qualsiasi modello di protezione della comunicazione è la possibilità di identificare e autenticare entità in comunicazione. Queste entità in comunicazione utilizzano "identità digitali", o credenziali, per l'autenticazione con i peer in comunicazione. Con l'evolversi delle piattaforme di comunicazione distribuite sono state implementate varie funzionalità di autenticazione delle credenziali e modelli di protezione correlati. Su Internet, ad esempio, l'utilizzo di un nome utente e di una password per identificare gli utenti è prassi comune. Sulla rete Intranet l'utilizzo di un controller di dominio Kerberos per eseguire il backup dell'autenticazione degli utenti e dei servizi sta diventando una prassi comune. In certi scenari, ad esempio tra due partner aziendali, i certificati possono essere utilizzati per l'autenticazione reciproca dei partner.

Così, nel mondo dei servizi Web, dove lo stesso servizio può essere esposto ai clienti interni dell'azienda così come a partner esterni o a clienti Internet, è importante che l'infrastruttura consenta l'integrazione con questi modelli di autenticazione della protezione esistenti. La protezione di WCF supporta un'ampia varietà di tipi di credenziali (modelli di autenticazione), tra cui:

  • Chiamante anonimo.
  • Credenziale client nome utente.
  • Credenziale client certificato.
  • Windows (sia protocollo Kerberos che NT LanMan [NTLM]).

Standard e interoperabilità

In un panorama caratterizzato da grandi distribuzioni esistenti, l'omogeneità è rara. Le piattaforme di calcolo/comunicazione distribuite devono poter interagire con le tecnologie offerte dai diversi fornitori. Anche la protezione deve essere quindi interoperativa.

Per consentire sistemi di protezione interoperativi, le aziende che operano nell'industria dei servizi Web hanno creato una serie di standard. Specificamente riguardo alla protezione sono stati proposti alcuni standard noti: WS-Security: SOAP Messagge Security (accettato tra gli standard OASIS e già noto come WS-Security), WS-Trust, WS-SecureConversation e WS-SecurityPolicy.

WCF supporta un'ampia varietà di scenari di interoperabilità. La classe BasicHttpBinding è è associata allo standard Basic Security Profile (BSP) e la classe WSHttpBinding è associata agli standard di protezione più recenti quali WS-Security 1.1 e WS-SecureConversation. Aderendo a questi standard, la protezione di WCF è in grado di interagire e integrarsi con servizi Web ospitati in sistemi operativi e piattaforme diverse da Microsoft Windows.

Aree funzionali della protezione di WCF

Il sistema di protezione di WCF si suddivide in tre aree funzionali: protezione del trasferimento, controllo di accesso e controllo. Nelle sezioni seguenti vengono descritte brevemente queste aree funzionali e vengono forniti collegamenti per ulteriori informazioni.

Protezione del trasferimento

La protezione del trasferimento comprende tre funzioni di protezione principali: integrità, riservatezza e autenticazione. Per integrità si intende la capacità di rilevare se un messaggio è stato manomesso. Per riservatezza si intende la capacità di rendere illeggibile un messaggio a qualsiasi utente diverso dal destinatario desiderato. A tale scopo viene utilizzata la crittografia. Per autenticazione si intende la capacità di verificare un'identità attestata. Nel complesso queste tre funzioni consentono di garantire che i messaggi vengano inviati in modo protetto da un punto a un altro.

Modalità di protezione del trasporto e dei messaggi

Per implementare la protezione del trasferimento in WCF vengono utilizzati due meccanismi principali: modalità di protezione del trasporto e modalità di protezione del messaggio.

  • Per ottenere la protezione del trasferimento la modalità di protezione del trasporto utilizza un protocollo a livello di trasporto, ad esempio HTTPS. La modalità di protezione del trasporto ha il vantaggio di essere ampiamente diffusa, disponibile su più piattaforme e meno complessa dal punto di vista computazionale. Ha tuttavia lo svantaggio di proteggere i messaggi solo da punto a punto.
  • Per implementare la protezione del trasferimento, la modalità di protezione del messaggio utilizza invece WS-Security (e altre specifiche). Poiché la protezione del messaggio viene applicata direttamente ai messaggi SOAP ed è contenuta negli elementi SOAP Envelope unitamente ai dati dell'applicazione, ha il vantaggio di essere indipendente dal protocollo di trasporto, di essere maggiormente estensibile e di garantire la protezione end-to-end (anziché point-to-point). Ha lo svantaggio di essere notevolmente più lenta rispetto alla modalità di protezione del trasporto perché deve trattare con la natura XML dei messaggi SOAP.

Per ulteriori informazioni su queste differenze, vedere Protezione di servizi e client.

Una terza modalità di protezione utilizza entrambe le modalità precedenti e sfrutta i vantaggi di entrambe. Questa modalità è detta TransportWithMessageCredential. In questa modalità la protezione del messaggio viene utilizzata per autenticare il client e la protezione del trasporto viene utilizzata per autenticare il server e fornire riservatezza e integrità dei messaggi. La modalità di protezione TransportWithMessageCredential è infatti veloce quasi quanto la modalità di protezione del trasporto e fornisce estensibilità per l'autenticazione client ugualmente alla modalità di protezione del messaggio. A differenza della modalità di protezione del messaggio, tuttavia, non fornisce la protezione end-to-end completa.

Controllo di accesso

Il controllo di accesso è anche noto come autorizzazione. L'autorizzazione consente a utenti diversi di disporre di privilegi diversi per visualizzare dati. Ad esempio, poiché i file relativi alle risorse umane di un'azienda contengono dati riservati sui dipendenti, la visualizzazione di questi dati è consentita soltanto ai dirigenti, che possono tuttavia visualizzare soltanto i dati relativi ai propri subalterni. In questo caso, il controllo di accesso è basato sia sul ruolo ("dirigente") che sull'identità specifica del dirigente (per impedire a un dirigente di accedere ai record relativi ai subalterni di un altro dirigente).

In WCF le funzionalità del controllo di accesso vengono fornite attraverso l'integrazione con la classe PrincipalPermissionAttribute CLR e attraverso un insieme di API noto come il modello di identità. Per informazioni dettagliate sul controllo di accesso e sull'autorizzazione basata sulle attestazioni, vedere Estensione della protezione.

Controllo

Per controllo si intende la registrazione degli eventi di protezione nel registro eventi di Windows. È possibile registrare eventi relativi alla protezione, ad esempio le operazioni di autenticazione riuscite o non riuscite. Per ulteriori informazioni, vedere Controllo degli eventi di protezione. Per informazioni dettagliate sulla programmazione, vedere Procedura: controllare gli eventi di protezione di Windows Communication Foundation.

Vedere anche

Riferimenti

PrincipalPermissionAttribute

Concetti

Protezione dei servizi
Associazioni e protezione
Controllo degli eventi di protezione
Indicazioni di protezione e procedure consigliate
Configurazione dei servizi tramite file di configurazione
Associazioni fornite dal sistema
Cenni preliminari sulla creazione di endpoint

Altre risorse

Scenari di protezione comuni
Protezione di servizi e client
Autenticazione
Autorizzazione
Federazione e token emessi
Estensione della protezione