Está en la página 1de 118

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA


MECÁNICA Y ELÉCTRICA

UNIDAD PROFESIONAL “ADOLFO LÓPEZ MATEOS”

DISEÑO E IMPLEMENTACIÓN DE UN TOKEN DE


SEGURIDAD DE CONTRASEÑA DESECHABLE

T E S I S

QUE PARA OBTENER EL TITULO DE:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTAN:

JOSÉ LEYVA ANDRÉS

ROBERTO MORA VARGAS

ASESORES:

M EN C ERIC GÓMEZ GÓMEZ

CIUDAD DE MÉXICO 2016


Página 2
AGRADECIMIENTOS

Agradezco a mis padres por la oportunidad que me dieron de


estudiar en esta gran escuela ya que con sacrificios y desvelos hicieron de mí
una persona con valores, una persona preparada y con educación.

Gracias por las pláticas y consejos que día a día me seguirán ayudando en mi
vida personal y ahora profesional.

A mis asesores de Tesis ya que sin su ayuda no hubiera sido posible la


realización del presente trabajo ya que pase por muchos tropiezos para lograr
este objetivo que me había trazado desde el inicio de mi carrera.

A mi novia por estar conmigo siempre y en todo lugar por comprenderme,


entenderme y apoyarme así como darme esa fuerza necesaria para superar
cualquier obstáculo en esta etapa nueva de mi vida.

Y en especial a dios por bridarme la oportunidad de vivir.

Jose Leyva Andres

Página 3
AGRADECIMIENTOS
Primero que nada quiero agradecerle a dios por permitirme
alcanzar este logro en mi vida, ya que este es uno de mis más grandes logros
que eh podido culminar. A mi mama Columba por darme todo de sí para verme
triunfar, madre no tengo palabras para poderte expresar todo lo agradecido que
estoy de todo lo que has hecho de mí, gracias dios por darme la bendición que
seas mi madre, Te amo. Mama Angelina y Papa Rodrigo, gracias por sus
consejos, su apoyo, estar siempre para mí y guiarme para convertirme en un
hombre de bien, Los amo. A mí ya hoy esposa Verónica, no tengo como pagarte
el cómo me has cambiado la vida, el volverte mi cómplice en este barco y el
tenerme tanta paciencia, tolerancia y aún más apoyarme siempre para lograrlo.
A mis hermanos Erik, Dulce y Daniela por todo su cariño, sus consejos, su apoyo
para no decaer y levantarme cuando caía. A mis amigos y jefes Claudia y
Ricardo que sin todo su apoyo, sus consejos, sus enseñanzas y conocimientos
no hubiera podido aprender tantas cosas y sobre todo replicarlas en esta etapa.
A mis amigos y compañeros del SINIIGA así como a la Comercializadora de la
Confederación Nacional Ganadera por darme la oportunidad de estudiar y
trabajar al mismo tiempo para así poder concluir mis estudios universitarios de
verdad muchas gracias. A mis amigos Elizabeth, Guillermo, Dalu, Pablo, Tere
Aguilera, Tere Vitela, Omar, Carlos, Gallo, etc. por siempre apoyarme en las
buenas y en las malas, así como todos sus consejos y el empuje que me han
brindado hasta el día de hoy de verdad muchas gracias por su amistad. A mi
buen amigo y hermano Jose cómplice de este proyecto que gracias a tus enojos,
esfuerzo, dedicación, tolerancia, respeto entre más cosas hemos podido lograr
nuestro objetivo, gracias por estar ahí. A mis profesores Eric Gómez y Luis
Orantes que sin su apoyo, dedicación, tiempo, paciencia, sus enseñanzas y
sobre todo su profesionalismo pudimos lograr nuestro objetivo.

Nuevamente a todos ustedes y por ustedes MUCHISIMAS


GRACIAS por todo, espero que la vida me permita agradecerles hoy, mañana y
siempre.
.
Bien dicen “La vida es cuesta arriba pero la vista de arriba es genial”

Roberto Mora Vargas

Página 4
OBJETIVO

CIUDAD DE MÉXICO 2016


Implementar un dispositivo token de seguridad de contraseña desechable como

una alternativa de acceso bancario a través de internet.

Página 6
ÍNDICE

CIUDAD DE MÉXICO 2016


Objetivo ................................................................................................................................ 5

Índice ..................................................................................................................................... 7

Introducción ......................................................................................................................11

Antecedentes ....................................................................................................................13

Capítulo 1 Seguridad en la información ....................................................................15


1.1 Introducción ..............................................................................................................16
1.2 Protección de datos ................................................................................................18
1.3 Retos de la seguridad .............................................................................................19
1.4 Amenazas y vulnerabilidades................................................................................20
1.4.1 Vulnerabilidades ...............................................................................................24

Capítulo 2 Token de seguridad ....................................................................................25


2.1 Introducción ..............................................................................................................26
2.2 Tipos de token de seguridad .................................................................................27
2.2.1 Token de contraseña desechable .................................................................27
2.2.2 Token temporizado ..........................................................................................27
2.2.3 Token de desafío .............................................................................................28
2.3 Tokens comerciales ................................................................................................29
2.3.1 Casque...............................................................................................................29
2.3.2 Tarjetas con banda magnética.......................................................................30
2.4 Banca electrónica ....................................................................................................31
2.4.1 Definición ...........................................................................................................31
2.4.2 Ventajas y barreras..........................................................................................32
2.5 Procedimiento y medidas de seguridad...............................................................33
2.6 Uniotp ........................................................................................................................34
2.6.1 Alto costo ...........................................................................................................34

Página 8
Capítulo 3 Generadores de números aleatorios .....................................................35
3.1 Introducción ..............................................................................................................36
3.2 Generador de números aleatorios ....................................................................36
3.2.1 Definición de un número aleatorio.................................................................37
3.2.2 Definición de un generador de números aleatorios....................................38
3.2.2.1 Ventajas y desventajas ............................................................................39
3.2.3 Generalidades de los números aleatorios ...................................................40
3.3 Tipos de generadores de números aleatorios ....................................................42
3.3.1 Generador xorshift ...........................................................................................42
3.4 Generador fsr feedback shift register...................................................................43
3.5 Generador blum blum shub (bbs) .........................................................................45
3.6 Generadores congruenciales ...............................................................................47
3.6.1 Tipos de generadores congruenciales lineales...........................................48

Capítulo 4 Tecnologías de la información utilizados .............................................50


4.1 Interfaz de entrada común .....................................................................................51
4.1.1. Forma de actuación del CGI .........................................................................52
4.1.2 Programación de un CGI ................................................................................52
4.1.3 Intercambio de información variables de e ntorno.......................................53
4.1.4 Tipos habituales de CGI .................................................................................54
4.1.5 Escenario de activación de un CGI...............................................................54
4.2 Microcontrolador ......................................................................................................56
4.2.1 Características del microcontrolador PIC18f4550 ......................................57
4.3 PHP ...........................................................................................................................61
4.4 Modelo entidad-relación .........................................................................................64
4.4.1 Entidades y relaciones ....................................................................................64
4.4.1.1 Entidad .......................................................................................................65
4.4.1.2 Relación (PHP) .........................................................................................65
4.4.2 Representación gráfica de entidades y relaciones.....................................66

Página 9
Capítulo 5 Implementación del token de contraseña desechable......................67
5.1 Generación de las contraseñas de un solo uso .................................................68
5.2 Método para la generación de la contraseña desechable para el token........69
5.3 Validación de la contraseña desechable en el servidor ....................................70
5.4 Número de máximas contraseñas desechables generadas ............................73
5.5 Construcción del token ...........................................................................................73
5.6 Prueba del dispositivo token..................................................................................75

Trabajos futuros ...............................................................................................................80

Conclusiones ....................................................................................................................82

Anexos ................................................................................................................................85

Glosario ........................................................................................................................... 102

Bibliografia ..................................................................................................................... 117

Página 10
INTRODUCCIÓN

CIUDAD DE MÉXICO 2016


La seguridad de la información es uno de los conceptos más utilizados y sonados

en los últimos años. La seguridad es un tema muy amplio y difícil de abarcar ya que

la cantidad de información que se proporciona de una persona, ya sea a través de

internet, cuentas bancarias, correo electrónico y redes sociales, cabe la posibilidad

de proporcionar la información de una forma fácil y sencilla, y obtener algún dato

con el cual pudieran atacar de una forma u otra el contenido de información y

volverla vulnerable.

A muchas personas les resulta muy cómodo tener siempre a la mano sus datos

personales o consultarlos de manera rápida y sencilla, tan solo con acceder a

internet, esto puede permitir que cualquier persona pueda tener acceso a nuestra

información personal, por lo cual se tiene como resultado la responsabilidad de

cuidar y monitorear toda nuestra información de cuentas e inclusive documentos

que se tengan en línea.

Considerando lo anterior, la seguridad de la información de cada persona es una

prioridad, ya que en los últimos años más de la mitad de la población tiene acceso

a internet y en su mayoría se tiene acceso a cuentas bancarias, correos

electrónicos, redes sociales, etc. y estos podrían ser muy fáciles de atacar o

desmantelar con un simple troyano o virus informático y así obtener la información,

es por eso que se requieren nuevos métodos de seguridad para salvaguardar los

datos de cada usuario y así poder tener la seguridad que cada uno desee obtener.

Página 12
ANTECEDENTES

CIUDAD DE MÉXICO 2016


La seguridad en los datos abarca desde las primeras computadoras con programas
nativos, empezando a utilizar contraseñas para cada usuario registrado y con esto
poder ingresar a la información correspondiente.

Las máquinas de hoy en día tienen la posibilidad de protegerse a través de


diferentes programas o aplicaciones como por ejemplo reconocimiento de voz,
huellas dactilares e inclusive programas administrativos, pero esto, al paso del
tiempo se ha ido haciendo cada vez más vulnerable a los ataques cibernéticos y a
la facilidad de poder encontrar un programa capaz de poder manipular o inclusive
monitorear a un usuario desde una computadora.

Una de las opciones de seguridad más viables son los token de seguridad, porque
tiene la posibilidad de enlazarse con un servidor y darle una mayor protección a la
información, el servidor genera un número aleatorio e irrepetible al token y con esto
el usuario se podrá conectar a su cuenta o sistema con una mayor protección, es
por ello que las instituciones bancarias (solo algunas) utilizan este sistema de
seguridad, de ahí la importancia que se tiene mediante la aleatoriedad para poder
asignarle a cada persona o usuario la posibilidad de tener a salvo su cuenta, sus
datos , archivos, etc.

El token es una forma de seguridad implementada por bancos exclusivamente, pero


la idea de esta tesis es realizar uno (token), el cual se podrá implementar en casi
cualquier sistema, desde una cuenta de correo institucional hasta sistemas de
seguridad privada o servidores con gran cantidad de información.

Hoy en día los token no son tan conocidos y a su vez estos son caros, lo que se
pretende realizar, es hacer un token mucho más funcional, rápido, barato y
confiable, y con esto poderlo implementar en un futuro a teléfonos móviles, tabletas
o pantallas de Tv.

Página 14
CAPÍTULO 1
SEGURIDAD EN LA
INFORMACIÓN

CIUDAD DE MÉXICO 2016


1.1 INTRODUCCIÓN
Lo primero que se debe diferenciar es "Seguridad Informática" y "Seguridad de la
Información", pueden parecer exactamente lo mismo, sobre todo si se tiene en
cuenta que el desarrollo y la evolución de la tecnología tienden hacia el modelo de
"digitalizar" y "manejar" cualquier tipo de información mediante un sistema
informático. No obstante, aunque están destinados a vivir en armonía y trabajar
conjuntamente, cada una de las áreas de Seguridad tienen objetivos y actividades
diferentes.

La Seguridad Informática se centra en proteger las infraestructuras tecnológicas y


de comunicación que soportan la operación de una organización (se centra
básicamente en infraestructura y programas), y que estas sean utilizadas de la
manera indicada por una Organización. Su análisis de riesgos se centra en
vulnerabilidades de la infraestructura o programas, y con esto se lleva a un nivel
aceptable por una organización. (Figura 1.1)

Figura 1.1 Seguridad Informática vs Seguridad de la Información

La seguridad de la Información por su parte tiene como propósito proteger la


información de una Organización, independientemente del lugar en que se localice:
ya sean impresos en papel, en discos duros de computadoras o incluso en la
memoria de las personas que la conocen.

Página 16
El concepto de seguridad de la información no debe ser confundido con el de
seguridad informática, ya que este último sólo se encarga de la seguridad en el
medio informático, porqué la información puede encontrarse en diferentes medios o
formas, y no solo en medios informáticos.

La Seguridad de la Información tiene tres principios fundamentales:

Confidencialidad.- La confidencialidad es la propiedad que impide la divulgación


de información a personas o sistemas no autorizados. A grandes rasgos, asegura
el acceso a la información únicamente a aquellas personas que cuenten con la
debida autorización.

Integridad.- Es la propiedad que busca mantener los datos, libres de modificaciones


no autorizadas. A grandes rasgos, la integridad es mantener con exactitud la
información tal cual fue generada, sin ser manipulada o alterada por personas o
procesos no autorizados.

Disponibilidad de la información.- La disponibilidad es la característica, cualidad


o condición de la información de encontrarse a disposición de quienes deben
acceder a ella, ya sean personas, procesos o aplicaciones. En resumen, la
disponibilidad es el acceso a la información y a los sistemas por personas
autorizadas en el momento que así lo requieran. (Figura 1.1.2)

Figura 1.1.2 Esquema de la seguridad

Página 17
1.2 PROTECCIÓN DE DATOS

El objetivo de la protección es tratar de evitar su pérdida y modificación no


autorizada. La protección debe garantizar en primer lugar la confidencialidad,
integridad y disponibilidad de los datos, sin embargo existen más requisitos como la
autenticidad, entre otros.

El motivo para implementar medidas de protección que respondan a la seguridad


de la información, es el propio interés de la institución o persona que maneja los
datos, ya que la pérdida o modificación de los datos, puede causar un daño material
o inmaterial.

Para el caso de la protección de los datos, el objetivo de esta no son solo los datos
en sí mismo, sino el contenido de la información sobre personas, para evitar el
abuso con fines de lucro. (Figura 1.2)

De la
personalidad
Protección
De los derechos
Protección de de los individuos
los datos

Obligación
Motivación
Juridica

Figura 1.2 Protección de datos

Página 18
Para poder implementar la protección de datos, ésta se llevará a cabo por la
institución o personas encargadas de los mismos, es obligación jurídica o simple
ética personal, evitar consecuencias negativas (perdida de información) para las
personas encargadas de manejar dichos registros.

En muchos Estados existen normas jurídicas que regulan el tratamiento de los datos
personales, sin embargo el gran problema aparece cuando no existen leyes y
normas jurídicas que eviten el abuso y/o mal uso de los datos.

1.3 RETOS DE LA SEGURIDAD

La eficiente integración de los aspectos de la Seguridad informática en el ámbito de


las organizaciones sociales, enfrenta algunos retos muy comunes, que están
relacionados con el funcionamiento y las características tales como:

 Implementar medidas de protección.


 Invertir en recursos tiempo y dinero.
 Monitoreo y evaluación; para el seguimiento operativo que garantice la
seguridad.

Todas estas circunstancias hacen que la seguridad en general y la seguridad


informática en particular no reciba la atención adecuada. El error más común que
se comete es que no se implementan medidas de protección, hasta después del
desastre, y las razones del porque no se realiza y/o hace nada al respecto abundan.

Por eso es necesario que se trabaje en la “Gestión de riesgo“, es decir, conocer el


peligro, clasificarlo y proteger de los impactos o daños de la mejor manera posible.
(Figura 1.3)

Página 19
Costos

Ignorancia
No recibe atención
Negligencia del
personal
No respetar normas y
Retos de la reglas
Seguridad Seguimiento de control
y sanciones
Adaptar medidas a
Proceso dinámico cambios de entorno
y permanente Capacitación del
personal

Documentación

Figura 1.3 Retos en la seguridad

