Wróć do projektów
BezpieczeństwoDostępny kod

Studium przypadku

Encrypted Container Generator

Projekt inżynierski pakujący zaszyfrowane pliki do samodzielnych dokumentów HTML, które można odszyfrować w zwykłej przeglądarce.

Interfejs generatora szyfrowanych kontenerów HTML

Przegląd projektu

Kategoria
Bezpieczeństwo

Technologie

  • JavaScript
  • HTML5
  • Web Crypto API
  • Google Drive

Wewnątrz projektu

Kontekst

Projekt bada przenośny sposób przesyłania zaszyfrowanych plików bez konieczności instalowania specjalnego oprogramowania lub kupowania usługi SaaS. Każde urządzenie z nowoczesną przeglądarką może otworzyć wygenerowany kontener HTML i odszyfrować zawartość prawidłowym hasłem.

Rola

Zaprojektowałem format i zbudowałem generator jako część pracy inżynierskiej poświęconej kryptografii. Odpowiadałem za szyfrowanie w przeglądarce, obsługę haseł, ochronę przed manipulacją, pakowanie oraz opcjonalne dostarczanie pliku do chmury.

Ograniczenia

Wygenerowany dokument musi zawierać wszystko, co potrzebne do odszyfrowania, ale nigdy nie może przechowywać hasła ani jawnej treści. Powinien działać offline, wykorzystywać natywne mechanizmy kryptograficzne przeglądarki i zachować przenośność pojedynczego pliku między urządzeniami.

Podejście

Generator wyprowadza klucz za pomocą PBKDF2 i szyfruje dane algorytmem AES-256-GCM przez Web Crypto API. Tworzy samodzielny dokument z niestandardowym elementem HTML, generatorem haseł, blokadą po kolejnych błędnych próbach zachowywaną po odświeżeniu oraz kontrolami wykrywającymi manipulację kodem na żywo. Opcjonalne funkcje obejmują obfuskację JavaScriptu, bezpośrednie przesłanie do Google Drive i pakowanie w chronione hasłem archiwum ZIP.

Rezultat

Powstał działający przykład niewymagającego instalacji zaszyfrowanego kontenera, który można przesyłać zwykłymi kanałami udostępniania plików, pozostawiając odszyfrowanie lokalnie w przeglądarce odbiorcy.

Wnioski

Bezpieczny projekt powinien opierać się na sprawdzonych prymitywach i jasno definiować granice zaufania. Praca pokazała też ograniczenia zabezpieczeń antymanipulacyjnych po stronie klienta: mogą utrudnić powierzchowną analizę, ale poufność musi wynikać z poprawnej kryptografii, a nie z ukrywania kodu.

Projekt inżynierski pakujący zaszyfrowane pliki do samodzielnych dokumentów HTML, które można odszyfrować w zwykłej przeglądarce.

Zobacz wszystkie projekty