lunes, 26 de octubre de 2015

Conoce la diferencia entre virus, gusanos, ransomware, troyanos, bots, malware, spyware, entre otros

6:54 p.m. Posted by LanreB OgeiD , , , No comments
Estemos o no inmerso en el mundo informático hemos escuchado términos como malware, gusanos,  o virus,  y si piensas que es lo mismo, déjame decirte que estas equivocado, pero no te preocupes, en este articulo te decimos de manera clara y breve la diferencia entre estos.


Términos como troyanos, spyware, bots, gusanos, malware son generalmente confundidos con virus, pero esto no es así.  Antes de explicar las diferencias que existen entre los términos antes escritos, es necesario hacer un recorrido breve, a través de la historia informática para saber de dónde provienen.

La historia del malware se remonta a 1949 cuando  John von Neumann, desarrolló la base teórica para el primer “virus informático”, aunque el término no existía como tal en ese momento, dicho termino fue acuñado por primera vez por el profesor  Leonard M. Adleman en 1981; y el primer virus informático llamado 'Brain' fue programado por los hermanos Farooq de Pakistán, infectaba los medios de almacenamiento basados en sistemas de archivos FAT de MS-DOS, aunque se supone que lo hicieron para proteger sus creaciones de la piratería.


Volviendo a la esencia del pots, el Malware es un software malicioso diseñado para dañar una computadora que puede o no estar en una red. El Malware entra en acción cuando hay un equipo involucrado, de lo contrario el termino no tiene validez. 

Definición según wikipedia:
El malware (del inglés malicious software), también llamado badware, código maligno, software malicioso o software malintencionado, es un tipo de software que tiene como objetivo infiltrarse o dañar una computadora o sistema de información sin el consentimiento de su propietario.



El malware tiene diferentes tipos:

* Gusanos (Worms). Estos programas tienen la capacidad de replicarse a sí mismos. Su único objetivo multiplicarse y transferirse a otros ordenadores a través de Internet o a través de los medios de almacenamiento. No causan ningún daño a la computadora, su naturaleza de replicarse hace que consuma espacio en el disco duro, por lo tanto reduce la velocidad de la máquina.

* Virus. También tienen la capacidad de replicarse a sí mismos, pero su objetivo es  dañar los archivos en el equipo que ataquen. Su principal debilidad reside en el hecho que para entrar en acción necesita el apoyo de un programa en donde residir, de lo contrario, es como un guerrero derrotado. Suelen adherirse a canciones, vídeos, archivos ejecutables y viajan por todo Internet buscando víctimas. 


* Troyanos: Básicamente,  los troyanos no son  virus y no pretenden dañar o borrar archivos en tu sistema. Su única tarea es servir de puente a un backdoor, programa malicioso o usuarios malintencionados para entrar en tu sistema y robar datos valiosos sin tu conocimiento y autorización. 
Su nombre proviene de la popular historia de la literatura griega del  'Caballo de Troya', en la que los griegos entraron en la ciudad de Troya con la ayuda de un caballo de madera que estaba destinado a ser un regalo, pero resultó ser una trampa.

* Adware.  El Adware se utiliza para mostrar anuncios en los programas. Por lo general vienen adjunto con programas gratuitos, ya que son la única fuente de ingresos para los desarrolladores de estos programas de software. El Adware no puede ser completamente llamado como malware, ya que no tienen ninguna intención de dañar tu máquina, sólo hacer un seguimiento de los anuncios en los que estás más interesado, a fin de mostrar anuncios relevantes en tu pantalla.

* Spyware.  Estos programas también vienen adjuntos con otros programas de tipo freeware, hacen un seguimiento de tu navegación y otros detalles personales y la envían a un usuario remoto. También pueden facilitar la instalación de software no deseado de internet. A diferencia de Adware, trabajan como un programa independiente y hacen sus operaciones en silencio.

* Spam. Cuando recibes molestos  correos electrónicos no deseados de remitentes desconocidos, eso se llama Spam o correo basura. El proceso de inundar Internet con el mismo mensaje también se llama spam, se realiza con el propósito de publicidad comercial. Estos correos basura a veces pueden contener virus o troyanos que entran en tu sistema tan pronto como se abra el correo.

