Efter att ha spelat med en #YubiHSM i cirka 4 hela dagar är jag ganska nöjd med valet! 😁 Som sagt, den kommer också till korta på ett antal platser, så din körsträcka kan variera (även vissa platser där jag behövde det för att inte komma till korta). 🧵
Där den absolut lyser är dess kapacitet och relativa elegans och användarvänlighet. Till skillnad från en YubiKey där du pratar direkt med enheten, exponeras HSM i allmänhet via en webbserver som gränsar till den. På så sätt kan du använda HSM på distans (med problem med gnarly opsec).
Yubico tillhandahåller ett CLI-skal som kan tala YubiHSM, vilket är trevligt eftersom du kan komma igång direkt (du vill verkligen inte rulla ditt eget protokoll här). På nackdelen är det... inte det högprofilerade CLI som vi är vana vid nuförtiden. Det har en hel del teknisk skuld och fotgevär.
Tyvärr är YubiHSM:er inte så vanliga, så gränssnittsbibliotek från andra språk är nästan obefintliga. Yubico gör python, så antingen rullar du med det, eller så faller du tillbaka till skalet... Kom bara ihåg fotgevären.
Mitt största problem med fotgevär är "ooops, jag undertecknade något ogiltigt". Tja, ja, hoppsan, för du kommer aldrig att kunna förklara den där revisionsloggposten eller bevisa vad du skrev under (mest för att du inte ens kommer att veta eller kunna bevisa det). Vilket leder oss till det dåliga: auditering.
YubiHSM hävdar att den har en manipuleringssäker signerad revisionslogg. Nåväl, den signerade delen visade sig vara marknadsföring, den är inte signerad. Granskningsloggen *är* hash-länkad, tyvärr utan signatur är den också värdelös för offlinerevision eftersom vilken logg som helst kan förfalskas och hashas.
Det enda sättet att granska en YubiHSM är att ha en live-anslutning till den. Det beror på att du kan bevisa att du är ansluten till en Yubico HSM (via signerade certifikat), så om du litar på Yubico och deras HSM-hårdvara, så tror du på det när det står att det är på hash H. Men det är interaktivt.
Den andra nackdelen är att granskningsloggen bara innehåller de åtgärder som kördes, men inga data. Detta är något förståeligt, men gör också loggarna mycket mindre användbara: ditt skript loopade 10 gånger och signerade den tomma strängen? Tja, det finns 10 möjligheter för skadliga signaturer.
Dessutom, åtminstone för tillfället, har jag inte hittat ett sätt att visa för en revisor att en specifik nyckel *finns* på enheten. Om du ger en revisor tillgång till att attestera dina nycklar, ja, det fungerar, men det känns bara fel. Utan det kan jag bara bevisa att jag *vid något tillfälle hade nycklar*.
Min personliga smärta är att jag vill skapa en transparensrapport för mitt @dark_dot_bio-projekt, vilket verkar halvt omöjligt med YubiHSM. Om din hotmodell är att skydda nycklarna från dåliga aktörer är en YubiHSM perfekt. Om du vill visa att det inte finns något missbruk, men tur.
Sammantaget verkar det inte finnas någon bättre produkt på marknaden i en prisklass som jag faktiskt har råd med, så YubiHSM får duga, men alla som tittar på det, var informerad om att revisionsförmågan förutsätter en *mycket* av förtroende som kunde ha undvikits, bara inte gjordes. Fena.
2,41K