Archive for June, 2009
June 20, 2009 at 23:50 · Filed under Arquitectura de Computadores, Cultura
“The terms big-endian and little-endian derive from Jonathan Swift‘s 1726 satirical novel, Gulliver’s Travels. In the novel, the fictional Lilliputians‘ major political issue is whether eggs should be cracked open on the big end or the little end. Those who favor the big end are big-endians, whereas those who favor the small are little-endians.
The similarity between the Lilliputians and our big-endian versus little-endian debate is that the argument is rooted deeper in politics than technical merits.”
Procede del libro Linux Kernel Development, de Robert Love.
Capítulo 19: Portabilidad (2ª edición)
Update: Por cierto, se me olvidó poner esto de la misma fuente, está muy elegante (sirve para saber el endianness de la máquina donde se ejecuta):
int x
=1;
if(1==*(char*)&x) {
/* little endian */
}else{
/* big endian */
}
June 5, 2009 at 18:54 · Filed under Estructuras de datos, computación
En los últimos años se ha puesto de relieve que la velocidad a la que operan los microprocesadores crece mucho más rápido que la velocidad a la que se transfieren datos de la memoria al microprocesador.
Precisamente, para evitar esta asimetría Francesc Alted ha diseñado Blosc.
Blosc es un compresor optimizado para datos binarios. Comprime los datos con los que realizar computaciones, de manera que además de ocupar menos memoria, tardan menos tiempo en ser transferidos.
Con Blosc, por cada bloque de datos con el que trabajar, hay que transferir los datos, descomprimirlos, trabajar con ellos, comprimir los resultados y volver transferirlos.
Frente al proceso normal de transferir, computar y volver a transferir, consigue agilizar el tiempo empleado ya que en comprimir y descomprimir tarda muy poco frente a lo que se tarda en transferir los datos descomprimidos, precisamente por la enorme diferencia entre la velocidad de los micros y de las memorias.
Francesc presentará en el EuroSciPy 2009 este sistema, aplicándolo a las PyTables.
June 5, 2009 at 17:41 · Filed under seguridad
Desde hace algunos años venimos viendo una serie de periféricos, especialmente teclados y ratones, inalámbricos.
Primero fueron los que se comunicaban por infrarrojos, pero dadas las restricciones que tienen los infrarrojos en lo que a propagación se refiere empezamos a ver modelos que se comunicaban por radio.
En la actualidad se presentan, dentro de los que utilizan radiofrecuencia, dos familias: aquellos que trabajan en 27MHz., y aquellos que lo hacen en la banda de 2.4GHz.
KeyKeriki
Alguna gente de remote-exploit.org, hace cosa de año y medio empezaron a buscarle brechas de seguridad a algunos de estos dispositivos.
Fueron capaces de idear un circuito capaz de escuchar las comunicaciones de estos periféricos y estuvieron estudiando el protocolo de comunicaciones.
Para su sorpresa, gran parte de los mensajes que se transfieren del teclado al receptor van sin cifrar (mensajes de control), y los que sí van cifrados (mensajes con datos, como por ejemplo, qué tecla ha pulsado el usuario) utilizan un simple XOR con una clave que previamente se envió en claro (típico fallo de los algoritmos de clave simétrica).
Todas sus conclusiones acerca del protocolo de comunicaciones, y ciertas consideraciones sobre seguridad quedaron reflejadas en su paper: 27Mhz Wireless Keyboard Analysis Report. Así mismo, en ph-neutral 0x7d9 dieron una ponencia donde profundizaron en el funcionamiento de estos dispositivos.
Posteriormente han seguido trabajando en esa línea: han desarrollado un hardware (libre), y supuestamente también un software (libre, pero aún no disponible) que permite interceptar los teclados que estén al alcance del dispositivo.
Pareceser que aún es work in progress, pero la web del proyecto promete suficientes recursos para conseguir un cacharro de éstos totalmente operativo.
To Do
Aún quedan cabos sueltos en los que trabajar:
- No trabajan aún con productos Logitech. Dicen en su página que el protocolo está estudiado, y que sólo les queda implementarlo, pero aún no hay una solución out-of-the-box para esta marca.
- Se menciona en las transparencias que Microsoft utiliza una codificación ligeramente distinta (otros fabricantes usan codificación Miller), y no me queda claro ahora mismo si su dispositivo intercepta los periféricos de Microsoft o no.
- Sólo han estudiado dispositivos de la banda de 27MHz. Queda otra banda por descubrir: la de 2.4GHz. Algunos de esta otra banda son los que funcionan mediante bluetooth, pero hay algún dispositivo que usa un protocolo no-tan-estándar en esa misma frecuencia. Me imagino que repetir el proyecto pero sobre 2.4GHz. puede complicarse: la electrónica a alta frecuencia debe ser más complicada, y quizá se utilicen modos de transmisión más elaborados (espectro extendido, p.ej.).