SHARE THE PERSPECTIVE
Een offline test moet een specifiek resultaat opleveren; een hash of cryptografische demonstratie is geen volledige productaudit.

Een offline controle kan aantonen dat een specifieke berekening zonder een live antwoord van de server wordt uitgevoerd. Dat is waardevol, maar bewijst niet dat de hele berichtenapp veilig is. Voor een bruikbaar resultaat moet je nauwkeurig vastleggen welk bestand, welke versie, invoer en uitvoer je hebt getest.

Een bestandshash, releasehandtekening, testvector, reproduceerbare build en beveiligingsaudit beantwoorden verschillende vragen. Bewijs combineren is nuttiger dan één ervan tot een ‘keurmerk voor volledige veiligheid’ verheffen.

Wat toont elk bewijsstuk aan?

Bewijs De juiste, beperkte conclusie Wat niet automatisch wordt bewezen
SHA-256 van het bestand Het bestand komt overeen met de referentiedigest De referentiebron is eerlijk of de code is foutloos
APK-handtekening De handtekening is geldig voor het pakket en is gekoppeld aan de ondertekeningssleutel Die sleutel behoort toe aan de beoogde uitgever, tenzij dit apart is gecontroleerd
Testvector De geteste gevallen leveren de verwachte uitvoer op Alle producttoestanden en fouten zijn afgedekt
Reproduceerbare build De opgegeven broncode en omgeving leveren dezelfde uitvoer op De broncode bevat geen kwetsbaarheden
Audit Een bepaalde scope en versie zijn onderzocht Latere wijzigingen en onderdelen buiten de scope zijn ook goedgekeurd

De definitie van een reproduceerbare build gaat uit van specifieke invoer en een specifieke omgeving. Ook de officiële Android-tool apksigner is bedoeld om APK-handtekeningen te controleren; dat is iets anders dan een hash berekenen.

Wat valt momenteel binnen Livara’s Proof Lab?

De Proof Lab-pagina introduceert een lokale tool voor APK-hashes en demonstraties van P-256, HKDF en AES-GCM, waaronder het wijzigen van één bit om te zien hoe de authenticiteitscontrole faalt. De pagina vermeldt zelf expliciet dat de volledige combinatie LVR1/LGS1 buiten deze testomgeving valt.

Formuleer de juiste conclusie dus als volgt: ‘Dit bestand kwam overeen met de referentiedigest’ of ‘Deze cryptografische demonstratie wees de geteste wijziging af’. Schrijf niet: ‘Het volledige hybride protocol en de volledige geïnstalleerde versie zijn onafhankelijk geaudit’. Dit artikel rapporteert geen nieuw uitgevoerde test van die tool.

Hoe bereid je een herhaalbare offline test voor?

  1. Bepaal het doel. Wil je de identiteit van het bestand controleren of het gedrag van een cryptografische bewerking?
  2. Leg versie en bron vast. De APK-naam, het versienummer, het downloadadres en de digest van die release moeten bij elkaar horen.
  3. Bereid de tool en invoer voor vanuit een vertrouwde bron. Offline gaan maakt code die vanaf het begin kwaadaardig was niet betrouwbaar.
  4. Gebruik niet-gevoelige testgegevens. Voor een cryptografische demonstratie zijn geen privéberichten of echte geheimen nodig.
  5. Verbreek de verbinding en herhaal de test. Deze stap meet de afhankelijkheid van een live antwoord, niet de betrouwbaarheid van eerder gedownloade code.
  6. Leg resultaten en fouten vast. Vervang versieverschillen, laadfouten en afwijkende uitvoer niet door ‘geslaagd’.

Als de hash afwijkt, stop dan de installatie en controleer eerst de versie, het bestand en de referentiebron. Het verschil kan komen doordat je een andere release hebt gekozen; beschouw het zonder onderzoek niet als onmiskenbare malware of als beslist onbelangrijk.

Hoe verschilt een testvector van een officiële certificering?

Een testvector specificeert de invoer en verwachte uitvoer van bepaald gedrag. Verzamelingen zoals Wycheproof zijn nuttig om bibliotheken te testen op gevallen die samenhangen met bekende aanvallen. Slagen voor deze tests bewijst niet dat onbekende gevallen zijn afgedekt.

NIST CAVP heeft een proces voor algoritmevalidatie. Een paar openbare vectoren in de browser uitvoeren staat niet gelijk aan het verkrijgen van een validatiecertificaat; een standaardalgoritme gebruiken maakt een product evenmin automatisch gecertificeerd.

Welk bewijs moeten we vragen bij het vergelijken van berichtenapps?

Stel voor Livara, Signal, WhatsApp, Session of Element dezelfde vragen: wat is de exacte versie? Welk bestand is officieel? Hoe wordt de ondertekeningssleutel of referentiedigest geverifieerd? Welke tests kunnen worden uitgevoerd? Welke code en onderdelen vielen onder het auditrapport?

Dit artikel is geen op tests gebaseerde ranglijst van deze producten. Het ontbreken van een tool op één pagina bewijst niet dat er geen beveiligingsbewijs is; de aanwezigheid ervan bewijst evenmin dat het hele product beter is. Vergelijk de officiële documentatie van die versie en een reproduceerbaar verslag.

Een bruikbaar resultatenblad

Neem in je korte verslag het volgende op: doel, versie, bestandsbron, hash, tool en toolversie, netwerkstatus, niet-gevoelige invoer, verwachte uitvoer, waargenomen uitvoer en beperkingen. Als een andere test niet is uitgevoerd, noteer die dan als ‘niet getest’.

Het verifiëren van de sleutel van een contact is ook een afzonderlijke controle. Een lokale tool kan een bewerking demonstreren, maar verifieert niet voor jou de identiteit van je gesprekspartner of de veiligheidstoestand van diens telefoon. Lees Livara’s beveiligingsgrenzen naast de resultaten, in plaats van een perfecte score in een tool als garantie voor alle grenzen te beschouwen.

Voer een test uit in Proof Lab
CONTINUE THE THREADAndroid & device security ↗Calls, sync & reliability ↗
YOU’VE REACHED THE ENDBack to the reading room ↗