Szyfrowanie aplikacji

Funkcjonalność opisana w tej sekcji umożliwia konfigurowanie we wdrożeniach pól szyfrowanych podczas przechowywania w bazie danych. Ta funkcja oraz funkcja maskowania w interfejsie użytkownika opisana w poprzedniej sekcji wzajemnie wykluczają się. Cecha obsługuje szyfrowanie konkretnych elementów przechowywanych w kolumnie CLOB lub XML.

W poniższych punktach przedstawiono cechy funkcji szyfrowania:

  • Klucz szyfrowania definiuje się przy użyciu magazynu kluczy, który należy skonfigurować w celu korzystania z tej funkcji. Szczegółowe informacje o konfigurowaniu magazynu kluczy w systemie można znaleźć w instrukcji instalacji.

  • Jeśli w polu skonfigurowano funkcję szyfrowania, zaszyfrowane dane są przechowywane w specjalnym polu szyfrowania, które nie jest polem źródłowym (przedstawionym użytkownikowi w interfejsie użytkownika). Pole źródłowe pobiera dane jako maskowane. Pole specjalne jest wymagane do obsługi szyfrowania, z tego względu w produkcie należy uwzględnić jego obsługę.

  • W przypadku zaszyfrowanych danych z dozwolonym wyszukiwaniem system obsługuje pobieranie wartości skrótu w polu specjalnym. Produkt musi zapewnić obsługę tej funkcji. Poza dostarczeniem pola specjalnego umożliwiającego pobieranie wartości skrótu, w podstawowej funkcji wyszukiwania tych danych również należy uwzględnić tę konfigurację.

  • System obsługuje szyfrowanie danych pobieranych jako element należący do pola XML. Jeśli pole XML znajduje się w schemacie należącym do produktu, to produkt musi uwzględniać obsługę pobierania szyfrowanych danych.

Poniższe sekcje zawierają dodatkowe informacje na temat obsługi szyfrowania dostępnego w produkcie framework. Więcej informacji można znaleźć w rozdziale dotyczącym zabezpieczeń w podręczniku administratora dla określonego produktu.

Szyfrowanie i maskowanie danych

Jeśli w produkcie włączono szyfrowanie określonego typu danych, wymagane jest utworzenie specjalnego pola szyfrowania w celu pobierania zaszyfrowanej wartości. Szyfrowanie jest opcjonalne, zatem pole źródłowe (przedstawione użytkownikowi w interfejsie użytkownika) nie powinno być specjalnym polem zaszyfrowanym. Po skonfigurowaniu szyfrowania system sam wypełnia zaszyfrowane pole. Pole źródłowe zostanie domyślnie wypełnione przy użyciu znaków gwiazdki. W taki sposób maskowane pole będzie pokazane użytkownikowi na stronie, a nie przy użyciu zaszyfrowanej wartości.

W poniższych punktach przedstawiono sposób funkcjonowania systemu w przypadku skonfigurowanej i nieskonfigurowanej opcji szyfrowania. Załóżmy przykładowo, że pole to numer karty kredytowej. Użytkownik wyświetla to pole i wprowadza w nim nazwę CC_​NBR. W tabeli dostępne jest również drugie pole ENCR_​CC_​NBR. Użytkownik wypełnia numer karty kredytowej:

  • Jeśli nie skonfigurowano szyfrowania, pole CC_​NBR zostanie zaktualizowane w celu uwzględnienia w nim wprowadzonego numeru karty kredytowej, a pole ENCR_​CC_​NBR pozostanie puste. Uwaga: W takim przypadku we wdrożeniu można wybrać konfigurację maskowania w interfejsie użytkownika.

  • Jeśli skonfigurowano szyfrowanie, pole CC_​NBR zostanie zaktualizowane jako "*******************", a pole ENCR_​CC_​NBR będzie zawierać zaszyfrowaną wartość. Pole standardowe może zostać wypełnione przy użyciu maksymalnie 50 znaków gwiazdki.

Jeśli z jakiejś przyczyny standardowe maskowanie przy użyciu wyłącznie znaku gwiazdki jest niepożądane, w systemie obsługiwane jest użycie jawnego algorytmu maskowania przy użyciu tego samego miejsca dołączania Konfiguracja cech - maskowanie danych, które stosowane jest w maskowaniu w interfejsie użytkownika.

Ostrzeżenie: W przeciwieństwie do maskowania w interfejsie, maskowanie zaszyfrowanych pól nie jest zależne od zabezpieczeń. Dane przechowywane w polu źródłowym dla wszystkich zaszyfrowanych danych powinny być maskowane. Należy upewnić się, że nie skonfigurowano logiki autoryzacji zabezpieczeń w algorytmach używanych w tym typie maskowania.

