<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Magazine - seguridad-informatica</title>
		<link>http://www.genbetadev.com</link>
		<description>
Información sobre el sector de los desarrolladores, el desarrollo de aplicaciones, para móviles, desarrollo web, bases de datos, frameworks y lenguajes de programación		</description>
		<pubDate>2013-06-19 02:42:05</pubDate>

		<generator>http://www.genbetadev.com</generator>
                    <item>
      <title><![CDATA[El gobierno de Estados Unidos: el principal comprador de malware a nivel mundial]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/el-gobierno-de-estados-unidos-el-principal-comprador-de-malware-a-nivel-mundial</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/el-gobierno-de-estados-unidos-el-principal-comprador-de-malware-a-nivel-mundial</guid>
      <pubDate>Sun, 12 May 2013 06:29:28 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Estados Unidos es el principal comprador de malware" src="http://img.genbetadev.com/2013/05/eusaj.jpg" class="centro_sinmarco" /></p>

	<p>La ciberseguridad es un tema que preocupa a los gobiernos, en Europa recientemente se ha aprobado la creación de un equipo que se encargará de mejorar la ciberseguridad a nivel europeo con el fin de prevenir el ciberterrorismo, pero la noticia estrella salta desde <a href="http://www.reuters.com/article/2013/05/10/us-usa-cyberweapons-specialreport-idUSBRE9490EL20130510">Reuters</a>, que han creado un informe a partir de datos proporcionados por ex-asesores en ciberseguridad de la Casa Blanca, que revelan que el gobierno de <strong>Estados Unidos es el principal comprador de <em><strong>malware</strong></em> a nivel mundial</strong>.</p>

	<p>Entre todo el informe lo que más me ha llamado la atención es el trabajo de  Richard Clarke (uno de los asesores) que según sus palabras consiste en lo siguiente:</p>

	<p><blockquote>Mi trabajo se basaba en tener 25 <em>zero-days</em> en un pen drive preparados para ser usados.</blockquote><br />
<!--more--></p>

	<p>Con todas las noticias que hay hoy en día sobre como los gobiernos actúan ante la ciberdelincuencia no es de extrañar que como medida de defensa tengan a equipos de hackers y se hagan con exploits para alertar a las compañías de software y que puedan solventarlo, pero el hecho revelado por Howard Schmidt y Richard Clarke es que Estados Unidos está dando un mal uso a sus recursos, pasando a la ofensiva y dejando a los ciudadanos y a las empresas desprotegidas al explotar vulnerabilidades críticas que aún no han sido reveladas por los proveedores de software.</p>

	<p>Estados Unidos, según la información de <em>Reuters</em>, pagaba por los exploits entre 50.000 y 100.000 dólares y lo preparaba para poderse usar por cualquier país, como es el caso tan mediático de <strong>Stuxnet</strong> donde colaboró el estado soberano con Israel cuando decidieron pasar a la &#8220;ofensiva&#8221; contra una central nuclear iraní.</p>

	<p>Y por supuesto, esto tiene un gran punto negativo y es que Estados Unidos con esta acción está haciendo florecer aún más si cabe el lucrativo negocio del malware y avivando las posibilidades de una ciberguerra, aunque ellos estarán preparados.</p>

	<p>Vía | <a href="http://www.theverge.com/2013/5/10/4319278/us-government-hacking-threatens-cybersecurity-former-officials-say">The Verge</a><br />
Más información | <a href="http://www.reuters.com/article/2013/05/10/us-usa-cyberweapons-specialreport-idUSBRE9490EL20130510">Reuters</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Así es como se hackea un avión en vuelo con un smartphone]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/asi-es-como-se-hackea-un-avion-en-vuelo-con-un-smartphone</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/asi-es-como-se-hackea-un-avion-en-vuelo-con-un-smartphone</guid>
      <pubDate>Sun, 14 Apr 2013 05:19:13 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="kit de hackeo de aviones" src="http://img.genbetadev.com/2013/04/A9R8A35.jpg" class="centro_sinmarco" /></p>

	<p>El miércoles pasado se llevo a cabo la <a href="http://conference.hitb.org/hitbsecconf2013ams/">conferencia <strong>Hack In the Box</strong></a> en Amsterdam, donde destacó la charla de <strong>Hugo Teso</strong> con el título: <a href="http://conference.hitb.org/hitbsecconf2013ams/hugo-teso/">&#8220;how to remotely attack and take full control of an aircraft&#8221;</a>, donde explicaba el &#8220;típico&#8221; uso que le damos a los <em>smartphones</em> para controlar los aviones comerciales en pleno vuelo y jugar a hacerlo descender de golpe o sacar las mascarillas de oxigeno, para sembrar el pánico entre los pasajeros, por ejemplo.</p>

	<p>Poder controlar remotamente un avión con equipos complejos y caros aprovechando alguna vulnerabilidad puede entrar dentro de lo razonable, pero lo curioso es que el equipo usado (el de la imagen de arriba) ha sido adquirido en <strong>eBay</strong> por un precio que cualquier grupo terrorista, organización criminal o persona que se aburre en su casa y llegue bien a fin de mes puede permitirse (aproximadamente de 500 dólares, solo el equipo necesario para la prueba, sin contar los PCs).<br />
<!--more--><br />
<strong>Hugo Teso</strong> trabaja para la consultora alemana N.Runs y ha estado investigando durante tres años la seguridad de los sistemas de los aviones comerciales, que según asegura sufren grandes vulnerabilidades y por mucho que se intente mitigar los efectos de las mismas sería imposible ser efectivos por el gran número de fallos presentes en los distintos sistemas y protocolos usados en estos pájaros gigantes y aunque pueda llegar a sorprendernos la noticia, a los expertos en seguridad que hayan entrado un poco en la rama de los sistemas de seguridad en la aviación no les sorprenderá nada, ya que sabrán que usan protocolos muy débiles y en más casos de los que debería la información viaja sin ningún tipo de cifrado.</p>

	<p>Para poder seguir bien la conferencia nos recomendaban leer unos datos sobre <a href="http://commandercat.com/2013/04/hitb2013.html">los sistemas de aviación</a>, que se basaba en el funcionamiento de distintos protocolos y en qué consistían los mismos, que se pueden resumir en la siguiente lista:</p>

<ul>
<li><strong><span class="caps">ADS</span>-B</strong>: es el sistema de difusión (a través de radio) que manda toda la información de un avión y sirve para gestionar automáticamente por donde tiene que ir cada avión para nunca colisionar, entre otras funciones.</li><li><strong><span class="caps">ACARS</span></strong>: es una especie de sistema de mensajería entre estaciones de tierra con los aviones, que intercambian informes, avisos y en definitiva información, de forma automática o manual.</li><li><strong>Sistemas de radio</strong>: hay varios sistemas, que resumiendo son compuestos por hardware y software que son necesarios para la comunicación y se tienen que utilizar para realizar las comunicaciones anteriores.</li>
</ul>

	<p>Estos sistemas y protocolos anteriores no se usan como tal en la prueba (de la forma adecuada), sino que se usan para explotar vulnerabilidades ya que por desgracia intercambian los datos sin cifrar, lo que llevó a que hace un tiempo se realizaron pruebas de seguridad de este sistema en una conferencia similar a esta y se consiguió añadir por arte de magia aviones en el radar (algo que no tiene mucha relevancia si no fuese porque pueden hacer creer al piloto que le persiguen 20 cazas o que va a embestir otro avión).</p>

	<p>Por desgracia cualquier persona con un buen equipamiento (recordemos, 500 dólares en eBay) puede leer y enviar mensajes <em><span class="caps">ACARS</span></em>, como es en el caso de Teso (el hacker que lleva a cabo la prueba), que además junto al dispositivo de comunicación le venía un <em>software de código de vuelo</em> para la &#8220;formación&#8221;, lo que incluye un sistema de gestión de vuelos.</p>

	<p>Y la otra parte del sistema de explotación de vulnerabilidades del avión es la del radiotransmisor, que junto con el exploit busca las propias vulnerabilidades (mediante <em><span class="caps">ACARS</span></em>) en un avión real o en un laboratorio con aviones virtuales, como es el caso (por lo inseguro que sería que algo saliese mal con un avión real y <em>¡boom!</em>).</p>

