miércoles, febrero 27, 2008

Tarjetas inteligentes

Una tarjeta inteligente (smart card), o tarjeta con circuito integrado (TCI), es cualquier tarjeta del tamaño de un bolsillo con circuitos integrados incluidos que permitan la ejecución de cierta lógica programada. Aunque existe un diverso rango de aplicaciones, hay dos categorías principales de TCI. Las Tarjetas de memoria contienen sólo componentes de memoria no volátil y posiblemente alguna lógica de seguridad. Las tarjetas microprocesadoras contienen memoria y microprocesadores.
La percepción estándar de una tarjeta inteligente es una tarjeta microprocesadora de las dimensiones de una tarjeta de crédito (o más pequeña, como por ejemplo, tarjetas SIM o GSM) con varias propiedades especiales (ej. un procesador criptográfico seguro, sistema de archivos seguro, características legibles por humanos) y es capaz de proveer servicios de seguridad (ej. confidencialidad de la información en la memoria).
Las tarjetas no contienen baterías; la energía es suministrada por los lectores de tarjetas.


Historia
Las tarjetas inteligentes fueron inventadas y patentadas en los setenta. Existen algunas discusiones de quién es el "inventor" original; entre los que se encuentran Juergen Dethloff de Alemania, Arimura de Japón y Moreno de Francia. El primer uso masivo de las tarjetas fue para el pago telefónico público en Francia en 1983. Desde los años 70, la historia de tarjetas inteligentes ha reflejado los constantes avances en capacidades técnicas y ámbitos de aplicabilidad.
El mayor auge de las tarjetas inteligentes fue en los noventa, con la introducción de las tarjetas SIM utilizadas en la telefonía móvil GSM en Europa.
Las firmas internacionales MasterCard, Visa, y Europay publicaron un estándar de interoperabilidad para el pago con tarjetas inteligentes en 1996 el que fue revisado en 2000. Este estándar, llamado EMV se ha introducido mundialmente de manera gradual, con la esperanza de reemplazar las tarjetas basadas en cintas magnéticas. Actualmente, las especificaciones EMV son costosas de implementar, con el único beneficio de la reducción del fraude. Algunos críticos aseguran que los ahorros son mucho menores que los costos de implementar EMV y muchos creen que la industria optará por esperar que termine el actual ciclo de vida del EMV para implementar una nueva tecnología sin contacto.
Las tarjetas inteligentes con interfaces sin contacto están transformándose en un medio popular para aplicaciones de pago como el transporte masivo. Estándares de este tipo de interoperabilidad han sido publicados en el Reino Unido [1] y Europa IOPTA.
Las tarjetas inteligentes también se han utilizado para identificar al personal de las empresas. Las tarjetas de identificación, el permiso de conducir están prevaleciendo más y más, y las tarjetas inteligentes sin contacto se han integrado en pasaportes ICAO para asegurar la seguridad para viajes internacionales.
Cronología
En 1970 el Dr Kunitaka Arimura presentó en Japón la primera y única patente en el concepto de tarjeta inteligente.
En 1974 Roland Moreno presentó en Francia la patente original de la tarjeta chip (con un circuito integrado), más tarde bautizado como tarjeta inteligente.
En 1977 tres fabricantes, Bull CP8, SGS Thomson, y Schlumberger comienzan a desarrollar tarjetas chip.
En 1979 Motorola desarrolló el primer chip seguro para su uso en la banca francesa.
En 1982 se realizan en Francia ensayos con tarjetas de memoria para usar en teléfonos (France Telecom; la primera gran prueba de las tarjetas chip.
En 1984 se realizan pruebas con cajeros automáticos con tarjetas chip bancarias con éxito.
En 1986, 14.000 tarjetas equipadas con el Bull CP8 se distribuyeron a los clientes del Banco de Virginia y Maryland National Bank. Además, 50.000 tarjetas Casio se distribuyeron a los clientes de Palm Beach First National Bank y el Mall Bank.
En 1987 se implanta el primer proyecto a gran escala de tarjetas inteligentes en los Estados Unidos con la Peanut Marketing Card del Departamento de Agricultura del país.
En 1988 se crea la primera tarjeta bancaria con el algoritmo criptográfico DES para Carte Bancaire.
En 1992 se lanza un proyecto de monedero electrónico prepago (DANMONT) se inicia en Dinamarca.
En 1993, proyectos piloto de múltiples aplicaciones de tarjetas inteligentes en Rennes, Francia, donde la función Telecarte (para teléfonos públicos) fue habilitado en una tarjeta bancaria.
En 1994 Europay, MasterCard y Visa (EMV) publica la primera versión de las especificaciones de interoperabilidad de las aplicaciones bancarias de las tarjetas inteligentes. Al mismo tiempo, Alemania comienza la emisión de 80 millones de tarjetas con chip de memoria para las tarjetas sanitarias de sus ciudadanos.
En 1995 Más de 3 millones de abonados de teléfonos móviles en todo el mundo (con tajetas chip SIM GSM).
En 1996 Más de 1,5 millones de tarjetas monedero VISACash se emitieron en los Juegos Olímpicos de Atlanta. MasterCard y Visa desarrollan por separado sus tecnologías y participan en EMV para intentar forzar la interoperabilidad: la Java Card respaldada por Visa, y la aplicación de múltiples sistemas operativos (MULTOS) respaldada por MasterCard.
En 1998 la Administración de Servicios Generales y de la Marina de los Estados Unidos unen sus fuerzas y ponen en marcha un sistema administrativo de gestión basado en una tarjeta inteligente para demostrar y evaluar la integración de múltiples aplicaciones de tarjetas inteligentes con otros tipos de tecnología y su aplicabilidad en la administración electrónica en el Gobierno Federal. Además, Francia inicia la aplicación experimental de una tarjeta inteligente de salud para sus 50 millones de ciudadanos.

Clasificaciones

Tipos de tarjetas según sus capacidades
Según las capacidades de su chip, las tarjetas más habituales son:
Memoria: tarjetas que únicamente son un contenedor de ficheros pero que no albergan aplicaciones ejecutables. Por ejemplo, MIFARE. Éstas se usan generalmente en aplicaciones de identificación y control de acceso sin altos requisitos de seguridad.
Microprocesadas: tarjetas con una estructura análoga a la de un ordenador (procesador, memoria volátil, memoria persistente). Éstas albergan ficheros y aplicaciones y suelen usarse para identificación y pago con monederos electrónicos.
Criptográficas: tarjetas microprocesadas avanzadas en las que hay módulos hardware para la ejecución de algoritmos usados en cifrados y firmas digitales. En estas tarjetas se puede almacenar de forma segura un certificado digital (y su clave privada) y firmar documentos o autenticarse con la tarjeta sin que el certificado salga de la tarjeta (sin que se instale en el almacén de certificados de un navegador web, por ejemplo) ya que es el procesador de la propia tarjeta el que realiza la firma. Un ejemplo de estas tarjetas son las emitidas por la Fábrica Nacional de Moneda y Timbre (FNMT) española para la firma digital (véase Ceres-FNMT).

Tipos de tarjetas según la estructura de su sistema operativo
Tarjetas de memoria. Tarjetas que únicamente son un contenedor de ficheros pero que no albergan aplicaciones ejecutables. Disponen de un sistema operativo limitado con una serie de comandos básicos de lectura y escritura de las distintas secciones de memoria y pueden tener capacidades de seguridad para proteger el acceso a determinadas zonas de memoria.
Basadas en sistemas de ficheros, aplicaciones y comandos. Estas tarjetas disponen del equivalente a un sistema de ficheros compatible con el estándar ISO/IEC 7816 parte 4 y un sistema operativo en el que se incrustan una o más aplicaciones (durante el proceso de fabricación) que exponen una serie de comandos que se pueden invocar a través de APIs de programación.
Java Cards. Una Java Card es una tarjeta capaz de ejecutar mini-aplicaciones Java. En este tipo de tarjetas el sistema operativo es una pequeña máquina virtual Java (JVM) y en ellas se pueden cargar dinámicamente aplicaciones desarrolladas específicamente para este entorno.

Tipos de tarjetas según el formato (tamaño)
En el estándar ISO/IEC 7816 parte 1 se definen los siguientes tamaños para tarjetas inteligentes:
ID 000 : el de las tarjetas SIM usadas para teléfonos móviles GSM. También acostumbran a tener este formato las tarjetas SAM (Security Access Module) utilizadas para la autenticación criptográfica mútua de tarjeta y terminal.
ID 00 : un tamaño intermedio poco utilizado comercialmente.
ID 1 : el más habitual, tamaño tarjeta de crédito.

Tipos de tarjetas según la interfaz

Tarjeta inteligente de contacto
Estas tarjetas disponen de unos contactos metálicos visibles y debidamente estandarizados (parte 2 de la ISO/IEC 7816). Estas tarjetas, por tanto, deben ser insertadas en una ranura de un lector para poder operar con ellas. A través de estos contactos el lector alimenta eléctricamente a la tarjeta y transmite los datos oportunos para operar con ella conforme al estándar.

Contactos del chip de una tarjeta con contactos
La serie de estándares ISO/IEC 7816 e ISO/IEC 7810 definen:
La forma física (parte 1)
La posición de las formas de los conectores eléctricos (parte 2)
Las características eléctricas (parte 3)
Los protocolos de comunicación (parte 3)
El formato de los comandos (ADPU's) enviados a la tarjeta y las respuestas retornadas por la misma
La dureza de la tarjeta
La funcionalidad
Los lectores de tarjetas inteligentes de contacto son utilizados como un medio de comunicación entre la tarjeta inteligente y un anfitrión, como por ejemplo un ordenador.

Tarjetas Inteligentes sin Contacto
El segundo tipo es la tarjeta inteligente sin contacto en el cual el chip se comunica con el lector de tarjetas mediante inducción a una tasa de transferencia de 106 a 848 Kb/s).
El estándar de comunicación de tarjetas inteligentes sin contacto es el ISO/IEC 14443 del 2001. Define dos tipos de tarjetas sin contacto (A y B), permitidos para distancias de comunicación de hasta 10 cm. Ha habido propuestas para la ISO 14443 tipos C, D, E y F que todavía tienen que completar el proceso de estandarización. Un estándar alternativo de tarjetas inteligentes sin contacto es el ISO 15693, el cual permite la comunicación a distancias de hasta 50 cm. Las más abundantes son las tarjetas de la familia MIFARE de Philips, las cuales representan a la ISO/IEC 14443-A.
Un ejemplo del amplio uso de tarjetas inteligentes sin contacto es la tarjeta Octopus en Hong Kong, la cual usa el estándar anterior al ISO/IEC 14443. La siguiente tabla muestra las tarjetas inteligentes utilizadas por el transporte público.
Lugar
Tarjeta
Proveedor
Introducción
Hong Kong
Octopus
Bogotá
Angelcom
Angelcom
2000
Córdoba
Redbus
Siemens
2007
Mendoza
Redbus
Siemens
2006
Buenos Aires
SubteCard
1999
Malasia
Touch 'n Go
Teras Technologi Sdn Bhd
1997
Washington, D.C.
SmarTrip
Cubic Transportation Systems
1999
Medellín
Cívica
UT Equant-Smart N IT para Metro de Medellín
2007
Taipei
EasyCard
Taipei Smart Card Corporation
marzo de 2000
Nottingham
EasyRider
Nottingham City Transport
septiembre de 2000
Singapur
EZ-Link
2001
París
Navigo Pass
RATP
octubre de 2001
Tokio
Tarjeta Suica
JR East
noviembre de 2001
Santiago de Chile
Multivía
Indra Sistemas para Metro de Santiago
2003
Santiago de Chile
Tarjeta bip!
Transantiago
2006
Chicago
Chicago Card
Chicago Transit Authority
2002
Nagasaki
Nagasaki Smart Card
enero de 2002
Londres
Oyster card
Transport for London
enero de 2004
Dublín
Luas
ITS
marzo de 2005
Minneapolis
Go-To card
Metro Transit (Minnesota)
Perth
SmartRider
Transperth y Wayfarer
enero de 2006
Boston
Charlie Card
Massachusetts Bay Transportation Authority
2006
Melbourne
2007
Toronto
GTA Farecard
GO Transit
2007
Guernsey
Multi Journey "Wave & Save"
Island Coachways
São Paulo
Bilhete Unico
Prefeitura de São Paulo
2004
San Francisco
TransLink
Metropolitan Transportation Commission
en pruebas desde 2002
V Región de Chile
Metro Valparaíso
Indra Sistemas para EFE
2005
Una tecnología sin contacto relacionada es RFID (identificación por radio frecuencia - radio frequency identification). En algunos casos puede ser utilizado para aplicaciones similares a las tarjetas inteligentes sin contacto, como el peaje electrónico. Las RFID generalmente no incluyen memoria de escritura o micro controladores como las tarjetas inteligentes sin contacto.

Tarjetas híbridas y duales
Una tarjeta híbrida es una tarjeta sin contacto (contactless) a la cual se le agrega un segundo chip de contacto. Ambos chips pueden ser o chips microprocesadores o simples chips de memoria. El chip sin contacto es generalmente usado en aplicaciones que requieren transacciones rápidas. Por ejemplo el transporte, mientras que el chip de contacto es generalmente utilizado en aplicaciones que requieren de alta seguridad como las bancarias. Un ejemplo es la tarjeta de identificación llamada MyKad en Malasia, que usa un chip Proton de contacto y un chip sin contacto MIFARE (ISO 14443A).
Una tarjeta de interfaz dual es similar a la tarjeta híbrida en que la tarjeta presenta ambas interfaces con y sin contacto. La diferencia más importante es el hecho de que la tarjeta de interfaz dual tiene un solo circuito integrado. Un ejemplo es la Oberthur Cosmo Card Dual-Interface.

Aplicaciones comerciales
Las dos aplicaciones fundamentales de las tarjetas inteligentes son:
Identificación del titular de la misma.
Pago electrónico de bienes o servicios mediante dinero virtual.
Almacenamiento seguro de información asociada al titular.
Las aplicaciones de las tarjetas inteligentes incluyen su uso como tarjeta de crédito, SIM para telefonía móvil, tarjetas de autorización para televisión por pago, identificación de alta seguridad, tarjetas de control de acceso y como tarjetas de pago del transporte público.
Las tarjetas inteligentes también son muy utilizadas como un monedero electrónico. Estas aplicaciones disponen normalmente de un fichero protegido que almacena un contador de saldo y comandos para decrementar e incrementar el saldo (esto último sólo con unas claves de seguridad especiales, obviamente). Con esta apliación, el chip de la tarjeta inteligente puede ser 'cargado' con dinero los que pueden ser utilizados en parquímetros, máquinas expendedoras u otros mercados. Protocolos criptográficos protegen el intercambio de dinero entre la tarjeta inteligente y la máquina receptora.
Cuando las tarjetas son criptográficas las posibilidades de identificación y autenticación se multiplican ya que se pueden almacenar de forma segura certificados digitales o características biométricas en ficheros protegidos dentro de la tarjeta de modo que estos elementos privados nunca salgan de la tarjeta y las operaciones de autenticación se realicen a través del propio chip criptográfico de la tarjeta.
De un modo más particular, las aplicaciones más habituales son:
Identificación digital: este tipo de aplicaciones se utilizan para validar la identidad del portador de la tarjeta en un sistema centralizado de gestión.
Control de acceso: este tipo de aplicaciones se utilizan para restringir o permitir el acceso a una determinada área en función de distintos parámetros que pueden estar grabados en la tarjeta o pueden ser recuperados de un sistema central de gestión a partir de la identidad grabada en la tarjeta. Este tipo de aplicaciones suelen estar ligadas a puertas o tornos automatizados que permiten/impiden el paso físico de una persona a una determinada área, si bien también tiene sentido este servicio en el ámbito de la autenticación en sistemas informáticos (webs, sistemas operativos, etc.). En este último caso, la frontera entre las aplicaciones de identificación y de control de acceso es difusa.
Monedero electrónico (Electronic Purse o Electronic Wallet (ePurse' y eWallet): esta aplicación se utiliza como dinero electrónico. Se puede cargar una cierta cantidad de dinero (en terminales autorizados que dispongan de las claves de seguridad oportunas) y luego, sobre esta cantidad de dinero se pueden realizar operaciones de débito o consulta de modo que puede ser utilizado para el pago o cobro de servicios o bienes.
Firma Digital: este tipo de aplicaciones permiten almacenar un certificado digital de forma segura dentro de la tarjeta y firmar con él documentos electrónicos sin que en ningún momento el certificado (y más concretamente su clave privada) salgan del almacenamiento seguro en el que están confinados. Con estas aplicaciones se abre todo un abanico de posibilidades en el campo de la Administración electrónica.
Fidelización de clientes: Este tipo de aplicación sirve a las empresas que ofrecen servicios o descuentos especiales para clientes que hacen uso de la tarjeta para poder validar la identidad del cliente, y para descentralizar la información. Suponiendo que se tiene un sistema de puntos acumulables canjeables por bienes o servicios, en el cual participan varias empresas, esto simplifica mucho el tratamiento de los datos, evitando tener que compartir una gran base de datos o tener que realizar réplicas de las distintas bases (los puntos se podrían guardar en la propia tarjeta).
Sistemas de Prepago: En estos sistemas, un cliente carga su tarjeta con una cierta cantidad de servicio su tarjeta, la cual va siendo decrementada a medida que el cliente hace uso del servicio. El servicio puede variar desde telefonía móvil hasta TV por cable, pasando por acceso a sitios web o transporte público.
Tarjetas sanitarias: En algunos hospitales y sistemas nacionales de salud ya se está implementando un sistema de identificación de pacientes y almacenamiento de los principales datos de la historia clínica de los mismos en tarjetas inteligentes para agilitar la atención. Actualmente la capacidad de almacenamiento es muy limitada, pero en un futuro quizás se podría almacenar toda la historia dentro de la tarjeta.
Nótese, en cualquier caso, que todos estos servicios pueden ser derivados de los tres puntos planteados inicialemnte (identificación, pago y almacenamiento seguro).

Estructura de una tarjeta inteligente microprocesada
Internamente, el chip de una tarjeta inteligente microprocesada se compone de:
CPU (Central Processing Unit): el procesador de la tarjeta; suelen ser de 8 bits, a 5 MHz. y 5 voltios. Pueden tener opcionalmente módulos hardware para operaciones criptográficas.
ROM (Read-Only Memory): memoria interna (normalmente entre 12 y 30 KB) en la que se incrusta el sistema operativo de la tarjeta, las rutinas del protocolo de comunicaciones y los algoritmos de seguridad de alto nivel por software. Esta memoria, como su nombre indica, no se puede reescribir y se inicializa durante el proceso de fabricación (véase apartado siguiente).
EEPROM: memoria de almacenamiento (equivalente al disco duro en un ordenador personal) en el que está grabado el sistema de ficheros, los datos usados por las aplicaciones, claves de seguridad y las propias aplicaciones que se ejecutan en la tarjeta. El acceso a esta memoria está protegido a distintos niveles por el sistema operativo de la tarjeta.
RAM (Random Access Memory): memoria volátil de trabajo del procesador.

Proceso de fabricación
La fabricación de tarjetas inteligentes abarca normalmente los siguientes pasos:
Fabricación del chip, o muchos chips en una oblea. Vario miles de chips de circuito integrado se fabrican a la vez en la forma de obleas de silicio con aproximadamente 3.000 a 4.000 unidades.
Empaquetado de los chips individuales para su inserción en una tarjeta. Una vez que se termina una oblea, cada chip se prueba individualmente, se divide la oblea y se realizan las conexiones eléctricas del chip.
Fabricación de la tarjeta. La tarjeta está compuesta de cloruro de polivinilo o de un material similar. Las características químicas y las dimensiones de la tarjeta y sus tolerancias son reguladas por estándares internacionales. El material de la tarjeta se produce en una hoja grande, plana del grosor prescrito. Para muchos tipos de tarjetas producidas en serie, estas hojas entonces se imprimen con los elementos gráficos comunes a todas las tarjetas. Las tarjetas individuales entonces se cortan de esta hoja plana y los bordes de cada tarjeta se lijan.
Inserción de el chip en la tarjeta. Una vez que el chip y la tarjeta estén preparados, los dos se unen: se hace un agujero en la tarjeta, y el chip se pega en él con pegamento.
Pre-personalización. Una vez la tarjeta está completa, la mayoría de los usos inteligentes de la misma requieren que ciertos ficheros de los programas o de datos estén instalados en cada chip (tarjeta) antes de que la tarjeta se pueda personalizar para un titular específico. Esta preparación general del software o de los archivos en la tarjeta se hace con una operación llamada la pre-personalización, que se hace a través de los contactos del chip y por lo tanto puede proceder solamente a la velocidad proporcionada por esa interfaz.
Personalización. El procedimiento de la personalización implica el poner de la información tal como nombres, perfiles o números de cuenta en la tarjeta; a partir de la realización de este proceso la tarjeta está asignada a una persona en particular. Normalmente esta personalización será gráfica (estampando o troquelando datos personales del titular sobre la superficie plástica de la tarjeta) y/o eléctrica (grabando información personal del titular en algún fichero de la tarjeta).

Seguridad
La seguridad es una de las propiedades más importantes de las tarjetas inteligentes y se aplica a múltiples niveles y con distintos mecanismos. Cada fichero lleva asociadas unas condiciones de acceso y deben ser satisfechas antes de ejecutar un comando sobre ese fichero.
En el momento de personalización de la tarjeta (durante su fabricación) se puede indicar qué mecanismos de seguridad se aplican a los ficheros. Normalmente se definirán:
Ficheros de acceso libre
Ficheros protegidos por claves: Pueden definirse varias claves con distintos propósitos. Normalmente se definen claves para proteger la escritura de algunos ficheros y claves específicas para los comandos de consumo y carga de las aplicaciones de monedero electrónico. De ese modo la aplicación que intente ejecutar comandos sobre ficheros protegidos tendrá que negociar previamente con la tarjeta la clave oportuna.
Ficheros protegidos por PIN: El PIN es un número secreto que va almacenado en un fichero protegido y que es solicitado al usuario para acceder a este tipo de ficheros protegidos. Cuando el usuario lo introduce y el programa se lo pasa a la operación que va a abrir el fichero en cuestión el sistema valida que el PIN sea correcto para dar acceso al fichero.
Finalmente, indicar que la negociación de claves se realiza habitualmente apoyándose en un Módulo SAM, que no deja de ser otra tarjeta inteligente en formato ID-000 alojada en un lector interno propio dentro de la carcasa del lector principal o del TPV y que contiene aplicaciones criptográficas que permiten negociar las claves oportunas con la tarjeta inteligente del usuario. Operando de este modo se está autenticando el lector, la tarjeta y el módulo SAM involucrados en cada operación.

Modelos de programación
Al aproximarse a la programación de tarjetas inteligentes hay que distinguir dos ámbitos claramente diferenciados:
Programación de aplicaciones para el chip de la tarjeta, es decir, de aplicaciones que se almacenan y ejecutan dentro del chip de la tarjeta cuando ésta recibe alimentación eléctrica de un lector.
Programación de aplicaciones para los sistemas en los que se utiliza la tarjeta, esto es, aplicaciones que se ejecutan en ordenadores (en un sentido genérico, ya que pueden ser TPVs empotrados, cajeros automáticos, PCs de escritorio, etc.) a los que se conecta un lector de tarjetas en el que se inserta (o aproxima si es un lector sin contactos) una tarjeta inteligente. Estas aplicaciones se comunican con el lector, el cual se comunica con la tarjeta y sus aplicaciones.

Programación de aplicaciones para el chip de la tarjeta
Este tipo de programación es de muy bajo nivel y depende normalmente del tipo y proceso de fabricación de las propias tarjetas. En la mayoría de las tarjetas inteligentes el sistema operativo de la tarjeta y las aplicaciones que van dentro del chip se cargan en el propio proceso de fabricación y no pueden ser luego modificadas una vez que la tarjeta ha sido fabricada.
Una excepción clara a este caso pueden ser las Java Cards, que son tarjetas que en el proceso de fabricación incorporan un sistema operativo y una máquina virtual Java específica para este entorno. Una vez fabricada la tarjeta, los desarrolladores pueden implementar mini-aplicaciones (applets) Java para ser cargadas en la tarjeta (mediante un procedimiento que garantice la seguridad del sistema).

Programación de aplicaciones para los sistemas en los que se utiliza la tarjeta
Existen varias APIs de programación estandarizadas para comunicarse con los lectores de tarjetas inteligentes desde un ordenador. Las principales son:
PC/SC (Personal Computer/Smart Card), especificado por el PC/SC Workgroup. Existe una implementación para Microsoft Windows y también el proyecto MUSCLE [2] proporciona una implementación casi completa de esta especificación para los sistemas operativos GNU Linux-UNIX.
OCF (OpenCard Framework), especificado por el grupo de empresas OpenCard. Este entorno intenta proporcionar un diseño orientado a objetos fácilmente extensible y modular. El consorcio OpenCard publica el API y proporciona una implementación de referencia en Java. Existe un adaptador para que OCF trabaje sobre PC/SC.
En ambos casos, el modelo de programación que utilizan las tarjetas inteligentes está basado en protocolos de petición-respuesta. La tarjeta (su software) expone una serie de comandos que pueden ser invocados. Estos comandos interactúan con los ficheros que subyacen a cada aplicación de la tarjeta y proporcionan un resultado. Desde el terminal se invocan estos comandos a través de cualquiera de las APIs antes descritas componiendo APDUs (Application Protocol Data Unit - comandos con parámetros) que son enviados a la tarjeta para que ésta responda.

Referencias de fabricantes de tarjetas y lectores
Sandisk (Microelectronica)
Gemplus
Schlumberger
Bull
Oberthur
Orga
Solaic
De la Rue (Philips)
Fábrica Nacional de Moneda y Timbre (FNMT)

Bibliografía de referencia
Smart Card Application Development Using Java [3]
Programmazione Delle Smart Card [4]
Smart Card Handbook [5]
Smat Card Developers Kit [6]

Resumen Biometrica

La Biométrica es un nuevo y excitante campo que ha sido traído a la luz recientemente debido a los ataques del 11 de Septiembre del 2001 en los Estados Unidos de América. ¿Qué es exactamente la Biométrica? ¿Qué tipos de identificaciones biométricas existen? ¿Cual es su disponibilidad?


¿Que es la "Biométrica"?

La biométrica es un campo tecnológico moderno que se centra en identificar a un individuo a través de sus características físicas únicas. La biométrica comprende diferentes campos como la inteligencia artificial y la biología así como varios campos relacionados con el hardware. Métodos típicos de identificación biométrica incluyen: huellas dactilares, voz, iris, retina, mano, facial y firma (la firma no es un atributo físico, pero a menudo se agrupo bajo la denominación biométrica).

Huella digital y Mano

El reconocimiento de huellas dactilares (en inglés conocido como fingerprinting o escaneado de dedo debido a las connotaciones negativas del termino 'fingerprinting') es una de las formas más comunes de identificación. El reconocimiento de huellas dactilares usa básicamente los pequeños rasgos de la huella dactilar - crestas, bifurcaciones, islas y otras características que fueron ya clasificadas hacia el año 1800. La imagen de la huella se introduce en el software, y entonces se preprocesa al aplicarle un umbral y simplificar sus características usando técnicas estándar de procesamiento de imágenes.

http://VidaArtificial.com/images/stories/Generation5/secudesktop01.jpg

El proceso posterior depende de las diferentes implementaciones pero la mayoría analiza las crestas y extrapola los datos necesarios a partir de ellas. En la mayoría de ocasiones los datos de una huella dactilar ocupan unos 250Kb, aunque muchos paquetes de software comercial encriptan estos datos para mayor seguridad.

El reconocimiento de huellas dactilares es una tecnología aceptada y usada ampliamente con porcentajes de exactitud muy altos. Existe más software comercial de reconocimiento de huellas dactilares que en cualquier otra área de la biométrica, como SecuGen y BioLink USA. También puedes ver la crítica de Generation5's del Ratón óptico SecuGen EyeD (en inglés).

El reconocimiento de las manos es similar pero, sorprendentemente, usa una cantidad menor de información. La tecnología de reconocimiento de manos es susceptible a heridas en las manos (que son muy comunes) y puede ser bastante costosa de instalar. El reconocimiento de manos está dominado por una compañía, Recognition Systems.


Voz

http://VidaArtificial.com/images/stories/Generation5/sl_voiceauthen_sml.jpg El reconocimiento de voz es muy diferente del reconocimiento del habla. El reconocimiento del habla detecta palabras y frases de una señal de audio entrante donde el reconocimiento de voz intenta detectar una muestra de voz dada por el persona que habla. Nuestra huella de voz es determinada por muchos factores diferentes: tamaño de las cavidades vocales (garganta, oral, nasal) así como las características propias de las cuerdas vocales. Tu voz es además modificada según tu forma de hablar, la forma en que mueves tus boca, labios, lengua, mandíbula y dientes (todos ellos son articuladores). Por ello, las posibilidades de que dos personas diferentes tengan las mismas características de voz son mínimas.

Los ordenadores pueden hoy en día extraer los datos de la voz, resultado de estas características, de forma rápida y eficaz - resultando en un relativamente exacto (cerca de un ratio de 0.3% de falsos positivos, se considera relativamente exacto en biométrica) y identificación rápida. Para más información podéis ver la crítica de Generation5 SAFLink SaftyLatch (en inglés).

Iris y Retinal

El reconocimiento de iris es la personificación de la identificación biométrica - el mundo entero podría registrarse en una base de datos de iris y aún así tan solo existiría una mínima posibilidad de falso positivo (FAR) o falso negativo (FRR). Todos los algoritmos de reconocimiento de iris están basados en investigaciones y patentes pertenecientes al Doctor John Daugman. El método por el cual se extraen las características es extremadamente complicado pero en resumen lo que hacen es tomar una fotografía del ojo con una cámara monocroma especializada. Entonces el software localiza el iris, teniendo en cuenta los párpados así como la reflexión de la luz y la humedad del ojo. Entonces se crea una correspondencia entre cientos de vectores y segmentos del iris, creando el IrisCode. El IrisCode es tan específico que las posibilidades de que dos iris tengan el mismo código son de ¡1 entre 1052!

El reconocimiento retinal también provee un nivel de exactitud similar, aunque hay un estigma social asociado con este método más intrusivo. El reconocimiento de retina requiere un aparato que lee la parte posterior de los ojos del usuario (su retina) al hacerle mirar muy fijamente una luz verde rotatoria, mientras el sistema lee más de 400 puntos diferentes. Esto provee una gran exactitud con una minúscula FAR/FRR.

Facial

La biométrica facial usa varias características facial es para reconocer o verificar a un usuario. El reconocimiento facial es una correspondencia de 1-a-muchos donde la verificación facial es una correspondencia más simple 1-a-1. Existen principalmente cuatro técnicas de reconocimiento facial: eigenfaces, análisis de características, redes neuronales y procesamiento facial. El método de redes neuronales, por ejemplo, usa un patrón facial y lo introduce en una red neuronal que intenta identificarlo contra su base de datos (o verificarlo contra el patrón que el usuario tiene registrado). Si se produce un falso positivo o un rechazo la red neuronal modifica sus pesos para ayudar a mejorar el reconocimiento en los siguientes intentos. Otro interesante método es el Eigenfaces del MIT. Básicamente, una base de datos contiene un gran número de patrones faciales (típicamente entre 60 y 120). Cuando tus cara es leída se crea una correspondencia con los patrones faciales de manera que ¡el programa pueda mezclar los diferentes patrones faciales para reproducir tu cara! Entonces esto se usa a posteriori para realizar reconocimientos y verificaciones. Las técnicas de eigenface se aplican en situaciones suficientemente controladas como una fotografía de un carné no imágenes de baja calidad tomadas por una cámara de seguridad.

Conclusiones

La biométrica es un campo muy interesante y excitante que ha crecido exponencialmente en los últimos años (especialmente desde el 2001). La gran variedad de características físicas únicas que nuestro cuerpo nos da nos permitirá vivir en un muy seguro mundo sin passwords. Si deseas más información os recomiendo la web del International Biometric Group.

Enlaces externos:

martes, febrero 26, 2008

El coche fantastico

lunes, febrero 25, 2008

Sin palabras




keylemon Software gratuito utilizando biometria

Pues buscando informacion sobre esta tecnologia me encontre con esta web que ofrece un software gratuito en fase beta para descarga y probar mediante reconocimiento facial por medio de una webcam. Para quien quiera probarlo este es el enlace a la pagina: http://www.keylemon.com/

La Generalitat catalana reparte una guía de masturbación para niños de 10 años


La Generalitat de Cataluña ha editado unos folletos (con perdón) para asesorar a los escolares de más de 10 años que se inician en el universal arte del onanismo.
El programa incluye dos guías tituladas con enunciados muy reveladores. La dirigida a niños de 10 a 11 años se llama A mí también me pasa, ¿y a ti?, mientras que la destinada para adolescentes de entre 12 y 16 años va más al grano y se titula ¡Háztelo!
Tras unos infructuosos intentos de los redactores de NPC de tratar de camuflarse entre la chavalería para conocer sus reacciones, son algunas las dudas que nos asaltan sobre la difusión de estas guías:
-¿Los alumnos han mostrado su entusiasmo por examinarse sobre esta materia? En caso afirmativo, ¿es cierto que se han decantado por que la evaluación sea de tipo ‘oral’?-¿El pack del cursillo incluye un paquete de kleenex y la revista ‘Playboy’ de rigor?-¿Las guías alertan a los chavalitos sobre el riesgo de terminar con la cara plagada de acné o, en caso de una práctica extremadamente abusiva, incluso quedarse ciego?-¿Algún muchachito ha pedido a sus papis clases de refuerzo con una profe particular?-¿Para cuándo las esperadas guías sobre el cunnilingus, el 69 y las últimas tendencias en la marcha atrás?

Mi pregunta es: ¿qué diria Franco si viera esto?

Descarga el folleto completo: http://www.gencat.net/salut/depsan/units/sanitat/pdf/amitambe.pdf

domingo, febrero 24, 2008

La levitacion ya no tiene truco - La tecnologia lo consigue

Realmente me he quedao flipando con este video. ademas puede hacerse en casa con pocos materiales. quien lea esto supongo que querra probar por mi parte ya estoy buscando la lata de cocacola :)


sábado, febrero 23, 2008

Windows Vista SP1 impide el funcionamiento de programas antivirus

Microsoft ha publicado una lista de programas que dejan de funcionar de forma total o parcial al instalar Microsoft Windows Vista Service Pack1. La lista incluye varias soluciones de seguridad, lo que significa que algunos usuarios quedan indefensos ante los ataques de usuarios malintencionados.
Entre los programas antivirus afectados están Trend Micro Internet Security 2008, Zone Alarm Security Suite 7.1 y BitDefender 10. La lista no incluye ningún producto de Kaspersky Lab.
El problema también afecta a otro tipo de programas, como el lector del periódico norteamericano The New York Times.
Microsoft asegura que esto se debe a que algunos programas no son compatibles con Vista SP1.
La lista no menciona todos los programas que tienen problemas con esta versión de Vista, así que los usuarios deben mantenerse alertas para detectar fallas similares en otras aplicaciones.
Microsoft sugirió a sus clientes que reinicien su ordenador si notan que algún programa no está funcionando como debe. Si esto no da resultado, deben instalar una versión más reciente del programa o contactar con la empresa.
Windows Vista acaba de cumplir un año de su lanzamiento. Su Service Pack1 contiene ya más de 300 parches para vulnerabilidades del sistema.

viernes, febrero 22, 2008

Distros de Juegos Linux

Fedora Spin http://fedoraproject.org/wiki/SIGs/Games/GamesLive

Lista de distros de juegos - http://www.linux-gamers.net/modules/wfdownloads/viewcat.php?cid=42
http://live.linux-gamers.net/?s=home
http://supergamer.org/
http://games-knoppix.org/
http://ubuntusoftware.info/ubuntu_ultimate_gamers/

Biometria

La biometría es el estudio de métodos automáticos para el reconocimiento único de humanos basados en uno o más rasgos conductuales o físicos intrínsecos. El término se deriva de las palabras griegas "bios" de vida y "metron" de medida.

La "biometría informática" es la aplicación de técnicas matemáticas y estadísticas sobre los rasgos físicos o de conducta de un individuo, para “verificar” identidades o para “identificar” individuos.

En las tecnologías de la información (TI), la autentificación biométrica se refiere a las tecnologías para medir y analizar las características físicas y del comportamiento humanas con propósito de autentificación.

Las huellas dactilares, las retinas, el iris, los patrones faciales, de venas de la mano o la geometría de la palma de la mano, representan ejemplos de características físicas (estáticas), mientras que entre los ejemplos de características del comportamiento se incluye la firma, el paso y el tecleo (dinámicas). La voz se considera una mezcla de características físicas y del comportamiento, pero todos los rasgos biométricos comparten aspectos físicos y del comportamiento.

Historia [editar]La biométrica no se puso en práctica en las culturas occidentales hasta finales del siglo XIX, pero era utilizada en China desde al menos el siglo XIV. Un explorador y escritor que respondía al nombre de Joao de Barros escribió que los comerciantes chinos estampaban las impresiones y las huellas de la palma de las manos de los niños en papel con tinta. Los comerciantes hacían esto como método para distinguir entre los niños jóvenes.

En Occidente, la identificación confiaba simplemente en la "memoria fotográfica" hasta que Alphonse Bertillon, jefe del departamento fotográfico de la Policía de París, desarrolló el sistema antropométrico (también conocido más tarde como Bertillonage) en 1883. Éste era el primer sistema preciso, ampliamente utilizado científicamente para identificar a criminales y convirtió a la biométrica en un campo de estudio. Funcionaba midiendo de forma precisa ciertas longitudes y anchuras de la cabeza y del cuerpo, así como registrando marcas individuales como tatuajes y cicatrices. El sistema de Bertillon fue adoptado extensamente en occidente hasta que aparecieron defectos en el sistema - principalmente problemas con métodos distintos de medidas y cambios de medida. Después de esto, las fuerzas policiales occidentales comenzaron a usar la huella dactilar - esencialmente el mismo sistema visto en China cientos de años antes.

En estos últimos años la biométrica ha crecido desde usar simplemente la huella dactilar, a emplear muchos métodos distintos teniendo en cuenta varias medidas físicas y de comportamiento. Las aplicaciones de la biometría también han aumentado - desde sólo identificación hasta sistemas de seguridad y más.


Funcionamiento y rendimiento [editar]En un sistema de Biometria típico, la persona se registra con el sistema cuando una o más de sus características físicas y de conducta es obtenida, procesada por un algoritmo numérico, e introducida en una base de datos. Idealmente, cuando entra, casi todas sus características concuerdan; entonces cuando alguna otra persona intenta identificarse, no empareja completamente, por lo que el sistema no le permite el acceso. Las tecnologías actuales tienen tasas de error que varían ampliamente (desde valores bajos como el 60%, hasta altos como el 99,9%).


El rendimiento de una medida biométrica se define generalmente en términos de tasa de falso positivo (False Acceptance Rate o FAR), la tasa de falso negativo (False NonMatch Rate o FNMR, también False Rejection Rate o FRR), y el fallo de tasa de alistamiento (Failure-to-enroll Rate, FTR o FER).

En los sistemas biométricos reales el FAR y el FRR puede transformarse en los demás cambiando cierto parámetro. Una de las medidas más comunes de los sistemas biométricos reales es la tasa en la que el ajuste en el cual acepta y rechaza los errores es igual: la tasa de error igual (Equal Error Rate o EER), también conocida como la tarifa de error de cruce (Cross-over Error Rate o CER). Cuanto más bajo es el EER o el CER, se considera que el sistema es más exacto.

Las tasas de error anunciadas implican a veces elementos idiosincrásicos o subjetivos. Por ejemplo, un fabricante de sistemas biométricos fijó el umbral de aceptación alto, para reducir al mínimo las falsas aceptaciones; en la práctica, se permitían tres intentos, por lo que un falso rechazo se contaba sólo si los tres intentos resultaban fallidos (por ejemplo escritura, habla, etc.), las opiniones pueden variar sobre qué constituye un falso rechazo. Si entro a un sistema de verificación de firmas usando mi inicial y apellido, ¿puedo decir legítimamente que se trata de un falso rechazo cuando rechace mi nombre y apellido?

A pesar de estas dudas, los sistemas biométricos tienen un potencial para identificar a individuos con un grado de certeza muy alto. La prueba forense del ADN goza de un grado particularmente alto de confianza pública actualmente (ca. 2004) y la tecnología está orientándose al reconocimiento del iris, que tiene la capacidad de diferenciar entre dos individuos con un ADN idéntico.


Tabla comparativa de sistemas biométricos [editar]Lo que sigue a continuación es una tabla en la que recogen las diferentes características de los sistemas biométricos:

Ojo (Iris) Ojo (Retina) Huellas dactilares Geometría de la mano Escritura y firma Voz Cara
Fiabilidad Muy alta Muy alta Alta Alta Media Alta Alta
Facilidad de uso Media Baja Alta Alta Alta Alta Alta
Prevención de ataques Muy alta Muy alta Alta Alta Media Media Media
Aceptación Media Media Media Alta Muy alta Alta Muy alta
Estabilidad Alta Alta Alta Media Baja Media Media


Estándares asociados a tecnologías biométricas [editar]En los últimos años se ha notado una preocupación creciente por las organizaciones regulatorias respecto a elaborar estándares relativos al uso de técnicas biométricas en el ambiente informático. Esta preocupación es reflejo del creciente interés industrial por este ámbito tecnológico, y a los múltiples beneficios que su uso aporta. No obstante ello, aún la estandarización continua siendo deficiente y como resultado de ello, los proveedores de soluciones biométricas continúan suministrando interfaces de software propietarios para sus productos, lo que dificulta a las empresas el cambio de producto o vendedor.

A nivel mundial el principal organismo que coordina las actividades de estandarización biométrica es el Sub-Comité 17 (SC17) del Joint Technical Committee on Information Technology (ISO/IEC JTC1), del International Organization for Standardization (ISO) y el International Electrotechnical Commission (IEC).

En Estados Unidos desempeñan un papel similar el Comité Técnico M1 del INCITS (InterNational Committee for Information Technology Standards), el National Institute of Standards and Technology (NIST) y el American National Standards Institute (ANSI).

Existen además otros organismos no gubernamentales impulsando iniciativas en materias biométricas tales como: Biometrics Consortium, International Biometrics Groups y BioAPI. Este último se estableció en Estados Unidos en 1998 compuesto por las empresas Bioscrypt, Compaq, Iridiam, Infineon, NIST, Saflink y Unisis. El Consorcio BioAPI desarrolló conjuntamente con otros consorcios y asociaciones, un estándar que promoviera la conexión entre los dispositivos biométricos y los diferentes tipos de programas de aplicación, además de promover el crecimiento de los mercados biométricos.

Los estándares más importantes son: Estándar ANSI X.9.84 Estándar creado en 2001, por la ANSI (American National Standards Institute) y actualizado en 2003, define las condiciones de los sistemas biométricos para la industria de servicios financieros haciendo referencia a la transmisión y almacenamiento seguro de información biométrica, y a la seguridad del hardware asociado.

Estándar ANSI / INCITS 358 Estándar creado en 2002 por ANSI y BioApi Consortium, que presenta una interfaz de programación de aplicación que garantiza que los productos y sistemas que cumplen este estándar son interoperables entre sí.

Estándar NISTIR 6529 También conocido como CBEFF (Common Biometric Exchange File Format) es un estándar creado en 1999 por NIST y Biometrics Consortium que propone un formato estandarizado (estructura lógica de archivos de datos) para el intercambio de información biométrica.


Procesos de Autentificación e Identificación biométrica [editar]En el proceso de autentificación (o verificación) los rasgos biométricos se comparan solamente con los de un patrón ya guardado, este proceso se conoce también como uno-para-uno ( 1:1 ). Este proceso implica conocer presuntamente la identidad del individuo a autentificar, por lo tanto, dicho individuo ha presentado algún tipo de credencial, que después del proceso de autentificación biométrica será validada o no.

En el proceso de identificación los rasgos biométricos se comparan con los de un conjunto de patrones ya guardados, este proceso se conoce también como uno-para-muchos ( 1:N ). Este proceso implica no conocer la identidad presunta del individuo, la nueva muestra de datos biométricos es tomada del usuario y comparada una a una con los patrones ya existentes en el banco de datos registrados. El resultado de este proceso es la identidad del individuo, mientras que en el proceso de autentificación es un valor verdadero o falso.

El proceso de autentificación o verificación biométrica es más rápido que el de identificación biométrica, sobre todo cuando el número de usuarios (N) es elevado. Esto es debido a que la necesidad de procesamiento y comparaciones es más reducido en el proceso de autentificación. Por esta razón, es habitual usar autentificación cuando se quiere validar la identidad de un individuo desde un sistema con capacidad de procesamiento limitada o se quiere un proceso muy rápido.


Cuestiones y preocupaciones [editar]Como con muchos otros progresos tecnológicos interesantes y de gran alcance, las excesivas dudas en lo referente a la biometría pueden eclipsar una crítica más general. La biometría puede llegar a asociarse con fallos severos de la justicia en aquellos casos en los que la tecnología ha desviado la atención del verdadero foco, así, un individuo podría:

introducir deliberadamente ADN en la escena de un crimen
relacionar sus propios parámetros biométricos con la identidad de otra persona
engañar a un detector de huellas dactilares mediante una superficie que tuviera una huella impresa en ella
engañar un reconocimiento ocular mediante una fotografía de un iris verdadero
interferir la señal del aparato de reconocimiento biométrico y el sistema informático que procesa dicha señal.

Robo de identidad [editar]Las preocupaciones acerca del robo de identidad por el uso de la Biometria aún no han sido resueltas. Si el número de tarjeta de crédito de una persona es robado, por ejemplo, puede causarle a esa persona grandes dificultades. Si sus patrones de escaneado de iris son robados, sin embargo, y eso permite a otra persona acceder a información personal o a cuentas financieras, el daño podría ser irreversible. Frecuentemente, las tecnologías biométricas han sido puestas en uso sin medidas adecuadas de seguridad para la información personal que es resguardada a través de las mismas.


Privacidad [editar]Aunque la biometría es frecuentemente utilizada como un medio para combatir la criminalidad, existe la preocupación de que la biometría pueda ser utilizada para disminuir las libertades personales de los ciudadanos.

Los desarrollos en tecnología video digital, infrarrojos, rayos X, inalámbricas, sistemas de posicionamiento global, biometría, escaneado de imágenes, reconocimiento de voz, ADN, y identificación de ondas cerebrales le proveen al gobierno con nuevos métodos para "buscar e investigar" vastas bases de datos individuales y colectivas de información sobre la población en general.

Los Padres de la Constitución de los Estados Unidos nunca pensaron acerca de este tipo de "búsquedas e investigaciones" cuando diseñaron la Cuarta Enmienda, pero como uno de los avances tecnológicos de nuestro tiempo, nosotros tenemos que pensar en ese contexto.

jueves, febrero 21, 2008

Real Desktop 3D

Se trata de otra de estas dudosas utilidades que aparecen por la red para que el escritorio parezca mas bonito. En este caso se trata de algo nuevo que hace que el escriotiro parezca un escritorio de verdad, con los iconos en 3D asi como la papelera. Todo se mueve a tu antojo, los iconos pueden desordenarse y ordenarse, colocarse unos encima de otros, etc ... Puede verse en el video.



Descarga: esta en version en especial viene parcheada con su correspondiente crack para tener la versión full y sin limitacion de tiempo. Pide numero de serie al iniciar, simplemente sera necesario introducir todo 0 y no volvera a pedirlo. Existe a su vez una version freeware con limitaciones de uso en la pagina oficial http://www.real-desktop.de/Spanish/index.htm .
http://rapidshare.com/files/93771296/3D_Real_Desktop_1.21_final___Crack.rar

miércoles, febrero 20, 2008

RSA - sistema criptográfico con clave pública

El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada preferentemente), y otra privada, la cual es guardada en secreto por su propietario.
Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes.
Cuando se quiere enviar un mensaje, el emisor busca la clave pública de cifrado del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, éste se ocupa de descifrarlo usando su clave oculta.
Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado.
Emplea expresiones exponenciales en aritmética modular.
La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales.
La computación cuántica podría proveer una solución a este problema de factorización.

Historia
El algoritmo fue descrito en 1977 por Ron Rivest, Adi Shamir y Len Adleman en el MIT; las letras RSA son las iniciales de sus apellidos. Fue inventado en Schenectady (estado de Nueva York). Clifford Cocks, un matemático británico trabajando para la agencia de inteligencia británica GCHQ describió un sistema equivalente en un documento interno en 1973. Debido a la lentitud de la implementación en las computadoras de la época, se lo consideró una curiosidad. Su descubrimiento sin embargo no fue revelado hasta 1997 ya que era confidencial.
El algoritmo fue patentado por el MIT en 1983 en Estados Unidos con el número 4.405.829. Esta patente expiró el 21 de septiembre de 2000. Como el algoritmo fue publicado antes de patentar la aplicación, esto impidió que se pudiera patentar en otros lugares del mundo. Como Cocks trabajó en un organismo gubernamental, una patente en Estados Unidos tampoco habría sido posible.

Generación de claves
Supongamos que Alicia y Bob están comunicándose a través de un medio de transmisión inseguro (abierto), y Alicia quiere enviar un mensaje privado (o seguro) a Bob. Usando RSA, Alicia tomará los siguientes pasos para la generación de la clave pública y privada:
Seleccione dos números primos largos y de manera que .
Calcule .
Calcule .
Seleccione un entero positivo e tal que el tales que e y φ(n) sean Primos entre sí.
Calcule d tal que .
Los números primos pueden ser comprobados con un test de primalidad (test probalístico).
(pasos 4 y 5 pueden ser realizados con el algoritmo extendido de Euclides; Ver aritmética modular.
(paso 5, puede también ser encontrado un entero que provoca:
, para ser un entero, entonces usando el valor de:
(del paso 3 PKCS#1 v2.1 usa λ = MCM(p − 1,q − 1) a la vez de φ = (p − 1)(q − 1) ).
La clave privada será d y la clave pública será e. *Adicionalmente el parámetro n debe hacerse público.
La clave pública consiste en:
n, el módulo.
e, el exponente público (a veces exponente de cifrado).
La clave privada consiste en:
n, el módulo, el cual es público y aparece en la clave pública
d, el exponente privado (a veces el exponente de descifrado), el cual debe permanecer oculto.
Normalmente, una diferencia de la clave pública (incluyendo parámetros del Teorema chino del resto “CRT” ) es almacenada:
p y q, los primos de generación de claves.
y son llamados: dmp1 y dmq1
conocido como iqmp
Esta forma permite rápidamente descifrar y autentificarse usando CRT. En esta forma, todas las partes de la clave privada deben ser ocultas(guardadas en secreto).
Alicia transmite la clave pública a Bob, y guarda las claves privadas p y q, las cuales están ocultas ya que son los factores de n, y con éstos se podría calcular d a partir de e; p y q no son guardados en el CRT de la clave privada, éstos están resguardados a lo largo de todos los procesos intermediarios de la generación de la clave.

Cifrado de mensajes
Ejemplo rápido: Bob quiere enviar a Alicia un mensaje secreto que solo ella pueda leer.
Alicia envía a Bob una caja con una cerradura abierta, de la que solo Alicia tiene la llave. Bob recibe la caja, el escribe el mensaje, lo pone en la caja y cierra esta con su cerradura (ahora Bob no puede leer el mensaje). Bob envía la caja a Alicia y ella la abre con su llave. En este ejemplo, la caja con la cerradura es la clave pública de Alicia, y la llave de la cerradura es su clave privada.
Supongamos que Bob desea enviar un mensaje M a Alicia. Él cambia M en un número m < n =" pq" d =" inv" c =" NeR" c =" h(M)dE" id="Descifrado_de_mensajes" name="Descifrado_de_mensajes">
Descifrado de mensajes
Alicia recibe c de Bob, y conoce su clave privada d. Ella puede recuperar m de c por el siguiente procedimiento:

Dado m, ella puede recuperar el mensaje M. El descifrado procede de la siguiente forma:

Ahora, con ed ≡ 1 (mod p-1) y ed ≡ 1 (mod q-1), el pequeño teorema de Fermat nos da
, p ≠ q, aplicando CRT a estas dos congruencias:
.
Así,


Ejemplo:
Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los parámetros usados aquí son pequeños y orientativos con respecto a los que maneja el algoritmo, pero podemos usar también OpenSSL para generar y examinar una par de claves reales.
p=61
1º nº primo Privado
q=53
2º nº primo Privado
n=pq=3233
producto p*q
e=17
exponente Público
d=2753
exponente Privado
La clave pública (e, n). La clave privada es d. La función de cifrado es:
encrypt(m) = me(mod n) = m17(mod 3233)
Donde m es el texto sin cifrar La función de descifrado es:
decrypt(c) = cd(mod n) = c2753(mod 3233)
Donde c es el texto cifrado. Para cifrar el valor del texto sin cifrar 123, nosotros calculamos:
encrypt(123) = 12317(mod 3233) = 855
Para descifrar el valor del texto cifrado, nosotros calculamos
decrypt(855) = 8552753(mod 3233) = 123
Ambos de estos cálculos pueden ser eficientemente usados por el algoritmo de multiplicación cuadrática para exponenciación modular.

Padding schemes (Esquema de relleno)
RSA debe ser combinado con alguna versión del padding scheme, ya que si no el valor de M resulta será textos cifrados inseguros. RSA usado sin padding scheme podría sufrir muchos problemas.
El valor m=0 o m=1 siempre produce textos cifrados iguales para 0 o 1 respectivamente, debido a propiedades de los exponentes.
Cuando ciframos con exponentes pequeños (e=3) y valores pequeños de m, el resultado de m podría ser estrictamente menor que el módulo de n. En este caso, el texto cifrado podría ser fácilmente descifrado, tomando la raíz e-ésima del texto cifrado sin tener en cuenta el módulo.
Dado que el cifrado RSA es un algoritmo determinista (no tiene componentes aleatorios) un atacante puede lanzar con éxito un ataque de texto elegido contra el criptosistema, construyendo un diccionario de textos probables con la llave pública, y almacenando el resultado cifrado. Observando los textos cifrados en un canal de comunicación, el atacante puede usar este diccionario para descifrar el contenido del mensaje.
En la práctica, el primero de los dos problemas podría presentarse cuando enviamos pequeños mensajes ASCII donde m es la concatenación de uno o mas carácter/es ASCII codificado/s. Un mensaje consiste en un solo carácter ASCII NUL (cuyo valor es 0) se codificaría como m=0, produciendo un texto cifrado de 0 sin importar qué valores de e y N son usados. Probablemente, un solo ASCII SOH (cuyo valor es 1) produciría siempre un texto cifrado de 1. Para sistemas convencionales al usar valores pequeños de e, como 3, un solo carácter ASCII mensaje codificado usando este esquema sería inseguro, ya que el máximo valor de m sería 255, y 2553 es menor que cualquier módulo razonable. De esta manera los textos sin cifrar podrían ser recuperados simplemente tomando la raíz cúbica del texto cifrado. Para evitar estos problemas, la implementación práctica del RSA se ayuda de algunas estructuras, uso del randomized padding dentro del valor de m antes del cifrado. Esta técnica asegura que m no caerá en el rango de textos sin cifrar inseguros, y que dado un mensaje, una vez que este rellenado, cifrará uno de los números grandes de los posibles textos cifrados. La última característica es la incrementación del diccionario haciendo este intratable a la hora de realizar un ataque.
Estándares como PKCS han sido cuidadosamente diseñados para la seguridad de los de mensajes importantes con el cifrado RSA. Porque el pad scheme rellena el texto sin cifrar m con algunos números adicionales (bits); el tamaño del mensaje un-padded M debe ser algo más pequeño. RSA-padding scheme debe ser cuidadosamente diseñado así como para prevenir ataques sofisticados los cuales podrían ser facilitados por la predictibilidad de la estructura del mensaje. Versiones más recientes del PKCS Standard usando construcciones ad-hoc, las cuales fueron encontradas vulnerabilidades más tarde en la practica adaptativa de elección de ataques de textos cifrados. Las construcciones modernas usan técnicas seguras como Optimal Asymetric Encryption Padding (OAEP) para proteger los mensajes mientras previenen estos ataques. El PKCS estándar también incorpora procesado de esquemas diseñados para proveer adicionalmente la seguridad de autentificaciones RSA. Por ejemplo: the Probabilistic Signature Scheme for RSA (RSA-PSS).

Autenticación de mensajes
RSA puede también ser usado para autenticar un mensaje. Supongamos que Alicia desea enviar un mensaje autentificado a Bob. Ella produce un valor hash del mensaje, aumenta la potencia de d≡ mod n (como ella hace cuando descifra mensajes), y marca con una “firma” el mensaje. Cuando Bob recibe el mensaje autentificado, él aumenta la autentificación para aumentar e≡ mod n (como hace él cuando cifra menajes), y compara el resultado hash con el actual valor hash del mensaje. Si es el resultado, el conoce que el autor del mensaje estaba en posesión de la clave secreta de Alicia, y que el mensaje no ha sido tratado de forzar entonces (no ha sufrido ataques).
Observar que la seguridad de padding-scheme como RSA-PSS son esenciales para la seguridad del mensaje cifrado, y que la misma clave nunca debería ser usada para ambos cifrados ni los propósitos de autentificación.

Seguridad
La seguridad del criptosistema RSA está basado en dos problemas matemáticos: el problema de factorizar números grandes y el problema RSA. El descifrado completo de un texto cifrado con RSA es computacionalmente intratable, no se ha encontrado un algoritmo eficiente todavía para ambos problemas. Proveyendo la seguridad contra el descifrado parcial podría requerir la adición de una seguridad padding scheme.
El problema del RSA se define como la tarea de tomar raíces eth módulo a componer n: recuperando un valor m tal que me=c ≡mod n, donde (e, n) es una clave pública RSA y c es el texto cifrado con RSA. Actualmente la aproximación para solventar el problema del RSA es el factor del módulo n. Con la capacidad para recuperar factores primos, un atacante puede computar el exponente secreto d desde una clave pública (e, n), entonces descifra c usando el procedimiento standard. Para conseguir esto, un atacante factoriza n en p y q, y computa (p-1)(q-1) con lo que le permite determinar d y e. No se ha encontrado ningún método en tiempo polinómico para la factorización de enteros largos. Ver factorización de enteros para la discusión de este problema.
La factorización de números grandes por lo general proponen métodos teniendo 663 bits de longitud usando métodos distribuidos avanzados. Las claves RSA son normalmente entre 1024-2048 bits de longitud. Algunos expertos creen que las claves de 1024 bits podrían comenzar a ser débiles en poco tiempo; con claves de 4096 bits podrían ser rotas en un futuro. Por lo tanto, si n es suficientemente grande el algoritmo RSA es seguro. Si n tiene 256 bits o menos, puede ser factorizado en pocas horas con un computador personal, usando software libre. Si n tiene 512 bits o menos, puede ser factorizado por varios cientos de computadoras como en 1999. Un dispositivo hardware teórico llamado TWIRL descrito por Shamir y Tromer en el 2003 cuestionó a la seguridad de claves de 1024 bits. Es actualmente recomendado que n sea como mínimo de 2048 bits de longitud.
En 1993, Peter Shor publicó su algoritmo, mostrando que una computadora cuántica podría en principio mejorar la factorización en tiempo polinomial, mostrando RSA como un algoritmo obsoleto. Sin embargo, las computadoras cuánticas no se esperan que acaben su desarrollo hasta dentro de muchos años….

Consideraciones prácticas

Generación de claves
Buscando números primos grandes p y q por el test de aleatoriedad y realizando tests probabilísticos de primalidad los cuales eliminan virtualmente todos los no-primos (eficientemente).
Los números p y q no deberían ser suficientemente cercanos para que la factorización de Fermat para n sea exitosa. Además, si cualquier p-1 o q-1 tiene sólo factores primos pequeños, n puede ser factorizado rápidamente, con lo que estos valores de p o q deben ser descartados.
Uno no debería emplear un método de búsqueda de primos con el cual dar alguna información cualquiera sobre los primos al atacante. En particular, un buen generador aleatorio de números primos para el comienzo del valor empleado. Observar que el requerimiento esta en ambos ‘aleatorios’ e ‘impredecibles’. Esto no son los mismos criterios; un número podría haber sido elegido por un proceso aleatorio, pero si éste es predecible de cualquier forma (o parcialmente predecible), el método usado resultara una seguridad baja. Por ejemplo: la tabla de números aleatorios de Rand Corp en 1950 podría muy bien ser verdaderamente aleatoria, pero ha sido publicada y a ésta puede acceder el atacante. Si el atacante puede conjeturar la mitad de los dígitos de p o q, ellos podrían rápidamente computar la otra mitad. (Ver Coppersmith en 1997).
Es importante que la clave secreta d sea muy grande. Wiener mostró en 1990 que si p esta entre q y 2q (es típico) y d
Velocidad
RSA es mucho más lento que DES y que otros criptosistemas simétricos. En la practica, Bob normalmente cifra mensajes con algoritmos simétricos, cifra la clave simétrica con RSA, y transmite a ambos la clave simétrica RSA-cifrada y el mensaje simétricamente-cifrado a Alicia.
Esto plantea además problemas adicionales de seguridad, por ejemplo, es de gran importancia usar un generador aleatorio fuerte para claves simétricas, porque de otra forma Eve (un atacante que quiera averiguar el contenido del mensaje) podría puentear la clave simétrica de RSA mediante la adivinación de la clave simétrica.

Distribución de claves
Como todos los cifrados, es importante como se distribuyan las claves públicas del RSA. La distribución de la clave debe ser segura contra un atacante que se disponga a espiar el canal para hacer un ataque de replay. Supongamos Eve (atacante) tiene alguna forma de dar a Bob arbitrariamente claves y hacerle creer que provienen de Alicia. Supongamos que Eve puede interceptar transmisiones entre Alicia y Bob. Eve envía a Bob su propia clave pública, como Bob cree que es de Alicia. Eve puede entonces interceptar cualquier texto cifrado enviado por Bob, descifrarlo con su propia clave secreta, guardar una copia del mensaje, cifrar el mensaje con la clave pública de Alicia, y enviar el nuevo texto cifrado a Alicia. En principio, ni Alicia ni Bob han detectado la presencia de Eve. Contra la defensa de ataques algunos están basados en certificados digitales u otros componentes de infraestructuras de la clave pública.

Ataques
Aquí se explican algunos de los ataques detectados para RSA.

Ataques de esquemas de relleno (scheme padding attacks)
Un ataque ha sido encontrado en algunas implementaciones de las firmas digitales RSA, haciendo uso del esquema de relleno (scheme padding)de PCKS-1 cuando la llave pública es e = 3. Un ataque similar podría aplicarse sobre implementaciones de firmas difitales especificador por la ANS (American National Standart) X9.31.Este ataque no es sobre el algoritmo de RSA, si no que de una incorrecta implementación del proceso de verificación de firmas-
Como funciona el ataque
Contexto
Una firma digital PKCS-1 es computada en un valor hash H(M) es que rellenado de la siguiente manera: 00 01 FF FF …FF 00 ASN.1 H(M)
Donde 00 01 FF FF …FF 00 es el valor de relleno, ASN.1 es usado para proveer información sobre la función de hash (básicamente, el largo del valor del hash), y H(M) es el valor del hash. Nótese que el valor del hash H(M) debería ser justificado a la derecha. En este caso, después que la firma digital es descifrada usando un exponente público, el texto rellenado de arriba debería obtenerse.
El valor de hash H(M) puede ser extraído buscando a través del relleno y de los valores de ASN.1, y seleccionando el numero apropiados de bytes a continuación. Una manera de verificar la firma es comparando el valor extraído de H(M) con una valor de hash computado separadamente del mensaje M. Si son iguales, se considera una firma digital válida.
X9.31 posee un método similar de relleno, la única diferencia es que en vez de estar justificado a la derecha, el valor del hash es seguido por 2 bytes (trailer) con un valor arreglado. Cuando se usa SHA-1, el relleno del valor del hash es así: 6B BB BB ...BB BA H(M) 33 CC
Problema
Algunas implementaciones extraen el numero de bits para el valor del hash a partir de la posición relativa al relleno, sin verificar si hay información inesperada después del valor del hash.En el caso de PKCS-1, el valor del hash es seleccionado al encontrar el final del relleno y del final del valor ASN.1, y luego extrayendo el valor del hash sin verificar si hay información adicional seguida del valor del hash. (es decir, cuando el valor del hash esta justificado a la derecha en el texto hasheado del relleno). En el caso de ANS X9.31, el valor del hash es elegido cuando se encuentra el fin del relleno, y cuando se extrae el valor del hash sin chequear que solo 2 bytes con los valores esperados sigan a continuación del valor del hash en el texto hasheado del relleno.
Ataques
Cuando se usa el métedo de PKCS-1, para algún mensaje M con valor de hash H(M), es algo fácil encontrar la raíz cúbica de un String como: 00 01 FF …FF 00 ASN.1 H(M) basura
Donde el numero de ocurrencias de FF en el relleno es reducido, y la basura es inteligentemente escogida para modificar el texto al cubo de algún valor.
Cuando se usa el relleno ANS X9.31 el hash de este podría ser alterado reduciendo el número de ocurrencias de BB en el relleno:
6B BB BB ...BB BA H(M) basura
Donde los últimos 2 bytes de basura son el trailer esperado (p.e., 33 CC), y el hash del relleno modificado del texto tiene una raíz cubica.
El ataque fue presentado con e=3 como ejemplo. Para ambos métodos de relleno, cuando un valor pequeño de e es usado, y cuando puede encontrarse la raíz de un texto (como el de arriba) entonces el ataque tendrá éxito. Cuando e es grand, encontrar la raíz (eth root) módulo n será muy difícil.
Como prevenir este ataque cuando se usa PKCS-1:
• No usar 3 como el exponente público para las firmas RSA.
• Si el esquema de relleno PKCS-1 es usado para encontrar el valor del hash, entonces hay que verificar que no hay más información a la derecha del valor del hash.
Como prever este ataque cuando se usa ANS X9.31:
• No usar el 3 o el 2 como el exponente público para las firmas digitales. • Si el esquema de relleno ANS X9.31 es usado para encontrar el valor del hash, entonces hay que verificar que el valor del hash es seguido por sólo 2 bytes que contienen el valor esperado.

Ataques que miden el tiempo
Este tipo de ataque puede ser comparado con la siguiente situación: Si Alicia quiere tener sus pertenencias seguras en casa, comprará una buena cerradura y pondría varias de estás en su puerta. Sin embargo, un ladrón que quiera entrar a su propiedad puede simplemente remover el marco de la puerta y entrar sin problemas en su hogar, robando todo lo que Alicia quiso proteger. Si bien este tipo de ataques no es común en el mundo real, si existe un símil en el mundo del cifrado, el llamado timing attack.
Timing attacks son una forma de "ataque de canal secundario" donde el atacante recopila información sobre la implementación del sistema de cifrado en vez de buscar alguna debilidad inherente en las propiedades matemáticas del sistema. Fuentes imprevistas de información aparecen debido a la manera con la que se ejecuta una operación o el medio usado. Ataques de canal secundario utilizan información sobre el tiempo de cifrado, consumo de poder, emanaciones electromagnéticas o incluso sonido para recuperar información secreta sobre el sistema de cifrado.
Ataques de tiempo explotan la variación del tiempo en las operaciones de criptografía. Debido a optimizaciones del rendimiento,los cómputos realizados por un algoritmo criptográfico toman, por lo general, distintas cantidades de tiempo, dependiendo de la entrada y del valor del parámetro secreto. Si los tiempos de operaciones relativos a la llave privada de RSA puede ser estimados de manera razonablemente precisos, en algunos casos puede aplicarse un análisis estadísticos para obtener la clave secreta involucrada en las operaciones.

Como funcionan los ataques de tiempo
Aquí tenemos una ilustración simple de como funcionan los ataques de tiempo.
Sea C el mensaje a descifrar, d la llave privada a ser obtenida, denotada por d0d1…dn donde d0 = 1. El cálculo a ser realizado es Cd mod N. Suponga que los algoritmos raíz cuadrada y multiplicación son usados para computar esta potencia modular, y la operación mod(x,N) está implementada en la Figura 2.
x = C
for j = 1 to n
x = mod(x2, N)
if dj == 1 then
x = mod(xC, N)
end if
next j
return x
Figura 1: Algoritmos del cuadrado y multiplicación.
mod(x, N)
if x >= N
x = x % N
end if
return x
Figura 2: Pseudocode de la función mod
Considere los algoritmos del cuadrado y de multiplicación en la figura 1. Si dj = 0 entonces x = mod(x2, N), pero si dj = 1 entonces dos operaciones, x = mod(x2, N) y x = mod(xC, N), se realizan. En otras palabras, el tiempo de computación debería ser mayor cuando dj=1. Notése además en la Figura 2 que la reducción modular "%" es ejecutada solo si el resultado intermedio de la multiplicación es mayor que el modulo de N. Este ataque explota estos dos hechos y usa dos conjuntos de mensajes, uno tipo para los que el calculo de mod(xC, N) requiera una reducción y otro en el que no.
Asumamos que podemos hacer que el sistema descifre un mensaje de nuestra elección, lo que es comúnmente posible en sistemas reales. Comenzamos atacando d1 eligiendo 2 mensajes Y y Z, donde Y3 < j =" 1." x =" mod(x" x =" mod(x" d1 =" 1." i =" 0," i =" 0," y =" (y0" z =" (z0"> y + e, donde e puede ser determinado empíricamente, concluimos que d1 = 1; si no d1 = 0. Una vez que d1 es conocido, podemos atacar d2 mediante un proceso análogo eligiendo Y y Z valores que satisfagan distintos criterios. La llave privada d puede ser obtenida bit a bit utilizando este método
Lo interesante de este ataque es la simpleza. Para que este ataque funcione no necesitamos conocer los detalles de la implementación del algoritmo, y tampoco necesitamos saber como factorizar números primos grandes, todo lo que necesitamos saber es que las potencias son realizadas mediante el uso de cuadrado y multiplicación.
Una forma de frustrar estos ataques es asegurar que la operación de descifrado tome un tiempo constante en todos los textos cifrados. Sin embargo, esta aproximación puede significar la reducción del funcionamiento. En vez, de más implementaciones RSA una técnica alternativa conocida como blindaje criptográfico. RSA binding usa propiedades multiplicativa del RSA. A la vez computando (rec)d ≡mod n. El resultado de esta computación es rm≡ mod n y también en efecto r puede ser eliminada multiplicándolo por su inversa. Un nuevo valor de r es escogido para cada texto cifrado, Con el blindaje aplicado, el tiempo de descifrado se relaciona con el tiempo del texto cifrado así que el ataque de sincronización falla.

Ataques de potencias
Ataque basado en un exponente público "bajo"
Aunque un exponente bajo acelera el cifrado, también lo hace más inseguro. Si se cifran e(e+1)/2 mensajes linealmente dependientes con diferentes claves públicas y el mismo valor de e hay un ataque contra el sistema. Si los mensajes son idénticos entonces es suficiente con e mensajes. La solución más sencilla a este problema es añadir a los mensajes valores aleatorios independientes, PGP por ejemplo hace esto de modo que un mismo mensaje no se cifrará dos veces de la misma manera.
Ataque basado en un exponente privado "bajo"
Otro ataque, permite recuperar d cuando éste no supera un cuarto de n y e es menor que n. Esto ocurre raramente si e se elige al azar. El fundamento matemático del ataque es la representación de los números racionales como fracciones continuas finitas.

Ataques usando Predictor de saltos (Branch Predictor Analysis, BPA)
El análisis del predictor de saltos (Branch Prediction Analysis, (BPA)), ha llevado recientemente a un nuevo ataque de "canal secundario" algo parecido a los timing attacks para RSA. Prolijos procesos espías que corran simultáneamente con un proceso RSA, son capaces de colectar durante sólo una ejecución de RSA casi todos los bits de una llave secreta. Se le llama a este tipo de ataque, que consiste en analizar los estados del Predictor de saltos de un CPU espiando un único casi-paralelo proceso, Ataque de análisis de predictor de saltos (En inglés, Simple Branch Prediction Analysis (SBPA)). Bastante diferente a aquellos métodos que se basan en métodos estadísticos o que requieren muchos datos sobre el calculo relativo a una misma llave.
La recuperación de casi todas los bits de una llave secreta de un ataque SBPA contra una implementación OpenSSL de RSA demuestra que las técnicas de aleatorización utilizadas para proteger a RSA de ataques de "canal secundario" son (relativo a los ataques SBPA) totalmente inútiles. Desafortunadamente, esto no es cierto, ya que incluso estas implementaciones de “balanced branch” pueden ser totalmente descifradas por los ataques SBPA. Aún más, a pesar de métodos de particionamiento asistidos por hardware, tales como protección de memoria, sacos de arena o incluso virtualización, ataques SBPA logran tomar control sobre un proceso sin importancia para poder atacar a otro proceso que corre en paralelo en el mismo procesador. Es por esto, que concluimos que los ataques SBPA son mucho más peligrosos que lo previamente anticipado y que ciertamente no corresponden a ataques de tiempo.

Ataques adaptativos al texto cifrado elegido
En 1998, Daniel Bleichenbacher describió el primer ataque adaptativo eligiendo textos cifrados contra mensajes cifrados con RSA usando el PKCS #1 v1 padding scheme (un padding scheme aleatorio, que crea estructura para un mensaje cifrado-RSA, así es posible determinar si el mensaje descifrado es válido) Debido a defectos con PKCS #1 scheme, Bleichenbacher hizo posible montar un ataque práctico contra la implementación RSA del protocolo Secure Socket Layer, y recupero la sesión de claves. Como resultado de este trabajo, los criptógrafos ahora recomiendan el uso de seguridad padding scheme con Optimal Asymmetric Encryption Padding, laboratorios RSA han realizado nuevas versiones de PKCS #1 que no son vulnerables a estos ataques.

Texto obtebido integramente de la wikipedia.

martes, febrero 19, 2008

bootsect.exe

Se trata de un pqueño programa ejecutable desde una consola de msdos que sirve para recuperar el arranque de vista si este ha fallado o bien como en el caso del vista portable para hacer boteable una unidad usb que tenga instalado este SO. Tambien sirve para recuperar el masterboot record de windows anteriores basados en la arquitectura nt.
Su sintasis es:
- bootsect.exe /nt60 x: /force (para windows vista siendo x: la unidad donde este instalado)
- bootsect.exe /nt52 x: /force (para arquitectura nt)
Se recomienda el parametro force para "forzar" la recuperacion en caso de que de error sin este.

Descarga: http://rapidshare.com/files/74914492/bootsect.rar



Windows Vista USB Lahyn


Mejoras:
Integraccion de drivers ati e intel.
Supresion de directx, agregado soporte para opengl.
Maquinas vistuales: fearless, quake2, thingos, Nebulous.
Añadido sisoft sandra lite.
Ahora funciona en discos usb fat32 mediante bootsect.exe.
Soporte nativo para discos sata, scsi.
Puede modificarse el mismo asi como el wim de inicio con imagex.
Especialmente habilitado para discos de gran capacidad 8 GB o más.
Contruido bajo la base de vistape v10.
Añadido soporte para comparticion de ficheros en red (script de la versión 11)
Internet explorer 7.
Hypercam para grabar video de la pantalla.
Probando juegos mediante opengl (emuladores de playstation)
Menu inicio traducido al castellano.
Suprimido nod32, no sirve el script para las nuevas versiones.
Las maquinas virtuales no funcionaran con no menos de 1,5 GB de ram.
Particion de 256 MB en ram usada como disco de almacenamieto removible.

Incoporrando Microsoft Encarta tambien al mismo.

Descarga: NO disponible.

domingo, febrero 17, 2008

Moka5

Se trata de un emulador portable que implementa vmware player como motor para emular los diferentes SO. Que quiere decir esto? que es posible llevar varios SO metidos en un pendrive o disco usb y ejecutarlos en cualquier pc. Desde la propia pagina se ofrece la descarga de varios SO ya instalados que solo es encesario bajar. ¿que otros avances ofrece? entre otras muchas cosas da soporte a 3D o bien dichod e otro modo desde esta aplicacion se puede jugar a juegos en 3D tipo quake u otros.
¿qué más puede ofrecer? Pues aún hay más, existen varias versiones, entre ellas una para pc que he mencionado anteriormente, luego otra de similares caracteristicas para Mac y como añadido otra que puede ejecutarse independientemente de que exista SO en el pc. ¿como se hace esto? Es un pequeño entorno linux que se instala en un disco duro independiente y que lleva implementado vmware para emular los SO, ofrece ademas soporte para tarjetas wifi, el problema de este es que aún no han conseguido que funcionen los juegos en 3D desde el mismo. Puede instalarse tambien en un pendrive o disco usb y este se denomina moka5 baremetal.
Para ejecutar vmware desde un pendrive lo que hace es instalar y desintalar de forma invisible para el usuario vmware cada vez que se ejecuta. Como todos sabreis vmware precisa de un soporte para red, lleva sus propios dispositivos vistuales para conectar la maquina servidor con la cliente con lo cual es necesario realizar esta accion.
Sin mas preambulos la página donde puede descargase es: http://www.moka5.com/ . Es complemtanete gratutito asi como todas las consolas virtuales ya preinstaladas y listas para usarse que se ofrecen en el mismo. A destacar Fearless browser como navegador anonimo desde una consola virtual y realizado por alguno de los creadores de esta herramienta o quqke2 para comprobar el funcionamiento de los graficos 3D bajo este.


Descarga: http://rapidshare.com/files/95715220/moka5engine-setup-latest.rar

martes, febrero 12, 2008

Pequeña guia para crear una live de windows vista

Poco que decir sino mas bien una pequeña guia para orientarse a la hora de crear nuestra propia livecd o usb. Su predecesor BartPE, Microsoft ante este y la imposibilidad de hacer que este programa desapareciara de la red finalmente se vio en la obligacion de publicar Windows AIK de forma gratuita para cualquiera (antes solo estaba disponible para empresas).
Con las alida de windows Vista la plataforma cambia y por ello es necesario utilizar otro programa, como todo lo nuevo dista de ofrecer los servicios que ofrece windows xo y/o bartpe aunque a la larga nos bligaran a cambiar a este SO al hacer aplicaciones solamente para este incompatibles con Windows XP.
Mi opnion al respecto es que en realidad es lo mismo, más bonito para que la gente empieze a picar y pensarse en cambiarse para el nuevo necesitando este mas recursos y por ello siendo necesario en muchos casos un desembolso monetario en hardware por no decir por supuesto el coste de la licencia de windows. A parte de esto y de mi opinión existe la posibilidad de crear una imagen de cd o usb para ejecutarlo desde el mismo para comprobar lo poco que ha cambiado respecto a su predecesor o bien como disco de rescate como lo ha sido durante mucho tiempo bartpe y sus variantes (Reatogo, UBCD4win, etc ....).


Bueno pues despues de esta pequeña introduccion y habiendo dado mi opinión aparece un programa que permite crear facilmente este tipo de lives sin mucha complicacion, la versión de microsoft es algo mas complicada. Este se denomina Winbuilder y en su pagina pueden encontrarse diferentes versiones, pluggins para instalar software adicional, plggins de drivers, etc ..... Tambien cuentan con un amplio foro y por si no fuera poco el mismo programa ofrece la posibilidad de crear livecds de windows xp, linux, reactos en diferentes versiones asi como la posibilidad de complementarlos para que el resultado final sea una version multiboot. Las dos versiones que se encuentran por ahora disponibles para descarga en esta pagina han sido hechas con el programa en cuestion y aunque les falta alguna que otra cosa y dan en algunas ocasiones diversos fallos al ejecutar ciertas aplicaciones el resultado final es bastante satisfactorio. Falta por salir segun creo yo el soporte para wifi y sonido.
Este es el enlace a la pagina: http://www.boot-land.net/

sábado, febrero 09, 2008

Windows Vista Montse Edition

Windows Vista Montse Edition USB






Aqui queda la ultima version de este SO esta vez para memorias USB con una capacidad de al menos 4GB. Poco que decir. Ademas de Windows Vista lleva implementado el software moka5 para emular SO desde la memoria usb mediante vmware (funciona desde el propio vista portable o en el windows instalado en el pc. Para ejecutarlo acceder a la raiz del usb y ejecutar el archivo llamado: moka5launch.exe. Por defecto lleva 3 SO, uno de ellos es unicamente el juego Quake2, los otros dos son el famoso Puppy Linux y un navegador bastante recomendado denominado Fearlees Browser.


Esta version para USB lleva implementado directx10 con lo cual ahora algunos juegos funcionan desde el mismo. Lleva un emulador de juegos NES con varias Roms. Tambien puede verse ejecutando el quake2 desde el moka en el vista. No lleva sonido ni soporte para wireless. Esperemos que desde la comunidad winbuilder no tarden en crear unos buenos pluggins para dar soporte a estos servicios. Tambien Lleva programas de recuperacion, mantenimiento, reaparaccion del PC asi como Photoshop CS3 en castellano y toda la suite de openoffice tambien en castellano.
Gracias a que va implementado en una memoria usb se pueden guardar datos en el mismo asi como añadir mas sooftware (se recomienda que sea portable) funciona mejor ya que la mayoria de este lleva todas las dependencias en el mismo paquete.



El contenido es una imagen ghost para intriducirla en el pendrive mediante Norton Ghost y Norton Ghost 8.2. El proceso de instalaccion en la memoria usb es realmente facil. Solamente indicar que el pendrive debera de estar formateado en NTFS para que funciona correctamente.


Descarga: