Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Windows Communication Foundation (WCF) ha due modalità principali per garantire la sicurezza (Transport
e Message
) e una terza modalità (TransportWithMessageCredential
) che combina i due. Questo argomento illustra la sicurezza dei messaggi e i motivi per usarlo.
Che cos'è la sicurezza dei messaggi?
La sicurezza dei messaggi usa la specifica WS-Security per proteggere i messaggi. La specifica WS-Security descrive i miglioramenti apportati alla messaggistica SOAP per garantire la riservatezza, l'integrità e l'autenticazione a livello di messaggio SOAP (anziché a livello di trasporto).
In breve, la sicurezza dei messaggi differisce dalla sicurezza del trasporto incapsulando le credenziali di sicurezza e le attestazioni con ogni messaggio insieme a qualsiasi protezione dei messaggi (firma o crittografia). L'applicazione della sicurezza direttamente al messaggio, attraverso la modifica del suo contenuto, consente al messaggio protetto di essere auto-contenuto per quanto riguarda gli aspetti di sicurezza. Ciò consente alcuni scenari che non sono possibili quando viene utilizzata la sicurezza del trasporto.
Motivi per usare la sicurezza dei messaggi
Nella sicurezza a livello di messaggio tutte le informazioni di sicurezza vengono incapsulate nel messaggio. La protezione del messaggio con la sicurezza a livello di messaggio anziché la sicurezza a livello di trasporto presenta i vantaggi seguenti:
Sicurezza end-to-end. La sicurezza del trasporto, ad esempio SECURE Sockets Layer (SSL) protegge solo i messaggi quando la comunicazione è da punto a punto. Se il messaggio viene instradato a uno o più intermediari SOAP (ad esempio un router) prima di raggiungere il ricevitore finale, il messaggio stesso non è protetto dopo che un intermediario lo legge dal cavo. Inoltre, le informazioni di autenticazione client sono disponibili solo per il primo intermediario e devono essere ritrasmessi al ricevitore finale in modalità fuori banda, se necessario. Questo vale anche se l'intera route usa la sicurezza SSL tra singoli hop. Poiché la sicurezza dei messaggi funziona direttamente con il messaggio e protegge il codice XML, la sicurezza rimane con il messaggio indipendentemente dal numero di intermediari coinvolti prima che raggiunga il ricevitore finale. Ciò consente un vero scenario di sicurezza end-to-end.
Maggiore flessibilità. Le parti del messaggio, anziché l'intero messaggio, possono essere firmate o crittografate. Ciò significa che gli intermediari possono visualizzare le parti del messaggio che sono destinate a loro. Se il mittente deve rendere visibili le informazioni nel messaggio agli intermediari, ma vuole assicurarsi che non venga manomesso, può semplicemente firmarlo ma lasciarlo non crittografato. Poiché la firma fa parte del messaggio, il ricevitore finale può verificare che le informazioni nel messaggio siano state ricevute intatte. Uno scenario potrebbe avere un servizio intermedio SOAP che indirizza il messaggio in base al valore dell'intestazione Azione. Per impostazione predefinita, WCF non crittografa il valore azione ma lo firma se viene usata la sicurezza dei messaggi. Pertanto, queste informazioni sono disponibili per tutti gli intermediari, ma nessuno può modificarlo.
Supporto per più trasporti. È possibile inviare messaggi protetti su molti trasporti diversi, ad esempio named pipe e TCP, senza dover fare affidamento sul protocollo per la sicurezza. Con la sicurezza a livello di trasporto, tutte le informazioni di sicurezza hanno come ambito una singola connessione di trasporto specifica e non sono disponibili dal contenuto del messaggio stesso. La sicurezza dei messaggi rende il messaggio sicuro indipendentemente dal trasporto usato per trasmettere il messaggio e il contesto di sicurezza viene incorporato direttamente all'interno del messaggio.
Supporto per un ampio set di credenziali e attestazioni. La sicurezza dei messaggi si basa sulla specifica WS-Security, che fornisce un framework estendibile in grado di trasmettere qualsiasi tipo di attestazione all'interno del messaggio SOAP. A differenza della sicurezza del trasporto, il set di meccanismi di autenticazione o attestazioni che è possibile usare non è limitato dalle funzionalità di trasporto. La sicurezza dei messaggi WCF include più tipi di autenticazione e trasmissione di attestazioni e può essere estesa per supportare tipi aggiuntivi in base alle esigenze. Per questi motivi, ad esempio, uno scenario di credenziali federate non è possibile senza sicurezza dei messaggi. Per altre informazioni sugli scenari di federazione supportati da WCF, vedere Federazione e token emessi.
Confronto tra messaggi e sicurezza del trasporto
Vantaggi e svantaggi della sicurezza di Transport-Level
La sicurezza del trasporto presenta i vantaggi seguenti:
Non richiede che le parti di comunicazione comprendano i concetti di sicurezza a livello XML. Ciò può migliorare l'interoperabilità, ad esempio quando HTTPS viene usato per proteggere la comunicazione.
Prestazioni generalmente migliorate.
Sono disponibili acceleratori hardware.
Lo streaming è possibile.
La sicurezza del trasporto presenta i seguenti svantaggi:
Solo comunicazione hop-to-hop
Set limitato e inestensibile di credenziali.
Dipendente dal trasporto.
Svantaggi della sicurezza di Message-Level
La sicurezza dei messaggi presenta i seguenti svantaggi:
Prestazioni
Impossibile usare lo streaming dei messaggi.
Richiede l'implementazione di meccanismi di sicurezza a livello XML e il supporto per la specifica WS-Security. Ciò potrebbe influire sull'interoperabilità.