← Nieuwste papers
💻 computer science

Resolving an Apparent Key-Dependent Timing Side-Channel in Bouncy Castle ML-DSA-65 Signing: A Pre-Registered Discrimination

Dit artikel toont aan dat een ogenschijnlijk sleutelafhankelijke timing-zijkanaal in de ML-DSA-65-implementatie van Bouncy Castle feitelijk een statistisch artefact is van natuurlijke variatie in rejection-sampling, wat verdwijnt wanneer de timing wordt geanalyseerd binnen een vooraf geregistreerd protocol dat conditioneert op het exacte aantal uitgevoerde iteraties, waardoor de veiligheid van de implementatie over alle gestandaardiseerde parametersets wordt bevestigd.

Oorspronkelijke auteurs: Arpan Sharma

Gepubliceerd 2026-09-09
📖 7 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Arpan Sharma

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

In de wereld van digitale beveiliging zijn de krachtigste sloten vaak de sloten die het langst nodig hebben om te kraken. Decennialang hebben wiskundigen cryptografische systemen ontworpen die vertrouwen op complexe problemen om gegevens veilig te houden. Naarmate computers krachtiger worden en de belofte van quantumcomputers nabij komt, racen wetenschappers om nieuwe sloten te bouwen die zelfs die toekomstige machines niet kunnen breken. Een van de meest veelbelovende nieuwe ontwerpen wordt ML-DSA genoemd. Het is een methode voor het maken van digitale handtekeningen, het elektronische equivalent van een handgeschreven handtekening op een contract of een certificaat. Deze handtekeningen bewijzen dat een bericht afkomstig is van een specifieke persoon en niet is aangepast.

Er is echter een nieuw soort gevaar opgekomen naast deze wiskundige sloten. Het is niet een fout in de wiskunde zelf, maar een fout in de manier waarop de wiskunde op een computer wordt uitgevoerd. Dit staat bekend als een timing side-channel aanval. Stel je een kluis voor die iets harder klikt wanneer de juiste combinatie wordt ingevoerd, of een deur die een fractie van een seconde langer nodig heeft om te openen wanneer de juiste sleutel wordt gebruikt. Als een aanvaller deze minuscule tijdsverschillen met extreme precisie kan meten, zou hij in staat kunnen zijn om de geheime sleutel af te leiden. Voor het nieuwe ML-DSA-systeem heeft de ontwerper een veiligheidsfunctie ingebouwd: het proces omvat veel vallen en opstaan. De computer probeert een handtekening te genereren, controleert of deze geldig is, en als dat niet zo is, gooit hij deze weg en probeert hij het opnieuw. Omdat het aantal pogingen willekeurig varieert, varieert de totale tijd die nodig is om een bericht te ondertekenen ook. Deze willekeur is bedoeld om de geheime sleutel te verbergen, waardoor het onmogelijk is om te zeggen of een specifieke vertraging werd veroorzaakt door de sleutel of gewoon door pech.

Een onderzoeker genaamd Arpan Sharma onderzocht onlangs of deze veiligheidsfunctie naar behoren werkte in een populaire softwarebibliotheek genaamd Bouncy Castle. Deze bibliotheek wordt op grote schaal gebruikt om alles te beveiligen, van software-updates tot veilige webverbindingen. Toen Sharma voor het eerst naar de gegevens keek, zag hij iets wat leek op een lek. Door de tijd die nodig was om berichten te ondertekenen te vergelijken met twintig verschillende geheime sleutels, ontdekte hij dat sommige sleutels consequent langer duurden dan andere. Het verschil was klein — ongeveer 1,35 procent — maar in de wereld van beveiliging kan zelfs een minuscuul, consistent verschil een signaal zijn dat een geheim wordt onthuld. De vraag was of dit verschil een echte kwetsbaarheid was, een fout in de code die de geheime sleutel de mogelijkheid gaf om de tijd te beïken, of simpelweg een statistische illusie veroorzaakt door de willekeurige aard van het systeem.

Om dit te beantwoorden, vertrouwde Sharma niet op een simpele gok of een snelle test. Hij ontwierp een rigoureus, vooraf gepland experiment om het signaal van de ruis te scheiden. De kern van zijn methode was om te kijken naar het werk dat de computer daadwerkelijk verrichtte voor elke handtekening, in plaats van alleen naar de uiteindelijke tijd te kijken. Hij bouwde een hulpmiddel dat precies registreerde hoe vaak de computer moest proberen en falen voordat hij een geldige handtekening vond. Dit is cruciaal omdat de tijd die nodig is om een bericht te ondertekenen direct verbonden is met hoe vaak de computer opnieuw moet proberen. Als een sleutel toevallig een "gelukkig" pakket aan berichten kreeg die minder pogingen vereisten, zou deze sneller klaar zijn, niet omdat de sleutel anders was, maar omdat de wiskunde die dag makkelijker was.

