Localizar enlaces rotos con wget

Ahí van un par de comandos que te ayudarán a localizar los enlaces rotos de una web tales como imágenes que ya no existen, enlaces que nos llevan a un error 404, o archivos css que no están donde deberían. Sólo haremos uso del comando wget, para identificarlos de la siguiente manera:

wget --spider -r -l 5 -nd -nv -w 5 -o output.log http://example.com

Los parámetros del comando hacen lo siguiente:

  • –spider , no almacena nada, tan sólo actúa como si de un bot de Google se tratara.
  • -r , lo hace de manera recursiva, es decir, de cada página, buscará los links que existan para seguirlos y continuar
  • -l 5 , esto seguirá recursivamente hasta 5 niveles de links (podemos omitirlo, wget por defecto usa -l 5)
  • -nd , no creará los directorios en local al escaner la web
  • -nv , hará que no muestre nada por pantalla (lo estamos almacenando en output.log)
  • -w 5 , hará que wget espere 5 segundos entre cada petición, útil si quieres que tu servidor web no quede saturado durante el proceso
  • -o output.log , guardará todo el registro de la actividad en un fichero llamado output.log
  • http://example.com , la web que queremos auditar

Una vez haya terminado wget, podremos abrir el fichero ouput.log, para ver los resultados. Para localizar los enlaces rotos fácilmente, podemos usar grep de la siguiente manera:

grep "broken link!" -B1 output.log

Las opciones que aquí tenemos son:

  • «broken link!» , la cadena de texto a buscar, en este caso filtramos por los enlaces rotos. Si usas wget en otro idioma, quizás necesitarás filtrar por otra palabra.
  • -B1 , mostrará la linea que contiene la cadena buscada y justo la anterior (Before 1)
  • output.log, el fichero en el que vamos realizar la búsqueda

Con este sencillo proceso, podremos obtener un listado de enlaces rotos que nos ayudará a localizar problemas en cualquier web.

Instala LibreOffice desde repositorios en Ubuntu

Se han configurado unos repositorios de LibreOffice – el sucesor de OpenOffice, para Ubuntu, Linux Mint y otras distribuciones Debian.
Este repositorio realiza una instalación del reciente fork de la suite ofimática, aún en beta, pero todo un alivio para muchos usuarios.
LibreOffice
Abre un terminal y escribe el siguiente comando

sudo echo «deb http://download.tuxfamily.org/gericom/libreoffice / #gericom@hummer» | tee -a /etc/apt/sources.list

wget deb http://download.tuxfamily.org/gericom/gericom.asc -q -O- | sudo apt-key add –

Y para acabar…

sudo apt-get update && sudo apt-get install libreoffice

para instalar la nueva suite ofimática.

Dropbox: Ahora hasta 10Gb gratis!

Artículo escrito por Pedro Carrasco

Ríos de tinta se han escrito sobre esta genial herramienta: Dropbox. Para el que todavía ande un poco despistado os contaré qué hace este software. Se trata, a mi parecer, del más sencillo sistema de sincronización de archivos en la nube: eso que está tan de moda que ahora llaman cloud computing.

Personalmente utilizo Dropbox para:

  • Hacer backups automáticos de cosas importantes.
  • Compartir archivos (música, fotos, videos, documentos de texto, etc..) con mis amigos mediante un enlace.
  • Enviar archivos de gran tamaño directamente al disco duro de otros usuarios de Dropbox.
  • Restaurar copias de archivos antiguos. Algo así como el Time Machine de Apple, pero en la nube.
  • Generar documentos colaborativos. Un archivo compartido que cada usuario modifica cuando lo necesita.
  • Si cambias de PC o formateas no pierdes información. Sólo instalando Dropbox tendrás de nuevo todos los ficheros que hayas elegido.

