Curso de Seguridad Informática

Conceptos básicos para no especialistas

Citation
, XML
Authors

Abstract

Nociones de seguridad en general, física, lógica, de software, recomendaciones y conceptos básicos de criptografía


NOCIONES GENERALES

 Inseguridad Informática

 El problema con la seguridad es que, tal como el  arquero de fútbol;  solo toma importancia cuando falla. Nuestra intuición nos dice que es normal que no ocurran desastres y el mundo está armado de modo tal que los desastres son sucesos excepcionales,. Por eso es tan difícil implementar políticas de seguridad que funcionen.

Una buena política de seguridad evita la ocurrencia de incidentes por lo que su importancia pasa desapercibida o tiene poco impacto. Dentro de la organización estas políticas son vistas a menudo como complicaciones adicionales más o menos inútiles que podrían evitarse con solo un poco de confianza y buena suerte.

No es de extrañar entonces que casi todos los planes de informática sean reacciones después de ocurrido un desastre. Mientras mayor ha sido el desastre más cuidadoso y completo suele ser el plan que después se implementa.

1. Qué es lo que se protege

El bien protegido es principalmente la información, esta podría sufrir distintos ataques como por ejemplo:

Que se revele información que no es pública a personas no autorizadas. Este es un ataque a la confidencialidad

 Que se cambien datos o la forma en que se procesan (programas) de manera fraudulenta, o que se borren datos por efecto de virus. Estos son ataques a la integridad

 Que se inutilice el sistema y no se pueda obtener la información. Este es un ataque a la disponibilidad

 Las amenazas a la seguridad no son siempre externas ni producto de ataques maliciosos, de hecho gran parte de los desastres son producto del descuido, desastres naturales, la mala operación de los equipos, etc. La imperfección y el error humano es parte muy relevante en cuanto a las políticas de seguridad que se implementan.

 2. Riesgos de seguridad

Los riesgos varían según la naturaleza de la organización, aunque los más usuales son los que a continuación se indican:

Información dispersa, con el creciente uso de PC, la información tiende a almacenarse en los discos duros locales de cada estación de trabajo creando a veces problemas de redundancia e inconsistencia: estos consisten en que una misma información que debiera tener el mismo valor, está almacenada en dos o más  lugares con diferentes valores. Esta dispersión, aunque impide un control centralizado de la información como en los sistemas antiguos ha mostrado también beneficios respecto a la seguridad. En los sistemas  modernos se trabaja deliberadamente con dispersión y redundancia, por ejemplo en los sistemas RAID. En suma, la dispersión es una amenaza solo cuando está asociada a otros problemas como la inconsistencia o fallas de seguridad en las estaciones de trabajo. 

Robos y copias no autorizadas, adulteración, revelación de secretos, sabotaje, vandalismo, etc. Estas amenazas se combaten con dos clases de política restricción de acceso y asignación estricta de responsabilidades

Pérdidas de información por efecto de virus o monitoreo remoto con troyanos.

Fallas técnicas del disco, cortes de suministro eléctrico, transientes de energía, operación inadecuada, recalentamiento, desastres naturales, incendios, inundaciones, etc. Para estas amenazas se usan las políticas usuales de seguridad industrial

3. Como se implementa una política de seguridad

Las políticas de seguridad se deben implementar en varios niveles partiendo por la sensibilización de operadores y usuarios. Un primer paso de cualquier política de este tipo es convencer a la gente de los beneficios de seguir políticas seguras y de los riesgos personales y organizacionales de no hacerlo.

A las personas les interesa principalmente como les afecta a ellos los problemas de seguridad. Más que los intereses de la organización hay que enfatizar como perjudica personalmente al operador una falla de seguridad pues la disposición a cuidarse es proporcional al miedo a las consecuencias de un desastre.

Luego debe venir un estudio de las vulnerabilidades acompañado por un registro detallado de incidentes que comprometan la seguridad del sistema. Este registro de incidentes es una parte importante para el diseño del plan de seguridad y el personal debe ser premiado o incentivado de algún modo para que coopere en ello, de otro modo no se identificarán debilidades y errores.

Huelga decir que durante esta etapa de registro no debe existir castigo o represalia contra los responsables de un incidente, todo lo contrario, deben ser incentivados y premiados por descubrir la debilidad del sistema ante errores humanos. La peor amenaza a la seguridad consiste en no conocer las propias debilidades.

Una vez detectadas las debilidades internas y analizado el registro de incidentes se debe pasar a evaluar estratégica y económicamente cada una de las amenazas, a fin de establecer prioridades. .Muchas debilidades no serán detectadas por incidentes sino por un análisis de debilidades posibles, que debe llevarse a cabo de manera paralela al estudio de los incidentes. Por ejemplo se podrían detectar problemas como:

Existen equipos con información sensible que no tienen restricciones de acceso.

Los password personales han perdido su condición de secretos

No están claramente establecidas las responsabilidades de quienes manejan información sensible

Hay frecuentes interrupciones de energía eléctrica

Hay extensiones de corriente por el piso y enchufes múltiples

Hay líneas de potencia sobrecargadas o desequilibradas

Un equipo con información sensible tiene acceso a correo electrónico abierto, sin un sistema de control adecuado

Hay personas con problemas económicos personales a cargo de información sensible y, potencialmente valiosa

Hay posibilidad de sabotaje fuera de las horas de trabajo

etc. 

4. Asignación de responsabilidades, incentivos y sanciones

Uno de los principales problemas en torno a la seguridad informática es que muy rara vez las responsabilidades de las personas están explícitamente definidas, así como tampoco existen sanciones previamente establecidas por violación a las políticas de seguridad. Cuando ocurre un desastre informático nueve de cada diez veces al responsable no le ocurre absolutamente nada, por otra parte tampoco existen premios o incentivos a los trabajadores que mantengan el sistema funcionando por determinado tiempo sin incidentes (tal como se hace a menudo en otras áreas de la seguridad industrial). A falta de este sistema de castigos e incentivos, la actitud de los trabajadores hacia los aspectos de seguridad es usualmente indiferente.

Un plan de seguridad debe establecer que quienes operen un equipo de computación (especialmente si contiene información sensible) poseen una cuota, limitada,  de responsabilidad sobre el cuidado de la información a su cargo. Esta responsabilidad no debe ser meramente simbólica sino efectiva, debe tener expresión dentro de su remuneración y las pérdidas atribuibles a su descuido o mala práctica deben hacer efectiva esta responsabilidad, tal como un cajero debe rendir cuenta del movimiento de caja diario.

La excusa usual después de un desastre informático es “yo no sabía”, “nadie me lo dijo” y revela claramente una falla en las políticas de seguridad, la capacitación y la especificación de responsabilidades dentro de la administración.

5. Inventario de activos informáticos

Los activos informáticos dentro de una organización están constituidos por:

La información almacenada

Los equipos computacionales y sus periféricos

El sistema de potencia y respaldo (si hay) que los alimenta

El programa de mantención de hardware

El programa de mantención de software

El plan de seguridad informática

Todo el software que se usa

El recurso humano que opera los equipos

Los programas y actividades de capacitación

A pesar de ser un sistema muy dinámico y cambiante, los activos informáticos antes mencionados deben estar convenientemente registrados, inventariados y evaluados cuando corresponda. No tener idea clara de lo que se posee es una importante debilidad en cuanto a una buena política de seguridad informática, esta ignorancia a menudo es fuente de robos y desastres

A partir de este catastro se puede elaborar un ranking de los activos que más podrían perjudicar a la organización en caso de falla, lo que da un buen punto de partida para el plan de seguridad informática.

6. Auditorias informáticas

Las auditorias informáticas consisten principalmente en verificar la buena operación de los sistemas, detectando los fraudes de digitación, la modificación maliciosa de datos o programas, etc. Las auditorias se traducen en la práctica en confrontar los datos ingresados con la documentación física (en papel) que la respalda. Existe gran cantidad de sistemas muy vulnerables al fraude de digitación o de modificación maliciosa de los datos y que solo pueden ser detectados por medio de auditorias de esta clase.

Hay que comprender que las auditorias completas no son factibles en la práctica: habría que duplicar a mano todo el trabajo mecanizado lo que no tendría sentido, así, en términos reales lo que se hace es auditorias selectivas, al azar sobre las áreas que se consideran más sensibles, mantener la posibilidad de que en cualquier momento el trabajo del operador puede ser revisado es una buena medida que basta para desanimar a la mayoría de las personas a cometer esta clase de fraudes.

7. Elaboración de normas y manuales

Dígalo por escrito, es la regla de oro en este tipo de cosas. Las palabras se las lleva el viento, los acuerdos de las reuniones y lo que se enseña en la capacitación se olvida fácilmente, no así los manuales de procedimiento, de normas y los planes de contingencia. Me ha tocado comprobarlo personalmente: se le puede dar a alguien una misma instrucción verbal decenas de veces, y siempre la explicación será “se me olvidó” o “pero si nadie me dijo”.. Lo que está escrito y entregado no puede ser negado.

Los manuales de procedimiento deben ser cortos, simples y claros. Deben venir con el respaldo de los niveles más altos de la organización y debe también especificarse claramente lo que ocurrirá a quien no los aplique por negligencia.

Lo mismo con las normas, en las grandes agencias periodísticas existen los manuales de estilo, que regulan todos los detalles importantes del trabajo de redacción de noticias, algo parecido debiera existir en toda organización donde se operen equipos de computación, con mayor razón si estos guardan información sensible.

Los planes de contingencia son una clase especial de manuales de procedimiento que especifican que se debe hacer en caso de diversos desastres o incidentes probables, de modo tal que no ocurra que el operador, por desconocimiento, empeore los daños por reaccionar equivocadamente.

Así vemos como cada operador debe disponer de un manual de procedimiento personalizado que detalle sus responsabilidades específicas, las sanciones e incentivos. También debe existir un manual de normas generales así como los planes de contingencia.

8. Segmentación y restricciones de acceso

Las estaciones de trabajo suelen manejar información de lo más heterogéneo: desde escritos de menor importancia que ni siquiera se graban en el disco, programas de diverso grado de importancia, documentos de poca importancia, documentos públicos importantes, documentos e información reservada, etc.

Una adecuada segmentación, así como niveles de acceso restringidos son una de las medidas de seguridad más obvias. No es necesario cerrar completamente un equipo de manera que solo quien posea la clave pueda usarlo, bien puede segmentarse en un área pública y con acceso abierto, áreas de acceso privado restringido y áreas de acceso privado personal. En el ambiente Windows, que son frecuentemente usados en ambientes de ofimática la instalación de volúmenes PGP o Truecrypt encriptados es una buena solución para este tipo de problemas.

9. Los controles de seguridad

 La seguridad se debe controlar por capas, partiendo de los controles  proactivos, que se anticipan a los problemas, los detectivos que detectan problemas y los reactivos que se dedican a control de daños, así existen diversas categorías de controles:

