Este es el comando cmsssl que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
cms - utilidad CMS
SINOPSIS
openssl cms [-encriptar] [-descriptar] [-firmar] [-verificar] [-cmsout] [-Renunciar] [-data_create]
[-salida_datos] [-digest_create] [-digest_verificar] [-comprimir] [-descomprimir]
[-Encriptado_datos_encriptados] [-firmar_recibo] [-verificar_recibo recibo] [-in nombre de archivo] [-informar
SMIME | PEM | DER] [-rctform SMIME | PEM | DER] [-fuera nombre de archivo] [-superar SMIME | PEM | DER] [-Arroyo
-indef -noindef] [-noindef] [-contenido nombre de archivo] [-texto] [-sin salida] [-impresión] [-CAarchivo presentar]
[-CAruta dir] [-no_alt_chains] [-Maryland digerir] [-[cifrar]] [-nointerno]
[-no_signer_cert_verificar] [-nocertificados] [-noattr] [-nosmimecap] [-binario] [-nodetach]
[-archivo de certificado presentar] [-certificado presentar] [-firmante presentar] [-receta presentar] [-keyid]
[-receipt_request_all -receipt_request_first] [-receipt_request_from dirección de correo electrónico]
[-receipt_request_to dirección de correo electrónico] [-recibo_solicitud_imprimir] [-llave secreta clave] [-idclavesecreta
id] [-econtent_type tipo] [-inkey presentar] [-guardado nombre: parámetro] [-Aconteció en arg] [-y
archivo (s)] [cert.pem ...] [: para addr] [-desde addr] [-tema subj] [cert.pem] ...
DESCRIPCIÓN
El cms El comando maneja el correo S / MIME v3.1. Puede cifrar, descifrar, firmar y verificar,
comprimir y descomprimir mensajes S / MIME.
COMANDO OPCIONES
Hay catorce opciones de operación que establecen el tipo de operación a realizar. los
El significado de las otras opciones varía según el tipo de operación.
-encriptar
cifrar el correo para los certificados de destinatarios dados. El archivo de entrada es el mensaje que se
cifrado. El archivo de salida es el correo cifrado en formato MIME. El tipo de CMS real
es EnvelopedData .
-descriptar
descifrar el correo utilizando el certificado y la clave privada suministrados. Espera un correo encriptado
mensaje en formato MIME para el archivo de entrada. El correo descifrado se escribe en la salida.
archivo.
-debug_decrypt
esta opción establece el CMS_DEBUG_DECRYPT bandera. Esta opción debe usarse con precaución:
consulte la sección de notas a continuación.
-firmar
firmar el correo utilizando el certificado y la clave privada suministrados. El archivo de entrada es el mensaje para
estar firmado. El mensaje firmado en formato MIME se escribe en el archivo de salida.
-verificar
verificar el correo firmado. Espera un mensaje de correo firmado en la entrada y emite el mensaje firmado
datos. Se admiten tanto el texto claro como la firma opaca.
-cmsout
toma un mensaje de entrada y escribe una estructura CMS codificada en PEM.
-Renunciar
renunciar a un mensaje: tomar un mensaje existente y uno o más firmantes nuevos.
-data_create
Crea un CMS Data tipo.
-salida_datos
Data escriba y envíe el contenido.
-digest_create
Crea un CMS Datos digeridos tipo.
-digest_verificar
Verificar un CMS Datos digeridos escriba y envíe el contenido.
-comprimir
Crea un CMS Datos comprimidos escribe. OpenSSL debe compilarse con zlib apoyo para esto
opción para que funcione, de lo contrario, generará un error.
-descomprimir
Descomprime un CMS Datos comprimidos escriba y envíe el contenido. OpenSSL debe estar compilado
con zlib soporte para que esta opción funcione, de lo contrario generará un error.
-Encriptado_datos_encriptados
Cifre el contenido utilizando la clave simétrica y el algoritmo suministrados mediante un CMS Datos Encriptados
escriba y envíe el contenido.
-firmar_recibo
Genere y envíe un recibo firmado para el mensaje proporcionado. El mensaje de entrada deben
contener una solicitud de recibo firmado. Por lo demás, la funcionalidad es similar a la -firmar
operación.
-verificar_recibo recibo
Verificar un recibo firmado en el nombre del archivo recibo. El mensaje de entrada deben contener el
solicitud de recibo original. Por lo demás, la funcionalidad es similar a la -verificar operación.
-in nombre de archivo
el mensaje de entrada a cifrar o firmar o el mensaje a descifrar o
verificado.
-informar SMIME | PEM | DER
esto especifica el formato de entrada para la estructura CMS. El valor predeterminado es SMIME lo cual
lee un mensaje en formato S / MIME. PEM y DER formato cambie esto para esperar PEM y DER
formatear estructuras CMS en su lugar. Esto actualmente solo afecta al formato de entrada del CMS.
estructura, si no se ingresa una estructura CMS (por ejemplo, con -encriptar or -firmar)
esta opción no tiene ningún efecto.
-rctform SMIME | PEM | DER
especificar el formato de un recibo firmado para su uso con el -recibo_verificar operación.
-fuera nombre de archivo
el texto del mensaje que se ha descifrado o verificado o el mensaje de salida en formato MIME
que ha sido firmado o verificado.
-superar SMIME | PEM | DER
esto especifica el formato de salida para la estructura CMS. El valor predeterminado es SMIME lo cual
escribe un mensaje en formato S / MIME. PEM y DER formato cambie esto para escribir PEM y DER
formatear estructuras CMS en su lugar. Esto actualmente solo afecta al formato de salida del
Estructura CMS, si no se genera una estructura CMS (por ejemplo, con -verificar or
-descriptar) esta opción no tiene ningún efecto.
-Arroyo -indef -noindef
los -Arroyo y -indef las opciones son equivalentes y habilitan la transmisión de E / S para la codificación
operaciones. Esto permite el procesamiento de datos de una sola pasada sin la necesidad de
todo el contenido en la memoria, potencialmente admitiendo archivos muy grandes. Streaming es
configurado automáticamente para la firma S / MIME con datos separados si el formato de salida es SMIME
actualmente está desactivado de forma predeterminada para todas las demás operaciones.
-noindef
deshabilitar la transmisión de E / S donde produciría una longitud indefinida construida
codificación. Esta opción actualmente no tiene ningún efecto. En el futuro, la transmisión será habilitada por
predeterminado en todas las operaciones relevantes y esta opción lo desactivará.
-contenido nombre de archivo
Esto especifica un archivo que contiene el contenido separado, esto solo es útil con el
-verificar mando. Esto solo se puede utilizar si la estructura del CMS utiliza la
formulario de firma donde no se incluye el contenido. Esta opción anulará cualquier
contenido si el formato de entrada es S / MIME y utiliza el contenido MIME multiparte / firmado
tipo.
-texto
esta opción agrega encabezados MIME de texto sin formato (texto / sin formato) al mensaje proporcionado si
encriptar o firmar. Si se descifra o verifica, se eliminan los encabezados de texto: si el
El mensaje descifrado o verificado no es de tipo MIME text / plain, entonces se produce un error.
-sin salida
para -cmsout La operación no genera la estructura CMS analizada. Esto es útil cuando
combinada con la -impresión opción o si la sintaxis de la estructura del CMS está siendo
comprobado.
-impresión
para -cmsout operación imprime todos los campos de la estructura CMS. Esto es principalmente
útil para realizar pruebas.
-CAarchivo presentar
un archivo que contiene certificados de CA de confianza, solo se utiliza con -verificar.
-CAruta dir
un directorio que contiene certificados de CA de confianza, solo se utiliza con -verificar. Este directorio
debe ser un directorio de certificado estándar: es un hash de cada nombre de sujeto (usando
x509 -picadillo) debe estar vinculado a cada certificado.
-Maryland digerir
algoritmo de resumen para usar al firmar o renunciar. Si no está presente, entonces el valor predeterminado
Se utilizará el algoritmo de resumen para la clave de firma (normalmente SHA1).
-[cifrar]
el algoritmo de cifrado que se utilizará. Por ejemplo triple DES (168 bits) - -des3 o 256 bits
AES- -aes256. Cualquier nombre de algoritmo estándar (como lo usa el EVP_get_cipherbyname ()
función) también se puede utilizar precedido por un guión, por ejemplo -aes_128_cbc. Vea enc para un
lista de cifrados admitidos por su versión de OpenSSL.
Si no se especifica, se utiliza triple DES. Solo se usa con -encriptar y -EncryptedData_create
comandos.
-nointerno
al verificar un mensaje, normalmente los certificados (si los hay) incluidos en el mensaje son
buscó el certificado de firma. Con esta opción solo los certificados especificados
en la categoría Industrial. -archivo de certificado se utilizan las opciones. Los certificados suministrados todavía se pueden utilizar como
Sin embargo, las CA no confiables.
-no_signer_cert_verificar
no verifique el certificado de los firmantes de un mensaje firmado.
-nocertificados
al firmar un mensaje, el certificado del firmante normalmente se incluye con esta opción
está excluido. Esto reducirá el tamaño del mensaje firmado, pero el verificador debe
tener una copia del certificado de los firmantes disponible localmente (aprobado mediante el -archivo de certificado
opción por ejemplo).
-noattr
Normalmente, cuando se firma un mensaje, se incluye un conjunto de atributos que incluyen el
tiempo de firma y algoritmos simétricos compatibles. Con esta opción no son
incluido.
-nosmimecap
excluir la lista de algoritmos admitidos de los atributos firmados, otras opciones como
todavía se incluyen el tiempo de firma y el tipo de contenido.
-binario
normalmente, el mensaje de entrada se convierte a formato "canónico", que es efectivamente
utilizando CR y LF como final de línea: como lo requiere la especificación S / MIME. Cuando esto
La opción está presente no se produce ninguna traducción. Esto es útil cuando se manejan datos binarios.
que puede no estar en formato MIME.
-nodetach
al firmar un mensaje, use la firma opaca: este formulario es más resistente a la traducción
por retransmisiones de correo, pero los agentes de correo que no admiten S / MIME no pueden leerlo.
Sin esta opción, se utiliza la firma de texto sin cifrar con el tipo MIME multipart /igned.
-archivo de certificado presentar
permite especificar certificados adicionales. Al firmar estos se incluirán
con el mensaje. Al verificar estos se buscarán los certificados de firmantes.
Los certificados deben estar en formato PEM.
-certificado presentar
los certificados contenidos en el mensaje se escriben en presentar.
-firmante presentar
un certificado de firma al firmar o renunciar a un mensaje, esta opción se puede utilizar
varias veces si se requiere más de un firmante. Si se está verificando un mensaje
entonces los certificados de los firmantes se escribirán en este archivo si la verificación fue
exitoso.
-receta presentar
al descifrar un mensaje, se especifica el certificado de los destinatarios. El certificado
debe coincidir con uno de los destinatarios del mensaje o se producirá un error.
Al cifrar un mensaje, esta opción se puede utilizar varias veces para especificar cada
recipiente. Esta forma deben utilizarse si se requieren parámetros personalizados (por ejemplo
para especificar RSA-OAEP).
-keyid
use el identificador de clave de asunto para identificar certificados en lugar del nombre del emisor y el número de serie
número. El certificado suministrado deben incluir una extensión de identificador de clave de asunto.
Apoyado por -firmar y -encriptar .
-receipt_request_all -receipt_request_first
for -firmar La opción incluye una solicitud de recibo firmado. Indique que las solicitudes deben ser
proporcionados por todos los destinatarios o destinatarios de primer nivel (los que se envían por correo directamente y no
de una lista de correo). Lo ignoré -receipt_request_from está incluido.
-receipt_request_from dirección de correo electrónico
for -firmar La opción incluye una solicitud de recibo firmado. Agregue una dirección de correo electrónico explícita donde
Se deben proporcionar los recibos.
-receipt_request_to dirección de correo electrónico
Agregue una dirección de correo electrónico explícita a la que se deben enviar los recibos firmados. Esta opción
deben pero suministrado si se solicitaba un recibo firmado.
-recibo_solicitud_imprimir
Para el -verificar La operación imprime el contenido de cualquier solicitud de recibo firmado.
-llave secreta clave
especifique la clave simétrica que se utilizará. La llave debe suministrarse en formato hexadecimal y ser coherente
con el algoritmo utilizado. Apoyado por el -Encriptado_datos_encriptados
-EncryptedData_decrypt, -encriptar y -descriptar opciones. Cuando se usa con -encriptar or
-descriptar la clave proporcionada se utiliza para envolver o desenvolver la clave de cifrado de contenido utilizando
una clave AES en el KEKRecipientInfo tipo.
-idclavesecreta id
el identificador de clave para la clave simétrica suministrada para KEKRecipientInfo escribe. Esta
opción deben estar presente si el -llave secreta La opción se usa con -encriptar. Con -descriptar
operaciones el id se utiliza para localizar la clave relevante si no se proporciona, entonces un
intento se utiliza para descifrar cualquier KEKRecipientInfo .
-econtent_type tipo
establezca el tipo de contenido encapsulado en tipo si no se suministra el Data se utiliza el tipo. los
tipo El argumento puede ser cualquier nombre OID válido en formato de texto o numérico.
-inkey presentar
la clave privada que se utilizará al firmar o descifrar. Esto debe coincidir con el correspondiente
certificado. Si no se especifica esta opción, la clave privada debe incluirse en
el archivo de certificado especificado con el -receta or -firmante expediente. Al firmar esto
La opción se puede utilizar varias veces para especificar claves sucesivas.
-guardado nombre: opt
para la firma y el cifrado, esta opción se puede utilizar varias veces para configurar
parámetros para la clave o certificado anterior. Actualmente se puede utilizar para configurar RSA-
PSS para firmar, RSA-OAEP para cifrado o para modificar parámetros predeterminados para ECDH.
-Aconteció en arg
la fuente de contraseña de clave privada. Para obtener más información sobre el formato de arg ver la
PASS FRASE ARGUMENTOS sección en openssl(1).
-y archivo (s)
un archivo o archivos que contienen datos aleatorios utilizados para sembrar el generador de números aleatorios, o un
Toma EGD (ver RAND_egd(3)). Se pueden especificar varios archivos separados por un SO-
Carácter dependiente. El separador es ; para MS-Windows, , para OpenVMS y : para todos
otros.
cert.pem ...
uno o más certificados de destinatarios de mensajes: se utiliza al cifrar un mensaje.
-para, -de, -tema
los encabezados de correo relevantes. Estos se incluyen fuera de la parte firmada de un mensaje.
por lo que pueden incluirse manualmente. Si firma, muchos clientes de correo S / MIME marque el
La dirección de correo electrónico del certificado de los firmantes coincide con la especificada en la dirección De :.
-objetivo, -ignorar_crítico, -cheques_emisor, -crl_verificar, -crl_check_all, -policy_check,
-crl_extendido, -x509_estricto, -política -check_ss_sig -no_alt_chains
Establezca varias opciones de validación de la cadena de certificados. Ver el verificar página de manual para
Detalles.
NOTAS
El mensaje MIME debe enviarse sin líneas en blanco entre los encabezados y la salida.
Algunos programas de correo agregarán automáticamente una línea en blanco. Canalizando el correo directamente a
sendmail es una forma de lograr el formato correcto.
El mensaje proporcionado para ser firmado o cifrado debe incluir los encabezados MIME necesarios o
muchos clientes S / MIME no lo mostrarán correctamente (si es que lo hacen). Puedes usar el -texto opción de
agregue automáticamente encabezados de texto sin formato.
Un mensaje "firmado y cifrado" es aquel en el que luego se cifra un mensaje firmado. Esto puede
producirse cifrando un mensaje ya firmado: consulte la sección de ejemplos.
Esta versión del programa solo permite un firmante por mensaje, pero verificará múltiples
firmantes de los mensajes recibidos. Algunos clientes S / MIME se bloquean si un mensaje contiene varios
firmantes. Es posible firmar mensajes "en paralelo" firmando un mensaje ya firmado.
mensaje.
Las opciones -encriptar y -descriptar reflejan el uso común en clientes S / MIME. Estrictamente
Hablando de estos procesos CMS envuelto datos: Los datos cifrados CMS se utilizan para otros fines.
El -Renunciar La opción utiliza un resumen de mensaje existente al agregar un nuevo firmante. Esto significa
que los atributos deben estar presentes en al menos un firmante existente que utilice el mismo mensaje
digerir o esta operación fallará.
El -Arroyo y -indef Las opciones habilitan el soporte de E / S de transmisión experimental. Como resultado, el
la codificación es BER usando codificación construida de longitud indefinida y ya no DER. Transmisión
es compatible con -encriptar operación y el -firmar operación si el contenido no es
separado.
La transmisión siempre se utiliza para -firmar operación con datos separados pero desde el contenido
ya no forma parte de la estructura de CMS, la codificación sigue siendo DER.
Si -descriptar se utiliza sin un certificado de destinatario, luego se intenta
localizar al destinatario probando a cada destinatario potencial uno a uno utilizando la información privada proporcionada
llave. Para frustrar el ataque de MMA (ataque de Bleichenbacher al relleno RSA PKCS # 1 v1.5) todos
Los destinatarios se prueban ya sea que tengan éxito o no y si ningún destinatario coincide, el mensaje es
"descifrado" usando una clave aleatoria que normalmente generará basura. los -debug_decrypt
La opción se puede usar para deshabilitar la protección contra ataques MMA y devolver un error si no
Se puede encontrar al destinatario: esta opción debe utilizarse con precaución. Para una descripción más completa
ver CMS_descifrar(3)).
SALIR Codigos
0 la operación fue completamente exitosa.
1 se produjo un error al analizar las opciones del comando.
2 no se pudo leer uno de los archivos de entrada.
3 ocurrió un error al crear el archivo CMS o al leer el mensaje MIME.
4 se produjo un error al descifrar o verificar el mensaje.
5 el mensaje se verificó correctamente pero se produjo un error al escribir a los firmantes
Certificados.
COMPATIBILIDAD HE TRABAJADO PKCS # 7 formato.
El sonrie la utilidad solo puede procesar los PKCS # 7 formato. La cms soportes de utilidad
Formato de sintaxis de mensajes criptográficos. El uso de algunas funciones dará lugar a mensajes que
no puede ser procesado por aplicaciones que solo admiten el formato anterior. Estos son
detallado abajo.
El uso de la -keyid opción con -firmar or -encriptar.
El -superar PEM La opción utiliza diferentes encabezados.
El -comprimir .
El -llave secreta opción cuando se usa con -encriptar.
El uso de PSS con -firmar.
El uso de claves OAEP o no RSA con -encriptar.
Además, el -EncryptedData_create y -data_create el tipo no puede ser procesado por el
mayor sonrie mando.
EJEMPLOS
Cree un mensaje de texto sin formato firmado:
openssl cms -iniciar sesión -mensaje de entrada.txt -texto -correo de salida.msg \
-firmante mycert.pem
Crea un mensaje firmado opaco
openssl cms -iniciar sesión -en mensaje.txt -texto -salida mail.msg -nodetach \
-firmante mycert.pem
Cree un mensaje firmado, incluya algunos certificados adicionales y lea la clave privada
de otro archivo:
openssl cms -iniciar sesión -entrada in.txt -texto -salida mail.msg \
-firmante mycert.pem -inkey mykey.pem -certfile mycerts.pem
Cree un mensaje firmado con dos firmantes, use un identificador de clave:
openssl cms -iniciar sesión -mensaje de entrada.txt -texto -correo de salida.msg \
-firmante mycert.pem -firmante otrocert.pem -keyid
Envíe un mensaje firmado en Unix directamente a sendmail, incluidos los encabezados:
openssl cms -sign -in in.txt -text -signer mycert.pem \
-desde [email protected] -a alguien @ en algún lugar \
-subject "Mensaje firmado" | enviar un correo a alguien @ en algún lugar
Verifique un mensaje y extraiga el certificado del firmante si tiene éxito:
openssl cms -verify -in mail.msg -signer user.pem -outignedtext.txt
Envíe correo encriptado usando triple DES:
openssl cms -encrypt -in in.txt -desde [email protected] \
-a alguien @ en algún lugar -sujeto "Mensaje cifrado" \
-des3 usuario.pem -out mail.msg
Firmar y cifrar el correo:
openssl cms -sign -in ml.txt -signer my.pem -text \
| openssl cms -encrypt -out mail.msg \
-desde [email protected] -a alguien @ en algún lugar \
-subject "Mensaje firmado y cifrado" -des3 user.pem
Nota: el comando de cifrado no incluye el -texto opción porque el mensaje es
cifrado ya tiene encabezados MIME.
Descifrar correo:
openssl cms -decrypt -in mail.msg -recip mycert.pem -inkey key.pem
El resultado de la firma de formularios de Netscape es una estructura PKCS # 7 con la firma separada
formato. Puede usar este programa para verificar la firma envolviendo la línea base64
estructura codificada y rodeándola con:
----- COMIENZO PKCS7 -----
----- FIN PKCS7 -----
y usando el comando,
openssl cms -verificar -informar PEM -en firma.pem -contenido contenido.txt
alternativamente, puede decodificar la firma en base64 y usar
openssl cms -verificar -informar DER -en firma.der -contenido contenido.txt
Cree un mensaje cifrado con Camellia de 128 bits:
openssl cms -encrypt -en Plain.txt -camellia128 -out mail.msg cert.pem
Agregue un firmante a un mensaje existente:
openssl cms -resign -in mail.msg -signer newsign.pem -out mail2.msg
Firmar correo usando RSA-PSS:
openssl cms -iniciar sesión -mensaje de entrada.txt -texto -correo de salida.msg \
-signer mycert.pem -keyopt rsa_padding_mode: pss
Cree correo encriptado usando RSA-OAEP:
openssl cms -encrypt -en Plain.txt -out mail.msg \
-recip cert.pem -keyopt rsa_padding_mode: oaep
Utilice SHA256 KDF con un certificado ECDH:
openssl cms -encrypt -en Plain.txt -out mail.msg \
-recip ecdhcert.pem -keyopt ecdh_kdf_md: sha256
Use cmsssl en línea usando los servicios de onworks.net