* Bots.  Los bots o robots son procesos que están diseñados para interactuar en internet sin la necesidad de la interacción humana, es decir, automatizados. Pueden ser utilizados para buenas y malas acciones. Una persona de mente malévola puede crear un Bot malicioso que sea capaz de infectar un host por su cuenta. Después de transmitirse al dispositivo host, un Bot crea una conexión con los servidores centrales que actúan como los centros de mando para los host infectados conectados a esa red, llamados Botnet.
Entre sus propósitos están el robo de contraseñas, registrar las pulsaciones del teclado, el análisis de tráfico de red, enviar spam, lanzamiento de ataques DoS (denegación de servicio), entre otros. 

Ransomware: Este tipo de malware altera el funcionamiento normal de la máquina, hasta que “permite” que esta vuelva a la normalidad. A partir de que una maquina es infectada con este, estos programas muestran mensajes de advertencia pidiendo dinero para que tu dispositivo vuelva a condiciones normales de trabajo o pierdes todo. Normalmente la manera en que trabajo este tipo es cifrando tus archivos y pidiendo cierta cantidad de dinero para conseguir esta clave de "desbloqueo".

Otros tipos serian:
  • RootKit: usa técnicas para permanecer oculto en el sistema ante el usuario y las aplicaciones de seguridad.
  • Backdoor: función de puerta trasera, permite al atacante conectarse y controlar la máquina infectada.
  • Dialer: realiza llamadas de tarificación especial, incrementando la factura telefónica.
  • Rogueware: falso antivirus, te hacen creer que el sistema está infectado y cobran para la supuesta desinfección.
  • Crimeware: nueva denominación para el malware orientado al cibercrimen y fraude, con un claro interés de lucro.



https://concienciainformatica.files.wordpress.com/2014/10/malware.png


Después de haber leído un poco acerca de las diferencias de estos, surge la pregunta, ¿Qué motiva a diseñar estos programas? Aquí alguna razones: 

1. Tomar el control de la computadora de una persona por motivos personales o profesionales.
2. Para obtener beneficios financieros.
3. Para robar datos confidenciales
4. Para acabar con un equipo individual o una red completa, y muchas más.

Otra interrogante muy importante es, ¿Cómo podemos protegernos de estos programas maliciosos? 

* Mantén  actualizado  tu sistema operativo.
* Utiliza software original.
* Instala un antivirus y actualízalo periódicamente (aunque según lo visto últimamente está ya no puede ser una buena recomendación).
* Utiliza un firewall, puede ser personalizado o el que ofrecen algunos fabricantes de antivirus. Windows tiene una opción integrada en el servidor de seguridad en caso de que no desees utilizar uno personalizado.
* Nunca abras correos electrónicos desconocidos que generalmente están en la carpeta de spam.
* Nunca abras  enlaces desconocidos o sospechosos. 

Siguiendo estas recomendaciones no estas 100% seguro, pero si puedes estar un poco más tranquilo. 
Una última cosa que hay que aclarar es el hecho de que los antivirus no tienen una efectividad del 100% contra el malware ya que hasta que no sale las nuevas infecciones no inventan la “vacuna”, he ahí el porqué de la necesidad de tenerlo siempre con las últimas actualizaciones. Pero no sólo el antivirus, sino también los navegadores y todo programa que tenga contacto con la red.

La mejor forma de prevenirse es el puro sentido común, fijarse a qué páginas nos conectamos, qué archivos y de donde los descargamos y mucho cuidado con los links de las redes sociales, mensajería instantánea y email.

Está claro que las mafias cada vez están más avanzadas y usan métodos de engaño cada vez más sofisticados, pero la coherencia te hará librarte de más de un mal trago.

domingo, 25 de octubre de 2015

Dorks para buscar... ¡De todo!

