Ja precies, dat bedoelde ik met "Zonder elkaar face to face te ontmoeten kan dat niet". Met Whatsapp heb je geen authenticatie, en ook geen out-of-band communicatiekanaal tenzij je elkaar live ontmoet en ter plekke elkaars public key controleert.
Natuurlijk wel.
Je kan een screenshot maken van de (eventueel encrypted) barcode en via dropbox, mms of wat dan ook versturen. Je kan bellen en de code opnoemen, de code via SMS of zelfs per post versturen; of zelfs met een PBtje via Tweakers. Zat mogelijkheden zonder elkaar face to face te ontmoeten natuurlijk.

En dat kan je zelf nog zo veilig maken als je wilt.
Whatsapp (of welke communicatie tool dan ook) blijft met het probleem zitten dat je over een onveilige lijn, in essentie geen veilige communicatie kunt opzetten.
Dat is afhankelijk van de verificatie imho.
Certificering is op gevallen zoals Whatsapp niet van toepassing, en is eigenlijk ook maar een matige oplossing: het hangt toch weer van trusted third parties af (waarvan de betrouwbaarheid soms zeer te wensen overlaat) en de authenticatieprocedure is altijd een compromis tussen veiligheid en gemak. Als je al een CA vertrouwt, hoe kunnen zij dan op afstand 100% veilig nagaan dat jij écht jij bent?
Dat ligt eraan hoe ver je wilt gaan eigenlijk... Een standaard certificaatje zoals je dat bijvoorbeeld bij SSL ziet met domain verification dan weten ze niet wie er precies achter zit maar kunnen ze enkel het domein garanderen. Bij EV certificering gaat een behoorlijk proces aan vooraf waar van alles gecontroleerd wordt, je allerlei documenten moet opsturen, et cetera. Natuurlijk blijft er een factor voor ruimte; maar dat wordt aardig gereduceerd.
Maar nee, een CA is niet ideaal noch helemaal waterdicht.
Eigenlijk ook bedoeld voor andere doeleinden.
Tja zo'n ratchet voegt in de praktijk volgens mij bijzonder weinig veiligheid toe.
Ook de forward secrecy vormt voor zover ik kan zien slechts een marginaal verschil (maar misschien zie ik ook iets over het hoofd?)
In tegendeel, het is een enorme toevoeging omdat je inderdaad PFS en Future Secrecy toevoegt. De computer kracht die benodigd is om een heel gesprek te decrypten bestaat op dit moment gewoon niet...
Encrypted communicatie opslaan en later proberen te kraken, tja leuk dat je dan per bericht een verschillende sleutel hebt (in plaats van één vaste sleutel voor alles) maar zodra je een vroeger bericht decrypt kun je daarmee ook de forwarding key exchanges en dus latere berichten ontcijferen.
Nope, dat is niet mogelijk zonder opnieuw de sleutel te gaan berekenen. Misschien dat de entropie lager wordt en het iets gemakkelijker is om te kraken (mits je het eerste bericht te pakken hebt), maar daar houdt het wel op eigenlijk... Maar voor zover ik weet is zelfs dat niet het geval, die session key is enkel bekend bij de twee apparaten die met elkaar babbelen en daar wordt doorheen geknald; die wordt niet of slechts deels meegezonden met het bericht. Omdat de key uniek is voor elk bericht, kan je dus niet zien aan bericht A wat de sleutel voor bericht B gaat worden zonder een enorm computing vermogen en dan maar bidden dat je het kraakt.
Een MITM moet sowieso al tijdens de eerste key exchange gebeuren, zodra je eenmaal elkaars public key hebt kunt je voortaan altijd veilig communiceren, een derde kan de boel later niet meer faken.
Dat is afhankelijk van het protocol... Alles valt en staat bij de sterkte van de sleutels.
Er zijn aanvallen mogelijk waarop een tussenliggend systeem toch een MiTM kan uitvoeren op een later moment. Een bekend voorbeeld daarvan is een
probleem in MProto van Telegram waardoor met een relatief gezien simpele birthday-aanval een hash-collission uitgevoerd kan worden en de server er zo alsnog een MiTM op kan uitvoeren en zelfs de fingerprints kan vervangen. Helaas is dit overigens slechts een van de voorbeelden van problemen met MProto, maar dat terzijde.
En dan is er nog het probleem van eavesdropping op zwakke protocols, uiteraard. Het ligt gewoon aan hoe goed de crypto is hoe veilig je bent.
[Reactie gewijzigd door WhatsappHack op 22 juli 2024 19:28]