Además, el programa te permite disponer de los archivos que quieras en cualquier ordenador (o dispositivo) del mundo en el que tengas instalado Dropbox!! Incluso entre distintos usuarios si compartes carpetas!! Y lo mejor es que puede utilizarse en Linux, Mac, Windows, Android, Blackberry, iPhone, iPad o simplemente a través de la web. Y con una capacidad de hasta 10Gb totalmente gratis. Empiezan ofreciéndote 2Gb, que se incrementa en +250Mb cada vez que invitas a algún amigo.

Cada vez que quieras compartir un documento o foto sólo tienes que copiarlo en tu carpeta Dropbox y aparecerá como por arte de magia, en todos los ordenadores en los que tengas Dropbox instalado. También podemos obtener un enlace que si lo enviamos a cualquier persona, podrá descargar el archivo sin que sea usuario de Dropbox. Otra funcionalidad que nos ofrece es poder recuperar versiones antiguas de ficheros que ya han sido modificados. Pudiendo restaurarlo en cualquier fecha, incluso si el fichero ya ha sido borrado de tu disco duro.

Lo mejor es que lo pruebes tú mismo y veas lo útil que resulta.

Para instalarlo, es tan sencillo como registrarse aquí introduciendo tus datos (el email es importante que sea válido). ¡Recuerda los datos introducidos porque luego los necesitaremos!

Tras registrarte comenzará automáticamente la descarga del programa. Al acabar, deberás instalar haciendo doble clic en el archivo para instalarlo.

Una vez instalado, preguntará si queremos crear una cuenta nueva o utilizar una existente. Haremos clic en utilizar una cuenta existente y después en Siguiente (Next).

Es en este paso donde rellenaremos el campo email y password con los datos que hemos utilizado al principio.

Nos preguntará qué tipo de cuenta queremos, en la mayoría de casos, al menos al principio para probarlo, utilizaremos la cuenta gratuita. Así que seleccionamos la primera opción, que nos ofrece 2Gb para empezar.

Para finalizar la instalación, nos pregunta si queremos añadir un acceso directo en el escritorio (por defecto viene marcado) y si queremos modificar la ubicación de la capeta Dropbox, que por defecto será Mis Documentos, hay que seleccionar la opción marcado en rojo.

Y ya tenemos el programa listo para usar. Una gran herramienta que desde hace más de un año se ha convertido para mi en imprescindible. Ahora es más fácil que nunca tener todos los documentos de la universidad en cualquier ordenador sin tener que cargar con un pendrive a todos lados. O subir los videos de las vacaciones para que cualquiera que queramos pueda descargarlo con un enlace (es mejor que megaupload!!!).

Manual práctico de hping

Artículo escrito por Pedro Carrasco

Que es y para qué sirve

La herramienta hping es un analizador/ensamblador de paquetes TCP/IP de uso en modo consola. Está inspirado en el comando ping de unix, aunque a diferencia de éste, hping no solo es capaz de enviar paquetes ICMP sino que además también puede enviar paquetes TCP, UDP, y RAW-IP.

Todo esto quiere decir, que con esta herramienta, podemos generar paquetes TCP/IP a medida, que contengan la información que queramos. Esto puede resultar muy interesante para poder efectuar auditorías de red y poder así prevenir ataques malintencionados.

Descarga e instalación

La instalación de esta herramienta, al menos en Ubuntu, es realmente sencilla, como la mayoría de aplicaciones. Tan sólo hay que abrir una consola y escribir como root:

root@laptop:/home/root# apt-get install hping3

Para más información puedes consultar la web oficial aquí.

Diferentes usos y su sintaxis

El uso más sencillo que podemos darle es como sustituto de la herramienta ping, aunque veremos que la información que nos aporta es algo diferente. Vamos a comparar ambas herramientas:

root@laptop:/home/root# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.016 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.017 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.023 ms
^C
— localhost ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.016/0.019/0.023/0.002 ms

root@laptop:/home/root# hping3 localhost
HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.0 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.0 ms
^C
— localhost hping statistic —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.1 ms

