Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T E S I S
PRESENTAN:
ASESORES:
Gracias por las pláticas y consejos que día a día me seguirán ayudando en mi
vida personal y ahora profesional.
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.
Página 4
OBJETIVO
Página 6
ÍNDICE
Índice ..................................................................................................................................... 7
Introducción ......................................................................................................................11
Antecedentes ....................................................................................................................13
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
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
Conclusiones ....................................................................................................................82
Anexos ................................................................................................................................85
Página 10
INTRODUCCIÓN
en los últimos años. La seguridad es un tema muy amplio y difícil de abarcar ya que
volverla vulnerable.
A muchas personas les resulta muy cómodo tener siempre a la mano sus datos
internet, esto puede permitir que cualquier persona pueda tener acceso a nuestra
prioridad, ya que en los últimos años más de la mitad de la población tiene acceso
electrónicos, redes sociales, etc. y estos podrían ser muy fáciles de atacar o
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
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.
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
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.
Página 17
1.2 PROTECCIÓN DE DATOS
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
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.
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
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.
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:
Allanamiento
Virus
Incendio
Falta de corriente
Falta de reglas
Mal manejo
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.
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%)
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.
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
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)
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.
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.
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.
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.
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.
2.3.1 Casque
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 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.
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.
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.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.
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.
Desde el punto de vista del consumidor, la banca en línea ofrece una serie de
ventajas. Las cuales se enlistan a continuación:
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.
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.
Página 34
CAPÍTULO 3
GENERADORES DE
NÚMEROS ALEATORIOS
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.
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.
La constante multiplicativa: 𝒂
La constante aditiva: 𝒄
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
𝓖 = (𝑺, 𝒔𝟎 , 𝑻, 𝑼, 𝑮) ……………………………(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.
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 periodo es el entero positivo más pequeño 𝝆 tal que, dado algún entero 𝝉 ≥ 𝟎
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.
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.
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.
Ventajas:
Las series obtenidas son reproducibles.
Inconvenientes
Lentitud.
Requiere una gran cantidad de almacenamiento.
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.
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.
Desventaja
La principal desventaja de este generador es que es muy lento .
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).
Página 43
Donde 𝒄𝒊 = 𝟎, 𝟏 el cual es un conjunto de 𝒏 constantes binarias. Es claro que esta
Las relaciones más sencillas se basan en polinomios dados por la ecuación 12 del
tipo:
𝒇(𝒛) = 𝟏 + 𝒛𝒒 + 𝒛𝒑 ……………………………(12)
Si consideramos que 𝒛𝒊 son variables lógicas, se podrá escribir esta ecuación como:
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.
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).
Seguridad
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 𝑴.
Página 46
Ventaja
Desventaja
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.
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.
Página 48
Si, 𝒂 = 𝟎 el generador es 𝑿𝒏+𝟏 = (𝑿𝒏 + 𝒄) 𝒎𝒐𝒅 𝒎 .Desarrollando algunos de los
elementos que se van obteniendo, se tiene:
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.
Desventajas
Página 49
CAPÍTULO 4
TECNOLOGIAS DE LA
INFORMACIÓN
UTILIZADOS
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:
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.
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.
Los siguientes datos son las variables de entorno que pasan por los programas CGI:
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.
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.
Página 55
4.2 MICROCONTROLADOR
Página 56
4.2.1 Características del Microcontrolador PIC 18f4550
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.
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.
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.
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.
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.
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á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.
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
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 (;).
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.
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.
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:
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).
Página 66
CAPÍTULO 5
IMPLEMENTACIÓN DEL
TOKEN DE
CONTRASEÑA
DESECHABLE
Zi aZi1 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.
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.
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
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:
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.
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 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.
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.
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.
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
Página 74
Figura 2 Esquema del token
Página 75
Página principal de la aplicación web
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.
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.
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
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
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.
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.
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.
Página 84
ANEXOS
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.
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
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
Página 90
FIGURA A-6
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
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).
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.
FIGURA A-8
Página 94
FIGURA A-9
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
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
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.
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
FIGURA A-15
Página 98
FIGURA A-16
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
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.
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
daño físico.
problema específico.
natural o previsible.
Página 103
componentes; generalmente se combina con otros elementos
"copia".
Página 104
Crackers.- (Del inglés cracker, y este de to crack, ‘romper’, ‘quebrar’) se
Página 105
Digitalizar.- Transformar una información a un sistema de dígitos para su
tratamiento informático.
cosas y otras.
operativo.
Página 106
Encriptación.- En criptografía, el cifrado es un procedimiento que utiliza un
Firewalls.- Es una parte de un sistema o una red que está diseñada para
comunicaciones autorizadas.
especificados.
Página 107
Fotodiodo.- Es un semiconductor construido con una unión PN, sensible a la
cátodo.
Gestión.- Acción o trámite que hay que llevar a cabo para conseguir o
llamado programa.
Página 108
Host.- El término host ("anfitrión", en español) es usado en informática
dificultad alguna.
distintos niveles.
mutuamente.
Página 109
Intrínseco.- Que es propio o característico de una cosa por sí misma y no
LCD.- Una pantalla de cristal líquido o LCD (sigla del inglés liquid
toda la población.
Página 110
Negligencia.- Falta de cuidado o interés al desempeñar una obligación.
OTP (One Time Es una contraseña válida solo para una autenticación. La OTP
Página 111
PIN.- Es un número de identificación personal utilizado en ciertos
Página 112
Servidor.- Un servidor es una aplicación en ejecución (programa) capaz de
específico.
mensajes recibidos).
Página 113
Sniffer.- Es un programa informático que registra la información que
determinado ordenador.
infectado.
Página 114
Virtual.- Simulación audiovisual de un entorno real por medio de
molestos.
objetivos.
Página 115
WWW (Word Wide En informática, la World Wide Web (WWW) o Red informática
usando hiperenlaces.
Página 116
BIBLIOGRAFIA
Página 118