ENCRIPTACION PORQUE ES IMPORTANTE ENCRIPTAR NUESTROS DOCUMENTOS MODOS DE ENCRIPTACION PROGRAMAS PARA INCRIPTAR CRYPTEXT MD 5 INCRIPTAR CONTRASEÑAS CON MD5 COMO PROTEGER CARPETAS WEB MEDIDORES DE SEGURIDAD PARA CONTRASEÑAS EN TU SITIO WEB Y VENTAJAS DE MD5 HECTOR MANUEL MATUS ZAVALA Página 1 PROGRAMAS PARA ENCRIPTACION BCArchive La mejor manera de proteger tus archivos más importantes. Licencia: Freeware · SafeHouse Explorer Bloquea el acceso a distintos ficheros. Licencia: Freeware · P-Encrypt Secure Drive Protege tus archivos mediante unidades virtuales. Licencia: freeware Plataforma(s): Windows Vista, XP y 2000 · PeaZip Comprime y encripta tus archivos. Licencia: freeware Plataforma(s): Windows · Kruptos Lo mejor en seguridad para tus archivos. Licencia: freeware Plataforma(s): Microsoft Windows 2000/XP/2003 · Under Lock and Key Poderoso sistema de seguridad para contraseñas, totalmente gratis Licencia: Freeware Plataforma(s): Win NT, 98, 98 SE, 2000, ME, XP, Vista · My Lockbox Excelente manera de mantener seguros nuestros archivos más privados Licencia: Freeware Plataforma(s): Win NT, 98, 98 SE, 2000, ME, XP, Vista · Toucan Excelente opción para proteger toda tu información, totalmente gratis Licencia: Freeware Plataforma(s): Win 98, 98SE, 2000, ME, XP, Vista · Advanced File Security Basic Excelente soft para proteger tu intimidad y seguridad Licencia: Freeware Plataforma(s): Win NT, 98, 98 SE, 2000, ME, XP, Vista · WinXFiles Excelente programa para mantener tus imagenes a salvo de los demás Licencia: Shareware Plataforma(s): Win NT, 98, 98 SE, 2000, ME, XP, Vista HECTOR MANUEL MATUS ZAVALA Página 2 La incriptación de Datos Como sabemos, en un Sistema de Comunicación de Datos, es de vital importancia asegurar que la Información viaje segura, manteniendo su autenticidad, integridad, confidencialidad y el no repudio de la misma entre otros aspectos. Estas características solo se pueden asegurar utilizando las Técnicas de Firma Digital Encriptada y la Encriptación de Datos. Métodos de encriptación: Para poder Encriptar un dato, se pueden utilizar tres procesos matemáticos diferentes: Los algoritmos HASH, los simétricos y los asimétricos. Algoritmo HASH: Este algoritmo efectúa un cálculo matemático sobre los datos que constituyen el documento y da como resultado un número único llamado MAC. Un mismo documento dará siempre un mismo MAC. Algoritmos Simétricos: Utilizan una clave con la cual se encripta y desencripta el documento. Todo documento encriptado con una clave, deberá desencriptarse, en el proceso inverso, con la misma clave. Es importante destacar que la clave debería viajar con los datos, lo que HECTOR MANUEL MATUS ZAVALA Página 3 hace arriesgada la operación, imposible de utilizar en ambientes donde interactuan varios interlocutores. Algoritmos Asimétricos (RSA): Requieren dos Claves, una Privada (única y personal, solo conocida por su dueño) y la otra llamada Pública, ambas relacionadas por una fórmula matemática compleja imposible de reproducir. El concepto de criptografía de clave pública fue introducido por Whitfield Diffie y Martin Hellman a fin de solucionar la distribución de claves secretas de los sistemas tradicionales, mediante un canal inseguro. El usuario, ingresando su PIN genera la clave Pública y Privada necesarias. La clave Publica podrá ser distribuida sin ningún inconveniente entre todos los interlocutores. La Privada deberá ser celosamente guardada. Cuando se requiera verificar la autenticidad de un documento enviado por una persona se utiliza la Clave Publica porque el utilizó su Clave Privada. HECTOR MANUEL MATUS ZAVALA Página 4 La confidencialidad de la información, específicamente de los usuarios que utilizan Internet es fundamental. La realización de compras electrónicas, el ingreso de una tarjeta de crédito, la publicación de información confidencial de una empresa en Internet para que usuarios habilitados puedan accederla, el compartir información estratégica, el ingreso en sitios web de antecedentes personales, son solamente algunos ejemplos de contenido sensible que debe contar con las medidas de seguridad adecuadas para evitar problemas y no perder la privacidad y confianza. Es importante que aquellos lugares, sucursales, sitios web, correos electrónicos en donde los usuarios deban ingresar información crítica, garanticen esta confidencialidad. En general en los sitios web, de ingreso de información estratégica, tales como bancos, pagos en línea, registro de antecedentes, entre otros, la información es protegida a través de dos protocolos de seguridad: Encriptación de Datos Uso de Claves de Seguridad Con respecto a la encriptación, corresponde a una tecnología que permite la transmisión segura de información, al codificar los datos transmitidos usando una fórmula matemática que "desmenuza" los datos. Sin el decodificador o llave para desencriptar, el contenido enviado luciría como un conjunto de caracteres extraños, sin ningún sentido y lógica de lectura. Esta codificación de la información puede ser efectuada en diferentes niveles de encriptación. Por lo general en los sitios web se utiliza el protocolo “SSL”, con cifrado de 128 bits e intercambio de 1024 bits. Esto quiere decir que si el contenido es interceptado por alguien indebido, no podrá ser decodificado, o más aún la decodificación duraría tanto tiempo en realizarse, que de ser efectiva, la información ya no sería de utilidad. CyberCenter, en su calidad de agencia Internet, asesora a sus clientes en los diferentes casos que se requiera resguardar los datos de usuarios que utilicen algún sitio web que requiera confidencialidad de la información. En primer lugar, se debe identificar las áreas sensibles HECTOR MANUEL MATUS ZAVALA Página 5 del sitio web. Posteriormente, se debe aplicar protocolos de seguridad a dichas secciones. Conforme a lo anterior, se utiliza encriptación de la data a través de SSL, como mecanismo de privacidad. La información de consulta por parte del usuario, se encuentra bajo un área segura, con protocolo de seguridad Secure Socket Layer (SSL) y mecanismos de encriptación apropiados. El protocolo SSL, protege los datos transferidos mediante conexión http, es decir navegación web, utilizando encriptación provista por un Servidor Web de Seguridad. Una llave pública es empleada para encriptar los datos, y una llave privada se utiliza para descifrar o desencriptar la información. CyberCenter ofrece desarrollos que permiten ofrecer las más sofisticadas alternativas de encriptación. Con soluciones rápidas y escalabes. El certificado digital, es el que permite efectuar el proceso de desencriptación, y en general para servidores web, se utiliza lo siguiente: Protocolo a utilizar SSL 3.0, RC4 con cifrado de 128 bits (alta); RSA con intercambio de 1024 bits. Emisor Alguna Autoridad Certificadora adecuada; estas operan como notarías virtuales. Algoritmo de Firma md5RSA Período de Validez Anual HECTOR MANUEL MATUS ZAVALA Página 6 CRYPTEXT AQUÍ PODRAN DESCARGART ESTE PROGRAMA DE CRYPTEXT http://cryptext.softonic.com CRYPTEXT http://rbytes.net/descargar/cryptext-descargar V3.40 INSTALACION 1) Instalar el programa Cryptext Aunque hay muchos programas que sirven para encriptar los documentos el Cryptext es muy sencillo de usar y además gratis. Cryptext es un programa que te permite encriptar ficheros. Su instalación es muy sencilla, funciona en Windows. Hay una versión en Español Utiliza una combinacion de los algoritmos SHA-1 y RC4 para encriptar los ficheros, con 160-bit Con 160-bit mera combinatoria, si el password es suficientemente complejo, se necesitarían todos los ordenadores del mundo durante miles de años para descifrarla, aunque si uno pone como password una palabra tomada de un diccionario, con un par de horas sobraría. Si no tiene instalado el programa Cryptext puede acceder a la página del autor Nick Payne (http://www.pcug.org.au/~njpayne) o más cómodo descargarlo de nuestro servidor: [Pincha aquí para bajarte el Cryptestp 3.40]. HECTOR MANUEL MATUS ZAVALA Página 7 Aceptamos y ya está listo para encriptar y desencriptar 3) Encriptar Vamos a encriptar uno de los ficheros de la figura de la izquierda, por ejemplo el ana.jpg. 2) Introducimos la 1) Para encriptar simplemente situamos contraseña. el cursor sobre el fichero y con el botón derecho del ratón aparece un menú en el que seleccionamos la opción de encriptar el fichero. HECTOR MANUEL MATUS ZAVALA 3) El fichero cambia su icono por uno con una llave amarilla. Página 8 4) Desencriptar 2) Introducimos la 1) Para desencriptar simplemente situamos contraseña. el cursor sobre el fichero y con el botón derecho del ratón aparece un menú en el que seleccionamos la opción de desencriptar el fichero. HECTOR MANUEL MATUS ZAVALA 3) El fichero cambia el icono de la llave amarilla por su icono normal. Página 9 ENCRYPTAR CONTRASEÑAS CON MD5 En criptografía, MD5 (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash plantea una serie de dudas acerca de su uso futuro. Codificación La codificación del MD5 de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y veremos su correspondiente hash de salida: MD5("Esto sí es una prueba de MD5") = e99008846853ff3b725c27315e469fbc Un simple cambio en el mensaje nos da un cambio total en la codificación hash, en este caso cambiamos dos letras, el «sí» por un «no». MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034 Otro ejemplo sería la codificación de un campo vacío: MD5("") = d41d8cd98f00b204e9800998ecf8427e Algoritmo Terminologías y notaciones En este documento "palabra" es una entidad de 32 bits y byte es una entidad de 8 bits. Una secuencia de bytes puede ser interpretada de manera natural como una secuencia de bits, donde cada grupo consecutivo de ocho bits se interpreta HECTOR MANUEL MATUS ZAVALA Página 10 como un byte con el bit más significativo al principio. Similarmente, una secuencia de bytes puede ser interpretada como una secuencia de 32 bits (palabra), donde cada grupo consecutivo de cuatro bytes se interpreta como una palabra en la que el byte menos significativo está al principio. El símbolo "+" significa suma de palabras. X <<< s se interpreta por un desplazamiento a la izquierda 's' posiciones not(x) se entiende como el complemento de x Descripción del algoritmo md5 Empezamos suponiendo que tenemos un mensaje de 'b' bits de entrada, y que nos gustaría encontrar su resumen. Aquí 'b' es un valor arbitrario entero no negativo, pero puede ser cero, no tiene por qué ser múltiplo de ocho, y puede ser muy largo. Imaginemos los bits del mensaje escritos así: m0 m1 ... m{b-1} Para prevenir posibles vulnerabilidades en nuestro servidor, es una medida eficaz encriptar las contraseñas. Si en nuestra página web tenemos un sistema de usuarios y queremos proteger las contraseñas para prevenir posibles vulnerabilidades en nuestro servidor, es una medida eficaz encriptar las contrasñas, de manera que si alguien puede acceder a ellas no pueda ver la contraseña si no su encriptación. Para mejorar este sistema, lo que haremos es usar un algoritmo de encriptación HECTOR MANUEL MATUS ZAVALA Página 11 de un solo sentido, es decir que no se puede desencriptar de ninguna manera, como por ejemplo md5. Para guardar la contraseña encriptada en md5, usaremos la funcion md5() de PHP: <? $contrasena = md5($contrasena); ?> Ya podemos guardar la contraseña en nuestra base de datos o fichero, pero… ¿como haremos para comprovar la contraseña en el inicio de sesión? Muy fácil, como en la base de datos tenemos la contraseña en md5, encriptaremos la contraseña que escribe el visitante de la misma manera que hemos encriptado la contraseñaa del usuario en el momento de su regístro, ahora ya podremos comparar la contraseña enviada con la almacenada en el servidor, si la encriptación coincide es que la contraseña es correcta. Pero si no usamos una transmisión segura (pe: SSL) sigue habiendo un problema, cuando el usuario envía los datos al servidor, la contraseñaa es enviada sin encriptar, y en ese momento puede ser capturada por un tercero. Para evitar esto, podemos encriptar la clave en el ordenador del cliente usando JavaScript, gracias a Javascript MD5, en lugar de encriptarla en el servidor usando PHP. ¿Como proteger carpetas web? Publicado el 10 de November, 2004 En esta oportunidad le voy a explicar de una manera entendible, como proteger una carpeta o las carpetas de nuestra web de una forma fácil. HECTOR MANUEL MATUS ZAVALA Página 12 En esta oportunidad le voy a explicar de una manera entendible, como proteger una carpeta o las carpetas de nuestra web de una forma fácil, primero entendamos que esta nota es para web que estén hospedadas en servidores que permitían modificar los archivos .htaccess y .htpasswd que la mayoría de las veces son los servidores pagos. Bien sabiendo esto empecemos: Lo primero que vamos hacer es crear la carpeta en el servidor que vamos a proteger la llamaremos protegida (o lo que quieran) o si ya la tenemos obviemos este paso. Ahora miramos dentro de esa carpeta que hemos creado y revisamos que no se encuentre un archivo llamado .htaccess (tenemos que revisarlo directo del servidor dado que por vía ftp no aparece) La mayoría de las veces no aparece pero por si a caso, ahora bien creamos en nuestra pc un archivo de texto que llamaremos – htaccess.txt y dentro metemos lo siguiente: AuthUserFile /home/virtual/site0/fst/var/www/html/protegida/.htpa sswd AuthGroupFile /dev/null AuthName Mi Web Carpeta Protegida\" AuthType Basic <Limit GET> require user webmaster </Limit> * Explicación: AuthUserFile = Es la dirección completa de nos da el servidor mas la ubicación de la carpeta que vamos a proteger y el archivos que tendra las claves, cámbienla por la suya. * Explicación: AuthGroupFile = Déjenlo como esta. HECTOR MANUEL MATUS ZAVALA Página 13 * Explicación: AuthName = Es el título que aparecerá en el cuadro que pide login y contraseña. * Explicación: AuthType = Déjenlo como esta. * Explicación: require user = Delande esto escriban los usuarios que van a poder entrar a la carpeta. Ejemplo: require user tony raul hector, ósea que los logines o nicks serian: tony raul hector Ahora creamos una archivo de texto que llamaremos htpasswd.txt que es el que contendra los logines y claves de esta forma por linea: tony:vsfgf1546v5! raul:1f54drt54g21 Ósea (login:clave) creo que se dieron cuenta que la clave es encriptada. Hay algunos generadores de las líneas que deben incluir.. Ahora suben los dos archivos (htaccess.txt y htpasswd.txt ) a la carpeta de su servidor quieran proteger en este caso "/protegida" por medio de ftp pero de forma ASCII y los renombramos así: (htaccess.txt = .htaccess ) (htpasswd.txt = .htpasswd) y listo ya tenemos la carpeta protegida. * Ahora les paso lo prometido un script para encriptar claves que encontré por internet: <? //Script en PHP para encriptar contraseñas y poder usarlas en el archivo .htpasswd: //Comentario añadido por amen: // Tener el cuenta que el formato en un fichero de // password es: // login:pwdencriptado if (!isset($submit)) { ?> <BR>ENCRIPTAR PASSWORD <br><br><FORM METHOD=\"POST\" ACTION=\"encrypt.php\"> <p>Password: <INPUT TYPE=\"TEXT\" NAME=\"password\"></p> HECTOR MANUEL MATUS ZAVALA Página 14 <p><input type=\"submit\" value=\"Encriptar\" name=\"submit\"></p> </FORM> <? } if (isset($submit)) { $password_encr=crypt($password,CRYPT_STD_DES); echo \"<br>ENCRIPTAR PASSWORD\"; echo \"<br><br>Encriptación de <b>$password</b> :\"; echo \"<br>$password_encr\"; ?> <BR><br>Nueva Encriptación: <br><br><FORM METHOD=\"POST\" ACTION=\"encrypt.php\"> <p>Password: <INPUT TYPE=\"TEXT\" NAME=\"password\"></p> <p><input type=\"submit\" value=\"Encriptar\" name=\"submit\"></p> </FORM> <? } ?> Medidores de seguridad para contraseñas en tu sitio web Si tu sitio web tiene la opción para registrarse como miembros, es importante que no pierdas de vista la primera impresión que los usuarios van a percibir desde que llenen el formulario de registro. Para que tus visitantes reconozcan que le das especial importancia a la seguridad del sitio y todos los datos que ellos están a punto de almacenar, es recomendable utilizar un medidor de seguridad en las contraseñas. Incluso si tú te preocupas por la seguridad de la data almacenada en la página web, las contraseñas poco seguras pueden tener serias consecuencias. Es importante conocer algunas reglas básicas para la creación de passwords, que todos deberíamos saber, pero a las que realmente no hacemos caso y podríamos estar poniendo en riesgo nuestra identidad virtual. HECTOR MANUEL MATUS ZAVALA Página 15 Mientras más caracteres, mejor. Usualmente nos conformamos con los 6 u 8 que nos exigen los sitios web, pero si empleáramos entre 13 y 15 podemos dormir más tranquilos. Intercala mayúsculas y minúsculas y tanto letras como números. Es más difícil ser vulnerable si no utilizas palabras comunes en el lenguaje y que puedes encontrar en un diccionario. Utiliza el lenguaje leet y símbolos especiales. Ojo que por símbolos especiales entendemos todos los símbolos, no necesariamente aquellos que están en la parte superior del teclado (#, $, %, &, /). Y sobre todo, no utilices la misma contraseña para todo. A continuación ponemos a tu disposición unos scripts que serán útiles para crear una mejor interfaz de registro. Password Meter: Password Meter nos explica fácilmente cuáles son los defectos que tienen las contraseñas que ingresamos y nos devuelve un porcentaje que indica qué tan segura es. Su algoritmo está basado en una función en lenguaje JavaScript bastante exacto. GeekWisdom: HECTOR MANUEL MATUS ZAVALA Página 16 GeekWisdom nos ofrece un algoritmo JavaScript y nos devuelve un resultado numérico, además de darnos tips para la creación de contraseñas. Yet Another Password Mete: Yet Another Password Meter también nos detalla los aspectos evaluados y nos da un veredicto sobre la vulnerabilidad de la contraseña ingresada. jQuery: jQuery nos ofrece un código simple de entre su librería para diseñar un medidor de seguridad que podemos aplicar a nuestro sitio web. Dave’s Weblog: HECTOR MANUEL MATUS ZAVALA Página 17 Y por último, Dave’s Weblog nos ofrece un tutorial detallado para que podamos crear nuestros propios medidores de seguridad PHP, paso a paso. El uso de estos medidores es útil para demostrar que todo miembro que se registre puede dejar de preocuparse acerca de qué va a pasar con su información, además de ser un proceso bastante sencillo para implementar en cualquier sitio. Muchas veces los usuarios no tienen conocimiento suficiente para crear una contraseña que verdaderamente sea segura en su afán de no olvidarla. Parecería bastante obvio que “123456” deja la información de las personas casi tan vulnerable como si su cuenta estuviera abierta al público, pero contraseñas de este tipo son bastante comunes. Otra opción de seguridad que te recomendamos para tu sitio web y la información de tus usuarios es encriptar contraseñas con md5. ¿Cuál utilizas en tu sitio? ¿Qué otra recomendación incluyes en está lista? http://www.youtube.com/watch?v=pqolyZYm3Ew&feature=fvw http://www.youtube.com/watch?v=fgfJIcPZPdc&feature=related http://www.youtube.com/watch?v=KJX6eDL9zWk http://www.youtube.com/watch?v=xSsQwd-2wEc&feature=related http://www.youtube.com/watch?v=yhBeYLB7OEg&feature=related HECTOR MANUEL MATUS ZAVALA Página 18