Hoe Cyphr Werkt

onze designgoals

Cyphr is een beveiligde boodschap applicatie. De belangrijkste ontwerpdoelstellingen van de applicatie zijn onder meer:

  • Communicatie moet zo eenvoudig mogelijk zijn

    Idealiter is de applicatie zo eenvoudig te gebruiken als een normale ongecodeerde berichten app. De punten waar encryptie nodig is zou geen nadelige gevolgen voor de gebruiker moeten geven met extra kennis of activiteit, tenzij dit absoluut noodzakelijk is.

  • De gebruiker kan weloverwogen keuzes maken over het niveau van hun privacy en veiligheid

    Wanneer een functie wordt ingevoerd waarvoor de informatie moet worden gedeeld dan heeft de gebruiker de optie die functie onbruikbaar te maken. Dit geeft de gebruiker de controle over zijn ervaring en laat toe dat de app op de eigen gewenste wijze tussen veiligheid en functionaliteit aangepast wordt.

  • Golden Frog heeft geen kennis van de boodschapinhoud

    Berichtgegevens zijn altijd gecodeerd zodat alleen de zender en de ontvanger de gegevens kunnen bekijken. Dit geldt ook voor Golden Frog servers of netwerkapparaten tussen de zender en de ontvanger.

  • Golden Frog slaat enkel de minimale hoeveelheid aan metadata op die nodig is om te helpen bij het overbrengen van de inhoud van de boodschap

    Om berichten te verzenden en ontvangen via Golden Frogs systemen moet bepaalde metadata bekend zijn. Bovendien, door de manier waarop het internet werkt, moete andere metadata ook bekend zijn. Golden Frog slaat alleen de metadata op die nodig is om het bericht naar zijn eindbestemming te brengen, en het slaat de metadata slechts lang genoeg op om die levering te garanderen.

Encryptie Technologieën Verklaard

Symmetric Key Encryption

Een sleutel is als een wachtwoord dat gebruikt kan worden om een kluis te ontgrendelen. Om een bericht te versleutelen, plaatst de afzender, het bericht in de kluis en hij sluit dan de kluis met de sleutel. Zodra de kluis gesloten is, kan niemand het bericht te lezen, tenzij ze de sleutel bezitten. De ontvanger maakt gebruik van een sleutel van de kluis voor opening en het ophalen van het bericht. Dit is decodering.

Bij symmetrische encryptie met sleutels hebben zowel de afzender als de geadresseerde dezelfde sleutel. Zij moeten de sleutel delen met elkaar, wat betekent dat ze elkaar moeten vertrouwen. Symmetrische encryptie met sleutels geniet in het algemeen de voorkeur omdat het sneller is, maar omdat twee mensen dezelfde sleutel hebben, kunt u er nooit zeker van zijn dat de andere partij de sleutel niet heeft gedeeld.

Openbare Sleutel Encryptie

Met publieke sleutel codering, er worden twee sleutels gebruikt - een publieke sleutel en een private sleutel. De afzender gebruikt de publieke sleutel om de kluis van de geadresseerde open te maken en hierin boodschappen achter te laten. De publieke sleutel kan enkel gebruikt worden om boodschappen in de kluis van de geadresseerde achter te laten, dus zelfs al is de kluis"open," krijgt de afzender geen daadwerkelijke toegang tot de inhoud. De kluis kan slechts in één richting geopend worden . De afzender maakt gebruik van de openbare sleutel van de geadresseerde om het bericht te coderen. Om het bericht te lezen, maakt de geadresseerde gebruik van zijn persoonlijke sleutel om de kluis te openen. De persoonlijke sleutel laat hem toe berichten uit de kluis te halen. We noemen het de persoonlijke sleutel, omdat alleen de geadresseerde hier toegang tot heeft, en omdat deze alleen de kluis van de geadresseerde opent, kunnen we er zeker van te zijn dat het bericht alleen kan worden gelezen door de geadresseerde. Dus de ontvanger gebruikt de persoonlijke sleutel om het bericht te decoderen.

De publieke sleutel en een prive sleutel zijn gerelateerd door zeer complexe wiskunde waardoor dit goed werkt. Het belangrijkste is dat met deze methode, zolang de afzender de publieke sleutel van de ontvanger kent, de afzender berichten kan versturen waarvan hij weet dat alleen de ontvanger (of iemand die de ontvangers persoonlijke sleutel heeft) kan lezen.

Publieke Sleutel Verificatie (Ondertekenen)

