Authenticatie, encryptie en hyper secure chats
Om clients en servers te laten communiceren gebruiken wij een verbinding door middel van TLS (Transport Layer Security). Dit biedt vertrouwelijkheid en gegevensintegriteit.
Aan elke aanvraag van een client aan de server, voegen we een Authorization header toe. Hiervoor gebruiken we de OAuth 1.0 Revision A specificatie. Het OAuth-protocol wordt gebruikt om toepassingen met toegang tot beschermde bronnen (in dit geval chatgesprekken) te voorzien op een webservice door middel van een API.
Alle berichten en bijlagen verzonden via Safebay zijn gecodeerd door middel van AES 256 CBC. AES (Advanced Encryption Standard), ook bekend als Rijndael. Voor elk versleuteld item wordt een nieuwe sleutel en een willekeurige IV (initialisatievector) gegenereerd om het algoritme uit te voeren. Deze worden ook gecodeerd (met behulp van AES 256) na opslag. Alle gegevens worden tijdens het transport versleuteld en ook berichten en bijlagen zijn versleuteld.
We bieden onze gebruikers ook de mogelijkheid om van begin tot eind te starten gecodeerde hypersecure chats. We hebben ervoor gekozen om aan te bieden als aparte optie, omdat niet al onze functionaliteiten compatibel zijn met end-to-end encryptie. Onze hyperveilige chats zijn gecodeerd op basis van het signal (asynchrone transmissie) protocol. Sessies worden vastgesteld met behulp van identiteitssleutels, gesigneerde pre-sleutels en eenmalige Pre Keys. Deze sleutels worden gebruikt om een master_secret te maken, die dan kan worden gebruikt om een Root Key en een Chain Key in te stellen, met behulp van een HMAC (Hash Message Authentication Code) -gebaseerde Extract-and- Breid Key Derivation Function (HKDF).