10:47 p.m. Posted by LanreB OgeiD No comments
Google hoy en día se ha convertido en el buscador más usado y en la forma más fácil de encontrar lo que estemos buscando en Internet, encuentras casi de todo. Pero hay veces que no encontramos lo que buscamos o simplemente encontramos de más.
Hay forma de usar Google y sacarle mucho provecho al realizar búsquedas aunque muy pocos conozcan y son “palabras clave“ que nos ayudan para tener un mejor resultado realizando esa búsqueda y se llaman ¡Dorks!
Explicaré un poco estos “comandos” o palabra clave que se pueden utilizar al realizar una búsqueda sobre Internet:
cache:
Google resaltará aquellos contenidos de los documentos “cacheados”.
uso:–>cache:www.google.com web
link:
Listará los sitios que contengan links que apunten al sitio o contenido que buscas.
uso:–>link:www.google.com
related:
Listará las páginas web que son similares a la página especificada.
uso:–>related:www.google.com
info:
Presentará información acerca del sitio web que estás buscando.
uso:–>info:www.google.com
define:
Proveerá una definición de las palabras que escribas, recogidas de varias fuentes en línea.
site:
Google restringirá los resultados de la búsqueda al dominio dado.
uso:–>help site:www.google.com
allintitle:
Google restringirá los resultados de la búsqueda a aquellos con las palabras específicas que buscas.
uso:–>allintitle: google search
intitle:
Google restringirá los resultados de la búsqueda a aquellos documentos que contienen las palabras a buscar en el título. Busca la palabra “google” en el título y la palabra “search” en el contenido del documento.
uso:–>intitle:google search
inurl:
Dork usado para encontrar texto dentro de una URL.
uso:–>inurl:google search
intext:
Dork usado para encontrar texto dentro de una URL y su descripción, como por ejemplo: welcome admin user name. Este ejemplo buscará cada para en el contenido y en la URL también.
inall:
Dork usado para encontrar texto. Es la combinación de los dos anteriores Dorks.
ext:
Dork usado para encontrar extensiones de archivos:
ext:ppt hacking - retornará presentaciones powerpoint (ppt) del tópico ‘hacking’.
ext:doc hacking - retornará archivos de word (doc) del tópico 'hacking’.
Extensiones que google soporta buscar: pdf, swf, rtf, doc, ppt, dwf, ps, kml, kmz, xls.
Ejemplos
Archivos que podrían contener passwords:
  • filetype:sql insite:pass && user
  • ext:sql intext:@hotmail.com intext :password
  • filetype:sql inurl:wp-content/backup-*(Search for WordPress MySQL database backup.)
  • filetype:sql “phpmyAdmin SQL Dump” (pass|password|passwd|pwd)
  • inurl:ftp “password” filetype:xls
  • filetype:sql “PostgreSQL database dump” (pass|password|passwd|pwd)
  • filetype:ini “[FFFTP]” (pass|passwd|password|pwd)
  • filetype:ini “FtpInBackground” (pass|passwd|password|pwd)
  • filetype:ini “precurio” (pass|passwd|password|pwd)
  • filetype:ini “SavedPasswords” (pass|passwd|password|pwd)
  • filetype:ini “pdo_mysql” (pass|passwd|password|pwd)
  • inurl:config/databases.yml -trac -trunk -“Google Code” -source -repository “login: *” “password= *” filetype:xls
  • ext:php intext:“$dbms”“$dbhost”“$dbuser”“$dbpasswd”“$table_prefix”“phpbb_installed”
  • filetype:sql “insert into” (pass|passwd|password)
  • inurl:“editor/list.asp” | inurl:“database_editor.asp” | inurl:“login.asa” “are set”
  • ext:yml database inurl:config
  • inurl:“Sites.dat”+“PASS=”
Cómo encontrar upload paths:
  • inurl:.co.in & inurl:upload.php & intext:browse
Cómo encontrar sitios con posibles vulnerabilidades de sql injection:
  • intext:SQL syntax & inurl:index.php?=id
Archivos que contienen nombres de usuario:
  • filetype:conf inurl:proftpd.conf -sample
  • finding admin panel examples:
  • inurl:/admin/index.php & intext:/welcome admin user name pass
  • inurl:admin/login.asp
  • inurl:admin/login.php
