Ho letto la documentazione fornita da MSDN e alcuni altri post su questo sito. Tuttavia, è ancora poco chiaro se WCF (in particolare, NetTcpBinding) crittograferà effettivamente il messaggio contenuto quando si utilizza la sicurezza dei messaggi con i certificati. Qualcuno lo sa per certo?La sicurezza dei messaggi WCF crittografa effettivamente i contenuti dei messaggi?
Per esempio è possibile specificare entrambe le credenziali di trasporto e di messaggi nella configurazione:
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate"
negotiateServiceCredential="true" />
</security>
Per quanto posso dire la documentazione MSDN implica che la protezione dei messaggi si basa semplicemente su entrambi username/password o l'autenticazione basata su certificati (negoziazione), ma non specifica in modo specifico che il messaggio stesso sia effettivamente crittografato a livello di messaggio.
Ad esempio se utilizzo SOLO la sicurezza dei messaggi, con negoziazione basata sui certificati, non penso che i contenuti dei messaggi siano effettivamente crittografati (ad esempio uno sniffer di pacchetti potrebbe intercettare il contenuto dei messaggi non elaborati, anche se il servizio impone l'autenticazione) ?
Se la crittografia a livello di messaggio vero è possibile (utilizzando NetTcpBinding) come è fatto nel codice? Credo che questo è legato alla AlgorithmSuite, anche se non sono sicuro,
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.Security.Message.AlgorithmSuite = new System.ServiceModel.Security.TripleDesSecurityAlgorithmSuite();
ho deciso di solo annusare i pacchetti di me stesso utilizzando Wireshark, e posso confermare che questo è vero.Apparentemente Windows si occupa della crittografia stessa per le comunicazioni dominio/dominio trusted. Grazie! –