Titkosítás mobilalkalmazásokban — alapok, algoritmusok és működési elv

Szerző: IT Sectr Megjelenés: 2026-04-02 Olvasási idő: 8 perc

Titkosítás (encryption) — to proces przekształcania danych w formę niedostępną do odczytu bez specjalnego klucza. W aplikacjach mobilnych titkosítás chroni dane osobowe użytkowników, informacje płatnicze i logikę biznesową przed przechwyceniem i wyciekiem. Według danych Statista (2024), liczba wycieków danych z aplikacji mobilnych wzrosła o 38% w ciągu dwóch lat, a w 72% przypadków przyczyną był brak lub nieprawidłowe titkosítás. Nowoczesne platformy mobilne udostępniają wbudowane API do szyfrowania, a ich użycie jest obowiązkowym standardem bezpieczeństwa. Statista, 2024

Főbb pontok

  • Titkosítás — przekształcanie danych w nieczytelną postać, odwracalne tylko przy użyciu klucza deszyfrującego.
  • Titkosítás symetryczne używa jednego klucza do szyfrowania i deszyfrowania — szybkie, ale wymaga bezpiecznego przekazania klucza.
  • Titkosítás asymetryczne używa pary kluczy (publicznego i prywatnego) — bezpieczniejsze, ale wolniejsze od symetrycznego.
  • AES-256 — złoty standard szyfrowania symetrycznego, zalecany przez NIST i używany w Android i iOS.
  • Titkosítás end-to-end gwarantuje, że dane są niedostępne nawet dla serwera — tylko dla nadawcy i odbiorcy.

Czym jest titkosítás mobilalkalmazásokban?

Titkosítás w kontekście aplikacji mobilnych — to zastosowanie algorytmów kryptograficznych do ochrony danych przechowywanych na urządzeniu (data at rest) i przesyłanych przez sieć (data in transit). Na poziomie urządzenia szyfrowane jest lokalne przechowywanie: pliki, bazy danych, SharedPreferences i pamięć podręczna. Na poziomie sieci szyfrowany jest ruch między aplikacją a serwerem za pomocą protokołów TLS/HTTPS. Ostatecznym celem jest zagwarantowanie, że nawet przy fizycznym dostępie do urządzenia lub przechwyceniu ruchu, osoba atakująca nie będzie mogła odczytać chronionych danych bez klucza kryptograficznego.

Dlaczego titkosítás jest potrzebne mobilalkalmazásokban

Urządzenia mobilne są szczególnie narażone na utratę danych: telefon łatwo zgubić, ukraść lub zainfekować złośliwym oprogramowaniem. Według danych Ponemon Institute (2023), 42% firm, które doświadczyły wycieków danych, łączy incydenty z urządzeniami mobilnymi. Bez szyfrowania osoba atakująca może podłączyć się do urządzenia przez USB, wyodrębnić bazę SQLite i odczytać wszystkie zapisane dane. Titkosítás rozwiązuje ten problem: nawet jeśli baza zostanie wyodrębniona, jej zawartość pozostaje zaszyfrowana. Dodatkowo, w USA i UE obowiązują przepisy (GDPR, CCPA), które wymagają szyfrowania danych osobowych i przewidują grzywny do 4% rocznego obrotu za ich naruszenie. Używanie szyfrowania — to nie tylko konieczność techniczna, ale także prawna dla każdej aplikacji mobilnej pracującej z danymi użytkowników.

Titkosítás symetryczne i asymetryczne

Wszystkie algorytmy szyfrowania dzielą się na dwa główne typy: symetryczne (jeden klucz do szyfrowania i deszyfrowania) i asymetryczne (para kluczy — publiczny i prywatny). Wybór typu zależy od scenariusza użycia: do szyfrowania danych lokalnych częściej stosuje się algorytmy symetryczne ze względu na ich szybkość, a do przekazywania kluczy i uwierzytelniania — asymetryczne.

CechaSymetryczneAsymetryczne
Liczba kluczy1 (tajny)2 (publiczny + prywatny)
SzybkośćWysoka (1–10 GB/s)Niska (1–10 MB/s)
Dystrybucja kluczaProblem — trzeba przekazać kluczProsta — klucz publiczny jest publikowany
PrzykładyAES, ChaCha20RSA, ECDH, ECIES
Zastosowanie w deweloperce mobilnejTitkosítás danych lokalnychWymiana kluczy, podpisy cyfrowe

W praktyce mobilalkalmazásokban stosuje się titkosítás hybrydowe: algorytmem asymetrycznym (np. ECDH) strony wymieniają się kluczem sesyjnym, a wszystkie kolejne dane są szyfrowane algorytmem symetrycznym (AES lub ChaCha20). Takie podejście łączy szybkość szyfrowania symetrycznego z bezpieczeństwem asymetrycznej wymiany kluczy. Ta metoda leży u podstaw TLS 1.3, Signal Protocol i Apple iMessage.

Główne algorytmy szyfrowania