Pero una buena Gestión de riesgos no es una tarea única sino un proceso dinámico
y permanente que tiene que estar integrado en los procesos (cotidianos) de la
estructura institucional, la cual debe incluir a todas y todos los funcionarios, así
también se requiere el reconocimiento y apoyo de las directivas. Sin estas
características esenciales no se garantiza, la protección de la información y será
una pérdida de recursos.

1.4 AMENAZAS Y VULNERABILIDADES

Una Amenaza es la posibilidad de ocurrencia de cualquier tipo de evento o acción


que puede producir un daño (material o inmaterial) sobre los elementos de un
sistema, en el caso de la Seguridad Informática, la Información.

Debido a que la Seguridad de la Información tiene como propósitos garantizar la


confidencialidad, integridad, disponibilidad y autenticidad de los datos, las

Página 20
amenazas y los consecuentes daños que puede causar un evento exitoso, se debe
proteger la información de estos de la mejor manera.

Desde el punto de vista de la entidad que maneja los datos, existen amenazas de
origen externo como por ejemplo las agresiones técnicas, naturales o humanas, así
como las amenazas de origen interno, como la negligencia del propio personal o las
condiciones técnicas o procesos operativos internos. Generalmente se distinguen y
dividen en tres grupos que son:

 Criminalidad: son todas las acciones, causadas por la intervención humana,


que violan la ley y que están penadas por esta.

 Sucesos de origen físico: son todos los eventos naturales y técnicos,


causados indirectamente por la intervención humana.

 Negligencia y decisiones institucionales: son todas las acciones, decisiones


u omisiones por parte de las personas que tienen poder e influencia sobre el
sistema. (Figura 1.4)

Allanamiento

Criminalidad Robo - Fraude

Virus

Incendio

Amenazas Sucesos de origen físico Sismo

Falta de corriente

Falta de reglas

Negligencia Falta de capacitación

Mal manejo

Figura 1.4 Tipos de Amenazas

Página 21
Existen amenazas que difícilmente se dejan eliminar como los virus de
computadora; y por eso es tarea de la gestión de riesgo prevenir e implementar
medidas de protección y minimizar daños en caso de que se realice una amenaza.

Para mostrar algunas de las amenazas más preocupantes, se consultaron dos


estadísticas, la primera muestra una Encuesta sobre Seguridad y Crimen de
Computación – 2008 del Instituto de Seguridad de Computación (CSI por sus siglas
en inglés) que se basa en 433 respuestas de diferentes entidades privadas y
estatales en los EE.UU. (Figura 1.4.1)

Figura 1.4.1 Estadísticas de Amenazas

La segunda encuesta se hizo en el año 2007, con 34 organizaciones sociales a nivel


Centroamérica. (Figura 1.4.2)

Figura 1.4.2 porcentajes de amenazas más fuertes

Página 22
Ambos gráficos, muestran el porcentaje de todos los encuestados que alguna vez
sufrieron de ese tipo de ataques. También se observa que existen algunas
similitudes respecto a las amenazas más preocupantes tales como:
 Ataques de virus (>50%)
 Robo de celulares, portátiles y otros equipos (>40%)

Pero también existen otras amenazas que, aunque no aparecen en ambas


encuestas, son muy alarmantes ya que se deben tomar en consideración tales
como:
 Falta de respaldo de datos.
 Perdida de información por rotación, salida de personal.
 Abuso de conocimientos internos.
 Mal manejo de equipos y programas.
 Acceso no autorizado.

Página 23
1.4.1 Vulnerabilidades
Las vulnerabilidades son las condiciones y características del sistema mismo, que
lo hace susceptible a amenazas, con el resultado de sufrir algún daño.

Las vulnerabilidades están en directa interrelación con las amenazas, si no existe


una amenaza, tampoco existe la vulnerabilidad o no tiene importancia, porque no
se puede ocasionar un daño. Dependiendo del contexto de la institución, se pueden
agrupar las vulnerabilidades en grupos característicos tales como: (Figura 1.4.1).

Desastres naturales
Ambiental/Físicas Ubicación
Capacidad técnica
Escasez
Económica
Mal manejo de recursos

Vulnerabilidades Relaciones

Socio-Educativas Comportamientos

Métodos
Procesos
Institucional / Política Organización

Corrupción
Figura 1.4.1 Principales vulnerabilidades

Página 24
CAPÍTULO 2
TOKEN DE SEGURIDAD

CIUDAD DE MÉXICO 2016


2.1 INTRODUCCIÓN

Un token de seguridad también conocido como token de autenticación o token


criptográfico es un dispositivo electrónico que se le da a un usuario autorizado de
un servicio computarizado para facilitar el proceso de acceso a un sitio en
específico.

Los tokens electrónicos tienen un tamaño pequeño que permiten ser cómodamente
llevados en el bolsillo o en la cartera y estos normalmente son diseñados para
atarlos a un llavero. (Figura 2.1)

Figura 2.1 Token Electrónico de seguridad

Se utilizan para almacenar claves criptográficas como firmas digitales o datos


biométricos, como las huellas digitales.

Algunos diseños se hacen a prueba de alteraciones, otros pueden incluir teclados


para la entrada de un PIN, etc.

Existe más de una clase de token. Están los conocidos generadores de contraseñas
dinámicas "OTP" (One Time Password) comúnmente denominamos tokens USB,
los cuales no solo permiten almacenar contraseñas y certificados, sino que permiten
llevar la identidad digital de la persona.

Página 26
Existen numerosos tipos de token de autenticación de bolsillo, que muestran un
código de acceso diferente, este número se debe escribir en la pantalla de
validación, para evitar así la necesidad de una conexión electrónica. El número que
se genera es una llave secreta, la cual es generada mediante un proceso
criptográfico, lo que hace que sea más difícil de descifrar.

2.2 TIPOS DE TOKEN´S DE SEGURIDAD

2.2.1 Token de contraseña desechable

Este tipo de token cuenta con un botón que se presiona para activarlo y a su vez
muestra un nuevo código de acceso cada vez que se presiona dicho botón. El
número acumulativo de pulsaciones del botón se puede utilizar como un token de
desafío.

El servidor, sin embargo, asume que el botón ha sido presionado en varias


ocasiones desde el último uso real, e intenta la autenticación con todos los números
posibles de pulsaciones del botón. En este documento se implementó un token de
contraseña desechable.

2.2.2 Token temporizado

Este tipo de token contiene generalmente un oscilador de cuarzo, esto permite que
el tiempo absoluto pueda ser utilizado como un token de desafío ya que genera un
nuevo código cada 30 o 60 segundos por lo general.

En este caso, el servidor de autenticación debe permitir una derivación en la fuente


de tiempo al intentar la autenticación con un tiempo anterior y posterior, así como la
hora actual. Por lo tanto puede realizar un seguimiento de la derivación en el reloj.

Página 27
2.2.3 Token de Desafío

El token puede tener un pequeño teclado en el que se puede introducir una clave.
Esta puede ser una clave o bien un NIP fijo asignado al usuario, o un número
generado por el servidor, el cual se visualiza en la pantalla de autenticación, o
ambos.

La mayoría de estos tienen al menos un nivel básico de protección contra copia e


inclusive pueden llegar a tener un nivel muy alto de protección y esto hace que sea
difícil de extraer el NIP o número guardado en el token.

Tiene la ventaja de que no hay controladores o interfaces electrónicas por lo que es


casi imposible tener acceso al dispositivo. A menudo, es posible hacer que el código
de acceso se visualicé en la pantalla, de modo que las únicas modificaciones
necesarias son en el servidor de autenticación. Una desventaja en algunos sectores
es que la pantalla es generalmente pequeña, y puede ser difícil de leer para usuarios
con discapacidad visual.

Existen varios fabricantes de este tipo de token, uno de los más conocidos es el
RSA Escurrid, él cual es utilizado en los sectores gubernamentales y financieros,
también existen los token de SafeNet y estos son ampliamente utilizados por las
empresas a nivel empresarial.

Otros tipos de token requieren un lector de dispositivos y controladores de


dispositivos especiales, mientras que otros utilizan una interfaz que es casi
universalmente disponible, tales como USB, sin embargo, pueden no estar
disponibles.

Un dato curioso es que una entrada de audio se utiliza generalmente para


proporcionar un servicio de autenticación de terminales móviles, ya que muchos
fabricantes de móviles tienen diferentes interfaces, como iDock, micro USB, mini
Página 28
USB y audio etc., este tipo de entradas hoy en día son los más estándar en los
teléfonos celulares inteligentes(Smartphone), y el puerto de audio se puede utilizar
para la transferencia de datos entre los tokens de autenticación y las terminales
móviles, en lugar de utilizar un puerto USB.

2.3 TOKENS COMERCIALES

2.3.1 Casque

Casque es un híbrido inusual el cual proporciona una señal conectada a una


pantalla. Incorpora un chip seguro clasificado en EAL5 +. Dispone de una pantalla
LCD en la parte frontal y varios fotodiodos en la parte posterior, los cuales emiten
un parpadeo una vez que se conecte con el número generado.

Esto se combina con un NIP el cual está almacenado en el token para producir un
código de acceso que se muestra en la pantalla LCD, para que el usuario escriba.
Una ventaja es que el número generado no se basa ni en el tiempo ni en una
secuencia de uno en uno, y así la sincronización no es un problema.

El protocolo de desafío/respuesta también permite que las claves de este token


puedan ser cambiadas para resistir los intentos de clonación.

El sistema también permite al usuario pedir una frase específica que se repite en el
token, esto permite al usuario autentificar el host y así negar los intentos de phishing
(delito cibernético).

Página 29
2.3.2 Tarjetas con banda magnética

Las tarjetas con banda magnética (tarjetas de crédito, tarjetas de débito, tarjetas de
cajero automático, tarjetas de fidelidad, tarjetas de regalo, etc.) tienen la desventaja
de ser vulnerables al robo de identidad (clonación) por este motivo en los últimos
años se han preferido utilizar las tarjetas denominadas inteligentes en el sector
bancario.

Sin embargo, a pesar de que los datos de la banda magnética se pueden copiar
fácilmente, los investigadores de la Universidad de Washington en St. Louis han
encontrado que la disposición aleatoria y única de los miles de millones de partículas
magnéticas individuales de cada banda magnética se puede utilizar para derivar
una "huella magnética", que es prácticamente imposible de clonar.

Este es un ejemplo de una función físicamente irrepetible. Los lectores de tarjetas


magnéticas especiales se han desarrollado y comercializado bajo el nombre de
"Magneprint", que puede digitalizar esta huella digital con el fin de identificar
positivamente una tarjeta individual.

Una ventaja de este sistema es que existe una huella dactilar magnética en todas
las tarjetas de banda magnética, siendo una característica intrínseca, por lo que no
hay tarjetas que vuelvan a ser emitidas más de una vez; esto con el fin de mantener
actualizado un sistema en específico.

Cada lectura de la tarjeta proporciona un número correlativo denominado


identificador digital dinámico que puede ser anotado y “compatible” con el valor de
origen. Puesto que el número cambia cada vez; este no se puede volver a utilizar
más de una vez, siempre y cuando todo el procesamiento de autenticación sea
correcto.

Página 30
Se requiere de un lector especial para poder leer el valor de huella digital magnética,
pero estos lectores se pueden intercambiar de forma gradual e ir sustituyendo los
lectores viejos que se desgastan. Por lo que la inversión real podría ser incorporada
como un aumento gradual (debido a la concesión de licencias, la complejidad del
equipo mayor, etc.).

2.4 BANCA ELECTRÓNICA

La banca virtual o banca en línea, e-banking o genéricamente banca electrónica, es


la banca a la que se puede acceder mediante Internet. Pueden ser entidades con
sucursales físicas o que sólo operan por Internet o por teléfono.

2.4.1 Definición

La banca electrónica hace referencia al tipo de banca que se realiza por medios
electrónicos como puede ser cajeros electrónicos, teléfono y otras redes de
comunicación. Tradicionalmente, este término ha sido atribuido a la banca por
Internet o banca en línea, pero conviene aclarar su significado.

Algunos autores lo consideran como un constructor de orden superior que supone


varios canales que incluyen también la banca telefónica, la banca por teléfono móvil
(basada en tecnología Protocolo de Aplicaciones Inalámbricas –WAP– que traslada
Internet al teléfono móvil) y la basada en televisión interactiva (iNet-television).

La banca por internet o en línea comprende aquellas herramientas que ofrecen una
entidad para que sus clientes hagan sus operaciones bancarias a través de la
computadora utilizando una conexión a la red de Internet. Para otros investigadores
la banca por Internet es un nuevo tipo de sistema de información que usa los
recursos novedosos de Internet y la Red Mundial (WWW) para permitir a los
consumidores efectuar operaciones financieras en el espacio virtual.

Página 31
La banca virtual o sin presencia física. Se considera a un banco virtual como un
banco sin oficina y normalmente se asocia el concepto de banca virtual al de banca
electrónica. En términos generales, este mercado no debería denominarse virtual,
siendo más adecuada la denominación de banca electrónica o por Internet, puesto
que las organizaciones participantes en el intercambio son totalmente reales y
existen físicamente.

En este movimiento del consumidor desde la banca tradicional basada en oficinas


a una banca autónoma, los inversores particulares han sufrido un profundo cambio
en su relación con las instituciones financieras. En el tipo de relación de intercambio
B2C aparece el denominado banco virtual o banco en casa destinado a los usuarios
particulares, el cual podría ser incluido en cualquiera de los tres tipos de banca
definidos anteriormente. Así mismo, se ha difundido en el negocio de los crackers.

2.4.2 Ventajas y barreras

Desde el punto de vista del consumidor, la banca en línea ofrece una serie de
ventajas. Las cuales se enlistan a continuación:

 Comodidad y servicios de conveniencia, 24 horas al día, 7 días a la semana.


 Operaciones desde casa.
 Acceso global.
 Ahorro en tiempo.
 Ahorro en los costos de operación del banco que pueden o deben repercutir
en el cliente.
 Transparencia en la información.
 Capacidad de elección de los clientes.
 Oferta de productos y servicios personalizados.

Página 32
No obstante, se ha detectado un conjunto de obstáculos o inconvenientes que
inhiben la óptima adopción de la banca en línea:
 Preocupación por la seguridad y por la información personal y confidencial.
 Propia intangibilidad y separación física entre el cliente y la entidad.
 Límite de servicios en línea.
 Ausencia de información sobre el uso y servicios.
 Baja o nula recepción de Internet en algunas zonas rurales o países en vías
de desarrollo.

2.5 PROCEDIMIENTO Y MEDIDAS DE SEGURIDAD

Normalmente se opera registrándose con los datos del cliente y una clave o un
certificado digital. Otras medidas de seguridad son:
 Usar una conexión cifrada o con cifrado fuerte, para el caso de que pueda
haber un sniffer.
 Guardar la contraseña en un lugar seguro y/o, memorizarla y/o destruirla.
 Normalmente hay algún método para recuperarla si se olvida: se puede
solicitar en el cajero, vía telefónica o en la misma web se puede solicitar el
envío a casa.
 Si la clave es interceptada y utilizada sin que el usuario se entere, es el banco
sobre quien recae la responsabilidad.
 Para la activación se pueden solicitar algunos datos de seguridad, para
disminuir aún más los riesgos.
 Evitar que el navegador almacene estos datos, sobre todo la clave.
 No guardar las cookies del banco.
 Además de la clave se suele usar otra clave llamada firma que es necesaria
para realizar movimientos de dinero.

Página 33
2.6 UNIOTP
UniOTP es un evento, y este se basa en el tiempo en el que una contraseña es
utilizada una sola vez, está construido de plástico, es resistente al polvo y es
aprueba de agua lo cual lo hace muy resistente a caídas, así que puede funcionar
en circunstancias adversas, como en la construcción o en locaciones militares, etc.

Este servidor de autenticación de contraseñas utiliza un dispositivo móvil o token y


les permite a los usuarios mejorar su seguridad fácil y rápidamente, a menores
costos y con bajos riesgos de implementación.

2.6.1 Alto Costo


