Compartilhar via


Elemento <localServiceSettings>

Especifica as configurações de segurança de um serviço local para essa ligação.

<configuração>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <security>
            <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 seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
detectReplays Um valor booliano que especifica se os ataques de reprodução contra o canal são detectados e tratados automaticamente. O padrão é false.
inactivityTimeout Um TimeSpan positivo que especifica a duração da inatividade que o canal aguardará antes de atingir tempo limite. O padrão é "01:00:00".
issuedCookieLifeTime Um TimeSpan que especifica o tempo de vida emitido para todos os novos cookies de segurança. Cookies que excedem o tempo de vida são reciclados e devem ser negociados novamente. O valor padrão é "10:00:00".
maxCachedCookies Um inteiro positivo que especifica o número máximo de cookies que podem ser armazenados em cache. O padrão é 1000.
maxClockSkew Um TimeSpan que especifica a diferença máxima de tempo entre os relógios do sistema das duas partes da comunicação. O valor padrão é "00:05:00".

Quando esse valor estiver definido como padrão, o destinatário aceitará as mensagens com carimbos de data/hora de tempo de envio até cinco minutos após ou antes do horário em que a mensagem foi recebida. As mensagens que não passarem no teste de tempo de envio serão rejeitadas. Essa configuração é usada em conjunto com o atributo replayWindow.
maxPendingSessions Um inteiro positivo que especifica o número máximo de sessões de segurança pendentes que o serviço suporta. Quando esse limite for atingido, todos os novos clientes receberão falhas SOAP. O valor padrão é 1000.
maxStatefulNegotiations Um inteiro positivo que especifica o número de negociações de segurança que podem estar ativas simultaneamente. As sessões de negociação que excederem o limite serão colocadas na fila e poderão ser concluídas somente quando um espaço abaixo do limite estiver disponível. O valor padrão é 1.024.
negotiationTimeout Um TimeSpan que especifica o tempo de vida da política de segurança usada por canal. Quando o tempo expirar, o canal renegociará com o cliente uma nova política de segurança. O valor padrão é "00:02:00".
reconnectTransportOnFailure Um valor booliano que especifica se as conexões usando mensagens WS-Reliable tentarão reconectar após falhas de transporte. O padrão é true, e isso significa que ocorrerão tentativas infinitas de reconexão. O ciclo será interrompido pelo tempo limite de inatividade, que fará o canal gerar uma exceção quando não puder ser reconectado.
replayCacheSize Um inteiro positivo que especifica o número de valores de uso único armazenados em cache usados para detecção de reprodução. Se esse limite for excedido, o nonce mais antigo será removido e um nonce será criado para a nova mensagem. O valor padrão é 500.000.
replayWindow Um TimeSpan que especifica a duração na qual os valores de uso único das mensagens individuais são válidos.

Após esta duração, uma mensagem enviada com o mesmo nonce da anterior não será aceita. Esse atributo é usado em conjunto com o atributo maxClockSkew para evitar ataques de reprodução. Um invasor poderá reproduzir uma mensagem depois que a janela de reprodução expirar. Essa mensagem, no entanto, falhará no teste maxClockSkew, que rejeitará as mensagens com carimbos de data/hora de tempo de envio até um horário especificado posterior ou anterior ao horário em que a mensagem foi recebida.
sessionKeyRenewalInterval Um TimeSpan que especifica a duração após a qual o iniciador renovará a chave da sessão de segurança. O padrão é "10:00:00".
sessionKeyRolloverInterval Um TimeSpan que especifica o intervalo de tempo durante o qual uma chave de sessão anterior é válida nas mensagens de entrada durante uma renovação de chave. O padrão é "00:05:00".

Durante a renovação de chave, o cliente e o servidor sempre deverão enviar mensagens usando a chave disponível mais atual. Ambas as partes aceitarão as mensagens recebidas protegidas com a chave de sessão anterior até que o tempo de sobreposição expire.
timestampValidityDuration Um TimeSpan positivo que especifica a duração na qual um carimbo de data/hora é válido. O padrão é "00:15:00".

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<security> Especifica as opções de segurança para uma associação personalizada.
<secureConversationBootstrap> Especifica os valores padrão usados para iniciar um serviço de conversação seguro.

Comentários

As configuraçõ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 a associação do cliente.

Os seguintes atributos do elemento localServiceSecuritySettings podem ajudar a mitigar um ataque de DoS (negação de serviço):

  • maxCachedCookies: controla o número máximo de SecurityContextTokens limitados por tempo que são armazenados em cache pelo servidor após a negociação SSL ou SPNEGO.

  • issuedCookieLifetime: controla o tempo de vida dos SecurityContextTokens que são emitidos pelo servidor após a negociação SSL ou SPNEGO. O servidor armazenará em cache os SecurityContextTokens por esse período.

  • maxPendingSessions: controla o número máximo de conversas seguras que são estabelecidas no servidor, mas para as quais nenhuma mensagem do aplicativo foi processada. Essa cota impede que os clientes estabeleçam conversas seguras no serviço, fazendo com que o serviço mantenha o estado para cada cliente, mas nunca as utilizem.

  • inactivityTimeout: controla o tempo máximo que o serviço mantém uma conversa segura ativa sem nunca receber uma mensagem do aplicativo. Essa cota impede que os clientes estabeleçam conversas seguras no serviço, fazendo com que o serviço mantenha o estado para cada cliente, mas nunca as utilizem.

Em uma sessão de conversa segura, observe que os atributos inactivityTimeout e receiveTimeout na associação afetam o tempo limite da sessão. O menor dos dois determinará quando os tempos limite ocorrerão.

Confira também