El control preventivo, que incluye la sensibilización del personal, la elaboración de políticas y normas, la implementación de incentivos  y castigos, los respaldos periódicos, etc.

El control de detección, que busca detectar los problemas en sus primeras etapas, antes de que el daño sea mayor o irreversible. ejemplos de estos controles son los programas antivirus, firewalls, auditorias, etc.

El control correctivo, que se encarga de reparar los daños y eliminar las causas del problema de seguridad. Los parches de software, la separación de un funcionario deshonesto o incompetente, la recuperación de datos perdidos, etc. son ejemplos de control correctivo.

El control del acceso que evita que personas no autorizadas tengan acceso a ciertos equipos o tipo de información, ejemplo típico de esto es la asignación y administración de passwords.

Controles de monitoreo (suirvellance) consisten en registrar, normalmente sin conocimiento o acceso del operador, sus actividades en archivos log, snapshots o cualquier otro medio

Controles de cambios en las aplicaciones, consiste en llevar un registro de las modificaciones que sufren las aplicaciones y verificar que solo se ejecutan aplicaciones debidamente revisadas y aprobadas

10. Estrategias contra virus

Las pérdidas de información por efecto de los virus informáticos son un riesgo constante aunque manejable. Primero que nada recordemos que los virus necesitan un medio para ingresar a una estación de trabajo, este medio puede ser:

Un archivo ejecutable (exe o com) infectado

Un e-mail con un script en VBS

Un documento de Office infectado con un virus de macro

Deshabilitando medios removibles como diskette, CD, DVD oUSB impediremos la posibilidad de que el operador grabe algún archivo que pueda estar infectado, cualquier programa nuevo que instalemos podemos revisarlo con un antivirus convenientemente actualizado.

Para evitar los virus de macro VBS podemos deshabilitar la opción de desplegar mail en modo html, deshabilitar el visor de html de nuestro correo o, mejor aún, usar un cliente de correo que no sea de Microsoft como el Pegasus o The Bat (que, además tienen varias ventajas funcionales sobre el Outlook)

Si no deshabilitamos la advertencia que lanzan las aplicaciones de Office antes de ejecutar un documento al cual le han detectado un virus de macro, tendremos una buena protección contra los documentos con virus VBA, siempre y cuando el operador conozca que aplicaciones tienen macros permitidos y cuales no

11. Políticas de respaldo

Respaldo es eso que hacemos por algún tiempo después que se nos ha borrado una importante cantidad de información, nos dura mientras tenemos fresco el recuerdo del desastre.

Bromas aparte, los respaldos son una de las actividades más tediosas y frustrantes de la seguridad informática, especialmente cuando se deben respaldar grandes archivos de manera no automatizada.

Un primer paso para mejorar esta situación consiste en automatizar el proceso, dejándolo funcionar en horas de la noche por ejemplo. como los respaldos se hacen usualmente en cinta magnética  o discos zip, esto no es siempre posible sin dispositivos adicionales que enciendan y apaguen los equipos.

Otra alternativa simple para las estaciones de trabajo consiste en dotarlas de dos discos duros separados, en espejo, haciendo la transferencia al final de cada día o período una vez que se verifique que el archivo a respaldar esta íntegro.

Finalmente tenemos los sistemas RAID que crean respaldos espejo paralelamente cada vez que se escribe en el disco. Esta técnica es útil para el caso de fallas físicas en los discos pero no cuando la información es atacada por un virus o borrada accidentalmente, en estos casos simplemente se respaldarán los archivos vacíos o dañados, porque la copia es simultánea y automática.

Un buen sistema de respaldos debe ser necesariamente arrancado por el operador de manera manual, después que ha verificado la integridad física del archivo que va a respaldar y la frecuencia con que se respalda se determina a partir de las tasas y frecuencia de variación de la información.  

12. No confiarás

Tal vez esto debiera llamarse inseguridad informática, la idea  de seguridad es por si sola peligrosa. La creencia de que existen “sistemas operativos seguros” ha provocado tantos desastres como la felonía y la mala intención de los crackers.

Nada es completamente seguro, la “seguridad” es incierta. Evitar incidentes depende mucho más de lo que hacemos que de los recursos con que contamos. Hasta los sistemas más seguros son vulnerables en ausencia de una política y prácticas adecuadas, y con sistemas operativos tan “débiles” como Windows 98 podemos alcanzar buenos grados de seguridad aplicando las políticas y actitudes adecuadas.

Un poco de paranoia no hace daño, especialmente cuando tenemos información valiosa o sensible que proteger

CONSTRUYENDO UNA CAJA SEGURA

Cada día es mayor el volumen de información personal que se almacena en nuestros computadores. El que tiene acceso a nuestro equipo ya sea un hacker, un simple intruso o persona del servicio técnico también podrá acceder a muchísima información personal sobre nosotros y nuestro trabajo, la situación es peor en los notebook, que son objeto muy apetecido de los ladrones. Por eso la importancia de que convirtamos nuestro equipo en unacaja segura, donde no importa quien tenga acceso a el no pueda obtener ninguna de la información que deseemos mantener como confidencial.

Primero que nada en nuestra caja segura debemos instalar un software de encriptación. True Crypt es en mi opinión uno de los mejores, otra opción es PGP, recomiendo la versión 6.02i que puede bajarse desde http://www.pgpi.org. No es la versión más nueva pero tiene dos importantes ventajas: incluye el software PGP Disk y su código fuente es de dominio público, lo que baja la posibilidad de traer “puertas traseras”

Una vez instalado el software de encriptación, debemos crear un volumen encriptado para nuestros archivos sensibles. Recomiendo crear físicamente estos volúmenes en la carpeta c:windowssystem para que no resulte fácil borrarlos por accidente. Luego se sacan accesos directos hacia el escritorio o a cualquier otra carpeta.

Luego instalamos un cliente de correo pop3 más seguro que Outlook, de preferencia separados para el correo electrónico y las news (recomiendo nPOPuk que es básico, Pegasus mail u otro similar).

Si nuestro equipo no está conectado a una red que use el protocolo netBios nos vamos a inicio, configuración, panel de control, redes y quitamos el “cliente para redes Microsoft” con esto ganamos dos cosas: quedamos inmune a los ataques de troyanos netBios que son muy populares entre los aprendices de hackers y además eliminamos la función de “recordar contraseña”. Tendremos que ingresar contraseña cada vez que se requiera pero esto hace muchísimo más seguro a nuestro sistema, vale la pena.

Contra los virus hay dos posibles estrategias: prevención o vigilancia permanente con programas antivirus. El ideal es usar ambas pero si usted tiene bastante experiencia como para reconocer los archivos y acciones riesgosas podrá evitarse el uso de pesados antivirus que ralentizan el sistema y que hay que estar avaluando constantemente. Contra los virus la mejor arma es la educación, leer constantemente los tipos de virus que van saliendo y como se activan así como cuidarse de las acciones sospechosas.

Finalmente contra los tontos que andan sembrando troyanos y escaneando puertas la mejor defensa es un firewall personal que controla absolutamente todo el flujo de información con que se ingresa o se sirve a Internet. Según Dave Gibson el programa Zone Alarm es uno de los mejores firewall personales que existen, yo lo uso y ha resultado liviano, informativo y efectivo.

Y aunque no existe la seguridad absoluta ya con esto hemos convertido nuestro equipo en una caja razonablemente segura, y puede empezar a trabajar más o menos tranquilo.

SEGURIDAD Y CORREO ELECTRONICO

El e-mail es la aplicación más intensivamente usada de Internet, se calcula que cadal año se envían trillones de e-mail (Forum IEEE abril 2001) lo que indica la importancia que ha adquirido esta forma de comunicarse en la última década.

Sin embargo, la mayoría de la gente que usa este medio para comunicarse no se da cuenta de que sus características son fundamentalmente distintas del correo tradicional, tal como lo conocimos antes y se despreocupan de los varios problemas de seguridad asociados al correo electrónico.

El problema más obvio es la falta de confidencialidad: la mayoría de las personas piensan que con el solo hecho de disponer de una contraseña ellos son los únicos que tiene acceso a su casilla y a los mensajes que envían y reciben. Nada más lejos de la verdad pues estas contraseñas no son ninguna barrera para el personal técnico y -en general- para cualquiera que tenga acceso medianamente libre a los servidores y esto incluye a bastante gente. Así, la diferencia entre una carta y un e-mail es la misma que cuando enviamos en sobre cerrado o en una postal sin sobre, donde todo el personal de los correos y los carteros tienen libre acceso para ver el contenido de nuestra comunicación. Según lo expresa un manual de contrainteligencia emitido por las autoridades en USA: “Cuando usted intercambia un e-mail con un colega, puede parecer como si se tratase de una conversación privada. Sin embargo legal y tecnológicamente ustedes están igual de expuestos que los tontos en la vitrina de una tienda. La informacón clasificada no debe ser enviada nunca por via e-mail, mientras que la información sensitiva pero no clasificada debe encriptarse antes del envío siempre que sea prácticamente posibe”

Es importante notar que no solo en la practica no existe tal privacidad, sino que además no existe ninguna protección legal como si ocurre en las cartas o conversaciones telefónicas: leer un e-mail destinado a otro no es un delito como si lo es la violación de correspondencia o la escucha telefónica.

Infidencias accidentales

Otra clase de problemas que surgen con el correo electrónico es la posibilidad de enviar por equivocacion información a un destinatario distinto del original, o bien que el destinatario original disemine inadvertidamente la información a un medio público como puede ser un newsgroup por ejemplo. El hecho de que los programas cliente de correo lo sean también en muchos casos clientes de news (como ocurre en Outlook Express por ejemplo) aumenta el riesgo de estas infidencias accidentales.

Propagación de virus

Otro de los riesgos de seguridad obvios en el e-mail es la propagación de virus y troyanos. Los virus pueden propagarse por los siguientes mecanismos:

Archivos .exe adjuntos: virus y troyanos

Archivos del Office (Word, Excel, Power Point, etc.): virus de macros

Archivos script: virus de macros

Código Html malicioso

Frente a la amenaza de los virus hay dos posibles estrategias: mantener instalados antivirus reconocidos y actualizarlos constantemente o bien seguir prácticas cuidadosas de manejo de los archivos adjuntos. Yo he optado por la segunda alternativa en vista de la incomodidad de actualizar constantemente los antivirus y la baja de rendimiento que todos ellos introducen al trabajar on-line, pero en equipos con información crítica lo más recomendable es una combinación de ambas medidas.

Persistencia de los mensajes

Otro de los problemas de seguridad que presenta el e-mail es la persistencia, esto es, la cantidad de tiempo que quedan almacenados aun después de ser borrados del disco duro, ya sea en archivos temporales o en archivos ocultos dentro del programa cliente de correo. También se da el caso de mensajes que quedan “rebotando” entre muchos servidores, por no haber encontrado disponible la direción de destino, todo esto atenta contra la confidencialidad del mensaje

Posibilidades de intercepción o acceso no autorizado