<div class="caption-img"> <img alt="PlaneSploit" src="http://img.genbetadev.com/2013/04/planesploit_android_app_to_hijack_airplanes_by_hugo_teso.jpg" class="centro" /> <span>PlaneSploit, o como yo lo llamo: Angry Boom</span> </div>

	<p>Tras toda la teoría extraña y desconcertante fue cuando Teso hizo algo que tuvo que inquietar mucho a las personas que se volvían en avión a sus casas ese mismo día&#8230; Y fue, tras realizar la conexión con el avión (virtual), controlarlo totalmente con el giroscopio del móvil, como si de un juego cualquiera se tratara y para colmo si el avión estuviese en modo piloto automático probablemente no se hubiesen dado ni cuenta los pilotos de que los controlaba quien no debía.</p>

	<p>Y ahora, tras conocer un poco la dinámica del sistema de explotación de vulnerabilidades copiaré unas cuantas frases que dijo Teso, para relajar los ánimos:</p>

<blockquote> &#8220;Puedes utilizar este sistema para modificar prácticamente todo lo relacionado con la navegación del avión&#8221;</blockquote>
<blockquote>&#8220;Gran parte de las aeronaves además usan software obsoleto que no cumplen los requisitos modernos de seguridad y las que si lo hacen <strong>no siguen siendo del todo seguras</strong>&#8220;</blockquote>
<blockquote>&#8220;El sucesor de <span class="caps">ACARS</span> será lanzado en los próximos 20 años&#8221;</blockquote>

	<p>Ya terminado el artículo os doy mi opinión personal, que es que no sabemos exactamente como se lleva a cabo (o por lo menos yo) y con qué facilidad el manejo de los aviones reales (fuera de los laboratorios), aunque Teso tras años de investigación nos asegure con certeza que es posible, pero si organizaciones terroristas con más dinero del que quieren no han conseguido hacerlo, será por algo (aunque una vez salta la liebre&#8230;).</p>

	<p>Vía | <a href="http://blog.segu-info.com.ar/2013/04/como-hackear-un-avion-en-vuelo.html">Secu-info</a> y <a href="http://blogs.computerworld.com/cybercrime-and-hacking/22036/hacker-uses-android-remotely-attack-and-hijack-airplane">Computer World</a><br />
Más información | <a href="http://commandercat.com/2013/04/hitb2013.html">Web de Teso</a>, <a href="http://conference.hitb.org/hitbsecconf2013ams/materials/D1T1%20-%20Hugo%20Teso%20-%20Aircraft%20Hacking%20-%20Practical%20Aero%20Series.pdf"><span class="caps">PDF</span> de la presentación</a> y <a href="http://conference.hitb.org/hitbsecconf2013ams/hugo-teso/">Hack In The Box</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[El ciberespionaje en la industria del videojuego es un negocio redondo]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/el-ciberespionaje-en-la-industria-del-videojuego-es-un-negocio-redondo</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/el-ciberespionaje-en-la-industria-del-videojuego-es-un-negocio-redondo</guid>
      <pubDate>Fri, 12 Apr 2013 07:00:45 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Ciberdelincuencia" src="http://img.genbetadev.com/2013/04/Security1-1024x769.jpg" class="centro_sinmarco" /></p>

	<p>Aunque el título suene muy directo no se aleja de la realidad, sobre todo tras conocer el lucrativo negocio de la organización criminal <strong>Winnti</strong> que ha sido descubierto gracias a <a href="http://www.kaspersky.com/sp/">Kaspersky Lab</a>.<br />
El grupo <em>Winnti</em> se dedicaba al uso ilícito de certificados digitales de estas empresas (con el peligro que conlleva), robo de la propiedad intelectual y de los códigos fuente de los distintos servidores de juego.</p>

	<p><!--more--></p>

	<p>Curiosamente salió a la luz las actividades de la banda de una forma &#8220;curiosa&#8221;, como puede ser una infección a gran escala de equipos informáticos por todo el mundo y que solo tienen una cosa en común, que es jugar al mismo juego online.<br />
Lo extraño del asunto era que el virus pasaba inadvertido, gracias a que se incrustaba en los equipos con una firma digital válida a trasvés de los servidores de actualizaciones, por lo que el ataque masivo se atribuyó a la empresa de videojuegos online, pensando que realmente querían espiar a los clientes.</p>

	<p>Tras un estudio por parte de <strong>Kaspesky Lab</strong> se pudo comprobar que los empleados de la empresa tenían un virus formado por un conjunto de <em><span class="caps">DLL</span></em> que permitían controlar el equipo de forma remota y realmente fue un error el que hizo que se distribuyera de forma masiva (probablemente lo intentan hacer a posta y no les sale) y por lo que comenta la empresa de seguridad rusa no solo hubo este caso, sino que más de 30 empresas de la industria del juego online habían sido atacadas con éxito por parte de <em>Winnit</em>.</p>

<h3>¿Dónde está el negocio redondo?</h3>

	<p>Según se conoce no usaron el virus para manipular los equipos de los jugadores, solo se centraron en los servidores de juego, donde buscaban la forma perfecta de monetizar su hazaña ya fuese mediante la manipulación de la moneda virtual del propio juego (y posterior reintegro en dinero real), mediante la búsqueda de vulnerabilidades que explotar y otra vez más generar dinero de forma más rápida o sino robando el propio código fuente del servidor y montando servidores piratas.</p>

	<p>Actualmente el grupo criminal sigue en pie y son numerosas las empresas de seguridad que intentan evitar que estos ataques se propaguen de forma masiva y sobre todo evitar que otra vez vuelva a distribuirse de tal forma un virus por estar correctamente firmado, por lo que las autoridades certificadoras también están colaborando en identificar posibles servidores infectados.</p>

	<p>Y puede que en alguno de los casos de estas empresas se pudiese haber evitado si hubiesen contratado los servicios del <a href="http://www.genbetadev.com/seguridad-informatica/isoc-el-primer-centro-de-operaciones-de-ciberseguridad-industrial-en-espana">iSOC, el primer centro de operaciones de ciberseguridad en España</a> (aunque yo no haría apuestas tras saber que fueron más de 30 las empresas que picaron).</p>

	<p>Vía | <a href="http://eldiario.deljuego.com.ar/submenunoticiadelmundo/6996-descubren-ciberespionaje-en-la-industria-de-videojuegos-online.html">El diario del juego</a><br />
En Genbera Dev | <a href="http://www.genbetadev.com/seguridad-informatica/isoc-el-primer-centro-de-operaciones-de-ciberseguridad-industrial-en-espana">iSOC, el primer centro de operaciones de ciberseguridad en España</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[iSOC, el primer centro de operaciones de ciberseguridad industrial en España ]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/isoc-el-primer-centro-de-operaciones-de-ciberseguridad-industrial-en-espana</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/isoc-el-primer-centro-de-operaciones-de-ciberseguridad-industrial-en-espana</guid>
      <pubDate>Sat, 06 Apr 2013 07:06:31 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="S2 Grupo e iSOC, el primer centro de operaciones de ciberseguridad industrial" src="http://img.genbetadev.com/2013/04/62.jpg" class="centro" /></p>

	<p><strong>S2 Grupo</strong> ha presentado el llamado <strong>iSOC</strong> (<em>Industrial Security Operation Center</em>) que será el primer centro de operaciones de ciberseguridad industrial en España, dando respuesta en materia de ciberseguridad en entornos industriales, con el fin de lograr la seguridad informática necesaria en las industrias españolas en estos días tan turbios (en el ámbito de la ciberseguridad).</p>

	<p>Muchos son los ejemplos que podríamos dar para ver la necesidad de unas grandes medidas de seguridad en grandes industrias como podrían ser las que nos abastecen a diario de agua potable o electricidad (sobre todo si la electricidad la genera una central nuclear), como podría ser el caso de <strong>Stuxnet</strong> y las centrales nucleares de Irán.<br />
<!--more--><br />
El <strong>iSOC</strong> pretende ser la solución perfecta para estos entornos gracias a la colaboración de expertos en seguridad y técnicos e ingenieros especialistas en el control industrial, lo que asegura una correcta comunicación con las distintas empresas a las que presten el servicio.</p>

	<p><strong>S2 Grupo</strong> además potencia intensamente la actividad en <strong>I+D+i</strong>, algo totalmente esencial en el terreno de la ciberseguridad debido a su continuo avance y por ello están desarrollando un sistema inteligente que será capaz de aprender como mejorar su sistema de seguridad en los entornos industriales.</p>

	<p>La creación de este centro tiene una especial relevancia en el mundo la ciberseguridad en España debido a que es el primero que ofrece unas soluciones completas y específicas para un sector que realmente necesita un especial cuidado de su seguridad informática, por lo que con esta noticia junto a otras que de vez en cuando nos regalan las compañías de seguridad españolas podríamos decir que poco a poco España se moderniza y las empresas se están empezando a acostumbrar a proteger la seguridad en sus equipos informáticos y su maquinaria.</p>

	<p>Vía | <a href="http://www.computing.es/infraestructuras/noticias/1066667001801/nace-primer-centro-operaciones.1.html">Computing</a><br />
Más información | <a href="www.s2grupo.e">S2 Grupo</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Documento histórico: el Diccionario Hacker original ]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/documento-historico-el-diccionario-hacker-original</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/documento-historico-el-diccionario-hacker-original</guid>
      <pubDate>Sun, 24 Feb 2013 11:40:57 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <p><img alt="hackers" src="http://img.genbetadev.com/2013/02/Hackers1.jpg" class="centro" /></p>

	<p>Ya sabéis los que sois asiduos de esta santa casa, que de vez en cuando nos gusta rebuscar en el baúl de los recuerdos y traer <strong>documentos de la edad gloriosa y heroica de la informática y el desarrollo</strong>. Hoy le toca el turno a un auténtico incunable que haría salivar al mismísimo Lucas Corso (protagonista de El Club Dumas, para quien no lo sepa): el <strong>Diccionario Hacker original</strong> creado por la gente del departamento de Inteligencia Artifical del <span class="caps">MIT</span> en 1988 y contenido en un archivo llamado <strong>jargon.txt</strong>.<!--more--></p>

	<p>Resulta curioso como <a href="http://www.dourish.com/goodies/jargon.html">este compendio de la jerga hacker</a> de los tiempos gloriosos está muy influenciado por <strong>la sintaxis de <span class="caps">LISP</span></strong> o comprobar como hay muchas expresiones que han traspasado los límites del mundo hacker e informático para ser <em>mainstream</em> a día de hoy.</p>

	<p>Una <strong>lectura friki y curiosa</strong> para esta fría tarde de domingo. Cuando la termines (o antes incluso) verás como tienes unas ganas locas de hackear los servidores del Ministerio de Defensa.</p>

	<p>Vía | <a href="http://www.dourish.com/goodies/jargon.html">dourish.com</a><br />