Sharma voerde een enorme campagne uit, waarbij hij meer dan 1,2 miljoen handtekeningen genereerde voor elke van de twintig sleutels. Hij groepeerde de handtekeningen vervolgens op basis van de exacte hoeveelheid werk die ze vereisten. Hij stelde een eenvoudige vraag: als twee handtekeningen exact hetzelfde aantal pogingen vereisten en exact dezelfde stappen doorliepen, duurden ze dan nog steeds een andere tijd afhankelijk van welke sleutel werd gebruikt? Het antwoord was een definitief nee. Zodra hij rekening hield met het aantal pogingen, verdween het tijdsverschil tussen de sleutels. De minuscule variaties die overbleven waren zo klein dat ze verklaard konden worden door de natuurlijke, willekeurige fluctuaties van de processor en het geheugen van de computer, in plaats door de geheime sleutels zelf.

De studie ging verder om te waarborgen dat de resultaten geen toevalstreffer waren van de specifieke computer of de manier waarop de software in het geheugen werd geladen. Sharma herhaalde het experiment met een nieuwe set sleutels en een nieuwe set berichten. Hij voerde ook een controletest uit waarbij hij de volgorde waarin de computer de gegevens verwerkte, door elkaar haalde. Als de tijdsverschillen werden veroorzaakt door de geheime sleutels, zou de volgorde van de sleutels er niet toe doen. Als de verschillen werden veroorzaakt door waar de gegevens in het geheugen van de computer terechtkwamen, zou de volgorde de resultaten veranderen. Het experiment toonde aan dat de tijdsverschillen de sleutels niet volgden; ze volgden de lay-out van het geheugen. Dit bevestigde dat de tijdsverschillen een artefact waren van de omgeving van de computer, en niet een fout in de beveiliging van de code.

Het onderzoek keek ook naar het ene deel van de code dat bekend stond als zijnde iets anders afhankelijk van de gegevens. De software controleert de grootte van getallen tijdens het proces, en als een getal te groot is, stopt het direct met het controleren van de rest van de lijst. Dit is een standaardoptimalisatie om tijd te besparen, maar het betekent dat de computer voor sommige inputs eerder kan stoppen dan voor andere. Sharma mat de impact van deze afkorting en stelde vast dat deze een vertraging van slechts ongeveer één nanoseconde veroorzaakte. Dit is een miljardste van een seconde, een tijdschaal die zo klein is dat deze ver onder de drempel ligt die een aanvaller realistisch gezien zou kunnen meten of gebruiken om een sleutel te stelen.

De bevindingen werden toegepast op de gehele familie van deze nieuwe digitale standaardhandtekeningen, inclus[ief] de kleinere en grotere versies die voor verschillende beveiligingsniveaus worden gebruikt. In elk geval was het resultaat hetzelfde. De software-implementatie was schoon. De schijnbare tijdsverschillen waren geen teken dat de geheime sleutels werden gelekt. In plaats daarvan waren ze het natuurlijke resultaat van een systeem dat is ontworpen om zijn werk te variëren om juist die sleutels te beschermen. De studie concludeerde dat de Bouncy Castle-bibliotheek veilig is voor dit specifieke type aanval. De spreiding van 1,35 procent in tijd die aanvankelijk alarmen deed afgaan, was simpelweg het geluid van twintig verschillende sleutels die twintig verschillende monsters uit een willekeurige verdeling trokken, een statistische echo in plaats van een beveiligingslek.

Dit onderzoek dient als een herinnering aan hoe moeilijk het is om te bewijzen dat een systeem veilig is. In het verleden zouden onderzoekers misschien gestopt zijn bij het eerste teken van een tijdsverschil en een kwetsbaarheid hebben verklaard. Deze studie laat zien dat in complexe, gerandomiseerde systemen het eerste teken vaak gewoon het systeem is dat zijn werk doet. Door zorgvuldig het uitgevoerde werk te meten en de omgeving te controleren, was de onderzoeker in staat om onderscheid te maken tussen een echt lek en een statistische illusie. Het resultaat is een bevestiging dat de nieuwe digitale handtekeningen robuust zijn, en dat de willekeurige variaties in hun snelheid een kenmerk zijn, en geen fout. Voor de miljoenen apparaten die op deze handtekeningen vertrouwen om veilig te blijven, is de boodschap duidelijk: het slot houdt stand, en de tijd die nodig is om de sleutel om te draaien, vertelt je niets over het geheim dat erin zit.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →