U2F
Las claves utilizadas en U2F son generadas por el propio dispositivo, no puedes hacerlo tú mismo. página web para desarrolladores de Yubico lo explica muy claramente. Para abreviar, eche un vistazo al gráfico a continuación.
Device Secret se genera en la frase de fabricación. Por lo que yo sé, este secreto no puede ser cambiado por un pellizco de software. AppID es igual a la URL del servicio web. En el momento de la generación, un RNG integrado generará un Nonce, alimentará a un HMAC-SHA256 con AppID, codificado con el secreto del dispositivo, la salida es la clave privada. Luego, vuelva a introducir la clave privada y el ID de aplicación en la función HMAC, concatene la salida y el nonce, que se convierte en el identificador de clave. La clave pública se genera mediante la clave privada y se envía con el identificador de clave al servicio web.
X.509 / PIV
Esta es la parte sobre la firma de código y la clave para hacerlo. Sí, puedes generar una clave privada en tu propia máquina y subirla a Yubikey. Echa un vistazo a Explicación de PIV de Yubico . Especialmente los artículos bajo Introduction/Certificate slots
, Tools/YubiKey PIV Manager(if you use Windows)
y Guides
.
OpenPGP
Yubico es un poco poco explicativo de esta parte, por lo que encontré un gran repositorio de GitHub contribuido por drduh donde contiene una explicación completa sobre cómo usar OpenPGP con Yubikey.