<elemento localServiceSettings>
Especifica as definições de segurança de um serviço local para este enlace.
<configuração>
<system.serviceModel>
<enlaces>
<customBinding>
<enlace>
<segurança>
<localServiceSettings>
Syntax
<security>
<localServiceSettings detectReplays="Boolean"
inactivityTimeout="TimeSpan"
issuedCookieLifeTime="TimeSpan"
maxCachedCookies="Integer"
maxClockSkew="TimeSpan"
maxPendingSessions="Integer"
maxStatefulNegotiations="Integer"
negotiationTimeout="TimeSpan"
reconnectTransportOnFailure="Boolean"
replayCacheSize="Integer"
replayWindow="TimeSpan"
sessionKeyRenewalInterval="TimeSpan"
sessionKeyRolloverInterval="TimeSpan"
timestampValidityDuration="TimeSpan" />
</security>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
detectReplays |
Um valor booleano que especifica se os ataques de repetição no canal são detetados e tratados automaticamente. A predefinição é false . |
inactivityTimeout |
Um positivo TimeSpan que especifica a duração da inatividade que o canal aguarda antes de exceder o limite de tempo. A predefinição é "01:00:00". |
issuedCookieLifeTime |
Um TimeSpan que especifica a duração emitida para todos os novos cookies de segurança. Os cookies que excedem a sua duração são reciclados e precisam de ser negociados novamente. O valor predefinido é "10:00:00". |
maxCachedCookies |
Um número inteiro positivo que especifica o número máximo de cookies que podem ser colocados em cache. A predefinição é 1000. |
maxClockSkew |
Um TimeSpan que especifica a diferença de tempo máxima entre os relógios do sistema das duas partes que comunicam. O valor predefinido é "00:05:00". Quando este valor está definido como predefinido, o recetor aceita mensagens com carimbos de data/hora de envio até 5 minutos mais tarde ou mais cedo do que a hora em que a mensagem foi recebida. As mensagens que não passam no teste de tempo de envio são rejeitadas. Esta definição é utilizada em conjunto com o replayWindow atributo . |
maxPendingSessions |
Um número inteiro positivo que especifica o número máximo de sessões de segurança pendentes que o serviço suporta. Quando este limite é atingido, todos os novos clientes recebem falhas SOAP. O valor predefinido é 1000. |
maxStatefulNegotiations |
Um número inteiro positivo que especifica o número de negociações de segurança que podem ser ativas simultaneamente. As sessões de negociação que ultrapassem o limite são colocadas em fila de espera e só podem ser concluídas quando um espaço abaixo do limite fica disponível. O valor predefinido é 1024. |
negotiationTimeout |
Um TimeSpan que especifica a duração da política de segurança utilizada pelo canal. Quando o tempo expirar, o canal renegocia com o cliente uma nova política de segurança. O valor predefinido é "00:02:00". |
reconnectTransportOnFailure |
Um valor booleano que especifica se as ligações que utilizam WS-Reliable mensagens tentarão restabelecer a ligação após falhas de transporte. A predefinição é true , o que significa que são tentadas tentativas infinitas de restabelecimento da ligação. O ciclo é interrompido pelo tempo limite de inatividade, o que faz com que o canal crie uma exceção quando não pode ser reconectado. |
replayCacheSize |
Um número inteiro positivo que especifica o número de nós em cache utilizados para a deteção de repetição. Se este limite for excedido, o nonce mais antigo é removido e é criado um novo nonce para a nova mensagem. O valor predefinido é 500000. |
replayWindow |
Um TimeSpan que especifica a duração em que os nós de mensagens individuais são válidos. Após esta duração, uma mensagem enviada com o mesmo nonce que a enviada antes não será aceite. Este atributo é utilizado em conjunto com o maxClockSkew atributo para evitar ataques de repetição. Um atacante pode reproduzir uma mensagem após a janela de repetição expirar. No entanto, esta mensagem falharia no maxClockSkew teste que rejeita mensagens com carimbos de data/hora de envio até uma hora especificada mais tarde ou mais cedo do que a hora em que a mensagem foi recebida. |
sessionKeyRenewalInterval |
Um TimeSpan que especifica a duração após a qual o iniciador renovará a chave para a sessão de segurança. A predefinição é "10:00:00". |
sessionKeyRolloverInterval |
Um TimeSpan que especifica o intervalo de tempo em que uma chave de sessão anterior é válida nas mensagens recebidas durante uma renovação da chave. A predefinição é "00:05:00". Durante a renovação da chave, o cliente e o servidor têm de enviar sempre mensagens com a chave disponível mais recente. Ambas as partes aceitarão mensagens recebidas protegidas com a chave de sessão anterior até que o tempo de rollover expire. |
timestampValidityDuration |
Um positivo TimeSpan que especifica a duração em que um carimbo de data/hora é válido. A predefinição é "00:15:00". |
Elementos Subordinados
Nenhum.
Elementos Principais
Elemento | Descrição |
---|---|
<segurança> | Especifica as opções de segurança para um enlace personalizado. |
<secureConversationBootstrap> | Especifica os valores predefinidos utilizados para iniciar um serviço de conversação seguro. |
Observações
As definições são locais porque não são publicadas como parte da política de segurança do serviço e não afetam o enlace do cliente.
Os seguintes atributos do localServiceSecuritySettings
elemento podem ajudar a mitigar um ataque de segurança denial-of-service (DOS):
maxCachedCookies
: controla o número máximo de SecurityContextTokens vinculados ao tempo que são colocados em cache pelo servidor após efetuar a negociação SPNEGO ou SSL.issuedCookieLifetime
: controla a duração dos SecurityContextTokens emitidos pelo servidor após a negociação SPNEGO ou SSL. O servidor coloca em cache os SecurityContextTokens para este período de tempo.maxPendingSessions
: controla o número máximo de conversações seguras estabelecidas no servidor, mas para as quais não foram processadas mensagens de aplicação. Esta quota impede que os clientes estabeleçam conversações seguras no serviço, fazendo com que o serviço mantenha o estado de cada cliente, mas nunca as utilize.inactivityTimeout
: controla o tempo máximo em que o serviço mantém uma conversação segura viva sem nunca receber uma mensagem de aplicação na mesma. Esta quota impede que os clientes estabeleçam conversações seguras no serviço, fazendo com que o serviço mantenha o estado de cada cliente, mas nunca as utilize.
Numa sessão de conversação segura, tenha em atenção que tanto os inactivityTimeout
receiveTimeout
atributos no enlace afetam o tempo limite da sessão. O mais curto dos dois determina quando ocorrem tempos limite.