| Termin | Definicja |
|---|---|
| Szyfrowanie danych temporalnych | Szyfrowanie danych temporalnych obejmuje zarówno tabelę bieżącą, jak i powiązaną z nią tabelę historii. Zakres szyfrowania w tabelach temporalnychSzyfrowanie danych temporalnych dotyczy nie tylko tabeli przechowującej aktualny stan rekordów, lecz także powiązanej tabeli historii. Tabela bieżąca zawiera wartości używane przez aplikację w danym momencie, natomiast tabela historii przechowuje wcześniejsze wersje wierszy wraz z informacją o okresie ich obowiązywania. Jeżeli zaszyfrowana zostanie wyłącznie tabela bieżąca, poprzednie wartości mogą pozostać dostępne w tabeli historii w postaci jawnej. Oznaczałoby to, że mechanizm chroni tylko część tego samego zbioru informacji. W modelu temporalnym trzeba uwzględnić również kolumny opisujące czas obowiązywania wersji, na przykład początek i koniec okresu. Same znaczniki czasu zwykle nie są tajne, ale mogą ujawniać kolejność zmian, częstotliwość modyfikacji lub moment wykonania operacji. Zakres ochrony powinien więc wynikać z klasyfikacji danych i sposobu wykorzystania historii. Szyfrowanie wartości biznesowych nie zawsze musi obejmować techniczne kolumny okresu, jednak dostęp do całej tabeli historii nadal powinien być kontrolowany. Ochrona danych podczas zapisu i odczytuNajprostszą warstwą ochrony jest szyfrowanie danych przechowywanych na nośniku. Może ono obejmować pliki bazy danych, pliki tabeli bieżącej, pliki tabeli historii, pliki dziennika transakcji oraz kopie zapasowe. Takie rozwiązanie ogranicza ryzyko ujawnienia danych po skopiowaniu dysku, kradzieży nośnika lub uzyskaniu dostępu do plików bez prawidłowego uruchomienia systemu bazodanowego. Nie zastępuje jednak kontroli uprawnień, ponieważ użytkownik wykonujący dozwolone zapytanie nadal może otrzymać odszyfrowane dane. Jeżeli wymagane jest ukrycie wybranych wartości również przed częścią użytkowników bazy, stosuje się szyfrowanie na poziomie kolumn lub aplikacji. W takim wariancie tekst jawny może być szyfrowany przed zapisaniem do tabeli bieżącej, a identyczna reguła musi obowiązywać przy zapisie wersji do tabeli historii. Odczyt historii wymaga wtedy użycia odpowiedniego klucza i mechanizmu deszyfrowania. Należy sprawdzić, czy wyszukiwanie, sortowanie i porównywanie zaszyfrowanych wartości nadal działa zgodnie z wymaganiami, ponieważ szyfrowanie może ograniczyć możliwość wykonywania operacji na danych. Klucze, kopie zapasowe i ślady zmianSkuteczność szyfrowania zależy od ochrony kluczy. Klucz nie powinien być przechowywany razem z zaszyfrowanymi plikami w sposób umożliwiający jego łatwe odczytanie. W praktyce stosuje się oddzielny magazyn kluczy, kontrolę dostępu, rejestrowanie użycia oraz procedurę rotacji. Rotacja klucza wymaga ustalenia, czy dane są ponownie szyfrowane, czy stosuje się klucz opakowujący do ochrony kluczy używanych przez bazę. Bez poprawnie zachowanych kluczy odzyskanie zarówno aktualnych rekordów, jak i ich wersji historycznych może być niemożliwe. Do zakresu testów należy włączyć kopie zapasowe, eksporty, repliki oraz dzienniki transakcji, ponieważ mogą zawierać poprzednie wartości zapisane przed zmianą rekordu. Samo zaszyfrowanie tabel nie gwarantuje ochrony danych obecnych w plikach tymczasowych lub w niezaszyfrowanym archiwum. Warto także ustalić, jak długo historia ma być przechowywana i kto może ją odczytywać. Dłuższy okres retencji zwiększa liczbę dostępnych wersji danych, dlatego uprawnienia do zapytań temporalnych powinny być nadawane niezależnie od prawa do modyfikowania bieżących rekordów. Sprawdzenie konfiguracji na komputerze i w baziePodczas diagnostyki należy potwierdzić, że szyfrowanie obejmuje oba elementy pary temporalnej oraz wszystkie obiekty techniczne związane z ich przechowywaniem. Trzeba sprawdzić definicję tabeli bieżącej, definicję tabeli historii, mapowanie kolumn, indeksy i mechanizm automatycznego przenoszenia poprzednich wersji. Istotny jest również test praktyczny: utworzenie rekordu, jego kilkukrotna zmiana, odczyt bieżącej wartości i odczyt historii, a następnie sprawdzenie, czy dane pozostają chronione po zamknięciu połączenia i odtworzeniu kopii zapasowej. W środowisku lokalnym serwisant może dodatkowo zweryfikować, czy aplikacja nie zapisuje kopii danych temporalnych w plikach tekstowych, pamięci podręcznej lub lokalnych logach. Należy rozróżnić szyfrowanie przechowywania od szyfrowania transmisji: pierwsze chroni dane zapisane na dysku, a drugie połączenie między aplikacją i bazą. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, dlatego w przypadku problemów z dostępem do zaszyfrowanych danych podstawą diagnostyki jest zachowanie kluczy, kopii zapasowych oraz oryginalnych nośników bez pochopnego formatowania. |