La mayoría de los elementos físicos se basan en tokens de su misma propiedad y
pueden cobrar una cuota anual por usuario en el rango de los $50 a los 100 dólares.
El desarrollo de los dispositivos logísticamente es muy difícil. Los tokens físicos
pueden ser dañados y/o perdidos, y la entrega del mismo en las grandes industrias
como la banca resulta ser muy costoso.

Página 34
CAPÍTULO 3
GENERADORES DE
NÚMEROS ALEATORIOS

CIUDAD DE MÉXICO 2016


3.1 INTRODUCCIÓN

El uso de un Generador de Números Aleatorios (GNA) como mecanismo de


encriptación para la generación de la contraseña de un solo uso es de gran
importancia para el funcionamiento del token.

El GNA que se utiliza es el generador congruencial lineal, mismo que provee


números aleatorios de calidad aceptable, además de ser muy económico en el
ámbito de la computación, por lo que es de gran utilidad para que se implemente en
aplicaciones con recursos limitados.

Las computadoras por naturaleza no son aleatorias sino que simula un proceso
aleatorio mediante el uso de un GNA. Un GNA no es más que una ecuación con la
que se genera una serie de números aleatorios.

Esta serie de números aleatorios es finita y después de cierta cantidad de número s


aleatorios generados esta se repite de manera cíclica. La longitud del ciclo se le
llama período del GNA y está dada por el número de bits del GNA y se limita por el
número de bits de las operaciones matemáticas que puede calcular; en PC’s
ordinarias es de tan solo 32 bits, sin embargo, es posible simular 64 bits en C++
simplemente definiendo una variable de tipo long long o incluso un número más
grande de bits usando la librería long int.

3.2 GENERADOR DE NÚMEROS ALEATORIOS

La necesidad de usar números aleatorios hoy en día es muy indispensable ya que


se requiere para:
 Simulación: se simula las entradas de aquellas variables aleatorias.
 Juegos o teoría de decisiones.
 Cálculo numérico: por ejemplo en la resolución de integrales.

Página 36
 Teoría del muestreo: aquellos casos en los que sea demasiado costoso
realizar la muestra.
 Programación: generación de entradas para realizar las pruebas de los
algoritmos y programas.

Cabe aclarar que la aleatoriedad o no aleatoriedad de un número, es una


característica que posee o no, una serie de números. A partir de esto, se llamará un
número aleatorio a aquél que pertenece a una serie aleatoria.

3.2.1 Definición de un número aleatorio

En estadística un número aleatorio es resultado de una variable al azar que se


especifica por una distribución de algoritmos, para generar valores uniformemente
distribuidos se encuentran presentes en todas las calculadoras y lenguajes de
programación, y suele estar basado en congruencias numéricas como se observa
en la ecuación 1:

𝒙(𝒙+𝟏) ≅ (𝒂𝒙𝒏 + 𝒄)(𝒎𝒐𝒅 𝒎 ) ……………………………(1)

Este tipo de generador depende de la elección de los cuatro parámetros que


intervienen en la formula anterior:
 El valor inicial semilla: 𝒙(𝟎)

 La constante multiplicativa: 𝒂

 La constante aditiva: 𝒄

 El número 𝒎 respecto al cual se calculan los restos

Estos cuatro valores son números enteros no negativos y cumplen la siguiente


condición como se muestra en la ecuación 2:
𝒙(𝟎) , 𝒂, 𝒄 < 𝒎……………………………(2)

Página 37
La mayor parte de los generadores de números aleatorios son, en realidad,
pseudoaleatorios; y se calculan con un valor 𝒙𝟎 , que llamaremos semilla, y, a partir

de él, se va generando 𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑,...

Siempre que se parta de la misma semilla, se obtendrá la misma secuencia de


valores.

3.2.2 Definición de un Generador de números aleatorios

Un generador de números aleatorios (por sus siglas en Ingles: RNG) se define de


acuerdo a la siguiente ecuación 3.

𝓖 = (𝑺, 𝒔𝟎 , 𝑻, 𝑼, 𝑮) ……………………………(3)

Dónde:
 𝑺: es un conjunto finito de estados.
 𝒔𝟎 ∈ 𝑺 es el estado inicial.
 𝑇 ∶ 𝑺 → 𝑺 es la función de transición.
 𝑼 es un conjunto finito de símbolos de salida.
 𝐺 ∶ 𝑺 → 𝑼 es la función de salida.

El generador comienza con el estado inicial 𝒔𝟎 (llamado semilla) y evoluciona de


acuerdo con la ecuación 4:
𝒔𝒊 : = 𝑻(𝒔𝒊 − 𝟏) 𝒑𝒂𝒓𝒂 𝒊 ≥ 𝟏……………………………(4)

Y en cada paso 𝑖 , se obtiene la observación 5:


𝒖𝒊 ≔ 𝑮(𝒔𝒊 ) ……………………………(5)

Página 38
Se espera que las observaciones se comporten como si fueran valores de variables
aleatorias independientes e idénticamente distribuidas, uniformemente sobre 𝑼 .

El conjunto 𝑼 es, a veces, un conjunto de enteros de la forma 0,...m − 1, o un


conjunto finito de valores entre 0 y 1, representación aproximada de la distribución
𝑼 [0,1). A partir de esto, se considera este último caso. Puesto que 𝑺 es finito, la
secuencia de estados es, al final, periódico.

El periodo es el entero positivo más pequeño 𝝆 tal que, dado algún entero 𝝉 ≥ 𝟎

se obtiene la ecuación 6 para todo 𝑺.

𝓷 ≥ 𝝉, 𝒔𝝆+𝒏 = 𝒔(𝒏) ……………………………(6)

El 𝝉, más pequeño con esa propiedad se denomina transitorio. Cuando 𝝉 = 𝟎, la


secuencia se dice que es puramente periódica. Independientemente de los criterios
de calidad estadística, para la elección de un generador de números aleatorios,
también se considera relevantes las siguientes consideraciones:
 La velocidad.
 Las necesidades de memoria.
 La transportabilidad.
 La repetibilidad.
 La facilidad de implementación
 La disponibilidad de saltos hacia adelante.

3.2.2.1 Ventajas y Desventajas


Las principales ventajas de los generadores de números aleatorios son:
 rapidez
 Comodidad
 Reproducibilidad
 Portabilidad

Página 39
La desventaja fundamental es que las secuencias obtenidas no son realmente
aleatorias, ya que se obtienen de operaciones deterministas. Así que solo se
pueden lograr secuencias pseudo-aleatorias, que a su vez satisfacen algunos
criterios de aleatoriedad adecuados.

3.2.3 Generalidades de los números aleatorios

Las características deseables para los generadores de números aleatorios son las
siguientes:
 Los números generados no se deben repetir frecuentemente (en ciclos).
 Las series generadas deben ser reproducibles.
 Rapidez en la obtención de los números.
 Almacenamiento mínimo. Tanto el propio generador como los números por
el generados.
 Los números generados han de estar uniformemente distribuidos (todos
deben tener la misma probabilidad de salir).
 Los valores generados deben ser independientes unos de otros, es decir,
que la obtención de cierto valor no esté condicionado por los valores
obtenidos anteriormente.

Algunos métodos para la generación de números aleatorios se describen a


continuación:

Manual. Por ejemplo, lanzar un dado o realizar extracciones con remplazamiento


de bolas numeradas dentro de una urna.

Ventajas:
 Las series obtenidas son realmente aleatorias.

Desventajas:
 Lentitud.
 Las series obtenidas son irreproducibles.

Página 40
 Requiere gran cantidad de almacenamiento ya que almacena la serie
obtenida.

Tablas. (De 1 hasta 100,000 números).

Ventajas:
 Las series obtenidas son reproducibles.

Inconvenientes
 Lentitud.
 Requiere una gran cantidad de almacenamiento.

Computación analógica. Las series se obtienen mediante fenómenos físicos.

Ventajas:
 Las series obtenidas son realmente aleatorias.
 Rapidez.

Inconvenientes:
 Las series obtenidas son irreproducibles.

Computación digital. Dada una función y una semilla, se van generando los
números aleatorios.

Ventajas:
 Rapidez.
 Pocos requerimientos de almacenamiento.
 Las series obtenidas son reproducibles.

Inconvenientes:
 Los números obtenidos no son independientes.

Página 41
En 1946, Von Neumann propuso un método para obtener números aleatorios de
cifras, a partir de una semilla. Dicho método es conocido como Método de los
cuadrados centrales.

El método consiste en partir de una semilla y elevarla al cuadrado, el siguiente


número de la serie se obtendría como resultado de extraer las k-cifras centrales del
cuadrado obtenido y así sucesivamente.

3.3 TIPOS DE GENERADORES DE NÚMEROS ALEATORIOS

3.3.1 Generador xorshift

El generador Xorshift es un generador de números pseudoaleatorios y fue


descubierto por George Marsaglia. Generan el siguiente número en la secuencia
mediante la adopción de varias veces el or exclusivo o de un número con un bit
desplazado de sí mismo.

Esto lo hace extremadamente rápido en las arquitecturas informáticas modernas.


Ellos son una subclase de registros lineales de desplazamiento de
retroalimentación, pero su implementación simple normalmente los hace más rápido
y utiliza menos espacio. Sin embargo, los parámetros tienen que ser elegidos con
mucho cuidado a fin de lograr un largo período. Viene dado por la siguiente ecuación
7 la cual contiene 3 shifts.

𝑿𝒏 = 𝑿𝒏−𝟏 (𝟏 ⊕ 𝑳𝒂 )(𝑰 ⊕ 𝑹𝒃 )(𝑰 ⊕ 𝑳𝒄 ) = 𝑿𝒏−𝟏 𝑴……………………………(7)

Página 42
Esto se refleja en la siguiente tabla.
Variante Periodo Estado
𝑋𝑂𝑅𝑊𝑂𝑊 (𝑐𝑢𝑅𝐴𝑁𝐷)(𝑤 2192 − 232 192 bits
= 160)
𝑋𝑂𝑅𝑆ℎ𝑖𝑓𝑡 /𝑊𝐸𝑦𝑙(𝑤 = 1024) (21024 − 1)232 32 bits

El período está dada por la siguiente ecuación 𝟐𝒘 − 𝟏 para los valores de 𝒂, 𝒃, 𝒄 los
cuales deben ser elegidos cuidadosamente, donde 𝑤 es el tamaño de la palabra.
La combinación de la variante 𝑤 = 160 con un generador de Weyl de 32-bits define
el RNG XORWOW (Standard de CURAND) por la ecuación 8.

𝒚𝒏 = (𝒚𝟎 + 𝒏𝒄) 𝒎𝒐𝒅 𝟐𝒘……………………………(8)

Weigel Implemento un generador XORShift con 𝒘 = 𝟏𝟎𝟐𝟒 para generar el estado


de 32 bits utilizado en las Pc de hoy en día.
Ventaja
 Este generador tiene un buen período y calidad.

Desventaja
 La principal desventaja de este generador es que es muy lento .

3.4 GENERADOR FSR FEEDBACK SHIFT REGISTER

Los generadores FSR Feedback Shift Register por sus siglas en Ingles generan
secuencias de números pseudoaletorios 𝒛𝒊 los cuales son números binarios, (que
son 0 o 1).

Estos se construyen con un número entero de bits al conjuntar esta serie de


números, se obtiene la siguiente recurrencia como se observa en la ecuación 9.

𝒛𝒊 = 𝒄𝟏 𝒛𝒊−𝟏 + 𝒄𝟐 𝒛𝒊−𝟐 +. . . +𝒄𝒏 𝒛𝒊−𝒏 𝒎𝒐𝒅 𝟐……………………………(9)

Página 43
Donde 𝒄𝒊 = 𝟎, 𝟏 el cual es un conjunto de 𝒏 constantes binarias. Es claro que esta

secuencia de 𝒛𝒊 ha de repetirse necesariamente después de 𝟐𝒏 valores, de manera

que el periodo máximo es 𝟐𝒏 .

Para que el periodo sea exactamente 𝟐𝒏−𝟏 es necesario y suficiente que:

𝒇(𝒛) = 𝟏 + 𝒄𝟏 𝒛 + 𝒄𝟐 𝒛𝟐 +. . . +𝒄𝒏 𝒛𝒏 ……………………………(10)

En caso que las ecuaciones no se puedan escribir se utilizara el teorema de GF


dada por la ecuación 11.

𝒇(𝒛) = 𝒇𝟏(𝒛)𝒇𝟐(𝒛) ……………………………(11)

Las relaciones más sencillas se basan en polinomios dados por la ecuación 12 del
tipo:

𝒇(𝒛) = 𝟏 + 𝒛𝒒 + 𝒛𝒑 ……………………………(12)

Y se reduce a la relación de recurrencia de la ecuación 13 a la forma:

𝒛𝒊 = 𝒛𝒊−𝒑 + 𝒛𝒊−𝒒 𝒎𝒐𝒅 𝟐……………………………(13)

Si consideramos que 𝒛𝒊 son variables lógicas, se podrá escribir esta ecuación como:

𝒛𝒊 = 𝒛𝒊−𝒑 +⊗ 𝒛𝒊−𝒒 ……………………………(14)

Donde ⊗ es la operación or exclusivo aunque no es estándar en el lenguaje fortran,


la mayoría de compiladores las incluyen en sus librerías, ya que esta operación es
una de las fundamentales en el lenguaje ensamblador y es muy rápida.

Página 44
El algoritmo necesita 𝑝 valores iniciales 𝒛𝟏 , 𝒛𝟐 , … 𝒛𝒑 que han de ser generados
aleatoriamente mediante otro generador o ser dados en forma de tabla (hay que
tener cuidado para evitar correlaciones entre estos valores iniciales). Hay dos
maneras de utilizar un generador FSR.

En la primera se toman los valores de 𝒛𝒊 producidos en grupos de 𝒃 y se forma con


ellos una secuencia de 𝒃 bits que se considera entonces como un numero entero
entre 𝟎 𝒚 𝟐𝒃 − 𝟏. Esta implementación es incomoda de programar.

Una implementación más frecuente es la de considerar inicialmente 𝒑 números


(𝟏) (𝟐) ( )
enteros de 𝒃 bits 𝒎𝒊 = 𝒛𝟏 𝒛𝒊 … 𝒛𝒊 𝒃 , 𝒊 = 𝟏, … , 𝒑 y utilizar la relación de recurrencia
𝒎𝒊 = 𝒎𝒊−𝒑 ⊗ 𝒎𝒊−𝒒 en la que la operación ⊗ se realiza bit a bit.

Una elección que ha resultado ser adecuada es 𝒑 = 𝟐𝟓𝟎 , 𝒒 = 𝟏𝟎𝟑 (también


llamado generador R250), aunque han surgido dudas recientemente sobre la
validez de este generador para ciertos problemas.

El periodo es 𝟐𝟐𝟓𝟎| ≈ 𝟏. 𝟖 𝒙𝟏𝟎𝟕𝟓 que es suficientemente grande para la mayoría de


aplicaciones. Hemos de hacer notar que los generadores FSR sufren de los mismos
problemas derivados de la existencia de planos de Marsaglia en un espacio
dimensional. Otra elección que se ha usado es 𝒑 = 𝟏𝟐𝟕𝟗 , 𝒒 = 𝟏𝟎𝟔𝟑.

3.5 GENERADOR BLUM BLUM SHUB (BBS)

Blum Blum Shub (BBS) es un generador pseudoaleatorio de números propuesto por


Lenore Blum, Manuel Blum y Michael Shub en 1986.

El algoritmo BBS viene dado por la ecuación 15:

𝑿𝒏+𝟏 = (𝑿𝒏 )𝟐 𝒎𝒐𝒅 𝑴……………………………(15)

Página 45
Donde 𝑴 = 𝒑 𝒒 es el producto de dos números primos muy grandes 𝒑 𝒚 𝒒. En cada
paso del algoritmo, se obtiene un resultado para 𝑿𝒏 ; el resultado es por lo general
o bien el bit de paridad de xn ó uno más de los bits menos significativos de 𝑿𝒏 .
Los dos números primos, 𝒑 𝒚 𝒒 , deben ser ambos congruentes a 3 (mod 4) (esto
asegura que cada residuo cuadrático posee una raíz cuadrada que también es un
residuo cuadrático) y 𝒎𝒄𝒅 (𝝋(𝝆 − 𝟏), 𝝋(𝒒 − 𝟏)),debe ser pequeña (esto hace que
la longitud del ciclo sea extensa).