Además de la posibilidad de que nuestro mensaje lo vean aquellos que trabajan en los equipos servidores, existen otras posibles intercepciones no autorizadas, típicamente el acceso por el uso de password débiles: muchs personas usan el correo web con password ridículamente débiles o fáciles de inferir, no es raro por ejemplo que un usuario con la dirección pepe21@yahoo.com use el password pepe21, o bien jose, etc. Existen utilitarios que se consiguen libremente en la red que permiten hacer ataques de diccionario a los email con los que facilmente se pueden romper las claves débiles de 4 o 5 letras.

Otra posibilidad de intercepción es la observación remota de las contraseñas instalando un troyano o puerta trasera en el equipo de la víctima, estos programas se instalan de la misma manera que un virus, ya sea enviándolo por un archivo adjunto de e-mail o bien dentro de otro programa, Los usuarios con conexión conmutada (teléfono normal) no tienen tanta vulnerabilidad pero aquellos que tienen una conexión permanente con una IP fija son especialmente vulnerables.

Remitente falso

Otro problema común de seguridad de los e-mail es que se puede enviar con gran facilidad un mensaje con remitente falso, es decir suplantando a otro usuario, las técnicas mas conocidas y sencillas para esto son usando el programa Telnet que está disponible en cualquier máquina que tenga instalado el Windows y, si bien un usuario experimentado puede probar con facilidad la autenticidad del remitente (chequeando la direccion IP con un servicio de whois) si no hay razones para sospechar de un mail es muy fácil caer en el engaño.

Contramedidas

Varia contramedidas para los problemas de seguridad descritos  ya se han detallado, las resumiremos y agregaremos algunas no mencionadas:

Encriptar con PGP cualquier mail cuyo contenido nos interese mantener confidencial

Chequear cuidadosamente la dirección de destino y las copias antes de enviar u e-mail

No abrir jamás archivos adjuntos de mail cuyo remitente se desconoce o no es de confianza

Usar antivirus

Usar utilidades de borrado de disco duro tales como el PGP cleansweep

Usar claves fuertes, mínimo 8 caracteres que incluyan letras, números, mayúsculas y minúsculas, no usar refranes ni frases célebres (es lo primero que revisa un ataque de diccionario)

Si se tiene una conexión de cable o cualquier otra que asigne una IP fija es imprescindible el uso de un programa cortafuegos (firewall)

Chequear rutinariamente la ruta de los mail recibidos, en caso de dudas, verificar la direccion IP de origen usando el servicio whois disponible en la web 

SEGURIDAD FISICA Y DE INFRAESTRUCTURA

Por seguridad física se entienden los riesgos y la protección de la infraestructura: los equipos de computación, periféricos e instalaciones de apoyo.

Cuando se ocupan PC de bajo costo, la protección de infraestructura se concentra en aquellos componentes que almacenan datos. La pérdida de la información es normanlemte  mucho mas costosa que la perdida de cualquier otro componente tal como pantallas, teclados o impresoras. Por lo mismo donde se deben concentrar los esfuerzos es en proteger los dispositivos de almacenamiento fijos: típicamente los discos duros.

La actual tendencia al uso de discos de muchos gigabytes presenta un gran factor de riesgo para la integridad de la información. Los discos duros pueden ser accidentalmente borrados, formateados, destruidas sus particiones o su estructura de archivos o, lo que es peor, pueden sufrir un daño físico irrecuperable. Lamentablemente a mayor capacidad y velocidad de acceso, mas propensos están los discos duros a sufrir daño físico.

Un disco duro puede fallar por causas eléctricas o mecánicas. un peak de sobretensión producido por un repentino corte o reestablecimiento de la energía eléctrica puede quemar cualquiera de los componentes de los circuitos controladores. Un golpe, inundación, variación de temperatura sobre cierto rango o el simple uso diario puede causar fallas mecánicas que hacen que el disco deje de girar  o que los cabezales de lectura no puedan posicionarse correctamente.

Si la falla ha sido eléctrica (controlador quemado) y si se tiene otro disco idéntico en buen estado se pueden intercambiar los board de controladoras y así recuperar la información (grabándola a un CD por ejemplo). Si la falla ha sido mecánica es muy difícil que se pueda recuperar información.

Contramedidas en fallas de disco duro

Evitar el uso de discos duros de capacidad muy grande a menos que sea absolutamente necesario, es mejor usar dos o más unidades menores destinando una de ellas como “unidad espejo” que guarde una copia exacta y actualizada de la imformación más valiosa

Cuando se deban usar unidades grandes por el volúmen de los datos usar unidades RAID (conjunto redundante de discos económicos) que guarden la información repetida en distintas unidades de disco económico.

Prevenir condiciones extremas de temperatura y riesgo de inundación en las instalaciones.

Contar con una línea de suministro eléctrico estabilizada, sin sobrecarga, con buena tierra y con protectores de peak de sobretensión.

Instalar los equipos en lugares  a salvo de golpes y caídas

El acceso no autorizado

Dentro de los riesgos de infraestructua se encuentra el de acceso no autorizado, que puede provenir de diversas circunstancias:

Personal dentro de la propia organización accediendo a equipos de colegas o a información para la cuan no cuentan con autorización

Personal autorizado que pasa información inadvertidamente

Personal autorizado que saca información maliciosamente

Personal de servicio (aseo, secretaría, etc.)

Personal de servicio técnico

Ladrones o espías enviados expresamente a robar información

Como regla general e ha determinado que la mayor parte de los accesos autorizados proviene desde dentro de la propia organización, ya sea maliciosa o inadvertidamente. Un empleado puede pasar varios años descontento de su trabajo sin que se note o se le de demasiada importancia, estos empleados descontentos son el principal riesgo para la confidencialidad de la información, así como las prácticas descuidadas en el manejo de password y la mantención de información accesible a cualquiera que encienda el equipo. Un computador personal debiese ser tan bien cuidado como la propia billetera y dentro de la organización debe existir una política de responsabilidades efectiva y bien conocida en cuanto al cuidado del acceso a los datos del equipo de cada cual.

Contramedidas para el acceso no autorizado

Responsabilidad efectiva de cada empleado en la confidencialidad de sus contraseñas: revelar una contraseña personal incluso a un colega debe ser considerado falta grave dentro de la politica instituional

Difusión constante sobre los daños que puede acarrear relajar el cumplimiento de las políticas de seguridad

Existen diversos programas de auditoría o surveyors que van registrando las actividades diarias de cada uno de los usuarios, muchos cortafuegos también cumlen de manera más limitada estas funciones, ambos son útiles para evitar que maliciosamente se robe información

Finalmente la medida mas importante contra el robo de información es el uso de volúmenes de disco encriptados con utilitarios tales como el PGP Disk, esto impide los riesgos de filtración del personal de aseo, secretarias o de servicio técnico

CRACKERS Y SEGURIDAD PERSONAL

Mi educación formal fue pre-Internet y me conecté a la red pocos  años con total ignorancia sobre el sistema, entiendo de Internet tan poco como cualquier persona común que ha ido aprendiendo por su cuenta y una de las cosas que me ha intrigado siempre es la vulnerabilidad que tenemos los usuarios corrientes, conectados por línea telefónica, ante un tipo que maliciosamente pretenda husmear o intervenir nuestro equipo de manera remota.

Por lo mismo hace poco tiempo comencé a hacer mis averiguaciones al respecto y aquí trataré de resumir, en palabras simples, lo que he aprendido

¿Puede alguien entrar a mi disco duro cuando estoy conectado?

Esta era mi primera duda y la respuesta es sí, puede hacerlo, aunque no siempre y tampoco es muy fácil que lo logre. Dependiendo de como estemos conectados y los programas que tengamos instalados tendremos más o menos riesgo a que alguien ingrese a nuestro disco en forma maliciosa.

Internet se configura según un modelo de clientes (que principalmente piden información, es decir bajan desde Internet) y servidores (que principalmente entregan información a los clientes). Nuestro equipo en la casa es un cliente que pide información al servidor (el equipo de nuestro ISP). Un equipo que solo tuviera capacidad para pedir información y no darla (digamos, un cliente puro) sería invulnerable a cualquier intervención. Pero nuestros computadores como sabemos también envían datos, por ejemplo cuando mandamos un e-mail, cuando subimos información a nuestra página web e incluso en tareas cotidianas. Con solo conectarse, nuestro equipo está enviando datos al servidor (password y contraseña).

De aquí concluimos que mientras más habilitada esté nuestro equipo para enviar información, más vulnerable es a la intervención de un intruso. Por ejemplo, si tenemos instalado el Personal Web Server de Microsoft, si usamos un programa de chat o el ICQ seremos mucho más vulnerables que si solo usamos Internet para explorar la web y enviar correo electrónico o news.

También son potencialmente riesgosos los programas que permiten controlar nuestro equipo por vía remota como por ejemplo el PC Anywhere, Laplink o Wingate, que para funcionar dejan “puertas abiertas” en el equipo.

Otro factor que tiene el mismo efecto son los programas conocidos como “troyanos” que también dejan, sin que lo sepamos, puertas abiertas para que los intrusos ingresen a nuestro equipo sin ser notados. Los troyanos se instalan de manera similar a los virus (vienen dentro de juegos, programas pirateados, etc.) y, si no los detectamos, cada vez que nos conectamos nuestro equipo queda abierto y avisando a los intrusos que tiene entradas disponibles.

Un problema con que se encuentra el intruso para acceder remotamente a nuestro equipo es como saber si lo tenemos encendido. Lógicamente solo podrá tener acceso a nuestro computador mientras lo tengamos encendido y conectado a Internet, de otro modo no hay caso. Luego las conexiones que no se cortan nunca como el cable modem y similares, facilitan mucho la tarea del atacante, ya que cuenta con que nuestro equipo podrá estar conectado la mayor parte del tiempo. Ante esta dificultad lo que se hace no es atacar una máquina específica sino “barrer” un rango determinado de direcciones IP hasta encontrar alguna que esté activa. Después de eso simplemente comienzan a revisar los puertos a ver si encuentran alguno abierto y disponible para ingresar

IP y Puertos

Para que alguien pueda entrar remotamente a nuestro computador, antes que nada debe conocer nuestra dirección IP, que es el número que nos identifica en Internet.

Las direcciones IP constan de cuatro grupos de tres números cada uno y están organizadas según una jerarquía. Por ejemplo mi dirección IP podría ser algo así como 200.25.566.xx donde los tres primeros grupos de números corresponden a datos de mi ISP y el último número (xxx) es el que me asignan al momento de conectarme. Así, en una conexión mi dirección podría ser 200.25.566.20, en otra 200.25.566.128, etc.

Eso presenta una dificultad a alguien que quiera atacar específicamente a mi equipo ¿como podría saber ese último número?, bueno, si estoy usando ICQ por ejemplo y el atacante me tiene en su lista de contactos, podría obtener mi IP en el momento en que estoy conectado y con ella comenzar a escanear mis puertos a ver si hay alguno abierto. Pero aun si estoy conectado vía cable modem donde mi IP es fija (no cambian los últimos tres números) y así una vez que la conoce, el atacante puede tratar de atacar el equipo cuando quiera.

