web-dev-qa-db-fra.com

Comment fonctionne le chiffrement de bout en bout avec WhatsApp Web?

Depuis aujourd'hui, j'ai remarqué que WhatsApp utilise un cryptage de bout en bout. Cependant, web.whatsapp.com fonctionne également. WhatsApp établit-il une connexion avec mon téléphone pour sécuriser les choses?

59
Mehdi Nellen

Correct: le client Web établit une connexion sécurisée avec le téléphone. Les messages que vous envoyez via WhatsApp Web sont chiffrés par WebClient, déchiffrés par le téléphone, puis rechiffrés pour s'adapter au schéma de bout en bout, puis envoyés au destinataire. Même chose dans l'autre sens.

Je ne connais pas les détails du protocole, mais voici ce que je soupçonne (ou comment je le mettrais en œuvre):

  • Lors de la première ouverture de WhatsApp Web, une paire de clés pour le chiffrement/signature asymétrique est générée (et stockée dans le stockage local du navigateur . Probablement RSA ou ECC.
  • Le balayage du code QR échange l'empreinte digitale de ladite clé publique de paires de clés. Cela établit la confiance entre l'installation du téléphone et du navigateur: le fait que l'utilisateur scanne le code QR implique que l'utilisateur fait confiance au navigateur.
  • Lorsque WhatsApp Web doit être utilisé, une connexion TLS au téléphone est établie (probablement par proxy WhatsApp pour surmonter le pare-feu et NAT problèmes). WhatsApp Web s'authentifie auprès du téléphone à l'aide de la paire de clés générée initialement ( s'appuyant ainsi sur la confiance établie précédemment).
    • La connexion entre le navigateur et le téléphone est entièrement qualifiée TLS: authentification et PFS inclus.
44
marstato