Konfiguracja opcji cechy

Należy utworzyć konfigurację cechy o typie Szyfrowanie. Dla każdego szyfrowanego pola źródłowego należy wprowadzić opcję o typie Szyfrowanie pola. Wartość będzie zawierać mnemoniki odwołujące się do odpowiedniego aliasu klucza szyfrowania zdefiniowanego w magazynie kluczy wraz z konfiguracją dotyczącą pola i jego lokalizacji w tabeli. W przeciwieństwie do maskowania danych w interfejsie użytkownika, konfiguracja szyfrowania danych odnosi się raczej do sposobu przechowywania danych, a nie do sposobu ich wyświetlania. Dodatkowo w każdym zapisie można zdefiniować jawny algorytm maskowania w celu nadpisania domyślnego, a także pole skrótu i alias skrótu, jeśli są obsługiwane.

W przypadku danych przechowywanych w określonej kolumnie tabeli musi istnieć jawne pole przeznaczone do pobierania zaszyfrowanej wartości. Należy wskazać nazwę tabeli, nazwę pola źródłowego i nazwę pola zaszyfrowanego wraz z aliasem: table='table_​name', field='fld_​name', encryptedField='encr_​fld_​name', alias='alias key'

Należy również określić klauzulę "where", jeśli dane znajdują sie w tabeli podrzędnej i wymagane jest zaszyfrowanie tylko konkretnego typu danych.

Przykład: table='CI_​PER_​ID', field='PER_​ID_​NBR', encryptedField='ENCR_​PER_​ID_​NBR', alias='key alias', where='ID_​TYPE_​CD='SSN''

W przypadku danych przechowywanych w kolumnie XML w rekordzie pole źródłowe do zaszyfrowania musi odwoływać się do nazwy pola metadanych w swojej definicji schematu wraz z elementem służącym do pobierania zaszyfrowanych danych i z aliasem: field='field_​name', encryptedField='encr_​field_​name', alias='key alias'

Składnia służąca do dodawania odwołania do algorytmu maskowania to: maskAlg='algorithm name' .

Składnia służąca do dodawania konfiguracji pobierania wartości skrótu na potrzeby wyszukiwania to: hashAlias='hashAliasKey' hashField='HASH_​FLD_​NAME'.

Poniżej znajduje się przykładowa konfiguracja, w której stosowane są wszystkie możliwe opcje (określony algorytm maskowania, klauzula "where" i obsługa pola skrótu):

table='CI_​​PER_​​ID', field='PER_​​ID_​​NBR', alias='aliasKey', encryptedField='ENCR_​​PER_​​ID_​​NBR', hashAlias='hashAliasKey' hashField='HASH_​​PER_​​ID_​​NBR', where='ID_​​TYPE_​​CD=SSN', maskAlg='CM-PERIDMASK'

Wyszukiwanie wg zaszyfrowanej wartości

W poniższych punktach opisano konfigurację strefy eksploratora stosowaną, gdy w produkcie obsługiwana jest wartość skrótu zaszyfrowanego pola na potrzeby wyszukiwania:

  • Wartość filtra użytkownika powinna odwoływać się do pola źródłowego i zawierać dodatkowy mnemonik encrypt=. Na przykład:

    type=STRING
    label=PER_ID_NBR 
    encrypt=[CI_PER_ID,PER_ID_NBR,ID_TYPE_CD,F1]

    Więcej informacji zawiera sekcja Filtry użytkownika.

  • Instrukcja SQL powinna zawierać wartość skrótu w klauzuli WHERE. Szyfrowanie jest opcjonalne, a zatem strefa produktu obejmująca wyszukiwanie według pola podlegającego szyfrowaniu będzie uwzględniać znalezienie dopasowania filtra w polu źródłowym (jako tekstu niesformatowanego) lub w polu skrótu. Na przykład:

    WHERE
       [(F2) (ID.PER_ID_NBR =:F2 OR ID.HASH_PER_ID_NBR = :F2)]

Dostosowanie algorytmu szyfrowania

Mimo że algorytm szyfrowania przeznaczony do użycia z danym kluczem jest pobierany z magazynu kluczy, czasami istnieją dodatkowe informacje powiązane z algorytmem, które mogą być wymagane do szyfrowania lub deszyfrowania danych.

System udostępnia opcję konfiguracji cechy typu Szyfrowanie za pomocą typu opcji Informacje o algorytmie, z której można skorzystać, aby dostosować funkcjonowanie szyfrowania.

  • Można zmodyfikować domyślny tryb i wypełnienie algorytmu szyfrowania.

  • Można także określić algorytm podpisywania dla klucza, jeśli ma on być używany do cyfrowego podpisywania.

Szczegóły dotyczące składni zawiera szczegółowy opis typu opcji cechy.