Seguridad

    Cómo compartir de forma segura un certificado privado mediante un enlace

    Separa el certificado de su clave privada, empaqueta la clave en un PFX con contraseña, envíalo con un enlace de un solo uso y manda la contraseña aparte.

    LinkPilot Team · Las personas que desarrollan y gestionan LinkPilot en TetraCore, LLC · Sobre LinkPilot

    Te llega una petición de certificado: un proveedor necesita tu certificado de cliente, un balanceador de carga nuevo necesita el certificado comodín, un compañero necesita el certificado de firma para compilar una versión. El archivo que piden puede ser inofensivo o puede ser la clave privada que permite a cualquiera suplantar tu servicio, y los dos suelen viajar en el mismo paquete.

    Para compartir de forma segura un certificado privado mediante un enlace, primero averigua qué mitad hace falta de verdad. Después empaqueta la clave privada para que no sirva de nada sin una contraseña, envía el archivo con un enlace de un solo uso que se destruye tras la primera descarga y manda la contraseña por otra vía. Esta guía recorre cada paso con sus comandos.

    El certificado es público. La clave, no.

    Un certificado contiene una clave pública, el sujeto para el que se emitió, el emisor y las fechas de validez. Está pensado para repartirse: todos los navegadores que se conectan a tu sitio lo reciben. La clave privada es el secreto aparte que demuestra que el certificado es tuyo. Quien la tenga puede descifrar el tráfico dirigido a ti, firmar en tu nombre o levantar un servidor que se haga pasar por ti.

    Así que la primera pregunta es si el destinatario necesita la clave.

    El destinatario quiereNecesita¿Es sensible?
    Confiar en tu servicio o verificar una firmaEl certificado (y quizá la cadena de la CA)No
    Instalar TLS en un servidor o dispositivo que gestionaCertificado, cadena y clave privadaSí
    Firmar código o documentos en nombre de tu organizaciónCertificado y clave privadaSí, mucho
    Autenticarse en un sistema con un certificado de clienteCertificado y clave privadaSí

    Si la respuesta es la primera fila, envía el archivo .crt o .cer como quieras y deja de leer. Todo lo que sigue es para las filas en las que la clave tiene que moverse.

    Comprueba qué hay en el archivo antes de enviarlo

    Las extensiones engañan. Un .pem puede contener un certificado, una clave o ambos. Un .pfx o .p12 suele agrupar certificado, cadena y clave protegidos con una contraseña. Inspecciónalo antes de enviarlo:

    # what is in this PEM?
    openssl x509 -in cert.pem -noout -subject -issuer -dates
    grep -c "PRIVATE KEY" cert.pem        # 0 means no key inside
    
    # what is in this PFX? (prompts for the password)
    openssl pkcs12 -in bundle.pfx -info -noout
    

    Confirma que el sujeto coincide con lo que pidió el destinatario y que la fecha de expiración no ha pasado. Enviar el certificado equivocado es habitual; enviar el certificado equivocado con su clave es una brecha de seguridad.

    Empaqueta la clave para que no sirva por sí sola

    Si la clave tiene que viajar, no la envíes nunca tal cual. Ponla en un formato cifrado con una contraseña que enviarás por separado.

    # bundle certificate, chain and key into a password-protected PFX
    openssl pkcs12 -export -out service.pfx \
      -inkey service.key -in service.crt -certfile chain.crt
    
    # or encrypt a PEM key on its own
    openssl pkey -in service.key -aes-256-cbc -out service.enc.key
    

    Usa una contraseña larga generada por un gestor de contraseñas. La contraseña es el segundo factor: quien consiga el archivo sigue sin poder usarlo, y quien consiga la contraseña no tiene a qué aplicarla.

    El enlace es el paso de entrega, y el objetivo es que después no quede ninguna copia del archivo en ningún mensaje.

    1. Verifica al destinatario con una fuente en la que ya confíes: el ticket, el contacto del proveedor que tienes registrado, una llamada. Una petición de certificado desde una dirección inesperada merece una llamada, no una respuesta.
    2. Crea un enlace secreto con el archivo adjunto. Con la sesión iniciada en una cuenta de LinkPilot, abre «Secret Links», elige «New» y adjunta el PFX o el PEM cifrado. Cada archivo tiene un límite de 9 MB, miles de veces más de lo que ocupa cualquier paquete de claves. El adjunto se cifra en tu navegador antes de subirse y se elimina la primera vez que se descarga.
    3. Ajusta la expiración al plazo real. Una hora si el destinatario está esperando, 24 horas si hay zonas horarias de por medio. La descarga única es el control principal; la expiración es la red de seguridad para un enlace que nadie abre.
    4. Fija el límite de visualizaciones en una. Si dos ingenieros necesitan el paquete, cada uno recibe su propio enlace.
    5. Añade una frase de contraseña al enlace con una cuenta Pro si va a pasar por un canal que otras personas pueden ver.
    6. Envía el enlace con una línea de contexto: qué certificado, qué sistema, cuándo expira.
    7. Envía la contraseña del archivo por otro canal. Un SMS, una llamada o un segundo enlace secreto enviado por otra vía. Nunca en el mismo mensaje que el enlace del archivo y nunca en el nombre del archivo.

    Si la clave es texto PEM y es corta, puedes pegarla directamente en la herramienta gratuita de enlaces secretos en lugar de adjuntar un archivo. El texto se cifra en tu navegador y se destruye al abrirse por primera vez de la misma forma.

    Dile al destinatario qué hacer con él

    Envía las notas de instalación con el mensaje de contexto, no con la contraseña:

    • Qué archivo va a recibir, su formato y el sistema al que pertenece.
    • Dónde guardarlo: el directorio de certificados del servidor con permisos limitados a la cuenta de servicio, o el almacén de certificados del sistema operativo. No en Descargas ni en una unidad compartida.
    • Que elimine la copia descargada una vez importada y que no la suba nunca a un repositorio.
    • Que confirme la recepción con el nombre del archivo y la huella digital, nunca devolviendo el archivo:
    openssl x509 -in service.crt -noout -fingerprint -sha256
    

    Después

    Comprueba que el enlace aparece con el estado «revealed» (mostrado) y que el destinatario confirma que la huella digital coincide. Las cuentas Pro pueden ver en el historial de auditoría la hora exacta de la descarga. Si el enlace se abrió antes de que el destinatario llegara a él, o el archivo fue a la dirección equivocada, no esperes a tener pruebas de un mal uso: revoca el certificado con la CA que lo emitió, genera un nuevo par de claves, vuelve a emitirlo y sustituye el certificado en todos los sitios donde esté instalado.

    Anota quién recibió cada certificado y cuándo. Conserva ese registro. El archivo debe existir en los sistemas que lo necesitan y en ningún punto intermedio.

    Herramientas para este artículo

    Preguntas frecuentes

    LinkPilot envía un enlace secreto que desaparece en cuanto se abre.

    Cifrado en tu navegador, se muestra una vez y después se destruye. Sin cuenta.

    Crear un enlace secreto

    Sigue leyendo