Udostępnij za pośrednictwem


<localServiceSettings> , element

Określa ustawienia zabezpieczeń usługi lokalnej dla tego powiązania.

<Konfiguracji>
  <System.servicemodel>
    <Powiązania>
      <Custombinding>
        <Wiązania>
          <Zabezpieczeń>
            <localServiceSettings>

Składnia

<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>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
detectReplays Wartość logiczna określająca, czy ataki na kanał są wykrywane i rozwiązywane automatycznie. Wartość domyślna to false.
inactivityTimeout Wynik dodatni TimeSpan określający czas trwania braku aktywności kanału przed upływem limitu czasu. Wartość domyślna to "01:00:00".
issuedCookieLifeTime Element TimeSpan określający okres istnienia wystawiony dla wszystkich nowych plików cookie zabezpieczeń. Pliki cookie, które przekraczają ich okres istnienia, są poddawane recyklingu i muszą zostać wynegocjowane ponownie. Wartość domyślna to "10:00:00".
maxCachedCookies Dodatnia liczba całkowita określająca maksymalną liczbę plików cookie, które mogą być buforowane. Wartość domyślna to 1000.
maxClockSkew Element TimeSpan określający maksymalną różnicę czasu między zegarami systemowymi dwóch komunikujących się stron. Wartość domyślna to "00:05:00".

Gdy ta wartość jest ustawiona na wartość domyślną, odbiorca akceptuje komunikaty z sygnaturami czasowymi wysyłania do 5 minut później lub starszych niż czas odebrania komunikatu. Komunikaty, które nie przechodzą testu czasu wysyłania, są odrzucane. To ustawienie jest używane w połączeniu z atrybutem replayWindow .
maxPendingSessions Dodatnia liczba całkowita określająca maksymalną liczbę oczekujących sesji zabezpieczeń, które obsługuje usługa. Po osiągnięciu tego limitu wszyscy nowi klienci otrzymują błędy protokołu SOAP. Wartość domyślna to 1000.
maxStatefulNegotiations Dodatnia liczba całkowita określająca liczbę negocjacji dotyczących zabezpieczeń, które mogą być aktywne jednocześnie. Sesje negocjacji przekraczające limit są kolejkowane i można je wykonać tylko wtedy, gdy miejsce poniżej limitu stanie się dostępne. Wartość domyślna to 1024.
negotiationTimeout Element TimeSpan określający okres istnienia zasad zabezpieczeń używanych przez kanał. Po upływie czasu kanał renegocjatuje z klientem nowe zasady zabezpieczeń. Wartość domyślna to "00:02:00".
reconnectTransportOnFailure Wartość logiczna określająca, czy połączenia korzystające z komunikatów WS-Reliable spróbują ponownie nawiązać połączenie po awariach transportu. Wartość domyślna to true, co oznacza, że podejmowana jest nieskończona próba ponownego nawiązania połączenia. Cykl jest przerywany przez limit czasu braku aktywności, co powoduje, że kanał zgłasza wyjątek, gdy nie można go ponownie połączyć.
replayCacheSize Dodatnia liczba całkowita określająca liczbę buforowanych nieces używanych do wykrywania powtórzeń. Jeśli ten limit zostanie przekroczony, najstarszy nonce zostanie usunięty, a dla nowego komunikatu zostanie utworzony nowy element nonce. Wartość domyślna to 500000.
replayWindow Element TimeSpan określający czas trwania, w którym poszczególne komunikaty nie są prawidłowe.

Po upływie tego czasu zostanie wysłana wiadomość z tą samą wartością inną niż ta, która została wysłana wcześniej, nie zostanie zaakceptowana. Ten atrybut jest używany w połączeniu z atrybutem maxClockSkew , aby zapobiec atakom powtarzania. Osoba atakująca może odtworzyć komunikat po wygaśnięciu okna odtwarzania. Jednak ten komunikat zakończy się niepowodzeniem maxClockSkew testu, który odrzuca komunikaty ze znacznikami czasu wysyłania do określonego czasu później lub wcześniej niż czas odebrania wiadomości.
sessionKeyRenewalInterval Element TimeSpan określający czas trwania, po którym inicjator odnowi klucz sesji zabezpieczeń. Wartość domyślna to "10:00:00".
sessionKeyRolloverInterval Element TimeSpan określający interwał czasu, przez który poprzedni klucz sesji jest prawidłowy dla komunikatów przychodzących podczas odnawiania klucza. Wartość domyślna to "00:05:00".

Podczas odnawiania klucza klient i serwer muszą zawsze wysyłać komunikaty przy użyciu najnowszego dostępnego klucza. Obie strony będą akceptować komunikaty przychodzące zabezpieczone przy użyciu poprzedniego klucza sesji do momentu wygaśnięcia czasu przerzucania.
timestampValidityDuration Wynik dodatni TimeSpan określający czas trwania, w którym jest prawidłowa sygnatura czasowa. Wartość domyślna to "00:15:00".

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
<Zabezpieczeń> Określa opcje zabezpieczeń dla powiązania niestandardowego.
<secureConversationBootstrap> Określa wartości domyślne używane do inicjowania bezpiecznej usługi konwersacji.

Uwagi

Ustawienia są lokalne, ponieważ nie są publikowane w ramach zasad zabezpieczeń usługi i nie mają wpływu na powiązanie klienta.

Następujące atrybuty localServiceSecuritySettings elementu mogą pomóc w ograniczeniu ataku zabezpieczeń typu "odmowa usługi" (DOS):

  • maxCachedCookies: steruje maksymalną liczbą ograniczonych czasowo zabezpieczeńContextTokens, które są buforowane przez serwer po wykonaniu negocjacji SPNEGO lub SSL.

  • issuedCookieLifetime: steruje okresem istnienia securityContextTokens wystawionych przez serwer po negocjacji SPNEGO lub SSL. Serwer buforuje zabezpieczeniaContextTokens przez ten okres czasu.

  • maxPendingSessions: steruje maksymalną liczbą bezpiecznych konwersacji ustanowionych na serwerze, ale dla których żadne komunikaty aplikacji nie zostały przetworzone. Ten limit przydziału uniemożliwia klientom ustanawianie bezpiecznych konwersacji w usłudze, co powoduje zachowanie stanu usługi dla każdego klienta, ale nigdy z nich nie korzysta.

  • inactivityTimeout: określa maksymalny czas, przez który usługa utrzymuje bezpieczną konwersację bez odbierania w niej komunikatu aplikacji. Ten limit przydziału uniemożliwia klientom ustanawianie bezpiecznych konwersacji w usłudze, co powoduje zachowanie stanu usługi dla każdego klienta, ale nigdy z nich nie korzysta.

W bezpiecznej sesji konwersacji należy pamiętać, że zarówno inactivityTimeoutreceiveTimeout atrybuty powiązania wpływają na limit czasu sesji. Krótsza z tych dwóch wartości określa, kiedy występują przekroczenia limitu czasu.

Zobacz też