Imagen | Fotograma de &#8216;Hackers&#8217;<br />
En Genbeta Dev | <a href="http://www.genbetadev.com/desarrolladores/documento-historico-la-primera-vez-que-se-hablo-de-la-etiqueta-img-de-html">Documento histórico: la primera vez que se habló de la etiqueta <span class="caps">IMG</span> de <span class="caps">HTML</span></a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[¿Qué descubriríamos si hiciésemos ping a todas las direcciones IP?]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/que-descubririamos-si-hiciesemos-ping-a-todas-las-direcciones-ip</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/que-descubririamos-si-hiciesemos-ping-a-todas-las-direcciones-ip</guid>
      <pubDate>Sun, 10 Feb 2013 08:30:58 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="ip" src="http://img.genbetadev.com/2013/02/oculta-windows-linux_1_1061861.redimensionado.jpg" class="centro" /></p>

	<p>Tras ver el titulo probablemente habréis pensado: <em>¿quién y cómo haría <strong>ping a todas las IPs</strong> (del protocolo IPv4)?</em>, pues los chicos de <a href="http://www.securityartwork.es/">Security Art Work</a> lo han realizado y tras ver las respuestas han hecho una tabla, relacionado el primer <em>byte</em> de la <strong>IP</strong> (0.X.X.X hasta 255.X.X.X) con el número de <em>pings</em> resueltos en ese rango y sin contar las <strong>IP</strong> reservadas ni las <strong>IP</strong> de clase <strong>D</strong> y <strong>E</strong> (destinadas a multicast e investigación, respectivamente) probablemente se podría exprimir mucho más el rango &#8220;útil&#8221; de <strong>IPs</strong>, aunque aún así llegaría igualmente el día de usar <strong>IPv6</strong> sin más remedio.<!--more--></p>

<h2>¿Qué coste tendría hacer ping a todas las IP?</h2>

	<p>Muchos pensaréis que se necesitará mucho tiempo para realizar esta tarea, pero echando cálculos&#8230; es totalmente viable realizarlo de forma casera con una conexión a Internet buena (ya que este es el límite) y si es una conexión muy rápida, de las que actualmente uno podría contratar (a un precio algo elevado) lo podrá realizar en menos de 24 horas.</p>

	<p>Por pasos, lo primero sería calcular el número de direcciones existentes, que es de <strong>256<sup>4</sup></strong> (perteneciente a los cuatro bloques de 0 a 255 que tiene una IP) y daría como resultado más de cuatro mil millones de direcciones (4.294.967.296), sin hacer ninguna exclusión.</p>

	<p>Si tenemos en cuenta el tamaño que tiene una solicitud de ping, que es de <code>58kbytes</code>, al multiplicarlo por el número de direcciones IP tendríamos un total de <code>232GB</code> que deberían de pasar por ese <em>cacharrito</em> que nos da Internet (algunos a una velocidad de <code>10mbps</code> de subida y otros a mucho menos), pero en concreto, con una conexión de 100mbps (de disponerlos) la calculadora nos asegura que tardaríamos un poco <strong>menos de seis horas</strong> (aquí habría que sumar algo de tiempo, teniendo en cuenta que no se aprovechará todo el ancho de banda y que la recepción de la respuesta también influirá), y con una conexión de <code>10mbps</code> serían 60 horas.</p>

<h3>Como realizarlo</h3>

	<p>Para realizarlo en <a href="http://www.securityartwork.es/">Security Art Work</a> han creado un pequeño programa en <code>C</code>, que por un lado se encargaba de enviar el <em>ping</em> y por otro lado se encargaba de almacenar las respuestas, en el caso de producirse.</p>

<h2>¿Cual es el objetivo del experimento?</h2>

	<p>El objetivo de este experimento reside en demostrar si sería viable realizar un ataque a gran escala a todas las IPs existentes y tras hacer unos cálculos rápidos está claro que si y sobre todo optimizando un poco el proceso y teniendo paciencia.</p>

<h2>Datos relevantes del experimento</h2>

	<p>Viendo los datos resultantes del experimento realizado extraemos que casi 300 millones contestaron (el 7% de todas ellas) y vemos otro dato, el que revela que <strong>hay muchas direcciones IP que no se aprovechan</strong> y no se aprovecharán, ya que hay unas cuantas compañías que disponen de <strong>256<sup>3</sup></strong> (16 millones) de direcciones <strong>IP</strong> que tienen totalmente en desuso, por motivos bastante obvios.</p>

	<p>¿Qué motivos son esos?, compañías como Apple, <span class="caps"><span class="caps">IBM</span></span>, Intel, Xerox, Ford o General Electic disponen de ese enorme rango de <strong>IPs</strong> y no lo aprovechan (en algunos casos no responde ni un host, en algunos dos o tres y en otros un par de miles), aunque puede que le den uso y los ping no lo demuestren, ya que se puede evitar su recepción, pero sin duda, no alcanza una cantidad importante&#8230; aunque quien sabe, puede que Ford se dedique a vender <strong>IPs</strong> fijas de su rango propio (el 19.X.X.X) y no lo supiésemos.</p>

	<p>Todo esto es una reflexión personal y puede que este equivocado y si le den uso a ese rango de <em>IPs</em>, pero en la mayoría de los casos de estas compañías podrían apañarse <strong>256<sup>2</sup></strong> direcciones.</p>

	<p><strong>Más información</strong> | <a href="http://www.securityartwork.es/2013/02/07/resultado-de-un-ping-lanzado-a-todas-las-direcciones-de-internet/">Security Art Work</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Manual de GPG: cifra, firma y envía datos de forma segura]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de-forma-segura</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de-forma-segura</guid>
      <pubDate>Wed, 23 Jan 2013 09:30:44 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Manual de como usar GPG (GnuPG)" src="http://img.genbetadev.com/2013/01/GnuPG-Logo.svg%20(1).png" class="centro_sinmarco" /></p>

	<p>Hemos hablado ya sobre la <a href="http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida">criptografía simétrica y asimétrica</a> y sobre la <a href="http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales">firma digital</a>, solo toca ponerlo en práctica con <strong>GnuPG</strong> (la versión libre de <strong><span class="caps"><span class="caps">PGP</span></span></strong> o mejor dicho <em>Pretty Good Privacy</em>), con el que cifraremos cualquier tipo de archivo que podremos mandar &#8220;libremente&#8221; con cierta seguridad de que nadie lo podrá leer. Y puede que a muchos os ayude a entender como funciona la criptografía y como funciona el polémico cifrado de <strong>Mega</strong>, que tanto está dando que hablar estos días.<br />