En ambos casos, la información que nos proporciona es muy similar, salvo algún pequeño matiz como el campo de flags, que a continuación veremos de qué se trata.

También podemos utilizarlo como scanner de puertos, utilizando el método idle scan (por cierto, método ideado por Salvatore Sanfilipo, el mismo creador de hping), la sintaxis es la siguiente:

root@laptop:/home/root# hping3 -S localhost -p 9091
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=0 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=1 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=2 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=3 win=32792 rtt=0.0 ms
^C
— localhost hping statistic —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.1/0.1 ms

Si nos fijamos en el valor del flag, veremos que pone SA, que quiere decir SYN/ACK, que a grosso modo es el mensaje que un servidor responde cuando tiene un puerto abierto (en mi caso tengo un pequeño servidor web en el puerto 9091). Si hubiera estado cerrado, nos habría respondido con el flag RA, que quiere decir RST/ACK, o lo que es lo mismo, que tiene el puerto cerrado; veámoslo utilizando otro puerto distinto:

root@laptop:/home/root# hping3 -S localhost -p 9092
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=0 win=0 rtt=0.0 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=1 win=0 rtt=0.1 ms
^C
— localhost hping statistic —
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.1 ms

En este caso nos responde con un RST/ACK, lo que nos indica que el puerto 9092 está cerrado.

Otro uso que podemos darle es como herramienta traceroute, aunque para este uso, prefiero tcptraceroute, veamos cómo hacerlo con hping:

root@laptop:/home/root# hping3 pedrocarrasco.org -t 1 −−traceroute
HPING pedrocarrasco.org (wlan0 174.132.157.133): NO FLAGS are set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.109.8.1 name=UNKNOWN
hop=1 hoprtt=0.9 ms

El campo ip=10.109.8.1, hace referencia a la IP del primer salto que realiza para llegar al dominio especificado. Ésto lo hemos especificado poniendo -t 1 (también podemos utilizar el comando -z en vez de -t, e incrementar el TTL cuanto queramos de uno en uno presionando Ctrl+Z).

Además podemos «firmar» los paquetes que enviemos, con el contenido que queramos. Aunque este ejemplo es inocuo, utilizándolo (in)debidamente podríamos causar diversas alteraciones en la máquina destino. Veámos el ejemplo:

root@laptop:/home/root# cat firma.txt
esto es solo un ejemplo
root@laptop:/home/root# hping3 -2 -p 7 localhost -d 50 -E firma.txt
HPING localhost (lo 127.0.0.1): udp mode set, 28 headers + 50 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
ICMP Port Unreachable from ip=127.0.0.1 name=localhost
status=0 port=1963 seq=0

Estableciendo la opción -2 enviamos paquetes UDP, con la opción -d 50 indicamos la longitud del mensaje y con la opción -E indicamos que lea del archivo firma.txt. Podemos ver lo que hemos enviado si capturamos con cualquier sniffer (yo he usado wireshark) el tráfico de la red.

Firmar paquetes con hping
Firmar paquetes con hping

Otra interesante habilidad de hping es poder enviar archivos a través de la red. Para esto, necesitamos una máquina que envíe algún archivo, y otra que esté a la escucha para recibirlo. Primero, preparamos la máquina que permanecerá a la escucha, para ello utilizaremos el parámetro −−listen en el que especificaremos el texto que nos servirá de indicador de inicio de mensaje (en este caso utilizo signature), el protocolo que usaremos es ICMP y lo establecemos utilizando el parámetro −−icmp (también puede usarse UDP o TCP). Al ejecutarlo veremos algo así:

root@laptop:/home/root# hping3 localhost −−listen signature −−safe −−icmp
Warning: Unable to guess the output interface
hping3 listen mode
[main] memlockall(): Success
Warning: can’t disable memory paging!