Una característica interesante del generador BBS es la posibilidad de calcular todo


valor xi en forma directa como se ve en la ecuación 16:

𝑿𝒊 = (𝑿𝟎 𝟐𝒊 𝒎𝒐𝒅 (𝒑−𝟏)(𝒒−𝟏) ) 𝒎𝒐𝒅 𝑴……………………………(16)

Seguridad

El generador es apropiado para ser utilizado en criptografía, aunque no en


simulaciones, ya que no es muy rápido. Sin embargo, es muy resistente desde el
punto de vista de su seguridad, lo que se relaciona con la calidad del generador en
cuanto a la complejidad computacional de la factorización de enteros.

Cuando se eligen los números primos en forma adecuada, y los bits menos
significativos 𝑶(𝐥𝐨𝐠 𝐥𝐨𝐠 𝑴) de cada 𝒙𝒏 se eligen como resultado, entonces en el
límite cuando 𝑴 se hace muy grande, distinguir los bits resultado de una secuencia
aleatoria será por lo menos tan difícil como factorizar 𝑴.

Si la factorización de enteros es difícil (como es de esperar) entonces BBS con


grandes 𝑀 tendrá un resultado libre de todo patrón no aleatorio; que puede ser
descubierto mediante una cantidad razonable de cálculos. Esto hace que el método
sea tan seguro como otras tecnologías de cifrado asociadas al problema de
factorización, como por ejemplo el cifrado RSA.

Página 46
Ventaja

Como ya se mencionó anteriormente la principal ventaja de este generador de


números aleatorios es de muy alta calidad y puede ser implementada en usos de
criptografía principalmente.

Desventaja

La desventaja que tiene es tipo de generador de números aleatorios es demasiado


lento y computacionalmente es muy caro, consume muchos recursos (consumo de
energía).

3.6 GENERADORES CONGRUENCIALES

Hacia 1949, Lehmer introduce un método de generación de números aleatorios


mediante el cual un término de la serie se obtiene como función del término
inmediatamente anterior 𝑿𝒏 = 𝒇(𝑿𝒏−𝟏 ).

La función aplicada viene dada por la ecuación 17 que es la siguiente:

𝑿𝒏+𝟏 = (𝒂𝑿𝒏 + 𝒄)𝒎𝒐𝒅 𝒎 , 𝒔𝒊𝒆𝒏𝒅𝒐 𝟎 ≤ 𝑿𝒏 < 𝒎 ∀𝒏 ……………………………(17)

En el generador se distinguen 4 elementos


 𝑋0 , es el valor inicial o semilla.
 𝑎, multiplicador, siendo 0 ≤ 𝑎 < 𝑚 .
 𝑐, incremento, siendo 0 ≤ 𝑎 < 𝑚 .
 𝑚, módulo.

Se llama periodo a la subcadena, dentro de la serie generada, en la que no hay


repeticiones de números y longitud de periodo al número de elementos de dicha
subcadena. La repetición de números en la serie puede ser aleatoria, pero dado el

Página 47
método utilizado para la generación de las mismas, en el momento en el que se
repite un valor ya empieza a repetirse todo el periodo, por lo que se buscan métodos
que garanticen longitudes de periodo grandes.

3.6.1 Tipos de Generadores Congruenciales lineales

Se puede distinguir dos tipos de estos generadores que se diferencian en el valor


del incremento.

 G.C. Multiplicativos. En ellos el incremento, 𝒄, es 𝟎 Este tipo de generadores


fueron los introducidos por Lehmer, aunque mencionó como posibilidad la
idea de tomar la siguiente ecuación(18):

𝑿𝒏+𝟏 = 𝒂𝑿𝒏 𝒎𝒐𝒅 𝒎……………………………(18)

 G.C. Mixtos. En ellos el incremento es distinto de 𝟎. Fueron introducidos por


Thomson hacia 1958 dados por la siguiente ecuación 19.

𝑿𝒏+𝟏 = (𝒂𝑿𝒏 + 𝒄) 𝒎𝒐𝒅 𝒎……………………………(19)

Estos tienen la ventaja der más rápidos, porque realizan menos operaciones en el
cálculo de los elementos. Sin embargo, la longitud del periodo que se alcanza en
las series generadas por ellos son menores que la alcanzadas en las series
generadas por los segundos.

Los valores de 𝒂 = 𝟏 𝒚 𝒂 = 𝟎 producen series no aleatorias.

Supongamos, 𝒂 = 𝟎 nos quedaría el generador de la forma 𝑿𝒏+𝟏 = 𝒄 𝒎𝒐𝒅 𝒎 es


decir, que siempre saldría la constante c.

Página 48
Si, 𝒂 = 𝟎 el generador es 𝑿𝒏+𝟏 = (𝑿𝒏 + 𝒄) 𝒎𝒐𝒅 𝒎 .Desarrollando algunos de los
elementos que se van obteniendo, se tiene:

𝑿𝟎 = (𝑿𝟎 + 𝒄) 𝒎𝒐𝒅 𝒎……………………………(20)

𝑿𝟏 = (𝑿𝟏 + 𝒄) 𝒎𝒐𝒅 𝒎 = ((𝑿𝟎 + 𝒄)𝒎𝒐𝒅 𝒎)𝒎𝒐𝒅 𝒎 = (𝑿𝟎 + 𝟐𝒄)𝒎𝒐𝒅 𝒎


𝑿𝟑 (𝑿𝟎 + 𝟑𝒄) 𝒎𝒐𝒅 𝒎……………………………(21)

Y así para todos los términos. Se obtiene una semilla 𝑿𝟎 más un múltiplo de c y todo
módulo m, y esta serie no es aleatoria.

Ventaja
 Es computacionalmente hablando un generador muy económico de calcular.

 Genera un periodo completo de ancho de bits del generador (i.e. para un


generador de 32 bits como el que se propondrá posteriormente en la presente
tesis, el cual genera un periodo de 32 bits).

Desventajas

 Es muy sensible a la elección de las constantes que se tomen pues


dependiendo de ellas, puede o no generar una tabla pseudoaleatoria de
buena calidad o inclusive no generarla.

 En la actualidad únicamente se han realizado investigaciones para encontrar


los valores de las constantes para el generador hasta únicamente 64 bits.

Página 49
CAPÍTULO 4
TECNOLOGIAS DE LA
INFORMACIÓN
UTILIZADOS

CIUDAD DE MEXICO 2016


4.1 INTERFAZ DE ENTRADA COMUN
La Interfaz de entrada común (en inglés Common Gateway Interface, abreviado
CGI) es una importante tecnología de la World Wide Web que permite a un cliente
(navegador web) solicitar datos de un programa ejecutado en un servidor web. CGI
especifica un estándar para transferir datos entre el cliente y el programa. Es un
mecanismo de comunicación entre el servidor web y una aplicación externa cuyo
resultado final de la ejecución son objetos MIME (Multipurpose Internet Mail
Extensions).

Los MIME o Extensiones multipropósito de correo de internet, son una serie de


convenciones o especificaciones dirigidas al intercambio a través de Internet de todo
tipo de archivos (texto, audio, vídeo, etc.) de forma transparente para el usuario.

Una parte importante del MIME está dedicada a mejorar las posibilidades de
transferencia de texto en distintos idiomas y alfabetos. En sentido general las
extensiones de MIME van encaminadas a soportar:

 Capacidad de enviar múltiples adjuntos en un solo mensaje.

 Longitud ilimitada del mensaje.

 Uso de conjuntos de caracteres no pertenecientes al código ASCII

 Uso de texto enriquecido (diseños, fuentes, colores, etc.)

 Adjuntos binarios (ejecutables, imágenes, archivos de audio o video,


etc.), que se pueden dividir de ser necesario.

Los mensajes de correo electrónico en Internet están tan cercanamente asociados


con el SMTP (protocolo para transferencia de correo simple) y MIME que
usualmente se les llama mensaje SMTP/MIME. Las aplicaciones que se ejecutan
en el servidor reciben el nombre de CGIs.

Página 51
Las aplicaciones CGI fueron una de las primeras prácticas para crear contenido
dinámico para las páginas web. En una aplicación CGI, el servidor web pasa las
solicitudes del cliente a un programa externo. Este programa puede estar escrito en
cualquier lenguaje que soporte el servidor, aunque por razones de portabilidad se
suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente
en lugar del archivo estático tradicional.

CGI ha hecho posible la implementación de funciones nuevas y variadas en las


páginas web, de tal manera que esta interfaz rápidamente se volvió un estándar,
siendo implementada en todo tipo de servidores web.

4.1.1. Forma de Actuación del CGI

 En primera instancia, el servidor recibe una petición (el cliente ha activado un


URL que contiene el CGI), y comprueba si se trata de una llamada de un CGI.
 Posteriormente, el servidor prepara el entorno para ejecutar la aplicación. Esta
información procede mayoritariamente del cliente.
 Seguidamente, el servidor ejecuta la aplicación, capturando su salida estándar.
 A continuación, la aplicación realiza su función: como consecuencia de su
actividad se va generando un objeto MIME que la aplicación escribe en su salida
estándar.
 Finalmente, cuando la aplicación finaliza, el servidor envía la información
producida, junto con información propia al cliente, que se encuentra en estado
de espera. Es responsabilidad de la aplicación anunciar el tipo de objeto MIME
que se genera (campo CONTENT_TYPE).

4.1.2 Programación de un CGI

Un programa CGI se escribe en cualquier lenguaje de programación que produzca


un archivo ejecutable. Entre los lenguajes más habituales se encuentran: C, C++,
Perl, Java, Visual Basic... No obstante, debido a que el CGI recibe los parámetros

Página 52
en forma de texto, será más útil un lenguaje que permita realizar manipulaciones de
las cadenas de caracteres de una forma sencilla, como por ejemplo Perl.
Perl es un lenguaje interpretado que permite manipulaciones sencillas de archivos
y textos, así como la extracción y manipulación de cadenas de caracteres, unidas a
unas búsquedas rápidas y fáciles.

4.1.3 Intercambio de Información Variables de Entorno

Los siguientes datos son las variables de entorno que pasan por los programas CGI:

Las variables específicas del servidor son:


 Server software.-es el nombre y versión del servidor web.
 Server_name.-es el nombre de equipo del servidor, puede ser una
dirección IP.
 Gateway_interface.-version CGI.

Las variables específicas de respuesta son:


 Server_protocol –es la versión http.
 Server_port –es el puerto tcp.
 Request_method.-nombre del método HTTP.
 Path_info.-sufijo de la ruta.
 Path_translated.-corresponde a la ruta completa del servidor.
 Script_name.-ruta relativa al programa. Ejemplo: /cgi-bin/script.cgi.
 Query_string.-es la parte de la URL después del carácter de la cadena
de consulta, está puede estar compuesta de *nombre=valor
separados por el carácter ep (ejemplo: var1=val1&var2=val2…).
 Remote_host.-nombre del host del cliente
 Remote_addr.-dirección IP del cliente.
 Auth_type.-tipo de identificación.
 Remote_user.-variable usada para ciertos tipos de autentiticación.

Página 53
 Remote_ident.-variable para identificar algunas conexiones TCP.
 Content_type.-tipo de contenido de la aplicación.
 Content_length.-tamaño de los datos de entrada.

4.1.4 Tipos Habituales de CGI

 Contador de accesos: Cuenta el número de veces que se ha solicitado


una página determinada. Se guarda el valor en un archivo. Cada vez que
se manda a llamar se incrementa, para su posterior visualización.

 Buscador: Localiza páginas que contengan los términos especificados.


Utiliza una tabla que enumera las palabras y para cada una, especifica
las páginas dónde se encuentra.

 Correo: Obtiene información estructurada del usuario.

 Contribuciones: Permite añadir enlaces o anotaciones a una página,


indicando la procedencia de la adición.
 Estadísticas de uso: Presenta información sobre los acontecimientos
producidos en el servidor de WWW. El servidor mantiene un registro (log)
de los acontecimientos que se han producido.

 Administración remota del servidor: Permite interactuar con el servidor


desde WWW. Invoca los programas que controlan o modifican el
comportamiento del servidor.

4.1.5 Escenario de Activación de un CGI

 Situación inicial: El cliente solicita la invocación de un CGI, bien de manera


involuntaria (se envía únicamente información de cabecera) o bien de forma
explícita (formulario). En el formulario hay parejas del tipo variable=valor.

Página 54
El método de HTTP especificado en el formulario puede ser get o post.En el
servidor en cambio, el archivo de configuración especifica un directorio cgi-
bin con capacidad para ejecutar programas. Puede haber otros archivos y
otros programas a los que puede acceder tanto el servidor como sus cgi´s.

 El cliente pulsa el botón de tipo submit en el formulario: Dependiendo del


método se construye un mensaje que contiene la información del formulario
en la cabecera (para get) o en el cuerpo del mensaje (para post). El mensaje
se envía al servidor, añadiendo información propia del cliente que el propio
navegador conoce. El cliente queda a la espera de recibir un objeto MIME
como respuesta del servidor.

 El servidor recibe el mensaje de petición o pone en marcha el programa CGI

 El servidor compara la información del mensaje con el archivo de


configuración, determinando así la validez de la petición.

 El cgi accede a las variables de entorno, Comprueba o adapta el


funcionamiento según el método get o post.establecido en Request_method
si se tratara de get, y la información estará en Query_string, mientras que si
se trata de post, se tomará la entrada estándar.

 Se construye un objeto MIME que se enviará al cliente. La primera escritura


deberá anunciar el tipo de objeto: Content_type: tipo/subtipo.

 El servidor añade a su respuesta del CGI una cabecera indicando su tamaño


(Content_length).

 El cliente recibe la Interpretación de la respuesta. Ósea la Visualización con


el navegador.

Página 55
4.2 MICROCONTROLADOR

Un Microcontrolador es una computadora de un solo chip. Micro se refiere a que el


dispositivo es pequeño y controlador se refiere a que es empleado en sistemas de
control.

Otro término de Microcontrolador es controlador embebido, desde que la mayoría


de los Microcontroladores son fabricados dentro (o embebidos en) de los
dispositivos que controlan.

Un Microprocesador difiere de un Microcontrolador en muchos aspectos. La


principal distinción es que un microprocesador requiere severos componentes
externos para su operación, como memoria de programa y memoria de datos,
dispositivos de Entrada/Salida, y un circuito de reloj externo. Un Microcontrolador,
tiene todos los chips de soporte incorporados dentro del único chip. Todos los
Microcontroladores operan con un conjunto de instrucciones (o con el programa del
usuario) almacenado en la memoria.

Un Microcontrolador obtiene las instrucciones de su memoria de programa una por


una, decodifica estas instrucciones y luego lleva a cabo las operaciones requeridas.
Los Microcontroladores han sido tradicionalmente programados usando el lenguaje
de ensamblador del dispositivo de destino. A pesar de que el lenguaje ensamblador
es rápido, tiene severas desventajas. Un programa en ensamblador consiste en
nemónicos (dato simbólico que identifica a un comando).

Los Microcontroladores también pueden ser programados usando un lenguaje de


alto nivel, como Basic, Pascal, o C. Los lenguajes de alto nivel son mucho más
fáciles de aprender que los lenguajes de ensamblador. Estos también facilitan el
desarrollo de programas largos y complejos.

Página 56
4.2.1 Características del Microcontrolador PIC 18f4550

Los Microcontroladores de distintos fabricantes tienen distintas arquitecturas y


capacidades. Algunos se pueden enfocar en aplicaciones particulares mientras que
otros pueden ser totalmente inservibles para la misma aplicación. Las
características físicas comunes en la mayoría de los Microcontroladores se
describen a continuación.

Fuente de Voltaje.- Muchos Microcontroladores operan con el voltaje estándar