<!--more--><br />

<h2>¿Qué es GnuPG?</h2></p>

	<p>Antes de empezar con lo interesante tenemos que saber que es <strong><span class="caps"><span class="caps">GPG</span></span></strong> (<em><span class="caps"><span class="caps">GNU</span></span> Privacy Guard</em>), que es un derivado libre de <strong><span class="caps"><span class="caps">PGP</span></span></strong> y su utilidad es la de cifrar y firmar digitalmente, siendo además multiplataforma (<a href="http://www.gnupg.org/download/index.en.html">podéis descargarlo desde la página oficial</a>) aunque viene incorporado en algunos sistemas <strong>Linux</strong>, como en <strong>Ubuntu</strong> (será con el sistema que haré todos los ejemplos, en Windows se encuentra solo con gestor gráfico).</p>

<h3>Anillo de claves</h3>

	<p><strong><span class="caps"><span class="caps">GPG</span></span></strong> tiene un repositorio de claves (<em>anillo de claves</em>) donde guarda todas las que tenemos almacenadas en nuestro sistema, ya sean privadas o públicas (<a href="http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida">como comenté</a>, con la clave pública cifraremos un mensaje que solo podrá descifrar el que posee la clave privada).</p>

	<p>Más adelante cuando veamos un anillo de claves debemos de recordar que <code>pub</code> hace referencia a la clave pública y <code>sub</code> hace referencia a la privada (y que tenemos que tener a buen recaudo).</p>

<h3>Servidores de claves</h3>

	<p>Para que nos cifren un mensaje tenemos que compartir la clave pública de nuestro par de claves para cifrar, y como es un poco engorroso difundir una clave a muchas personas existen los servidores de claves <span class="caps"><span class="caps">PGP</span></span> (compatibles con <span class="caps"><span class="caps">GPG</span></span>), donde subiré una clave pública para el que quiera probar los ejemplos.<br />

Unos ejemplos de servidores son estos: <code>pgp.rediris.es</code> (español, aunque falla algunas veces) o <code>pgp.mit.edu</code> (americano, del <strong><span class="caps"><span class="caps">MIT</span></span></strong> y a mi no me ha dado problemas).</p>

	<p><h2>Cifrado simétrico</h2><br />

<img alt="Esquema de criptografía simétrica" src="http://img.genbetadev.com/2013/01/criptografia-simetrica (copia).png" class="centro_sinmarco"><br />

Como ya sabéis el cifrado simétrico es el tipo de cifrado más sencillo que hay, es más rápido de procesar y por desgracia menos seguro que el cifrado asimétrico.</p>

	<p>Para empezar la prueba tenemos que tener un archivo de cualquier tipo e introducir en la terminal de Linux el comando <code>gpg</code> con el parámetro <code>-c</code> para cifrar y <code>-d</code> para descifrar.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ echo &quot;Genbeta Dev&quot; &gt; texto.txt
pedro@ubuntu:~/gpg$ gpg -c texto.txt</code></pre>

	<p>Tras crear un archivo de texto usamos el comando <code>gpg -c [archivo]</code>, nos aparecerá un cuadro que nos pide la contraseña y se generará un archivo <code>.gpg</code>. Y después lo descifraremos con el comando <code>gpg -d [archivo]</code> (e introduciendo la clave <em>de alta seguridad</em>, en este caso <code>qwerty</code>).</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg -d texto.txt.gpg 
gpg: datos cifrados CAST5
gpg: cifrado con 1 frase contraseña
Genbeta Dev
gpg: AVISO: la integridad del mensaje no está protegida</code></pre>

	<p>Podéis probar a descifrar  <a href="http://lab.xitrus.es/gpg/texto.txt.gpg">este archivo</a> usando la clave <code>qwerty</code>.</p>

	<p><h2>Cifrado asimétrico</h2><br />

<img alt="Esquema de criptografía asimétrica" src="http://img.genbetadev.com/2013/01/criptografia-asimetrica.png" class="centro_sinmarco"><br />

<h3>Generar las claves</h3></p>

	<p>Para poder cifrar asimétricamente primero tenemos que crear la pareja de claves (pública y privada) con el comando <code>gpg --gen-key</code>.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --gen-key
gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Por favor seleccione tipo de clave deseado:
   (1) RSA y RSA (predeterminado)
   (2) DSA y Elgamal
   (3) DSA (sólo firmar)
   (4) RSA (sólo firmar)
¿Su selección?:</code></pre>

	<p><strong><span class="caps"><span class="caps">GPG</span></span></strong> nos permite elegir el tipo de clave que queremos usar, hay opciones que solo permiten firmar y otras que permiten firmar y cifrar, en este caso usaremos <code>DSA y Elgamal</code>.</p>

<pre class="prettyprint"><code>las claves DSA pueden tener entre 1024 y 3072 bits de longitud.
¿De qué tamaño quiere la clave? (2048) </code></pre>

	<p>Nos piden el tamaño de la clave que puede variar entre 1024 bits y 3072, esto es de libre elección, yo tomaré el término medio que es el que propone por defecto (2048).</p>

	<p>A partir de aquí todo es más trivial, nos pide la fecha en la que expirará la clave, la información del emisor de la clave (nombre, mail y algunos datos extra que queramos dar) y por último nos pedirá la contraseña que salvaguarda la clave privada.</p>

	<p>Tras generar las claves podemos verlas con el comando <code>gpg -k</code> que nos muestra nuestro anillo de claves, lo importante de este paso es que veremos la identificación de cada una, que es necesaria para poderlas exportar y enviar.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg -k
/home/pedro/.gnupg/pubring.gpg
------------------------------
pub   2048D/18384645 2013-01-23
uid                  Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;
sub   2048g/C4A9EA7A 2013-01-23
</code></pre>

<h4>Exportar y enviar la clave privada</h4>

	<p>El objetivo de esta pareja de claves es <strong>que cualquiera nos pueda mandar un archivo cifrado</strong> que solo veremos nosotros y esto se hace difundiendo la clave pública que acabamos de crear (la pública, <strong>nunca</strong> la privada), para exportarla en un archivo usaremos el comando <code>gpg -output [archivo destino] --export [ID de a clave pública]</code> (la clave pública generada antes tiene la ID <code>18384645</code>).</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --output CPub.gpg --export 18384645
pedro@ubuntu:~/gpg$ ls
CPub.gpg
</code></pre>

	<p>Este archivo ahora se puede difundir por el medio que queramos, tenemos que tener en cuenta que el único problema de seguridad que habría en difundir la clave es que alguien se hiciese pasar por otro al mandarnos un mensaje, algo que pasaría igual si no estuviese cifrado, por eso el que nos envíe algo lo debería de firmar (si fuese pertinente).</p>

	<p>Podéis descargar esta <a href="http://lab.xitrus.es/gpg/CPub.gpg">clave pública</a>, que ahora veremos como importar y sirve para mandarme un archivo cifrado o para comprobar que un archivo lo he firmado yo.</p>

<h4>Subir una clave pública a un servidor de claves</h4>

	<p>Los servidores de claves suelen ser de acceso público (al no haber mucho problema por difundir una clave pública) y en este caso subiremos una clave a los servidores del <strong><span class="caps"><span class="caps">MIT</span></span></strong> (<code>pgp.mit.edu</code>) usando el comando <code>gpg --send-keys --keyserver [Dirección del servidor] [ID de la clave pública]</code> (al igual que antes la ID es <code>18384645</code>).</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --send-keys --keyserver pgp.mit.edu 18384645