Hasta ahora hemos hablado de “puertas” y “puertos” pero ¿que son estas realmente?. Bueno el computador tiene puertos físicos (como el puerto serie donde conectamos el mouse y el modem, o el paralelo donde conectamos la impresora) y puertos lógicos que están asociados a servicios que puede dar el computador. Los puertos físicos son unos pocos pero los puertos lógicos son alrededor de 65.000!, claro que son puertos disponibles y solo unos cuantos son ocupados por un equipo.

Podemos pensar en un puerto lógico como una puerta que nos permite o nos impide entrar remotamente a nuestro equipo. Un Scanner es un programa que revisa los puertos más comúnmente usados para ver si están abiertos o cerrados. Si hay alguno abierto, por ahí podríamos entrar remotamente al computador, existen convenciones para asociar servicios a ciertos puertos, por ejemplo, estas son algunas de las asignaciones comunes de puertos:

Puerto/ Servicio/ Utilidad

7 /echo /Lo que teclees se volverá a escribir

9 /discard /dev/null – basura

11 /systat /Informacion sobre los usuarios

13 /Hora y fecha en el host remoto

15 /netstat /Informacion sobre la red

21 /ftp /Transferencia de ficheros

23 /telnet /Acceso al shell

25 /smtp /Correo saliente

37 /time /Hora en el host remoto

39 /rlp /Localización del recurso

43 /whois /Información sobre la red y el host

53 /domain /Nombre del servidor

70 /gopher /Buscador de información (ya anticuado)

79 /finger /Información sobre los usuarios

80 /www /Servidor de Web

110 /pop3 /Correo entrante

119 /nntp /Grupos de noticias (news)

139 /nbsession /Netbios session

443 /shttp /Servidor de Web ‘seguro’

512 /biff /Notificación de correo

513 /rlogin /Login remoto

514 /shell /Comando remoto

515 /spooler

520 /route /Protocolo de información routing

8000 /http /Otro servidor de web.

8080 /proxy

Sin embargo, como dijimos antes estas son solo convenciones, un equipo bien podría tener asignado el puerto 22 para ftp o un “troyano” en el puerto 70, etc. Así, el intruso lo que hace con su programa de scanner es revisar cada uno de estos puertos “usuales” para ver si hay alguno abierto por donde pueda ingresar a nuestra máquina

Que hacer una vez que un intruso ha entrado

Una vez que el intruso ha ingresado por un puerto abierto tiene a su disposición comandos similares a los que tenemos nosotros desde el teclado, es decir podría abrir la puerta de nuestro CD-Rom, ver nuestros directorios, borrar archivos, etc. todo esto si es particularmente estúpido, ya que nos daríamos cuenta de inmediato que hay alguien “jugando” con nuestro equipo y lo apagaríamos.

Si es un poco más vivo simplemente se dedicará a ver silenciosamente nuestra actividad y tratar de ubicar nuestro password sin que nos demos cuenta de manera que el mismo pueda entrar con toda tranquilidad haciéndose pasar por nosotros en una sesión nueva de Internet. Esto le permitiría por ejemplo, monitorear nuestro e-mail sin que nos demos cuenta.

Firewalls (Cortafuegos)

Para protegernos de estos molestos (y potencialmente peligrosos) ataques existen programas llamados firewall (en nuestro caso personal firewalls, para distinguirlos de  los firewall que usan los servidores). En palabras sencilla un firewall simplemente vigila y avisa cuando alguien está escaneando remotamente nuestros puertos y deja pasar o bloquea selectivamente, es decir deja pasar los servicios que nosotros hemos definido como “permitidos” y bloquea todos los demás.

Así, si tenemos un personal web server instalado en nuestro equipo o algún programa de acceso remoto, el firewall dejará pasar toda la información sin riesgo de que se cuele por esa puerta algún intruso no autorizado (que será rechazado). Si transferimos archivos entre dos equipos podemos crear un “tunel” seguro de modo que el firewall deje abierto el puerto solo para dos IP determinadas y rechace toda transferencia a cualquier otro equipo, etc.

Así un firewall personal autoriza o niega acceso según el origen o destino esté o no autorizado por nosotros. Un firewall de buena calidad también puede detectar si hay alguien que remotamente está tratando de encontrar nuestro password  por fuerza bruta (ataques de diccionario por ejemplo) y mandarlo inmediatamente a una lista negra que le niegue el acceso a futuro, etc. Aunque, según me han observado, esta no es una característica común en los firewalls personales al menos.

Ataques a los servidores

Así vemos que nuestro equipo personal, por ser esencialmente un cliente es bastante difícil de atacar y no es mucho el daño que puede hacer un intruso sin que nos demos cuenta. Otra cosa es con los servidores (por ejemplo el de nuestro ISP) que es donde se dirige el mayor esfuerzo de los crackers. Un servidor es especialmente vulnerable ya que su misión es justamente entregar información, así necesita de distintas medidas de seguridad para evitar que esta entrega de información se haga a personas maliciosas o no autorizadas.

Alguien que logre averiguar nuestro password por ejemplo (lo que no es tan difícil como parece) podría monitorear sigilosamente todo nuestro correo electrónico, así como entrar y modificar la información que tengamos almacenada en el servidor como por ejemplo nuestra página web

De hecho, esto es algo que está al alcance de la mayoría del personal técnico en nuestro ISP, por lo que el correo no encriptado a través de Internet es similar a pasar los sobres abiertos al cartero.

Correo Electrónico

Curiosamente los programas cliente de correo electrónico más populares no traen dentro de sus características ningún método de encriptación que permita enviar correo conservando la confidencialidad. Tal vez la posición de muchos gobiernos que ven en la posibilidad de que la gente común pueda enviar mensajes confidenciales un peligro para su seguridad interna (USA es uno de los más conspicuos) es lo que ha retardado la inclusión de esta característica que debería ser común y transparente en todos los programas.

Así, el que no quiera romperse la cabeza aprendiendo a usar encriptadores estará condenado a enviar mensajes abiertos que pueden ser vistos libremente en el servidor del ISP y tal vez en varios más.

Si no estamos dispuestos a que cualquiera lea nuestros mensajes tenemos que encriptarlos o esconderlos de algún modo antes de enviarlos. La opción más usada en estos momentos es el software PGP, el problema con estos programas es que para usarlos tienen que estar instalados tanto en el lado del emisor como el del receptor y hay que tener alguna comprensión del sistema para general las claves, distribuirlas, encriptar y desencriptar mensajes

Una alternativa simple consiste en enviar los mensajes en formato ZIP con password. No es lo más seguro ya que el password va incluido de algún modo dentro del mensaje pero da una protección suficiente contra los intrusos casuales y no técnicos, el password se puede avisar por teléfono o enviar por ICQ a la otra parte, obviamente nunca por el mismo e-mail que queremos mantener como confidencial

¿Qué hacer si me atacan?

Si, por ejemplo, recibes un mailbombing (o sea varios cientos de mail insultantes en tu casilla) o detectas que alguien te está escaneando los puertos seguramente podrás encontrar su dirección IP con facilidad, en el caso de un mail basta con leer el encabezado completo donde muestra toda la ruta. El problema es que no es fácil a partir de la dirección IP identificar al equipo intruso. En http://grc.com/su-reading.htm la excelente página de Dave Gibson hay una caja de texto donde ingresas la dirección IP y te entrega el dominio y bastantes datos acerca de la organización a que pertenece, lo que permite quejarse y, eventualmente, pedir el cierre de la cuenta del intruso. También hay distintos niveles de anonimización que puede usar el atacante, desde los más burdos (cambiar la dirección electrónica en el campo “Reply To”) a otros más sofisticados como usar un servidor anónimo o acceder a través de cualquier servidor vía telnet. En ambos casos es todavía posible tracear la procedencia con la ayuda de los administradores del servidor. sin embargo existen anonimizadores que usan encripción fuerte y en esos casos resulta muchísimo más dificil determinar el origen

NOCIONES DE CRIPTOGRAFIA

La criptografía está de moda. En el mundo de hoy se escucha hablar cada vez más de encriptación, de conexiones seguras y contraseñas. Ya sea en el cajero automático o cuando el explorador nos anuncia que estamos entrando a  una “conexión segura”, cada día  usamos sistemas encriptados sin darnos cuenta. 

Para los profesionales que trabajan en informática se va haciendo indispensable aprender los conceptos detrás de las comunicaciones seguras, la encriptación y todo eso. En éste artículo divulgativo colocaré algo de la teoría y la práctica de los métodos de encriptación más conocidos, sus fortalezas y debilidades.

Algo particularmente atractivo de la criptografía es que nunca será una disciplina más de la ingeniería. Se trata de un arte por definición incierto,  siempre existirá la posibilidad de que  un matemático, un linguista o un simple aficionado a los acertijos rompa los criptosistemas más seguros, se trata de una continua guerra de ingenio entre criptografos que hacen sistemas y criptoanalistas que intentan romperlos.

Para comenzar algunos conceptos de la Teoría de la Información del gran Claude Shannon, mencionados de la manera mas concisa y simple posible.

Cantidad de información

Se considera como información aquello que no es predecible, el ejemplo clásico para ilustrar este concepto es el siguiente: supongamos que tengo una bolsa con 9 bolas negras y una blanca. Sacando una bola quiero predecir el color de la bola siguiente: Si saco una negra esto me dará mínima información, si saco una blanca la información obtenida será máxima, ya que puedo asegurar que la siguiente bola va a ser negra. Desde otro punto de vista, después que saco la bola blanca la información contenida dentro de la bolsa es cero. Hay certeza, sin necesidad de mirar, que todas las demás bolas son negras.

Conocemos más información sobre un hecho mientras mayor sea el número de posibilidades distintas de ocurrencia, por ejemplo si sabemos el número ganador de la lotería conoceremos más información que si sabemos el número que saldrá en la ruleta y mucha más que si conocemos si una moneda saldrá cara o sello. Es decir que la información es una medida de disminución de incertidumbre sobre un proceso. En otras palabras la cantidad de información es cuantificable, mientras más incertidumbre, más información contiene el objeto, mientras menos incertidumbre, más información posee el sujeto que observa.

Pasemos ahora a un ejemplo de criptografía. Supongamos que tenemos un texto plano (sin codificar) y su correspondiente texto codificado por un método que use una clave K para hacer la transformación. si tuviéramos una máquina de capacidad ilimitada que pudiese analizar estadísticamente todas las posibles transformaciones y si repitiéramos el proceso con distintos mensajes cifrados con la misma clave, podríamos encontrar la clave más probable por análisis estadístico. Hay sin embargo ciertas claves que hacen este análisis teóricamente imposible, son las que cumplen la condición del Criptosistema Seguro de Shannon.

