Jak używać narzędzia programu ASP.NET do szyfrowania poświadczeń i ciągów połączenia dotyczących stanu sesji

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 329290 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ważne Niniejszy artykuł zawiera informacje dotyczące modyfikowania rejestru. Przed zmodyfikowaniem rejestru wykonaj jego kopię zapasową. Upewnij się, że wiesz, jak przywrócić rejestr w przypadku pojawienia się problemu. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej, przywracania i modyfikowania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
256986 Opis rejestru systemu Microsoft Windows
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule opisano krok po kroku, jak użyć narzędzia Aspnet_setreg.exe do zaszyfrowania poświadczeń i ciągów połączenia dotyczących stanu sesji. W przypadku programu Microsoft ASP.NET w wersji 1.0 poświadczenia muszą być zapisane tekstem zwykłym w plikach konfiguracyjnych, aby można było wykonać którąkolwiek z następujących czynności:
  • Zmienianie tożsamości procesu roboczego programu ASP.NET.
  • Określanie tożsamości personifikacji.
  • Określanie ciągu połączenia dla stanu sesji.
Po zastosowaniu poprawki, którą opisano w artykule 329250 bazy wiedzy Microsoft Knowledge Base (zobacz „Materiały referencyjne”), należy w następujących sekcjach konfiguracji zamiast czystego tekstu użyć zaszyfrowanych danych z rejestru:
  • <identity nazwa_użytkownika= hasło= />
  • <processModel nazwa_użytkownika= hasło= />
  • <sessionState ciąg_połączenia_dla_stanu_sesji= ciąg_połączenia_sql= />

Wprowadzenie

Narzędzie Aspnet_setreg.exe służy do szyfrowania i zapisywania wartości tych atrybutów w bezpiecznym kluczu rejestru. Do szyfrowania poświadczeń służy funkcja CryptProtectData z flagą CRYPTPROTECT_LOCAL_MACHINE. Ponieważ funkcję CryptUnprotectData może wywołać każdy użytkownik mający dostęp do komputera, zaszyfrowane dane są przechowywane w bezpiecznym kluczu rejestru na silnie poufnej liście kontroli dostępu (DACL, Discretionary Access Control List). Po przeanalizowaniu pliku konfiguracyjnego przez program ASP.NET odczytuje ona bezpieczny klucz rejestru, korzystając z funkcji CryptUnprotectData do odszyfrowania danych.

Program Inetinfo.exe, który uruchomiono z konta System, odczytuje sekcję <processModel />. Do odczytu kluczy, w których są przechowywane nazwa użytkownika i hasło do procesu roboczego programu ASP.NET, konto System musi mieć odpowiednie uprawnienie.

Proces roboczy programu ASP.NET (Aspnet_wp.exe) odczytuje sekcje <identity /> i <sessionState />. Do odczytu tych kluczy rejestru proces roboczy musi mieć odpowiednie uprawnienie. Jeśli zawartość znajduje się w udziale UNC (Universal Naming Convention), konto umożliwiające uzyskanie dostępu do tego udziału musi mieć uprawnienie do odczytu takich kluczy.

Klucze rejestru, które domyślnie tworzy program Aspnet_setreg.exe, udzielają pełnej kontroli kontom System, Administrator i Twórca-właściciel. Do modyfikacji poufnej listy kontroli dostępu w kluczu rejestru służy program Regedt32.exe. Należy się upewnić, że klucze rejestru mogą odczytywać tylko wybrani użytkownicy.

Ponowne uruchamianie usług IIS

Aby zmiany zostały wprowadzone, trzeba ponownie uruchomić Internetowe usługi informacyjne (IIS) firmy Microsoft. Ponowne uruchomienie usług IIS powoduje uruchomienie nowego procesu roboczego programu ASP.NET. Aby je wykonać, kliknij przycisk Start, kliknij polecenie Uruchom, w polu Otwórz wpisz iisreset, a następnie kliknij przycisk OK.

Uwaga Jeżeli ponownie skonfigurowany serwer jest kontrolerem domeny, może być konieczne jego ponowne uruchomienie.

Więcej informacji

Pobieranie i uruchamianie pliku Aspnet_setreg.exe

Następujący plik jest udostępniony do pobrania w witrynie Microsoft — Centrum pobierania:

Zwiń ten obrazekRozwiń ten obrazek
Pobierz
Pobierz pakiet Aspnet_setreq.exe.
Data wydania: 11 kwietnia 2003

Aby uzyskać więcej informacji dotyczących pobierania plików Pomocy technicznej firmy Microsoft, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
119591 Jak uzyskać pliki Pomocy technicznej Microsoft w usługach online
Firma Microsoft przeskanowała ten plik w poszukiwaniu wirusów. Firma Microsoft użyła najnowszego oprogramowania do wykrywania wirusów dostępnego w chwili opublikowania pliku. Plik jest przechowywany na serwerach o podwyższonym poziomie zabezpieczeń, co utrudnia wprowadzanie nieautoryzowanych zmian w pliku.

Aby wyświetlić listę wszystkich dostępnych przełączników wiersza polecenia wraz z ich składnią, należy uruchomić to narzędzie z wiersza polecenia, nie wpisując żadnych przełączników wiersza polecenia. Jeśli to narzędzie zapisano w folderze C:\Tools\, należy uruchomić następujące polecenie z wiersza polecenia, aby wyświetlić listę jego wszystkich dostępnych przełączników oraz uzyskać do nich pomoc:
C:\Tools>aspnet_setreg.exe

