Mechanizm szyfrowania zaszyty w systemie YetiForce, składa się z klucza [klucz szyfrujący + wektor], które są wymagane dla funkcji użytych do szyfrowania. Klucze są przechowywane w dwóch różnych lokalizacjach:
Oba klucze nie podlegają szyfrowaniu, a dodatkowo zmiana któregokolwiek z nich, gdy dane są zaszyfrowane, spowoduje brak dostępu do zaszyfrowanych danych.
Lista danych podlegających zaszyfrowaniu aktualnie jest przechowywana w zmiennej $mapPasswords w pliku app/Encryption.php. W przyszłości użytkownik sam będzie mógł określić co podlega szyfrowaniu bezpośrednio z poziomu edycji pól. Wówczas każde pole oznaczone jako "Dane wrażliwe" będzie podlegało szyfrowaniu, a zmienna $mapPasswords będzie zawierała tylko dane, które nie mogą być zarządzane z poziomu aplikacji przez administratora CRM.
Do poprawnego i bezpiecznego szyfrowania danych, użyliśmy wbudowanych funkcji PHP:
Dodatkowo administrator systemu YetiForce w panelu konfiguracyjnym szyfrowania określa metodę szyfrowania z pośród wszystkich dostępnych metod, przy czym zalecamy używania tych metod, które zostały oznaczone jako rekomendowane.
Cały proces szyfrowania odbywa się w tle [CRON], a dodatkowo korzysta on z transakcyjności na poziomie bazy danych [tylko zaszyfrowanie wszystkich danych jest uznane za prawidłowe, przerwanie akcji spowoduje cofnięcie szyfrowania].
Do poprawnego i bezpiecznego deszyfrowania danych użyliśmy wbudowanych funkcji PHP:
Cały proces deszyfrowania odbywa się w tle [CRON] i jest on uruchamiany przez administratora systemu CRM. Jeżeli ktoś zmodyfikuje klucz szyfrujący, wektor lub metodę szyfrowania na inną niż użyte przy szyfrowaniu, wówczas nie będzie możliwe odzyskanie danych zaszyfrowanych!