Nowoczesna deweloperka mobilna używa kilku standaryzowanych algorytmów szyfrowania, z których każdy jest przeznaczony do określonych zadań i ma swój obszar zastosowania.

  • AES (Advanced Encryption Standard) — symetryczny szyfr blokowy, certyfikowany przez NIST w 2001 roku. Używa kluczy 128, 192 lub 256 bitów. Zalecany tryb — GCM (Galois/Counter Mode), zapewniający uwierzytelnione titkosítás. AES-256 jest używany w Android Keystore, iOS Keychain i wszystkich nowoczesnych protokołach TLS.
  • ChaCha20-Poly1305 — symetryczny szyfr strumieniowy, opracowany przez Daniela Bernsteina. Zapewnia takie samo bezpieczeństwo jak AES-256, ale działa szybciej na urządzeniach bez sprzętowego przyspieszenia AES (typowe dla budżetowych smartfonów Android). ChaCha20 jest używany w TLS 1.3 jako alternatywa dla AES-GCM i jest głównym szyfrem w Signal Protocol.
  • RSA (Rivest-Shamir-Adleman) — algorytm asymetryczny, używany do szyfrowania kluczy i podpisów cyfrowych. Minimalny zalecany rozmiar klucza — 2048 bitów. RSA jest wolniejsze od ECDH, dlatego w nowoczesnych aplikacjach mobilnych jest wypierane przez kryptografię krzywych eliptycznych (ECC).
  • ECDH (Elliptic Curve Diffie-Hellman) — asymetryczny protokół wymiany kluczy oparty na krzywych eliptycznych. Zapewnia Perfect Forward Secrecy i jest domyślnie używany w TLS 1.3. Krzywa Curve25519 (X25519) jest najczęściej spotykana mobilalkalmazásokban.

Jak titkosítás chroni dane użytkowników

Titkosítás chroni dane w trzech kluczowych scenariuszach: przy utracie urządzenia (titkosítás dysku i kontenerómobilalkalmazásokban), przy przechwyceniu ruchu (protokoły sieciowe TLS/HTTPS) i przy wycieku z serwera (titkosítás end-to-end). Każdy scenariusz wymaga własnego podejścia i narzędzi.

Titkosítás w spoczynku i w tranzycie

Data at rest — dane na urządzeniu — jest szyfrowane przez Android Keystore i iOS Keychain. W Android od wersji 7.0 stosowane jest titkosítás plików (File-Based Encryption), a aplikacje mogą dodatkowo szyfrować swoje dane przez EncryptedSharedPreferences i EncryptedFile z biblioteki AndroidX Security. W iOS wszystkie aplikacje domyślnie korzystają z Data Protection API, który szyfruje pliki na poziomie systemu plików z kluczem powiązanym z kodem urządzenia. Dla data in transit stosowany jest TLS 1.2/1.3 z obowiązkowym Certificate Pinning.

Titkosítás end-to-end

Titkosítás end-to-end (E2E) — najwyższy poziom ochrony danych, w którym wiadomość jest szyfrowana na urządzeniu nadawcy i deszyfrowana tylko na urządzeniu odbiorcy. Serwer przechowywania i przesyłania danych nie ma dostępu do treści — operuje tylko na zaszyfrowanych blobach. Najbardziej znana implementacja E2E dla aplikacji mobilnych — Signal Protocol, używający Double Ratchet Algorithm w kombinacji z X3DH (Extended Triple Diffie-Hellman) do początkowej wymiany kluczy. Signal Protocol zapewnia Perfect Forward Secrecy i future secrecy: kompromitacja jednego klucza nie ujawnia poprzednich i kolejnych wiadomości. Według badań uniwersytetu Carnegie Mellon (2023), titkosítás E2E w komunikatorach zmniejsza ryzyko wycieku korespondencji o 99,7% w porównaniu z titkosításm TLS-only. Stosowanie E2E jest obowiązkowe dla aplikacji kategorii Health & Fitness i Finance zgodnie z wymaganiami GDPR i HIPAA. Do implementacji E2E we własnym projekcie zaleca się użycie biblioteki Signal Protocol (Java/Swift) lub opartej na Olm (Matrix protocol). Przy wyborze rozwiązania E2E oceń kompatybilność z platformą: Signal Protocol wymaga obsługi asynchronicznego wysyłania i przechowywania kluczy na kliencie, co komplikuje implementację scenariuszy multi-device — w takich przypadkach Matrix Protocol z jego modelem pokojów może być lepszym wyborem.

Implementacja szyfrowania mobilalkalmazásokban

Rozważmy przykład szyfrowania i deszyfrowania danych na Android z użyciem Jetpack Security (AndroidX Security). Biblioteka udostępnia EncryptedFile do szyfrowania plików i EncryptedSharedPreferences dla ustawień.