Ejemplos de páneles de control inseguros:
  • inurl:.php? intext:CHARACTER_SETS, COLLATIONS, ?intitle:phpmyadmin
  • inurl:phpmyadmin/index.php
La siguiente lista de Google-Dorks es para revisar sistemas de vigilancia con IP’s públicas.
Más allá de solamente revisar (voyerismo), recuerde que si está pensando en una solución de vigilancia estilo CCTV, configure bien sus accesos remotos.
Sin más preámbulo, los Dorks:
  1. inurl:“ViewerFrame?Mode=”
  2. intitle:Axis 2400 video server
  3. inurl:/view.shtml
  4. intitle:“Live View / - AXIS” | inurl:view/view.shtml
  5. inurl:ViewerFrame?Mode=
  6. inurl:ViewerFrame?Mode=Refresh
  7. inurl:axis-cgi/jpg
  8. inurl:axis-cgi/mjpg (motion-JPEG)
  9. inurl:view/indexFrame.shtml
  10. inurl:view/index.shtml
  11. inurl:view/view.shtml
  12. liveapplet
  13. intitle:“live view” intitle:axis
  14. intitle:liveapplet
  15. allintitle:“Network Camera NetworkCamera”
  16. intitle:axis intitle:“video server”
  17. intitle:liveapplet inurl:LvAppl
  18. intitle:“EvoCam” inurl:“webcam.html”
  19. intitle:“Live NetSnap Cam-Server feed”
  20. intitle:“Live View / - AXIS”
  21. intitle:“Live View / - AXIS 206M”
  22. intitle:“Live View / - AXIS 206W”
  23. intitle:“Live View / - AXIS 210”
  24. inurl:indexFrame.shtml Axis
  25. inurl:“MultiCameraFrame?Mode=Motion”
  26. intitle:start inurl:cgistart
  27. intitle:“WJ-NT104 Main Page”
  28. intext:“MOBOTIX M1” intext:“Open Menu”
  29. intext:“MOBOTIX M10” intext:“Open Menu”
  30. intext:“MOBOTIX D10” intext:“Open Menu”
  31. intitle:snc-z20 inurl:home/
  32. intitle:snc-cs3 inurl:home/
  33. intitle:snc-rz30 inurl:home/
  34. intitle:“sony network camera snc-p1”
  35. intitle:“sony network camera snc-m1”
  36. intitle:“Toshiba Network Camera” user login
  37. intitle:“netcam live image”
  38. intitle:“i-Catcher Console - Web Monitor”
  39. intitle :flexwatch intext :“Copyright by Seyeon TECH Co”
  40. inurl:/control/userimage.html
Los dorks para encontrar cámaras de vigilancia siempre van saliendo más por el hecho de que cada fabricante de cámaras tiene su forma de configurar las cámaras pero los ya mencionados anteriormente son los más conocidos desde hace años.

Tipos de ataque: XSS. ¿Qué es y como funciona?

10:40 p.m. Posted by LanreB OgeiD , , , No comments
Todo sitio web lleva detrás de sí miles de líneas de código que se encargan de mostrar todo tal cual lo ves y su funcionamiento.
Cuando se escribes todas esas líneas de código, es muy importante que no dejemos ninguna ‘puerta abierta’ por la cual no arrepintamos cuando suframos algún tipo de ataque, problema que puede provocar desde cambiar la información de la web, el envío continuo de mensajes molestos (spam) o incluso lo peor, el que obtengan datos críticos que puedan poner en peligro la página, o incluso la empresa y a los clientes.
Hoy en día son muy comunes los ataques a páginas web por descuidos, hay varios tipos de vulnerabilidades que se pueden encontrar al pasar desapercibidas en el momento de programar nuestra página web, pero en este articulo nos centraremos especialmente en al ataque XSS, es decir, Cross Site Scripting.

¿Qué es Cross Site Scripting?

