Powermail Encryption for TYPO3
Automatyczne szyfrowanie danych formularzy w bazie danych — encryption at rest zgodny z RODO art. 32
Twoje formularze kontaktowe zbierają dane osobowe: imiona, emaile, telefony, treści zgłoszeń. Standardowy Powermail zapisuje je w bazie MySQL jako plaintext — czytelne dla każdego z dostępem do bazy. Nasza wtyczka zamienia każdy rekord w szyfrogram automatycznie, przy każdym zgłoszeniu, bez zmiany w pracy redaktora.
Jedno polecenie Composer. Jeden klucz w .env. Całość działa w poniżej godziny.
Co się stanie, gdy ktoś uzyska dostęp do Twojej bazy
Wyobraź sobie scenariusz: atakujący uzyskuje dostęp do bazy MySQL — przez SQL injection, skompromitowane hasło phpMyAdmin, atak na hosting lub kradzież backup’u. Dwa różne wyniki.
Bez wtyczki - natychmiastowy wyciek
✗ Atakujący widzi pełne dane osobowe: Jan Kowalski, [email protected], 601-234-567
✗ Treści zgłoszeń czytelne: reklamacje, pytania, dane medyczne, dane finansowe
✗ Obowiązkowe zgłoszenie naruszenia do UODO w 72 godziny
✗ Powiadomienie każdej osoby, której dane wyciekły
✗ Ryzyko kary do 20 mln EUR lub 4% rocznego obrotu
✗ Utrata zaufania klientów i reputacji firmy
Z wtyczką - dane bezwartościowe
✓ Atakujący widzi: enc:v1:R3hJbkx5... — losowy ciąg znaków
✓ Bez klucza szyfrowania dane są nie do odczytania
✓ Utrata zaszyfrowanych danych może nie wymagać zgłoszenia (motyw 87 RODO, stanowisko EROD)
✓ Szyfrowanie to „działanie minimalizujące szkodę” — łagodzi wymiar kary (art. 83 ust. 2 lit. c)
✓ Reputacja firmy chroniona — wyciekły szyfrogramy, nie dane
✓ DPO ma konkretny dowód działań prewencyjnych w dokumentacji
Przed i po instalacji
Bez wtyczki
✗ Dane w bazie MySQL jako plaintext — czytelne dla każdego z dostępem
✗ Backup bazy = pełna kopia danych osobowych w czytelnej formie
✗ SQL injection = natychmiastowy wyciek danych
✗ Brak szyfrowania at rest = brak spełnienia art. 32 ust. 1 lit. a) RODO
✗ Środowiska dev/staging z kopią produkcyjnej bazy = dane krążą po laptopach developerów
Z wtyczką
✓ Każdy rekord zaszyfrowany algorytmem ChaCha20-Poly1305 (AEAD, RFC 8439)
✓ Backup bazy zawiera wyłącznie szyfrogramy — bezwartościowe bez klucza
✓ SQL injection = atakujący widzi enc:v1:... zamiast danych osobowych
✓ Szyfrowanie at rest = silny argument zgodności z RODO art. 32
✓ Dev/staging bezpieczne — nawet z kopią bazy, dane są zaszyfrowane
Dla kogo jest wtyczka Powermail
- Firmy enterprise
Lead generation, formularze ofertowe, reklamacje, zgłoszenia serwisowe — każdy formularz kontaktowy zbiera dane osobowe. Im więcej zgłoszeń w bazie, tym większe ryzyko przy wycieku. Szyfrowanie at rest to minimalne zabezpieczenie, którego powinien wymagać każdy DPO.
- Sektor medyczny
Formularze rejestracyjne pacjentów, ankiety zdrowotne, zgłoszenia do programu leczenia — to są dane wrażliwe (art. 9 RODO, szczególne kategorie danych). Kary za wyciek danych medycznych są najwyższe. Szyfrowanie nie jest opcją — to absolutny wymag.
- Sektor publiczny i instytucje
Formularze kontaktowe urzędów, portale obywatelskie, zgłoszenia — podlegają ustawie o dostępności cyfrowej i RODO. Prezes UODO regularnie kontroluje sektor publiczny. Decyzja DKN.5131.8.2022 (kara za brak szyfrowania laptopa w urzędzie gminy) pokazuje, że brak szyfrowania to realne ryzyko.
- NGO i fundacje
Dane beneficjentów, darczyńców, wolontariuszy — często osoby w trudnej sytuacji życiowej. Wyciek tych danych to nie tylko kara UODO, ale przede wszystkim krzywda realnych ludzi. Nasza wtyczka chroni ich dane za ułamek kosztu dedykowanego rozwiązania.
- E-commerce
Formularze zamówień custom (poza standardowym koszykiem), konfiguratory produktów, zapytania B2B — dane płatnicze i handlowe w plaintext to ryzyko, które klienci coraz częściej weryfikują przy wyborze dostawcy.
- Każda firma przygotowująca się do audytu
Formularze zamówień custom (poza standardowym koszykiem), konfiguratory produktów, zapytania B2B — dane płatnicze i handlowe w plaintext to ryzyko, które klienci coraz częściej weryfikują przy wyborze dostawcy.
Jak to działa? Proces w trzech krokach
- Instalacja
Jedno polecenie Composer instaluje wtyczkę w Twoim projekcie TYPO3 13+. Generujesz 256-bitowy klucz szyfrowania i umieszczasz go w pliku .env na serwerze. Czyścisz cache TYPO3. Gotowe.
- Automatyczne szyfrowanie
Od tego momentu każde nowe zgłoszenie z formularza Powermail jest automatycznie szyfrowane w bazie. Temat, treść, imię nadawcy, email, każda odpowiedź — wszystko zamieniane w szyfrogram enc:v1:... Stare rekordy działają bez zmian — wtyczka szyfruje tylko nowe dane.
- Przezroczyste odczytywanie
Redaktor otwiera moduł Powermail w Backend — widzi czytelne dane jak zawsze. Eksportuje CSV — dane odszyfrowane. Klient klika link potwierdzający — działa. Emaile wychodzą w plaintext. Deszyfrowanie odbywa się automatycznie, w pamięci serwera, tylko na czas wyświetlania.
Całość działa przez system eventów TYPO3 — bez modyfikacji klas Powermail (zero XCLASS, zero patchów). Aktualizacja Powermail nie psuje szyfrowania.
Co dokładnie szyfrujemy
- Tabela tx_powermail_domain_model_mail
• subject — temat zgłoszenia
• body — treść wiadomości
• sender_name — imię i nazwisko nadawcy
• sender_mail — adres email nadawcy - Tabela tx_powermail_domain_model_answer
• value — wartość każdej odpowiedzi z formularza: imię, telefon, treść, wybór z listy, JSON upload’ów, daty, checkboxy
Emaile wysyłane przez Powermail (do klienta i do firmy) pozostają plaintextem — szyfrowanie dotyczy wyłącznie kopii w bazie danych (encryption at rest).
Specyfikacja techniczna
Kryptografia
• Algorytm: ChaCha20-Poly1305 (IETF, RFC 8439) — uwierzytelnione szyfrowanie AEAD
• Klucz: 256-bit, base64, przechowywany w .env (POWERMAIL_ENC_KEY)
• Nonce: 96-bit, losowy na każdy zapis (random_bytes) — nawet identyczne dane dają różne szyfrogramy
• Integralność: tag Poly1305 — wykrywa każdą modyfikację szyfrogramu (art. 5 ust. 1 lit. f RODO)
• Implementacja: natywny libsodium PHP (PHP 7.2+, brak zewnętrznych zależności)
• Format zapisu: enc:v1:<base64(nonce ‖ ciphertext ‖ tag)>
Dlaczego ChaCha20-Poly1305
• Ten sam algorytm co Google Chrome (TLS 1.3), Cloudflare, WireGuard, Signal
• Szybszy niż AES-GCM na serwerach bez sprzętowego AES-NI (popularne VPS, kontenery Docker)
• Odporniejszy na ataki timing side-channel niż AES
• Brak katastrofalnego problemu nonce-reuse (w odróżnieniu od AES-GCM)
• Rekomendowany przez PHP core team jako domyślny algorytm w libsodium
Architektura
• Integracja wyłącznie przez system eventów TYPO3 — zero XCLASS, zero patchów, zero forków
• Aktualizacja Powermail nie wymaga modyfikacji wtyczki
• Automatyczne szyfrowanie przy zapisie, automatyczne deszyfrowanie przy odczycie
• Pokrywa: Backend, eksport CSV/XLSX, linki potwierdzające, finishery, custom kod Extbase
• Migracja stopniowa — prefix enc:v1: pozwala współistnieć zaszyfrowanym i niezaszyfrowanym rekordom
• Przygotowane na rotację klucza — prefix wersji (v1, v2...) pozwala na płynną zmianę algorytmu w przyszłości
Wymagania systemowe
• CMS TYPO3 13 lub nowszy
• Powermail (kompatybilna wersja dla TYPO3 13+)
• PHP 7.2+ z rozszerzeniem libsodium (domyślnie dostępne)
• Dostęp do pliku .env na serwerze produkcyjnym
Co się zmienia w codziennej pracy redaktora
Nic. Dokładnie nic. Moduł Powermail w Backend wyświetla dane jak dotychczas. Eksporty CSV i XLSX zawierają czytelne dane. Emaile wysyłane są w plaintext. Linki potwierdzające działają. Finishery Powermail działają.
Jedyna widoczna zmiana: ktoś oglądający tabelę bezpośrednio w phpMyAdmin, Adminer lub innym kliencie SQL zobaczy enc:v1:R3hJbkx5... zamiast czytelnych wartości. I dokładnie o to chodzi — baza danych nie jest interfejsem redakcyjnym. Dane osobowe nie powinny tam leżeć jako plaintext.
Gwarancje
✓ Pełny kod źródłowy — bez obfuskacji, bez minifikacji, bez serwera licencyjnego. Twoje szyfrowanie działa nawet jeśli nasza firma przestanie istnieć.
✓ Klucz szyfrowania wyłącznie u Ciebie — nie mamy do niego dostępu, nie przechowujemy kopii, nie przesyłamy go do żadnego zewnętrznego serwisu.
✓ Zero phone-home — wtyczka nie komunikuje się z naszymi serwerami. Całość działa lokalnie na Twojej infrastrukturze.
✓ Upgrade-safe — wtyczka działa przez system eventów TYPO3, bez XCLASS. Aktualizacja Powermail nie wymaga naszej interwencji.
✓ Migracja w przyszłości — prefix wersji (enc:v1:) przygotowuje system na rotację klucza i zmianę algorytmu bez utraty danych.
Cena i dostępność
Powermail Encryption jest dostępna dla TYPO3 12,13,14 w cenie jednorazowej 499 EUR. Po zakupie otrzymujesz dostęp do prywatnego repozytorium i możesz zintegrować oraz skonfigurować wtyczkę samodzielnie.
Zgodność z RODO
• Art. 32 ust. 1 lit. a) — szyfrowanie danych osobowych jako środek techniczny bezpieczeństwa
• Art. 5 ust. 1 lit. f) — ochrona integralności danych (tag Poly1305 wykrywa każdą modyfikację)
• Art. 25 ust. 1 — ochrona danych w fazie projektowania (privacy by design) i domyślna ochrona danych (privacy by default)
• Art. 83 ust. 2 lit. c) — szyfrowanie jako „działanie minimalizujące szkodę” łagodzące wymiar kary
• Klucz w .env — nigdy w bazie, nigdy w repozytorium kodu, nigdy w logach
• Zero transmisji danych na zewnątrz — całość działa lokalnie
Dla audytorów RODO i IOD przygotowujemy dokumentację techniczną opisującą zastosowany algorytm, model kluczy, zakres szyfrowanych danych i architekturę rozwiązania — gotową do włączenia do rejestru czynności przetwarzania i analizy ryzyka.
Najczęściej zadawane pytania
Nie. ChaCha20-Poly1305 dodaje poniżej 1 milisekundy do każdego zapisu i odczytu. Przy typowym formularzu użytkownik nie zauważy różnicy. Nawet masowy eksport tysięcy rekordów jest płynny.
Bez klucza dane są nie do odzyskania — to fundamentalna cecha silnego szyfrowania. Dlatego rekomendujemy backup klucza offline: wydruk w sejfie, oddzielnie od backupów bazy. W planie Business i Enterprise pomagamy skonfigurować procedurę zarządzania kluczem.
Tak. Plan Business zawiera jednorazową migrację historycznych danych w cenie. W planie Solo oferujemy to jako osobną usługę. Prefix enc:v1: pozwala na współistnienie zaszyfrowanych i niezaszyfrowanych rekordów — migracja może być stopniowa.
Tak. Wtyczka szyfruje dane ze wszystkich formularzy Powermail na całej instalacji TYPO3. Nie wymaga konfiguracji per formularz — działa globalnie po instalacji.
Obecna wersja wtyczki jest dedykowana dla Powermail. Jeśli potrzebujesz szyfrowania dla EXT:form lub innego rozszerzenia — skontaktuj się z nami. W planie Enterprise oferujemy rozszerzenie na inne tabele i rozszerzenia TYPO3.
RODO nie definiuje jednego wystarczającego środka — wymaga całościowego podejścia. Ale szyfrowanie at rest algorytmem AEAD (state of the art) to jeden z najmocniejszych argumentów w analizie ryzyka. Przy wymiarze kary UODO bierze pod uwagę działania minimalizujące szkodę. Co więcej, utrata zaszyfrowanych danych może w ogóle nie wymagać zgłoszenia naruszenia — to konkretna wartość dla Twojego DPO.
Tak — na konsultacji online pokazujemy działanie wtyczki na środowisku testowym: formularz, zapis, widok w Backend, widok w phpMyAdmin (szyfrogram). Umów się na demo przez formularz kontaktowy lub telefon.
Licencja jest roczna. Przed końcem okresu wysyłamy przypomnienie. Po odnowieniu otrzymujesz dostęp do nowych wersji i support na kolejne 12 miesięcy. Jeśli nie odnowisz — wtyczka działa dalej (szyfrowanie nie przestaje działać), ale tracisz dostęp do aktualizacji i supportu.
Dlaczego my
Agencja Dr Blitz-Weblab to TYPO3 Silver Member z 8-letnim doświadczeniem, specjalizujący się wyłącznie w TYPO3. Obsługujemy klientów enterprise, instytucje publiczne, sektor medyczny i NGO w Polsce, Niemczech i Austrii. Znamy TYPO3, Powermail, Extbase i RODO od podszewki.
Nasi klienci: Universitätsmedizin Mannheim (portal medyczny, 25 000+ podstron), Niemiecki Instytut Historyczny w Warszawie (instytucja naukowa), RED NOSES International (międzynarodowe NGO), Fundacja Nadzieja w Nas (integracja z Tpay). Każdy z tych klientów przetwarza dane osobowe przez formularze TYPO3 — wiemy, jak to zabezpieczyć.
Ta wtyczka nie jest eksperymentem akademickim. Powstała z realnej potrzeby naszych klientów i działa w produkcji.