lógico de +5V. Algunos pueden operar a niveles bajos como +2.7 V y algunos toleran
+6V sin ningún problema. La hoja de datos del fabricante contiene la información de
los límites de alimentación de la fuente de voltaje. El Microcontrolador PIC18F4550
puede operar con un rango de +2V a +5.5V.

El Reloj.- Todos los Microcontroladores necesitan un reloj (o un oscilador) para


operar, usualmente provisto por un dispositivo externo. En muchos casos, este
dispositivo de sincronización externo es un cristal más dos pequeños capacitores.
En algunos casos son resonadores o un arreglo resistor/capacitor. Algunos
Microcontroladores se fabrican en circuitos de conteo y no requieren componentes
de conteo externo. Si una aplicación no es sensible a la temporización,
componentes de conteo a base de un capacitor y una resistencia son la mejor
opción por su simplicidad y su bajo costo.
Una instrucción se ejecuta al buscarla en la memoria y luego decodificarla. Esto
usualmente toma algunos ciclos de reloj y se conoce como ciclo de instrucción. En
los Microcontroladores PIC, un ciclo de instrucción toma cuatro periodos de reloj.
Esto es, el Microcontrolador opera a un ritmo de reloj que es un cuarto de la
frecuencia actual de oscilación. La serie 18F de Microcontroladores pueden operar
con frecuencias de reloj por encima de los 40MHz.

Temporizadores.- Los temporizadores son parte importante de cualquier


Microcontrolador. Un temporizador es básicamente un contador que es conducido
por un pulso de reloj externo o el oscilador interno del Microcontrolador.

Página 57
Un temporizador puede ser de 8 bits o 16 bits de ancho. La información puede ser
cargada en un temporizador por el programa de control y también puede detenerlo
o puede ponerlo en marcha. Muchos temporizadores pueden configurarse para
generar una interrupción cuando alcancen un cierto valor de conteo (usualmente
cuando se desbordan). El programa de usuario puede emplear una Interrupción
para obtener tiempos de conteo exactos relacionados con la operación del
Microcontrolador.

Los Microcontroladores de la serie PIC18F tienen al menos tres temporizadores.


Algunos microcontroladores ofrecen facilidades de captura y comparación, donde
un valor del temporizador puede ser leído cuando un evento externo ocurra, o el
valor del temporizador puede ser comparado con un valor establecido y una
interrupción se genera cuando este valor es alcanzado. Muchos Microcontroladores
de la seria 18F tienen al menos dos módulos de captura y comparación.

Perro Guardián.- Muchos Microcontroladores tienen al menos un perro guardián.


El perro guardián es básicamente un temporizador que se refresca por el programa
de usuario. Siempre que el programa no refresca al perro guardián, un reinicio
ocurre. El temporizador de perro guardián se usa para detectar problemas en el
sistema, como un lazo infinito en el que el programa se ha metido. Esta propiedad
de seguridad previene que el programa se pierda y detiene el Microcontrolador de
ejecutar código sin sentido y no deseado. Las facilidades del perro guardián son
comúnmente usadas en sistemas de tiempo real donde la terminación exitosa de
una o más actividades debe checarse con regularidad.

Entrada de Reinicio.- La entrada de reinicio se usa para reiniciar el


Microcontrolador externamente. Reiniciando al Microcontrolador lo coloca en un
estado conocido tal que el programa en ejecución comienza por la dirección 0 de la
memoria de programa. Una acción de reinicio externo se logra conectando un
pulsador a la entrada de reinicio.

Página 58
Interrupciones.- Las interrupciones son un concepto importante en
Microcontroladores. Una interrupción causa que el Microcontrolador responda a un
evento externo o interno de forma muy rápida. Cuando una interrupción ocurre, el
Microcontrolador deja la tarea que estaba realizando y brinca a una parte especial
del programa conocida como Rutina de Servicio de Interrupción (ISR). El código
de programa dentro de la Rutina se ejecuta, y a su regreso el programa retoma su
flujo normal de ejecución.

La Rutina de servicio de Interrupción comienza desde una dirección fija de la


memoria de programa, algunas veces nombrado como la dirección del vector de
interrupción. Algunos Microcontroladores con múltiples características de
interrupción tienen sólo una dirección de vector de interrupción, mientras que otros
tienen direcciones de vectores únicos por cada fuente de interrupción. Otra
importante característica de la capacidad de múltiples interrupciones es que se le
pueden asignar diferentes niveles de prioridad. Por ejemplo, la serie de
Microcontroladores PIC18F tienen ambos niveles de prioridad de interrupción, baja
prioridad y alta prioridad. Las interrupciones pueden ser anidadas tal que una
interrupción de alta prioridad puede suspender la rutina asociada a una interrupción
de baja prioridad.

Detector de bajo nivel.- Los detectores de bajo nivel, son comunes en los
microcontroladores, reinician al microcontrolador si la fuente de voltaje cae por
debajo del valor nominal. Esta característica de seguridad puede ser empleada para
prevenir operaciones impredecibles a bajos voltajes, especialmente para proteger
el contenido de las memorias de tipo EEPROM.

Entrada/Salida Serial.- La comunicación serial permite al Microcontrolador


conectarse a otro Microcontrolador o a una PC. Algunos Microcontroladores tienen
un dispositivo llamado USART (transmisor receptor síncrono asíncrono) para
implementar una interface de comunicación serial. El programa de usuario puede
seleccionar la tasa de transmisión y el formato de la información. Si el
Microcontrolador no posee la pieza serial de entrada-salida, se puede desarrollar el
Página 59
programa para implementar la comunicación serial usando cualquier terminal de
Entrada/Salida del microcontrolador. La serie de Microcontroladores PIC18F tienen
módulos USART. Algunos microcontroladores (así como la serie 18F) incorporan
interfaces SPI (interface serial periférica) o I2C (interconexión integrada). Esto
permite al microcontrolador conectarse con otros dispositivos compatibles
fácilmente, una desventaja importante de este protocolo de comunicación, es que
no está internacionalmente estandarizado lo que provoca discrepancias entre
módulos con la misma interface.

Memoria EEPROM.- La memoria de datos tipo EEPROM es muy común en muchos


microcontroladores. La ventaja de una memoria EEPROM es que el programador
puede almacenar información que no es volátil y modificarla cuando sea requerido.
Por ejemplo, en una aplicación de monitoreo de temperatura, las lecturas máximas
y mínimas de temperatura pueden ser almacenadas en una memoria EEPROM. El
Microcontrolador PIC18F4550 tiene 256 bytes de memoria EEPROM. Otros
miembros de la familia PIC18F tienen más memoria EEPROM (así como el
PIC18F6680 que tiene 1024 bytes).

Controlador LCD.- EL controlador de LCD permite al Microcontrolador conectarse


a una LCD (pantalla de cristal líquido) externo directamente. Este controlador no es
muy común ya que muchas de sus funciones que ejecuta se pueden implementar
por programa.

Modo de Reposo.- Algunos Microcontroladores ofrecen modo de reposo


incorporado, que al ejecutarse detiene el oscilador interno y reduce el consumo de
energía a un nivel extremadamente bajo. El principal objetivo del modo de reposo
es el de conservar la batería cuando el Microcontrolador no esté haciendo nada útil.
El Microcontrolador se despierta del modo de reposo por un reinicio externo o por
el desbordamiento del perro guardián o alguna interrupción.

Página 60
Reinicio de Encendido.- Algunos microcontroladores tienen incorporados circuitos
de reinicio de encendido que mantienen al microcontrolador en estado de reinicio
mientras que la circuitería se ha inicializado por completo. El reinicio por encendido
ocurre si se conecta la terminal MCLR del microcontrolador a la terminal de
alimentación. El microcontrolador detecta la aparición de tensión de alimentación
provocando un reinicio que garantiza el correcto inicio de trabajo del
microcontrolador.

Modo de Bajo Consumo.- En el modo o estado de bajo consumo es especialmente


importante en aplicaciones portátiles cuando equipos son operados por baterías.
Algunos Microcontroladores pueden operar con menos de 2mA con una fuente de
5V, y alrededor de 15uA con 3V. Otros microcontroladores, especialmente los que
se basan en microprocesadores con muchos chips, pueden consumir cientos de
miliampers o incluso más.

4.3 PHP

PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web
y que puede ser incrustado en HTML. Es popular porque un gran número de páginas
y portales web están creadas con PHP. Código abierto significa que es de uso libre
y gratuito para todos los programadores que requieran usarlo.

PHP se utiliza para generar páginas web dinámicas. Recordemos que llamamos
página estática a aquella, cuyos contenidos permanecen siempre igual, mientras
que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo
siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que
haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.

El lenguaje de PHP se procesa en servidores, que son potentes ordenadores con


programa e infraestructura especial. Cuando se escribe una dirección en un
navegador web como Internet Explorer,Firefox, Chrome. Se envían los datos de la

Página 61
solicitud al servidor que los procesa, este reúne los datos (a esto se le llama proceso
dinámico) y el servidor devuelve una página HTML como si fuera estática.

El esquema es: Petición de página web al servidor --> El servidor recibe la petición,
reúne la información necesaria consultando la bases de datos de otras páginas
webs, otros servidores, etc --> El servidor responde enviando una página web
“normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de
modo que la página web devuelta no siempre es igual) .Este proceso se puede
observar en la figura 4.3

En resumen:

Páginas estáticas: Petición --> Respuesta

Páginas dinámicas: Petición --> Procesado y preparación --> Respuesta

FIGURA PHP 4.3

Página 62
En un sitio dinámico, la información generalmente está contenida en una base de
datos. Cada vez que se muestra una página, como por ejemplo una página de
noticias, se busca en una base de datos las últimas noticias que se tiene ingresadas
para mostrarlas en el navegador del visitante.

Para que la página web muestre datos nuevos simplemente se sobrescribe en la


misma base de datos, por ejemplo, a través de un formulario que rellena una
persona, una vez relleno, cuando se pulsa “Enviar” implica que lo que se haya
escrito se guarde en nuestra base de datos. De esta manera, cuando se solicita la
página web y el servidor consulte la base de datos, encontrará la nueva información
y mostrará en la página web los registros enviados.

Por regla general este tipo de lenguaje suele ser utilizado para crear contenido
dinámico y poder interactuar con el usuario. En la figura 4.3.2 se puede observar un
ejemplo de PHP realizado en HTML.

Figura 4.3.2

El intérprete de PHP solo ejecuta el código que se encuentra entre sus


delimitadores. Los delimitadores más comunes son <?php para abrir una sección
PHP y ?> para cerrarla. El propósito de estos delimitadores es separar el código
PHP del resto de código, como por ejemplo el html. Las variables se prefijan con el
símbolo del dólar ($) y no es necesario indicar su tipo. Las variables, a diferencia de

Página 63
las funciones, si distinguen entre mayúsculas y minúsculas. Las cadenas de
caracteres pueden ser encapsuladas tanto en dobles comillas como en comillas
simples, aunque en el caso de las primeras, se pueden insertar variables en la
cadena directamente, sin necesidad de concatenación.

Los comentarios se pueden escribir bien con dos barras al principio de la línea, o
con el símbolo #. También permite comentarios multi-línea encapsulados en /* */.

En cuanto a las palabras clave, PHP comparte con la mayoría de otros lenguajes
con sintaxis C las condiciones con if, los bucles con for y while y los retornos de
funciones. Como es habitual en este tipo de lenguajes, las sentencias deben acabar
con punto y coma (;).

4.4 MODELO ENTIDAD-RELACIÓN

Cuando se utiliza una base de datos para gestionar información, se está plasmando
una parte del mundo real en una serie de tablas, registros y campos ubicados en un
ordenador; creándose un modelo parcial de la realidad. Antes de crear físicamente
estas tablas en el ordenador se debe realizar un modelo de datos.

Se suele cometer el error de ir creando nuevas tablas a medida que se van


necesitando, haciendo así el modelo de datos y la construcción física de las tablas
simultáneamente. El resultado de esto acaba siendo un sistema de información
parcheado, con datos dispersos que terminan por no cumplir adecuadamente los
requisitos necesarios.

4.4.1 Entidades y Relaciones

El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R)


En el modelo E/R se parte de una situación real a partir de la cual se definen
entidades y relaciones entre dichas entidades para esto se necesita definir que es
una entidad y una relación las cuales se describen a continuación:

Página 64
4.4.1.1 Entidad

Es un objeto del mundo real sobre el que se quiere almacenar información (Ej: una
persona). Las entidades están compuestas de atributos que son los datos que
definen el objeto (para la entidad persona serían DNI, nombre, apellidos,
dirección,...).

De entre los atributos habrá uno o un conjunto de ellos que no se repite; a este
atributo o conjunto de atributos se le llama clave de la entidad, (para la entidad
persona una clave seria DNI).

En toda entidad siempre hay al menos una clave que en el peor de los casos esta
formada por todos los atributos de la tabla. Ya que puede haber varias claves y se
necesita elegir una, y se realizaran atendiendo a las siguientes normas:
 Ser única.
 Tener pleno conocimiento de ella
 Ser mínima, ya que será muy utilizada por el gestor de base de datos.

4.4.1.2 Relación (php)

Es una Asociación entre entidades, sin existencia propia en el mundo real que se
está modelando, pero necesaria para reflejar las interacciones existentes entre
entidades. Las relaciones pueden ser de tres tipos:

 Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una


a una (Ej.: la entidad hombre, la entidad mujer y entre ellos la relación
Matrimonio).
 Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas
(n) de otra (Ej: la entidad empresa, la entidad trabajador y entre ellos la
relación trabajar-en).

Página 65
 Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades
de la relación, puede estar asociada con muchas (n) de la otra y
viceversa (Ej: la entidad alumno, la entidad empresa y entre ellos la
relación matricula).

4.4.2 Representación Gráfica de Entidades y Relaciones

Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se


utilizan los siguientes elementos gráficos:

Elementos Gráficos E/R

La utilización de estos elementos dará como resultado lo que se denomina el


esquema entidad-relación de la base de datos.

Un ejemplo más claro de la representación gráfica de un diagrama E/R puede


observarse en la Figura 5.6 que es el diagrama correspondiente a la base de datos
utilizada en el proyecto.

Página 66
CAPÍTULO 5
IMPLEMENTACIÓN DEL
TOKEN DE
CONTRASEÑA
DESECHABLE

CIUDAD DE MEXICO 2016


5.1 GENERACION DE LAS CONTRASEÑAS DE UN SOLO
USO
La protección del acceso a una red con la Contraseña de un solo uso ofrece una
capa adicional de seguridad al nombre de usuario y contraseña de la cuenta.
Cuando el usuario necesita acceder a sus recursos de datos, ya sean corporativos
o personales, este simplemente teclea su nombre de usuario, su contraseña y el
código numérico suministrado por Token para poder acceder correctamente. El
servidor de certificación valida el código y se concede acceso a los recursos
apropiados. Eso aumenta la seguridad en el proceso de registro (login), el cual
garantiza que la persona que accede a la red posee dos factores de verificación de
identidad. Eso significa que una persona no puede simplemente encontrar una
contraseña escrita u obtenerla a través de la ingeniería social; necesita contar con
el dispositivo Token y el código correcto en conjunto con otras informaciones del
usuario para obtener acceso.

Para la generación de los números aleatorios se utiliza un “generador congruencial


lineal”, este generador fue seleccionado por generar números aleatorios aceptables
así como tener la ventaja de poder ser implementado en aplicaciones con recursos
limitados. Estos números aleatorios se obtienen evaluando la siguiente ecuación:

Zi  aZi1  c mod m …1

El GNA requiere una semilla Z0, el cual es el estado inicial del GNA, es decir es el
punto inicial de la tabla aleatoria, el cual es también el primer valor. Para calcular
los siguientes valores de la tabla se sustituye en la ecuación de 𝑍𝑖−1 el valor
obtenido y el proceso se repite nuevamente.

En otras palabras, 𝑍𝑖 −1 es el valor del número aleatorio previamente calculado.


𝒂, 𝒄 𝑦 𝒎 son constantes y sé tienen que elegir cuidadosamente los valores de las
mismas,. Así se asegura una mayor aleatoriedad de los números generados. El

Página 68
valor de 𝒎 es el tamaño del ciclo de la tabla aleatoria, es decir, desde qué número
la tabla aleatoria repetiría de nuevo.

