Imprescindible charla en el global TED 2011, merece los 18 minutos que dura, con alusión incluida a Annonymous.
Disfrutadla:
http://www.ted.com/talks/misha_glenny_hire_the_hackers.html
Mostrando entradas con la etiqueta Criptografía. Mostrar todas las entradas
Mostrando entradas con la etiqueta Criptografía. Mostrar todas las entradas
domingo, 30 de diciembre de 2012
lunes, 27 de febrero de 2012
Técnicas de ataque - SQL Injection (Inyección SQL)
Aunque se trata de un tema, bastante antiguo, y que no será facil de reproducir, aunque seguro que quedan sitios, que son vulnerables a este tipo de cosas. SQL Injection es una técnica de ataque a paginas, que intentan colar codigo SQL, dentro de codigo SQL de la aplcación destino, para romper o acceder a información. Con esto se quiere decir, que por ejemplo, si suponemos que una pagina web, tiene en su pagina de login, dos campos, usuario y contraseña, muy habitual, y para buscarlo hace lo siguiente:
SELECT * FROM Users WHERE Username='usuario' AND Password='contraseña'
Si hicieramos que tanto el usuario, como la contraseña valieran 1' OR '1'='1'
La sentencia quedaría de la siguiente manera:
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'
Lo que técnicamente devolvería una lista con todos los usuarios, y podría en algunos casos, concedernos acceso a la página en cuestión. Curioso cuanto menos.
Si queremos ser un poco más destructivos, y conocemos el nombre de una tabla, o podemos intuir el nombre, se puede hacer algo como esto, a través de SQL Injection.
Si por ejemplo, se le da el valor al password de: x'; DROP TABLE users; -- y al usuario, por ejemplo 1 (este valor es indiferente para este caso)
el resutaldo sería, cogiendo la SQL arriba citada, el siguiente:
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='x'; DROP TABLE users; --'
El -- final, es importante, porque se trata de dejar en comentario, el final de la SQL, paa que no falle, la comilla, que nos habran puesto, para parametrizar la String SQL de la contraseñá, en este caso el resultado, es que si la SQL se está ejecutando con permisos de borrado, y la tabla USERS existe, no exisitirá más.
Una vez explicado, como es SQL Injection, haciendo el mal, un par de ideas, para evitarlo, sin que sean muy complicadas de implementar.
Si por ejemplo, en vez de almancenar las contraseñas de los usuarios, lo que se almancena es un HASH de las contraseñas, como pueden ser SHA1 o MD5, entonces, al comparar las contraseñas, lo que se enviará a SQL para comprar no será el texto escrito por el usuario, sino el HASH que se genera, lo que en ningún caso será una SQL Injection.
Por otro lado, otra opción de baja tecnología, para solucionar este problema, quizá mucho menos fiable, pero si mucho más sencilla, es prohibir ciertos caracteres reservados de SQL en los textos, como pueden ser, las comillas simples, el OR, el AND, lo que viene a ser una lista negra de textos prohibidos, para que no ataquen al sistema.
Curiosidad final, si pusieramos este valor a la contraseña,
1; update users set password = 'password'; select *
Esto haría que las contraseñas de todos los usuarios, pasasen a valer "password" lo que tiene gracia, al menos si no le pasa a tu aplicación.
SELECT * FROM Users WHERE Username='usuario' AND Password='contraseña'
Si hicieramos que tanto el usuario, como la contraseña valieran 1' OR '1'='1'
La sentencia quedaría de la siguiente manera:
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'
Lo que técnicamente devolvería una lista con todos los usuarios, y podría en algunos casos, concedernos acceso a la página en cuestión. Curioso cuanto menos.
Si queremos ser un poco más destructivos, y conocemos el nombre de una tabla, o podemos intuir el nombre, se puede hacer algo como esto, a través de SQL Injection.
Si por ejemplo, se le da el valor al password de: x'; DROP TABLE users; -- y al usuario, por ejemplo 1 (este valor es indiferente para este caso)
el resutaldo sería, cogiendo la SQL arriba citada, el siguiente:
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='x'; DROP TABLE users; --'
El -- final, es importante, porque se trata de dejar en comentario, el final de la SQL, paa que no falle, la comilla, que nos habran puesto, para parametrizar la String SQL de la contraseñá, en este caso el resultado, es que si la SQL se está ejecutando con permisos de borrado, y la tabla USERS existe, no exisitirá más.
Una vez explicado, como es SQL Injection, haciendo el mal, un par de ideas, para evitarlo, sin que sean muy complicadas de implementar.
Si por ejemplo, en vez de almancenar las contraseñas de los usuarios, lo que se almancena es un HASH de las contraseñas, como pueden ser SHA1 o MD5, entonces, al comparar las contraseñas, lo que se enviará a SQL para comprar no será el texto escrito por el usuario, sino el HASH que se genera, lo que en ningún caso será una SQL Injection.
Por otro lado, otra opción de baja tecnología, para solucionar este problema, quizá mucho menos fiable, pero si mucho más sencilla, es prohibir ciertos caracteres reservados de SQL en los textos, como pueden ser, las comillas simples, el OR, el AND, lo que viene a ser una lista negra de textos prohibidos, para que no ataquen al sistema.
Curiosidad final, si pusieramos este valor a la contraseña,
1; update users set password = 'password'; select *
Esto haría que las contraseñas de todos los usuarios, pasasen a valer "password" lo que tiene gracia, al menos si no le pasa a tu aplicación.
Etiquetas:
Ataques,
Criptografía,
Databases,
General,
Informatica,
Java,
Languages,
Programación,
Programming,
Seguridad,
SQL,
SQL Injection,
Tecnologia,
User (computing)
martes, 13 de septiembre de 2011
Contraten a los hackers (por favor)
Imprescindible charla en el global TED 2011, merece los 18 minutos que dura, con alusión incluida a Annonymous.
Disfrutadla:
http://www.ted.com/talks/misha_glenny_hire_the_hackers.html
Disfrutadla:
http://www.ted.com/talks/misha_glenny_hire_the_hackers.html
domingo, 19 de diciembre de 2010
HTTPS Everywhere
Plugin de Firefox para navegar via Https en todo momento (siempre que se posible), esto no asegura que el tráfico este siempre tunelizado, pero si asegura que siempre que pueda estarlo lo esté, e incluso en páginas donde normalmente no se navega con este protocolo seguro, se haga siempre y cuando esté disponible.
Nunca está de más, navegar bajo un protocolo cifrado, todo es mejor con Bluetooth y todo es mejor cifrado, :)
Más info en Electronic FrontierFoundation
descarga el plugin
Etiquetas:
Actualidad,
Browsers,
Criptografía,
Electronic FrontierFoundation,
firefox,
firefox Plugin,
General,
Informatica,
Mozilla,
Mozilla Firefox,
Plugin,
Seguridad,
Software Libre,
Tecnologia,
WWW
miércoles, 20 de octubre de 2010
Criptosistema I
Ultra sencillo sistema de cifrado implementado en Java.
Consta de dos clases, una para traducir Strings y otra que hace de main, aunque sea de clave privada o técnicamente un algoritmo de sustitución de lo más básico, iré ampliando su funcionalidad con el tiempo:
public class Translator {
String abc =
"abcdefghijklmnñopqrstuvwxyz ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
String clave = "lmXYZnfJpqraNñoijTyGzAhFHKU!VBvwxSkDÑOcELMsbtuCegWIPQRd";
public String traducir(String entrada){
String result = "";
for (int i = 0; i < entrada.length(); i++){
if (abc.indexOf(entrada.charAt(i)) != -1){
char temp = clave.charAt(abc.indexOf(entrada.charAt(i)));
System.out.println("***Traductor --> Entra: " + entrada.charAt(i) + "-->" + temp);
result += temp;
}
}
return result;
}
}
public class MainFrame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Translator tr = new Translator();
String unaFrase = "Una Palabra";
String trad = tr.traducir(unaFrase);
System.out.println("MAIN --> " + trad);
}
}
viernes, 26 de marzo de 2010
Criptografía Básica IV (0-day o 0day)
Vale, para los no duchos en la materia, voy a meterme con una cosa, que a los estamos al día de las noticias de seguridad en la red, suele aparecer de forma casi constante. Vale explicar que es un 0-day.
Esto es una situación que aunque parezca increible, pasa muy a menudo, y es la circustancia en la que una aplicación que lleva menos de 24 horas en el mercado sea crackeada. Es decir, que lo último de lo último se rompa de forma muy rápida, de ahí esos titulares que podemos leer a veces, de IE 8 soluciona un 0-day de hace 4 meses, es decir, que llevan 4 meses con una vulnerabilidad sin corregir, lo que cuanto menos es curioso, y bueno, no voy a dar palos a los de siempre, que firefox acaba de corregir con la 3.6.2 un 0-day de hace un mes, asi que ya sabeis, si usais Firefox y os ha salido el mensajito de actualizar, estais tardando!
Esto es una situación que aunque parezca increible, pasa muy a menudo, y es la circustancia en la que una aplicación que lleva menos de 24 horas en el mercado sea crackeada. Es decir, que lo último de lo último se rompa de forma muy rápida, de ahí esos titulares que podemos leer a veces, de IE 8 soluciona un 0-day de hace 4 meses, es decir, que llevan 4 meses con una vulnerabilidad sin corregir, lo que cuanto menos es curioso, y bueno, no voy a dar palos a los de siempre, que firefox acaba de corregir con la 3.6.2 un 0-day de hace un mes, asi que ya sabeis, si usais Firefox y os ha salido el mensajito de actualizar, estais tardando!
jueves, 4 de marzo de 2010
Troyanos bancarios INTECO
Articulo de INTECO (Instituto Nacional de Tecnologías de la Comunicación) sobre el fraude bancario y el robo de contraseñas de cuentas bancarias electrónicas, interesante, actualizado y bueno para estar informado del tema. Explicado con un lenguaje sencillo y accesible sin necesidad de entender todo lo técnico que se esconde detras de estos fraudes.que_son_y_como_funcionan_los_troyanos_bancarios en formato PDF.
Etiquetas:
Actualidad,
Criptografía,
fraude bancario,
General,
Informatica,
INTECO,
phising,
Seguridad,
seguridad de la información,
Tecnologia,
troyanos
miércoles, 3 de marzo de 2010
Mariposa Botnet
Mariposa botnet, es la mayor red de ordenadores zombies (ordenadores controlados de forma remota) que ha caido en la historia de la seguridad informática, para los no iniciados, explicaré que es esto, un montón de ordenadores, en este caso 13 millones, no me he equivocado, son unos 13 millones de ordenadores, que han sido infectados de alguna manera ( programas troyanos normalmente), por una red de robo de datos, que los controlan de forma remota, esto les daba acceso a la información que habia dentro de ellos, también usaban la red para blanquear dinero, mediante apuestas y juegos por internet.
Su objetivo era conseguir dinero, aunque por comentar las curiosidad, resulta que los que controlaban la red, no eran expertos en informática ni mucho menos, sino que resulta que habían comprado la red a otros y lo que hacía eran explotar los recursos que les daba la red y vender estas opciones a terceros. Curiosa piramide cuanto menos.
[caption id="attachment_285" align="aligncenter" width="208" caption="mariposa botnet"]
[/caption]
Panda Security está altamente implicada en la solución de este problema, y Luis Corrons (director Técnico de Panda Security, si no estoy mal informado), se encuentra hoy en Madrid para hablar del tema, junto a la guardi civil y el FBI.
El caso ha sido de una repercusión mundial ya que se habla de datos, que han afectado a usuarios de 190 paises y que se trata de la información de unos 800.000 usuarios, su éxito frente a las compañias de seguridad ha estado en la velocidad a la que han cambiado el código de sus aplicaciones de malware, ya que a veces, en 48 horas habían modificado el código y por lo tanto ya no podían ser detectados por las actualizaciones que hacían las empresas.
Su objetivo era conseguir dinero, aunque por comentar las curiosidad, resulta que los que controlaban la red, no eran expertos en informática ni mucho menos, sino que resulta que habían comprado la red a otros y lo que hacía eran explotar los recursos que les daba la red y vender estas opciones a terceros. Curiosa piramide cuanto menos.
[caption id="attachment_285" align="aligncenter" width="208" caption="mariposa botnet"]
Panda Security está altamente implicada en la solución de este problema, y Luis Corrons (director Técnico de Panda Security, si no estoy mal informado), se encuentra hoy en Madrid para hablar del tema, junto a la guardi civil y el FBI.
El caso ha sido de una repercusión mundial ya que se habla de datos, que han afectado a usuarios de 190 paises y que se trata de la información de unos 800.000 usuarios, su éxito frente a las compañias de seguridad ha estado en la velocidad a la que han cambiado el código de sus aplicaciones de malware, ya que a veces, en 48 horas habían modificado el código y por lo tanto ya no podían ser detectados por las actualizaciones que hacían las empresas.
lunes, 1 de marzo de 2010
7 programas (más) de sofware libre para uso diario
siguiendo la anterior y existosa entrada
Seguimos con otros 7 programas de software libre que podemos usar a diario.
aMSN: Comunicación en tiempo real, con cuentas de hotmail, yahoo, gmail... vamos un programa de mensajeria instantanea.
Thunderbird: La mejor forma de no usar outlook, nuca más, si lo pruebas, te lo quedas para siempre.
ClamWin: Antivirus, puede que no sea lo mejor del mercado, pero es abierto, y eso le da un plus.
BitTorrent: Con lo de moda que está hablar del P2P, con un poco de suerte desligamos la mula, como único programa mundial de P2P. ;)
TrueCrypt: Realmente nadie podía esperar, que uno de criptografía no fuera a caer, en este listado, cifra PenDrives, discos duros, carpetas, lo que quieras. Es una gran herramienta, para los que nos gusta la seguridad.
PDFCreator: sirve para crear una impresora virtual, que imprime, lo que sea en formato PDF, muy util, que digo realemnte util, además aunque suene a chino, es facilísmo de utilizar.
musikCube: Reproductor de música, y control de bibliotecas tipo iTunes.
Seguimos con otros 7 programas de software libre que podemos usar a diario.
aMSN: Comunicación en tiempo real, con cuentas de hotmail, yahoo, gmail... vamos un programa de mensajeria instantanea.
Thunderbird: La mejor forma de no usar outlook, nuca más, si lo pruebas, te lo quedas para siempre.
ClamWin: Antivirus, puede que no sea lo mejor del mercado, pero es abierto, y eso le da un plus.
BitTorrent: Con lo de moda que está hablar del P2P, con un poco de suerte desligamos la mula, como único programa mundial de P2P. ;)
TrueCrypt: Realmente nadie podía esperar, que uno de criptografía no fuera a caer, en este listado, cifra PenDrives, discos duros, carpetas, lo que quieras. Es una gran herramienta, para los que nos gusta la seguridad.
PDFCreator: sirve para crear una impresora virtual, que imprime, lo que sea en formato PDF, muy util, que digo realemnte util, además aunque suene a chino, es facilísmo de utilizar.
musikCube: Reproductor de música, y control de bibliotecas tipo iTunes.
Etiquetas:
aMSN,
antivirus,
Bittorrent,
ClamWin,
Criptografía,
Informatica,
musikCube,
open source,
PDFCreator,
Seguridad,
Software,
Software Libre,
Tecnologia,
Thunderbird,
trueCrypt
miércoles, 24 de febrero de 2010
Criptografía básica III (atacando claves)
Superadas las explicaciones de los sistemas criptográficos, la aritmética modular finita y los sistemas simétricos(clave privada) y asimétricos (clave pública), voy a lanzarme a explicar los tipos de ataques que se pueden realizar a sistema de seguridad.
COn tipos de atacas me refiero a formas de atacar una clave, o de conseguir una clave, no voy a guiar en la metodología, sino que voy a ir a lo que es la teoría de los ataques, es decir como se realizan, pero no voy a ejemplarizar un ataque, no porque me parezca feo o ilegal o malo, sino porque eso lo dejo para otros post donde profundizar en un tipo de ataque concreto.
Aqui van algunos tipos de ataques:
COn tipos de atacas me refiero a formas de atacar una clave, o de conseguir una clave, no voy a guiar en la metodología, sino que voy a ir a lo que es la teoría de los ataques, es decir como se realizan, pero no voy a ejemplarizar un ataque, no porque me parezca feo o ilegal o malo, sino porque eso lo dejo para otros post donde profundizar en un tipo de ataque concreto.
Aqui van algunos tipos de ataques:
- La fuerza bruta: Es el ataque más básico que se puede hacer sobre una clave, además en más lento y posiblemente infructuoso, es mejorable con ciertas técnicas, pero básicamente, consiste en ir porbando hasta que aciertes, esto se realiza, proponiendo un alfabeto (una serie de letras, números y simbolos) que un programa, ira recorriendo de una forma ordeanda, para no saltarse ninguno, y probando a ver si pasan y coinciden, por alguna casualidad con la clave. De seguido algunas mejoras:
- Una posible mejora para estos sistemas, es por ejemplo, utilizar alfabetos limitados, conociendo la cultura del objetivo, es decir, si vas a atacar a un inglés, no usas la ñ en el alfabeto, eso, aunque parezca una tontería puede reducir drasticamente, un número de comprobaciones.
- Otra teoria, es suponer, que es una palabra que tiene sentido, con lo que las limitaciones de pruebas se remiten al diccionario de una lengua, que son muchas menos opciones, que mezclar todas las letras de un alfabeto.
- Se puede combinar este último con una sistema de sustitución de letras y números, por ejemplo las vocales, cambiando A-4 E-3 I-1 O-0 U-7, por ejemplo, de tal forma que se retiran estas vocales y se sustituyn por esos números.
- Además existen una serie de claves habituales, que se pueden probar, ya que somos en el fondo poco originales, poniendo claves, pero para este tipo de ataques, debes conocer a la persona, ya que se trata de usar, fechas y nombres, que son muy habituales en las contraseñas de la gente, si no me crees, piensa en las tuyas.
- Un segundo tipo de ataque, es el de MIM (Man in the Middle) o conocido como ponerse en medio, vamos, una traducción sería, hombre en medio, se trata en este caso de analizar lo que se transmite entre emisor y receptor, para intentar adivinar la clave, es decir, captar la comunicación y con los criptogramas, sacar la clave, est sistema requiere que antes, te cueles en medio, para poder captar las tramas, si se desea se peuden hacer pruebas en casa, con el WiFI de casa, poner un ordenador navegando por WiFi y captar con troo, lo que estan haciendo. Para ello hace falta algunos conocimientos técnicos, pero tarde o temprado hare una prueba y colgare un post, ya lo hice una vez, y fue divertido asaltarme a mi, si al mismo tiempo que bastante estupido.
- Otro ataque habitual es el de Denegación de servicio, DoS (Dennial of service), estos ataques no quieren obtener la clave de un sistema, sino colapsarlo, hace poco en Estados Unidos, los usarios de Iphone se enfadaron por el servicio de red de AT&T y quisieron colapsar su red, arrancadno una aplicacines, que activaban y generaban muhas conexiones de red via 3G de tal forma que intentaron saturar las redes, esto, aunque parezca una tonteria si lo hace uno, puede saturar una red de datos, porque las colisiones entre unos y otros terminales, provocan un fallo en cadena en la red. (Este tema se merece un post aparte, colisiones en red, broadcast y multicast, zonas de difusión y de colisión en redes, lo haré).
- Leakage, este tipo de ataque, es cuando bueno, no tiene porque ser un tipo en si mismo, sino que trata cuando un dato que debería ir a un sitio, va a otro donde no debería, es decir, si mi comunicación con una página Web, debería ir solo a esa página y resulta que también va a otro lugar donde no debería, puede superponerse con el caso de Man In the Middle.
- Como últmo caso para comentar, voy a hablar de la ingeniería social, que pese a que parece el nombre de un libro de autoayuda, es un ataque a los usuarios, directo y sin contemplaciones, es cuando alguien mediante un engaño, nos lleva a entregar información privada, haciendonos creer que es una autoridado entidad a la que debemos entregar esos datos, el típico caso del banco que te manda un mail para que le mandes tus datos, aunque puede complicarse más, llegando a casos donde una llamada telefónica de alguien que se hace pasar por un empleado de una empresa pidiendo que se le abra un puerto para trabajar desde casa.
miércoles, 13 de enero de 2010
Criptografía básica II
En este post me gustaría comentar que es la aritmética modular finita, como un segundo paso dentro de la criptografía básica.la aritmética modular finita, es un concepto matemático para dificultar el descifrado de codigos o criptogramas de sistemas seguros, y funciiona de la siguiente manera, cuando un sistema va a empezar a mandar información se decide una aritmética modular, esto quiere decir que, las operaciones se van a modular bajo esa aritmética, lo que quiere decir, que una vez decidido (en principio un número primo muy alto, para hacer ejemplos es mejor tomar numeros pequeños porque sino es muy dificil de calcular) y basandonos en ese número enorme, calcular los modulos (el resto de la division) de las claves , estas tienen que cumplir una condición, serán inversos multiplicativos bajo ese modulo, es decir que las operaciones opuestas entre las dos claves, generan el mismo dato.
Esto quiere decir que al multiplicar o dividir las claves dentro del mismo modulo, el resultado sera el mismo, de esta manera se puede cifrar y descifrar con las distintas claves en cada lado de la comunicación, generando como resultado siempre el criptograma o el mensaje.
Mas adelante haré un post con ejemplos de aritmética modular finita. Porque creo que es un tema interesante para los que se inician en temas de criptografia. prometo ir poniendo también algunos retos. mas interesantes que el de la secuencia de números que es facilillo.
Esto quiere decir que al multiplicar o dividir las claves dentro del mismo modulo, el resultado sera el mismo, de esta manera se puede cifrar y descifrar con las distintas claves en cada lado de la comunicación, generando como resultado siempre el criptograma o el mensaje.
Mas adelante haré un post con ejemplos de aritmética modular finita. Porque creo que es un tema interesante para los que se inician en temas de criptografia. prometo ir poniendo también algunos retos. mas interesantes que el de la secuencia de números que es facilillo.
martes, 5 de enero de 2010
Reto Criptográfico I
El primer reto, después de la tontería de los números, es muy sencillito:
rqxulpaeyuxpuqlpqepqbqwqbdqee
Sin más asi, se queda. Con un poco de suerte alguien se molesta en resolverlo.
rqxulpaeyuxpuqlpqepqbqwqbdqee
Sin más asi, se queda. Con un poco de suerte alguien se molesta en resolverlo.
Criptografía asimétrica y simétrica
Estos dos conceptos criptogáficos, son un gran sistema diferenciador para casi todos los sistemas. con esto me refiero a que un sistema simétrico es aquel en el que la clave para cifrar y descifrar es la misma, o lo que es lo mismo es un sistema de clave privada, porque si se descubre la clave, el sistema es completamente vulnerable, por lo tanto hay que mantenerla en secreto. Y los sistemas de clave publica, la clave para cifrar es publica, y la de descifrar privada, por lo tanto (eso si las claves son inversos multiplicativos de la base, de tal forma que lo cifrado con la clave publica, puede ser descirado con la privada) de esta manera se genera un entorno de confianza que conoce su propia clave para descifrar sin tener que compartirla.
Hoy en día todos (esto es una generalización, seguro que alguien puede saltar con un sistema moderno de clave privada) los sistemas de seguridad están basados en estandares de clave pública o asimétricos, lo que nos dice que son un punto mas complejos de asaltar, y por lo tanto mejores.
Hoy en día todos (esto es una generalización, seguro que alguien puede saltar con un sistema moderno de clave privada) los sistemas de seguridad están basados en estandares de clave pública o asimétricos, lo que nos dice que son un punto mas complejos de asaltar, y por lo tanto mejores.
jueves, 24 de diciembre de 2009
Cifrado cesar
el cifrado del cesar en un cifrado simétrico. como ya dije esto quiere decir que la clave es privada y por tanto hay que guardarla en secreto. obviamente este cifrado esta completamente en desuso ya que es muy sencillo y simple.
Pero me sirve para el nombrar una nueva forma de calificar a los criptosistemas se trata de la sustitución esto quiere decir que estos sistemas se basan en sustituir unos caracteres por otros de tal forma que el nuevo menaje no tenga sentido.
para presentar los criptosistemas de sustitución el mas sencillo es el cesar. que si el ombre viene de los romanos. pero es otra historia.
vamos al lío. este consiste en sustituir las letras del abecedario entre si. Es decir eligiendo una clave numérica y asignando a cada letra del abecedario un valor. en un principio por su orden.
ej: a-1 b-2 c-3...
una clave=3
entonces aplicamos la clave a cada letra de un mensaje.
ej.
mensaje: hola
m en numeros: 8-15-12-1
clave: 3
criptograma en numero: 11-18-15-4
mensaje cifrado: krod
sencillo. en otro post veremos como hacer un cesar mas seguro. pero ni mucho menos fiable. mediante mensajes con varias claves distintas. agrupaciones. igual incluso unreto con este sistema no estaría mal.
Pero me sirve para el nombrar una nueva forma de calificar a los criptosistemas se trata de la sustitución esto quiere decir que estos sistemas se basan en sustituir unos caracteres por otros de tal forma que el nuevo menaje no tenga sentido.
para presentar los criptosistemas de sustitución el mas sencillo es el cesar. que si el ombre viene de los romanos. pero es otra historia.
vamos al lío. este consiste en sustituir las letras del abecedario entre si. Es decir eligiendo una clave numérica y asignando a cada letra del abecedario un valor. en un principio por su orden.
ej: a-1 b-2 c-3...
una clave=3
entonces aplicamos la clave a cada letra de un mensaje.
ej.
mensaje: hola
m en numeros: 8-15-12-1
clave: 3
criptograma en numero: 11-18-15-4
mensaje cifrado: krod
sencillo. en otro post veremos como hacer un cesar mas seguro. pero ni mucho menos fiable. mediante mensajes con varias claves distintas. agrupaciones. igual incluso unreto con este sistema no estaría mal.
miércoles, 23 de diciembre de 2009
Pequeño problema criptográfico
Quizas es un poco facil este retillo, para descifrar, pero la verdad es que es un tanto original, la siguiente serie de numeros tienen un orden logico, aunque no lo parezca:
5-4-2-9-8-6-7-3-1
El resultado en el proximo post, voy a ponerle una fecha, el 30/12/2009 (igual me da y escribo antes)
Si alguien lo lee, que lo dudo, que se anime a poner un comentario con la posible solución.
Felices fiesta a mi lector, si estoy casi seguro de que es solo uno.
5-4-2-9-8-6-7-3-1
El resultado en el proximo post, voy a ponerle una fecha, el 30/12/2009 (igual me da y escribo antes)
Si alguien lo lee, que lo dudo, que se anime a poner un comentario con la posible solución.
Felices fiesta a mi lector, si estoy casi seguro de que es solo uno.
domingo, 2 de agosto de 2009
Criptosistema El Gamal
Se trata de un sistema de clave pública.
1- Se selecciona un primo p
2- Se selecciona un elemento primitivo a
3- El receptor selecciona un numero secreto Xb = clave privada
4- Con Xb genera su clave pública Yb = (a) Xb mod p
5- Par de claves (Xb, Yb) Clave pública, ojo porque al enviarse las claves libremente deben ser certificadas, mediante una autoridad de certificación.
6- Emisor selecciona K1 donde 0 < K1 < p - 1
calcula K = (Yb)K1 mod p
7- Si un emisor cifra el mensaje M
C1 = (a)K1 mod p
C2 = K * M mod p
y envía (C1, C2)
8- El receptor recibe M (C1, C2)
K = (C1)Xb mod p (Gracias Dexter)
9- Para extraer el mensaje
C2 * (K) -1 mod p
NOTA: la nomenclatura (C1)Yb, significa, C1 Elevado a Yb
(K) -1 es inverso de K, en la aritmetica modular finita p
1- Se selecciona un primo p
2- Se selecciona un elemento primitivo a
3- El receptor selecciona un numero secreto Xb = clave privada
4- Con Xb genera su clave pública Yb = (a) Xb mod p
5- Par de claves (Xb, Yb) Clave pública, ojo porque al enviarse las claves libremente deben ser certificadas, mediante una autoridad de certificación.
6- Emisor selecciona K1 donde 0 < K1 < p - 1
calcula K = (Yb)K1 mod p
7- Si un emisor cifra el mensaje M
C1 = (a)K1 mod p
C2 = K * M mod p
y envía (C1, C2)
8- El receptor recibe M (C1, C2)
K = (C1)Xb mod p (Gracias Dexter)
9- Para extraer el mensaje
C2 * (K) -1 mod p
NOTA: la nomenclatura (C1)Yb, significa, C1 Elevado a Yb
(K) -1 es inverso de K, en la aritmetica modular finita p
jueves, 9 de julio de 2009
Criptografía básica
Voy a comentar primero una cosilla, la verdad es que no paro de ver, incluso entre gente técnica, que se comete un error tonto al traducir la palabra encrypt, como encriptar, y es un error, comprensible, pero un error, seguún la rae la palabra no existe, entiendo el anglicismo y no quiero ponerme pedante, ni nada parecido, pero la forma correcta de decirlo es cifrar (impresiona la cantidad de sitios incluso especializados que usan encriptar, que como suelo decir yo a la gente, eso es meter a gente en una cripta y no es lo que quieres decir...creo)
Comentar lo que en su día me enseñaron como la base para un sistema seguro: Tener, Ser, Estar y Saber, que a simple vista, parecen solo cuatro verbos sin más, pero quieren decir, que para que un acceso sea seguro, de la forma más fiable posible, tiene que cumplir esos cuatro requisitos, es decir, tener algo (una tarjeta de acceso, RFID, banda magnética, pen-drive, PDA...), ser una cosa (huella dactilar, iris, retina, forma de andar, analisis facial...), estar en un sitio concreto (frente a una puerta, un ordenador, en un edifcio...) y saber algo (una clave, en un teclado númerico, una contraseña, una respuesta...)
Diferenciar dos conceptos a menudo encontrados de forma aleatorio en algunos sitios, autentificar, e identificar, son cosas distintas, es diferente que digas quien eres, identificar, me dices tu nombre y tal, que demostrar que eres quien dices ser, firma digital, o conocer, estar, ser o saber algo que solo tu sabes. autentificar (que si es lo mismo que autenticar) vs identifica.
Comentar lo que en su día me enseñaron como la base para un sistema seguro: Tener, Ser, Estar y Saber, que a simple vista, parecen solo cuatro verbos sin más, pero quieren decir, que para que un acceso sea seguro, de la forma más fiable posible, tiene que cumplir esos cuatro requisitos, es decir, tener algo (una tarjeta de acceso, RFID, banda magnética, pen-drive, PDA...), ser una cosa (huella dactilar, iris, retina, forma de andar, analisis facial...), estar en un sitio concreto (frente a una puerta, un ordenador, en un edifcio...) y saber algo (una clave, en un teclado númerico, una contraseña, una respuesta...)
Diferenciar dos conceptos a menudo encontrados de forma aleatorio en algunos sitios, autentificar, e identificar, son cosas distintas, es diferente que digas quien eres, identificar, me dices tu nombre y tal, que demostrar que eres quien dices ser, firma digital, o conocer, estar, ser o saber algo que solo tu sabes. autentificar (que si es lo mismo que autenticar) vs identifica.
miércoles, 8 de julio de 2009
Criptosistema de las mochilas (Merkle-Hellman)
Voy a estudiar de una manera lo más sencilla posible, el sistema de cifrado (que no encriptado por favor) conocido como el de las mochilas o de Merkle-Hellman, primero una curiosidad, el nombre de las mochilas, viene porque se puede utilizar para decidir que meter en una mochila, teniendo en cuenta el peso que podemos llevar dentro de la mochila, y el peso de los objetos que queremos meter dentro, asignadoles a estos unos valores de utilidad, que decidimos, segun su utilidad en el cometido que se va a realizar. (maldita sea, nose si me he liado describiendo esto, espero que sea entendible)
Se trata de un sistema asimétrico, cifra y descifra, con claves distintas, es decir usa una clave privada y otra publica.
Bueno al ajo:
1- Se parte de una clave, o mochila secreta (Vector de valores)
(S1, S2, S3, ... ,Sn) = MSEC
2- Se escoge una aritmetica modular finita, donde p > Sumatorio de los valores de MSEC
3- El receptor, crea la clave o mochila publica, multiplicando mod p cada valor de la mochila secreta.
(aS1, aS2, ..., aSn) = MPUB
la adebe tener un inverso multiplicativo, en la aritmética modular p a* (a)-1 = 1 mod p
4- Un emisor, envia M = (1001 ... 01), y lo mútiplica por su mochila publica:
C = M * MPUB = (S'1 + S'2 + ... + S'n)
5- El receptor descifra con (a)-1; M = C * (a)-1, compara con MSEC y saca M
NOTA: (a)-1 es a elevado a la menos uno.
Se trata de un sistema asimétrico, cifra y descifra, con claves distintas, es decir usa una clave privada y otra publica.
Bueno al ajo:
1- Se parte de una clave, o mochila secreta (Vector de valores)
(S1, S2, S3, ... ,Sn) = MSEC
2- Se escoge una aritmetica modular finita, donde p > Sumatorio de los valores de MSEC
3- El receptor, crea la clave o mochila publica, multiplicando mod p cada valor de la mochila secreta.
(aS1, aS2, ..., aSn) = MPUB
la adebe tener un inverso multiplicativo, en la aritmética modular p a* (a)-1 = 1 mod p
4- Un emisor, envia M = (1001 ... 01), y lo mútiplica por su mochila publica:
C = M * MPUB = (S'1 + S'2 + ... + S'n)
5- El receptor descifra con (a)-1; M = C * (a)-1, compara con MSEC y saca M
NOTA: (a)-1 es a elevado a la menos uno.
Suscribirse a:
Entradas (Atom)