FIPS 140-3 w OpenEdge 13 – cześć II
W poprzedniej części artykułu skonfigurowaliśmy środowisko OpenEdge 13 do pracy w trybie FIPS 140-3. Pokazaliśmy jak zarejestrować katalog DLC w ESAM oraz jak właczyć/wyłaczyć i sprawdzić status FIPS za pomocą narzędzia POLMAN.
Samo włączenie FIPS jest jednak dopiero początkiem. Z punktu widzenia administratora najważniejsze pytanie brzmi:
co stanie się z działającą bazą danych i serwerem PASOE po włączeniu FIPS?
W tej części skupimy się właśnie na tych dwóch elementach środowiska.
OpenEdge RDBMS jest jednym z kluczowych komponentów OpenEdge obsługujących tryb FIPS. Dokumentacja Progress wymienia w tym kontekście między innymi Transparent Data Encryption (TDE), HSM oraz Auditing.
Nie oznacza to jednak, że każda istniejąca baza wymaga pewnej konwersji.
Przejście na FIPS należy traktować przede wszystkim jako zmianę zasad dotyczących używanych mechanizmów kryptograficznych.
Baza może nadal zawierać dane utworzone przed aktywacją FIPS, jednak elementy wykorzystujące starsze, niezatwierdzone mechanizmy kryptograficzne mogą wymagać aktualizacji. O tych przestarzałych algorytmach wspomniałem w poprzednim artykule dotyczącym Transparent Data Encryption. Baza danych musi być zatrzymana i wystartowana ponownie po włączeniu FIPS.
Rozpocznijmy od sprawdzenia statusu i włączenia trybu FIPS.

Posłużę się teraz bazą mytde, którą utworzyłem w poprzednim artykule. Baza ma włączone szyfrowanie TDE. Można to sprawdzić na różne sposoby, np. komendą proutil describe.

Startujemy serwer bazy z podaniem hasła -Passphrase. Od razu widać informację odnośnie trybu FIPS.

Po ponownym uruchomieniu bazy warto sprawdzić:
– log bazy danych .lg
– możliwość połączenia aplikacji
– możliwość zalogowania użytkowników (ABL, SQL)
– działanie mechanizmów TDE/HSM (jeśli są zaimplementowane)
– ewentualne błędy dotyczące algorytmów kryptograficznych.
Przy migracji istniejącej bazy do OpenEdge 13 należy zwrócić szczególną uwagę na hasła użytkowników. Jest to istotne zwłaszcza wtedy, gdy baza pochodzi z OpenEdge 12.8 lub wcześniejszej wersji.
OpenEdge 13 wprowadza bezpieczniejszy mechanizm generowania hashy haseł. Nowo tworzone hasła są generowane przy użyciu funkcji GENERATE-PASSWORD-HASH, która obsługuje algorytmy zatwierdzone przez National Institute of Standards and Technology (NIST). Starsze hasła mogły natomiast zostać zapisane przy użyciu funkcji ENCODE().
Progress udostępnił w OpenEdge 13 prosty sposób na sprawdzenie, którzy użytkownicy posiadają jeszcze hasła utworzone przy użyciu starszego mechanizmu.
W Data Administration Tool należy wybrać:
Admin → Security → User Report
Wygenerowany raport zawiera między innymi kolumnę: New Pwd?
Yes – hasło zostało wygenerowane za pomocą GENERATE-PASSWORD-HASH;
No – hasło zostało zakodowane za pomocą starszej funkcji ENCODE().
Przykładowo raport może wyglądać następująco:
User ID User Name Pwd? SQL only New Pwd? ----------------------------------------------------------------- admin Administrator yes no yes user1 Jan Kowalski yes no no user2 Anna Nowak yes yes yes
W takim przypadku użytkownik user1 wymaga szczególnej uwagi przed włączeniem FIPS, ponieważ jego hasło zostało zapisane przy użyciu starszego mechanizmu ENCODE(). MOżna to łatwo naprawić ustawiając nowe hasło,
Po włączeniu FIPS zaleca się również sprawdzenie logów agenta PASOE.
Jest to szczególnie istotne dlatego, że część problemów nie musi pojawić się podczas samego uruchamiania bazy. Mogą zostać ujawnione dopiero wtedy, gdy aplikacja wykona operację wymagającą konkretnego algorytmu kryptograficznego.
Drugim kluczowym elementem środowiska OpenEdge jest PASOE. Przed włączeniem trybu FIPS należy zatrzymać a następnie wyrejestrować wszystkie działające instancje poleceniem:
pasman unregister nazwa-instancji.
Po włączeniu FIPS i zrestartowaniu baz danych rejestrujemy ponownie instancje poleceniem:
pasman register nazwa-instancji ścieżka.
Po zarejestrowaniu instancji PASOE w środowisku FIPS należy zwrócić uwagę na jeszcze jeden element konfiguracji. Dokumentacja jasno wskazuje, że aby identyfikatory sesji generowane podczas Basic Authentication korzystały z algorytmów zatwierdzonych przez FIPS, należy odkomentować sekcję Valve w pliku: webapps/
np. C:\WrkOpenEdge130\oepas1\webapps\ROOT\META-INF\context.xml.

Kolejnym krokiem jest ponowne wygenerowanie istniejących domain keystores (magazynów kluczy domeny) PASOE za pomocą narzędzia gendomreg. Progress wskazuje, że należy wykonać tę operację, aby istniejące keystore’y korzystały z modułów kryptograficznych pracujących w trybie FIPS.
Jest to szczególnie istotne w przypadku istniejących instancji PASOE, których domain keystore został utworzony przed włączeniem FIPS. Nie należy zakładać, że sama zmiana globalnej polityki ESAM automatycznie przygotuje istniejący keystore do pracy w trybie FIPS.
Ostatnim krokiem jest restart instancji PASOE i sprawdzenie logów czy nie ma w nich błędów.