kotlin
val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val encryptedFile = EncryptedFile.Builder(
    context,
    File(context.filesDir, "secret.dat"),
    masterKey,
    EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()

encryptedFile.openFileOutput(applicationContext).use { outputStream ->
    outputStream.write("Érzékeny felhasználói adatok".toByteArray(Charsets.UTF_8))
}

MasterKey jest tworzony przy użyciu AES256-GCM — najbezpieczniejszego trybu szyfrowania symetrycznego. Klucz jest przechowywany w Android Keystore, izolowanym od głównego procesu: nawet przy kompromitacji aplikacji osoba atakująca nie może wyodrębnić klucza. EncryptedFile używa schematu AES-256-GCM z HKDF do derivacji klucza i rozmiarem strony 4KB, co daje dobry balans między szybkością a bezpieczeństwem. Do odczytu danych używane jest openFileInput z tymi samymi parametrami: biblioteka automatycznie deszyfruje dane przy odczycie.

Na iOS analogiczna funkcjonalność jest zapewniana przez CryptoKit (Swift) z użyciem AES.GCM lub ChaChaPoly. Klucz jest przechowywany w Secure Enclave przez Keychain Services. Zasada jest taka sama: klucze nigdy nie opuszczają chronionego magazynu sprzętowego, a dane są szyfrowane przed zapisem na dysk. Taka architektura jest zgodna z zaleceniami OWASP MASVS (Mobile Application Security Verification Standard) poziomu L2 — dla aplikacji pracujących z wrażliwymi danymi. W rzeczywistych projektach kombinacja EncryptedSharedPreferences dla tokenów i EncryptedFile dla danych użytkownika pokrywa 100% scenariuszy lokalnego szyfrowania. Dodatkowo, do pracy z kluczami otrzymanymi z serwera (np. klucze sesyjne ECDH) używany jest Android KeyStore z parametrem purpose = KeyProperties.PURPOSE_ENCRYPT, który gwarantuje, że klucz może być używany tylko do dozwolonych operacji kryptograficznych i nigdy nie jest eksportowany z magazynu sprzętowego do pamięci operacyjnej w otwartej postaci.

Często zadawane pytania

Które titkosítás jest uważane za najbezpieczniejsze dla aplikacji mobilnych?

AES-256 w trybie GCM z przechowywaniem klucza w magazynie sprzętowym (Android Keystore / iOS Keychain) jest uważany za złoty standard. Dla ruchu sieciowego — TLS 1.3 z krzywą eliptyczną Curve25519. ChaCha20-Poly1305 jest używany jako alternatywa na urządzeniach bez sprzętowego AES.

Czym różni się AES od RSA?

AES — algorytm symetryczny (jeden klucz), szybki, odpowiedni do szyfrowania dużych ilości danych. RSA — asymetryczny (para kluczy), wolny, używany do szyfrowania kluczy i podpisów, a nie samych danych. W aplikacjach mobilnych AES szyfruje dane, RSA chroni klucze.

Czy trzeba szyfrować wszystkie dane mobilalkalmazásokban?

Szyfrować należy dane poufne: tokeny dostępu, hasła, dane osobowe, dane płatnicze, dokumentację medyczną. Dane publiczne (zdjęcia, treści) można pozostawić nieszyfrowane, jednak lepiej przechowywać je w chronionym kontenerze aplikacji.

Jak działa titkosítás end-to-end na urządzeniach mobilnych?

Przy szyfrowaniu end-to-end dane są szyfrowane na urządzeniu nadawcy przed wysłaniem i deszyfrowane tylko na urządzeniu odbiorcy. Serwer widzi tylko zaszyfrowane dane. Protokół Double Ratchet, zaimplementowany w Signal Protocol, to najczęściej stosowany mechanizm E2E w komunikatorach mobilnych.

Czy można używać tego samego szyfrowania dla danych na urządzeniu i dla sieci?

Technicznie można, ale nie jest zalecane. Dla danych na urządzeniu używaj szyfrowania symetrycznego (AES-GCM) z kluczem z Keystore. Dla sieci — TLS 1.3 z osobnym zestawem kluczy i Certificate Pinning. Rozdzielenie zapobiega kompromitacji obu kanałów przy wycieku jednego klucza.

Podsumowanie

  • Titkosítás — obowiązkowy element bezpieczeństwa aplikacji mobilnych, chroniący dane w spoczynku i w tranzycie.
  • AES-256 GCM — standard szyfrowania symetrycznego, zalecany przez NIST dla wszystkich typów danych.
  • Titkosítás hybrydowe (ECDH + AES) łączy szybkość symetrycznego i bezpieczeństwo asymetrycznego podejścia.
  • Android Keystore i iOS Keychain — sprzętowe magazyny kluczy, izolujące materiały kryptograficzne od aplikacji.
  • Data at rest jest szyfrowane przez EncryptedSharedPreferences i EncryptedFile (Android) lub Data Protection API (iOS).
  • Data in transit jest chronione przez TLS 1.3 z Certificate Pinning i Perfect Forward Secrecy.
  • Zalecenie: szyfruj wszystkie poufne dane przez Jetpack Security (Android) lub CryptoKit (iOS) z kluczami w magazynie sprzętowym.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is