# Klucze

Podstawą wszystkich usług OCK jest algorytm szyfrowania w oparciu o jeden (lub więcej) kluczy. Odpowiedni klucz jest potrzebny do zaszyfrowania i odszyfrowania danych.

Przy samodzielnym implementowaniu szyfrowania taki klucz musi zostać zapisany w sposób dostępny dla aplikacji, co zwiększa ryzyko jego wycieku, a przez to zmniejsza bezpieczeństwo danych.

Podczas używania OCK klucze nigdy nie opuszczają enklaw SGX. Uprawnieni użytkownicy posługują się jedynie identyfikatorem (aliasem) klucza, a cały proces przetwarzania jest po stronie serwera.

# Typy klucza

OCK obsługuje trzy typy tworzonych kluczy:

  • Advanced Encryption Standard (AES)
  • Rivest-Shamir-Adleman algorithm (RSA)
  • Diffie-Helman (DH)

AES jest algorytmem symetrycznym. Do operacji szyfrowania i deszyfrowania używany jest ten sam klucz.

RSA to algorytm asymetryczny w którym generowana jest para kluczy: prywatny i publiczny. Do szyfrowania danych jest wykorzystywany klucz prywatny, a do deszyfrowania klucz publiczny.

DH jest algorytmem wyjątkowo odpornym na podsłuchiwanie procesu ustalania tajnego klucza. Tak wygenerowany klucz jest najczęściej używany do szyfrowania komunikacji.

Wszystkie typy kluczy nigdy nie opuszczają serwerów OCK i operacje wykonywane z ich użyciem odbywają się w pamięci enklaw SGX.

# Zarządzanie kluczami

Do wykonania dowolnej operacji z pomocą OCK konieczne jest wskazanie aliasu klucza, który zostanie użyty.

Aplikacja, deweloperzy i inni użytkownicy OCK posługują się w operacjach aliasami. Najpierw konieczne jest utworzenie klucza master, do którego następnie zostanie przypisana dowolna ilość aliasów. Tworzenie aliasów i ich polityk bezpieczeństwa pozwala precyzyjnie oddzielić uprawnienia szyfrowania od deszyfrowania.

Jeden klucz master może mieć wiele aliasów, jeden alias należy tylko do jednego klucza master. Dobrą praktyką jest tworzenie aliasu dla każdego użycia/skryptu/aplikacji po to, żeby móc szczegółowo zarządzać uprawnieniami

# Polityki użycia klucza

Każdy alias klucza może mieć zdefiniowaną politykę bezpieczeństwa. Na przykład czas ważności, jak również adresy IP z których może być używany.

Politykę definiuje się podczas tworzenia aliasu klucza w API.

Aby uzyskać dostęp do REST API skontaktuj się z nami