gpg: enviando clave 18384645 a hkp servidor pgp.mit.edu</code></pre>

	<p>A partir de este momento la clave estará accesible desde este servidor específico.</p>

<h4>Importar la clave desde el archivo o servidor de claves</h4>

	<p>Para poder usar la clave pública para cifrar o comprobar la identidad del remitente tenemos que importar previamente la clave, desde un archivo debemos de usar el comando <code>gpg --import [Archivo de la clave pública]</code> (el que hemos descargado anteriormente).</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --import CPub.gpg 
gpg: clave 18384645: «Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;» sin cambios
gpg: Cantidad total procesada: 1
gpg:              sin cambios: 1
</code></pre>

	<p>Al tener la clave ya en mi anillo de claves me contesta que no hay cambios.<br />

Para realizar la importación desde el servidor tenemos que usar el comando <code>gpg --keyserver [Dirección del servidor] --recv-keys [ID de la clave]</code>.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --keyserver pgp.mit.edu --recv-keys 18384645
gpg: solicitando clave 18384645 de hkp servidor pgp.mit.edu
gpg: clave 18384645: «Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;» sin cambios
gpg: Cantidad total procesada: 1
gpg:              sin cambios: 1</code></pre>

	<p>Como podemos ver al tener ya la clave nos devuelve el mismo mensaje.</p>

<h3>Cifrar con la clave pública</h3>

	<p>Ahora tenemos que pensar que hemos importado una clave pública, por ejemplo de nuestro jefe y tenemos que mandarle un documento, para cifrar el documento usaremos el comando gpg &#8212;encrypt &#8212;recipient [ID de la clave] [Archivo]</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ echo &quot;Genbeta Dev&quot; &gt; documento.txt
pedro@ubuntu:~/gpg$ gpg --encrypt --recipient 18384645 documento.txt 
pedro@ubuntu:~/gpg$ ls
documento.txt documento.txt.gpg
</code></pre>

	<p>Y ya tenemos el archivo listo para mandarlo de forma segura.</p>

<h3>Descifrar un archivo con la clave privada</h3>

	<p>Y ahora es el momento de descifrar con nuestra clave privada el documento tras recibirlo, con el comando <code>gpg -d [Archivo]</code> e introduciendo la contraseña que creamos para salvaguardar la clave privada.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg -d documento.txt.gpg 
Necesita una frase contraseña para desbloquear la clave secreta
del usuario: &quot;Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;&quot;
clave ELG-E de 2048 bits, ID C4A9EA7A, creada el 2013-01-23 (ID de clave primaria 18384645)
gpg: cifrado con clave ELG-E de 2048 bits, ID C4A9EA7A, creada el 2013-01-23
      «Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;»
Genbeta Dev</code></pre>

	<p>Y el resultado nos lo muestra a continuación (<code>Genbeta Dev</code>), aunque si queremos especificar la salida debemos de usar el parámetro <code>-o [Archivo de salida]</code>.</p>

<h2>Firmar archivos</h2>

	<p>Una de las medidas de seguridad básicas al pasar un mensaje es asegurarnos que el emisor es quien dice ser, para asegurarnos de esto digitalmente existe la firma digital, en el <a href="http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales">artículo anterior</a> expliqué como <strong><span class="caps"><span class="caps">GPG</span></span></strong> usaba los <strong>hash</strong> para crear una firma simple, pero también podemos cifrarlo y a su vez firmarlo, que es lo que haremos con el comando <code>gpg -u [ID de la clave privada] --output [Archivo resultante] --sign [Archivo para firmar]</code> e introduciendo la contraseña de la clave privada.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ echo &quot;Genbeta Dev&quot; &gt; firmar.txt
pedro@ubuntu:~/gpg$ gpg -u C4A9EA7A --output firmar.txt.gpg --sign firmar.txt 
Necesita una frase contraseña para desbloquear la clave secreta
del usuario: &quot;Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;&quot;
clave DSA de 2048 bits, ID 18384645, creada el 2013-01-23
</code></pre>

	<p>Y ahora para asegurarse la confidencialidad del documento (ahora que esta firmado por nosotros) deberíamos de cifrarlo con la clave pública del destinatario.</p>

<h3>Verificar y descifrar un archivo firmado</h3>

	<p>Cualquiera con la clave pública asociada a la que ha firmado el documento puede leerlo, de la misma forma que desciframos un archivo (<code>gpg -d [Archivo]</code>) o verificándolo únicamente con el comando <code>gpg --verify [Archivo]</code>.</p>

<pre class="prettyprint"><code>pedro@ubuntu:~/gpg$ gpg --verify firmar.txt.gpg 
gpg: Firmado el mié 23 ene 2013 05:25:18 CET usando clave DSA ID 18384645
gpg: Firma correcta de «Pedro Gutiérrez (Manual GPG - Genbeta Dev) &lt;info@xitrus.es&gt;»</code></pre>

	<p>Y el resultado es la información del remitente, que podéis comprobar vosotros con <a href="http://lab.xitrus.es/gpg/firmar.txt.gpg">este archivo</a> y con la clave pública de los pasos anteriores.</p>

<h2>Resumen</h2>

	<p><strong><span class="caps"><span class="caps">GPG</span></span></strong> es una herramienta de cifrado muy potente y fácil de usar, que en principio, a la mayoría no nos hace falta, pero puede que se nos presente la necesidad de enviar algo por medio inseguros (porque no haya más remedio), haciéndolo de esta forma podremos hacerlo sin miedo ha que lean el contenido del archivo o nos den el cambiazo.<br />

Este es un tema bastante extenso y si no lo acabas de entender puede ser un lío, pero para preguntar están los comentarios.</p>

	<p><strong>En Genbeta Dev</strong> | <a href="http://www.genbetadev.com/tag/criptografia">Criptografía</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[¿Qué son y para qué sirven los hash?: funciones de resumen y firmas digitales]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales</guid>
      <pubDate>Tue, 15 Jan 2013 08:21:18 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Hash" src="http://img.genbetadev.com/2013/01/375px-Cryptographic_Hash_Function.svg.png" class="centro_sinmarco" /></p>

	<p>Los <strong>hash</strong> o funciones de resumen son algoritmos que consiguen crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por ejemplo) una salida alfanumérica de longitud normalmente fija que representa un resumen de toda la información que se le ha dado (es decir, a partir de los datos de la entrada crea una cadena que <em>solo</em> puede volverse a crear con esos mismos datos).</p>

	<p>Estas funciones no tienen el mismo propósito que la <a href="http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida">criptografía simétrica y asimétrica</a>, tiene varios cometidos, entre ellos está asegurar que no se ha modificado un archivo en una transmisión, hacer ilegible una contraseña o firmar digitalmente un documento.<br />

<!--more--><br />

<h2>Características de los hash</h2></p>

	<p>En definitiva las funciones hash se encargan de representar de forma compacta un archivo o conjunto de datos que normalmente es de mayor tamaño que el hash independientemente del propósito de su uso.</p>

	<p>Este sistema de criptografía usa algoritmos que aseguran que con la respuesta (o <strong>hash</strong>) nunca se podrá saber cuales han sido los datos insertados, lo que indica que es una <strong>función unidireccional</strong>. Sabiendo que se puede generar cualquier resumen a partir de cualquier dato nos podemos preguntar si se podrían repetir estos resúmenes (<strong>hash</strong>) y la respuesta es que teóricamente si, podría haber colisiones, ya que no es fácil tener una función hash perfecta (que consiga que no se repita la respuesta), pero esto no supone un problema, ya que si se consiguieran (con un buen algoritmo) dos <strong>hash</strong> iguales los contenidos serían totalmente distintos.</p>