Se garantiza una generación de un período completo para cualquier valor de la


semilla y cuando se tiene un valor distinto de cero para 𝒄 tiene que cumplir las
siguientes condiciones:

1. 𝒄 𝑦 𝒎 deben ser primos relativos,


2. 𝒂-1 debe ser divisible por todos los factores primos de 𝒎
3. 𝒂-1 debe ser un múltiplo de 4, si 𝒎 es un múltiplo de 4.

En este caso se utiliza un generador lineal congruencial el cual tiene 8 bytes, esto
significa que si la matriz es más grande, el generador pasa a ser un generador
aditivo con retroalimentación y por lo tanto aumenta el periodo.

Es por eso que se recomienda para una variable de 32 bits, como la de una
computadora normal las siguientes constantes:
𝒂 = 1103515245
𝒄 = 12345
𝒎 = 231

5.2 MÉTODO PARA LA GENERACIÓN DE LA CONTRASEÑA


DESECHABLE PARA EL TOKEN

Por medio de la ecuación 1, se obtiene una tabla pseudo-aleatoria, sin embargo, es


necesario tener una tabla aleatoria única para cada token que se construye. Es
deseable tener una secuencia de números diferentes para cada token. Es posible
lograr esto gracias a la encriptación de la ecuación 1, esto mediante la realización
de una operación XOR del número aleatorio generado con una clave secreta K.
Después de esto, es necesario cambiar el tamaño de la secuencia de encriptado
para valores que se pueden implementar dentro de los ocho dígitos de una pantalla

Página 69
LCD (es decir, valores que van desde 0... 99999999 = 98) Esto se lleva a cabo
mediante una operación de módulo del valor calculado 𝑍𝑖 con 98+1.

Con esto, las contraseñas de un solo uso variarán de 0 a 98. Por lo cual la ecuación
se convierte en:

𝒁𝒊 = [(𝒂𝒁𝒊−𝟏 + 𝒄)𝒎𝒐𝒅 𝒎]⨂𝑲 ….. 2


𝑶𝒏𝒆𝑻𝒊𝒎𝒆 𝑷𝒂𝒔𝒔𝒘𝒐𝒓𝒅 = 𝒁𝒊 𝒎𝒐𝒅 𝒎(𝟗𝟖 + 𝟏) ….. 3

El token de seguridad necesita ser inicializado, es decir tener un valor inicial, para
esto tiene que ser el mismo valor de la clave secreta 𝑲 como la semilla para el token,
el cual será el valor de 𝒁𝒊 .Este valor se almacena en la memoria del token y se usa
para calcular la siguiente contraseña de un solo uso, así mismo también en el lado
del servidor para validar la contraseña.

Las primeras 1,000 contraseñas de un solo uso se generan en el lado de token de


seguridad para que se desperdicien (esto se realiza para permitir la detección previa
de 1,000 contraseñas de un solo uso expiradas como se explicara más adelante).

En el lado de token el valor de 𝑲 se obtiene y se usa como semilla 𝒁𝟎 para la


evaluación de la Ecuación 2 y 3, y con esto obtener una primera contraseña .
Posteriormente esta contraseña se evalúa de nuevo para obtener otra contraseña
de un solo uso. Con esto, cada vez que se pulsa el botón "generar una contraseña
de un solo uso" se obtiene una secuencia pseudoaleatoria ya encriptada.

5.3 VALIDACIÓN DE LA CONTRASEÑA DESECHABLE EN EL


SERVIDOR

Para validar una contraseña de un solo uso en el lado del servidor es necesario
descifrar la contraseña de un solo uso introducida por el usuario. Sin embargo, la
operación de modulo no puede ser revertida (la operación de modulo doble

Página 70
resultante, usada en la ecuación 3 es incluso más irreversible). Por lo tanto no es
posible descifrar la contraseña de un solo uso introducida por el usuario de forma
usual (por ejemplo, llevando a cabo las operaciones inversas); por esta razón es
descifrada solamente usando un método exhaustivo.

En el lado del servidor, para poder validar una contraseña de un solo uso introducida
por el usuario, se generan N (10,000) contraseñas de un solo uso posteriores a la
del contador actual y se almacenan en el servidor usando el método explicado para
la generación de contraseñas de un solo uso en el lado del token.

Estas son contraseñas de un solo uso que ya fueron válidas e introducidas por el
usuario, y que ya han expirado; esto se hace para la retroalimentación del usuario
y para que pueda distinguir de una contraseña invalida y una expirada (validada
pero expirada; que ya fue introducida por el usuario al sitio web del banco
anteriormente).

Si la contraseña de un solo uso introducida por el usuario se encuentra entre las N


(10,000) expiradas, se le informa al usuario que la contraseña introducida fue valida
en el pasado pero expiro y ya no se tomara más como válida. Después de esto, N
(10,000) contraseñas de un solo uso son generadas usando el mismo enfoque
anterior. Estas son las posibles llaves válidas para el estado actual del token.

Si la contraseña de un solo uso introducida por el usuario está dentro de este rango,
la llave es aceptada como válida. El valor de 𝒁𝒊 para la llave que coincidió menos N
expirada es guardada en el servidor. Este valor será necesario para contar las N
contraseñas de un solo uso para una validación futura. Si no se encuentra ninguna
coincidencia se procede a rechazar la llave introducida por el usuario y el valor 𝒁𝒊
guardado en el lado del servidor permanece sin cambios.

Una ventaja del método que se presenta es que un rango de solo N llaves aprobadas
son válidas y las llaves que no son válidas en un momento se vuelven válidas en
otro, de acuerdo al valor actual de 𝒁𝒊 guardado en el momento actual en el lado del
Página 71
servidor. Esto permite tener una muy baja probabilidad de que una contraseña de
un solo uso es aceptada por el servidor como válido, lo que lleva a un sistema
altamente seguro.

Se toma en consideración que el usuario puede desperdiciar contraseñas de un solo


uso al generarlas y no usarlas (ejemplo, el usuario no introdujo al sitio del banco
una contraseña de un solo u so generada por el token); por esta razón hay un rango
de N contraseñas válidas. Este rango da una tolerancia en el número aceptable de
contraseñas de un solo uso; es deseable que este valor sea tan pequeño como sea
posible porque esto dará una menor probabilidad de que alguien, al azar, pueda
adivinar una contraseña de un solo uso. Esto contribuye a un mayor nivel de
seguridad, ya que las contraseñas de un solo uso de 8 dígitos numéricos y con
10,000 llaves para el rango de N y que a su vez estas sean válidas resultara en una
probabilidad de casi una en 100 millones de que una llave dada sea correcta. Por
otra parte, si el usuario desperdicia más de 10,000 llaves al generar contraseñas de
un solo uso y no introduciéndolas al servidor, puede ocurrir una desincronización y
el token se vuelve inútil; por lo tanto el valor del rango N debe ser considerado
cuidadosamente.

Es importante remarcar que el valor máximo de contraseñas de un solo uso


desperdiciadas es reiniciado entre validaciones, lo que significa que si el usuario
tiene una cantidad considerable de contraseñas de un solo uso desperdiciadas, el
rango N es reiniciado a 1,000 en el lado del servidor una vez que una contraseña
de un solo uso es aceptada, dando al usuario el número máximo de contraseñas de
un solo uso que pueden ser desperdiciadas de nuevo.

Una ventaja de este método es que no es necesario almacenar las llaves generadas
en el servidor; se almacena un valor de 𝒁𝒊 por usuario. Por esta razón, este método
no desperdicia espacio en el servidor para almacenar las llaves expiradas, ni
desperdicia recursos para determinar si la llave introducida por el usuario es parte
de las llaves expiradas. Quizás esto es representativo con un usuario pero tomando
en cuenta que una institución bancaria puede tener millones de clientes, entonces
Página 72
el ahorro de recursos y espacio se vuelve significante. El método también tiene la
ventaja de que una vez que una llave ha sido aceptada y validada, todas las llaves
previas expiran automáticamente, incluso en casos donde no han sido introducidas
al servidor.

5.4 NÚMERO DE MÁXIMAS CONTRASEÑAS DESECHABLES


GENERADAS

A pesar del hecho de que este método es capaz de generar todas las
combinaciones posibles como contraseñas de un solo uso, no se recomienda
hacerlo. Es probable que un intruso esté almacenando las contraseñas de un solo
uso que se han generado por el token, de esta manera, como el usuario está
introduciendo contraseñas de un solo uso, la posibilidad de adivinar una contraseña
de un solo uso iría en aumento de forma arbitraria. Por esta razón, el token de
seguridad expira después de un millón de contraseñas de un solo uso que
permanecen en él. De este modo, la probabilidad de adivinar una contraseña de un
solo uso va de aproximadamente 1-en-100 millones a 1 en un millón suponiendo
que había un intruso almacenando toda la historia de las contraseñas de un solo
uso generadas por el token por años, lo cual es muy poco práctico. Este es un
escenario muy teórico pero eso se hace como una medida de seguridad extra.

5.5 CONSTRUCCION DEL TOKEN

Para la construcción del dispositivo se utilizó una serie de programas para la


simulación y posteriormente la construcción del prototipo, para la simulación del
algoritmo, este fue realizado en el programa PIC C de la compañía CSS el cual se
describe en los anexos de este mismo trabajo.

La construcción del PCB al igual que la lista de materiales, data-sheet, y algoritmo


se encuentra descrita en los anexos.

Página 73
El token utiliza un microcontrolador PIC16F4550 el cual posee una entrada, un
botón pulsador el cual es conectado al pin 2 del microcontrolador; cuando este es
presionado se despliega una contraseña de un solo uso en los 8 display’s de 7
segmentos. Los cuales son conectados a los pines 19-21 y 27-30 del
microcontrolador PIC18f4550 (ver figura 2).

Pic18f4550

Cabe mencionar que este microcontrolador posee la particularidad de conectarse


atreves de un cable USB a la computadora y activar el modo bootloader. Este modo
se describe en los anexos descritos con anterioridad.

Página 74
Figura 2 Esquema del token

5.6 PRUEBA DEL DISPOSITIVO TOKEN

Para la realización de la simulación del dispositivo se implementó una página web


para la prueba de las contraseñas desechables. Esta página web fue creada con el
fin de poder realizar las pruebas correspondientes y a su vez no pertenece a ningún
tipo de empresa bancaria privada o institución pública. Para realizar la prueba nos
dirigimos a la siguiente dirección en el navegador.
http://highsecret.com/secure/token/rngxor32/

Página 75
Página principal de la aplicación web

Se muestra en pantalla el usuario, contraseña y el número de token para ingresar.


Previamente se cargó la base de datos que contiene la semilla y la clave 𝑲 para la
generación de contraseñas en el servidor, la cual se enlaza con la página web para
la validación de la contraseña. En la siguiente imagen se puede observar el modelo
entidad relación de la base de datos generada en el servidor, el cual ayuda a la
validación de la contraseña del token.

Figura 5.6 Modelo Entidad-Relación E/R

Página 76
Una vez ingresada en la aplicación se pedirá un usuario y una contraseña, así como
los números que genera el token. El usuario y la contraseña son preestablecidos en
el servidor para el acceso en la página web.

Prototipo token de contraseña desechable.

Se presiona en el token el botón para la generación de la llave para poderla ingresar


en la aplicación. La que a su vez dará el acceso a nuestro sitio web.

Generación de la clave en el dispositivo token para el ingreso al sitio

Página 77
Se coloca el número generado del token en el espacio y se da clic en el botón Submit
para que nos dé acceso al sitio.

Si el número es ingresado correctamente se mostrara una pantalla como la que se


muestra a continuación indicándonos que la clave ingresada es correcta.

Ingreso exitoso al sitio

Si se quisiera ingresar nuevamente al sitio con el número generado anteriormente


nos saldrá un error en el sitio, el cual comentara que esa llave ya fue utilizada y que
se intente de nuevo con una contraseña nueva.

Página 78
Si se vuelve a presionar el botón generador, nuevamente el token proporcionara
otro número nuevo aleatorio para poder ser ingresado al sitio, cabe mencionar que
el token puede generar hasta 100, 000,000 debido a 𝒎 , que es el periodo del
generador de números aleatorios. Con esto se concluye que el dispositivo genera
una contraseña aleatoria y da como resultado el acceso a un sitio web en específico.

Página 79
TRABAJOS FUTUROS

CIUDAD DE MEXICO 2016


En la presente tesis se desarrolló un modelo funcional de token basado en una
publicación, el cual fue publicado en una conferencia internacional utilizando un
micro-controlador de la familia PIC18F. Una consecuencia de esto es que resultó
en un dispositivo demasiado grande como para que pueda caber en un bolsillo
(como usualmente sucede en los tokens comerciales).

Como trabajo futuro queda miniaturizar el dispositivo construyendo el dispositivo


primero utilizando un FPGA y luego posiblemente en un diseño ASIC para su
fabricación en masa.

La ecuación No Zi  aZi1  c  mod m es capaz de generar múltiples secuencias

aleatorias derivadas de los valores dados por las constantes a, c, m. Esto significa
para un trabajo posterior investigar y determinar si las secuencias aleatorias son tan
al azar como el original o al menos lo suficientemente aleatorio.

Otra cuestión que se deja para futuras investigaciones se relaciona con las
constantes del GNA. En este trabajo el algoritmo se presentó asumiendo un GNA
32 bits, pues el PIC C de CSS puede simular hasta este número de bits. Sin
embargo ya existe investigación para los valores de las constantes de GNA hasta
para 64 bit. Como trabajo futuro queda pendiente el implementar un algoritmo de
enteros largos para PIC C que pueda aprovechar un GNA de 64 bits. En la presente
tesis también se propone ampliar aún más el número de bits de la GNA para hacer
el algoritmo más fuerte.

Sin embargo, esta investigación debe llevarse a cabo para determinar los
mejores valores para las constantes de a y c que generan la mejor secuencia
aleatoria para un tamaño de 1024 bit en m. Finalmente este mismo algoritmo
podría modificarse para la implementación de otros token de seguridad de
mecanismo diferente al abordado en la presente tesis como por ejemplo token
temporizado y de desafío.

Página 81
CONCLUSIONES

CIUDAD DE MEXICO 2016


Se concluye con referente a lo expuesto en esta investigación que el algoritmo
presentado en esta tesis fue lo suficientemente compacto como para ser
implementado utilizando dispositivos con capacidades muy limitadas tanto en
recursos como en capacidad de memoria.

Difícilmente un algoritmo como se ha propuesto que utilice el algoritmo de


encriptación AES podría caber dentro de estos dispositivos pues la implementación
de este ocupa hasta 2,000 líneas de código por lo que la seguridad es muy alta a la
hora de querer romper la seguridad del mismo.

Por otra parte se puede concluir lo relevante y necesario que será para nuestro
desarrollo profesional y el de la seguridad de los datos en nuestro entorno personal
y de trabajo.

La mayor parte de los sistemas informáticos y redes mantienen de uno u otro modo
una relación de identidades personales asociadas normalmente con un perfil de
seguridad, roles y permisos.

La falta de supervisión en las aplicaciones web y los tokens de seguridad empleados


pueden significar que una aplicación indeseable de un tercero tenga acceso a los
servicios de la nube de una compañía o a nuestros datos personales, lo que puede
conducir a más incidencias en cuanto a información comprometida.

El uso de tokens hace mucho más flexible las sesiones de los servicios web, aunque
no se está hablando precisamente de sesiones. Sin embargo, funcionan como tal y
se puede incluir dentro de la estrategia de desarrollo, para poder dar soluciones a
problemas complejos en el tema de la autenticación de las llamadas a los métodos.

Los sistemas tradicionales de autenticación utilizan nombre de usuario y contraseña


para autenticar pares de usuarios. Esto proporciona una seguridad mínima, ya que
muchas contraseñas de usuario son muy fáciles de adivinar.