Ahora toca preparar por otro lado el comando que nos servirá para enviar el fichero que queramos.

root@laptop:/home/root# hping3 localhost −−icmp -d 50 −−sign signature −−file firma.txt
HPING localhost (lo 127.0.0.1): icmp mode set, 28 headers + 50 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=78 ip=127.0.0.1 ttl=64 id=5268 icmp_seq=0 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5287 icmp_seq=1 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5289 icmp_seq=2 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5291 icmp_seq=3 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5293 icmp_seq=4 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5295 icmp_seq=5 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5297 icmp_seq=6 rtt=0.1 ms

El resultado es que en el lado en que estábamos esperando recibir algo, empieza a verse lo siguiente:

root@laptop:/home/root# hping3 localhost −−listen signature −−safe −−icmp
Warning: Unable to guess the output interface
hping3 listen mode
[main] memlockall(): Success
Warning: can’t disable memory paging!
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo

Conociendo este último uso, y con un poco de imaginación podremos utilizar hping como si de un troyano se tratase. Aunque mas que para ser usado como troyano, esta herramienta es perfecta para realizar ataques de DoS, spoof o flood. Acabaremos el artículo viendo un sencillo ejemplo de ataque flooding:

root@laptop:/home/root# hping3 −−rand-source −−flood localhost
HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes
hping in flood mode, no replies will be shown
^C
— localhost hping statistic —
189742 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Podemos ver que en tan solo unos segundos, hemos inundado la red con casi doscientos mil paquetes transmitidos de forma ininterrumpida. Esto puede (suele) causar que la red se colapse, impidiendo a otros usuarios poder utilizarla, ya que hping no deja espacio (entre paquete y paquete) para que otras máquinas transmitan ningún tipo de información. El parámetro −−rand-source hace que cada paquete tenga un origen distinto y aleatorio, y −−flood no deja espacio entre paquete y paquete. Si tenemos wireshark a la escucha, podemos ver cual es el resultado:

hping-flood
hping-flood

Ahora os toca practicar con hping para aprender más sobre el protocolo TCP/IP y sus debilidades. No creo que haga falta decirlo, pero por si acaso aviso de que el uso malintencionado de esta herramienta puede ser ilegal, así que utilizad esta información de un modo educativo o para auditar vuestra propia red.

Privacidad real usando GPG

Artículo de Pedro Carrasco


Candado (imagen extraida de la wikipedia)
Candado (imagen extraida de la wikipedia)

¿Qué es GPG?

GPG, tal y como se dice en la Wikipedia, es una herramienta para cifrar y firmar mensajes. Podriamos decir que es el hermano libre de PGP. Existen los proyectos GPG4win y macgpg2 que proveen de una versión de GPG para Windows y Mac respectivamente.

¿Para qué necesito cifrar y firmar mensajes?

Lo más conveniente sería que habitualmente hiciéramos uso de este tipo de herramientas, al menos para las comunicaciones que queramos mantener realmente en privado.

Por si no lo sabías, la mayoría de correos electrónicos, programas de mensajería como Messenger, accesos y contenido de páginas web, herramientas de videoconferencias, y un largo etcétera de utilidades que a priori pueden parecernos suficientemente privadas, se transmiten por Internet sin ningún tipo de encriptación. Esto quiere decir que si alguien es capaz de escuchar esta comunicación (muy sencillo mediante cualquier sniffer), puede llegar a ver todo lo que estamos haciendo.

Puede parecer poco probable que esto suceda, pero ni te imaginas la de oportunidades que se presentan al día para poder ser víctima de este tipo de espionaje: siempre que utilizas tu conexión wifi del móvil o portátil y te conectas a Internet en un bar, en una biblioteca pública, en la red cableada de tu oficina, incluso en la propia red inalámbrica de tu casa (ni te imaginas lo fácil que puede llegar a ser reventar la clave de una red wifi doméstica) puedes estar siendo espiado.

