Partilhar via


Considerações de segurança para sessões seguras

Você deve considerar os seguintes itens que afetam a segurança ao implementar sessões seguras. Para obter mais informações sobre considerações de segurança, consulte Considerações de segurança e práticas recomendadas de segurança.

Sessões e metadados seguros

Quando uma sessão segura é estabelecida e a propriedade é definida como false, o RequireCancellation Windows Communication Foundation (WCF) envia uma mssp:MustNotSendCancel declaração como parte dos metadados no documento WSDL (Web Services Description Language) para o ponto de extremidade do serviço. A mssp:MustNotSendCancel asserção informa aos clientes que o serviço não responde a solicitações para cancelar a sessão segura. Quando a RequireCancellation propriedade é definida como true, o WCF não emite uma mssp:MustNotSendCancel asserção no documento WSDL. Espera-se que os clientes enviem uma solicitação de cancelamento para o serviço quando não precisarem mais da sessão segura. Quando um cliente é gerado usando a ServiceModel Metadata Utility Tool (Svcutil.exe), o código do cliente reage adequadamente à presença ou ausência da mssp:MustNotSendCancel asserção.

Conversas seguras e tokens personalizados

Há alguns problemas com a mistura de tokens personalizados e chaves derivadas devido à maneira como ele é definido na especificação WS-SecureConversation. A especificação diz que wsse:SecurityTokenReference é um elemento opcional que faz referência ao token derivado: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference Este elemento opcional é usado para especificar token de contexto de segurança, token de segurança ou chave/segredo compartilhado usado para a derivação. Se não for especificado, presume-se que o destinatário pode determinar a chave compartilhada a partir do contexto da mensagem. Se o contexto não puder ser determinado, então uma falha como a que wsc:UnknownDerivationSource deve ser levantada."

Isso significa que, se você quiser que um token personalizado seja derivado, deverá encapsular seu tipo de cláusula em um SecurityTokenReference elemento . Há uma opção para desativar a derivação, mas o padrão é derivar chaves. Se você não conseguir encapsular a chave, a serialização do token de chave derivada será bem-sucedida, mas a tentativa de desserializá-lo lançará uma exceção.

Consulte também