Używanie zaszyfrowanych atrybutów w pliku konfiguracyjnym

Ostrzeżenie Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Mogą one wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Można modyfikować rejestr na własną odpowiedzialność.

Uwaga To narzędzie tworzy klucze rejestru na gałęzi HKEY_LOCAL_MACHINE. Domyślnie klucze w tym poddrzewie mogą tworzyć jedynie administratorzy. Aby pomyślnie utworzyć te klucze rejestru, należy się zalogować jako administrator.
  1. Zaszyfruj atrybuty nazwa_użytkownika i hasło używane w sekcji <identity>. (Atrybuty te można zaszyfrować również w pozostałych sekcjach, o których wspomniano w tym artykule). W tym celu należy wpisać następujące polecenie w wierszu polecenia:
    c:\Tools>aspnet_setreg.exe -k:SOFTWARE\MY_SECURE_APP\identity -u:"nazwa_domeny\nazwa_użytkownika" -p:"hasło"
    To polecenie szyfruje atrybuty nazwa_użytkownika i hasło, tworzy klucze rejestru w określonej lokalizacji, a następnie zapisuje w nich atrybuty. Polecenie to generuje również informację, dzięki której wiadomo, jak zmienić plik Web.config lub Machine.config, aby program ASP.NET korzystał z tych kluczy do odczytu informacji z rejestru.

    Po wykonaniu tego polecenia pojawi się informacja podobna do następującej:
    Please edit your configuration to contain the following:

    nazwa_użytkownika="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,nazwa_użytkownika"
    hasło="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,hasło"

    Lista DACL w kluczu rejestru umożliwia udzielanie uprawnień pełnej kontroli do kont System, Administratorzy i Twórca-właściciel.

    Jeśli zaszyfrowano poświadczenia w sekcji konfiguracji <identity/> lub ciąg połączenia
    w sekcji konfiguracji <sessionState/>, należy sprawdzić, czy tożsamość procesu ma dostęp do klucza rejestru w trybie do odczytu.
    Co więcej, jeśli skonfigurowano usługi IIS do uzyskiwania dostępu do zawartości w udziale UNC, identyczny dostęp do klucza rejestru
    musi mieć konto zapewniające dostęp do udziału.
    Uprawnienia kluczy można przeglądać/modyfikować za pomocą programu Regedt32.exe.

    Aby zapobiec ujawnieniu podklucza i wartości rejestru, należy zmienić ich nazwy.
  2. Zmodyfikuj sekcję dotyczącą tych kluczy rejestru w odpowiednim pliku konfiguracyjnym. Jeśli te wartości muszą zostać użyte w sekcji <identity>, sekcja <identity> będzie mieć następującą postać:
    <identity impersonate="true"
    userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,userName"
    password="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,password" />
    					
  3. Udziel uprawnień odczytu dla konta procesu Aspnet_wp.exe. Aby uzyskać więcej informacji dotyczących zmieniania uprawnień do kluczy rejestru, zobacz sekcję „Używanie programu Regedt32.exe do udzielania uprawnień dla konta programu ASP.NET do danych kluczy rejestru”.

Używanie programu Regedt32.exe do udzielania uprawnień dla konta programu ASP.NET do danych kluczy rejestru

Ostrzeżenie Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Mogą one wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Można modyfikować rejestr na własną odpowiedzialność.
  1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz polecenie regedt32 w polu Otwórz, a następnie kliknij przycisk OK.
  2. Kliknij podklucz
    HKEY_LOCAL_MACHINE\SOFTWARE\MY_SECURE_APP\
    .
  3. W menu Zabezpieczenia kliknij polecenie Uprawnienia, aby otworzyć okno dialogowe Uprawnienia.

    W systemie Microsoft Windows XP lub Windows Server 2003 kliknij prawym przyciskiem myszy klucz rejestru, a następnie kliknij polecenie Uprawnienia.
  4. Kliknij przycisk Dodaj. W otwartym oknie dialogowym wpisz nazwa_serwera\ASPNET (lub nazwa_serwera\NetWork Service w przypadku korzystania z systemu Windows Server 2003 (IIS 6.0)), a następnie kliknij przycisk OK.
  5. Upewnij się, że nowo dodane konto ma uprawnienia do odczytu, a następnie kliknij przycisk OK.
  6. Zamknij program Edytor rejestru.

Materiały referencyjne

Aby uzyskać więcej informacji dotyczących poprawki umożliwiającej korzystanie z funkcji opisanych w tym artykule, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
329250 FIX: Stronger credentials for processModel, identity, and sessionState
Aby uzyskać więcej informacji dotyczących rejestru systemu Microsoft Windows, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
256986 Opis rejestru systemu Microsoft Windows
Aby uzyskać więcej informacji dotyczących programu ASP.NET, kliknij następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
315158 FIX: Program ASP.NET nie działa z domyślnym kontem ASPNET na kontrolerze domeny
317012 Tożsamość procesu i żądania w programie ASP.NET

Właściwości

Numer ID artykułu: 329290 - Ostatnia weryfikacja: 29 października 2007 - Weryfikacja: 8.4
Informacje zawarte w tym artykule dotyczą:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Słowa kluczowe: 
kbproductlink kbdownload kbconfig kbfix kbhowtomaster kbsecurity kbstate KB329290

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com