Limited Entropy Dot Com Not so random thoughts on security featured by Eloi Sanfèlix

16Jun/086

Llega el fin …

Posted by Eloi Sanfèlix

Habiendo atendido mis dos últimas clases de la carrera, realizando el PFC y con una oferta de trabajo bastante apetecible en mi mano, parece que mi vida como universitario llega a su fin.  Aunque hasta finales de Septiembre no habré acabado realmente.

Han sido 5 años, muchísima gente nueva conocida, muchas horas en clase y estudiando para exámenes, así como un último año de Erasmus en el que he estudiado, trabajado en el PFC, hecho algún viajecito ( por Alemania, Dinamarca y Bélgica, a parte de visitar algunas ciudades de Holanda claro ) y unos cuantos nuevos amigos. Y suficientes fiestas, también 😉

Además este Erasmus ya se acaba, muchos se han ido y muchos otros se van en los próximos días. Yo por mi parte me mudo de ciudad para poder ir casi todos los días a la empresa a currar en el proyecto ya que a partir del 30 no tengo nada que hacer aquí.  Quedarán muchos recuerdos y muchos amigos, eso seguro 🙂

La verdad es que creo que no me puedo quejar.  A parte de habermelo pasado bien durante todo este tiempo (que no solo de estudiar/trabajar vive el hombre), si todo va bien en Octubre volveré para aquí y empezará mi vida laboral seria ( no, lo de trabajar en el Mercadona y esas cosas no cuenta 🙄 ) y se empieza a montar mi vida de forma totalmente independiente.

En fin, cambio de ciclo, espero que a mejor :-).

Filed under: clase, Erasmus, teleco 6 Comments
1Feb/081

Nuevo cuatrimestre, nuevas clases… y proyecto

Posted by Eloi Sanfèlix

El lunes pasado comenzó el segundo cuatrimestre y ya tengo nuevos frentes en los que lidiar en clase.  Este cuatrimestre voy a hacer dos asignaturas y el PFC, con lo cual a finales de julio probablemente habrá concluido mi carrera a la espera de presentar el PFC en Valencia por septiembre.

Las asignaturas que tengo este nuevo cuatrimestre pintan interesantes, aunque parece que tengan una carga matemática importante y que me van a mandar unos cuantos trabajitos semanales para ir haciendo:

  • Cryptography 2: se divide en dos partes, protocolos y sistemas. En la primera parte Berry Schoenmakers nos dará nociones sobre protocolos criptográficos incluyendo pruebas de su seguridad y concluirá con un examen parcial. En la segunda parte, Benne de Weger (el mismo de las colisiones en MD5 ) hablará de criptosistemas: PKI, Single sign-on, SSL, Kerberos, etc. y concluiremos la asignatura con dos papers.
  • Verification of Security Protocols: en esta asignatura aprenderemos a verificar la seguridad de protocolos de comunicación que empleen criptografía, ya sea con métodos manuales o utilizando herramientas como proVerif. Tiene trabajos (70%) y examen final (30%).

En los enlaces se pueden encontrar las notas de clase y/o transparencias, si no ahora conforme vaya avanzando el curso.

Finalmente, ya he empezado el proyecto en la empresa Riscure en temas relacionados con smart cards y side channel analysis aunque de momento no he avanzado demasiado. Ahora tengo dos semanitas de vacaciones para irme de viaje final de carrera con la gente de Valencia, y luego vuelta al trabajo de nuevo.

23Dec/072

Eindhoven: Fin del primer round

Posted by Eloi Sanfèlix

Pues sí, ya llegó la Navidad y con ella acaba la primera etapa de mi estancia en Eindhoven. Han pasado 4 meses desde que nos vinimos (a lo que hay que descontar mi vuelta durante 12 días a mitad septiembre...) y la verdad es que me han pasado volando.

