GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo firmar digitalmente un archivo en Linux usando GnuPg (firmas digitales)

A medida que muchas organizaciones pasan de los documentos en papel a los documentos digitales, se requieren firmas digitales para administrar cualquier documento digital confidencial. Las firmas digitales se pueden usar para autenticar la fuente del mensaje, de modo que el receptor pueda decidir si confiar o no en el remitente. Hoy en día, se usa más ampliamente para la distribución de software y las transacciones financieras.

En la criptografía de clave pública, es posible utilizar una clave privada para firmar un archivo. Cualquiera que tenga la clave pública correspondiente puede verificar si el archivo fue firmado por la clave privada. Cualquiera que no tenga la clave privada no puede falsificar dicha firma.

Las firmas digitales se pueden usar para la autenticación del remitente y el no repudio. El firmante no puede alegar que no firmó el documento.

Hoy en día, las firmas digitales juegan un papel clave en la distribución de software. Cuando instala cualquier software de debian mirror, una vez que se descarga el software, verificará si el software proviene de una fuente confiable mediante la verificación de la firma, lo que garantiza que el paquete proviene de una fuente confiable.

Ahora, veremos los diversos métodos para firmar documentos usando la herramienta GnuPG.

Si es nuevo en la herramienta GnuPG, primero debe comprender cómo usar los comandos gpg básicos.

Una firma digital, certifica y marca de tiempo un documento. Si el documento se modifica de alguna manera, la verificación de la firma fallará.

1. Crear firma digital para un archivo

Para firmar digitalmente un documento se utiliza la opción de firmar. Se le pedirá que ingrese su contraseña para desbloquear la clave privada que se usa para firmar el documento.

$ gpg --sign file.txt

You need a passphrase to unlock the secret key for
user: "lakshmanan (This is lakshmans key) "
2048-bit RSA key, ID 3630F8D6, created 2012-12-30

Enter passphrase:

Ahora creará un archivo llamado "archivo.txt.gpg" en formato binario. El archivo de entrada se comprime antes de firmar el archivo.

2. Verificar firma digital

Dado un documento firmado, puede verificar la firma usando la opción -verify.

$ gpg --verify file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

El comando anterior verifica que la firma realizada sea buena.

3. Extraiga el documento del archivo

Para extraer el documento original del archivo firmado, utilice la opción –descifrar. Puede usar –output para especificar el archivo de salida para almacenar el contenido real del archivo.

$ gpg --output doc.txt --decrypt file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Ahora el documento real se guardará en el archivo doc.txt.

4. Para borrar firmar los documentos

Un uso común de las firmas digitales es enviar correos electrónicos. En tal caso, no es deseable comprimir el archivo en binario y firmarlo. Puede usar la opción –clearsign para envolver el archivo con firmas blindadas ASCII.

$ gpg --output file.sig --clearsign file.txt

Ahora se creará un archivo ASCII llamado file.sig que contiene la firma digital y el archivo en sí.

$ cat file.sig

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is a test file
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5
S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz
/7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV
U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ
tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2
XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ=
=PN+K
-----END PGP SIGNATURE-----

Verificar el documento claro firmado es similar a verificar el documento binario firmado.

5. Crear firma separada

En caso de firmas separadas, se crea un nuevo archivo como firma. Puede usar la opción –detach-sign para crear una firma separada.

$ gpg --armor --detach-sig file.txt

Ahora se creará un archivo ASCII llamado file.txt.asc que contiene la firma separada. Puede usar –output para cambiar el nombre del archivo de firma separado.

6. Verifica la firma separada

Para verificar una firma separada, debe tener tanto el archivo de firma como el archivo de datos.

$ gpg --verify file.txt.asc file.txt

gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Intentemos editar el archivo.txt. Agregue algo de contenido al archivo.txt e intente verificar la firma.

$ echo "Append" >> file.txt

$ gpg --verify file.txt.asc file.txt
gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: BAD signature from "lakshmanan (This is lakshmans key) "

Ahora la verificación falló diciendo firma INCORRECTA ya que se modificó el contenido.

7. Cifrar y firmar un documento

En una de nuestras publicaciones anteriores, también discutimos en detalle cómo cifrar y descifrar un archivo usando GnuPG. Pero, si desea cifrar y firmar un documento al mismo tiempo, haga lo siguiente:

$ gpg --sign --encrypt --recipient raman file.txt

El comando anterior encripta el archivo.txt y firma el documento digitalmente. El destinatario puede verificar la firma y descifrar el documento usando la opción de descifrado.


Linux
  1. Cómo cifrar y descifrar un archivo usando GnuPG en Linux

  2. Cómo dividir iso o archivo usando el comando 'dividir' en Linux

  3. Cómo crear archivos dispersos en Linux usando el comando 'dd'

  4. ¿Cómo adjuntar un archivo usando el comando de correo en Linux?

  5. Cómo editar un archivo de Excel (xlsx) usando Linux Shell

Cómo crear un enlace simbólico en Linux usando el comando Ln

Cómo monitorear cambios de archivos usando fswatch en Linux

Firmas digitales con GnuPG

Cómo bloquear un archivo de texto en Linux usando el comando flock

Cómo vincular un archivo en Linux

Cómo descargar archivos usando Wget a través de Proxy en Linux