Architektura PrivMX – wstęp

Architektura PrivMX to zestaw specyfikacji i komponentów służących do tworzenia systemów klient-serwer opartych na koncepcji szyfrowania po stronie klienta (client-side encryption) oraz serwerów z zerową wiedzą (zero-knowledge servers).

Systemy tworzone w oparciu o PrivMX pozwalają na bezpieczne przesyłanie, przechowywanie i współdzielenie danych.

Celem tego dokumentu jest ogólne przedstawienie głównych elementów Architektury PrivMX:

  • szyfrowanie i odszyfrowywanie danych po stronie klienckiej i tym samym ograniczenie dostępu do danych dla serwera oraz zmniejszenie jego złożoności.
  • Kontrola praw dostępu do danych oparta na metodach kryptograficznych.
  • Praca w schemacie request-response i możliwość wykorzystania różnych protokołów transportowych, w tym również protokołów non-duplex takich, jak np. HTTP.
  • Klient i serwer PrivMX zabezpieczają samodzielnie wzajemną komunikację, niezależnie od zabezpieczeń oferowanych przez protokół transportowy.
  • Własna infrastruktura przechowywania i weryfikacji kluczy publicznych (PKI) niezależna od urzędów certyfikacji prowadzonych przez firmy trzecie.
  • Możliwość budowy systemów zdecentralizowanych.
  • Wprowadzenie adresacji pozwalającej na identyfikację użytkowników w systemach zdecentralizowanych.
  • Możliwość udostępniania danych poprzez "dystrybucję kluczy dostępu do określonych danych" zamiast "dystrybucji (praw) użytkowników".

W zależności od konkretnych zastosowań i wymagań, system stosujący architekturę PrivMX może współpracować z dowolnymi innymi komponentami softwareowymi, również takimi, które nie szyfrują danych i pracują po stronie serwera.

W PrivMX odnaleźć można idee pochodzące z różnych technologii oraz wykorzystanie znanych i sprawdzonych algorytmów:

  • SHA256, PBKDF2, HMAC-SHA512;
  • ECC (Elliptic Curve Cryptography) – szyfrowanie asymetryczne – tworzenie kluczy prywatnych i publicznych oraz związane z ECC algorytmy i schematy ECDSA, ECDH(E), ECIES;
  • AES (Advanced Encryption Scheme) – szyfrowanie symetryczne;
  • związane z Bitcoinem – struktura Blockchain, adresy Bitcoin, BIP-32 (rozszerzone klucze i ich derywacja, chaincodes), BIP-39 (Mnemoniki do generowania kluczy)
  • CONIKS (Key Transparency);
  • TLS (Transport Layer Security) – procedury handshake, tickets, frames;
  • SRP (Secure Remote Passwords);
  • OpenPGP (RFC 4880) – pakiety PGP.

Następny rozdział: Komunikacja klient-serwer – adresy PrivMX, procedura Service Discovery, protokół PrivMX TLS, PrivMX Proxy.
Spis treści: Architektura PrivMX
Wersja PDF: Architektura PrivMX – opis techniczny (pdf, PL)english version