Ahora mismo estoy en casa preparando las cosas para volar mañana hacia Valencia... y llevo unos días absolutamente solo porque la gran mayoría de gente volvió a casa durante la semana y yo por g-piiiiiii-s aquí estoy (quien me mandaría coger el vuelo tan tarde 😳 ).

Resumiendo, en el aspecto académico estoy bastante contento pues he aprendido bastante: linux (con un profesor que ha colaborado durante unos 15 años en el kernel, utilidad mount y otros siempre se aprende algo interesante 😉 ), criptografía, seguridad a nivel hardware (ejemplificada en las smart cards) y algo de web semántica aunque esto último ha sido lo que menos me ha gustado 🙄 .

En cuanto a lo personal, la gente, fiestas, etc. pues no ha estado nada mal. Hemos conocido a bastante gente por aquí, aunque casi siempre acabamos juntándonos los españoles; hemos salido de fiesta, sin pasarse mucho pero tampoco sin descansar demasiado y lo hemos pasado bien en general :-).

Ahora toca estudiar un poco y acabar los trabajos finales para enero, y cuando acabe los exámenes a currar en el PFC con Riscure. Por mi parte, animar a quien se esté pensando irse de Erasmus y no lo tenga claro a que lo haga; es una experiencia que si no tienes ahora posiblemente no vuelvas a tener la oportunidad, y si no te gusta siempre estás a tiempo de echarte atrás y volverte a los pocos meses... aunque seguramente te guste ;-).

And last but not least...

Feliz Navidad a todos!

Filed under: Erasmus 2 Comments
13Sep/076

Varias formas de llamar a una syscall en C

Posted by Eloi Sanfèlix

Como trabajo inicial de la asignatura Linux Kernel & Hackers Hut, después de la primera clase nos mandó hacer un pequeño programa en C que creara un directorio, de tres formas distintas: con la llamada correspondiente de la libc, con la función syscall de libc y saltándose la libc por completo.

Las dos primeras formas son bastante sencillas... vamos a ver el ejemplo de mkdir. En el primer caso, haríamos una simple llamada como ésta:

#include <sys/stat.h>
#include <sys/types.h>

[...]

mkdir(argv[1],0777);

Donde argv[1] es el nombre del directorio y 0777 son los permisos dados en notación octal.

En el segundo caso, simplemente necesitamos saber que la llamada al sistema se llama mkdir y que las constantes con los nombres de las llamadas al sistema tienen la forma SYS_xxxx, con xxxx el nombre de la llamada. Es importante esto, pues yo estaba usando __NR_mkdir tal y como se llama en el kernel 😳 .


#include <sys/syscall.h>
#include <unistd.h>

[...]

syscall(SYS_mkdir,argv[1],0777);

Finlamente, la última es un poco más especial. Necesitamos saber: tipo del valor de retorno, número de parámetros y sus tipos, así como el nombre de la llamada al sistema. Las macros se llaman _syscallX, donde la X va de 1 a 5 según el tipo de parámetros.

Así pues, sabiendo la llamada al sistema que queremos hacemos un man 2 y vemos el prototipo. Con éste, llamamos a la macro _syscallX correspondiente antes de nuestro main, y luego en el main ya podemos usar la syscall como si de cualquier otra función se tratase:


#include <linux/unistd.h>
#include <sys/types.h>
#include <errno.h>

//Dirty hack so it compiles on my x86_64 machine
#ifndef MAX_ERRNO
#define MAX_ERRNO 4095
#endif

_syscall2(int,mkdir,const char *, pathname, mode_t, mode);

int main(int argc, char **argv){
return mkdir(argv[1],0777);
}

En mi caso he tenido que añadir ese define condicional puesto que no compilaba debido a que la constante MAX_ERRNO no estaba definida. Busqué en google y parece ser que es un fallo en la libc para x86_64, al menos en la versión que yo tengo así es.