Sin embargo estas claves no tienen utilidad práctica ya que deben ser igual o más largas que el propio mensaje lo que las haría vulnerables a su vez al igual que al mensaje original. Conclusión, el Criptosistema Seguro de Shannon no es útil en la práctica y todos los sistemas reales son, al menos en teoría, vulnerables ante un análisis estadístico como el descrito

Redundancia

Supongamos que leemos el siguiente texto

e_  _u_stro ej_mplo a_ter_or

no es difícil deducir que la frase original era “en nuestro ejemplo anterior” simplemente lo hacemos sacando información del contexto, de las letras adyacentes. Todos los lenguajes naturales son redundantes, es decir trasmiten más información que la estrictamente necesaria y esta redundancia puede ser matemáticamente medida y estadísticamente analizada. Esta redundancia es lo que se aprovecha en los programas que comprimen la información como por ejemplo el Winzip, podríamos almacenar, por ejemplo, los trozos de palabras que más se repiten como un solo símbolo de manera similar a como hacen los taquígrafos, etc.

Otro uso de la redundancia son los chequeos de redundancia cíclica (CRC) que permiten chequear si un bloque de información ha sufrido o no cambios durante su transmisión (errores de transmisión por ejemplo)

Los ataques a texto cifrado por fuerza bruta se basan en gran medida en análisis de la redundancia (se sabe que letras o combinaciones son las que más se repiten en un determinado idioma por ejemplo), pero si comprimimos el texto antes de cifrarlo lo hacemos invulnerable a esta clase de análisis

Confusión y difusión

Por definición existe una relación entre el texto plano y el cifrado, esta relación está dada por la clave, la confusión consiste en ocultar esta relación y hacer que sea muy difícil de encontrar. El mecanismo básico de confusión es la sustitución donde un caracter se sustituye por otro, para esto pueden emplearse métodos simples o muy complejos.

La difusión consiste en disminuir la significancía del texto adyacente mediante trasposiciones, esto se logra básicamente cambiando de orden trozos dentro de un texto para que no puedan ser deducidos a partir del contexto.

Números grandes y aritmética modular

Los números grandes son usados en los sistemas de clave pública para hacer difícil que pueda determinarse una clave privada a partir de la publica. Hay una relación matemática conocida entre ambas claves el punto es que es muy difícil de calcular, particularmente en el algoritmo RSA se trata de factorizar un número primo grande, hasta el momento no se conocen medios prácticos para hacerlo dado un número lo suficientemente grande.

Factorizar es un problema inverso a multiplicar, dado un número N se trata de encontrar un conjunto de números primos p1, p2…pn tales que multiplicados den N, no existen en matemáticas algoritmos eficientes para determinar estos factores primos dados ciertos valores de N.

La aritmética modular se usa en las operaciones de cifrado y descifrado por la característica de tener algoritmos perfectamente reversibles, es decir que tienen su correspondiente función inversa lo que es ideal para codificar-decodificar

Números al azar

El azar es, en palabras simples,  lo que no podemos predecir. Nuestra idea intuitiva del azar se relaciona con tirar una moneda al aire o la bolita de la ruleta, debemos comprender sin embargo, que si creemos en un mundo regido por causas y efectos el verdadero azar no existiría en la naturaleza. La moneda al aire o la bolita de la ruleta dado un número suficientemente grande de registros terminan marcando alguna tendencia significativa. Con la llegada de los computadores y su gran capacidad de cálculo se hace más fácil determinar estas tendencias sobre largas series.

¿Que tienen que ver las secuencias al azar con la criptografía?. En los sistemas criptográficos modernos no se usa siempre la misma clave, sino que se genera una clave de sesión, al azar, cada vez que se encripta un mensaje. Es indispensable que esta clave sea realmente impredecible, ya que si alguien externo pudiera dar con la secuencia de generación toda la seguridad del sistema quedaría comprometida.

Es teóricamente  imposible generar una secuencia completamente aleatoria (al azar) por medio de un programa en un computador, a lo más se pueden generar series largas muy dispersas pero llegado cierto punto siempre terminan repitiéndose por la naturaleza determinística de todo algoritmo.

Para solucionar este problema y crear secuencias lo más aleatorias posibles se tiene que disponer de un número inicial (o semilla) que se genere por un proceso genuinamente al azar, a partir del cual se genere el resto de la serie. Puede entonces escribirse un algoritmo que partiendo de esa semilla genere una buena serie seudo-aleatoria y que resulte prácticamente imposible de predecir para quien no conozca la semilla o número inicial.

Para generar esta semilla se ocupa normalmente las posiciones registradas por el movimiento del mouse durante unos segundos, el reloj interno del computador o el “ruido blanco” generado por la tarjeta de sonido; con cualquiera de estos fenómenos se puede crear un número aleatorio que sirve como semilla.

Claves débiles

Como hemos visto un criptosistema produce un texto cifrado a partir de un texto plano, la relación que permite cifrar y descifrar es un tercer texto o número llamado clave. No debe confundirse la clave con el password que da acceso al usuario para generarla, normalmente la clave es generada automáticamente por el sistema y en sistemas de clave pública como PGP es distinta y aleatoria para cada mensaje. El password solo da acceso al usuario para “encender” el proceso.

Algunos criptosistemas tienen, sin embargo, claves débiles, que generan cifrados de muy baja seguridad, o semi-débiles que generan cifrados vulnerables, puede darse el caso extremo que una clave deje el texto plano tal cual y no lo encripte en lo absoluto. Estas claves débiles son, sin embargo, conocidas y existen mecanismos para evitar su uso en caso de que sean generadas

Algoritmos asimétricos o de clave pública

En un algoritmo de clave pública cada parte tiene dos claves, una privada que usa paradesencriptar los mensajes que recibe y también para firmar los que envía y una clave pública, conocida por todos, que permite que los demás encripten los mensajes que le envían, estos mensajes así encriptados solo él pueden ser  descifrados por el destinatario, quien posee la correspondiente clave privada.

Ejemplo: Juan tiene las claves (Cpriv_Juan) (Cpub_Juan) y Pedro tiene las claves(Cpriv_Pedro) (Cpub_Pedro), además Juan tiene (Cpub_Pedro) y Pedro tiene(Cpub_Juan)

Juan le envía un mensaje a Pedro, lo encripta con (Cpub_Pedro) y Pedro lo descifra con(Cpriv_Pedro)

También podría mandarle un mensaje firmado, para ello lo encripta con (Cpub_Pedro) y lo firma con (Cpriv_Juan), Pedro leería la firma con (Cpub_Juan) y podría estar seguro que solo Juan pudo mandar ese mensaje (ninguna otra persona sabría como generar la firma de Juan)

En resumen es el medio ideal para enviarse mensajes encriptados entre dos personas que no se conocen y no tienen forma segura de enviarse una clave secreta común, por eso estos sistemas resultan tan útiles en Internet. Los inventores del concepto de clave pública (o asimetrica) fueron Diffie y Hellman en 1990.

El algoritmo estrella de encriptación asimetrica hoy es el RSA (por sus inventores Rivest, Shamir, Adleman) es a la vez el más sencillo, fácil de implementar y hasta el momento ha soportado todos los ataques conocidos cuando se usan claves lo suficientemente largas (por ejemplo 1024 bits o más)

La mayor vulnerabilidad conocida del algoritmo RSA tiene que ver con el largo de las claves, el propio Shamir presentó en 1999 un método que ponía en peligro al RSA con claves de 512 bits o menos, hoy se considera “muy seguro” al RSA con claves de 1024 bits.

RSA es un cifrador de bloque, es decir crea bloques de longitud fija, si faltan datos para completar un bloque usualmente el faltante se rellena con ceros.

Firmas digitales

La firma digital sirve, como dijimos antes, para autentificar un mensaje, o sea para asegurar que el que lo mandó tenía acceso a la clave privada que firma. La firma digital se genera creando un resumen del mensaje, comprimiéndolo en un bloque pequeño de longitud fija

La particularidad de este resumen (o función Hash) es que resulta único para cada texto plano: no importa que el texto tenga varios miles de bits, basta con cambiar un bit cualquiera para que se genere un resumen distinto. Esta es una propiedad sorprendente pero está matemáticamente demostrado que es posible y, de hecho se usa ampliamente para las firmas digitales.

Esta firma o resumen se encripta con nuestra clave privada y es desencriptado y chequeado por el que tiene nuestra clave pública. Solo nosotros, con nuestra clave privada podemos crear un resumen (o firma digital) que puede ser desencriptado por cualquiera que tenga nuestra clave pública. Así, si un mensaje tiene nuestra “firma digital” el destinatario podrá estar seguro que solo alguien con acceso a mi clave privada (yo) pudo enviarlo. El algoritmo estrella para producir firmas digitales hoy es el SHA, creado por la Agencia de Seguridad Nacional de USA, que se considera seguro y libre de “puertas traseras” (brechas ocultas de seguridad, que, eventualmente,  permitirían a la NSA romper la codificación)

¿No podría falsificarse una firma digital simplemente copiando y pegando el bloque de texto a otro mensaje?. No. Porque la firma contiene información (el “resumen del mensaje” o “hash de una vía”) acerca del texto que está firmando. Si el mensaje es distinto en un solo bit del que fue usado para originar la firma esta será rechazada. Así vemos como la firma digital nos da una seguridad mayor aún que una firma en papel porque garantiza la integridad del contenido, no podemos firmar digitalmente un documento en blanco y después llenarlo, como tampoco podemos “cortar y pegar” una firma digital.

Incluso se puede firmar un texto no encriptado, como en el ejemplo siguiente:

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1

Este es un ejemplo de documento firmado, sin encriptar. cualquier cambio que se le haga con un editor causará un error de verificación al pasar por PGP

—–BEGIN PGP SIGNATURE—–
Version: PGPfreeware 6.0.2i
iQA/AwUBOfiSiynKvl3sv06mEQK5MgCdHJgD8Bh5sIJfSLPEg2HFmLdyen4AoMuv
YqwdJXq892sNh3xJL/pKo+L3
=5pIW
—–END PGP SIGNATURE—–