<h2>Ejemplos y formas de uso</h2>

	<p>Las funciones <strong>hash</strong> son muy usadas, una de las utilidades que tiene es proteger la confidencialidad de una contraseña, ya que podría estar en texto plano y ser accesible por cualquiera y aún así no poder ser capaces de deducirla. En este caso, para saber si una contraseña que está guardada, por ejemplo, en una base de datos es igual a la que hemos introducido no se descifra el <strong>hash</strong> (ya que debería de ser imposible hacerlo) sino que se aplicará la misma función de resumen a la contraseña que especificamos y se comparará el resultado con el que tenemos guardado (como se hace con las contraseñas de los sistemas <strong>Linux</strong>).</p>

	<p>Pongamos un ejemplo, la función <strong>hash MD5</strong> es una de estas funciones de resumen y la usaremos para resumir el siguiente texto:</p>

<blockquote>Genbeta Dev</blockquote>

	<p>Y aplicaré la función de resumen con el comando especifico que tienen la mayoría de sistemas basados en Linux (<code>md5sum</code>):</p>

<pre class="prettyprint"><code>pedro@ubuntu:~$ md5sum
Genbeta Dev
b71dada304875838f0263e3ae50c2c49  -
</code></pre>

	<p>Por lo que la última línea es la del hash, que podéis comprobar en un terminal, en una herramienta online o con una aplicación con este fin, aunque se puede aplicar en muchos lenguajes de programación que lo implementan (no solo esta función, sino también otros tipos como el <strong><span class="caps"><span class="caps">SHA</span></span></strong> que puede admitir distinta longitud).</p>

<h3>Asegurar la integridad de la información</h3>

	<p>Otro uso que tiene esta función es la de garantizar la integridad de los datos y es algo que habréis visto muchas veces, por ejemplo en algunas webs que proporcionan descargas de archivos grandes, por ejemplos software, dando junto a su vez el resumen del archivo y la función usada.</p>

	<p>Por poner un ejemplo en la página de descarga de <strong>Virtual Box</strong> podemos encontrar esta página con todos <a href="http://dlc.sun.com.edgesuite.net/virtualbox/4.2.6/MD5SUMS">los resúmenes de las descargas disponibles</a> con los que podemos comprobar que el archivo se ha descargado correctamente y que nadie ha modificado su contenido durante la transmisión.</p>

	<p>Para poner en práctica este uso cogeré esta imagen de <strong>HTML5</strong> y le aplicaré una función de resumen con el algoritmo <strong>MD5</strong>.</p>

	<p><img alt="Ejemplo que tomaremos para hacer el hash con el algoritmo MD5" src="http://img.genbetadev.com/2013/01/HTML5.png" class="centro" /></p>

	<p>Y el resultado de hacer el resumen es el siguiente, usando otra vez la función presente en sistemas Linux (<code>md5sum</code>).</p>

<pre class="prettyprint"><code>pedro@ubuntu:~$ md5sum HTML5.png 
cc617bf6a1ec75373af6696873fccef1  HTML5.png
</code></pre>

	<p>Este es el método para saber que un documento está integro tras su recepción, por eso se usa para comprobar que un archivo se a descargado correctamente o para comprobar que datos como un pequeño texto sigue siendo el mismo tras su emisión.</p>

<h2>Firma digital</h2>

	<p>Firmar un documento no es algo novedoso, pero la firma digital si lo es un poco más y nos ayuda a verificar la identidad del emisor de un mensaje (así nos podemos asegurar que nuestro jefe nos manda un archivo concreto y no es el vecino que nos gasta una broma).</p>

	<p>El método más simple de firma digital consiste en crear un hash de la información enviada y cifrarlo con nuestra cave privada (<a href="http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida">de nuestro par de claves de la criptografía asimétrica</a>) para que cualquiera con nuestra clave pública pueda ver el hash real y verificar que el contenido del archivo es el que hemos mandado nosotros.</p>

	<p>Me voy a adelantar al próximo capítulo sobre criptografía y hablaré un poquito de <em>GnuPG</em> (<strong><span class="caps"><span class="caps">GPG</span></span></strong>) que es una herramienta de cifrado que nos permite firmar documentos, en este caso lo haré con una firma en texto plano (es un sistema <em>menos seguro</em> pero veremos que es lo que hace).</p>

	<p>Lo que voy a hacer es firmar la imagen que hemos usado antes (la de <strong>HTML5</strong>) con el siguiente comando en una terminal de Linux (para otras plataformas hay otras soluciones muy similares o incluso idénticas):</p>

<pre class="prettyprint"><code>pedro@ubuntu:~$ gpg --clearsign HTML5.png 
Necesita una frase contraseña para desbloquear la clave secreta
del usuario: &amp;quot;Pedro Gutiérrez Puente (Clave pública) &amp;lt;info@xitrus.es&amp;gt;&amp;quot;
clave DSA de 3072 bits, ID 783F3E6D, creada el 2012-12-11
</code></pre>

	<p>Automáticamente a partir del archivo <code>HTML5.png</code> nos genera el archivo <code>HTML5.png.asc</code> que si lo abrimos con un visor de texto vemos el contenido de la imagen (un conjunto de caracteres sin sentido) y al final del archivo el siguiente texto (que contiene el hash cifrado):</p>

<pre class="prettyprint"><code>-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iF4EAREIAAYFAlD0vH0ACgkQJQ5Gcng/Pm1gDgD+PnXZfni9n90duv2ir0hdnWdp
1bpBHGzCNWxN8q5I8CoA/RsdMeMxY9kwOx/y8jnxQYDjWFiBRThiE7GSxTtvXUPf
=PwS6
-----END PGP SIGNATURE-----
</code></pre>

<h2>Resumen</h2>

	<p>Junto con este artículo sobre los <strong>hash</strong> tenemos el que habla sobre los <a href="http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida">tipos de criptografía (simétrica y asimétrica)</a> que son la base para comprender el siguiente y último de la serie sobre criptografía, donde pondremos en práctica estos conceptos junto a <strong><span class="caps"><span class="caps">GPG</span></span></strong>.</p>

	<p><strong>En Genbeta Dev</strong> | <a href="http://www.genbetadev.com/tag/criptografia">Criptografía</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Tipos de criptografía: simétrica, asimétrica e hibrida]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida</guid>
      <pubDate>Thu, 03 Jan 2013 08:16:07 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Criptografía simétrica y asimétrica" src="http://img.genbetadev.com/2013/01/criptohead.png" class="centro_sinmarco" /></p>

	<p>Tras haber hablado de los primeros <a href="http://www.genbetadev.com/seguridad-informatica/que-es-y-como-surge-la-criptografia-un-repaso-por-su-historia">métodos de criptografía de la historia</a> toca adentrarse en los métodos criptográficos modernos como la criptografía simétrica, asimétrica, híbrida (obviamente una mezcla de las anteriores) y por último las funciones de resumen o hash (que no cumplen estrictamente la función de confidencialidad para la que está destinada la criptografía, ya que es un cifrado irreversible).<br />
<!--more--><br />
<h2>Criptografía simétrica</h2></p>

	<p>La criptografía simétrica solo utiliza una clave para cifrar y descifrar el mensaje, que tiene que conocer el emisor y el receptor previamente y este es el punto débil del sistema, la comunicación de las claves entre ambos sujetos, ya que resulta más fácil interceptar una clave que se ha transmitido sin seguridad (diciéndola en alto, mandándola por correo electrónico u ordinario o haciendo una llamada telefónica).</p>

	<p><img alt="Esquema de criptografía simétrica" src="http://img.genbetadev.com/2013/01/criptografia-simetrica (copia).png" class="centro_sinmarco" /></p>

	<p>Teóricamente debería de ser más fácil conocer la clave interceptándola que probándola una por una por fuerza bruta, teniendo en cuenta que la seguridad de un mensaje cifrado debe recaer sobre la clave y nunca sobre el algoritmo (por lo que sería una tarea eterna reventar la clave, como comenté en un ejemplo de <a href="http://www.genbetadev.com/seguridad-informatica/cuanto-tardaria-un-hacker-en-reventar-nuestra-contrasena">ataque por fuerza bruta</a>).</p>

	<p><img alt="Máquina enigma - historia de la criptografía" src="http://img.genbetadev.com/2012/12/enigma.jpg" class="derecha"></p>

	<p>Para poner un ejemplo la máquina <strong>Enigma</strong> (que era una maquina de cifrado electromecánica que generaba abecedarios según la posición de unos rodillos que podrían tener distintas ordenes y posiciones) usaba un método simétrico con un algoritmo que dependía de una clave (que más que clave parece un ritual) que está formada por: los rotores o rodillos que usaba, su orden y la posición de cada anillo, siendo esto lo más básico.</p>

	<p>La máquina <strong>Enigma</strong> contaba también con un libro de claves que contenía la <em>clave del día</em> y hacia un poco más difícil encontrar la clave, pero no es una clave lo suficientemente segura como para que no se pudiese reventar, sobretodo cuando los ingleses gracias a los polacos consiguieron el algoritmo, por este motivo la mayoría de los días conseguían la clave.</p>

	<p>Y otro inconveniente que tiene este sistema es que si quieres tener un contenido totalmente confidencial con 10 personas tienes que aprenderte o apuntarte (siendo esta forma menos segura) las 10 claves para cada persona.</p>