Las dos últimas formas son interesantes para cuando se añade una llamada al sistema que queremos usar y la libc no nos ofrece todavía un wrapper para ella, con lo que la debemos llamar a mano. Otra opción sería meter un poco de inline assembly, pero teniendo estas opciones me parece que es un poco bestia hacerlo, además de que se vuelve dependiente de la arquitectura, lo cual no es muy bueno... a no ser que necesitemos velocidad o control máximo y así lo podamos ganar, que tampoco sé la diferencia de velocidad entre usar la macro _syscallX y llamar directamente a la syscall desde ensamblador.

Por último, comentar que si la llamada al sistema tiene más de 5 parámetros no se pueden usar las macros, sino que se deben poner los parámetros en la pila y pasando un único parámetro: un puntero al bloque de argumentos en la pila.

Notar también que es interesante conocer ambos métodos, porque dependiendo de la libc que se use puede que se tenga la función syscall() o no, y si no la tenemos deberemos apoyarnos en las macros para hacer las llamadas.

Filed under: Erasmus, GNU/Linux 6 Comments
13Sep/074

Empiezan las clases: get your hands dirty!

Posted by Eloi Sanfèlix

Entre la semana pasada y ésta ya he empezado las clases de todas las asignaturas que tengo este cuatrimestre. La verdad es que la cosa está bastante interesante, pero tiene pinta de que debemos trabajar muuucho en casa porque son pocas horas de clase para muchos créditos. Lo bueno de esto es que te obliga a practicar bastante, a hacer programillas y supongo que aprenderé bastante con ellos: get your hands dirty! 😀

En Web Information Systems no tenemos examen, y cuando acabamos un tema la semana siguiente no hay clase porque nos manda un trabajo corto, y al final se hace un trabajo largo y entre todos ellos se saca la evaluación de la asignatura. Básicamente está orientada a la web semántica: RDF, RDFS, ontologías y esas cosas.

En Criptografía 1 empezamos el viernes con algunos ejemplos de criptografía clásica: César, Vigenère, criptoanálisis de los mismos ( por ejemplo con análisis de frecuencias, buscando repeticiones en el texto cifrado para determinar el tamaño de la clave, usando el método de kasiski... ) y alguna cosilla más. Pero ahora viene lo bueno: secuencias con registros de desplazamiento, cifrado de bloque, teoría de la información de Shannon, compresión y un largo etcétera. Si alguien está interesado, aquí está el libro en pdf y en formato Mathematica NoteBook. Yo lo compré en papel por 25€... la verdad es que es un buen tocho.

En Linux Kernel & Hackers Hut como su nombre indica hablamos de Linux y de hackers. En la parte de Linux parece ser que vamos a ver más o menos los distintos subsistemas del kernel y cómo funciona; programaremos módulos como ejercicio semanal, en teoría en grupos de 1 a 4 personas aunque yo de momento no conozco a nadie así que cabe la posibilidad de que lo haga solo xD. En la parte hackers pues no sé muy bien lo que piensa dar, pero en las notas viejas que tiene hay un repaso a un poco de todo, desde SQL Injection a overflows, shellcoding y tal... aunque en la introducción dijo que tuvo que quitar cosas debido a problemas legales o_0.

Finalmente, en Hardware & Operating System Security vamos a centrarnos bastante en el tema de SmartCards y RFID, programando aplicaciones con JavaCard y según dijo en la primera clase, a tratar de hacer reversing sobre el protocolo usado por las máquinas de café que hay aquí, que usan una SmartCard para el cobro... y quién sabe si sacar café gratis 🙄 .

La verdad es que la cosa pinta interesante... ya iré comentando cosas que me parezcan curiosas por aquí 🙂

1Sep/073

There is no place like 127.0.0.1

Posted by Eloi Sanfèlix

Ayer por la mañana (bueno, para esta gente la tarde porque ya debían haber comido) quedamos con el dueño de nuestra casa para que nos diera las llaves. Tras estar un rato con ellos ( el marido de la dueña y la hermana de la dueña), donde nos explicaron como iban algunas cosillas y estuvimos preguntando sobre algunas cosas que no teníamos del todo claras, nos dejaron las llaves y nos fuimos a comer.