Los ataques por secuencias de comandos entre páginas web (o XSS) son ataques dirigidos a las páginas web con ciertas fallas al momento de programarlas, es decir, estas fallas ocurre al momento de no verificar o ‘filtrar’ la información que ingresa el usuario común, ya sea mediante un formulario o en una URL o de algún otra forma. Este tipo de ataque obliga a la página web mostrar el texto ingresado tal cual se envió, por lo tanto al momento de mostrarlo lo hará como sólo de una forma y es en código HTML.
El código “inyectado” en una página web vulnerable se considera malintencionado o código malisioso.



image
El código malicioso utilizado en este tipo de ataque está compuesto por cadena de datos: scripts completos contenidos en enlaces o ejecutados desde formularios vulnerables.
Por ejemplo, si un usuario escribiera en una caja de texto el siguiente script, donde no se controle o filtre la entrada de los datos, estaríamos consiguiendo que se mostrara una pequeña ventana con un mensaje.


image

La forma de aprovechar esta vulnerabilidad es sabiendo de Javascript, ya que es el lenguaje de programación web útil, es decir, también se puede ingresar código html, pero no serviría de mucho, por las limitaciones que tiene, por no ser un lenguaje de programación sino de maquetado.
Javascript es el lenguaje que se encarga de hacer más dinámica la página, aunque ahora con HTML5 su uso se disminuyo en ciertas cosas, pero aun se sigue usando mucho por su utilidad al hacer dinámicas las paginas web.

Clasificación de los ataques Cross Site Scripting

Los tipos de ataque de Cross Site scripting que nos podemos encontrar son catalogado en dos grandes grupos: XSS persistente o directo, y XSS reflejado o indirecto.

1.- XSS persistente o directo

Este tipo de ataque consiste en inyectar (o embeber) codigo HTML en sitio que lo permita por medio de etiquetas <script> o <iframe>. Es el tipo más grave ya que el código se queda implantado en la web de manera interna y se ejecuta una y otra vez al abrir la página web hasta no ser “reseteada” la página o eliminado ese código en concreto del sitio.
Local. Es una de las variantes del XSS directo, uno de sus objetivos consiste en explotar las vulnerabilidades del mismo código fuente o página web. Esas vulnerabilidades son resultado del uso indebido del DOM (Modelo de Objetos del Documento, es un conjunto estandarizado de objetos para representar páginas web) con JavaScript, lo cual permite abrir otra página web con código malicioso JavaScript incrustado, afectando el código de la primera página en el sistema local.

2.- XSS reflejado o indirecto

Es el tipo de ataque XSS más habitual y consiste solo en editar los valores que pasan mediante URL, ingresando el código malicioso haciendo que se ejecute en dicho sitio. En otras palabras, sucede cuando se envía un mensaje o ruta en una URL, una cookie o en la cabecera HTTP.

Métodos de inyección de código utilizado en los ataques.

A la hora de lanzar un ataque de este tipo, los atacantes pueden utilizar varios tipos de inyección de código distinto. Veamos a continuación cuáles son los más utilizados.
1.- Inyección en un formulario
Se trata del ataque más sencillo. Consiste en inyectar código en un formulario que después al enviarlo al servidor, será incluido en el código fuente de alguna página. Una vez insertado en el código fuente, cada vez que se cargue la página se ejecutará el código insertado en ella.

2.- Inyección por medio de elementos
En este tipo de sistema de inyección de código se utiliza cualquier elemento que viaje entre el navegador y la aplicación, como pueden ser los atributos usados en las etiquetas HTML utilizadas en el diseño de la página.

3.- Inyección por medio de recursos
Aparte de los elementos en la url y los formularios, hay otras formas en la que se puede actuar como son las cabeceras HTTP. Estas cabeceras son mensajes con los que se comunican el navegador y el servidor.
Aquí entran en juego las cookies, las sesiones, campo referer…

Operación de un ataque XSS

Maneras de evitar los ataques

Por suerte, prevenir estos ataques es sencillo, y una vez que aprendamos cómo hacerlo es algo que siempre deberíamos tener presente para evitarlos.
A continuación veremos algunos consejos prácticos que podemos llevar a cabo para proteger nuestras aplicaciones web mediante la validación de entrada de datos, asegurándonos que cada uno de los campos que utilicemos no contengan código que pueda afectar nuestra aplicación o a nuestros usuarios.

