Kluczowe założenia artykułu:
- 2FA ogranicza ryzyko po przejęciu hasła do kalendarza, rozliczeń lub kart klientów.
- Role rozdzielają dostęp: recepcja obsługuje odwołania, ale nie musi widzieć notatek terapeuty.
- AES-256-GCM i klucze przechowywane w KMS utrudniają odczyt skradzionej kopii bazy.
- Izolacja placówek blokuje dostęp konta jednej organizacji do danych innego gabinetu.
- Kopie zapasowe i umowa powierzenia są konieczne, ale nie zastępują kontroli dostępu i szyfrowania.
Co właściwie pokazał incydent MyDr?
12 sierpnia 2026 roku Ministerstwo Cyfryzacji potwierdziło nieuprawniony dostęp do historycznych danych przechowywanych w systemach firmy MyDr. Incydent dotyczył informacji z okresu do kwietnia 2024 roku i mógł objąć 18,8 mln osób oraz ponad 12 tys. placówek medycznych. Jednocześnie nie wpłynął na bieżące udzielanie świadczeń ani wystawianie recept.
UODO rozpoczął kontrolę spółki MyDr i przypomniał, że placówki korzystające z zewnętrznego systemu nadal pozostają administratorami danych swoich pacjentów. Samo powierzenie danych dostawcy oprogramowania nie powoduje, że odpowiedzialność właściciela gabinetu nagle znika w chmurze.
Mówiąc prościej: gdy dostawca systemu ma problem, właściciel placówki nie może po prostu wzruszyć ramionami i powiedzieć: „serwer przecież nie stał u mnie”. Skutki organizacyjne, prawne i wizerunkowe bardzo szybko wracają do gabinetu.
Nie znamy jeszcze wszystkich technicznych przyczyn incydentu MyDr. Nie będziemy więc udawać, że wiemy, które dokładnie zabezpieczenie zawiodło. Wiemy natomiast, jak budujemy CaReMe i dlaczego nie opieramy ochrony danych na jednym mechanizmie.
RODO nie stoi nocą pod serwerownią
Zgodność z RODO jest konieczna. Tyle że samo RODO nie szyfruje bazy, nie pilnuje kluczy, nie blokuje przejętego konta i nie sprawdza, czy użytkownik jednej placówki nie próbuje dostać się do danych drugiej.
Podobnie jest z kłódką widoczną przy adresie strony. Potwierdza ona, że połączenie z serwerem jest szyfrowane. To dobrze. Nie oznacza jednak automatycznie, że cała aplikacja jest bezpieczna. Kłódka w przeglądarce jest potrzebna, ale nie jest cyfrowym odpowiednikiem ochroniarza, sejfu i alarmu jednocześnie.
Dlatego bezpieczny system do gabinetu musi chronić dane na kilku poziomach: podczas logowania, wewnątrz aplikacji, w bazie danych, w dokumentach, pomiędzy placówkami oraz w kopiach zapasowych.
W CaReMe bezpieczeństwo nie jest dodatkiem do abonamentu ani opcją dostępną dopiero w pakiecie „super premium”. Jest częścią architektury systemu.
Baza bez klucza ma być bezużyteczna
CaReMe wykorzystuje szyfrowanie AES-256-GCM. Udostępniamy również uwierzytelnianie dwuskładnikowe 2FA, wykonujemy kopie zapasowe i zapewniamy umowę powierzenia danych.
Samo hasło „AES-256” nie załatwia jednak sprawy. Można je wpisać wielkimi literami na stronie, dodać grafikę sejfu i nadal pozostawić bez odpowiedzi najważniejsze pytanie:
Gdzie znajduje się klucz pozwalający odszyfrować dane?
W CaReMe stosujemy szyfrowanie kopertowe oraz KMS, czyli wydzielony system zarządzania kluczami. Dane są szyfrowane kluczem danych, a ten klucz zostaje następnie zabezpieczony kolejnym kluczem zarządzanym w KMS.
Klucz nadrzędny nie leży więc obok bazy w zwykłym pliku konfiguracyjnym. Nie stosujemy cyfrowego odpowiednika zapasowego klucza schowanego pod wycieraczką.
Co to daje właścicielowi placówki?
Jeżeli ktoś przejmie samą kopię bazy, nie powinien zobaczyć czytelnego grafiku, kart klientów ani notatek. Powinien otrzymać zaszyfrowany materiał, do którego odczytania potrzebny jest jeszcze kontrolowany dostęp do oddzielnej warstwy kluczy.
Na tym właśnie polega szyfrowanie kopertowe: jeden klucz chroni dane, a drugi chroni klucz użyty do ich zaszyfrowania.
To jedna z najważniejszych cech, jakie powinien mieć bezpieczny system do gabinetu. Skradziona kopia bazy, której nie da się łatwo odczytać, jest po prostu znacznie mniej użyteczna.
Każda placówka ma własne drzwi
CaReMe jest systemem wielofirmowym. Korzystają z niego różne gabinety, poradnie i centra terapeutyczne, ale każda organizacja działa we własnym, odizolowanym kontekście danych.
Nie tworzymy jednego wielkiego pokoju, w którym granice między klientami wyznaczają kolorowe karteczki.
Stosujemy pełną izolację tenantów, czyli organizacji korzystających z systemu. Użytkownik jest przypisany do konkretnej placówki, a jej kontekst uwzględniany jest przy dostępie do danych, dokumentów i funkcji.
System nie sprawdza więc wyłącznie, czy dana osoba jest zalogowana. Weryfikuje również:
- do której organizacji należy;
- do jakich danych ma dostęp;
- jakie operacje może wykonywać;
- czy żądany zasób rzeczywiście należy do jej placówki.
Korzyść jest bardzo konkretna: przejęcie konta w jednej organizacji nie powinno automatycznie otwierać dostępu do danych pozostałych klientów CaReMe. Problem ma pozostać możliwie ograniczony, zamiast rozlewać się na cały system.
OWASP traktuje testowanie granic pomiędzy tenantami jako istotny element weryfikacji autoryzacji. Nawet pojedynczy rekord ujawniony użytkownikowi innej organizacji jest traktowany jako krytyczny błąd.
Właśnie dlatego bezpieczny system do gabinetu powinien rozdzielać klientów na poziomie logiki aplikacji, autoryzacji i dostępu do zasobów, a nie tylko w nazwie placówki wyświetlanej na ekranie.
Hasło nie może być jedynym ochroniarzem
Hasła wyciekają. Są wykorzystywane w kilku miejscach, wpisywane do fałszywych formularzy i zapisywane tam, gdzie nie powinny. Czasem również na żółtej karteczce przyklejonej do monitora.
Technologia nie naprawi wszystkich ludzkich przyzwyczajeń. Może jednak ograniczyć ich skutki.
Dlatego CaReMe umożliwia korzystanie z 2FA w standardzie TOTP. Po wpisaniu hasła użytkownik musi podać dodatkowy kod generowany w aplikacji uwierzytelniającej. Samo zdobycie loginu i hasła przestaje wtedy wystarczać do zalogowania. OWASP wskazuje uwierzytelnianie wieloskładnikowe jako jedno z najskuteczniejszych zabezpieczeń przed większością ataków związanych z hasłami.
Do tego dochodzą osobne konta i role użytkowników. Recepcja nie musi mieć takiego samego dostępu jak właściciel placówki. Osoba rozliczająca płatności nie musi widzieć wszystkiego, co widzi specjalista. A specjalista nie potrzebuje automatycznie uprawnień administracyjnych.
Im mniejsze uprawnienia ma przejęte konto, tym mniejszy może być zakres incydentu.
Dla właściciela oznacza to prostą korzyść: jedna pomyłka pracownika nie powinna automatycznie wystawić całej placówki na sprzedaż w internecie. I właśnie tak powinien działać bezpieczny system do gabinetu.
OWASP bez naklejki „premium”
OWASP nie jest certyfikatem, który można przykleić do stopki strony i uznać temat za zamknięty.
To zbiór konkretnych wymagań i dobrych praktyk dotyczących między innymi:
- uwierzytelniania;
- autoryzacji i kontroli dostępu;
- zarządzania sesją;
- walidacji danych;
- ochrony przed wstrzyknięciem kodu;
- bezpiecznej konfiguracji;
- rejestrowania zdarzeń;
- ochrony danych w aplikacji.
W CaReMe wykorzystujemy te wymagania podczas projektowania i rozwijania systemu. Interesuje nas nie tylko to, czy funkcja działa, ale także czy użytkownik może ominąć ograniczenia, podmienić identyfikator, wejść do nie swojej organizacji albo wykonać operację, do której nie ma uprawnień.
OWASP ASVS dostarcza uporządkowanego zestawu wymagań zarówno dla twórców bezpiecznych aplikacji, jak i dla osób weryfikujących ich zabezpieczenia.
Nie chodzi więc o „zgodność z OWASP” zapisaną pogrubioną czcionką. Chodzi o regularne sprawdzanie rzeczy, które mogą pójść źle.
CSP i nagłówki bezpieczeństwa, czyli szczegóły, których nie widać na demo
CaReMe wykorzystuje również Content Security Policy oraz nagłówki bezpieczeństwa HTTP.
CSP wskazuje przeglądarce, z jakich źródeł wolno ładować skrypty, style, obrazy i pozostałe elementy aplikacji. Jeżeli pojawi się próba uruchomienia kodu z niedozwolonego źródła, przeglądarka może ją zablokować.
Nie usuwa to błędów z kodu i nie zastępuje testów. Utrudnia jednak wykorzystanie części podatności, zwłaszcza ataków XSS. OWASP opisuje CSP jako element ochrony warstwowej po stronie przeglądarki.
Pozostałe nagłówki bezpieczeństwa pomagają między innymi ograniczać ryzyko clickjackingu, wymuszać bezpieczne połączenia i zmniejszać zakres ujawnianych informacji.
To nie są funkcje, które wywołują szczególny zachwyt podczas prezentacji kalendarza.
I bardzo dobrze.
Zabezpieczenia nie mają błyszczeć. Mają działać.
Co się dzieje, gdy jedna warstwa zawiedzie?
Na tym polega najważniejsza różnica.
Ktoś zdobywa hasło? Nadal napotyka 2FA.
Ktoś przejmuje konto? Ograniczają go przypisane role i kontekst konkretnej placówki.
Ktoś próbuje dostać się do danych innej organizacji? Zatrzymują go mechanizmy izolacji tenantów i kontroli autoryzacji.
Ktoś kopiuje bazę? Dane pozostają zaszyfrowane, a klucze są chronione w oddzielnej warstwie KMS.
W aplikacji pojawia się podatność po stronie przeglądarki? CSP i pozostałe nagłówki mogą utrudnić jej wykorzystanie.
Nie oznacza to, że incydent staje się niemożliwy. Oznacza, że pojedynczy błąd nie musi od razu zamienić się w dostęp do wszystkiego.
Tak właśnie powinien być zbudowany bezpieczny system do gabinetu.
Co naprawdę zyskuje właściciel placówki?
Korzyścią nie jest możliwość pochwalenia się przy kawie, że system korzysta z KMS. Większość rozmówców prawdopodobnie i tak szybko zmieni temat.
Prawdziwe korzyści są bardziej praktyczne:
- skopiowana baza nie daje automatycznie czytelnego dostępu do zapisanych danych;
- problem dotyczący jednej placówki nie powinien otwierać drogi do pozostałych organizacji;
- przejęte hasło nie musi wystarczyć do zalogowania;
- przejęte konto nie oznacza automatycznie dostępu administracyjnego;
- błąd aplikacji napotyka dodatkowe warstwy ochrony;
- zakres potencjalnego incydentu jest ograniczany na kilku poziomach;
- właściciel placówki może konkretnie wyjaśnić, jak chronione są powierzone dane.
Mniejsze ryzyko, że jeden błąd uruchomi lawinę. Mniejszy możliwy zasięg problemu. Większa kontrola nad tym, kto widzi dane i co może z nimi zrobić.
I zdecydowanie mniej wiary w to, że napis „zgodne z RODO” samodzielnie odstrasza cyberprzestępców.
Dlaczego CaReMe jest bezpieczniejszym wyborem?
Nie obiecujemy, że żaden incydent nigdy się nie wydarzy. Taką obietnicę można złożyć bardzo łatwo, szczególnie gdy nie trzeba od razu tłumaczyć, jak miałaby zostać spełniona.
Robimy coś bardziej konkretnego.
Zakładamy, że hasło może zostać przejęte. Użytkownik może popełnić błąd. W aplikacji może zostać wykryta nowa podatność. Jedna z warstw ochrony może kiedyś zawieść.
Dlatego dokładamy kolejne bariery, które mają zatrzymać atakującego lub przynajmniej ograniczyć skutki zdarzenia.
Szyfrowanie AES-256-GCM chroni zapisane dane. Szyfrowanie kopertowe i KMS oddzielają dane od kluczy. Izolacja tenantów rozdziela placówki. 2FA utrudnia wykorzystanie przejętego hasła. Role ograniczają zakres dostępu. OWASP porządkuje wymagania dla aplikacji, a CSP i nagłówki bezpieczeństwa dodają kolejną warstwę po stronie przeglądarki.
Nie jest to jedno efektowne hasło.
To kilka mniej efektownych mechanizmów, które mają zadziałać razem dokładnie wtedy, gdy będą naprawdę potrzebne.
Właśnie dlatego CaReMe jest bezpiecznym systemem do gabinetu: nie dlatego, że umieściliśmy tarczę na stronie, lecz dlatego, że bezpieczeństwo zostało wpisane w architekturę systemu.
Najczęstsze pytania
Instalacja systemu CaReMe wymaga rejestracji placówki oraz skonfigurowania dostępu dla użytkowników. Użytkownik powinien również przeprowadzić testy zgodności z wewnętrznymi procedurami ochrony danych.
System CaReMe jest szczególnie zalecany dla placówek, które przetwarzają wrażliwe dane pacjentów i potrzebują zaawansowanej ochrony danych, jak gabinety lekarskie czy centra terapeutyczne.
Należy zweryfikować zgodność z RODO, systemy zarządzania danymi oraz wewnętrzne polityki bezpieczeństwa. Ważne jest także zapewnienie odpowiednich uprawnień dla użytkowników.
CaReMe poszerza możliwości efektywnego zarządzania danymi pacjentów, co może przyspieszyć proces rejestracji i uporządkować dokumentację, ułatwiając przyjęcie nowych pacjentów.
Koszty wdrożenia systemu mogą się różnić w zależności od wielkości placówki i jej potrzeb. Warto oszacować wydatki na licencje, szkolenia oraz ewentualne dostosowania do specyfiki działalności.