Er wordt gebruik gemaakt van dezelfde sleutels zoals die worden gebruikt voor codering, de verzender kan z'n boodschappen stempelen op zo'n manier dat er een bewijs bestaat dat hij de afzender is. In dit geval stempelt de verzender zijn boodschap met zijn eigen privé sleutel. Als de ontvanger de boodschap ontvangt, kan ij de openbare sleutel van de afzender vinden en de openbare sleutel zal overeenstemmen met de stempel van de afzender die dan een bewijs vormt voor de ontvanger - dat enkel de afzender dit bericht echt stuurde. We noemen de stempel een handtekening en we noemen het proces van stempelovereenstemming een verzekering.

Met deze methode kan een zender aan de ontvanger verzekeren dat hij het bericht daadwerkelijk verzonden heeft. Dit voorkomt dat iemand zich kan voordoen als iemand anders en zo valse berichten kan versturen.

Bericht Transmissie Proces

Cyphr vermengt de bovengenoemde coderingsconcepten voor het produceren van een end-to-end versleutelde oplossing. Wanneer iemand een bericht stuurt naar iemand anders, wordt het bericht versleuteld op het apparaat van de afzender (telefoon, web browser, computer, enz.) en wordt niet gedecodeerd tot dit het apparaat van de ontvanger bereikt. Het proces van het verzenden van een bericht op hoog niveau is:

  1. De afzender ondertekent zijn bericht met zijn prive-sleutel, zodat de ontvanger kan weten dat hij degene is die het gestuurd heeft
  2. De afzender maakt een eenmalige wegwerpsleutel aan
  3. De verzender codeerd het bericht en de handtekening met de eenmalige sleutel
  4. De afzender zoekt al de publieke sleutels op van de geadresseerde.
  5. De verzender codeert de eenmalige sleutel met elke openbare sleutel van de ontvanger
  6. De afzender ondertekent de eenmalig vergrendelde sleutel met de afzenders prive sleutel, zodat de ontvanger weet dat hij degene is die het aangemaakt heeft
  7. De afzender stuurt beide, de gecodeerde sleutel en de gecodeerde boodschap naar de geadresseerde via deGolden FrogCyphr servers

Al dit werk wordt gedaan op het apparaat van de afzender, dus Golden Frog heeft geen toegang tot het oorspronkelijke bericht. Omdat het bericht is versleuteld met een symmetrische sleutel Golden Frog kan Golden Frog t het bericht niet decoderen. Omdat de symmetrische sleutel wordt versleuteld met de publieke sleutel van elke ontvanger hebben alleen de geadresseerden de toegang tot de sleutel die nodig is om het bericht te decoderen. Op dit punt, slaat Golden Frog de versleutelde gegevens op die niet kunnen worden gedecodeerd tot een ontvanger dit leest.

Het proces voor het ontvangen van een bericht is:

  1. De ontvanger downloadt de gecodeerde sleutel en het gecodeerd bericht van Golden Frog's Cyphr servers
  2. De ontvanger maakt gebruik van zijn prive-sleutel om de gecodeerde symmetrische sleutel te decoderen
  3. De ontvanger gebruikt de symmetrische sleutel om het gecodeerde bericht te ontcijferen
  4. De ontvanger zoekt de publieke sleutel van de afzender
  5. De ontvanger gebruikt de openbare sleutel om het bericht en de gecodeerde symmetrische sleutel te verifiëren die door de verzender zijn verzonden

Al dit werk wordt uitgevoerd op het apparaat van de ontvanger, dat is de enige plek waar de de privé sleutel zich bevindt. Zolang het apparaat goed is beveiligd, kan alleen de ontvanger de berichten te lezen. Zelfs als iemand het bericht zou downloaden, zouden ze niet de persoonlijke sleutel van de ontvanger bezitten en kunnen ze niet de symmetrische sleutel lezen. Zonder de symmetrische sleutel, kan iemand anders niet het versleutelde bericht lezen.

Andere Overwegingen

Naast het gebruik van het bericht transmissieproces hierboven voert Cyphr ook het volgende in:

  1. Wanneer een ontvanger een bericht van de server leest , wordt hun kopie van het bericht van de server verwijderd
  2. Waar mogelijk wordt bericht geschiedenis op het apparaat gecodeerd met lokaal beschikbare encryptie-opties
  3. Bij het opslaan van berichten voor verzending, slaan de Cyphr servers alleen de ontvangsttijd en de ontvangers metadata op (gegevens over de afzender worden niet opgeslagen als het niet nodig is)

Meer Specifiek

  1. Het 30-jaar-oude, bewezen RSA-algoritme wordt gebruikt voor zowel publieke sleutel encryptie als verificatie
  2. 256-bit AES encryptie wordt gebruikt voor symmetrsche boodschapencryptie
  3. TLS wordt gebruikt voor veilige overdracht van de gecodeerde berichtgegevens naar en van Cyphr servers
  4. Cyphr servers bevinden zich in Zurich, Switzerland, waar ze voldoen aan de Zwitserse privacy-wetten