<h2>Criptografía asimétrica</h2>

	<p>La criptografía asimétrica se basa en el uso de <strong>dos claves</strong>: <strong>la pública</strong> (que se podrá difundir sin ningún problema a todas las personas que necesiten mandarte algo cifrado) y <strong>la privada</strong> (que no debe de ser revelada nunca).</p>

	<p><img alt="Esquema de criptografía asimétrica" src="http://img.genbetadev.com/2013/01/criptografia-asimetrica.png" class="centro_sinmarco" /></p>

	<p>Sabiendo lo anterior, si queremos que tres compañeros de trabajo nos manden un archivo cifrado debemos de mandarle nuestra clave pública (que está vinculada a la privada) y nos podrán mandar de forma confidencial ese archivo que solo nosotros podremos descifrar con la clave privada.</p>

	<p>Puede parecer a simple vista un sistema un poco <em>cojo</em> ya que podríamos pensar que sabiendo la clave pública podríamos deducir la privada, pero este tipo de sistemas criptográficos usa algoritmos bastante complejos que generan a partir de la frase de paso (la contraseña) la clave privada y pública que pueden tener perfectamente un tamaño de 2048bits (probablemente imposible de reventar).</p>

	<p>Como os habréis dado cuenta solo cifra una persona (con la clave pública) y la otra se limita a mirar el contenido, por lo que la forma correcta de tener una comunicación bidireccional sería realizando este mismo proceso con dos pares de claves, o una por cada comunicador.</p>

	<p>Otro propósito de este sistema es también el de poder firmar documentos, certificando que el emisor es quien dice ser, firmando con la clave privada y verificando la identidad con la pública.</p>

	<p><strong>Nota</strong>: todo esto puede parecer lioso (y lo es) pero hablaré de como poner en práctica esto con <strong>GnuPG</strong> (una herramienta de cifrado libre muy usada para este propósito) y será más fácil de comprender.</p>

<h3>Diferencias entre criptografía simétrica y asimétrica</h3>

	<p>Para empezar, la criptografía simétrica es más insegura ya que el hecho de pasar la clave es una gran vulnerabilidad, pero se puede cifrar y descifrar en menor tiempo del que tarda la criptografía asimétrica, que es el principal inconveniente y es la razón por la que existe la criptografía híbrida.</p>

<h2>Criptografía híbrida</h2>

	<p>Este sistema es la unión de las ventajas de los dos anteriores, debemos de partir que el problema de ambos sistemas criptográficos es que el simétrico es inseguro y el asimétrico es lento.</p>

	<p>El proceso para usar un sistema criptográfico híbrido es el siguiente (para enviar un archivo):</p>

<ul><li>Generar una clave pública y otra privada (en el receptor).</li><li>Cifrar un archivo de forma síncrona.</li><li>El receptor nos envía su clave pública.</li><li>Ciframos la clave que hemos usado para encriptar el archivo con la clave pública del receptor.</li><li>Enviamos el archivo cifrado (síncronamente) y la clave del archivo cifrada (asíncronamente y solo puede ver el receptor).</li></ul>

<h2>Resumen</h2>

	<p>Estos son los métodos criptográficos modernos que usamos comúnmente, aunque las aplicaciones nos abstraigan de todo esto, pero podemos hacerlo de forma manual si se diera el caso de que necesitamos mandar ciertos contenidos y queremos que tengan la confidencialidad adecuada.</p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/tag/criptografia">Criptografía</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[¿Qué es y como surge la criptografía?: un repaso por su historia]]></title>
      <link>http://www.genbetadev.com/seguridad-informatica/que-es-y-como-surge-la-criptografia-un-repaso-por-su-historia</link>
      <guid>http://www.genbetadev.com/seguridad-informatica/que-es-y-como-surge-la-criptografia-un-repaso-por-su-historia</guid>
      <pubDate>Fri, 28 Dec 2012 09:02:30 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Máquina enigma - historia de la criptografía" src="http://img.genbetadev.com/2012/12/enigma.jpg" class="centro" /> </p>

	<p>La <strong>criptografía</strong> es una necesidad derivada de realizar comunicaciones por escrito (en su origen) <strong>creada para preservar la privacidad</strong> de la información que se transmite, <em>garantizando</em> que una persona que no esté autorizada no pueda leer el contenido del mensaje. </p>

	<p>En la historia hemos tenido multitud de ejemplos de formas de encriptar mensajes como los <strong>métodos espartanos</strong> de hace 2.500 años, el cifrado de <strong>Polybios</strong> (de los griegos) o el <strong>cifrador del César</strong> (de los romanos), y sin olvidarnos de la máquina de encriptación más famosa de la historia: <strong>la máquina Enigma</strong>. <br />
<!--more--> <br />
<h2>Historia de la criptografía </h2> </p>

	<p>En este artículo voy a tratar solamente de la historia de la criptografía y pondré unos ejemplos prácticos, posteriormente me adentraré en los distintos tipos de criptografía moderna y posteriormente su uso. </p>

<h3>La escítala espartana (siglo V a. C.)</h3> 

	<p><img alt="Escítala - historia de la criptografía" src="http://img.genbetadev.com/2012/12/escitala.jpg" class="derecha" /> </p>

	<p>Los primeros mensajes cifrados que conocemos datan del siglo V antes de Cristo, de procedencia espartana, que ponían en práctica un método simple y rudimentario que consistía en coger una vara (llamada escítala), se le enroscaba una cinta de cuero o papiro y posteriormente se escribía de forma longitudinal (como en la imagen). </p>

	<p>Y por último se desenrollaba la cinta, con un puñado de letras sin sentido y se mandaba a través del <del>seur</del> mensajero de turno al trote. <br />
Supuestamente solo se podía desencriptar la información con una vara del mismo diámetro que la original sobre la que se escribió (obviamente si te pones a intentar cuadrar las letras acabas sacando algo en claro, pero en la época no se sabía demasiado leer, tampoco el idioma origen y mucho menos tenían la <em>cultura general</em> necesaria para pensar que la información estaba encriptada). </p>

<h4>Uso</h4> 

	<p>El diámetro de la escítala es la clave de este método de encriptación (o simplemente cada cuantos caracteres empieza una vuelta). </p>

	<p>En el ejemplo encriptaremos la siguiente entrada de texto: </p>

<blockquote>Genbeta Dev &#8211; Historia de la criptografía &#8211; Método usado por los espartanos</blockquote> 

	<p>Y como clave o diámetro de la escítala (<strong><code>n</code></strong>) tomaremos el número 7, es decir, en cada vuelta de la cinta enroscada en el la vara pondremos 7 caracteres. <br />
El resultado es el siguiente: </p>

<blockquote>G  tMose-doé pn egtpabH rooreiladrttsafo aat í ln ocauooDrr ssseii-a  vap de 
</blockquote> 

	<p>Podéis poner la técnica en marcha con este <a href="http://lab.xitrus.es/criptografia/espartanos.php">ejemplo que he realizado</a> y el código <strong>JavaScript</strong> es el siguiente: </p>

<pre class="prettyprint"><code>function escitala(txt,n){ 
	//Convertimos &quot;n&quot; en entero 
	var n=Math.floor(Number(n)) 
	//&quot;e&quot; nos indica si entra justo en las filas 
	var e=(txt.length%n&gt;0?1:0) 
	//Calculamos el número de filas resultantes 
	var lin=Math.floor((txt.length/n)+e) 
	//&quot;r&quot; contiene la respuesta 
	var r=&#39;&#39; 
	//Añadimos el carácter a la respuesta 
	for(var a=0;a&lt;lin;a++)	for(var b=0;b&lt;n;b++)	r+=&#39;&lt;span&gt;&#39;+txt.charAt(a+(b*lin))+&#39;&lt;/span&gt;&#39; 
	return r 
}</code></pre> 

	<p>La función necesita dos argumentos, el texto y el diámetro que usaremos de clave (<code>n</code>) de la siguiente forma: <code>escitala([Texto],[Entero: diámetro])</code>. </p>