Cualquiera que tenga mi clave pública y el PGP `puede verificar el bloque anterior, si le cambian aunque sea un espacio, la firma no se verificará correctamente

PGP

Aquí llegamos a la parte práctica. Todos los conceptos vistos anteriormente tienen su expresión práctica en el programa Pretty Good Privacy (Privacidad Bastante Buena) creado por Phill Zimmermann, que es el estándar de facto usado para la encriptación de e-mails, discos duros, comunicaciones de voz y muchas otras aplicaciones.

PGP puede descargarse gratuitamente de http://www.pgpi.com  y sus versiones más populares son la 2.6i (para MS-DOS) y la actual 6.0.2i (para Windows 9x). También existen versiones de PGP para Macintosh, Unix, Linux y para casi cualquier sistema operativo actual medianamente popular.

Desde el punto de vista del usuario PGP tiene un sistema muy cómodo para gestionar las claves (que es lo que más enredos causa en los sistemas de clave pública), almacenándolas en dos archivos: secring.skr (que almacena las claves privadas) y pubring.pkr (que almacena las claves públicas). Podemos pensar en estos dos archivos como “llaveros” donde guardamos nuestras llaves privadas, públicas y las llaves públicas de los demás. Obviamente si se nos pierde secretring.pgp (por ejemplo si se nos borra) no podremos desencriptar ni encriptar ningún mensaje, por lo que es buena idea guardar una copia en un lugar seguro.

También PGP guarda la “semilla” para generar nuestras claves aleatorias en el archivo randseed.bin, ese es otro archivo importante que no debiera quedar expuesto al robo. Si randseed.bin se borra PGP creará otro automáticamente usando el reloj interno del PC, igual es recomendable guardar una copia en un lugar seguro.

PGP tiene además la utilísima función llamada “armadura ASCII” que consiste simplemente en convertir los archivos encriptados de cualquier tipo en ficheros de texto ASCII. Por ejemplo un archivo binario como un programa puede encriptarse y convertirse en texto ASCII que se puede enviar como simple texto por correo electrónico

Una clave de PGP contiene:

la secuencia binaria creada para la sesión específica

la identificación del dueño de la clave (nombre+e-mail)

un número que identifica a la clave

la fecha de expiración

 la versión de PGP con que fue generada

la “huella digital” que es un número hexadecimal como, por ejemplo:         17AF BAAF 2106 4E51 3F03 7E6E 63CB 691D FAEB D5FC

¿Para que sirve la huella digital? supongamos que yo recibo una clave pública de Juan Pérez y no estoy seguro si es realmente la suya o me la envió un impostor que lo suplanta (esto se conoce como el “ataque del hombre de en medio”). Para asegurarme puedo llamar por teléfono a Pérez, por ejemplo, y pedirle que me dicte la huella digital, si coinciden ambas entonces puedo saber que la clave que he recibido es auténtica

Como Funciona el PGP

Curiosamente, recién me doy cuenta que no he hablado de la criptografía de clave privada (o simetrica). Bueno, esa es más sencilla porque se trata de que tanto el emisor como el receptor usan la misma clave para encriptar y desencriptar. Este método tiene varias ventajas respecto de los pares de clave privada/pública, la principal es que se obtiene mayor seguridad con claves mas cortas (de menos bits) y una desventaja básica: que no se puede enviar la misma clave por un medio inseguro como es Internet sin correr el riesgo de que alguien la intercepte y se la apropie, con lo que podría leer todos nuestros mensajes.

PGP es un sistema mixto, pues cada vez que se codifica un mensaje, primero se comprime el texto plano (para evitar la redundancia), luego  se genera una clave de sesión (aleatoria) y con esta clave de sesión se encripta el mensaje. La clave luego se encripta usando la clave publica del destinatario. Este paquete de clave de sesión (encriptada con la clave pública del destinatario), texto (comprimido y encriptado con la clave de sesión) y a veces firma (encriptada con la clave privada de quien envía) se llama ciphertext y es lo que se envía por Internet. El receptor desencripta la clave de sesión con su clave privada y usando esta clave de sesión desencripta el mensaje, se descomprime y queda listo para ser leído.

O sea el mensaje se encripta y desencripta con la misma clave de sesión (método simétrico o de clave privada) pero para enviar las claves de sesión se encriptan con el par de claves pública-privada.

Si usamos PGP 5x o superior, el algoritmo simétrico (el de la clave de sesión) usado por PGP puede ser cualquiera de estos tres:

CAST: clave de 128 bits, rápido, bien diseñado, su desventaja: es relativamente nuevo y no ha sido sometido a ataque durante mucho tiempo. Tiene patentes pendientes pero existe el compromiso de sus creadores de dejar una versión libre en cualquier caso.

Triple-DES: clave de 168 bits, el algoritmo DES, publicado por IBM en los 70s aplicado tres veces lo hace un sistema muy robusto, tal como los otros dos algoritmos no se sabe de nadie que haya logrado romperlo a la fecha. No está protegido por patentes, es el más lento de los tres

IDEA: clave de 128 bits. el algoritmo fue publicado en 1990 y ha soportado toda clase de ataques desde esa fecha, probablemente obtenga patente lo que podría ser un problema para su uso futuro

Por defecto se usa CAST pero podría escogerse cualquiera de los tres con Launch PGP Keys, Edit, Preferences, Advanced

A su vez, según el tamaño de nuestra clave será la clave pública usada para encriptar la clave de sesión

RSA key pair para claves pequeñas, por ej. 768 bits (seguridad débil), esta funciona con PGP 2.xx

DH/DSS key pair para claves grandes, por ej. 1024/2048 bits. El PGP 5.xx y superiores generan por defecto estas claves, pero también aceptan y generan claves RSA  por razones de compatibilidad

Para la firma digital PGP usa el algoritmo SHA que crea la función Hash requerida.

Finalmente podemos preguntarnos ¿que son al fin y al cabo las claves?, en PGP las claves son números enormemente grandes, por ejemplo una clave de 1024 bits es un número binario ¡de 1024 cifras!  o sea su cifra máxima es 2 elevado a 1024 lo que equivale a un número decimal con varios cientos de cifras, solo como ejemplo, se estima que el número de átomos que contiene la Vía Láctea es de 2 elevado a 223, creo que sobran comentarios.

El enredado problema de la confianza

Una de las principales virtudes del PGP (así como de todos los sistemas de clave pública) es que permite establecer un canal de comunicación seguro entre dos personas que no se conocían previamente, que están físicamente distanciados y que no pueden intercambiar una clave “por mano”. O sea puedo establecer una comunicación encriptada con personas que uno solo conoce por e-mail.

Sin embargo sabemos lo fácil que resulta suplantar a alguien con un e-mail falso, esto hace posible el “ataque del hombre de en medio” donde, por ejemplo, juan me envía una falsa clave públñica haciéndose pasar por Pedro y puede leer cómodamente todos mis mail que envío (según creo yo) a Pedro, pues tiene la clave privada correspondiente.

Para evitar este ataque, que es imposible de tratar por medios computacionales se han ideado una complicada serie de validaciones y certificados digitales para asegurarse que las claves son realmente de quienes dicen ser. Así hay distintos niveles de “validez” o “confianza” (Trust) en una clave. Si yo recibo la clave de Pedro por correo electrónico, por ejemplo, y no trae ninguna firma en la que yo tenga “confianza” la clave aparecerá en mi llavero como “no válida” (barra de Trust transparente).

Eso no significa que no funcione sino que solo indica que no hay nadie de confianza que me certifique que esa clave es realmente la de Pedro (en el llavero mostrado en la figura de más abajo la clave de Jorge Figueroa aparece marcada como “no válida”).

Si, por ejemplo yo llamo por teléfono a Pedro y confirmo que la “fingerprint”, el número de identificación y el tamaño  de la clave que tengo coincide con la que él me dicta, entonces tendré confianza en la validez de esa clave y yo mismo la puedo firmar (Keys, Sign) con lo que la clave quedará “validada” con mi firma y alguien que tenga confianza en mí o me conozca personalmente tendrá también confianza en que la clave de Pedro es auténtica. El mecanismo es bastante enredado pero todavía no se inventa un medio mejor de eliminar el riesgo del “hombre de en medio”

¿Es posible que alguien genere un par de claves falsas con mi nombre? claro que si, cualquiera puede crear un par de claves y ponerle el nombre que se le ocurra, también, si tiene los medios y conocimientos suficientes podría replicar cualquiera de los otros atributos de la clave auténtica tales como el identificador o la fingerprint (huella digital).

Si embargo no es posible modificarlos todos a la vez, así al verificar la autenticidad de una clave (chequeandola por ejemplo por teléfono con el dueño) debemos comparar:

* el identificador

* el fingerprint

* el tamaño

Si coinciden estos tres puntos podemos estar seguros que la clave no es falsificada

Debilidades del párrafo secreto

Actualmente, el mejor ataque posible contra PGP consiste en atacar con diccionario buscando el párrafo secreto. En este tipo de ataque un programa toma palabras de un diccionario y las junta de diferentes maneras intentando adivinar el párrafo secreto.

Por esto es fundamental escoger un buen párrafo, muchos de estos programas son muy sofisticados y toman ventaja de los dichos, refranes populares y reglas de la gramática para armar sus frases, las frases de una sola palabra, nombres propios (especialmente si son famosos), frases célebres, etc. son usualmente crackqueables por uno de estos programas.

En http://www.voicenet.com/~markm/pgpcrack.html se puede encontrar más información sobre uno de estos programas que intentan adivinar el párrafo secreto.

Algunas características de un buen párrafo secreto son:

- Evitar el uso de idioma inglés

- Mínimo 12 caracteres

- Incluir letras, números, espacios y signos de puntuación

- Mayúsculas y minúsculas

- Frases que contengan palabras indígenas o poco conocidas

- Evitar significados convencionalmente conocidos (frases o nombres famosos, referencias personales, etc.)

-Evitar a toda costa las referencias personales a uno mismo (nombres propios de familiares, fechas de nacimiento, número de teléfono etc.)

Siempre existirán métodos para obtener párrafos secretos sin recurrir al criptoanálisis. Por ejemplo la “ingeniería social” para averiguar las claves, captar la radiación electromagnética de los computadores (los ataques Tempest), el chantaje o por ultimo la “Criptografía de Goma” que consiste en golpear a alguien con una cachiporra de goma hasta que finalmente nos diga su párrafo secreto ;-).

¿Se ha logrado descifrar un mensaje encriptado con PGP?

Se han roto públicamente dos mensajes encriptados con RSA (el algoritmo usado para encriptar las claves públicas)

Primero la clave RSA-129. Los inventores del RSA publicaron un mensaje encriptado con una clave pública RSA de 129 dígitos (430 bits), y ofrecieron U.S. $100 al primero que lograse desencriptar el mensaje. En 1994, un equipo internacional coordinado por Paul Leyland, Derek Atkins, Arjen Lenstra, y Michael Graff factorizaron con éxito esta clave pública y recobraron el texto plano, que decía:

THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

Ellos encabezaron un enorme esfuerzo voluntario en el cual el trabajo fue distribuido vía e-mail, fax y correo a trabajadores en Internet cada uno de los cuales procesó su parte y devolvió los resultados. Se usaron alrededor de 1600 computadoras, con diverso poder de cálculo, desde maquinas de fax a supercomputadoras Cray. Ellos usaron el mejor algoritmo de factorización conocido a la fecha; desde entonces han aparecido otros mejores pero los resultados son aún instructivos sobre lo que costaría desencriptar un mensaje cifrado con RSA.

Los coordinadores estimaron que se gastó unos ocho meses de tiempo real y uso aproximadamente 5000 MIPS-años de tiempo computacional.

¿Que tiene esto que ver con PGP? la clave RSA-129 es aproximadamente igual de segura que una clave PGP de 426-bit . PGP recomendaba claves de 384-bit keys para un nivel de seguridad “casual”; las versiones modernas ofrecen un mínimo de 512 bits para sus claves. Note que todo este esfuerzo logró descubrir solo una clave, no un método general que permitiera romper otras claves.

Para más información sobre el proyecto RSA-129 project, vea:ftp://ftp.ox.ac.uk/pub/math/rsa129/rsa129.ps.gz 

Un año después, por primera vez una clave real de PGP fue rota. Se trató de una clave de 384-bits que fue crackeada por una entidad anónima llamada “Blacknet”. Un equipo formado por Alec Muffett, Paul Leyland, Arjen Lenstra y Jim Gillogly se las arreglaron para conseguir tal poder de computación (aproximadamente 1300 MIPS) para factorizar la clave en tres meses. Luego se usó para desencriptar algunos mensajes de dominio público que se encontraban encriptados para tal efecto.

Lo más importante de este ataque es que fue realizado en secreto y no se divulgó hasta que se obtuvo la clave desencriptada. La mayoría de los computadores se usaron durante el tiempo libre y la potencia computacional requerida estaba al alcance de una organización grande a media.

Estos ataques han consistido en determinar la clave secreta de alguien a partir de su clave pública, resolviendo el problema de la factorización de grandes números que es clave en el algoritmo RSA que se usa para encriptar las claves de sesión.

PGP práctico: como se usa un keyring

Supongamos qué ya instaló el PGP en su computador y creó exitosamente su par de claves privada y pública (el proceso es bastante intuitivo como para que lo obviemos en esta explicación), por experiencia propia, lo que más me costó entender fue el uso del keyring (llavero) llamado “PGP keys” que queda instalado en el tray del sistema, por ejemplo mi llavero es algo así:

Lo primero en extrañarme fue una cantidad de claves de gente que yo no conozco que aparecían en el llavero, partiendo por la del propio Phillip Zimmermann y de varios empleados de Network Associates la empresa que distribuye el PGP (las borré todas ¿para que tener claves de personas con las que no intercambiare nada encriptado?). En la ayuda del PGP (disculpe Mr. Zimmermann por el pirateo) aparece el significado de los iconos que es lo que se muestra a continuación:

En realidad lo único que me parece relevante aquí es que las claves que tienen una barra con líneas diagonales indican que en el llavero está el par completo de clave pública y privada, las demás son solo claves públicas. Algunas operaciones útiles son Keys, Import (para agregar al llavero una clave pública que esté en texto ASCII por ejemplo), Keys, Add (para agregar una foto a nuestra clave pública), Keys, New key (para crear un nuevo par de claves). En verdad el uso del PGP es bastante intuitivo.

 Si después que generamos un nuevo par de claves no nos aparece la barra con diagonales en el llavero entramos a Keys, Key propierties y le chequeamos el casillero “implicit trust”  como muestra la figura:

Esta clave pública de 2048/1024 bits (con foto incluida) se puede traspasar a un archivo ASCII, con lo que se convierte en:

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: PGPfreeware 6.0.2i
mQGiBDnvt9gRBADbuYXMcdZal3cfOqmaMemMCXnE0UYniXFbAhDxx9Uw5sYqyo14
6s28+kzFwm3k8GAewBw8YuME3+sYDschZ8GnNVDwjE1FffKSpEe+aE8IRQ34CFu0
tdjvMvTRn8coTWvjG7Yu+vcry73ACIdqPI67EYwV/uXY8gQm7eWnfruiSwCg/+WK
EXu7czMqY02b1KMUPD03kSED/1Rj5G6vwRAKorBglTDX+52k2DnNl7Sx2GC7EQQc
fpH2xYctFr2a9fVffjWO9VCqGd6CLxJXKt6oN0b73lFBgZGyZsFLGvaUHfoATf/b
qi7O1Rto3rVf2NhLXdQF//qRRhYbvc4CBCPHBQAKRLRckKfXoD5j4ZzIii0CMCQr
mDnGA/9KwgueEf0105tLnHXXbEsAUitVaZi/kc2jDPPfze0+sIDxSNe27Nrn5JGN
U/ZIEy+pk07oi9ydkTjiJWeih5kUt/gDwfEyp02q6hQ14lnq0M1wUQVNoqJ2q7ic
Gn9C4aJYr/Q6tmPlDkEFOzDtgnJcf6jmrEvHUDIWYQfvmg4QFbQlVG9t4XMgQnJh
ZGFub3ZpYyA8dG9tYnJhZEB3ZWJob3N0LmNsPokASwQQEQIACwUCOe+32AQLAwIB
AAoJECnKvl3sv06maa4AnjpQGrtt8LaeOZkzx4yzqUP9TEXDAJ0UxRSeZlQ5ND36
XtMuq2n6+MbcgrkCDQQ577fZEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlL
OCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N
286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/
RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2O
u1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqV
DNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAggAudvP62rs
7rGRuWSMTiTzEckZMifLCqAv15V6VjLVEjnFRUi/43hCIBKOKkHiGHUVhHfjc22h
wZZIVw+NsMJtdOFfYM8/KT4tYYZy02vRcIfY77dxj/Dz3Ewrf4Dw5ee5S/nBKQvZ
xw6KbMaAdayMaO/sN8eicECwpO2z3ZMLIEuUNed8Cmgm8/AzDbSWicYAfrrWtEki
mQutI1ttNpjgpR89ahKRUXx4S5u5cOQV33i+W1QwyaNmc4zxk6A0LXfhDnVZCUsP
GgZ5MPQ1fhFBJRLjIjmkMMq8Nhp5bp8sHwMs1dFK3wA7deyFoE9UeziLOLb4lBqM
46Vq4lCbQ8bkEYkARgQYEQIABgUCOe+32QAKCRApyr5d7L9OpmtxAKCRI9C3jGLg
mxWqnS9iYJ+HfbjUCQCgk5M7HFZLpG4T/FF+NHfnAFw72JQ=
=wLGv
—–END PGP PUBLIC KEY BLOCK—–

 

El archivo ASCII se puede enviar en el cuerpo de un e mail, el que la recibe la copia al notepad y la importa con keys, Import

Mi otra clave pública es de 768 bits lo que la hace mucho más corta, además es compatible con versiones del PGP para DOS:

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: PGPfreeware 6.0.2i
mQBtAzg78rcAAAEDAKwCJYL7IJZl+dsJ2EvC8Ii/YsVYmjASNjgQK9buKmq2Zms2
T/vTFAoRi6Gw1dtZ1L+pZN1yKd3iYu0hEp0uUzABX59EYjB2Y0kSsoBTG+7yEQ9n
rUwepu3gHyJ2D6S1pQAFEbQlVE9NQVMgQlJBREFOT1ZJQyA8dG9tYnJhZEB3ZWJo
b3N0LmNsPokAdQMFEDg78rrgHyJ2D6S1pQEB14QC/i+7vF7kbmZ4AttQ6s5EoLt4
4cjB/5Viw45iyIBkbsmmww11Oh7srcwvxvHPugIlm/xiEG7kg+EQuxkB0k2bRPbP
Qx2FfM8QRyiMbkv6gnDcuqSE+FfXmMXAnfxtwx6UKA==
=Oopq
—–END PGP PUBLIC KEY BLOCK—–

Cuando encriptamos un mensaje y lo empaquetamos en armadura ASCII queda algo más o menos así:

—–BEGIN PGP MESSAGE—–
Version: PGP 6.0.2i
qANQR1DBwU4DKkRM7vetPh0QCACSDygYk29v6I2kTGimsUk8Yn6O4jiHFfsk2hSa
pNxtnBf34JVt724ZSPg8RiACsbORdPx0CD955ueu760lqKzjhQ54cJs1Z8jQMdT3
8ChnRV3fJOa304X0e9//hPUzDqKCMiL2H00ZxmVhc4C+u0nvXJq2Tnwlsd2nBjUb
yEZmi+sLzlL8KCXrBCFgaY6paJFZQvpnupxGOLAoGqHerElxPFdUIxnHBvPFeInd
0RofQzlnMZPREQ7+O+5wGMlxI0E2lOG8jcFWcg8YCKFv9XIIyanxVJ2nLL40y7qD
5WJdt2w8SOMAaJ/pjgdTT6eiswDYqx9J5z4+TeTVAt0jMUs/CACUcrK4g0zCNPCU
tj8ydfq9EvlpI0rSztoAtxGyCYCNnoLiaVdugClseC++IyefIHpKxs4PH0xWBGPV
P1OgXp7thGRlzxuNYKog1M6LyNDrdllr/uzVWpuEmIRRExEtl8MKf2Sx77fXxO+G
NyhnsB27RYk1Z6N+6814Vu4DCj43QMGGowmzORu43t4RpcAjcnLjH0/qTxa9DugV
jnu9Mw2bbPi2Zy6lAodZjAzg1rfBPFhoacPL73XSJAbF85YJkUR8/tND694XpCZ6
646G8WbcKha2PwGkz0OsGxEEis8fwBBKjePofwOk46O3Dngl+cgfdSETyCcDBcYM
VmP+IzVzycJyoGGLtjOCk9RETvkV1jbz79kH/ND+EWtlrpv0Sz2UP0J1cXihBoso
xhEpDqHEgR1O6KaDMsPXwR075WqAbqhwgHGIjjcc7C52wKWigo/R8Cx/+f1RF9K2
YzbcWqKapO5vVehnHwWYQpj7/fec+Gcuw1eS+FacAaxrLwboQYcLLVIVQmt9ornf
Ra1fdcr9XMo1SSQherkIj4C1XRYD2pZj3YWUVO8t7TL8EvZXyLwXFBucI1xDfAtg
Y2iAA8R+Ll7cBkyPI3DdA1OIHUa1cKs67LCd+G0LzSzvl2A1nr80FK6VuCD8Uqng
QCDUaTqoiaqRTAgtdED3DrtqhFRz6m+wu+xq4EJdxwYAS11d79ViIzZx8KhEQUJo
HNEuOiaLMN2Uula7fYgBa9zpoZgf/BYDJPa6hP7yzRgZRXxJqfZg4jM068RnaWnt
Q/VnJQyBJNthb59MjLBukPkdwjSYojlPBkugoy6EpYboQZlz/jdpDfmCH1FQhPRp
cxqDQvf8zRMTrqdhAMrzR2gwyugF7T6mU6IzWWRDP1h1j+Tw/ZCWuwpQ7zZtIYgN
IDo7i9x9WarGcq2C4nDdm1wzqdW3R0mBxyy3hINeUxvlepg1sy0L4LjWBRHZBp1b
FEq+nawmNr+KT4OC78fwNyuaauQQUCC0N0tPKk8+mEyCa8eY2SpDeLMm4oYjmlNq
pqJKtsD3T98Qzowc31FLoAWFjAVoLKjlR+ljkghlTibf4R6BcLgmp+hfhRdnf/xb
Gc77dknjGv6Xg8is9qSc6jNq8nt4WpFwnmUrrduUfiZBK2guTK/qNPHDQ5fFu7H+
PxWPL49gN24fgAiXReoCggdJFBEkfJPmYRCkzRF1PYhfjlOYM1bAVmjfEPBmrqRF
Rn1MWT9dBeCt6jrsaKIxVQspPB6uXQKuI1xBX48CrLvHEPl02Q72ZqXxRasXV70Y
h+UnggO6Ha/S6WtU/dDU8psCm+LMSETG/OEW4vHJ0BygUtvkJ0X+jxwEMNgZwAKF
tearJEg0FcCRYd7782Gst57+RxxVBEf0V9w4U5dP4n5EOUDy5NQR2R0nE6nL7QPq
4AJI9iEZmFyBM/8=
=JOYJ
—–END PGP MESSAGE—–

La ventaja de tenerlo es ASCII es que puede copiarse, cortar, pegar en el notepad, inclusive podríamos copiar el texto escribiéndolo letra a letra o leerlo con un OCR y, por supuesto enviarlo en el cuerpo normal de un e-mail

PGP para DOS y para Windows

Las dos versiones más populares del PGP  son la 2.6i para MS/DOS y las versiones 5x a 5x para Windows. La versión para DOS consiste únicamente en un pequeño programa .exe y funciona con argumentos de línea de comandos, por ejemplo con instrucciones tales como:

pgp -e <archivo_a_encriptar> <identificador_clave_destino>

Un listado completo de comandos para PGP 2.6i puede verse en Conceptos básicos sobre el PGP. La ventaja de esta versión es que resulta muy fácil hacer funcionar al PGP desde dentro de otro programa, ya que pueden enviarse los comandos por una función tipo shell o algo por el estilo.

La desventaja del PGP 2.6xi es que solo trabaja con claves cortas y algoritmos actualmente considerados débiles, a pesar de ello para ambientes donde no abunden los code-breakers esta es una versión todavía bastante segura, siempre y cuando se use correctamente.

El PGP 5xi – 6xi para Windows no trabaja con línea de comandos así es que si queremos usar sus funciones desde dentro de otro programa tendremos que usar DLLs especiales como las PGPDLLS.ZIP que se encuentran en mi Sitio de Descargas

Usando PGP con criptografía convencional

Algo que me intrigó por un tiempo fue la opción del PGP de usar “criptografía convencional”, es decir usando la misma clave a ambos lados para encriptar y desencriptar el mensaje. ¿Cual era la idea de usar tal opción?

En pocas palabras si conocemos a la persona con que vamos a intercambiar mensajes y tenemos acceso personal para ponernos de acuerdo en un párrafo secreto (hablando personalmente, sin transmitir ese párrafo por ningún medio), el cifrado convencional es, lejos, mucho más seguro que la transmisión  usando la clave pública. esto elimina las debilidades del RSA y la posibilidad de averiguar la clave privada por algún (improbable) algoritmo desconocido que permita factorizar grandes números.

El uso más seguro del PGP sería entonces poniéndose personalmente de acuerdo con la otra parte en un párrafo secreto común, usando criptografía convencional y firmando el mensaje con nuestra clave privada

La criptografía moderna no se basa en secretos

En la época de la criptografía clásica la seguridad se basaba en mantener el algoritmo o el dispositivo encriptador bajo el más estricto secreto. Con el tiempo esto demostró ser una muy mala política, a Alemania por ejemplo la creencia de que su máquina encriptadora “Enigma” no era conocida le dio un falso sentido de seguridad que permitió a los aliados conocer sus comunicaciones en clave desde el principio de la guerra.

Otro ejemplo de antología es la “clonación” de los teléfonos celulares; a las 48 horas de descubrirse el algoritmo “secreto” empleado por los GSM,  lo que obligó la migración a la tecnología a PCS a escala mundial

Los secretos son difíciles de guardar y cuando hay muchas personas involucradas, guardar un secreto es tarea casi imposible. La criptografía moderna (es decir la de la época de los computadores) usa algoritmos conocidos por todos, los algoritmos se difunden a toda la comunidad interesada en el tema de manera que puedan ser sometidos públicamente a toda clase de ataques, ahora la situación se ha invertido y para el que logra romper un sistema le resulta muy difícil mantenerlo en secreto.

Por ejemplo tal como vimos en las secciones anteriores el algoritmo usado por PGP es conocido por todos, y no solo eso, el propio código fuente del programa está disponible para quien se interese en analizarlo, puede bajarse de Internet libre y gratuítamente. ¿Como puede ser el PGP un sistema tan seguro si cualquiera conoce su funcionamiento?

La respuesta está en  el nuevo enfoque introducido a la criptografía desde la aparición de los computadores: la seguridad ya no se basa en el algoritmo mismo sino en encontrar funciones matemáticas irreversibles, que no tengan solución conocida como es el caso de la factorización de grandes números. Los nuevos métodos dependen más de la investigación y el avance científico que del conocimiento de alguna clase de “secreto”

Criptografía no es igual a seguridad

Este es un punto muy importante de entender, la criptografía es un subconjunto de algo mucho mayor; la seguridad informática,  Tener instalado el PGP no soluciona problemas de seguridad en las estaciones de trabajo.

Cualquiera que tenga libre acceso a nuestro PC donde están los archivos secring.skr y pubring.pkr podría, por dar solo un ejemplo, sacarles copia, instalarlos en su propio PC y usando un poco de “ingeniería social” averiguar nuestro párrafo con lo que nuestro (supuestamente) perfecto canal confidencial, ya no valdría nada. PGP protege nuestra confiabilidad mientras los mensajes encriptados viajan por Internet, ni antes ni después por lo que no debemos confiar ni menos descuidar el acceso de extraños o potenciales atacantes a nuestros PC.

PGP, tal como cualquier otro esquema criptográfico, parte del supuesto de que la integridad física de la información en el equipo está asegurada, que nadie tendrá acceso al disco donde se guardan los keyrings,, el randseed, que nadie podrá copiar o apropiarse de algún modo de estos archivos (por ejemplo si el equipo está conectado en red, si se tiene acceso a archivos swap, si se tiene equipamiento para captar e interpretar la radiación electromagnética emitida por el computador, etc.)

Entre las medidas de seguridad informática posibles estaría la creación de una partición encriptada del propio disco duro usando (como no) PGP Disk.

PGP Disk

Un problema de seguridad clásico de Windows 95, 98 y ME es que no tienen forma de restringir el acceso a los directorios. Existen muchas utilidades como Magic Folders, Candado etc. que permiten ocultar carpetas pero la verdad es que ninguna de estas resulta muy satisfactoria ni menos segura en términos de encriptación, de hecho para casi todas estas utilidades podemos encontrar programas que permiten crackearlas.

Dentro del paquete freeware PGP 6.xi que se puede bajar de http://www.pgpi.com/ se encuentra la utilidad PGP Disk que permite crear volúmenes encriptados y,  entre las medidas de seguridad informática que protegen al disco de acceso no autorizado, esta es la mejor que conozco.

PGP Disk simplemente encripta un espacio del disco y crea un archivo llamado PGP Disk volume donde podemos guardar nuestros archivos sensibles fuera del alcance de intrusos. El volumen usa un método de encriptación fuerte (de grado militar)  llamado CAST (el mismo algoritmo simétrico que se usa por defecto en el PGP normal). Para “montar” el volumen se debe entrar el párrafo que le hayamos asignado, una vez montado para todos los efectos prácticos el volumen PGP disk se comporta tal como si se tratara de una nueva unidad de disco, con su propia letra, carpetas etc.

Algunas características interesantes son que además del párrafo principal podemos asignar párrafos de acceso secundario, así varias personas pueden tener acceso al volumen usando un párrafo distinto y personal. Sin embargo el poseedor del párrafo maestro podrá administrar, permitir o negar accesos a los párrafos secundarios. Además podemos asignarle claves públicas de PGP a un volumen, de manera que el poseedor de los párrafos de esas claves puedan tener acceso al volumen.

Algunas aplicaciones útiles del PGP Disk pueden ser para respaldar nuestros archivos confidenciales en alguno de los lugares de la web que nos ofrecen ese servicio, para mantener nuestros archivos confidenciales dentro de un ambiente de red, para proteger el acceso no autorizado a nuestro disco duro (o parte de el) etc.

Importante: aunque es prácticamente imposible que alguien que no tenga el párrafo pueda ingresar a un volumen encriptado si podría borrarlo, recuerden que se trata simplemente de un archivo.

Secure Socket Layer (SSL)

El protocolo SSL es el que funciona cuando en el explorador de Internet aparece el mensaje “Esta entrando a una sesión de comunicaciones seguras” o bien aparece un símbolo con un candado cerrado. Se trata simplemente de una codificación trasparente para el usuario que efectúa el browser (Explorer, Netscape, etc.) antes de enviar los datos por Internet, al llegar a su destino también son desencriptados de manera transparente.

Una sesión SSL comienza con una etapa de saludo (handshaking) donde se generan las claves de sesión y luego una de comunicación sonde se envían los datos encriptados. Debido a las restricciones legales en USA los exploradores usan claves de solo 40 bits para sesiones SSL, lo que constituye una notable debilidad en la seguridad de la comunicación. El SSL se usa principalmente para evitar que información como los password por ejemplo, viajen por Internet abiertamente, al alcance de cualquiera que tenga acceso a los servidores.

Esteganografía

La esteganografía o uso de canales subiliminales consiste en esconder información dentro de otra aparentemente inocente, por ejemplo dentro de una imágen de bitmap que represente un paisaje bien podríamos ocultar un texto secreto u otra imagen confidencial por ejemplo.

Una técnica empleada para ocultar la información consiste en cambiar el bit menos significativo en algunos puntos de la imagen , así los puntos cambiarían su valor en solo una unidad lo que resulta indetectable al ojo humano (como los colores se representan por números el color 850 por ejemplo es casi idéntico del 801), los puntos que se cambian se escogen al azar con un generador de números seudo aleatorio, y la semilla de este generador se determina a partir del password. Finalmente antes de diseminar la información en la imagen “portadora” es encriptada lo que aumenta la dificultad de recuperar sin conocer el password.

La limitación es que la imagen portadora debe ser a lo menos 8 veces mayor que la información que deseamos ocultar. Otra limitación obvia es que si cambiamos o editamos la imagen de algún modo perderemos la información que estaba oculta en ella.

El procedimiento mencionado arriba es usado por el programa esteganográfico llamado Winhip.exe que es freeware y puede bajarse de mi Sitio de Descargas

Créditos

Este artículo debe buena parte de su contenido al libro “Criptografía y Seguridad en Computadores” de Manuel José Lucena López. El libro completo, sin ningún tipo de restricciones o cortapisas, puede ser descargado TOTALMENTE GRATIS desde:

http://www.kriptopolis.com/libro.html

También saqué información (y un par de snapshots) de la propia documentación del PGP que viene junto con el programa, además del FAQ sobre PGP escrito por Arnoud Engelfriet Pido disculpas de antemano por haber omitido las comillas donde corresponda.

Follow

Get every new post delivered to your Inbox.