Używanie programu SQL Server 2016 i nowszych wersji w trybie zgodnym ze standardem FIPS 140-2
W tym artykule przedstawiono instrukcje dotyczące standardu FIPS 140-2 oraz sposób używania programu SQL Server2016 w trybie zgodnym ze standardem FIPS 140-2.
Oryginalna wersja produktu: SQL Server 2016 i nowszy Oryginalny numer KB: 4014354
Uwaga 16.
Terminy "Zgodność ze standardem FIPS 140-2", "zgodność ze standardem FIPS 140-2" i "Tryb zgodny ze standardem FIPS 140-2" są zdefiniowane w tym miejscu w celu użycia i jasności. Te terminy nie są rozpoznawane ani zdefiniowane terminy dla instytucji rządowych. Rządy Stany Zjednoczone i kanadyjskie uznają weryfikację modułów kryptograficznych względem standardów, takich jak FIPS 140-2, zamiast używać modułów kryptograficznych w określony lub zgodny sposób.
W tym artykule używamy zgodnego ze standardem FIPS 140-2, zgodności ze standardem FIPS 140-2 i zgodności ze standardem FIPS 140-2, aby oznaczać, że program SQL Server 2016 i nowsze wersje używają tylko zweryfikowanych wystąpień algorytmów i funkcji skrótu we wszystkich wystąpieniach, w których zaszyfrowane lub skróty danych są importowane do lub eksportowane z programu SQL Server 2016 i nowszych wersji. Ponadto oznacza to, że program SQL Server 2016 i nowsze wersje versons będą zarządzać kluczami w bezpieczny sposób, zgodnie z wymaganiami modułów kryptograficznych zweryfikowanych ze standardem FIPS 140-2. Proces zarządzania kluczami obejmuje również generowanie kluczy i magazyn kluczy.
W tym miejscu używamy "certyfikowanego", aby oznaczać, że wystąpienie algorytmu jest zweryfikowane ze standardem FIPS 140-2 lub że system operacyjny zawiera FIPS140-2-zweryfikowane wystąpienia algorytmów.
Co to jest FIPS?
Federal Information Processing Standard (FIPS) to standard opracowany przez następujące dwa organy rządowe:
- Narodowy Instytut Standardów i Technologii (NIST) w Stany Zjednoczone
- Zakład bezpieczeństwa komunikacji (CSE) w Kanadzie
Standardy FIPS są zalecane lub wymagane do użycia w systemach IT obsługiwanych przez rząd federalny w Stany Zjednoczone i Kanadzie.
Co to jest FIPS 140-2?
FIPS 140-2 to instrukcja zatytułowana "Wymagania dotyczące zabezpieczeń modułów kryptograficznych". Określa, które algorytmy szyfrowania i które algorytmy wyznaczania wartości skrótu mogą być używane, oraz sposób generowania i zarządzania kluczami szyfrowania. Niektóre sprzęt, oprogramowanie i procesy, które zawierają algorytmy, można uznać za certyfikowane ze standardem FIPS 140-2 oraz inne sprzęt, oprogramowanie i procesy, które nazywają prawidłowe algorytmy, można uznać za zgodne ze standardem FIPS 140-2.
Jaka jest różnica między zgodnością ze standardem FIPS 140-2 i certyfikatem FIPS 140-2?
Program SQL Server 2016 i nowsze wersje można skonfigurować i uruchomić w sposób zgodny ze standardem FIPS 140-2. Aby skonfigurować program SQL Server 2016 i nowsze wersje w ten sposób, musi działać w systemie operacyjnym, który ma certyfikat FIPS 140-2 lub który udostępnia moduły kryptograficzne, które są certyfikowane. Różnica między zgodnością a certyfikacją nie jest subtelna. Algorytmy mogą być certyfikowane. Niewystarczające jest użycie algorytmu tylko dlatego, że jest on wymieniony na zatwierdzonych listach w standardzie FIPS 140-2. Zamiast tego należy użyć wystąpienia takiego algorytmu, które jest certyfikowane. Oznacza to, że wystąpienie jest weryfikowane przez instytucje rządowe. Certyfikacja wymaga testowania i weryfikacji przez amerykańskie lub kanadyjskie laboratorium ewaluacyjne zatwierdzone przez rząd. Windows Server 2012 i nowsze wersje oraz Windows 8 i nowsze wersje zawierają certyfikowane wystąpienie każdego dozwolonego algorytmu. Co najważniejsze, wywołanie każdego z tych algorytmów zapewnia tylko certyfikowane wystąpienie.
Które aplikacje mogą być zgodne ze standardem FIPS 140-2?
Wszystkie aplikacje, które wykonują szyfrowanie lub skróty i które działają w certyfikowanej wersji systemu Windows, mogą być zgodne tylko z certyfikowanymi wystąpieniami zatwierdzonych algorytmów i przez spełnienie wymagań dotyczących generowania kluczy i zarządzania kluczami. Wymaga to użycia funkcji systemu Windows do generowania kluczy i zarządzania kluczami lub spełnienia wymagań dotyczących generowania kluczy i zarządzania kluczami w aplikacji. Obszary w aplikacji zgodnej ze standardem FIPS mogą istnieć w przypadku włączenia niezgodnych algorytmów lub procesów. Na przykład niektóre wewnętrzne procesy pozostające w systemie i niektóre dane zewnętrzne, które mają być dodatkowo szyfrowane przez wystąpienie certyfikowanego algorytmu, są dozwolone.
Czy program SQL Server 2016 i nowsze wersje są zawsze zgodne ze standardem FIPS 140-2?
L.p. Program SQL Server 2016 i nowsze wersje mogą być zgodne ze standardem FIPS 140-2, ponieważ można go skonfigurować i uruchomić tak, aby używał tylko wystąpień algorytmów certyfikowanych ze standardem FIPS 140-2. Ponadto te wystąpienia są wywoływane przy użyciu interfejsu CryptoAPI lub CGN do szyfrowania lub skrótu w każdym wystąpieniu, w którym wymagana jest zgodność ze standardem FIPS 140-2.
Jak można skonfigurować program SQL Server 2016 i nowsze wersje tak, aby był zgodny ze standardem FIPS 140-2?
Wymagania dotyczące systemu operacyjnego
Należy zainstalować program SQL Server 2016 i nowsze wersje na hoście z uruchomionym jednym z następujących klientów i serwerów z systemem Windows.
Wymagania dotyczące administrowania systemem Windows
Tryb FIPS musi być ustawiony przed uruchomieniem programu SQL Server 2016 lub nowszej wersji. Program SQL Server odczytuje ustawienie podczas uruchamiania. Aby ustawić tryb FIPS, wykonaj następujące kroki:
- Zaloguj się do systemu Windows jako administrator systemu Windows.
- Wybierz Start.
- Wybierz pozycję Panel sterowania.
- Wybierz pozycję Narzędzia administracyjne. (W następnym kroku może być konieczne przełączenie się na duże ikony).
- Wybierz pozycję Zasady zabezpieczeń lokalnych. Zostanie wyświetlone okno Ustawienia zabezpieczeń lokalnych.
- W okienku nawigacji wybierz pozycję Opcje zabezpieczeń zasad>lokalnych.
- W okienku po prawej stronie kliknij dwukrotnie pozycję Kryptografia systemu: użyj zgodnych algorytmów FIPS do szyfrowania, tworzenia skrótów i podpisywania.
- W wyświetlonym oknie dialogowym wybierz pozycję Włączone>zastosuj.
- Wybierz przycisk OK.
- Zamknij okno Ustawienia zabezpieczeń lokalnych.
Wymaganie administratora programu SQL Server
Gdy usługa PROGRAMU SQL Server (gdy punkt końcowy jest skonfigurowany dla usługi Service Broker lub dublowanie bazy danych) wykryje, że tryb FIPS jest włączony podczas uruchamiania, program SQL Server rejestruje następujący komunikat w dzienniku błędów programu SQL Server:
Transport usługi Service Broker działa w trybie zgodności ze standardem FIPS.
Ponadto w dzienniku zdarzeń systemu Windows może znajdować się następujący komunikat:
Transport dublowania bazy danych działa w trybie zgodności ze standardem FIPS.
Możesz sprawdzić, czy serwer działa w trybie FIPS, wyszukując te komunikaty.
Uwaga 16.
- W przypadku zabezpieczeń okien dialogowych (między usługami) proces szyfrowania używa certyfikowanego wystąpienia AES ze standardem FIPS, jeśli tryb FIPS jest włączony. Jeśli tryb FIPS jest wyłączony, proces szyfrowania nadal używa AES.
- Podczas konfigurowania punktu końcowego brokera usługi w trybie FIPS administrator musi określić wartość "AES" dla brokera usług. Jeśli punkt końcowy jest skonfigurowany do wersji RC4, program SQL Server generuje błąd. W związku z tym warstwa transportu nie zostanie uruchomiona.
W jaki sposób program SQL Server 2016 i nowsze wersje są obsługiwane w trybie zgodnym ze standardem FIPS 140-2?
W przypadku włączenia trybu FIPS w systemie Windows we wszystkich obszarach, w których użytkownik nie ma wyboru, czy chcesz zaszyfrować, czy skrót i jak to zrobić, program SQL Server 2016 i nowsze wersje będą działać zgodnie ze standardem FIPS 140-2. (Program SQL Server 2016 i nowsze wersje będą używać interfejsu CryptoAPI w systemie Windows i będą używać tylko certyfikowanych wystąpień algorytmów).
W przypadku włączenia trybu FIPS w systemie Windows we wszystkich obszarach, w których użytkownik ma wybór, czy używać szyfrowania, program SQL Server 2016 i nowsze wersje będą włączać tylko zgodne szyfrowanie FIPS 140-2 lub nie włączy żadnego szyfrowania.
Ważne informacje dla deweloperów oprogramowania: we wszystkich obszarach, w których deweloper lub użytkownik pisze własny kod do szyfrowania lub tworzenia skrótów, muszą być poinstruowani, aby używać tylko cryptoAPI (i w związku z tym tylko certyfikowanych wystąpień) i określić tylko algorytmy dozwolone przez standard FIPS 140-2.Aby oficjalna lista NIST zatwierdzonych algorytmów kryptograficznych FIPS 140-2, zobacz załączniki A, C i D w programie weryfikacji modułu kryptograficznego.
Jaki jest efekt działania programu SQL Server 2016 lub nowszej wersji w trybie zgodnym ze standardem FIPS 140-2?
W przypadku używania silniejszego szyfrowania może to mieć niewielki wpływ na wydajność tych procesów, dla których szyfrowanie jest mniej niezawodne, gdy proces nie działa jako zgodny ze standardem FIPS 140-2.
Wybór szyfrowania dla usług SSIS (UseEncryption=True) spowoduje wygenerowanie błędu wskazującego, że dostępne szyfrowanie jest niezgodne ze zgodnością ze standardem FIPS i nie jest dozwolone. Innymi słowy, nie jest wykonywane szyfrowanie procesu komunikatu.
W przypadku używania szyfrowania razem ze starszymi usługami DTS szyfrowanie nie jest zgodne z standardem FIPS 140-2. W przypadku usługi DTS tryb FIPS w systemie Windows nie jest sprawdzany. W związku z tym użytkownik musi wybrać opcję braku szyfrowania, aby zachować zgodność.
Ponieważ większość procesów szyfrowania i skrótów programu SQL Server 2016 i nowszych wersji jest już zgodna ze standardem FIPS 140-2, wykonywanie w trybie pełnej zgodności (czyli z włączonym trybem FIPS w systemie Windows) będzie miało niewielki wpływ na użycie lub wydajność aplikacji.
Gdzie mogę dowiedzieć się więcej o standardach FIPS 140-2?
Aby uzyskać więcej informacji na temat standardu FIPS 140-2, zobacz CMVP FIPS 140-2 Standards and Documents (Standardy i dokumenty PROGRAMU CMVP FIPS 140-2).
Firma Microsoft udostępnia informacje dotyczące sposobów kontaktowania się z innymi firmami, aby ułatwić uzyskanie niezbędnej pomocy technicznej. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności tych informacji kontaktowych innych firm.