Securitybedrijf Binarly claimt dat hackers die in april een cyberaanval hebben uitgevoerd op de systemen
van MSI zowel private keys als Intel BootGuard hebben buitgemaakt
Hoe kan dat nou weer? Waarom zaten die keys niet in een hardware security module? Een bedrijf zo groot als MSI moet toch weten dat het niet verstandig is je private keys in software te bewaren. Dat is best wel onhandig maar je zal toch moeten als er zo ontzettend veel systemen afhankelijk zijn van zo'n sleutel. Mijn vragen waren dan ook een beetje retorisch van aard, want ik kan talloze redenen bedenken waarom het verschrikkelijk is om je keys alleen in hardware te hebben. Bijvoorbeeld omdat een ander goed IT-principe is dat je backups moet hebben van al data en dan is het makkelijk om te denken dat je ook je private keys moet backuppen.
Pragmatisch gezien snap ik dat maar het is eigenlijk niet compatible met het security model dat er van uit gaat dat private keys ook echt altijd prive zijn en eigenlijk niet kunnen uitlekken en/of dat gelekte sleutels onmiddelijk worden ingetrokken. Dat intrekken van keys is overigens best lastig in praktijk en om te controleren of een key is ingetrokken heb je internet nodig en dat zal er niet altijd zijn.
Ook als er wel internet is dan is het intrekken van zo'n sleutel nog niet zo makkelijk omdat het betekent dat apparatuur van miljoenen mensen onbruikbaar wordt omdat de handtekening onder driver ongeldig is verklaard. Dat zullen die klanten niet leuk vinden.
Het is ook niet moeilijk om te zien hoe riskant het is om "alles" af te laten hangen van een enkele geheime sleutel die je niet mag backuppen.
Gelukkig is er een betrekkelijk eenvoudige oplossing voor zowel het backup- als het intrekprobleem: meerdere private keys. In plaats van één unieke key maak je meerdere unieke keys aan en je ondertekent je drivers met alle keys. Als er één key uitlekt dan kun je die gewoon intrekken zolang omdat die andere keys blijven werken. Technisch gezien kan dat prima, daar zijn hooguit kleine aanpassingen voor nodig want werken met meerdere keys is iets wat die systemen op zich al kunnen.
Als je toch al zo'n systeem hebt dan wordt het ook haalbaar om drivers door meerdere partijen te laten signen. Bijvoorbeeld door zowel MSI als door Microsoft als door een onafhankelijke derde partij die gespecialiseerd is in software security. Als één van die partijen zou wegvallen dan kun je vertrouwen op de handtekening van andere partijen. Nog mooier zou het zijn als we onze clients gaan instrueren dat één handtekening niet genoeg is, maar je bijvoorbeeld minimaal handtekeningen van twee onafhankelijke partijen wil zien voor je een driver accepteert.
Als een crimineel zo'n sleutel te pakken krijgt dan is het nog steeds niet genoeg om zelf drivers te signen. Die zouden immers maar één vertrouwde handtekening hebben. Dan moet zo'n crimineel al sleutels stelen van verschillende partijen en gebruiken voor iemand ontdekt dat zo'n sleutel is gestolen.
Ook mooi aan zo'n systeem is dat je niet langer blind vertrouwen hoeft te hebben in alle hardware fabrikanten (en Microsoft en nog wat andere grote bedrijven) maar ook informatie uit andere bronnen kan gebruiken. Zo zou de overheid een dienst kunnen opzetten die zelf drivers op veiligheid controleert en de handtekeningen publiceert. De overheid zou dan een regel maken dat overheidscomputers alleen met goedgekeurde drivers mogen werken om spionage te voorkomen.
Anderen (consumenten) kunnen daar vrijwillig gebruik van maken. Op het eerst gezicht klinkt het misschien eng om je drivers door de overheid te laten keuren maar omdat er in mijn voorstel altijd handtekeningen van meerdere partijen nodig zijn kan een foute overheid daar geen misbruik van maken door drivers te veranderen. Sterker nog, ik zou er dan voor kiezen om alleen drivers te gebruiken die zijn goedgekeurd door de Nederlandse regering én de Russische én de Chinese én de Amerikaanse. Als die vier overheden het eens zijn dat een driver te vertrouwen is dan geloof ik het ook wel. Geen van die partijen zou ik blind willen vertrouwen maar je moet wel heel paranoide zijn om te geloven dat al die partijen samen werken aan een hack. Het gebrek aan onderling vertrouwen houdt ze eerlijk.
Owja, hoe die controle moet werken mogen de landen zelf uitzoeken en dat is nog best lastig, maar dat probleem heb je sowieso dus daar wil ik nu even niet op in gaan. Alles beter dan niks.
[Reactie gewijzigd door CAPSLOCK2000 op 23 juli 2024 09:06]