Condividi tramite


Considerazioni sulla sicurezza per le sessioni sicure

Quando si implementano sessioni sicure, è consigliabile prendere in considerazione gli elementi seguenti che influiscono sulla sicurezza. Per altre informazioni sulle considerazioni sulla sicurezza, vedere Considerazioni sulla sicurezza e procedure consigliate per la sicurezza.

Proteggere sessioni e metadati

Quando viene stabilita una sessione protetta e la RequireCancellation proprietà è impostata su false, Windows Communication Foundation (WCF) invia un'asserzione mssp:MustNotSendCancel come parte dei metadati nel documento WSDL (Web Services Description Language) per l'endpoint del servizio. L'asserzione mssp:MustNotSendCancel informa i client che il servizio non risponde alle richieste di annullamento della sessione protetta. Quando la RequireCancellation proprietà è impostata su true, WCF non genera un'asserzione mssp:MustNotSendCancel nel documento WSDL. I client devono inviare una richiesta di annullamento al servizio quando non richiedono più la sessione protetta. Quando un client viene generato usando lo strumento utilità metadati ServiceModel (Svcutil.exe), il codice client reagisce in modo appropriato alla presenza o all'assenza dell'asserzione mssp:MustNotSendCancel .

Proteggere conversazioni e token personalizzati

Esistono alcuni problemi relativi alla combinazione di token personalizzati e chiavi derivate a causa del modo in cui viene definito nella specifica WS-SecureConversation. La specifica indica che wsse:SecurityTokenReference è un elemento facoltativo che fa riferimento al token derivato: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference Questo elemento facoltativo viene usato per specificare il token del contesto di sicurezza, il token di sicurezza o la chiave/segreto condiviso usato per la derivazione. Se non specificato, si presuppone che il destinatario possa determinare la chiave condivisa dal contesto del messaggio. Se non è possibile determinare il contesto, allora si dovrebbe generare un errore come wsc:UnknownDerivationSource.

Ciò significa che se si vuole derivare un token personalizzato, è necessario racchiudere il tipo di clausola in un elemento SecurityTokenReference. È disponibile un'opzione per disattivare la derivazione, ma l'impostazione predefinita consiste nel derivare le chiavi. Se non si esegue il wrapping della chiave, la serializzazione del token della chiave derivata ha successo, ma il tentativo di deserializzazione genera un'eccezione.

Vedere anche