Tras la comida tocó limpieza general. Por lo visto los holandeses no tienen costumbre de limpiar telarañas, y en este país hay por todas partes... nuestra casa no iba a ser menos. Ayer limpiamos todas las telarañas (o todas las que pude ver xD), la cocina y el baño, pasamos la aspiradora a sofas y a la moqueta de las escaleras y la planta de arriba,...

Ahora nos toca seguir un poco con la limpieza, especialmente el suelo del salón y el trastero que tenemos, donde hay una bici de hombre que nos dijo el casero que era para nosotros, pero es un poco grande así que ya veremos si me la quedo o la vendemos o cambiamos.

Tenemos conexión a internet con UPC incluida en el precio, aunque no hay router y de momento voy a tener el macbook compartiendo la conexión con los otros dos portátiles vía wifi cuando haga falta. Y también tenemos algo básico: un solarium que no queremos para nada! A ver si lo podemos bajar al trastero entre todos, porque debe pesar un poco y las escaleras aquí son algo chungas.

Ahora toca seguir arreglando la casa y el lunes a comprar cuatro cosas que nos hacen falta en Ikea 😛

Filed under: Erasmus 3 Comments
28Aug/072

HOWTO Connect your Mac OS X to the TU Eindhoven Wireless Network

Posted by Eloi Sanfèlix

NOTA: Este post está en inglés porque probablemente a quien le pueda interesar no hable español, así que he decidido escribirlo así.

I arrived to Eindhoven last week and, while I was looking for a house, I needed to surf the net in order to get the way to the housing agencies and houses we were going to see. I went to the TU/e and tried to connect to the Internet via their Wireless connection, and I realized I needed a user account, as usual. After a few steps, I've found all the instructions concerning this topic were Windows-only, so I had to find by myself the way to connect using OS X based on this instructions.

After a few tries, today I've found the correct way to authenticat on the network, so I'm documenting it here just in case anyone is in the same situation.

First of all, you need to register your notebook's MAC addresses in the notebook service center, located at de hal building, ground floor. Once your addresses have been registered there ( providing your s-number and your id ), you need to set your hostname to your s-number. This can be done in OS X via Preferences > Share ( or sharing, I'm running the spanish version of OS X ). Then, you can connect to the wired ( Ethernet ) network configuring your interface to use DHCP.

If you don't know where/how to get your MAC addresses, you have two ways: via preferences > Network and selecting there your interfaces, or using the ifconfig command at the bash shell.

For the topic we are covering here, things are a bit different. Once you have done the previous steps, you need to authenticate into the wireless network, which is using the 802.1X security framework and the PEAP protocol. So you need to say OS X how to do this.

First, go to Applications ( cmd+shift+U ) , Network Connection, and select Fila > New 802.1X connection. There you have to select from the Configuration select list something like 'Edit configurations', and within the new dialog window create a new configuration by means of clicking the + button.

Now you have to set correctly the authentication parameters. Your username is tue\<s-number>, your password is your NT-account password, and the network ssid ( I guess it should be something like 'wireless network' in the English version of OS X) is tue. Then you have to select the proper authentication protocol in the checklist below these parameters. As I've already said, this network works with the PEAP protocol, so you have to select ONLY this one.

Once you have all these parameters filled in, save the new configuration and go back to the Network Connection utility. The only step left is clicking the 'Connect Button'.

Probably you will be prompted to accept the server certificate, because it's not signed by a trusted CA. I've chosen to allow always this certificate so I won't be prompted for it again.

Now you can enjoy your new wireless connection within the TU/e campus 😉

Filed under: Erasmus, macbook 2 Comments
26Aug/075

De turistas por Eindhoven :)

Posted by Eloi Sanfèlix