Página 83
Ahora dado estos últimos acontecimientos no favorables para la seguridad existe
como una opción de ALTO nivel lo que son los Tokens de seguridad cuyo objetivo
principal es brindar mejor autenticación, además que los servicios ofrecidos para
este dispositivo electrónico establece una relación de confianza entre un cliente y
un proveedor de servicios web, ya que para esta situación se ocupa la autenticación
con contraseña de un solo uso o contraseña desechable lo que es una variación de
la autenticación con usuario/contraseña.

En este método de autenticación se dificulta el acceso no autorizado haciendo que


cada contraseña sea válida para una única sesión. Es decir se tiene que usar una
contraseña nueva por cada nuevo ingreso. De esta forma se imposibilita que un
atacante que capture el usuario y la contraseña usada la pueda reutilizar. También
hace al sistema más resistente frente ataques de fuerza bruta ya que cada vez que
se cambia la contraseña, los intentos realizados anteriormente para violar la
contraseña anterior ya no sirven para nada por lo que hay que empezar desde cero.

Dado el objetivo principal que presenta el Token de Seguridad que es de


autentiticación, este dispositivo electrónico efectúa correctamente su función,
además qué brinda seguridad al usuario que lo posea.

Página 84
ANEXOS

CIUDAD DE MEXICO 2016


ANEXO 1 UTILIZACIÓN DEL BOOTLOADER EN EL PIC18F4550
Cuando se desea grabar un programa en la memoria de un microcontrolador,
normalmente se utiliza un programador, el cual es un dispositivo de costo elevado,
que se conecta a una computadora y transfiere los datos (archivo .hex) que serán
grabados en la memoria del microcontrolador.

La familia de los microcontroladores PIC18, tienen instrucciones que permiten


escribir en la memoria de programa, esta característica puede aprovecharse para
realizar un grabador dentro del mismo microcontrolador que se está utilizando. A
este grabador interno se le conoce como bootloader.

Un bootloader es un pequeño programa dentro del microcontrolador que se


comunica con la computadora (en este caso por USB) y graba los datos que recibe
de la PC en la memoria de programa del microcontrolador. Microchip proporciona
un bootloader para ser usado con los PIC que poseen USB.

Este bootloader llamado Microchip USB HID Bootloader tiene las siguientes
características:
 Abarca las primeras localidades de la memoria de programa: de la 000H a la
0FFFH. Es decir una octava parte de la memoria de programa. Véase la
figura A-1.

 Los vectores de interrupción y la zona de memoria de la aplicación se


encuentran a partir de la localidad 1000H. Eso quiere decir que todos los
programas empiezan a partir de la localidad 1000H.

 Los vectores de Interrupción originales 0008H y 0018H son movidos a las


localidades 1008H y 1018H respectivamente. Eso quiere decir que usaremos
estos vectores. Ej. ORG 0x1008 y ORG 0x1018.

Página 86
 Al RESET, el microcontrolador selecciona si entra al bootloader o a la
aplicación del usuario. Esta selección se hace por medio del botón
BOOTLOADER.

FIGURA A-1

ENTRAR A BOOTLOADER

Para ingresar al modo Bootloader, se mantiene presionado el botón Bootloader (pin


37) y al mismo tiempo se pulsa momentáneamente el botón RESET (pin1). Al
realizar esta acción el microcontrolador entrara al modo Bootloader y un LED
parpadeara indicando que se ha establecido la comunicación con la computadora
vía USB, con esto se podrá realizar la grabación y/o actualización del mismo.

Página 87
ANEXO 2 PCB WIZARD– PROFESSIONAL EDITION 3.5
PCB WIZARD es un proyecto creado por new weve concepts, este es un potente
paquete para el diseño de una sola cara y doble cara de tarjetas de circuitos
impresos (PCB).ofrece una gran gama de herramientas que cubre con todos los
pasos tradicionales la produccion de un PCB,y se incluye:
 Dibujo esquematico
 Captura esquematica
 La colocacion de componentes
 Enrutamiento automatico
 Lista de materiales
 Generacion de archivos para la fabricacion del pcb

A si mismo, permite al usuario crear y simular circuitos electronicos con una amplia
galeria de componentes del circuito. El circuito final puede ser exportado al
programa de Asistente de PCB con el fin de poder imprimirlo y aplicarlo a nuestra
una placa;en las siguientes figuras se puede observar los diferentes vistas de la
placa ya terminada.

FIGURA A-2

Página 88
VISTA REAL

FIGURA A-3

VISTA DE TRABAJO

FIGURA A-4

Página 89
VISTA DISEÑO

FIGURA A-5

ANEXO 3 BARRIDO DE DISPLAY

La técnica de multiplexar varios displays de 7 segmentos se basa en el defecto que


tienen los humanos en los ojos (persistencia de la retina) en donde da la sensación
de ver una imagen cuando está ya ha desaparecido.

Si se tiene un oscilador que controla el encendido y el apagado de un led, creando


una intermitencia, en el momento que esta sea lo suficientemente rápida ya no se
apreciara que el led llega a apagarse, sino que dará la sensación que está
permanentemente encendido. Prácticamente a frecuencias superiores a 30hz ya no
se apreciara el parpadeo.

En muchos dispositivos se emplea el multiplexado para ahorrar el número de pines.


Ya que los pines disponibles en un PIC no se ajustan para controlar cada LED
individualmente. El esquema de la figura A-6 representa la forma más típica para
multiplexar 2 displays a través de un microcontrolador.

Página 90
FIGURA A-6

Por ejemplo si se quiere representar en los displays el número 12, primero


mandamos a los ánodos la tensión para encender los dos segmentos que forman el
número “ 1” y a continuación polarizamos el cátodo mediante el transistor T1, con lo
cual solo se iluminara ese display, transcurrido un tiempo se deja de polarizar la
base de T1 para que dicho display se apague, y se procede a mandar la información
para encender los cinco segmentos que forman el número “ 2” y solo entonces se
polarizara el transistor T2 para que se encienda ese display.

Al realizar esta operación a una frecuencia superior a 30 Hz no es apreciado que el


“1” y el “2” están continuamente parpadeando y alternándose uno y otro.

Con este sistema se necesitan 7 pines del microcontrolador para controlar los
ánodos de los displays, más un pin por cada digito que se quiera poner. Así en el
caso de utilizar 8 displays se necesitaran 15 pines para controlarlos. En la figura A7.
Se observa cómo controlar 8 display´s con solo 7 pines utilizando un solo
microcontrolador.

Página 91
FIGURA A-7

Como vemos a parte del ahorro de pines, tampoco se necesita transistores ni


resistencias limitadoras, ya que el propio microcontrolador PIC limita la corriente a
25 mA.

Para usar este sistema de multiplexado se tiene que encender los 56 segmentos
que forman los 8 displays individualmente, se pondrá a “0” el cátodo del display a
representar, a “1” un único segmento, y el resto de pines hay que ponerlos en estado
de alta impedancia (configurados como entradas).

La ventaja del ahorro de pines se verá contrarrestada por la disminución en


luminosidad de los segmentos. Para el caso concreto del control de 8 dígitos, cada
segmento se mantiene encendido durante 400 microsegundos, y tarda 23
milisegundos en completar un ciclo completo. La elección de los 400 microsegundos
se ha elegido para evitar que se aprecie la intermitencia de los segmentos, ya que
si se aumenta el tiempo a 500 microsegundos ya se aprecia una leve intermitencia.

ANEXO 4 SIMULACION DEL TOKEN UTILIZANDO PROTEUS 8 Y


PIC C COMPILER.
Proteus: es una compilación de programas de diseño y simulación electrónica,
desarrollado por (Labcenter Electronics) que consta de dos programas principales:
Ares e Isis, y los módulos VSM y Electra.

Página 92
Isis: el Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de
Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea
realizar con componentes muy variados, desde simples resistencias, hasta alguno
que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación,
generadores de señales y muchos otros componentes con prestaciones diferentes.
Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el
módulo VSM, asociado directamente con ISIS.

Módulo vsm: Una de las prestaciones de Proteus, integrada con ISIS, es VSM, el
Virtual System Modeling (en español Sistema Virtual de Modelado),es una
extensión integrada con ISIS, con la cual se puede simular, en tiempo real, con la
posibilidad de tener un mayor rapidez, todas estas características son comunes en
varias familias de microcontroladores incluyendo los modelos de Pic18 el cual fue
utilizado en esta tesis.

Se pueden simular circuitos con microcontroladores conectados a distintos


dispositivos, como motores, lcd´s, teclados en matriz, etc. Incluye, entre otras, las
familias de PIC’s PIC10, PIC12,PIC16,PIC18,PIC24 y dsPIC33.

Ares:Advanced Routing and Editing Software (Programa de Edición y Ruteo


Avanzado); es la herramienta de enrutado, ubicación y edición de componentes, se
utiliza para la fabricación de placas de circuito impreso, permitiendo editar
generalmente, las capas superficial (Top Copper), y de soldadura (Bottom Copper).

Compilador Pic C de CCS:Un compilador es un programa informático que traduce


un programa escrito en un lenguaje de programación C, el cual es mucho más fácil
y rápido de desarrollar. Genera un programa equivalente que la máquina será capaz
de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero
también puede ser un código intermedio (byte code), o simplemente texto. Este
permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro
lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un
programador puede diseñar un programa en un lenguaje mucho más cercano a
Página 93
cómo piensa un ser humano, para luego compilarlo a un programa más manejable
por una computadora. El programa de simulación se encuentra guardado en un
archivo. C object el cual se genera a partir del compilador C el cual se puede
observar en la figura A-8.

FIGURA A-8

Para abrir el programa compilado se realiza lo siguiente:


 Se ejecuta la aplicación Pic C compiler.
 Se busca el archivo de proyecto en la carpeta source file.

Página 94
FIGURA A-9

Una vez abierto el programa en C se compila el archivo, esto se realiza con el


comando compile (compilador) o apretando f9 en nuestro teclado tal como se
muestra en la figura A-10.

FIGURA A-10

Página 95
Una vez realizado la compilación del programa se generan los archivos necesarios
para la simulación en Proteus que más a delante se explicara esto se observa en la
figura A-11.

FIGURA A-11

Cuando el programa termine de compilar el programa nos dará el siguiente mensaje


de alerta, este mensaje indica si se compilo con éxito o e tuvieron algunas alertas
de mala compilación o errores en el mismo código C como puede observarse en la
figura A-12.

FIGURA A-12

Página 96
Al verificar la barra de compilación de la parte superior del PIC C se observa que la
compilación fue todo un éxito ya que los mensajes de error y warnnigs permanecen
en 0 esto asegura una buena compilación del programa como puede verse en la
figura A-13

FIGURA A-13

Nota: En caso de realizar una mala compilación el programa podra no


ejecutarse de una manera conveniente.

Una vez realizado la compilación del programa se crearan dos archivos para el
programa Proteus. El archivo a utilizar será el archivo.cof el cual se cargara en el
circuito diseñado previamente en el Proteus 8.

Una vez compilado el programa en el pic C este archivo se cargara en el programa


Proteus para la compilación y prueba del token de contraseña desechable.

Para realizar la prueba de los archivos compilados del, programa pic C, se utilizara
el programa proteus para la simulación como a continuación se describe:
 Se abre el diseño del token en el programa proteus tal como se muestra en
la figura A-14

Página 97
FIGURA A-14

 se carga el archivo.cof generado del compilador PIC C como se muestra en


la figura A-15.

FIGURA A-15

 Este archivo .COF se busca en los archivos de programa (program file) y se


selecciona como en la figura A-16.

Página 98
FIGURA A-16

 Se carga el archivo. COF el cual se muestra en la carpeta del compilador


PIC C tal como se muesta en la figura A-17.

FIGURA A-17

Página 99
 La imagen muestra en el encabezado programa file el nombre de la
compilación guardada en este caso EL NOMBRE es rgxor32_7. Una vez
cargado el archivo.COF se da inicio a la simulación en el botón
play(comenzar) como se muestra en la figura A-18.

FIGURA A-18

 El indicador pasara de color azul a verde en ese momento el programa


empezará a trabajar y mostrara la llave de seguridad en el display de 8
segmentos figura A-19.

Página 100
FIGURA A-19

El Proteus tiene lo que bien podría ser un bug, el cual hace que no puedan ser
visualizados correctamente los dígitos cuando estos se refrescan demasiado rápido.

Para efectos de simulación se tiene un tiempo de 250ms y para grabación en el


micro controlador es de 1ms.

Estos archivos COF del compilador PIC C se necesitan para poder bootear el micro
controlador pic18f4550.Para lograr esto se requiere el programa de microchip para
poder trasferir el archivo.cof1 en el micro controlador. Esto se explica en el Anexo
A.

1 Aunque también puede simularse a partir de un archivo .HEX, se prefiere un .COF pues este permite depurar
el código fuente en su respectivo código original .C.

Página 101
GLOSARIO

CIUDAD DE MEXICO 2016


Agresor.- Que agrede o ataca con violencia, en especial causando un

daño físico.

Algoritmo.- En aritmética y programación informática, conjunto ordenado de

instrucciones sistemáticas que permite hallar la solución de un

problema específico.

Anomalía.- Cambio o desviación respecto de lo que es normal, regular,

natural o previsible.

Antivirus.- Programa informático que sirve para detectar, prevenir y

eliminar virus informáticos en los distintos soportes de

almacenamiento de datos, como el disco duro o un disquete.

Autenticidad.- Calidad y carácter de verdadero o autorizado.

B2C.- Estrategia que desarrollan las empresas comerciales para llegar

directamente al cliente o consumidor final.

Biométricos.- Aplicación de técnicas matemáticas y estadísticas sobre los

rasgos físicos o de conducta de un individuo, para su

autentificación, es decir, “verificar” su identidad. Las huellas

dactilares, la retina, 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).

Chip.- Pieza de silicio pequeña y con forma cuadrada o rectangular en

cuyo interior hay un circuito integrado con millones de

Página 103
componentes; generalmente se combina con otros elementos

para formar un sistema más complejo, como un ordenador.

Cibernéticos.- Estudio interdisciplinario de la estructura de los sistemas

reguladores. La cibernética está estrechamente vinculada a la

teoría de control y a la teoría de sistemas.

Cifrada.- Mensaje que está escrito en clave.

Clonación.- Replicar una información que se encuentra en una zona de

memoria a otra zona de memoria, a esto también se le llama

"copia".

Confidencialidad.- Cualidad de aquello que es reservado o secreto.

Cookies.- Pequeña información enviada por un sitio web y almacenada en

el navegador del usuario, de manera que el sitio web puede

consultar la actividad previa del usuario.

Sus principales funciones son:

Llevar el control de usuarios: cuando un usuario introduce su

nombre de usuario y contraseña, se almacena una cookie para

que no tenga que estar introduciéndolas para cada página del

servidor. Sin embargo, una cookie no identifica a una persona,

sino a una combinación de computador-navegador-usuario.

Correlación.- Correspondencia o relación recíproca entre dos o más cosas,

ideas, personas, etc.

Página 104
Crackers.- (Del inglés cracker, y este de to crack, ‘romper’, ‘quebrar’) se

utiliza para referirse a las personas que "rompen" algún sistema

de seguridad. Los crackers pueden estar motivados por una

multitud de razones, incluyendo fines de lucro, protesta, o por el

desafío. Mayormente, se entiende que los crackers se dedican

a la edición desautorizada de programas propietario. Sin

embargo, debe entenderse que si bien los ejecutables binarios

son uno de los principales objetivos de estas personas, una

aplicación web o cualquier otro sistema informático representan

otros tipos de ataques que de igual forma pueden ser

considerados actos de cracking.

Criptográfico.- Tradicionalmente se ha definido como el ámbito de la criptología

el que se ocupa de las técnicas de cifrado o codificado

destinadas a alterar las representaciones lingüísticas de ciertos

mensajes con el fin de hacerlos ininteligibles a receptores no

autorizados. Estas técnicas se utilizan tanto en el Arte como en

la Ciencia. Por tanto, el único objetivo de la criptografía era

conseguir la confidencialidad de los mensajes. Para ello se

diseñaban sistemas de cifrado y códigos.

Cuarzo.- Mineral muy duro de aspecto cristalino que forma parte de la

composición de muchas rocas; en estado puro es incoloro, pero