1.- Limitar los caracteres de entrada
Lo primero que debemos hacer es limitar los caracteres que un usuario puede introducir en los campos de texto. Por ejemplo, si tenemos un campo para introducir el nombre del usuario, no vamos a dejarlo abierto para que se puedan introducir un número indefinido de caracteres, sino que lo vamos a limitar por ejemplo a 20 o 30 caracteres. Para limitar el número de caracteres, podemos utilizar la variable “maxlength” que nos proporciona el estándar HTML.
2.- Sanear los datosCuando hablamos de sanear los datos, nos estamos refiriendo a quedarnos únicamente con la información que nos interesa, eliminando las etiquetas HTML que pueden ser incluidas en una caja de texto. Por ejemplo, si estamos almacenando el nombre de una persona, de poco nos sirve que el usuario lo introduzca en negrita, ya que lo único que nos interesa es su nombre.
Para lograr esta limpieza, podemos utilizar la función “strip_tags”. Por ejemplo:
$comentario = strip_tags($_POST[‘comentario’]);

3.- Escapar los datos
Para proteger los datos y mostrarlos tal y como el usuario los introdujo, deberíamos “escapar” los datos al presentarlos al usuario. Es decir, caracteres que deben ser representados por entidades HTML si se desea preservar su significado (por ejemplo las comillas dobles hay que transformarlas en &quot; que es como se representa en HTML). Con esto evitamos que el navegador lo ejecute y evalúe el código.
Para lograr esto, podemos utilizar la función “htmlspecialchars”. Por ejemplo:
echo “Mostrando resultados de: ”.htmlspecialchars($_GET['busqueda’]);
Pero aparte de tomar medidas de seguridad para impedir ataques XSS en nuestros sitios, debemos evitar almacenar información relevante de nuestros visitantes en las Cookies, y además encriptar las sesiones de usuario para que en caso de que las capturen no puedan acceder a la información almacenada en ella.

Esto ha sido todo por el momento, más adelante veremos como realizar estos ataques con facilidad.

PGP para novatos. ¿Qué es, cómo se usa y para qué sirve?

10:14 p.m. Posted by LanreB OgeiD , , No comments



El cifrado PGP es uno de los más extendidos del mundo, pero no todo el mundo lo conoce o sabe en qué consiste, cómo funciona y mucho menos de cómo se usa. Aquí intentaré resolver las dudas que pueden surgir con el título y qué te quede más claro que es esto del PGP.

PGP o Pretty Good Privacy es posiblemente el software de cifrado de datos más extendido del mundo para las comunicaciones de datos a través de Internet. Tiene muchos usos, por ejemplo se suele emplear para cifrar y descifrar las comunicaciones por email, otro uso es el de garantizar la seguridad de ficheros, directorios y hasta particiones enteras del disco.

image
Phill zimmerman

Para los que tengan mínimas nociones del inglés, podrán ya saber que el nombre del programa se llama Protección bastante buena. Podría haberse llamado VGP Very Good Privacy, ya que en el fondo se trata de uno de los métodos más seguros para enviar información de manera segura, valga la redundancia, sin que posibles espías, por ejemplo NSA o cualquier otra agencia gubernamental (o quizás hasta hackers), puedan enterarse de los mensajes que estamos mandando o recibiendo.

Facebook anunció hace varios meses que ahora esta red social ya era compatible con este tipo de cifrado.

Lamentablemente, a pesar de vivir su segunda juventud y de llevar por bandera la bastante buena protección este cifrado, su funcionamiento también es bastante complejo de entender para el usuario normal, al que poco le importa la criptografía o la que eso de las claves públicas y privadas le suena a chino, así que se explicará de la manera más simple posible.


Facebook anunció hace varios meses que ahora esta red social ya era compatible con este tipo de cifrado.

Lamentablemente, a pesar de vivir su segunda juventud y de llevar por bandera la bastante buena protección este cifrado, su funcionamiento también es bastante complejo de entender para el usuario normal, al que poco le importa la criptografía o la que eso de las claves públicas y privadas le suena a chino, así que se explicará de la manera más simple posible.

¿Qué es cifrar un mensaje?

En primer lugar explicaré lo que es cifrar un mensaje, básicamente consiste en coger un texto perfectamente legible y entendible por todo el mundo y convertirlo en algo incomprensible para cualquier persona que intente ver indebidamente ese mensaje y que no va dirigido hacia ella. De esta manera, el mensaje cifrado se envía a través de Internet, donde todo el mundo lo puede leer, pero nadie es capaz de descifrarlo, hasta llegar a su destino, donde el receptor es capaz de volver a obtener el mensaje original. ¿Y cómo lograr hacer eso el receptor? Empleando una clave de descifrado que sólo él conoce. El problema reside en cómo transmitirle a este receptor la clave a usar. Obviamente no se puede enviar la clave en este mismo mensaje, ya que perdería todo el sentido enviar un mensaje cifrado, así que de alguna manera debe de conocer la clave de antemano, Y lógicamente si tuviéramos alguna manera ultra-secreta de hacerle llegar la clave, ¿por qué no enviar el mensaje directamente a través de ese canal y dejarnos de cifrados?


image
 Aquí es donde entra en juego lo que se conoce como criptografía asimétrica, de clave pública o de dos claves, que es el método en el que se basa PGP. Cada una de las partes de una conversación tiene la posibilidad de crear dos claves, una privada que sólo es conocida por la persona a la que pertenece y otra pública que se proporciona a cualquier persona con la que uno quiera comunicarse de manera segura. No pasa absolutamente nada si la clave pública está a la vista de todo.

Si quiero escribir un mensaje cifrado a Pepito, busco su clave pública que seguramente muestre en la firma de su correo electrónico, en su web personal o incluso en su perfil de Facebook, la descargo y cifro mi mensaje usando esa clave con cualquiera de los muchos clientes disponibles. El mensaje se envía a Pepito a través de Internet. Puede que alguien espíe la conversación, pero como resultado sólo obtendrá una ristra de números incomprensibles e imposibles de descifrar.
Cuando el mensaje le llega a Pepito, se lo descargará y mediante su clave privada, que sólo él y nadie más que él conoce, podrá descifrar el mensaje que le he enviado. Es importante recalcar la importancia de proteger muy bien nuestra clave privada, ya que es el núcleo en el que se basa la seguridad de este método.

¿Cómo se hace el cifrado con PGP?

Todos hemos cifrado algún mensaje en algún momento de nuestras vidas, desde hablar medio en clave para que sólo nos entendiera la persona que nos interesaba, hasta enviar mensajes cambiando letras por números, por ejemplo, como si fuésemos espías.

Obviamente, el algoritmo que usa PGP para cifrar textos es bastante más complejo que simplemente cambiar letras por números. Cuando un usuario emplea PGP para cifrar un texto, éste se comprime para ahorrar espacio, tiempo de transmisión y fortalecer la seguridad, ya que será más difícil de encontrar patrones en el texto para romper el cifrado.
Posteriormente, se crea una clave de sesión secreta que solo se empleará una vez. Esta clave es un número aleatorio generado a partir de los movimientos del ratón y las teclas que se pulsen durante unos segundos con el propósito específico de generar esta, también puede combinarlo con la clave anteriormente generada.
Una vez que los datos se encuentran cifrados, la clave de sesión se cifra con la clave pública del receptor, como ya hemos explicado anteriormente, resultando en un mensaje completamente ilegible como el siguiente:


image
 Éste sería el mensaje que enviaremos a nuestro contacto, quién al recibirlo lo descifraría utilizando su clave privada, recorriendo el camino inverso al explicado anteriormente. Y si todo ha salido como toca, leería un escueto mensaje del tipo Hola, esto es una prueba PGP.

¿Cómo puedo crear mis claves y usar PGP?

Hay un sinfín de posibilidades para crear claves PGP, la mayoría de ellas basadas en el estándar OpenPGP derivado del PGP original creado por Phil Zimmermann en su momento. Las hay más intuitivas o menos, y por supuesto su facilidad de uso ha evolucionado muchísimo desde la aparición del PGP.

Hay varias herramientas online con el que puede generar tu clave pública y privada de manera muy sencilla, además de una utilidad para cifrar y descifrar cualquier mensaje. Con estas herramientas, crear una pareja de claves es muy fácil. Uno sólo tiene que introducir su dirección de correo electrónico al que irán asociadas las claves y una contraseña maestra para ellas. El programa genera las claves automáticamente, ofreciendo tanto la pública como la privada.

La contraseña pública la podremos mostrar donde queramos (firma de correo electrónico, páginas personales, etc.), pero lo más recomendable es subirla a un servidor de claves públicas, en palabras llanas, un especie de páginas amarillas de claves PGP públicas donde cualquier podrá encontrar nuestra clave si lo desea.

De la misma manera, también existen complementos para navegadores con los que realizar el proceso, siendo uno de los más populares la extensión de Chrome, Mailvelope, o programas descargables para las plataformas más usadas. En Windows podemos usar Gpg4win, por ejemplo, y en Mac, GPG Suite, por sólo citar algunos ejemplos.
Pero uno de los programas por excelencia para la generación de claves PGP en Linux es elGnuPG, un programa que viene instalado por defecto en Ubuntu y que resulta bastante sencillo instalar, si no lo tuviéramos, y de utilizar.

image
Los comandos necesarios para generar claves con GnuPG



Si abrimos el terminal de nuestra distro e introducimos el comando ~$ gpg –gen-key comenzaremos a generar nuestras claves. Tan sólo tendremos que elegir el tipo de clave deseado, su longitud en bits, el tiempo de validez e introducir nuestro nombre y correo electrónico.

Posteriormente, podremos crear una clave de revocación por si en algún momento nuestra clave PGP estuviese comprometida. Ya sólo queda hacer llegar nuestra clave pública a nuestros contactos y poner la privada a buen recaudo.

Pero, ¡OJO! También funciona a la inversa

image
PGP también sirve para ‘firmar’ mensajes.
Hasta ahora hemos explicado el concepto de PGP para enviar mensajes cifrados mediante claves públicas que sólo puede leer el receptor adecuado. Pero este programa también puede usarse al revés: un mensaje cifrado con la clave privada puede ser descifrado por cualquiera que tenga la clave pública.

Algunos os preguntaréis que dónde está la gracia cifrar un mensaje que
puede descifrar cualquier persona que tenga acceso a mi clave pública. Obviamente no es demasiado indicado para enviar un mensaje ‘secreto’ ni evitar la vigilancia de la NSA, pero sí tiene un propósito: autenticar el origen del mensaje y decir esto sólo lo he podido escribir yo y nadie más que yo.

¿Dónde puedo usar PGP?

PGP se puede usar en cualquier servicio de correo electrónico, aplicación de mensajería instantánea o cualquier otro método para comunicarse por Internet. Al fin y al cabo, como habréis visto más arriba, es simplemente un troncho de caracteres alfanuméricos que copiaremos y pegaremos en nuestros emails o mensajes.
 
De esta manera, puedes enviar un mensaje cifrado con PGP por Gmail, Yahoo! Mail, Hotmail, Outlook o cualquier otro cliente de correo que suelas usar. Incluso clientes de mensajería tipo Facebook Messenger, WhatsApp o Telegram. No hay ningún tipo de restricción. Ya será el destinatario del mensaje el que se encargue de buscarse las castañas para copiar el mensaje cifrado y acometer su descifrado.

image
Email a enviar con mensaje cifrado con PGP


Obviamente el PGP no es infalible. Como muy bien explica la Electronic Frontier Foundation, utilizando un símil comprensible para todos, usar PGP es como instalar en la puerta de casa una cerradura completamente imposible de forzar, pero eso no quita que andando por la calle alguien pueda robarte tu llave y acceder a tu hogar. Lo mismo pasa con PGP, nadie podrá romper el cifrado de tus claves PGP, pero eso no significa que algún ente malintencionado no pueda acceder directamente a tu ordenador, malware mediante, robarte esas claves y descifrar tus comunicaciones.

 Fuente: http://noticiasseguridad.com/