Door SecOff: Een tls-certificaat is eigenlijk niets meer dan één van de componenten die wordt gebruikt een een versleutelde verbinding tussen een browser en een webserver op te zetten.
Je hebt geen certificaat nodig voor een versleutelde TLS verbinding!
Uit
https://wiki.openssl.org/index.php/Diffie_Hellman#Diffie-Hellman_in_SSL.2FTLS:
There are three versions of Diffie-Hellman used in SSL/TLS.
• Anonymous Diffie-Hellman
• Fixed Diffie-Hellman
• Ephemeral Diffie-Hellman
Anonymous Diffie-Hellman uses Diffie-Hellman, but without authentication. Because the keys used in the exchange are not authenticated, the protocol is susceptible to Man-in-the-Middle attacks. Note: if you use this scheme, a call to SSL_get_peer_certificate will return NULL because you have selected an anonymous protocol. This is the only time SSL_get_peer_certificate is allowed to return NULL under normal circumstances.
You should not use Anonymous Diffie-Hellman. You can prohibit its use in your code by using "!ADH" in your call to SSL_set_cipher_list.
Fixed Diffie-Hellman embeds the server's public parameter in the certificate, and the CA then signs the certificate. That is, the certificate contains the Diffie-Hellman public-key parameters, and those parameters never change.
Ephemeral Diffie-Hellman uses temporary, public keys. Each instance or run of the protocol uses a different public key. The authenticity of the server's temporary key can be verified by checking the signature on the key. Because the public keys are temporary, a compromise of the server's long term signing key does not jeopardize the privacy of past sessions. This is known as Perfect Forward Secrecy (PFS).
You should always use Ephemeral Diffie-Hellman because it provides PFS. You can specify ephemeral methods by providing "kEECDH:kEDH" in your call to SSL_set_cipher_list.
Bij de gebruikelijke
Ephemeral Diffie-Hellman worden de de DH-parameters door de server ondertekend met diens private key. De client, die als het goed is dezelfde parameters gebruikt, checkt die digitale handtekening aan de hand van de public key in het servercertificaat en vergelijkt de parameters. Als daar een verschil tussen bestaat, is er sprake van een AitM.
Bij
Anonymous Diffie-Hellman heb je geen https servercertificaat nodig.
Het eerste probleemAnonymous Diffie-Hellman (geen certificaat) is prima als er
geen AitM (Attacker in the Middle) tussen jouw browser en de server zit en DNS betrouwbaar is (de DNS-records niet gehacked zijn en de communicatie tussen de DNS-server en jouw browser niet gemanipuleerd wordt).
Bij een DV-certificaat vertrouw je erop dat, tijdens certificaat-uitgifte, er
geen AitM tussen de certificaat-provider en de server zat en dat DNS betrouwbaar was (de DNS-records niet gehacked waren en de communicatie tussen de DNS-server en de certificaat-provider niet gemanipuleerd werd).
Een DV-certificaat is dus
nauwelijks een verbetering t.o.v.
geen certificaat, en dit gaat in de praktijk ook daadwerkelijk fout. Voorbeelden (waarbij Let's Encrypt certificaten voor specifieke domeinnamen aan cybercriminelen voor heel andere servers werden verstrekt):
• BGP-hijack:
https://arstechnica.com/information-technology/2022/09/how-3-hours-of-inaction-from-amazon-cost-cryptocurrency-holders-235000/. Nb. zo'n aanval is steeds moeilijker naarmate het langer duurt voordat de cybercrimineel z'n (onterecht afgegeven) certificaat verkrijgt. "Dankzij" het bloedsnelle Let's Encrypt is dit geen probleem voor de aanvallers.
• Primary DNS-records hacked:
https://www.mandiant.com/resources/blog/global-dns-hijacking-campaign-dns-record-manipulation-at-scale.
• Subdomain takeover attacks:
https://0xpatrik.com/subdomain-takeover-impact/• Bij de voorbeelden van "Domain Shadowing attacks (
https://unit42.paloaltonetworks.com/domain-shadowing/) kon ik geen Let's Encrypt of andere DV certs vinden, maar het zou mij verbazen als die niet gebruikt worden bij dit soort aanvallen.
Probleem tweeDe meeste phishing-sites gebruiken DV-certificaten. Je krijgt ze onmiddellijk, niemand checkt of de domeinnaam duidelijk bedoeld is voor phishing, ze zijn gratis (geen money-trail) en het is "no questions asked"; er komt geen organisatienaam in het certificaat waarvan je moet bewijzen dat jij namens die organisatie geautoriseerd bent om dat certificaat aan te vragen. Perfect voor cybercriminelen.
Probleem drieGebruikers kunnen onmogelijk weten of een domeinnaam in de adresbalk van hun browser van de organisatie is die de pagina zegt te zijn (de link genoemd in
https://www.virustotal.com/gui/url/bdf3e928b4ad185b713d25a58348fa79d3a7aaa596c244c03f1783bd4bc6a3d5/details is nog steeds live, en suggereert een OneDrive pagina te zijn).
Doordat webbrowsers geen onderscheid meer laten zien tussen de verschillende soorten certificaten, weten gebruikers
van geen enkele site (ook niet van digid.nl, hun bank of cryptovalutaboer) hoe zeker het is dat je echt verbinding hebt met de in de adresbalk vermelde domeinnaam (zie probleem 1: het kan om een nepsite gaan). Bovendien kun je in steeds minder browsers certificaten bekijken en last but not least gebruiken steeds meer sites, waarbij de authenticiteit cruciaal is, ook DV-certificaten.
Tegelijkertijd wil de EU dat wij ons paspoorten digitaliseren op onze smartphones zodat
wij ons wel "betrouwbaar" kunnen authenticeren - op websites waarvan we geen idee hebben van wie zij zijn.
Door SecOff: Dezelfde kritiek die je hebt op de certificaat leveranciers zou je daarom ook kunnen hebben op de domain verkopers en webhosters, die werken net zo goed mee aan het faciliteren van cyber-crime door zomaar iedereen een domeinnaam of webserver te geven zonder de naam te koppelen aan een legitieme organisatie.
Webhosters hoeven niet te weten welke fout-klinkende domeinnamen naar hun servers wijzen en ook horen zij, vanwege privacy, niet op de servers van hun klanten rond te neuzen.
Het kan mij persoonlijk niet schelen of DNS-boeren danwel certificaatverstrekkers controleren, maar zoals je zelf zegt deden certificaatverstrekkers dat van oudsher. Zij vervulden, en bij OV/EV certificaten vervullen zij nog steeds, een soort notarisrol die de aanvrager authenticeert. Ook zitten zij, via het CAB-forum, met de browserboeren aan tafel. En als een certificaatboer zich misdraagt (onterecht certificaten uitgeeft aan criminelen), kunnen de rootcerts uit browsers worden geschrapt.
Door SecOff: Ook al zou het verschil tussen EV en DV certificaten nog te zien zijn in browsers, dan nog controleren de meeste mensen niet op wiens naam een EV certificaat is uitgegeven. De reden dat Chrome gestopt is met visueel onderscheid tussen EV en DV certtificaten is:
"Through our own research as well as a survey of prior academic work, the Chrome Security UX team has determined that the EV UI does not protect users as intended. Users do not appear to make secure choices (such as not entering password or credit card information) when the UI is altered or removed, as would be necessary for EV UI to provide meaningful protection."
Zelfs al zou de identiteit van een organisatie goed worden gecontroleerd en weergegeven in de browser dan nog zouden er phishing sites zijn omdat gebruikers die identiteit toch niet goed controleren.
Verstandige gebruikers letten daar
wel op. En die verstandige gebruikers bestaan (ik ben er één van). Belangrijker is dat ik nu niet meer fatsoenlijk aan iedereen, die het wil horen, kan uitleggen waar ze op moeten letten, want het verschil tussen nep en echt is flinterdun geworden sinds browsers EV-gegevens niet meer tonen.
Door SecOff: Het echte probleem ligt in het feit dat veel mensen waarde hechten aan tls-certificaten als bewijs dat een website onder controle staat van een organisatienaam die zich op die website presenteert terwijl bij geen enkel certificaat, ook EV niet, zo is.
Kul. Het is niet 100% onmogelijk maar wel
extreem veel moeilijker voor cybercriminelen om een EV-cert voor een gegeven domeinnaam te kopen, dan een DV-cert te verkrijgen.
Door SecOff: Ik denk dat het probleem van welke website er wel of niet vertrouwd kan worden niet eenvoudig op te lossen is.
Als je weet dat een partij Sywert van Lienden of "WC Eend" heet, wil dat niet zeggen dat die partij betrouwbaar is. Maar dat probleem bestaat al sinds mensenheugenis. Wel is het zo dat als je de naam van een partij kent en zeker weet dat je met die partij (en niet met een identiteitsfraudeur) te maken hebt, je bijv. naar
reputatie kunt kijken. De risico's tussen "face to face" zakendoen met een partij zijn dan vergelijkbaar met zakendoen via een website met een
geauthenticeerde partij.
Door SecOff: Het komt uiteindelijk neer op een goede controle door de bezoeker en dat gaat in veel gevallen niet goed. Er zijn ook nog steeds mensen die hun bankpas en pincode afgeven aan iemand die aanbelt en zegt namens de bank te komen.
We kunnen het aantal internet-fraude-slachtoffers, net als het aantal verkeersdoden, waarschijnlijk nooit op nul krijgen - maar wel lager. En bij een kleiner aantal slachtoffers zijn vangnetten (zoals grotendeels vergoeden van de schade via een fonds of evt. verzekeringen met betaalbare premies) wellicht ook acceptabeler.