He aquí un pequeño post para anunciar que sigo vivo por Eindhoven ;).

El viernes nos confirmaron que nos alquilaban un piso en Petrus Donderstraat, relativamente centrado en Eindhoven aunque queda a unos 4 km de la universidad o por ahí. Se trata de una casita típica holandesa, y nos pertenece el primer piso y el ático. En el primero hay una cocina bastante pequeña, el baño y un comedor bastante grande ( unos 30 m2 ) y en el segundo las habitaciones y la lavadora y secadora.

Ayer y hoy ya hemos estado de turismo por Eindhoven. Ayer vinieron la tía y la prima de Ali y pasamos el día en un parque que hay cerca del centro, al sur, y por la tarde nos trasladamos del hotel al nuevo hostal en el que también hay un vecino que nos cede amablemente la conexión.

Hoy hemos visitado Eindhoven, que estaba más bien muerto cuando hemos salido del hostal pero que parece que se ha animado un poco a eso de las 4 o las 5 de la tarde. Hemos visitado el DAF museum, museo de coches antiguos, camiones, motores, etc. y por la tarde el museo de arte moderno ( Van abbemuseum) que no nos ha gustado demasiado, la verdad.

Mañana a registrarse en el ayuntamiento como ciudadanos de Eindhoven temporalmente y a hablar en la universidad con el responsable del master en Information Security Technology que por lo visto quiere saber si tengo los conocimientos necesarios para cursar ciertas asignaturas, y además quiero hablar con él el tema del proyecto, a ver si tienen algo interesante para mí 🙂

Filed under: Erasmus, teleco 5 Comments
23Aug/071

En busca del piso perdido

Posted by Eloi Sanfèlix

Tras varios días en Eindhoven (desde el lunes a las 19:00 que llegamos al hotel) seguimos sin tener 100% claro nuestro alojamiento. Aquí tenéis más o menos lo que hemos hecho estos días, con posibles fallos de orden porque ya no sé en qué día vivo... Aviso, es un buen tocho 😛

Antes que nada una cosilla que nos chocó un poco el primer día nada más salir del hotel, recién levantados. Esperando a un semáforo, presenciamos una persecución policial y posterior multa de una agente a un chico por saltarse un semáforo en rojo... un semáforo DE PEATONES. Sí sí, ni se os ocurra pasar una calle por donde no hay semáforo o con el semáforo en rojo delante de algún agente de policía aquí, o os cae una buena multa 😛

Ahora vamos con el rollo...

Filed under: Erasmus Continue reading
19Aug/074

Erasmus 07-08: Empieza la aventura

Posted by Eloi Sanfèlix

Pues sí, parecía que estaba más lejos pero ya está ahí. Creo que aun no lo tengo totalmente asumido pero empieza la aventura: mañana me voy a Eindhoven!

Y nunca mejor dicho lo de la aventura: nos vamos sin tener claro el alojamiento todavía... esta semana toca dormir en hotel y buscar como locos para encontrar un sitio donde vivir durante los próximos 10 meses. Espero que podamos encontrar algo prontito 🙂

Ya tengo la maleta preparada (realmente falta meter las cosas dentro, pero vamos cosa de 15 o 20 minutitos), la mochila de mano con el macbook, su cargador, algún libro y la documentación ... y me llevo también mi tarjeta wifi pcmcia SMC y backtrack por si nos hace falta (en el macbook no puedo usarla, pero en el portátil de mis compañeras de viaje sí :D).

Ahora toca ronda de despedidas con la gente de mi pueblo, familia y tal... y mañana a las 16:00 sale el vuelo desde El Altet (Alicante) hacia Eindhoven. Como no sé cuándo tendré alojamiento ni cómo está el hotel, no sé si tendré Internet en casa durante las primeras semanas pero al menos en la facultad seguro que habrá y podré darme vueltas por aquí.

Seguiremos informando 😀

Filed under: Erasmus, teleco 4 Comments