Sí, sé que suena paranoico, y probablemente lo sea, pero si necesitas una privacidad real, la mejor solución es encriptar o cifrar nuestras comunicaciones.

¿Cómo puedo encriptar un mensaje?

Para encriptar un mensaje con GPG (o con cualquier sistema de criptografía asimétrica), necesitamos generar un par de claves. Una de ellas será la clave pública, clave que todo el mundo deberá conocer, y la otra será la clave privada, que debe mantenerse en privado y sólo tú debes conocer, ya que eso nos garantizará los servicios de confidencialidad, autenticación, integridad y no repudio.

Para generar nuestro par de claves, utilizaremos Seahorse, un gestor de claves GPG para Gnome que facilita mucho todo el proceso. Si utilizas Gnome, te interesará instalar también los plugins de seahorse para nautilus, para disponer del menú contextual que te permita encriptar un archivo haciendo clic en el botón derecho. Instalar seahorse y el plugin puedes hacerlo escribiendo en la consola lo siguiente:

root@laptop:/home/root# sudo apt-get install seahorse seahorse-plugins

Tras la instalación, debes reiniciar nautilus. Para hacerlo puedes reiniciar el PC, o cerrar sesión y volver a entrar o simplemente escribiendo:

root@laptop:/home/root# killall nautilus

Aquí están las capturas que nos muestra cómo generar el par de claves paso a paso utilizando Seahorse:

Paso 1: Ejecutamos Seahorse, y vamos al menú Archivo » Nueva...
Paso 1: Ejecutamos Seahorse, y vamos al menú Archivo » Nueva...
Paso 2: Aparecerá una ventana con los tipos de claves que seahorse nos permite crear. Seleccionamos Clave PGP
Paso 2: Aparecerá una ventana con los tipos de claves que seahorse nos permite crear. Seleccionamos Clave PGP
Paso 3: Aparece una nueva ventana en la que deberemos introducir nuestros datos: Nombre, email y comentario (éste último opcional). También podemos seleccionar el tipo de cifrado, la fortaleza de la clave (recomendado 4096 o más) y la caducidad de la misma si hacemos clic en «opciones avanzadas de clave»
Paso 3: Aparece una nueva ventana en la que deberemos introducir nuestros datos: Nombre, email y comentario (éste último opcional). También podemos seleccionar el tipo de cifrado, la fortaleza de la clave (recomendado 4096 o más) y la caducidad de la misma si hacemos clic en «opciones avanzadas de clave»
Paso 4: Escribe una contraseña. Ésta sirve para poder guardar de forma segura la clave privada. Deberás utilizar esta clave siempre que hagas uso de la clave privada, así que procura no olvidarla!
Paso 4: Escribe una contraseña. Ésta sirve para poder guardar de forma segura la clave privada. Deberás utilizar esta clave siempre que hagas uso de la clave privada, así que procura no olvidarla!
Paso 5: En este paso es donde se crea propiamente el par de claves. Este proceso puede tardar bastante, en función de la fortaleza de la clave que hayamos seleccionado antes. Para 4096 tarda unos 3 minutos.
Paso 5: En este paso es donde se crea propiamente el par de claves. Este proceso puede tardar bastante, en función de la fortaleza de la clave que hayamos seleccionado antes. Para 4096 tarda unos 3 minutos.
Paso 6: Una vez haya terminado de generar la clave, aparecerá automáticamente en la lista de claves personales, listo para usarlo!
Paso 6: Una vez haya terminado de generar la clave, aparecerá automáticamente en la lista de claves personales, listo para usarlo!

Si utilizas Windows o Mac, prueba con GPG4Win o macgpg2, el proceso debe ser muy parecido, aunque nunca lo he probado. Si alguien tiene alguna experiencia con estas versiones estaré encantado de saber qué tal funcionan y poder intercambiar opiniones.

¿Y ahora qué?

