Después de haber jugado con un #YubiHSM durante unos 4 días completos, ¡estoy contento con la elección! 😁 Dicho esto, también se queda corto en varios lugares, por lo que su kilometraje puede variar (también algunos lugares en los que necesitaba que no se quedara corto). 🧵
Donde brilla absolutamente es en sus capacidades y relativa elegancia y facilidad de uso. A diferencia de una YubiKey en la que se habla directamente con el dispositivo, el HSM generalmente se expone a través de un servidor web que lo interconecta. Esto le permite utilizar el HSM de forma remota (con los problemas de opsec retorcidos).
Yubico proporciona un shell CLI que puede hablar YubiHSM, lo cual es bueno porque puede comenzar de inmediato (realmente no desea implementar su propio protocolo aquí). En el lado negativo, es... no la CLI de alto perfil a la que estamos acostumbrados hoy en día. Tiene mucha deuda tecnológica y armas de fuego.
Desafortunadamente, los YubiHSM no son tan comunes, por lo que las bibliotecas de interfaces de otros lenguajes son casi inexistentes. Yubico hace python, así que o te dejas llevar por eso, o vuelves a caer en el caparazón... Basta con recordar las pistolas.
Mi principal problema con las pistolas es "ups, firmé algo inválido". Pues sí, vaya, porque nunca podrás explicar esa entrada del registro de auditoría ni probar lo que firmaste (sobre todo porque ni siquiera lo sabrás o podrás demostrarlo). Lo que nos lleva a lo malo: la auditación.
El YubiHSM se promociona a sí mismo teniendo un registro de auditoría firmado a prueba de manipulaciones. Bueno, la parte firmada resultó ser marketing, no está firmada. El registro de auditoría *está* vinculado a hash, desafortunadamente sin una firma también es inútil para la auditoría fuera de línea, ya que cualquier registro puede ser falsificado y hasheado.
La única forma de auditar un YubiHSM es tener una conexión en vivo con él. Esto se debe a que puedes demostrar que estás conectado a un HSM de Yubico (a través de certificados firmados), por lo que si confías en Yubico y su hardware HSM, entonces cuando dice que está en hash H, lo crees. Pero es interactivo.
El otro inconveniente es que el registro de auditoría solo contiene las operaciones que ejecutó, pero no los datos. Esto es algo comprensible, pero también hace que los registros sean mucho menos útiles: ¿su script se repitió 10 veces y firmó la cadena vacía? Bueno, hay 10 oportunidades para firmas maliciosas.
Además, al menos por ahora, no he encontrado una manera de demostrarle a un auditor que una clave específica *está* en el dispositivo. Si le das acceso a un auditor para dar fe de tus claves, entonces sí, funciona, pero se siente mal. Sin eso, solo puedo demostrar que *en algún momento tuve llaves*.
Mi dolor personal es porque quiero crear un informe de transparencia para mi proyecto @dark_dot_bio, lo que parece casi imposible con el YubiHSM. Si su modelo de amenazas es proteger las claves de los malos actores, un YubiHSM es perfecto. Si quieres demostrar que no hay mal uso, aunque suerte.
Con todo, no parece haber un producto mejor en el mercado a un rango de precios que realmente pueda pagar, por lo que el YubiHSM tendrá que hacerlo, pero cualquiera que lo esté investigando, tenga en cuenta que la capacidad de auditoría asume una *mucha* confianza que podría haberse evitado, pero no se hizo. Aleta.
2.39K