<h2>El cifrador de Polybios  (siglo II a. C.)</h2> 

	<p>Este sistema es el primer cifrado por sustitución de caracteres. Se atribuye la invención a el historiador griego <strong>Polybios</strong> y el sistema de cifrado consiste en sustituir un carácter por el numero o letra de una columna o fila (como si jugásemos al<em> hundir la flota</em>). </p>

	<p><img alt="Polybios - historia de la criptografía" src="http://img.genbetadev.com/2012/12/polybios1.jpg" class="centro" /> </p>

	<p>En el ejemplo de este sistema introduciremos la siguiente cadena: </p>

<blockquote>Genbeta Dev Historia de la criptografia Metodo usado por los griegos</blockquote> 

	<p><strong>Nota:</strong> tenemos que tener en cuenta que en este método se sustituye la letra &#8220;<code>J</code>&#8220; por la &#8220;<code>I</code>&#8220;. <br />
El resultado de encriptar con la tabla de la imagen (la teóricamente real) es el siguiente: </p>

<blockquote><span class="caps">BBAECCABAEDDAA</span> <span class="caps">ADAEEA</span> <span class="caps">BCBDDCDDCDDBBDAA</span> <span class="caps">ADAE</span> <span class="caps">CAAA</span> <span class="caps">ACDBBDCEDDCDBBDBAABABDAA</span> <span class="caps">CBAEDDCDADCD</span> <span class="caps">DEDCAAADCD</span> <span class="caps">CECDDB</span> <span class="caps">CACDDC</span> <span class="caps">BBDBBDAEBBCDDC</span></blockquote> 

	<p>Y podéis probarlo con <a href="http://lab.xitrus.es/criptografia/griegos.php"> este ejemplo para encriptar y desencriptar</a> con el sistema griego (Polybios). </p>

<pre class="prettyprint"><code>var let=&#39;abcdefghiklmnopqrstuvwxyz&#39; 
var tra=&#39;ABCDE&#39; 
//función de encriptación 
function polybios_enc(txt){ 
	//Comprobamos que el texto es válido 
	var pat=/^[0-9A-z\s]*$/ 
	if(!pat.test(txt)) return &#39;Texto no válido&#39; 
	//Lo pasamos a minúsculas y convertimos la &quot;j&quot; en &quot;i&quot; (como requiere el método) 
	var txt=txt.toLowerCase().replace(&#39;j&#39;,&#39;i&#39;) 
	var r=&#39;&#39; 
	for(var a=0;a&lt;txt.length;a++){ 
		//Comprobamos si el carácter es un espacio 
		if(txt.charAt(a)!=&#39; &#39;){ 
			//Buscamos la posición del carácter en el abecedario 
			var l=txt.charAt(a) 
				l=let.indexOf(l) 
			//Comprobamos la posición de la fila y columna 
			var c1=Math.floor(l/let.length*tra.length) 
			var c2=Math.round(((l/let.length*tra.length)*tra.length)-(c1*tra.length)) 
			//Añadimos la letra correspondiente a la fila y columna 
			r+=tra.charAt(c1)+tra.charAt(c2) 
		}else{ 
			r+=&#39; &#39; 
		} 
	} 
	return r 
} 
//función de desencriptación 
function polybios_dec(txt){ 
	var pat=/^[ABCDE\s]*$/ 
	if(!pat.test(txt)) return &#39;Texto no válido&#39; 
	var t=txt,r=&#39;&#39;,c 
	while(t.length&gt;0){ 
		if(t.substr(0,1)==&#39; &#39;){ 
			r+=&#39; &#39; 
			c=1 
		} 
		else{ 
			var s=t.substr(0,2).split(&#39;&#39;) 
			r+=let.charAt((tra.indexOf(s[0])*tra.length)+tra.indexOf(s[1])) 
			c=2 
		} 
		t=t.substr(c,t.length-c) 
	} 
	return r 
}</code></pre> 

	<p>Ambas funciones solo necesitan el argumento con el texto a encriptar o desencriptar. </p>

<h2>El cifrador del César (siglo I a. C.)</h2> 

	<p>Los romanos hace 2100 años idearon su propio sistema de enscriptación (a la altura de los anteriores) que consistía en sustituir cada letra por otro que es el resultado de desplazar tres posiciones hacia la derecha desde el carácter origen en el abecedario (con la imagen de abajo se entenderá a la perfección). </p>

	<p><img alt="Cifrado del César - Historia de la criptografía" src="http://img.genbetadev.com/2012/12/320px-Caesar3.svg.png" class="centro_sinmarco" /> </p>

	<p>Esta técnica se podría mejorar cambiando el abecedario &#8220;desplazado&#8221; por uno aleatorio, por ejemplo, pero el método en principio es desplazando tres caracteres a la derecha (y para desencriptarlo hacerlo al contrario, a la izquierda). <br />
<strong>Nota:</strong> este sistema puede admitir también los espacios, que se añadirán como un carácter más o de no usarse se omitirán. </p>

	<p>Para poner otro ejemplo vamos a encriptar la siguiente cadena (contaremos los espacios): </p>

<blockquote>Genbeta Dev Historia de la criptografia Metodo usado por los romanos</blockquote> 

	<p>Y el resultado es el siguiente: </p>

<blockquote>jhqehwdcghycklvwruldcghcodcfulswrjudildcphwrgrcxvdgrcsrucorvcurpdqrv</blockquote> 

	<p>Y por último he hecho <a href="http://lab.xitrus.es/criptografia/romanos.php">este otro ejemplo funcional</a> del sistema de enscriptación del César, que admite distinto número de desplazamiento (<code>n</code>), sea positivo o negativo (si lo encriptamos con <code>n=3</code> debemos de desencriptarlo con <code>n=-3</code>). </p>

<pre class="prettyprint"><code>function cesar(txt,n,space){ 
	//Comprobamos que el texto es válido 
	var pat=/^[0-9A-z\s]*$/ 
	if(!pat.test(txt)) return &#39;Texto no válido&#39; 
	//Adaptamos el texto según si admitimos espacios 
	var let=&#39;abcdefghijklmnopqrstuvwxyz&#39;+(space?&#39; &#39;:&#39;&#39;) 
	var txt=txt.toLowerCase() 
	if(!space) for(var a=0;a&lt;txt.length;a++) txt=txt.replace(&#39; &#39;,&#39;&#39;) 
	//Ajustamos el desplazamiento de &quot;n&quot; 
	var n=n%let.length,r=&#39;&#39; 
		n=n&lt;0?let.length+n:n 
	for(var a=0;a&lt;txt.length;a++){ 
		//Desplazamos el abecedario 
		l=let.charAt((let.indexOf(txt.charAt(a))+n)%let.length) 
		r+=l.length==0?&#39; &#39;:l 
	} 
	return r 
}</code></pre> 

	<p>Esta función sirve para encriptar y desencriptar (debemos de restar el desplazamiento simplemente) y necesita los siguientes argumentos: <code>cesar([Texto],[Entero: desplazamiento],[Booleano: con o sin espacios])</code>. </p>

<h3>Resumen</h3> 

	<p>Esta es una <em>pequeña</em> introducción a la <strong>criptografía</strong> mezclada con un poco de historia (y es solo tres ejemplos, si nos pusiésemos a nombras métodos y métodos que no necesitasen computación tendríamos para rato). En la próxima parte comentare los tipos de encriptación&#8230; <strong>moderna</strong>. </p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/tag/criptografia">Criptografía</a> </p>

	<p><script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script><br />
<script> addEventListener(&#8216;load&#8217;, function (event) { prettyPrint() }, false); </script></p>      ]]></description>
      </item>
        	  <atom:link href="http://www.genbetadev.com/categoria/seguridad-informatica/rss2.xml" rel="self" type="application/rss+xml" />
	</channel>

</rss>