Bien, pues ahora puedes encriptar y firmar documentos o archivos y enviárselos a quien quieras, con la certeza de que nadie, salvo la persona a la que le envías el mensaje, podrá leerlo. Para hacerlo, la persona que recibirá el mensaje encriptado debe disponer también de un par de claves como los que acabamos de generar, y tú debes conocer la clave pública del destinatario.

Vamos a ver un ejemplo de cómo exportar tu clave pública con Seahorse.

Paso 1: Seleccionar la clave GPG de la que quieres exportar la clave pública y hacer clic en el icono de «Exportar a un archivo»
Paso 1: Seleccionar la clave GPG de la que quieres exportar la clave pública y hacer clic en el icono de «Exportar a un archivo»
Paso 2: Seleccionar el nombre e indicar dónde queremos guardarlo.
Paso 2: Seleccionar el nombre e indicar dónde queremos guardarlo.

Para importar una clave pública y añadirla en tu lista de claves públicas, tan solo tienes que hacer doble clic en el fichero .asc o, dentro de Seahorse, hacer clic en Archivo » Importar… y seleccionar el archivo de clave pública.

Una vez tengas alguna clave pública del destinatario en el apartado de «Otras claves» ya podemos compartir mensajes encriptados con esa persona. El proceso es muy sencillo, aquí van las capturas de cómo cifrar un archivo paso a paso:

Paso 1: Seleccionamos el fichero que queremos cifrar y hacemos clic con el boton derecho. Seleccionamos la opción Cifrar...
Paso 1: Seleccionamos el fichero que queremos cifrar y hacemos clic con el boton derecho. Seleccionamos la opción Cifrar...
Paso 2: Elegimos las personas que van a poder descifrar el mensaje. En este caso seleccionamos a Albert. También podemos elegir si queremos firmar el mensaje que ciframos o no.
Paso 2: Elegimos las personas que van a poder descifrar el mensaje. En este caso seleccionamos a Albert. También podemos elegir si queremos firmar el mensaje que ciframos o no.
Paso 3: Escribimos la contraseña que hemos utilizado para cifrar nuestra clave privada durante el proceso de creación de la clave (ver paso 4, durante la creación de clave)
Paso 3: Escribimos la contraseña que hemos utilizado para cifrar nuestra clave privada durante el proceso de creación de la clave (ver paso 4, durante la creación de clave)
Paso 4: Se genera un archivo cifrado con el mismo nombre que el original y se le añade la extensión PGP. Este es el fichero que debemos enviar, ya que, en este caso, sólo Albert podrá descifrarlo. Ni siquiera yo mismo podría descifrarlo. Si quieres poder descifrarlo tu también, tan solo debes añadirte a ti mismo como destinatario.
Paso 4: Se genera un archivo cifrado con el mismo nombre que el original y se le añade la extensión PGP. Este es el fichero que debemos enviar, ya que, en este caso, sólo Albert podrá descifrarlo. Ni siquiera yo mismo podría descifrarlo. Si quieres poder descifrarlo tu también, tan solo debes añadirte a ti mismo como destinatario.

Ya está! Ahora solo tenemos que enviar el archivo encriptado por correo electrónico, mensajería instantánea o como queramos y nos hemos asegurado de que sólo el destinatario podrá descifrarlo. Si el fichero sufre alguna modificación durante el envío -malintencionadamente o no-, quedará corrupto y no podrá ser devuelto a su estado original (no podrá ser descifrado), por lo tanto se cumple el servicio de integridad. Si además de cifrarlo, hemos optado por firmarlo, el destinatario tendrá la certeza de que sólo quien lo envía ha podido ser el remitente, así que también se cumple el servicio de autenticación. Y desde luego nadie podrá conocer el contenido, salvo Albert en este caso, así que se cumple también el servicio de confidencialidad.

Por cierto, aquí dejo el enlace a mi clave pública por si alguien necesita enviarme algo realmente confidencial.