Toch is de SSL chain wel redelijke op fysieke uitwisseling gebaseerd. Je koop namelijk een drager met windows of windows voor geinstalleerd, en daarmee krijg je een hele lijst met vertrouwde partijen die dan ook weer andere partijen kunnen vertrouwen waardoor uiteindelijk pietjepuk.nl een vertroude SSL verbinding kan opzetten.
Ik gebruik geen Windows, maar dat terzijde.

Je doelt nu op de root certificaten. Dat is weer een compleet ander verhaal en heeft een andere functie dan waar het over ging m.b.t. key-exchanges. Overigens worden lijsten met root certificaten tussendoor gewoon geüpdatet he. Die DVD (kopen mensen die nog? Windows download je tegenwoordig toch ook gewoon van de Microsoft site?

) met Windows die je x jaar geleden hebt gekocht kan verouderde en ingetrokken certificaten bevatten, je zult digitaal de nieuwe op moeten halen (en/of die shippen met je browser mee.). Maar hoe het ook zij: die hebben weinig te maken met de exchanges tussen 2 partijen, dat heeft meer te maken met validatie en controle van uitgegeven certificaten die bevestigen dat jij (of nouja... de gene die de privésleutel bezit) inderdaad de eigenaar bent van een bepaalde publieke sleutel. (In theorie. In de praktijk is dat soms ook niet helemaal waar, maar goed - dat gaat allemaal weer ver en mitsen en maren en blabla, we weten intussen wel dat het niet 100% waterdicht is.

)
Wat je vervolgens onderling doet kan ook compleet afwijken per applicatie en heeft die CA verder niets mee te maken. In principe ondertekenen die enkel certificaten en omdat zij vertrouwd worden worden de door hen uitgegeven certificaten vertrouwd door de applicatie(s) als alles overeenkomt én het certificaat nog geldig is. Het onderliggende protocol zeggen ze verder niets over... Zo biedt een geldig certificaat (ondertekend door de CA) ook geen enkele bescherming als de server en client onderling gebruik maken van enorm brakke of backdoored ciphers/protocol (voor de key-exchange en/of de communicatie). Dat staat er dus helemaal los van.
Een CA is geen vereiste voor veilige communicatie, het maakt het enkel veel makkelijker om te verifiëren en daarmee levert het in algemene zin bij HTTPS inderdaad een flinke bijdrage aan de veiligheid en een enorme winst qua gebruiksgemak. Maar zelfs dat is niet waterdicht. Als ik jouw privésleutel weet te jatten, dan kan ik doodleuk doen alsof ik jou ben en de CA zal gewoon zeggen dat het allemaal geldig is...
Het feit dat er dus een truste ceritificate authority tussen zit is een belangrijk punt. Als het hele proces van uitwisselen van keys door 1 partij gedaan wordt kan je er nooit zeker van zijn dat je communicatie veilig is.
Je kan er sowieso nooit zeker van zijn dat je communicatie veilig is.
Maar in dit geval zit je op WhatsApp's platform en blijf je binnen WhatsApp's platform. Dat WhatsApp als soortement CA optreedt (technisch gezien doen ze dat niet overigens want er is geen directe validatie, daarom moet je zélf handmatig hashes met elkaar vergelijken om te controleren of je wel praat met wie je denkt te praten

, maar om het even simpel te houden.) is dan eigenlijk ook logisch. In een ideale wereld hadden voor https overigens ook geen CA's nodig (immers zijn die ook niet allemaal betrouwbaar gebleken (*kuch*diginotar*kuch*)), maar dat systeem werkt op het moment nou eenmaal zo.
Uiteraard zou het kunnen dat WhatsApp, of welke messenger dan ook overigens die encryptie aanbiedt, de code op kwaadaardige wijze aanpast en bijvoorbeeld de keys van je jat of het protocol rigged. Dat is een risico dat er altijd is. Net zozeer als dat je je webbrowser moet vertrouwen je niet te naaien, je operating system moet te vertrouwen zijn, je hardware (wordt vaak vergeten) et cetera; het hele zooitje valt en staat met enige mate van vertrouwen TENZIJ je het geheel zelf regelt allemaal* Dat is misschien mogelijk, maar extreem ver van gebruiksvriendelijk. (En dan nog niet 100% waterdicht.)
* = en dat lost het benoemde probleem van hardware niet op. Als je dat ook nog zelf kan maken (en het blijkt waterdicht te zijn) dan ben je geniaal en gaat er een schatkist voor je open.Je zegt zelf al dat het bijvoorbeeld een instelling is die je wel of niet waarschuwt dat je key wordt uitgewisseld. Hoe makkelijk is het om dat niet te doen?
Je publieke sleutels worden sowieso uitgewisseld, dat is het probleem niet en zelfs gewenst.

Om een gesprek op te starten start een key-exchange en het onderling afspreken van sessiesleutels ook automagisch. (Zie documentatie, staat hierboven gelinkt als reactie op Lisa - daar kan je de complete technische werking in vinden. Aanrader en verhelderend.

) Nee, het is een waarschuwing dat de sleutel van de tegenpartij is gewijzigd, dat gebeurt onder een paar omstandigheden. (Iemand verwijdert WhatsApp, installeert toestel opnieuw, iemand activeert WhatsApp op een nieuw toestel, dat soort dingen.) Dan is het de bedoeling dat je zelf de hashes weer met elkaar vergelijkt. In de praktijk doet bijna niemand dat omdat het ze allemaal geen reet interesseert, dat is ook waarom WhatsApp standaard die melding helemaal niet toont. Vanuit het oogpunt van absolute veiligheid is dat niet fraai, maar als je je bedenkt dat WhatsApp destijds meer dan 1 miljard mensen tegelijk moest voorzien van encryptie en 90% van die userbase zit waarschijnlijk niet te wachten op "die vervelende berichten over sleutelwijzigingen en dat gezeik met encryptie" was het logisch om dat standaard niet in te schakelen.

(Je kan dit aanzetten in de instellingen.) Maar om redelijk zeker te zijn dat je wel praat met wie je wilt praten is dat controleren van hashes wel erg belangrijk, dat is immers je primaire beveiliging tegen hijacking en MitM-aanvallen. (Al is MitM nogal moeilijk op dit protocol.)
Tot zover de uitleg wat ik bedoelde; als antwoord op je vraag: dat is in principe triviaal, maar dat is allemaal theoretisch gedoe.

Het gaat mij om de praktijk en de huidige situatie.
De post waar ik op reageerde stelt dat WhatsApp gewoon mee kan lezen. Dat klopt niet.
Tevens stelde die post dat encryptie enkel veilig mogelijk is als de sleutels fysiek uitgewisseld worden. Dat klopt al helemaal niet.
Daarnaast wekt die post de suggestie dat omdat WhatsApp's servers een encrypted bestand vasthouden als deze niet afgeleverd kan worden, dat ze daarom om de een of andere manier toegang zouden hebben tot de plain-text. Dat klopt niet.
Tenslotte stelt die post dat Google Drive de encrypted containers van WhatsApp uit kan lezen. Dat klopt niet. Althans, ik heb daar geen enkel bewijs voor gezien, maar als dat bestaat zou ik het natuurlijk graag zien. (En nee, niet van 6 jaar geleden met dat crypt5 gedoe. Het gaat om het nu.)
Niets meer, niets minder.
[Reactie gewijzigd door WhatsappHack op 22 juli 2024 18:10]