Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pivit — Gestionar certificados x509 en YubiKeys habilitadas para PIV, generar claves y solicitudes de certificados, y firmar o verificar commits de git y archivos. | Kitploit
Herramientas/GitHubGitHub/cashapp/pivit
CriptografíaSeguridad de HardwareAutenticación
GitHubcashapp/pivit

pivit

Gestionar certificados x509 en YubiKeys habilitadas para PIV, generar claves y solicitudes de certificados, y firmar o verificar commits de git y archivos.

Ver Repositorio
100920hace 3 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

codecov

Pivit

Pivit es una herramienta de línea de comandos para gestionar certificados x509 almacenados en tarjetas inteligentes con soporte de applet PIV (Yubikey), y usar esos certificados para firmar y verificar datos.

Es totalmente compatible con la forma en que la línea de comandos de git llama a programas externos para firmar y verificar commits y etiquetas.

Instalación

Brew

brew install pivit

Instalación con Go

go install github.com/cashapp/pivit/cmd/pivit@latest

Uso

Para configurar git para que use pivit para firmar y verificar firmas, ejecuta los siguientes comandos:

git config --(local|global) gpg.format x509
git config --(local|global) gpg.x509.program pivit

Reiniciar e inicializar el PIV del Yubikey

pivit --reset

Reinicia el applet PIV del Yubikey y crea un nuevo PIN para acceder a él.

Generar un certificado

pivit --generate [--p256] [--self-sign | --no-csr] [--assume-yes] [--pin-policy] [--touch-policy]

Genera un nuevo par de claves en la ranura de autenticación de tarjeta del Yubikey.
Este comando también generará y almacenará un certificado x509 para la clave generada, firmado por Yubico.

Si se proporciona la opción --p256, el par de claves se genera utilizando la curva elíptica P-256. De lo contrario, se utiliza la curva P-384.

Añade la opción --self-sign para generar un certificado autofirmado; el certificado se firma con la clave recién generada.
Se te pedirá que confirmes que realmente deseas un certificado autofirmado, luego se te pedirá el PIN y, a continuación, se te pedirá que toques tu Yubikey.
La salida contendrá 3 bloques CERTIFICATE en lugar de un CERTIFICATE_REQUEST al final (ejemplo de salida abajo).
Esta opción es útil principalmente para fines de prueba. La opción --assume-yes se puede usar en combinación con la opción --self-sign para deshabilitar la solicitud de sí/no.

Añade la opción --no-csr para omitir la impresión de la solicitud de firma de certificado. En este caso, no se te pedirá que toques tu Yubikey.
Esta opción es útil si no necesitas que la clave generada forme parte de una PKI existente.
Puedes verificar el certificado de la clave usando el certificado de Yubico aquí.

La opción --pin-policy controla cuándo se solicita el PIN al acceder a la clave generada.
Establézcala en uno de never, once o always (el valor predeterminado es never).

La opción --touch-policy controla cuándo se solicita tocar físicamente el hardware al acceder a la clave generada.
Establézcala en uno de never, cached o always (el valor predeterminado es always).

La salida del comando se verá así:

Printing Yubikey device attestation certificate:
----- BEGIN CERTIFICATE -----
...
----- END CERTIFICATE -----
Printing generated key certificate:
----- BEGIN CERTIFICATE -----
...
----- END CERTIFICATE -----
Printing certificate signing request:
----- BEGIN CERTIFICATE REQUEST -----
...
----- END CERTIFICATE REQUEST-----

El CERTIFICATE REQUEST al final está firmado por la nueva clave privada generada, y se puede usar para emitir un certificado firmado por una CA.

Si eliges emitir y usar tu propio certificado, también es importante verificar que:

  • El certificado de atestación del dispositivo está firmado por Yubico.
  • El certificado de la clave está firmado por el certificado de atestación del dispositivo.
  • La clave pública en la solicitud de firma de certificado es la misma que la clave pública en el certificado de la clave.

Parámetros de la solicitud de certificado

Pivit permite establecer diferentes atributos en la CSR mediante variables de entorno.

Las siguientes opciones de certificado se establecerán de la siguiente manera:

  • Subject.CommonName se establecerá con el valor de la variable de entorno PIVIT_EMAIL.
  • Subject.Organization se establecerá con el valor de la variable de entorno PIVIT_ORG.
  • Subject.OrganizationalUnit se establecerá con el valor de la variable de entorno PIVIT_ORG_UNIT.

