Na ongeveer 4 volle dagen met een #YubiHSM te hebben gespeeld, ben ik best blij met de keuze! 😁 Dat gezegd hebbende, het schiet op een aantal plekken tekort, dus jouw ervaring kan variëren (ook op sommige plekken waar ik wilde dat het niet tekortschiet). 🧵
Waar het absoluut uitblinkt, zijn de mogelijkheden en de relatieve elegantie en gebruiksvriendelijkheid. In tegenstelling tot een YubiKey, waarbij je direct met het apparaat praat, wordt de HSM doorgaans blootgesteld via een webserver die ermee communiceert. Dit stelt je in staat om de HSM op afstand te gebruiken (met de vervelende opsec-problemen).
Yubico biedt een CLI-shell die kan communiceren met YubiHSM, wat fijn is omdat je meteen aan de slag kunt (je wilt hier echt geen eigen protocol ontwikkelen). Aan de andere kant is het... niet de hooggeprofileerde CLI waar we tegenwoordig aan gewend zijn. Het heeft veel technische schuld en valkuilen.
Helaas zijn YubiHSM's niet zo gebruikelijk, dus interfacebibliotheken van andere talen zijn bijna niet-bestaand. Yubico doet Python, dus je moet ofwel daarmee aan de slag gaan, of terugvallen op de shell... vergeet gewoon de voetkanonnen niet.
Mijn belangrijkste probleem met voetkanonnen is "oeps, ik heb iets ongeldig getekend". Nou ja, oeps, omdat je die auditlogboekvermelding nooit zult kunnen uitleggen of bewijzen wat je hebt getekend (voornamelijk omdat je het zelfs niet weet of kunt bewijzen). Wat ons leidt naar het slechte: auditing.
De YubiHSM prijst zichzelf aan met een tamper-proof ondertekend auditlogboek. Nou, het ondertekende deel bleek marketing te zijn, het is niet ondertekend. Het auditlogboek *is* hash-gelinkt, helaas is het zonder handtekening ook nutteloos voor offline auditing, aangezien elk logboek vervalst en gehasht kan worden.
De enige manier om een YubiHSM te auditen is om een live verbinding ermee te hebben. Dat komt omdat je kunt bewijzen dat je verbonden bent met een Yubico HSM (via ondertekende certificaten), dus als je Yubico en hun HSM-hardware vertrouwt, dan geloof je het wanneer het zegt dat het op hash H is. Maar het is interactief.
Een ander nadeel is dat het auditlogboek alleen de uitgevoerde bewerkingen bevat, maar geen gegevens. Dit is enigszins begrijpelijk, maar maakt de logs ook een stuk minder nuttig: je script heeft 10 keer gelopen en de lege string ondertekend? Nou, er zijn 10 kansen voor kwaadaardige handtekeningen.
Ook heb ik, althans voor nu, geen manier gevonden om aan een auditor te demonstreren dat een specifieke sleutel *op* het apparaat staat. Als je een auditor toegang geeft om je sleutels te bevestigen, dan werkt het, maar het voelt gewoon verkeerd. Zonder dat kan ik alleen bewijzen dat ik *op een bepaald moment sleutels had*.
Mijn persoonlijke pijn is dat ik een transparantierapport wil maken voor mijn @dark_dot_bio-project, wat semi-impossible lijkt met de YubiHSM. Als je dreigingsmodel is om de sleutels te beschermen tegen slechte actoren, is een YubiHSM perfect. Als je echter geen misbruik wilt aantonen, heb je pech.
Al met al lijkt er geen beter product op de markt te zijn in een prijsklasse die ik me kan veroorloven, dus de YubiHSM zal het moeten doen, maar iedereen die ernaar kijkt, wees gewaarschuwd, de auditcapaciteit veronderstelt een *boel* vertrouwen dat vermeden had kunnen worden, maar dat gewoon niet is gebeurd. Fin.
2,33K