Jak dokładnie działa HideReveal
Ta strona opisuje mechanizm działania aplikacji desktopowej HideReveal na poziomie technicznym — z myślą o osobach z działów IT/bezpieczeństwa, które przed wdrożeniem programu chcą dokładnie wiedzieć, co się dzieje z danymi. Jeśli szukasz raczej instrukcji krok po kroku, zajrzyj do instrukcji obsługi. Kwestie zgodności z RODO opisuje osobno Polityka prywatności.
Spis treści
- Architektura: przetwarzanie wyłącznie lokalne
- Gdzie przechowywany jest słownik danych
- Format tokenu
- Jak działa anonimizacja pliku Excel
- Jak działa anonimizacja Word / PowerPoint / TXT — i jej ograniczenia
- Jak działa deanonimizacja (odkodowanie)
- Czego HideReveal nie robi
1. Architektura: przetwarzanie wyłącznie lokalne
HideReveal to zwykła aplikacja desktopowa (Python + Tkinter), która działa jako proces na Twoim komputerze. Aplikacja nie nawiązuje żadnych połączeń sieciowych w ramach swojego działania — nie wysyła plików, wartości z nich wyciągniętych ani samego słownika token↔wartość na żaden serwer HideReveal, bo taki serwer do tego celu po prostu nie istnieje. Cały proces anonimizacji i deanonimizacji odbywa się w pamięci procesu i w lokalnym pliku bazy danych opisanym niżej.
To odróżnia samą aplikację od strony hidereveal.eu, którą teraz czytasz — strona WWW, za zgodą odwiedzającego, korzysta z Google Analytics 4 do statystyk odwiedzin. Aplikacja desktopowa nie ma z tym nic wspólnego i nie zawiera żadnej telemetrii ani analityki. Szczegóły dotyczące strony WWW opisuje Polityka prywatności.
2. Gdzie przechowywany jest słownik danych
Mapowanie „wartość oryginalna → token" trzymane jest w lokalnej bazie SQLite (plik anonymizer.db), w standardowym, systemowym katalogu na dane aplikacji:
- Windows:
%APPDATA%\HideReveal\anonymizer.db(czyli katalog „Roaming" profilu użytkownika) - macOS:
~/Library/Application Support/HideReveal/anonymizer.db - Linux:
$XDG_DATA_HOME/HideReveal/anonymizer.db, a w braku tej zmiennej środowiskowej —~/.local/share/HideReveal/anonymizer.db
To jedno, wspólne miejsce dla wszystkich projektów założonych na danym komputerze — każdy projekt jest w tej bazie osobnym zestawem wpisów, rozróżnianym po swoim identyfikatorze. Plik bazy nigdzie się nie synchronizuje ani nie wysyła — to zwykły plik na dysku, który możesz samodzielnie zabezpieczyć (np. szyfrowaniem dysku) tak samo, jak każdy inny wrażliwy plik na tym komputerze.
Dla „szybkiej anonimizacji" (bez zakładania trwałego projektu) mapowania też trafiają do tej samej bazy — różnica jest taka, że identyfikator takiego doraźnego projektu żyje tylko w pamięci programu na czas jego działania i nie jest nigdzie zapisany poza samą bazą tokenów, więc po ponownym uruchomieniu aplikacji nie da się już „dojść" do niego z poziomu interfejsu — chyba że masz plik wynikowy z osadzonym w nim identyfikatorem (patrz niżej).
3. Format tokenu
Każdy token ma postać SKRÓT_TAG_LOSOWA, np. A1B2C3_PESEL_XZ9KQP2M:
- SKRÓT — skrót identyfikatora projektu, z którego pochodzi wartość,
- TAG — kod tagu semantycznego (np.
PESEL,EMAIL,KWOTA), niezależny od języka interfejsu, - LOSOWA — osiem losowych znaków (litery A-Z i cyfry), generowanych funkcją
secrets.choicez modułu standardowego Pythona (czyli źródłem odpowiednim do zastosowań kryptograficznych, a nie zwykłym, przewidywalnym generatorem liczb losowych).
Token jest więc samowystarczalny — sam z siebie nie zdradza oryginalnej wartości, ale niesie wystarczająco dużo kontekstu (jaki to typ danych, z jakiego projektu), żeby był czytelny dla człowieka i żeby dało się go jednoznacznie odkodować z powrotem, nawet jeśli wiersze z różnych zanonimizowanych plików trafią przypadkiem do jednego arkusza czy dokumentu.
4. Jak działa anonimizacja pliku Excel
To właśnie ten proces, uruchamiany jako pierwszy w danym projekcie (albo w danej sesji szybkiej anonimizacji), buduje słownik opisany w punkcie 2 — każda anonimizowana wartość z Excela trafia do niego razem z przypisanym jej tokenem. Dopiero istnienie tego słownika pozwala później anonimizować powiązane dokumenty Word, PowerPoint czy pliki tekstowe (patrz punkt 5).
Po wskazaniu kolumn do anonimizacji, HideReveal wczytuje wszystkie arkusze skoroszytu (nie tylko aktywny) i zapisuje z powrotem każdy z nich pod jego oryginalną nazwą — również te, w których żadna z wybranych kolumn nie występuje (te przechodzą bez zmian). Wszystkie kolumny są wczytywane jako tekst (nie liczby), żeby uniknąć typowego błędu Excela: ucinania wiodącego zera w numerach wyglądających jak liczby (np. PESEL zaczynający się od „0").
Ta sama wartość w tej samej kolumnie zawsze dostaje ten sam token w ramach jednego projektu — program najpierw wyciąga unikalne wartości z kolumny, tłumaczy każdą raz, i dopiero potem podmienia całą kolumnę na tej podstawie.
Do pliku wynikowego dopisywana jest dodatkowo ukryta zakładka _METADATA z identyfikatorem projektu — to czysto pomocnicza informacja (np. do wyświetlenia w interfejsie, z jakiego projektu pochodzi plik), która nie jest wymagana do samego odkodowania (patrz punkt 6) i jest pomijana przy zapisie pliku po deanonimizacji.
5. Jak działa anonimizacja Word / PowerPoint / TXT — i jej ograniczenia
Dokumenty Word, PowerPoint i pliki tekstowe (.txt, .md, .csv) są anonimizowane tym samym słownikiem, który powstał wcześniej przy anonimizacji Excela w danym projekcie — to znaczy, że w tych dokumentach podmieniane są dosłowne wystąpienia wartości już znanych z tego słownika, a nie dowolne, nowo wykryte dane wrażliwe. Zanim więc będzie czego szukać w dokumencie, trzeba najpierw zanonimizować powiązany plik Excel w tym samym projekcie.
Dopasowanie działa na granicach słów i ma następujące, świadome uproszczenia:
- Rozróżnia wielkość liter — „Jan Kowalski" i „jan kowalski" to dla mechanizmu dopasowania dwie różne wartości.
- Nie rozpoznaje odmiany przez przypadki — jeśli słownik zna „Jan Kowalski", to „Kowalskiego" czy „Kowalskim" w tekście nie zostaną rozpoznane i podmienione. To dotyczy w praktyce głównie języka polskiego i niemieckiego (odmiana przez przypadki); w tekście angielskim problem praktycznie nie występuje.
- Dopasowuje dłuższe wartości przed krótszymi (np. „Jan Kowalski" przed samym „Jan"), żeby nie podmienić tylko fragmentu dłuższej wartości.
Dodatkowo, w Wordzie i PowerPoincie tekst akapitu bywa wewnętrznie podzielony na kilka fragmentów formatowania („runów") — z powodu ręcznego formatowania, autokorekty czy sposobu wklejenia tekstu. Żeby nie przegapić dopasowania rozdzielonego pomiędzy dwoma takimi fragmentami, HideReveal skleja cały tekst akapitu przed wyszukaniem wartości do podmiany, a wynik wstawia z powrotem do pierwszego fragmentu akapitu. Kosztem tego uproszczenia jest utrata zróżnicowanego formatowania wewnątrz zmienionego akapitu (np. jeśli tylko jedno słowo w akapicie było pogrubione) — formatowanie całego akapitu jako takiego oraz jego pierwszego fragmentu zostaje zachowane.
6. Jak działa deanonimizacja (odkodowanie)
Odkodowanie działa inaczej, niż mogłoby się wydawać: HideReveal nie musi wiedzieć, z jakiego projektu pochodzi wklejony tekst czy wczytany plik. Program po prostu przeszukuje treść pod kątem fragmentów wyglądających jak token (wzorzec: wielkie litery, cyfry i podkreślniki w co najmniej trzech segmentach) i sprawdza każdy z nich w lokalnej bazie. Coś, co przypadkiem wygląda jak token, ale nim nie jest, po prostu nie zostanie znalezione w bazie i zostanie w tekście bez zmian.
Dzięki temu zakładka „Wklej i odkoduj" działa na dowolnym tekście wklejonym z okna czatu AI, bez potrzeby wskazywania, z jakiego projektu pochodzą dane — a plik Excel/Word/PowerPoint/TXT można odkodować nawet bez dostępu do oryginalnego projektu, o ile tokeny w nim zawarte nadal istnieją w lokalnej bazie tego komputera.
7. Czego HideReveal nie robi
- Nie wysyła plików ani wartości z nich wyciągniętych na żaden serwer — cały proces jest lokalny.
- Nie zawiera żadnej telemetrii ani analityki w samej aplikacji (w odróżnieniu od strony WWW, patrz wyżej).
- Nie ocenia, czy dana kolumna „na pewno" zawiera dane osobowe — sugerowany tag to tylko sugestia oparta na nazwie kolumny; decyzję, co anonimizować, zawsze podejmuje osoba korzystająca z programu.
- Nie zastępuje analizy ryzyka ani porady prawnej — to narzędzie wspierające, a odpowiedzialność za zgodność przetwarzania danych z obowiązującymi przepisami pozostaje po stronie użytkownika (patrz Polityka prywatności).