Además, los siguientes Nombres Alternativos de Sujeto (SAN) se incluirán en la solicitud de certificado:

  • Direcciones de correo electrónico: incluirán PIVIT_EMAIL
  • URIs: incluirán todas las URL especificadas en la variable de entorno PIVIT_CERT_URIS (las URIs están separadas por un espacio)

Soporte de ranuras PIV

El módulo PIV soporta múltiples ranuras donde se pueden almacenar claves y certificados.
Ranuras disponibles: 9a, 9c, 9d y 9e.

  • 9e es la ranura de "Autenticación de tarjeta".
    Es la única ranura que no requiere PIN para acceder a la clave privada al firmar con ella, lo que resulta en menos fricción en el uso.
  • 9a es la ranura de "Autenticación". Se usa para acciones como el inicio de sesión en el sistema.
  • 9c es la ranura de "Firma digital". Se usa para firmar documentos, o firmar archivos y ejecutables.
  • 9d es la ranura de "Gestión de claves". Se usa para cosas como cifrar correos electrónicos o archivos con fines de confidencialidad.

Para más información

pivit permite elegir una ranura usando la opción -w.
Para cada comando, si no se especifica una ranura, se usa 9e por defecto.
Por ejemplo:

  • Generación de certificados

    pivit --generate [-w slot]
    
  • Firma

    pivit -s -u userid [-w slot]
    
  • Impresión de un certificado

    pivit --print [-w slot]
    

Especificar un Yubikey por número de serie

Por defecto, pivit espera que haya un solo Yubikey conectado. Si un sistema tiene varios lectores de tarjetas o Yubikeys, o para simplemente asegurarse de que pivit se está comunicando con el Yubikey deseado, especifique el número de serie mediante la variable de entorno PIVIT_YK_SERIAL.

Ejemplo:

PIVIT_YK_SERIAL=13078292 pivit --print

Esto se puede usar con cualquier comando.

Importar certificado al Yubikey

pivit --import [--first-pem] [file]

Importa un certificado desde file.
Se espera que el nombre de archivo dado contenga un certificado x509 serializado codificado como un bloque PEM.

Esta acción solicita el PIN del Yubikey.

Añade --first-pem para importar el primer bloque PEM de file, ignorando el resto. Esto es útil si se usa una CA que proporciona sus certificados emitidos como una cadena o paquete, con el certificado de entidad final primero (esta es la convención).

Imprimir información del certificado

pivit --print

Imprime el certificado almacenado en la ranura de autenticación de tarjeta del Yubikey, junto con su huella digital.
Por ejemplo:

> pivit --print
bad126c47dc90e90e0c7ec90ec682b1717e52757
-----BEGIN CERTIFICATE-----
MIICczCCAVugAwIBAgIRANATKTxzlHOJgMdV30XRz5kwDQYJKoZIhvcNAQELBQAw
ITEfMB0GA1UEAwwWWXViaWNvIFBJViBBdHRlc3RhdGlvbjAgFw0xNjAzMTQwMDAw
MDBaGA8yMDUyMDQxNzAwMDAwMFowJTEjMCEGA1UEAwwaWXViaUtleSBQSVYgQXR0
ZXN0YXRpb24gOWUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAT1l76Mvo6dJ4CwX2QQ
HImYRWbxLqt1kCVsn0PUn20DYtSKLuq8kCnMAn+kdneqjtaaBmWuPJH+g7LMyI18
QDQp2w+qSOf9ZWrOupMAGM8EpWXNTSNKoE50JhKXFbudBByjTjBMMBEGCisGAQQB
gsQKAwMEAwUBAjAUBgorBgEEAYLECgMHBAYCBACDq1IwEAYKKwYBBAGCxAoDCAQC
AQIwDwYKKwYBBAGCxAoDCQQBBDANBgkqhkiG9w0BAQsFAAOCAQEAGSmu0PUMDfEb
PkmkJ/rKYvpOKhbmpryjXuZ7ENJ3jGq3foyLSN+aBbd3M1im2ejC6/upthcp1N5M
Mg2SN6MBRS4crtt43DVHepBPt2W07vW8h4uFosJX29HdhK0dP+RnBGDdWYo0nq7y
7q1Y1c0BI7oGnaORL0DzSDtdxAJAphjspWsWNCIP2DTWQPhLTg4DqmYd/ahygVsZ
IE64QvJDQC72Dfyad6tIajmtPncqPt857H0hEJv2X58iOoJA/wAeuId4or859cJU
GTDbN7Ke4LWXRbs7StJTgefmNgWmKjm1Q2qs80WGShyQ6OrxALejd8jivtcTwsDz
WvzdmHCOmg==
-----END CERTIFICATE-----
Descargar herramienta