puede adquirir gran variedad de colores en función de las

sustancias con las que esté mezclado.

Página 105
Digitalizar.- Transformar una información a un sistema de dígitos para su

tratamiento informático.

Distinción.- Conocimiento o manifestación de las diferencias entre unas

cosas y otras.

e-banking.- Banca online o home banking a los servicios bancarios a los

que se puede acceder a través de una computadora personal

con conexión a la red de internet. Los servicios de e-banking

pueden ser prestados por un banco tradicional, con presencia

física, que lo utiliza como una sucursal virtual o canal de

servicios; o también estos servicios pueden ser ofrecidos por un

banco totalmente virtual (sin presencia física).

En línea.- Hace referencia a un estado de conectividad, frente al término

fuera de línea (offline) que indica un estado de desconexión.

Existen algunos significados más específicos.

En un sistema para la ejecución de una tarea en particular, se

dice que un elemento del sistema está en línea si está

operativo.

En telecomunicación, el término tiene otro significado muy

específico. Un aparato asociado a un sistema está en línea si se

encuentra bajo control directo del mismo, esto es, si se

encuentra disponible para su uso inmediato por parte del

sistema, sin intervención humana, pero que no puede operar de

modo independiente del sistema.

Página 106
Encriptación.- En criptografía, el cifrado es un procedimiento que utiliza un

algoritmo con cierta clave (clave de cifrado) transforma un

mensaje, sin atender a su estructura lingüística o significado, de

tal forma que sea incomprensible o, al menos, difícil de

comprender a toda persona que no tenga la clave secreta (clave

de descifrado) del algoritmo.

Firewalls.- Es una parte de un sistema o una red que está diseñada para

bloquear el acceso no autorizado, permitiendo al mismo tiempo

comunicaciones autorizadas.

Se trata de un dispositivo o conjunto de dispositivos

configurados para permitir, limitar, cifrar, descifrar, el tráfico

entre los diferentes ámbitos sobre la base de un conjunto de

normas y otros criterios.

Los cortafuegos pueden ser implementados en las

infraestructura o en los programas, o en una combinación de

ambos. Los cortafuegos se utilizan con frecuencia para evitar

que el usuarios de Internet no autorizados tengan acceso a

redes privadas conectadas a Internet, especialmente intranets.

Todos los mensajes que entren o salgan de la intranet pasan a

través del cortafuegos, que examina cada mensaje y bloquea

aquellos que no cumplen los criterios de seguridad

especificados.

Página 107
Fotodiodo.- Es un semiconductor construido con una unión PN, sensible a la

incidencia de la luz visible o infrarroja. Para que su

funcionamiento sea correcto se polariza inversamente, con lo

que se producirá una cierta circulación de corriente cuando sea

excitado por la luz. Debido a su construcción, los fotodiodos se

comportan como células fotovoltaicas, es decir, iluminados en

ausencia una fuente exterior de energía generan una corriente

muy pequeña con el positivo en el ánodo y el negativo en el

cátodo.

Gestión.- Acción o trámite que hay que llevar a cabo para conseguir o

resolver una cosa.

Hackear.- Acción de irrumpir o entrar de manera forzada a un sistema de

cómputo o a una red.

Hardware.- Se refiere a todas las partes físicas de un sistema informático;

sus componentes son: eléctricos, electrónicos,

electromecánicos y mecánicos.1 Son cables, gabinetes o cajas,

periféricos de todo tipo y cualquier otro elemento físico

involucrado; contrariamente, el soporte lógico es intangible y es

llamado programa.

Homogéneo.- Que está formado por elementos con una serie de

características comunes referidas a su clase o naturaleza que

permiten establecer entre ellos una relación de semejanza.

Página 108
Host.- El término host ("anfitrión", en español) es usado en informática

para referirse a las computadoras conectadas a una red, que

proveen y utilizan servicios de ella. Los usuarios deben utilizar

anfitriones para tener acceso a la red. En general, los anfitriones

son computadores monousuario o multiusuario que ofrecen

servicios de transferencia de archivos, conexión remota,

servidores de base de datos, servidores web, etc.

Incidente.- Circunstancia o suceso que sucede de manera inesperada y

que puede afectar al desarrollo de un asunto o negocio, aunque

no forme parte de él.

Intangibilidad.- Capacidad de un objeto de ser atravesado sin sufrir ninguna

clase de daño, así como de poder atravesar la materia sin

dificultad alguna.

Integridad.- Estado de lo que está completo o tiene todas sus partes.

Interfaz.- Nombrar a la conexión física y funcional entre dos sistemas o

dispositivos de cualquier tipo dando una comunicación entre

distintos niveles.

Internet.- Red mundial de comunicación compuesta por miles de redes

telefónicas e informáticas que se encuentran conectadas entre

sí para transmitir información.

Interrelación.- Relación entre personas, animales o cosas que se influyen

mutuamente.

Página 109
Intrínseco.- Que es propio o característico de una cosa por sí misma y no

por causas exteriores.

Intrusos.- Se aplica a la persona que se ha introducido en una propiedad,

lugar, asunto o actividad sin derecho o autorización.

Inviable.- Que no tiene posibilidades de llevarse a cabo.

LCD.- Una pantalla de cristal líquido o LCD (sigla del inglés liquid

crystal display) es una pantalla delgada y plana formada por un

número de píxeles en color o monocromos colocados delante

de una fuente de luz o reflectora. A menudo se utiliza en

dispositivos electrónicos de pilas, ya que utiliza cantidades muy

pequeñas de energía eléctrica.

Magneprint.- Sistema que detecta cuando una tarjeta es clonada y rechaza la

realización de todas las operaciones.

Monitorear.- Su origen se encuentra en monitor, un aparato que toma

imágenes de instalaciones filmadoras o sensores y que permite

visualizar algo en una pantalla. El monitor, por lo tanto, ayuda a

controlar o supervisar una situación.

Muestreo.- Técnica para la selección de una muestra a partir de una

población. Al elegir una muestra aleatoria se espera conseguir

que sus propiedades sean extrapolables a la población. Este

proceso permite ahorrar recursos, y a la vez obtener resultados

parecidos a los que se alcanzarían si se realizase un estudio de

toda la población.

Página 110
Negligencia.- Falta de cuidado o interés al desempeñar una obligación.

Ocurrencia.- Idea inesperada o pensamiento original que tiene una persona.

OTP (One Time Es una contraseña válida solo para una autenticación. La OTP

Password).- soluciona una serie de deficiencias que se asocian con la

tradicional (estática) contraseña. La deficiencia más importante

que se aborda en las OTP es que, en contraste con contraseñas

estáticas, no son vulnerables a ataques de REPLAY.

Password.- Una contraseña o clave es una forma de autentificación que

utiliza información secreta para controlar el acceso hacia algún

recurso. La contraseña debe mantenerse en secreto ante

aquellos a quien no se les permite el acceso. A aquellos que

desean acceder a la información se les solicita una clave; si

conocen o no conocen la contraseña, se concede o se niega el

acceso a la información según sea el caso.

Pautas.- Dar normas o directrices para llevar a cabo una acción.

Phishing.- Phishing o suplantación de identidad es un término informático

que denomina un modelo de abuso informático y que se comete

mediante el uso de un tipo de ingeniería social caracterizado por

intentar adquirir información confidencial de forma fraudulenta

(como puede ser una contraseña o información detallada sobre

tarjetas de crédito u otra información bancaria).

Página 111
PIN.- Es un número de identificación personal utilizado en ciertos

sistemas, como el teléfono móvil o el cajero automático, para

identificarse y obtener acceso al sistema. El PIN es un tipo de

contraseña. Sólo la persona beneficiaria del servicio conoce el

PIN que le da acceso al mismo; esa es su finalidad. El PIN tiene

que ser suficientemente seguro evitar la intrusión no autorizada

al servicio que protege.

Riesgo.- Es la vulnerabilidad ante un potencial perjuicio o daño para las

unidades, personas, organizaciones o entidades (en general

"bienes jurídicos protegidos"). Cuanto mayor es la vulnerabilidad

mayor es el riesgo, pero cuanto más factible es el perjuicio o

daño, mayor es el peligro. Por tanto, el riesgo se refiere sólo a la

teórica "posibilidad de daño" bajo determinadas circunstancias,

mientras que el peligro se refiere sólo a la teórica "probabilidad

de daño" bajo esas circunstancias.

Salvaguardar.- Defender o proteger a una persona o cosa.

Script.- Es un programa usualmente simple, que por lo regular se

almacena en un archivo de texto plano. Los script son casi

siempre interpretados, pero no todo programa interpretado es

considerado un script. El uso habitual de los scripts es realizar

diversas tareas como combinar componentes, interactuar con el

sistema operativo o con el usuario.

Página 112
Servidor.- Un servidor es una aplicación en ejecución (programa) capaz de

atender las peticiones de un cliente y devolverle una respuesta

en concordancia. Los servidores se pueden ejecutar en

cualquier tipo de computadora, incluso en computadoras

dedicadas a las cuales se les conoce individualmente como "el

servidor". En la mayoría de los casos una misma computadora

puede proveer múltiples servicios y tener varios servidores en

funcionamiento. La ventaja de montar un servidor en

computadoras dedicadas es la seguridad. Por esta razón la

mayoría de los servidores son procesos daemon diseñados de

forma que puedan funcionar en computadoras de propósito

específico.

SMTP.- Es un protocolo de red utilizado para el intercambio de

mensajes de correo electrónico entre computadoras u otros

dispositivos (PDA, teléfonos móviles, etc.). Fue definido en el

RFC 2821 y es un estándar oficial de Internet.

El funcionamiento de este protocolo se da en línea, de manera

que opera en los servicios de correo electrónico. Sin embargo,

este protocolo posee algunas limitaciones en cuanto a la

recepción de mensajes en el servidor de destino (cola de

mensajes recibidos).

Página 113
Sniffer.- Es un programa informático que registra la información que

envían los periféricos, así como la actividad realizada en un

determinado ordenador.

Software.- Se conoce como software1 al equipamiento lógico o soporte

lógico de un sistema informático, que comprende el conjunto de

los componentes lógicos necesarios que hace posible la

realización de tareas específicas, en contraposición a los

componentes físicos que son llamados hardware.

Susceptible.- Capaz de recibir el efecto o acción que se indica.

Troyano.- Programa malicioso que se presenta al usuario como un

programa aparentemente legítimo e inofensivo, pero que, al

ejecutarlo, le brinda a un atacante acceso remoto al equipo

infectado.

URL.- Es un identificador de recursos uniforme (URI) cuyos recursos

referidos pueden cambiar, esto es, la dirección puede apuntar a

recursos variables en el tiempo. Están formados por una

secuencia de caracteres, de acuerdo a un formato modélico y

estándar, que designa recursos en una red, como Internet.

USB.- El Bus Universal en Serie (BUS) (en inglés: Universal Serial

Bus), es un bus estándar industrial que define los cables,

conectores y protocolos usados en un bus para conectar,

comunicar y proveer de alimentación eléctrica entre

computadoras, periféricos y dispositivos electrónicos.

Página 114
Virtual.- Simulación audiovisual de un entorno real por medio de

imágenes de síntesis tridimensionales.

Virus.- Un virus informático es un malware que tiene por objeto alterar

el normal funcionamiento del ordenador, sin el permiso o el

conocimiento del usuario. Los virus, habitualmente, reemplazan

archivos ejecutables por otros infectados con el código de este.

Los virus pueden destruir, de manera intencionada, los datos

almacenados en una computadora, aunque también existen

otros más inofensivos, que solo se caracterizan por ser

molestos.

Los virus informáticos tienen, básicamente, la función de

propagarse a través de programas ,es muy nocivo y algunos

casos contienen una carga dañina (payload) con distintos

objetivos.

Vulnerable.- Que puede ser dañado física o moralmente.

WAP.- Wireless Application Protocol o WAP (protocolo de aplicaciones

inalámbricas) es un estándar abierto internacional para

aplicaciones que utilizan las comunicaciones inalámbricas, p.ej.

acceso a servicios de Internet desde un teléfono móvil.

Se trata de la especificación de un entorno de aplicación y de un

conjunto de protocolos de comunicaciones para normalizar el

modo en que los dispositivos inalámbricos, se pueden utilizar

para acceder a correo electrónico, grupo de noticias y otros.

Página 115
WWW (Word Wide En informática, la World Wide Web (WWW) o Red informática

Web).- mundial1 comúnmente conocida como la Web, es un sistema de

distribución de documentos de hipertexto o hipermedios

interconectados y accesibles vía Internet. Con un navegador

web, un usuario visualiza sitios web compuestos de páginas

web que pueden contener texto, imágenes, vídeos u otros

contenidos multimedia, y navega a través de esas páginas

usando hiperenlaces.

Página 116
BIBLIOGRAFIA

CIUDAD DE MEXICO 2016


1. (A Collection of Selected Pseudorandom Number Generators)Press, W. H. (n.d.).
Numerical Recipes in FORTRAN 77: The Art of Scientific Computing (2nd ed.).
2. (Brent, (. 2. ((October 2005). "On the xorshift random number generators". ACM
Transactions on Modeling and Computer Simulation (TOMACS).
3. (Bruce Schneier, M. 2. (n.d.). The Failure of Two-Factor Authentication.
4. 1Lenore Blum, M. B.-r. (n.d.). Advances in Cryptology: Proceedings of Crypto.
5. A Collection of Selected Pseudorandom Number Generators, K. E. (n.d.).
6. Brent M. G. Barkam, B. &., Meier, W., & (2005)., S. V. (n.d.). "The Conditional
Correlation Attack: A Practical Attack on Bluetooth Encryption".
7. Brent M. G. Barkam, E., Biham, E., & Keller, N. (. ( October 2005). Journal of
Cryptology.
8. Brent M. G. Barkam, M. &. (n.d.). A Simple Unpredictable Pseudo-Random
Number Generator", SIAM Journal on Computing.
9. Brent M. G. (October 2005). Lineal Feedback Shift Registers in Virtex Devices,
Maria George and Peter Alfke, Xilinx press.
10. Brent, M. G. ( (October 2005)). Algebraic Shift Register Sequences, Cambridge
University Press, 2012.
11. Brent, R. P. ((August 2004)). "Note on Marsaglia’s Xorshift Random Number
Generators". Journal of Statistical Software.
12. Cryptanalysis of the Alleged SecurID Hash Function, B. A. (n.d.).
13. Dorrendorf, L., & Zvi Gutterman, B. P. (n.d.). "Cryptanalysis of the Random
Number Generator of the Windows Operating System".
14. Dorrendorf, L., & Zvi Gutterman, B. P. (n.d.). "Cryptanalysis of the Random
Number Generator of the Windows Operating System".
15. Fahmida Y. Rashid, M. 2. (n.d.). RSA SecurID Breach Is a Lesson in APTs.
16. Generator, N. o. (n.d.). J. Kelsey, B. Schneier, and N. Ferguson, Sixth Annual
Workshop on Selected Areas in Cryptography, Springer Verlag.
17. Generators)Press), 1. (. (n.d.).
http://ib.cnea.gov.ar/~gpgpu/Introduccion_al_calculo_numerico_en_gpgpu/Clases
_files/clase9.pdf.
18. http://es.wikipedia.org/wiki/Banca_electr%C3%B3nica. (n.d.).
19. http://es.wikipedia.org/wiki/Token_de_seguridad. (n.d.).
20. http://msdn.microsoft.com/es-es/library/ee517266.aspx. (n.d.).
21. http://protejete.wordpress.com/gdr_principal/definicion_si/. (n.d.).
22. http://www.jstatsoft.org/v08/i14/paper. (n.d.).
23. Internet, L. a. (n.d.). (Bruce Schneier, August 10, 2009).
24. issued, U. S. (August 12, 2007).
25. Marsaglia, G. ((July 2003).). "Xorshift RNGs". Journal of Statistical Software.
26. Niels Ferguson and Bruce Schneier, P. C. (n.d.).
27. Viega, N. F. (n.d.). "Practical Random Number Generation in Software," acsac, pp.
129, 19th Annual Computer Security Applications Conference.

Página 118

También podría gustarte