Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE MADRID
DEPARTAMENTO DE INGENIERA TELEMTICA Y
TECNOLOGA ELECTRNICA
TESIS DOCTORAL
Arquitecturas de Seguridad para
Sistemas Distribuidos Fraccionables,
Dinmicos y Heterogneos con Aplicacin a
la Computacin Ubicua
Autor:
Enrique Soriano Salvador
Ingeniero en Informtica
Director:
Francisco J. Ballesteros Cmara
Doctor en Informtica
E-Mail: esoriano@lsub.org
WWW: http://lsub.org/who/esoriano
c 2006
Madrid,
de
de
2006
TESIS DOCTORAL:
AUTOR:
DIRECTOR:
PRESIDENTE:
Dr.
VOCALES:
Dr.
Dr.
Dr.
SECRETARIO:
Dr.
Madrid,
de
de
2006
Prefacio
El trabajo aqu expuesto se ha desarrollado en el Laboratorio de Sistemas
del Grupo de Sistemas y Comunicaciones de la Universidad Rey Juan Carlos.
El presente documento se ha creado en un entorno de computacin Plan B,
Agradecimientos
En primer lugar, me gustara dar gracias a Mara y a mi familia por ser tan
pacientes y animarme a seguir adelante. Sin vosotros, este trabajo no habra
sido posible.
Tambin me gustara agradecer a mis compaeros del Grupo de Sistemas y
Comunicaciones el apoyo y el magnco ambiente de trabajo que han creado.
A Gorka por sus comentarios, ideas y sugerencias, que me han resultado de
gran utilidad.
Por ltimo, quiero expresar mi admiracin y agradecimiento a Nemo, por haber dirigido con tanta atencin este trabajo y haber dedicado una gran cantidad
de tiempo a revisarlo.
Enrique
Madrid, julio de 2006
Resumen
La computacin ubicua est convirtindose en una realidad, e implica un
modelo muy cercano a un sistema distribuido fraccionable, dinmico y heterogneo.
Nuestra visin de un entorno ubicuo es ms cercana a un modelo
Peer-to-Peer
que al modelo clsico Cliente/Servidor. Los nodos son dispositivos mviles (ordenadores de mano, telfonos, ordenadores porttiles, etc.) o no mviles (pantallas,
pizarras electrnicas, estaciones de trabajo etc.) conectados mediante distintos
tipos de tecnologas de red (Ethernet, Bluetooth, Wi-Fi etc.). Estos dispositivos
normalmente pertenecen a un usuario, y eventualmente otros usuarios desean o
necesitan utilizarlos.
El sistema es fraccionable por que pueden surgir situaciones en las que dos
dispositivos se puedan conectar entre s, pero no tengan conexin con el resto
del sistema. Por ejemplo, dos usuarios se encuentran en el aparcamiento donde
no hay ningn tipo de conexin con el exterior, pero ellos pueden comunicarse
mediante la tecnologa Bluetooth de sus dispositivos.
El sistema es dinmico, ya que los dispositivos aparecen y desaparecen constantemente (principalmente los dispositivos mviles). Los usuarios, igual que los
dispositivos, aparecen y desaparecen constantemente.
El sistema es heterogneo, debido a que los dispositivos utilizados por los
usuarios son muy variados, desde ordenadores personales a electrodomsticos.
En un escenario como este se necesita una arquitectura de seguridad que
ofrezca autenticacin, condencialidad, integridad y control de acceso. Creemos
que ninguno de los esquemas propuestos para sistemas distribuidos y para en-
Este trabajo presenta las ideas generales para construir una arquitectura de
seguridad centrada en el humano para espacios inteligentes. Tambin presenta el diseo, los protocolos y los detalles de implementacin para el sistema
operativo Plan B de tres arquitecturas incrementales que proporcionan entrada
Single Sign-On),
nica al sistema (
Abstract
Ubiquitous computing is becoming real. It implies a model close to a dynamic, partitionable and heterogeneous distributed system. Our vision of pervasive
computing is closer to Peer-to-Peer network systems than to classic client/server
open network systems. In that model, the nodes can be mobile devices (mobile
phones, handhelds, etc.) or non mobile devices (workstations, servers, panels,
etc.), and they can be interconnected by dierent kinds of network technologies
(ethernet, wi-, bluetooth). These devices belong to users, and users eventually
need or want to use devices that they do not own.
The system is partitionable, because it has to be available at locations where
several principals can communicate but there is no connection with the rest of
the system.
The system is dynamic too, because devices, as well as principals, come and
go.
The system is heterogeneous due to the wide range of devices that exist in
an ubiquitous environment.
In a scenario like this, a new security architecture is needed. We think that
neither classic security schemes that are used in common open network systems
nor security schemes proposed for ubiquitous environments comply with some
of the requirements that are implicit to this model:
This PhD. thesis oers the basic principles to build a human centered security architecture for today's smart spaces. It also describes the design and the
implementation for the Plan B operating system of three security architectures
that oer real Single Sign-On, terminal sharing and device sharing between users
in our smart space.
ndice general
1. Introduccin
1.1.
Objetivos de la investigacin . . . . . . . . . . . . . . . . . . . .
1.1.1.
1.1.2.
. . . . . . .
1.1.3.
Soporte de desconexiones . . . . . . . . . . . . . . . . . .
1.1.4.
Interoperabilidad
. . . . . . . . . . . . . . . . . . . . . .
1.1.5.
Simplicidad
. . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.
Extensibilidad . . . . . . . . . . . . . . . . . . . . . . . .
1.1.7.
1.2.
. . . . . . . . . . . . . . .
2.2.
2.3.
Seguridad cliente/servidor
11
. . . . . . . . . . . . . . . . . . . . .
12
2.1.1.
Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.1.2.
15
2.1.3.
19
2.1.4.
Sesame . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.1.5.
Factotum/Secstore
26
. . . . . . . . . . . . . . . . . . . . .
ad-hoc . . . . . . .
Arquitecturas propuestas para GAIA Smart Spaces
. . .
28
2.2.1.
. . .
38
43
ii
NDICE GENERAL
2.4.
. . . . . . . . . . . . . . .
52
. . . . . . . . . . . . . . . . . . .
52
54
Tipos de dispositivos
2.5.
. . . . . . . . . .
60
2.6.
. . . . . . . . . . . . . . . . . . .
61
2.7.
Tabla comparativa
. . . . . . . . . . . . . . . . . . . . . . . . .
66
69
3.1.
70
3.2.
72
3.3.
73
3.4.
Escenarios de ejemplo
75
3.4.1.
3.5.
3.6.
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
75
3.4.2.
3.4.3.
. .
81
82
3.5.1.
Hiptesis . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
3.5.2.
Costes y compromisos
. . . . . . . . . . . . . . . . . . .
84
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
Metodologa
89
4.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.2.
92
4.3.
93
4.4.
4.5.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
98
4.4.1.
. . . . . . . . . . . . . . . .
98
4.4.2.
Escenario de ejemplo . . . . . . . . . . . . . . . . . . . .
103
Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
107
4.5.1.
Claves
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
4.5.2.
111
iii
NDICE GENERAL
4.6.
4.7.
4.5.3.
4.5.4.
Protocolo
Peer-to-Peer
. . . . . . . . . . . . . . . . . . .
113
115
. . . . . . . . . . .
116
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
4.6.1.
Claves
4.6.2.
. . . . . . . . . . . . . . . . . . .
122
4.6.3.
Repositorio de claves
. . . . . . . . . . . . . . . . . . .
124
4.6.4.
Conrmaciones: Oshad . . . . . . . . . . . . . . . . . . .
125
4.6.5.
Informacin de localizacin . . . . . . . . . . . . . . . . .
127
130
5. Comparticin de terminales
137
5.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
5.2.
Emparejamiento de UbiTerms
. . . . . . . . . . . . . . . . . . .
138
5.3.
140
5.3.1.
. . . . . . . . . . . . . . . .
141
5.4.
Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
5.5.
145
5.6.
Protocolo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149
5.6.1.
153
5.6.2.
Revocacin de un terminal . . . . . . . . . . . . . . . . .
156
Implementacin de prototipo . . . . . . . . . . . . . . . . . . . .
157
5.7.1.
. . . . . . . . . . . . . .
157
5.7.2.
Secretos comunes . . . . . . . . . . . . . . . . . . . . . .
159
5.7.3.
. . . . . . . . . . . . . . . . . . . . .
160
5.7.4.
160
5.7.5.
. . . . . . . . . . . . . . . . . . .
161
5.7.6.
162
Protocolo alternativo . . . . . . . . . . . . . . . . . . . . . . . .
163
5.8.1.
164
5.8.2.
Protocolo
165
5.8.3.
Ataque de
5.7.
5.8.
Esquema de funcionamiento
. . . . . . . . . . . . . . . . . . . . . . . . . .
hombre en el medio
. . . . . . . . . . . . . . .
167
iv
NDICE GENERAL
5.8.4.
. . . . . . . . . .
6. Comparticin de dispositivos
168
175
6.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
6.2.
El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
177
6.3.
177
6.4.
178
6.4.1.
Entidades
178
6.4.2.
Esquema de funcionamiento
. . . . . . . . . . . . . . . .
180
6.4.3.
Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182
6.5.
Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
187
6.6.
187
6.7.
189
6.8.
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
6.7.1.
. . . . . . . . . . . . .
191
6.7.2.
Dominios de autenticacin . . . . . . . . . . . . . . . . .
194
6.7.3.
. . . . . . . . . . .
196
6.7.4.
Control de acceso . . . . . . . . . . . . . . . . . . . . . .
198
6.7.5.
Esquema de funcionamiento
. . . . . . . . . . . . . . . .
202
6.7.6.
Conrmaciones
. . . . . . . . . . . . . . . . . . . . . . .
205
6.7.7.
Soporte de desconexiones . . . . . . . . . . . . . . . . . .
206
6.7.8.
Revocacin
. . . . . . . . . . . . . . . . . . . . . . . . .
207
Experiencia de uso
. . . . . . . . . . . . . . . . . . . . . . . . .
208
211
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
212
7.1.1.
Single Sign-On
. . . . . . . . . . . . . . . . . . . . . . .
212
7.1.2.
Comparticin de dispositivos . . . . . . . . . . . . . . . .
214
7.2.
Contribuciones
. . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.
215
. . . . . . . . . . . . . . . . . . . . . .
216
7.3.1.
216
7.3.2.
217
. . . . . . . . . . .
NDICE GENERAL
7.3.3.
7.4.
Trabajo futuro
. . . . . . . .
217
. . . . . . . . . . . . . . . . . . . . . . . . . . .
218
A. Herramientas criptogrcas
221
A.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
222
222
224
225
Bibliografa
229
Captulo 1
Introduccin
CAPTULO 1.
INTRODUCCIN
fraccionable,
hardware,
como
entorno
estas
caractersticas
no
es
concebible
sin
mecanismos
que aporten seguridad. En este tipo de entorno los usuarios comparten sus
dispositivos, que podran usarse sin permiso o daarse. Los usuarios tambin
comparten datos que podran corromperse, robarse o eliminarse. Adems, se
podra violar el derecho a la privacidad de las personas, debido a que en
un sistema ubicuo se pone a disposicin de los usuarios y de los programas
informacin sobre contexto fsico del entorno y la localizacin de individuos y
objetos.
dispositivos
debe
ser
condencial,
especialmente
cuando
se
utilizan
software y hardware.
CAPTULO 1.
INTRODUCCIN
entorno mediante aplicaciones que actan siempre como programa cliente. Estos
programas cliente solicitan servicio a un programa que acta exclusivamente
como servidor, y que por lo general es nico.
Nuestra visin de un entorno ubicuo es ms cercana a un sistema
Peer-to-
hardware.
Peer-to-Peer.
middleware, framework
92].
El
con el
uso
de
software
esas
herramientas
introduce
problemas
de
compatibilidad
software
adicional (
wrappers)
para poder
Single Sign-On)
sistema (
1.1.
OBJETIVOS DE LA INVESTIGACIN
trabaja con mltiples dispositivos simultneamente [24; 144; 128; 170; 41;
92]. En estas situaciones, el usuario necesita autenticarse al menos una vez por
cada dispositivo que est utilizando, de tal forma que no existe una entrada
nica al sistema ubicuo.
Peer-to-Peer
SHAD
Los entornos ubicuos son sistemas fsicos en los que los humanos interactan
entre
ellos,
por
tanto,
en
nuestro
sistema
el
humano
es
el
Peer.
Los
mecanismos de seguridad deben ser cmodos para los usuarios, que no pueden
estar
introduciendo
contraseas
utilizando
dispositivos
de
autenticacin
Single
Peer-to-Peer,
CAPTULO 1.
INTRODUCCIN
Personal Area
Network) [83].
Por ejemplo, un usuario del sistema podra querer utilizar un recurso de otro
usuario en el aparcamiento subterrneo del edicio en el que ambos trabajan. En
esa localizacin lo ms probable es que no exista ninguna forma de conectarse a
la red del lugar de trabajo. Una arquitectura en la que los elementos a autenticar
dependen de servicios centralizados no puede afrontar una situacin como esa.
Un objetivo de SHAD es proporcionar seguridad en escenarios como el descrito,
de tal forma que los usuarios sean independientes de los servicios centralizados
del entorno.
1.1.
OBJETIVOS DE LA INVESTIGACIN
contraseas poco seguras y, por lo general, es difcil hacer que estos mantengan
una cierta disciplina a la hora de gestionarlas [10, Captulo 3] [42].
En
el
caso
de
los
dispositivos
de
autenticacin
no
inalmbricos
(p.e.
1.1.4. Interoperabilidad
Como ya hemos mencionado en la introduccin, algunas de las estrategias
seguidas
en
varios
de
incompatibilidades con el
los
sistemas
planteados
en
la
literatura
provocan
aplicaciones
slo
requerirn
pequeas
modicaciones
para
poder
CAPTULO 1.
INTRODUCCIN
1.1.5. Simplicidad
Tanto el diseo como la implementacin de SHAD debern perseguir
la simplicidad. La simplicidad facilita la trazabilidad del sistema. Tambin
aumenta su robustez.
La literatura nos muestra que un diseo basado en la simplicidad y en el
principio
1.1.6. Extensibilidad
SHAD debe ser extensible, para poder crecer y adaptarse a las necesidades
de un espacio inteligente.
La
arquitectura
dispositivos
en
el
tendr
sistema.
que
permitir
Tambin
la
deber
inclusin
ser
de
nuevos
extensible
tipos
respecto
de
los
proliferacin
de
dispositivos
mviles
en
los
ltimos
aos
ha
sido
bolsillo,
agendas
dispositivos
inalmbricas.
con
electrnicas,
capacidad
Algunos
de
de
estos
ordenadores
proceso
porttiles
capacidades
dispositivos
tienen
y
de
una
otros
tipos
de
comunicacin
capacidad
de
1.2.
10
CAPTULO 1.
INTRODUCCIN
Captulo 2
Estado del arte
11
12
CAPTULO 2.
to-Peer.
Peer-
comerciales.
2.1. Seguridad
en
cliente/servidor
sistemas
distribuidos
2.1.1. Kerberos
Kerberos [182] es un esquema de seguridad propuesto para sistemas
distribuidos abiertos de tipo cliente/servidor que proporciona a los usuarios
autenticacin y condencialidad en redes inherentemente inseguras.
Kerberos se basa en criptografa de clave simtrica. Toda entidad del
sistema tiene asignada una clave privada. Tanto los clientes como los servidores
comparten su clave privada con un servicio especial ofrecido por un nodo
denominado centro de distribucin de claves (KDC). Por tanto, en el proceso de
autenticacin entran en juego al menos tres entidades: el cliente, el servidor y el
centro de distribucin de claves.
La autenticacin se basa en el algoritmo de Needham-Schroeder [123] (ver
gura 2.1). Kerberos utiliza resguardos o credenciales (tickets) para autenticar
a los usuarios del sistema. Los tickets son datos cifrados con la clave secreta
de la entidad para la que se crean. Cuando un cliente tiene que autenticarse,
solicita al KDC un ticket generado especcamente para el nodo servidor. El
KDC responde a ese mensaje con un mensaje cifrado con la clave secreta del
cliente (Kc). El mensaje contiene:
2.1.
13
SEGURIDAD CLIENTE/SERVIDOR
Figura 2.1:
authenticator
cliente y su identicador. El
por el KDC. Una vez
authenticator
con la
authenticator
cifrado con la
14
CAPTULO 2.
llamado TGT (
2.1.
15
SEGURIDAD CLIENTE/SERVIDOR
X.509 [74] son los ms populares dentro de las PKI. Estos certicados son
bsicamente claves pblicas pertenecientes a las entidades que estn rmadas
digitalmente con la clave privada de una entidad certicadora de conanza.
Cuando el usuario recibe un certicado, podr comprobar que est rmado
digitalmente con la clave privada de una entidad certicadora de la que se
fa. Esta comprobacin se puede realizar usando la clave pblica de la entidad
certicadora, conocida por todos los usuarios (que suponen que es correcta y de
conanza). De esa forma, el usuario se ar de la clave pblica del certicado
recibido.
Mediante el uso de un esquema de nombrado especial, como el estndar
X.500 [23], se pueden ordenar las entidades y usuarios en una jerarqua
de dominios, de tal forma que las entidades de dominios superiores rman
digitalmente los certicados de los dominios inferiores.
Los
certicados
X.509
contienen,
adems
de
la
rma
de
la
entidad
16
CAPTULO 2.
2.1.
SEGURIDAD CLIENTE/SERVIDOR
17
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 7829 (0x1e95)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc,
OU=Certification Services Division,
CN=Thawte Server CA/Email=server-certs@thawte.com
Validity
Not Before: Jul 9 16:04:02 1998 GMT
Not After : Jul 9 16:04:02 1999 GMT
Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala,
OU=FreeSoft, CN=www.freesoft.org/Email=baccala@freesoft.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb:
33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1:
66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66:
70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17:
16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b:
c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77:
8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3:
d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8:
e8:35:1c:9e:27:52:7e:41:8f
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d:
92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92:
ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67:
d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72:
0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1:
5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7:
8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22:
68:9f
Cuadro 2.1:
1.
Cifrado simtrico: RC2 [153], RC4 [164], IDEA [95], DES [118],
Triple-DES [118] AES [121].
18
CAPTULO 2.
2.
3.
Internet
Engineering Task Force [77]. En concreto, TLS se basa en la versin 3.0 de SSL.
Estos protocolos, aunque son muy parecidos, no son compatibles entre s.
Tanto TLS como SSL ofrecen seguridad a los protocolos de aplicacin que
se usan comnmente en entornos de red. Por ejemplo, la versin segura del
protocolo HTTP se denomina HTTPS [149] y puede usar los dos protocolos (TLS
y SSL). Otro ejemplo es SSH [199], el acceso remoto a consola que reemplaza al
protocolo Telnet [142; 141].
El principal problema que tiene aplicar un esquema como el que se utiliza en
el WWW en un entorno como el descrito en la introduccin es que se depende
en todo momento de las entidades certicadoras y de las claves pblicas de
estas. Estas claves se utilizan para comprobar la autenticidad de los certicados
recibidos por clientes y servidores. Por lo tanto, un usuario del entorno debera
ponerse en contacto con las entidades certicadoras en cada autenticacin.
Alternativamente, el usuario podra mantener replicados los certicados de
las entidades certicadoras en todos sus dispositivos. Esta alternativa no sera
viable sin un esquema adicional que gestionase los certicados de una forma
sencilla para el usuario del entorno ubicuo.
Adems,
para
aadir
un
elemento
al
sistema
es
necesario
realizar
el
2.1.
19
SEGURIDAD CLIENTE/SERVIDOR
mecanismos
de
seguridad
para
autenticar
usuarios
certicar
sus
20
CAPTULO 2.
Figura 2.2:
Trust Management).
2.1.
SEGURIDAD CLIENTE/SERVIDOR
21
22
CAPTULO 2.
que
tienen
que
presentar
para
que
sus
operaciones
resulten
autorizadas deben estar rmados por el administrador del sistema u otra entidad
superior en la que han de conar tanto el cliente como el servidor. De esta forma,
los usuarios dependen de un administrador global para poder acceder a nuevos
servicios.
Los clientes dependen de los servicios de nombres de Jini. Por tanto, dos
usuarios que se encontrasen en una particin aislada del resto de la red no
podran autenticarse mutuamente ni acceder a sus servicios.
Adems, este esquema puede depender de servidores de claves o entidades
certicadoras. Por ejemplo, el cliente debe conar en la clave pblica del servicio
para que el mdulo de seguridad de Jini pueda comprobar la rma del cdigo
del objeto representante y de sus datos. A priori, el cliente debera desconar
del servicio, ya que un adversario podra haberle suplantado. Por lo tanto, el
cliente no se puede ar de que la clave pblica que le proporciona el servicio es
correcta.
Para solucionar este problema, el mdulo de seguridad puede seguir una de
las siguientes soluciones:
Obtener las claves pblicas de un servidor central. En este caso, el mdulo
de seguridad de Jini tiene que contactar con una entidad centralizada para
obtener la clave pblica del servicio o para comprobar que es correcta. Por
tanto, los clientes dependen de esta conexin para poder acceder a los
servicios y no pueden acceder de forma segura a los servicios cuando esta
no est disponible.
Obtener otro certicado junto al certicado del objeto representante que
demuestre que la clave es correcta. Este certicado debera estar rmado
2.1.
SEGURIDAD CLIENTE/SERVIDOR
23
software adicional (wrappers) para poder usar los servicios del sistema.
2.1.4. Sesame
Sesame [86] es un esquema de seguridad ideado para redes de ordenadores
basados en un modelo cliente/servidor clsico. El sistema se fundamenta en
las mismas ideas que Kerberos y es compatible con este. Esta arquitectura
ofrece dos mecanismos de autenticacin [11], uno basado en Kerberos y otro
basado en una infraestructura de clave pblica (PKI), en concreto en certicados
X.509 [74]. Adems de los mecanismos para la autenticacin, Sesame ofrece
24
CAPTULO 2.
Figura 2.3:
Role Based Control Access). Este enfoque consiste en asignar roles a los usuarios
del sistema. El control de acceso se realiza teniendo en cuenta el rol que asume
el usuario. El enfoque clsico para el control de acceso son las listas de control
de acceso ACL (
2.1.
25
SEGURIDAD CLIENTE/SERVIDOR
otra
parte,
Sesame
utiliza
tcnicas
de
cifrado
asimtrico,
que
son
26
CAPTULO 2.
2.1.5. Factotum/Secstore
El sistema operativo Plan 9 [137] usa un esquema de seguridad que separa la
autenticacin de la lgica de los programas de aplicacin. Todos los mecanismos
de autenticacin estn fuera de las aplicaciones (servidores y clientes) y se
manejan a travs de un servicio llamado
2.1.
27
SEGURIDAD CLIENTE/SERVIDOR
las claves del usuario si ste introduce su contrasea (la de Secstore). A partir
de ese momento no se necesita interaccionar con el usuario para autenticarle
ante los servicios cuyas contraseas estn guardadas en el almacn. El uso de
Factotum junto a Secstore reduce drsticamente la obstruccin al usuario, ya que
el usuario slo debe introducir una sola contrasea por mquina para acceder a
todos los servicios desde esa mquina.
Normalmente se mantiene slo una instancia de Factotum en una mquina
Plan 9, aunque puede haber ms de una si algn proceso necesita usar un
agente propio. Factotum es un servidor de cheros, y como tal, se puede
usar desde otras mquinas. En cada mquina del sistema distribuido hay al
menos un agente. La comunicacin necesaria para el proceso de autenticacin se
mantiene entre los agentes de las mquinas involucradas (cliente y servidora)
y no entre las aplicaciones (programa cliente y programa servidor). Al ser
Factotum el encargado de las tareas de autenticacin, las aplicaciones apenas
necesitan modicaciones para poder aadir funcionalidad de este tipo. Ntese
que estas modicaciones consisten en incluir llamadas al sistema operativo para
leer y escribir en el sistema de cheros, por lo que las aplicaciones no necesitan
grandes cambios ni utilizar ningn tipo de nueva tecnologa (p.e.
frameworks). Por
middleware
28
CAPTULO 2.
2.2.
AD-HOC
29
En este trabajo se introduce la idea de usar una relacin de este tipo entre el
humano y un dispositivo. El humano puede ser el maestro para un dispositivo de
control que a la vez es maestro para otros dispositivos. Por ejemplo, el humano
es el maestro de un control remoto de un dispositivo de vdeo, al que le introduce
una contrasea al iniciar la sesin. En ese momento, el control remoto posee la
identidad que le ha dado el humano. Para controlar el dispositivo de vdeo, el
control remoto le da una identidad, de tal forma que slo le obedezca a l. De
30
CAPTULO 2.
esta forma se crea una cadena de mando, que transmite las rdenes del humano
hasta el dispositivo nal. El problema de este modelo reside en que si un eslabn
de la cadena falla, la orden no le llegar al dispositivo.
El protocolo tiene una extensin para los casos en los que los dispositivos
actan como pares iguales, por ejemplo en una red
Peer-to-Peer.
En esta
Trust Management)
de gestin de conanza (
un cliente puede realizar ciertas acciones. Por otra parte, el dispositivo esclavo
puede realizar operaciones poco peligrosas que son declaradas como inocuas sin
la necesidad de presentar ningn tipo de certicado.
Si un atacante se hace con un dispositivo con las credenciales necesarias
para usar otros dispositivos, y es capaz de extraerlas del mismo (si el dispositivo
no es resistente a forzamientos), entonces podr acceder a ellos sin permiso.
Siempre que se proporcione delegacin guardando secretos en los dispositivos,
nos encontraremos con ese problema.
El propio autor del sistema acepta lo que l mismo denomina el principio
The Big Stick Principle) [179, Captulo 4]: cualquiera que tenga
2.2.
AD-HOC
31
Peer-to-Peer
32
CAPTULO 2.
2.2.
AD-HOC
33
Attribute Vector Model [172] sigue la misma lnea que el trabajo anterior.
Su aproximacin al problema se centra en la informacin del contexto fsico de
la entidad (p.e. la localizacin). Mediante esa informacin se intentan establecer
relaciones de conanza en escenarios donde la informacin sobre la identidad
de los dems puede no estar disponible (informacin que puede extraerse de
sistemas clsicos basados en servidores centralizados). Los autores proponen un
esquema que se basa en vectores que almacenan informacin de la identidad del
usuario junto a informacin sobre el contexto de la entidad. Se pretende obtener
un valor que represente la conanza en otra entidad mediante la aplicacin de
una funcin sobre el vector que le corresponde, de tal forma que la relacin de
conanza entre dos entidades depende de los vectores que les representan en
cada una de las partes. Una vez que se ha aplicado la funcin al vector, el nivel
de conanza se dene en base a un umbral determinado para esa entidad.
Los
autores
argumentan
que
la
relacin
de
conanza
es
totalmente
descentralizada, ya que slo depende de los vectores en las dos partes. Pero
esto no es totalmente cierto, debido a que los valores de ciertas posiciones de
los vectores dependen de la informacin sobre la identidad de la entidad, y no
explican cmo pueden obtenerse, aunque hacen referencia a los sistemas clsicos
(se entiende que se reeren a esquemas como Kerberos o PKI). En ese caso, los
valores de los vectores s dependen de entidades centralizadas. Suponiendo que
la funcin capture la nocin de conanza de un humano de una forma aceptable,
tampoco explican cmo se extrae la informacin relacionada con el contexto si
esta informacin no est centralizada en servidores.
34
CAPTULO 2.
framework)
2.2.
AD-HOC
35
Authentication
servidor los roles obtenidos del PAS. Una vez que el componente SACM del
servidor comprueba que los roles y los privilegios del usuario son correctos, el
cliente puede realizar peticiones al servidor. Las peticiones las realiza mediante
invocacin remota a mtodo.
Esta arquitectura se basa en Sesame y, por lo tanto, adolece de los mismos
problemas. El principal problema es que los clientes dependen de un nico
servidor para poder autenticarse. Eso implica que los clientes slo pueden
autenticarse cuando el servidor de seguridad est disponible. Sin contactar con
el servidor de autenticacin, el usuario no puede utilizar los servicios del entorno
ubicuo. El servidor de seguridad es un punto nico de fallo del sistema, ya que
si es objetivo de un ataque de denegacin de servicio y este tiene xito, todo el
entorno ubicuo quedara bloqueado. Por otra parte, el usuario debe autenticarse
introduciendo contraseas, lo que provoca obstruccin al usuario del entorno
ubicuo, como ya se ha explicado anteriormente.
36
CAPTULO 2.
middleware
(Corba [38],
middleboxes.
proxies en los middleboxes de este dominio, que a su vez ofrecen a los usuarios la
interfaz para usar dichos servicios. La interfaz depende de la poltica de control
de acceso y de los roles asignados.
Los
proxies
2.2.
AD-HOC
37
dominio de aplicacin ofrece a los usuarios una interfaz para usar los servicios
disponibles del dominio descrito anteriormente basndose en el rol que tienen
asignado.
Los clientes localizan los
middleboxes,
middleboxes
middleware:
middleboxes.
Si
middleware
proporciona tolerancia a
middleboxes. Si
servicio, el middleware
middleboxes
proporcionar
es
una
arquitectura
que
est
especcamente
orientada
38
CAPTULO 2.
Como
la
en
el
arquitectura
caso
ofrece
de
todas
las
mecanismos
arquitecturas
de
seguridad
propuestas
para
para
acceder
GAIA,
servicios
Peer-to-Peer.
Peer-to-Peer.
Spaces)
Las
credenciales
restringidas
sirven
para
ceder
privilegios
aplicaciones que no son de conanza. Estas credenciales son iguales que las
anteriores, pero adems aaden una lista con los privilegios que especican
la aplicacin a la que se ha cedido la credencial y los recursos para los que
la puede utilizar.
2.2.
AD-HOC
39
tm
encuentran relojes de pulsera [7], en concreto relojes Matsucom's OnHand
PC [129]. Los relojes disponen de un puerto de comunicacin por infrarrojos
(IRdA), capacidad de proceso y capacidad de almacenamiento.
El mecanismo de autenticacin de estos dispositivos se basa en certicados
de clave pblica ms ligeros que los certicados X.509 [74]. Los certicados slo
contienen el identicador del usuario, su clave pblica, la autoridad certicadora
que lo respalda, algunos datos adicionales y la rma de la entidad certicadora.
El certicado del propio usuario se almacena en la memoria del reloj. Debido a la
carga que supone el uso de criptografa de clave pblica, los relojes negocian una
clave para un algoritmo de criptografa de clave privada siguiendo el protocolo
Die-Hellman [49]. El protocolo de autenticacin es el siguiente:
40
CAPTULO 2.
su acceso.
Estos aspectos del control de acceso se controlan mediante el servicio
de control de acceso (ACS). Cuando un cliente necesita usar un servicio,
un componente situado en la misma mquina intercepta la peticin. Ese
componente
se
credenciales
del
denomina
usuario
interceptor,
en
las
es
peticiones.
el
En
encargado
el
lado
del
de
agregar
servidor,
las
otro
2.2.
AD-HOC
41
y que aplicaciones antiguas deban ser reescritas o envueltas por otros programas
para poder interactuar con en el entorno.
GAIA sigue un esquema cliente/servidor en el que los clientes acceden a
servicios atravesando una capa intermedia que es la que aade la autenticacin
y el control de acceso. Esa capa intermedia, implementada en el bus del
middleware,
42
CAPTULO 2.
160].
Cerberus
es
un
servicio
de
GAIA
que
incluye
funciones
para
Authentication Modules).
Pluggable
2.3.
43
La
infraestructura
de
contexto
de
GAIA
se
encarga
de
proporcionar
o SSO) en el mbito de un
44
CAPTULO 2.
On,
Single Sign-
el usuario slo se debe autenticar una vez ante el sistema, que gestionar
On
Single Sign-
en entornos clsicos donde el usuario trabaja con una nica mquina. Sin
2.3.
45
la sesin, el agente de SSH adquiere las claves privadas del disco y las almacena
en su memoria (opcionalmente puede requerir una contrasea para cada una
de estas claves privadas). Para conectarse a una de las mquinas en las que
se ha almacenado la clave pblica de alguna de las identidades que tienen
guardadas en la mquina local, no es preciso introducir ninguna contrasea.
En ese caso, el cliente de SSH se pone en contacto con el agente a travs de
un
Unix-Domain Socket [184, Captulo 16] del sistema operativo para que rme
46
CAPTULO 2.
todos los servicios del entorno en un nico repositorio, de tal forma que las
nicas claves que debe distribuir manualmente el usuario son las del propio
protocolo de SHAD.
Single Sign-On
FTP. Igual que en el caso anterior, estos programas almacenan las contraseas
del usuario para acceder a un servicio en concreto (en este caso a los servicios
WWW y FTP). Adems, el SSO es local, ya que los secretos no son accesibles
desde otros navegadores que puede estar utilizando el usuario en otras mquinas.
Otros programas actan como agentes que proporcionan autenticacin a las
aplicaciones que utiliza el usuario. A continuacin se presentarn varios sistemas
de este tipo.
passticket.
Si
2.3.
47
la pasa sin que el usuario tenga que intervenir. El agente intercepta los
dilogos que piden contraseas sin que el usuario se percate, e introduce
la contrasea en el campo de la entrada de texto correspondiente. Este
mtodo es ms comn que el anterior.
SecureLogin puede guardar la contrasea localmente para no volver a
preguntar al servidor de secretos si el usuario necesita autenticarse de
nuevo ante esa aplicacin. Este proceso es transparente para el usuario, al
que en ningn momento se le notica que el agente se ha autenticado ante
una aplicacin.
Un
agente
encargado
de
capturar
los
dilogos
de
autenticacin
de
aplicaciones de MS Windows.
48
CAPTULO 2.
Single Sign-On local a todas ellas, se debe autenticar al menos una vez
cmoda y transparente.
On
Single Sign-
escala y poder autenticar a los usuarios desde cualquier servidor web de Internet.
Por tanto, su objetivo es distinto a los sistemas descritos anteriormente, cuyo
principal nimo era proporcionar SSO de carcter general (esto es, a distintos
tipos de aplicaciones y servicios).
Los servidores web que desean utilizar los mecanismos de SSO de Passport
deben registrarse en el sistema. Durante este proceso, se negocia un secreto
compartido entre el proveedor del servicio y Passport, y se le asigna un
identicador nico. Dicho secreto es una clave secreta que se utilizar para cifrar
datos mediante un algoritmo de criptografa simtrica (en concreto, Triple DES).
El esquema de Passport se basa en el uso de un servicio centralizado de
autenticacin que expende credenciales a los clientes en forma de
cookies
(para
2.3.
49
cookies:
Un resguardo con el identicador del usuario y una marca de tiempo.
cookies
con la
clave que comparte con el proveedor del servicio, e incluye dicha informacin en
la URL que devuelve al navegador como redireccin. De esta forma, el proveedor
del servicio puede comprobar que el cliente ya est autenticado ante Passport.
Una vez que el usuario ha introducido su identicador y contrasea en
Passport, no necesitar volver a hacerlo mientras que conserve las
cookies
en
cookie. Si
50
CAPTULO 2.
authenticators.
Peer-to-Peer
Single Sign-On
propone
Cryptography)
el
uso
de
criptografa
de
umbral
[45]
Threshold
de tal forma que un programa que acta como cliente no depende de un nico
servidor de autenticacin para acceder a un servicio en concreto.
En este sistema se propone eliminar la autenticacin de las aplicaciones
y reemplazarla en los servidores de autenticacin. Cuando un cliente necesita
acceder a un servicio, accede a los servidores de autenticacin que haya
disponibles en ese momento. Si el cliente es capaz de recuperar de los servidores
disponibles un nmero suciente de claves, entonces el cliente podr autenticarse
ante el servicio mediante un mtodo de retos. El servidor debe distribuir
previamente las claves necesarias entre los distintos servidores de autenticacin.
Para distribuir y recuperar esas claves, CorSSO adopta un esquema de nombrado
propio. Los servidores de autenticacin pueden traducir de ese esquema de
nombrado propio de CorSSO a los esquemas de nombrado especcos del servicio
y al esquema de nombrado especco del servidor de autenticacin. El cliente
se deber autenticar ante los servidores de autenticacin para obtener las claves
2.3.
51
Single Sign-On
52
CAPTULO 2.
2.4.1.
Tipos de dispositivos
2.4.
53
etiquetas
(etiquetas, pegatinas etc.) que incorporan una antena, posiblemente con una
pequea memoria, y en ocasiones un chip que puede procesar datos. La
informacin almacenada se lee desde otro dispositivo (lector de RFIDs). Existen
dos tipos de dispositivos RFID: pasivos y activos. Los dispositivos pasivos son
aquellos que no tienen fuente de alimentacin propia y adquieren la energa
de la corriente inducida en la antena por la recepcin de la radio frecuencia,
suciente para responder al mensaje recibido. Los dispositivos activos son
aquellos que s poseen fuente de energa propia, y por tanto pueden tener algo de
capacidad de procesamiento y almacenar ms informacin que los pasivos. Los
dispositivos pasivos son mucho ms baratos que los activos y se proponen como
una alternativa a los actuales cdigos de barras. Estos dispositivos resultan muy
tiles para identicar a usuarios, pero su gran limitacin de procesamiento hace
que no sean apropiados para proporcionar autenticacin.
54
CAPTULO 2.
tm
OnHand
PC [129] dotado de capacidad de procesamiento y de un puerto de
infrarrojos (IRdA) para autenticar usuarios. En este caso, el uso de comunicacin
por infrarrojos puede provocar obstruccin al usuario, ya que hay que hay
que dirigir el haz de infrarrojos al dispositivo receptor. El uso de tecnologas
basadas en radiofrecuencias parece ms adecuado para proporcionar servicios
de autenticacin sin obstruccin. Aunque las comunicaciones de este tipo se
puedan interceptar fcilmente, un correcto uso de las herramientas criptogrcas
disponibles hoy en da puede proporcionar un gran nivel de condencialidad e
integridad.
Actualmente, existe una gran cantidad de modelos de telfonos mviles y
ordenadores de mano equipados con este tipo de tecnologas de comunicacin
inalmbrica.
SHAD
telfono mvil
se
basa
Smart Phone
en
el
uso
de
un
ordenador
de
mano
un
Smart Phones
2.4.
55
dispositivos
electrnicas.
mviles
Ambos
(en
tipos
de
concreto
telfonos
dispositivos
se
mviles)
pueden
en
comunicar
cerraduras
mediante
Bluetooth. Este trabajo propone el uso del telfono mvil (que denominan
"Servidor Personal") para autenticar al usuario ante actuadores (las propias
cerraduras). En el sistema, los dispositivos mviles utilizan certicados basados
en una infraestructura de clave pblica X.509 [74] para autenticarse ante las
cerraduras. Las cerraduras no se conectan a la entidad certicadora ni a ningn
servicio expendedor de claves, por lo que tienen que actualizarse manualmente
cada cierto periodo de tiempo.
Este trabajo propone una solucin a medida para un problema concreto, pero
no propone una solucin para sistemas ubicuos completos o entornos de trabajo
actuales. Adems, este sistema introduce tareas de administracin que lo hacen
poco cmodo de usar, por ejemplo la renovacin manual de las claves cada
poco tiempo. Por el contrario, SHAD presenta una arquitectura que permite
solucionar problemas generales de autenticacin, y a su vez proporciona servicios
de autenticacin para problemas especcos como el tratado en este trabajo.
56
CAPTULO 2.
aplicaciones
del
usuario.
Los
autores
ofrecen
una
biblioteca
de
2.4.
57
Man-in-the-
middle Attack).
58
CAPTULO 2.
navegador WWW).
Para guardar las sesiones se utiliza un ordenador que denominan Shared
PC. El Shared PC debe estar conectado constantemente a la red y acta como
2.4.
59
Single Sign-On), los autores proponen el uso de un dispositivo mvil con interfaz
anteriores.
60
CAPTULO 2.
Smartcard.
En ese
Creese et al. [42] sostienen que hay que tener en cuidadosa consideracin
al humano a la hora de medir la conanza. En este trabajo se enumeran varios
factores por los que el humano debe tener el papel de especicar el nivel de
conanza:
2.6.
61
humanos
suelen
usar
mecanismos
de
seguridad
electrnica
(contraseas etc.).
Los autores tambin enumeran argumentos en contra de delegar la evaluacin
de conanza y la seguridad en el humano:
Peer-to-Peer
Grid
62
CAPTULO 2.
Secure
Grid Computing.
1.
Perl del nodo: ACL que dene los permisos generales en un nodo del
Grid.
2.
3.
2.6.
63
middleware
sistema de los procesos para aplicar el control de acceso. Por ejemplo, para
controlar las llamadas al sistema de apertura de cheros, se puede proporcionar
al
puede abrir cada proceso del Grid. Este sistema es difcil de administrar y
no es aplicable a un entornos como el que tratamos en este trabajo. Adems,
interceptar llamadas no garantiza que las originales no se puedan usar.
Detsh et al. [46] proponen un marco llamado P2PSLF para Java JXTA [64]
que provee seguridad a una red de
jerrquica, cada isla del
Peer-to-Peer
middleware
mdulos del
framework,
GSI (Grid
el conjunto de herramientas
64
CAPTULO 2.
Figura 2.4:
X.509 [74] para proporcionar autenticacin entre los nodos que forman el
Grid.
2.6.
65
4. El cliente debe cifrar los datos del reto con su clave privada y enviar
el resultado al servidor. Despus, el servidor descifra los datos recibidos
y comprueba que estn cifrados con la clave privada del cliente. As, el
servidor puede comprobar que el cliente posee la clave privada y est
dispuesto a continuar con la conexin.
5, 6 y 7. Una vez que el servidor confa en que el nodo cliente inici la sesin y que
es quien dice ser, se repiten los tres primeros pasos en sentido inverso (del
servidor al cliente) para que el cliente pueda autenticar al servidor.
66
CAPTULO 2.
CAS (
2.7.
67
TABLA COMPARATIVA
las cualidades ms importantes para que se ajusten a las necesidades que creemos
tiene un entorno ubicuo que sea dinmico, fraccionable y heterogneo.
La primera columna indica si el sistema es independiente de entidades
centralizadas. La segunda indica si el sistema interopera correctamente y puede
usarse con aplicaciones antiguas con facilidad. La tercera muestra si el sistema
se puede usar en dispositivos mviles con limitaciones de consumo de energa
y procesamiento. Esta cualidad se evala en base a los algoritmos de cifrado
que puede utilizar y a la cantidad de mensajes que utiliza. La quinta columna
indica si el esquema es aplicable para ceder dispositivos entre humanos sin
aportar obstruccin. En el caso de que la respuesta a la quinta columna sea
positiva, la sexta columna indica la simplicidad de la administracin de dicho
sistema. La sptima columna muestra si el sistema aporta SSO real en un espacio
inteligente. La octava y ltima columna muestra si el sistema saca partido de
alguna infraestructura de contexto.
Las
celdas
vacas
indican
que
carecemos
de
la
informacin
sobre
su
68
CAPTULO 2.
Independencia
Interopera.
de entidades
Dispositivos
Cesin sin
Administracin
SSO real
Uso de
mviles
obstruccin
sencilla
para todos
informacin
los servicios
de contexto
centralizadas
Kerberos
NO
NO
SI
NO
NO
NO
NO
Sesame
NO
NO
SI
NO
NO
NO
NO
Jini DTM
NO
NO
SI
SI
NO
NO
NO
SI
NO
SI
NO
NO
Resurrecting
Duckling
SI
Secure
Smart Homes
NO
NO
SI
NO
NO
NO
NO
HESTIA
NO
NO
SI
NO
NO
NO
SI
Cerberus
NO
NO
SI
SI
NO
NO
SI
SSO
NO
NO
NO
NO
Factotum
NO
SI
NO
NO
CorSSO
NO
NO
NO
NO
NO
NO
NO
SI
SI
SecureLogin
SI
SECURE
sign-on
SI
GSI
NO
SHAD
SI
Cuadro 2.2:
NO
NO
SI
SI
SI
SI
Captulo 3
Enfoque, principios de diseo y
metodologa
69
70
CAPTULO 3.
Este captulo describe los principios de diseo que proponemos para SHAD.
En el captulo anterior se describieron las diferentes soluciones propuestas para
distintos entornos distribuidos, quedando patente que dichas arquitecturas no
proveen una solucin general para entornos ubicuos permisivos que se ajusten a
un sistema distribuido dinmico, heterogneo y fraccionable.
Los
principios
descritos
en
el
presente
captulo
son
comunes
para
la
Peer-to-Peer,
en el que el humano es el
humano.
El uso del UbiTerm nos permite afrontar las necesidades de no obstruccin,
delegacin y de soporte de desconexiones. Ya que los usuarios llevan consigo
un dispositivo mvil que les representa en el sistema, este se puede encargar
de proporcionarles seguridad de una forma transparente y automatizada en la
mayora de las ocasiones. El usuario no est obligado a introducir contraseas
o a utilizar dispositivos de autenticacin constantemente, ya que los UbiTerms
son capaces de negociar claves sin supervisin humana. El UbiTerm almacena las
claves y las autorizaciones necesarias para que los dispositivos del usuario puedan
acceder a los recursos del entorno. Las autorizaciones pueden ser credenciales de
atributos, resguardos (
Como
el
proporcionar
UbiTerm
acta
mecanismos
de
como
un
delegacin
servidor
de
de
autenticacin,
privilegios
de
puede
soporte
de
3.1.
71
el
seguridad.
Cuando una persona pierde un objeto que considera valioso, normalmente
acta de inmediato avisando a las autoridades competentes para anular su uso.
En el caso de un sistema informtico, se puede actuar de la misma manera:
revocando las claves que permiten la autenticacin ante los dems usuarios.
72
CAPTULO 3.
3.3.
73
conanza en la otra parte. Nosotros, al igual que otros autores [84], consideramos
que la nocin de conanza entre los humanos no es transitiva. Por esa razn,
para que dos humanos puedan compartir recursos en SHAD, tienen que haber
emparejado previamente sus UbiTerms de una forma explcita.
Es necesario aplicar algn tipo de poltica de control de acceso a SHAD. Se
ha elegido una aproximacin basada en roles (RBAC [162]): el humano asocia
roles a los otros humanos en su propio UbiTerm. Como ya hemos comentado,
la conanza es recproca, pero se puede graduar en base a los roles que se le
asocien a cada uno de los humanos. Si una de las partes tiene un menor grado
de conanza que la otra, puede asociarle un rol ms restrictivo, ya que los roles
en ambas partes son independientes entre s.
Un diseo centrado en el humano permite plasmar el concepto de conanza
en el sistema a la vez que lo mantiene simple. En otros sistemas, la nocin de
conanza se basa en estimaciones hechas por las mquinas a partir de ciertos
factores como la reputacin de ciertos usuarios o la informacin de contexto
extrada del sistema ubicuo. En nuestra opinin, mediante esta aproximacin no
se puede expresar correctamente un concepto tan subjetivo como es el concepto
de conanza entre humanos. Nosotros creemos que el usuario tiene que plasmar
su nocin de conanza de una forma explcita. De otro modo, los humanos
desconaran del sistema. Adems, creemos que la conanza expresada por el
humano debe ser, como en la vida real, referente a otro humano o a un grupo
de ellos.
74
CAPTULO 3.
middleware
frameworks
fuerzan a
3.4.
75
ESCENARIOS DE EJEMPLO
continuacin
presentamos
tres
escenarios
que
podran
darse
en
un
entorno ubicuo permisivo. Estos escenarios de ejemplo nos permiten ilustrar los
principales problemas con los que trata SHAD. Los escenarios muestran cmo
los principios descritos en el punto anterior permiten a SHAD afrontar esos
problemas de una manera simple y ecaz.
hardware
software.
Cuando
de
cheros
importado
travs
de
la
red
desde
un
servidor
del
76
CAPTULO 3.
3.4.
ESCENARIOS DE EJEMPLO
77
(paso 1), el UbiTerm descifra un chero de claves que tiene almacenado en una
tarjeta de memoria externa, por ejemplo en una tarjeta SD Card [168]. El chero
que contiene todos los secretos del usuario est fuertemente cifrado mediante un
algoritmo de clave simtrica. Una vez descifrados, los secretos del usuario se
almacenan en la memoria de un agente de SHAD que ejecuta en el UbiTerm.
inteligente.
78
CAPTULO 3.
chat sobre
un canal seguro (SSH [199] o SSL [40]) o cualquier otro mtodo que el usuario
3.4.
79
ESCENARIOS DE EJEMPLO
Figura 3.3: La ilustracin representa los pasos que se siguen para la comunicacin
entre la PDA de Katia y el ordenador porttil de Gorka.
considere oportuno.
Despus de emparejar los UbiTerms, Gorka y Katia se asignan un rol
respectivamente, cada uno en su propio UbiTerm. Katia confa plenamente
en Gorka, por lo que le asigna un rol de
entrada/salida.
80
CAPTULO 3.
porttil de Gorka, ya que tienen ms calidad que su altavoz. Los pasos seran
los siguientes:
3.4.
81
ESCENARIOS DE EJEMPLO
Figura 3.4:
3.4.3. Escenario 3:
centralizados
independencia
de
servicios
82
CAPTULO 3.
3.5.1. Hiptesis
1. El entorno ubicuo en el que los usuarios interactan es un entorno
realista y posible en la actualidad. El usuario posee varios dispositivos,
tal vez decenas, pero no centenas. Estos dispositivos poseen capacidad de
procesamiento y de comunicacin (inalmbrica y/o cableada).
Esta
hiptesis
es
importante,
ya
que
si
el
nmero
de
dispositivos
3.5.
83
84
CAPTULO 3.
3.6.
METODOLOGA
85
3.6. Metodologa
Esta seccin describe la planicacin que se ha seguido para el diseo de la
arquitectura de seguridad SHAD y para el desarrollo de los distintos prototipos
que sirven como prueba de concepto.
Durante todo el proceso se ha adoptado un ciclo de desarrollo en espiral [32],
en el que los prototipos incrementan su funcionalidad hasta llegar a los objetivos
planteados. De esta forma, en cada iteracin del ciclo de desarrollo se rena el
diseo de la arquitectura y de los protocolos.
El plan general de trabajo se resume en el cuadro 3.1. El cuadro muestra
las tareas realizadas para el desarrollo de SHAD englobadas en seis fases. A
continuacin explicaremos brevemente cada una de estas fases y sus tareas.
En un principio se estudian las propuestas de otros autores para solucionar
el problema de la seguridad, tanto en sistemas distribuidos clsicos como en
sistemas ubicuos. El estado del arte se actualiza constantemente durante todo
el proceso de diseo e implementacin de SHAD.
Una vez que se comprueba que ninguna de las arquitecturas propuestas se
ajustan a las necesidades de nuestro sistema ubicuo, se comienza a disear la
arquitectura de seguridad.
86
CAPTULO 3.
Single Sign-On)
para
el espacio inteligente.
En una cuarta fase se estudia la integracin de del prototipo de SSO
con el sistema operativo Plan B. Despus se incrementa la arquitectura con
los mecanismos de comparticin de terminales [176] y de comparticin de
dispositivos. Para ello se implementan los mecanismos para utilizar los servicios
del espacio inteligente, la interfaz grca integrada con Omero[18], los protocolos
de cesin y las libreras de control de acceso basadas en roles.
En la quinta fase se evala la arquitectura mediante el uso del entorno ubicuo.
Para ello, se usa el prototipo nal en nuestro propio espacio inteligente para
comprobar que la arquitectura cubre las necesidades expuestas en el captulo 1.
La sexta y ltima fase de la planicacin consiste en la creacin de la
documentacin relacionada con la arquitectura de seguridad y los distintos
prototipos implementados. Despus se elabora el presente documento y la
documentacin relacionada con su presentacin. Por ltimo, se revisan todos
3.6.
METODOLOGA
87
88
CAPTULO 3.
Fase
Etapas
Single Sign-On
Cuadro 3.1:
Captulo 4
Entrada nica al sistema ubicuo
89
90
CAPTULO 4.
4.1. Introduccin
Como consecuencia de la generalizacin del ordenador personal y la aparicin
de la gran cantidad de dispositivos mviles disponibles hoy en da, el nmero de
mquinas que utiliza al mismo tiempo un usuario ha crecido sustancialmente.
Estos dispositivos son bsicamente ordenadores, que aunque poseen distintas
cualidades fsicas y funcionales, ejecutan un sistema operativo convencional y
estn sometidos a las mismas necesidades de conguracin y administracin
que un ordenador comn. Entre dichas necesidades se encuentra el proceso de
identicacin del usuario y su posterior autenticacin.
El proceso de autenticacin se realiza normalmente mediante la introduccin
de contraseas por teclado, aunque se han propuesto mtodos que proporcionan
menos
obstruccin
Smartcard[148],
al
usuario,
Ibuttons[76],
como
USB
la
autenticacin
Tokens[157]
mediante
dispositivos
tarjetas
biomtricos,
tales como lectores de huellas digitales. Esos mtodos, aun siendo menos
incmodos para el usuario que la introduccin de contraseas, siguen aportando
obstruccin. Por otra parte, dependen de dispositivos lectores especcos que
normalmente no estn integrados en los propios dispositivos. Esto supone un
problema a la hora de usar dispositivos mviles y mquinas de propsito general.
Single
Sign-On) se han diseado para entornos cliente/servidor en los que los usuarios
trabajan con un nico terminal desde el que acceden a todos los servicios del
entorno distribuido. De hecho, estos sistemas son sistemas de SSO
por mquina
en los que sus agentes de SSO no cooperan. Los agentes de SSO en estos sistemas
suelen ser programas cliente que acceden a un servidor centralizado de claves
comn para todos los usuarios, y el usuario debe autenticarse al menos una vez
para cada agente.
Sin embargo, los usuarios de un entorno de computacin como el presentado
en captulos anteriores no trabajan en un slo ordenador, sino que utilizan
e interaccionan fsicamente con un grupo de ordenadores interconectados que
conforman el espacio inteligente. De esta forma, el usuario necesita autenticarse
4.1.
INTRODUCCIN
91
ante cada uno de los ordenadores que integran el espacio con el que est
interaccionando. Esta situacin aparece como consecuencia de usar un sistema
SSO
La autenticacin explcita por parte del usuario en cada una de las mquinas
Con SHAD proponemos una solucin para este problema basada en agentes
que actan como servidores personales de claves para el usuario. Estos agentes
tienen como objetivo proporcionar al usuario un acceso simple y sin obstruccin
al entorno de computacin ubicuo, haciendo el uso de varias mquinas a la vez
cmodo, seguro y parcialmente transparente en lo que respecta a la autenticacin
dependiendo de las necesidades y preferencias del usuario. El sistema est ideado
para los dispositivos convencionales, tanto mviles como de escritorio, que puede
poseer un usuario en un espacio inteligente actual. Sin embargo, el sistema no
contempla dispositivos tales como redes de sensores o microcontroladores.
92
CAPTULO 4.
Peer-
to-Peer. A los agentes comunes no les est permitido compartir todos los secretos
4.3.
93
que tienen almacenados. Slo pueden compartir los secretos que el usuario ha
especicado como compatibles en la conguracin. De esta forma, el usuario
puede estar seguro de que ciertos secretos nunca se compartirn entre agente
comunes.
El agente SHAD ofrece los mecanismos para que el usuario pueda denir sus
propias polticas para el control de acceso a sus secretos. El usuario es capaz de
restringir la disponibilidad de sus secretos en base a ciertos atributos que puede
asignar a cada secreto.
Por ltimo, el agente SHAD saca partido de una infraestructura de contexto
de un espacio inteligente real. En particular, de informacin de localizacin, as
como de otros servicios del mismo, como por ejemplo el servicio de mensajes de
voz.
1 El
agente SHAD puede ejecutar la lgica de autenticacin de los protocolos para los que
tenga su mdulo implementado.
94
CAPTULO 4.
Figura 4.1:
El
sistema
operativo.
El
sistema
operativo
proporciona
las
con
el
entorno
ubicuo.
El
humano
es
el
encargado
de
4.3.
95
Los agentes SHAD. Los agentes SHAD son los encargados de manejar la
autenticacin del usuario, normalmente sin la necesidad de interactuar con
este (dependiendo de su conguracin). Como se detallar ms adelante, el
usuario es capaz de congurar el comportamiento de los agentes segn sus
preferencias y su valoracin del compromiso entre obstruccin y nivel de
seguridad. En realidad, hay un nico tipo de agente SHAD, que puede
actuar de dos formas distintas: como
agente principal
o como agente
comn.
clave de terminal.
96
CAPTULO 4.
ejecutar una agente SHAD, es necesario que tenga asignada una clave de
terminal. Esta clave se representa en la gura 4.1 mediante una llave junto
con el nombre del terminal.
agente principal
del usuario a los otros agentes SHAD, dependiendo de ciertas restricciones que
tratamos ms adelante. Cualquier agente puede asumir el rol de agente principal
en tiempo de arranque, dependiendo de los siguientes factores:
El descubrimiento de otro agente SHAD actuando como agente principal.
Cada mquina ejecuta su agente al arrancar, y este inicia un proceso
de descubrimiento del agente principal. Si el proceso de descubrimiento
fracasa, el agente intenta asumir el papel de agente principal.
Puede ocurrir que, tras una particin de la red y su posterior unicacin,
haya dos agentes ejecutando como agente principal para un mismo usuario.
En ese caso, los dos agentes principales siguen ofreciendo servicio a los
agentes comunes que iniciaron la sesin con ellos. Los agentes que arrancan
4.3.
97
98
CAPTULO 4.
4.4.
99
del
usuario.
Tambin
almacena
las
claves
de
las
mquinas
2 Sin
100
CAPTULO 4.
mdulo Peer-to-Peer
secreto.
4.4.
101
anillo de secretos.
102
CAPTULO 4.
Figura 4.3:
principal.
parte del
de
procesa.
La peticin de un secreto por parte del
comn la atiende el
mdulo recolector
de un agente
mdulo Peer-to-Peer de un
agente comn la atienden los mdulos Peer-to-Peer de los agentes comunes
La peticin de un secreto por parte del
disponibles.
Esos ujos de datos se deben implementar con un protocolo seguro, debido
a que son ujos entre distintos dispositivos interconectados mediante una
4.4.
103
mdulo de descubrimiento
del agente
Paso 2: Tras varios intentos sin respuesta, el agente SHAD que ejecuta
en la PDA supone que no hay ningn agente principal disponible e intenta
adoptar ese rol. El
mdulo de secretos
mdulo de secretos
convierte la frase de
anillo de secretos.
104
CAPTULO 4.
Figura 4.4:
claves de terminal.
Pasos 7, 8 y 9: Los
mdulo de anuncios
mdulos de descubrimiento
mdulo de secretos
el anillo de secretos
solicita autenticacin al
de secretos encuentra
mdulo recolector.
de su agente local. El
mdulo
4.4.
105
mdulo de
mdulo de secretos busca
secretos
la contrasea en el
secreto que
mdulo proveedor
T1.
Paso 14: El
106
CAPTULO 4.
Paso 15: Alice se ausenta del despacho, y se lleva el PDA con ella.
Recordemos que el PDA ejecuta el agente SHAD principal.
Una aplicacin que ejecuta en el terminal T3 necesita autenticarse ante
el servidor SSH de Ronin. El
anillo de secretos,
mdulo de secretos
mdulo
llevado fuera del edicio, donde no hay red disponible. Tras varios intentos,
el
Paso 17: El
de P2P
mdulo de P2P,
enva el secreto al mdulo de P2P del agente de T3. El mdulo de P2P del
agente de T3 almacena el secreto en el anillo de secretos local.
los atributos permiten compartir el secreto a travs del
Paso 18: El
mdulo de secretos
4.5.
107
PROTOCOLOS
Single
4.5. Protocolos
A continuacin se describen los protocolos que se han diseado para el
intercambio de mensajes entre agentes SHAD para el descubrimiento del agente
principal, la peticin de un secreto al agente principal y la peticin de secretos
entre agentes comunes (P2P).
Existen dos tipos de mensajes dependiendo de su estructura:
Mensajes cortos:
CABECERA
IV
DATOS
Mensajes largos:
CABECERA
Todos
los
mensajes
emplean
IV'
un
DATOS'
IV
identicador
en
DATOS
forma
de
cadena
de
vector de
108
CAPTULO 4.
Terminologa
El identicador del usuario
se representa como
unamea .
se representa como
T a .
esta misma nomenclatura para los terminales, dado que hay a lo sumo un
agente por terminal.
IV ,
enviado.
D, {D}Ks
Ks
D,
como clave.
mismos.
En
todos
los
mensajes
del
protocolo
se
insertan
datos
generados
ranbi |i :
1..n.
En el protocolo se usan nmeros aleatorios que se incrementan en las
respuestas. Esos nmeros, comnmente denominados
Ni |i : 1..n,
tstampT a
Ta
4.5.
109
PROTOCOLOS
4.5.1. Claves
El protocolo entre agentes SHAD se compone de varios tipos de mensajes,
que se apoyan en tres claves privadas:
Clave de terminal:
T ai ,
KTT ai .
KST ai
para un terminal
T ai .
Peer-to-Peer
KET a .
ET a ,
y su clave
cambiar de encarnacin, genera otra clave de este tipo. Los agentes que
arranquen desde ese momento obtendrn la nueva clave de encarnacin.
Los agentes que arrancaron en una encarnacin anterior no podrn pedir
servicio a la nueva encarnacin. Un agente tampoco podr usar su mdulo
P2PM con agentes de una encarnacin diferente a la suya.
Descarte de mensajes
Los mensajes se descartarn y el protocolo no prosperar siempre que:
110
CAPTULO 4.
Los datos esperados en ciertas partes del mensaje no sean correctos. Por
ejemplo, si la cadena de caracteres que identica el tipo de mensaje no
corresponde a ninguno de los tipos conocidos, se descarta el mensaje.
nonce)
El nmero aleatorio (
del
El
cache)
recientemente. Esa
de
usados
nonces
cache de nonces
Si en algn
time
el reloj local,
timestamp
|time timestamp|
Por esa razn, los relojes de los dispositivos del entorno tienen que
estar relativamente sincronizados. La experiencia de uso nos muestra que
un valor de 1800 segundos para
3 El
4.5.
111
PROTOCOLOS
cache de
mdulo de descubrimiento
anuncios del agente principal.
entidad
anuncio de servicio
entre la
mdulo de
T ai
pasa
un
tiempo
determinado
no
obtiene
respuesta,
el
agente
iammainagent
T a .
KST ai ,
que utiliza
T ai
de
112
CAPTULO 4.
ET a
y la clave de encarnacin
KET a ,
fromowner,
T a
T ai
KTT ai ,
4.5.
113
PROTOCOLOS
REQ
T ai BROADCAST
ineedmainagent, unamea , T ai
IV , {ranb1 , {REQ}SHA1 , REQ}KTT ai
RES
CAP
T ai T a
iammainagent
IV 0 , {ranb2 , {RES}SHA1 , RES }KST ai
IV 00 , {ranb3 , {CAP }SHA1 , CAP }KTT ai
iammainagent
corresponden a la peticin
ineedmainagent
enviada. Se utilizan
nonces diferentes para desacoplar las dos partes. El protocolo usa la cache
de nonces para evitar mensajes repetidos. Las marcas de tiempo insertadas en
dos
mdulo recolector
secretos (a.p.)
entre la
mdulo proveedor
114
CAPTULO 4.
anillo de secretos
local.
Este protocolo est formado por dos mensajes:
tomainagent
(TMA):
mensaje
de
peticin
de
un
secreto
al
agente
frommainagent
mensaje corto.
frommainagent
se representa como
cmdresponse.
4.5.
115
PROTOCOLOS
REQ
T ai T a
tomainagent, unamea , T ai
IV, {ranb1 , {REQ}SHA1 , REQ}KST ai
RES
T ai T a
frommainagent, unamea
IV 0 , {ranb2 , {RES}SHA1 , RES}KST ai
El
nonce N1
protocolos anteriores.
4.5.4. Protocolo
Peer-to-Peer
secretos (P2P)
entre las
anillo de secretos
local, y
T ai
116
CAPTULO 4.
Protocolo 3 Protocolo
T ai
REQ
T aj
=
T aj
se lo sirve.
Peer-to-Peer.
son terminales de A.
T ai BROADCAST
topeers, unamea , ET a
IV , {ranb1 , {REQ}SHA1 , REQ}KET a
RES
T ai T aj
frompeer, ET a
IV 0 , {ranb2 , {RES}SHA1 , RES }KET a
El
nonce N1
protocolos anteriores.
NetFactotum.
4.6.
117
secretos
mdulo de
siguientes componentes:
Servidor
unicast.
mdulo
peticiones
que
recibe
en
un
puerto
TCP
bien
conocido
(tcp!unicast!10023).
Servidor
recolector
(RM).
Peer-to-Peer (udp!broadcast!10024).
Implementa
la
entidad
de
mismo
nombre
de
descubrimiento
nombre
especicada
en
el
(DM).
Implementa
diseo
del
agente
la
entidad
SHAD.
Su
de
mismo
funcin
es
4 Se
protocolo!direccin!puerto
118
CAPTULO 4.
Figura 4.5:
spin locks), debido a que la espera que deben realizar es corta. Por otra parte,
4.6.
119
4.6.1. Claves
Claves de terminales
La claves de los terminales se almacenan en la NVRAM junto con el nombre
del dueo. De esta forma, el agente NetFactotum es capaz de leer la clave en
tiempo de arranque, y as poder descubrir al agente principal y autenticarse ante
l.
Las claves se almacenan en claro en la NVRAM. Por lo tanto, son vulnerables
ante ataques fsicos contra la mquina. Esta posibilidad se trata en el captulo
7, dedicada a las limitaciones del modelo.
Si el usuario arranca siempre el agente principal en el mismo dispositivo
(el UbiTerm), entonces ese dispositivo no necesita tener una
asignada.
De
esta
forma,
comprometida ninguna
en
caso
de
clave de terminal.
prdida
del
clave de terminal
UbiTerm,
no
queda
utiliza
el
mismo
mtodo
para
almacenar
las
claves
que
proto,
que hace referencia. Los otros atributos varan segn el tipo de clave (el servicio
para el que sirve el secreto, o campo de una tupla) [55].
Los atributos secretos de una tupla van precedidos por el carcter
!.
Estos
120
CAPTULO 4.
atributos secretos nunca se presentan en claro por pantalla. Por ejemplo, una
tupla convencional de Factotum para el protocolo
P9SK1
se representa como
sigue:
user
la contrasea. El atributo
password
contiene un carcter
password
proto=shad.
Estas tuplas almacenan las claves privadas de las mquinas que pertenecen
al usuario (KT ai para un terminal
T ai ):
4.6.
121
noremoteaccess:
userlocation=localizacin :
122
CAPTULO 4.
needconfirm,
se
samelocation:
accesiblefrom=mquina :
virtuales que forman la interfaz del programa aparecen dentro de ese directorio.
La interfaz consiste en lecturas y escrituras sobre esos cheros.
Por ejemplo, para obtener la lista de secretos guardada en el anillo de
secretos, se puede ejecutar
cat /mnt/factotum/ctl
y para borrar todas las tuplas que tengan como protocolo
ejecutar
p9sk1
se puede
4.6.
123
getkey
getkey
no est disponible en el
agente principal.
Supongamos que el usuario Nemo desea que el agente del terminal en el que
est trabajando adquiera el secreto para autenticarse ante el servidor de cheros
de Plan B del dominio
lsub.org:
hold hace que los hilos servidores del agente no acepten peticiones,
y por tanto, el agente SHAD acte como un agente Factotum convencional. Para
deshabilitar dicha funcionalidad, basta con escribir una cadena de control
hold
unhold
124
CAPTULO 4.
timeout,
que
echo 15 >/mnt/netfactotum/timeout
La cadena de control
'0'
location,
que
4.6.3.
Repositorio de claves
4.6.
125
confirm, ads,
voice.
Confirm
usuario debe conrmar. Este chero de control espera una cadena de caracteres
con el siguiente formato:
Cliente
es el
Protocolo
Por ltimo,
servidor
confirm, Oshad
nonce
126
CAPTULO 4.
1. Abre el chero
confirm
en modo lectura/escritura.
3. Lee
del
chero
confirm
en
repetidas
confirm.
ocasiones
la
conrmacin
nonce
El chero
ads
ads,
4.6.
127
de voz respectivamente.
/what
/who
ofrece informacin de
; ls -l /who/esoriano
--rw-rw-r-- M 11 esoriano
--rw-rw-r-- M 11 esoriano
--rw-rw-r-- M 11 esoriano
--rw-rw-r-- M 11 esoriano
--rw-rw-r-- M 11 esoriano
; cat /who/esoriano/status
online
; cat /who/esoriano/where
124
Cuadro 4.1:
El servicio
status:
128
CAPTULO 4.
where:
/who
/what
cada una de las mquinas del entorno ubicuo que contiene una serie de cheros
con informacin de contexto. Dentro de ese directorio se sirve un chero llamado
4.6.
129
userlocation o
; ls -l /what/isis
--rw-r--r-- M 57 esoriano
--rw-r--r-- M 57 esoriano
--rw-r--r-- M 57 esoriano
--rw-r--r-- M 57 esoriano
; cat /what/isis/owner
esoriano
; cat /what/isis/where
124
Cuadro 4.2:
esoriano
esoriano
esoriano
esoriano
9
8
14
4
Jun
Jun
Jun
Jun
1
1
1
1
11:53
11:53
11:53
11:53
/what/isis/owner
/what/isis/role
/what/isis/vgasize
/what/isis/where
location
que
130
CAPTULO 4.
Tiempo (seg)
Cuadro 4.3:
Peer-to-Peer.
Factotum
SHAD
SHAD P2P
0.12
0.14
4.06
4.7.
131
timeout
Tiempo (seg)
userlocation.
sin localizacin
userlocation
0.15
0.17
132
CAPTULO 4.
Figura 4.8:
entre los dos tiempos medios mostrados corresponde con el tiempo que requiere
acceder a la jerarqua de directorios que exporta la infraestructura de contexto
y compararla con el valor que posee la tupla.
Se debe considerar que ambos experimentos se han realizado sobre una red
a 100 Mbit/s, y el agente principal de SHAD est ideado para ejecutar sobre
un dispositivo mvil que utiliza una red inalmbrica. Por lo tanto, debemos
considerar que el retardo sobre este tipo de redes ser mayor. Tambin hay que
considerar que la capacidad de procesamiento de un dispositivo mvil es ms
limitada. Por consiguiente, el tiempo de respuesta del agente se ver afectado.
El prototipo se ha usado durante un ao. Durante este tiempo, el prototipo ha
sufrido modicaciones con la intencin de mejorar su funcionamiento y reducir
la obstruccin al usuario. Nuestra experiencia de uso indica que el prototipo es
de gran utilidad, debido a que reduce considerablemente la obstruccin en el
espacio inteligente en el que se ha probado [19].
El
prototipo
se
ha
probado
en
el
mismo
entorno
en
el
que
se
est
4.7.
Figura 4.9:
133
134
CAPTULO 4.
AT X, emitir mensajes
mquinas para realizar tareas como compilar el fuente L
E
de voz, obtener informacin sobre un sistema de visin que detecta cartas en un
casillero, dibujar diagramas, reproducir videos, abrir sitios WWW que necesitan
un navegador especco, etc. La mayora de estas tareas se redireccionan a las
mquinas automticamente desde Plan B. La gura 4.9 muestra el entorno de
trabajo.
Como se puede observar, en un entorno como el descrito la obstruccin
al
usuario
es
un
problema
grave.
El
cuadro
4.5
muestra
el
nmero
de
por mquina.
La ltima columna
muestra el nmero de autenticaciones que tiene que realizar el usuario que utiliza
SHAD.
Cuadro 4.5:
trabajo.
Terminal
Sin SSO
Factotum
SHAD
isis
129
10
10
bigboy
73
10
osiris
70
16
Total
272
36
10
Para este experimento se han congurado todos los secretos del usuario para
que no pidan conrmacin. Sin embargo, algunos de ellos utilizan restricciones
de localizacin. El repositorio de secretos del usuario consta de 24 secretos, entre
los que se encuentran cuatro secretos correspondientes al protocolo 9P que se
utilizan para acceder a los servicios de Plan B y Plan 9, siete secretos de SSH
para acceder a sesiones en mquinas Linux, cinco contraseas para acceder a
4.7.
135
sesiones de VNC en las dems mquinas del espacio, y las tres claves de SHAD
necesarias para autenticar las tres mquinas del usuario.
Se puede observar en el cuadro 4.5 que la reduccin de la obstruccin al
usuario es considerable para la conguracin en la que se han obtenido las
medidas. Un entorno como el que se ha descrito no es utilizable sin un mecanismo
que automatice la autenticacin del usuario.
Hay que remarcar que el nmero de autenticaciones explcitas que muestran
las medidas para SHAD es mayor que la que es habitual, debido a las tareas que
se llevaron a cabo dicha semana, que incluan depuracin del ncleo del sistema
operativo de Plan B. Para realizar dicha tarea, es necesario reiniciar todas las
mquinas que ejecutan Plan B (incluida la que ejecuta el agente principal de
SHAD). Ntese que el usuario slo se tiene que autenticar una vez para reiniciar
todos sus terminales. Cuando se utiliza SHAD para tareas que no necesitan
reiniciar los terminales, normalmente el usuario slo debe autenticarse una vez
por sesin (por lo general, la sesin dura toda la jornada).
Por todas estas razones, consideramos que la arquitectura SHAD para SSO
es de gran utilidad para los usuarios de un espacio inteligente.
136
CAPTULO 4.
Captulo 5
Comparticin de terminales
137
138
CAPTULO 5.
COMPARTICIN DE TERMINALES
5.1. Introduccin
En el presente captulo se detalla la arquitectura y los mecanismos necesarios
para que un usuario del sistema pueda arrancar una mquina que pertenece a
otro usuario con el que tiene conanza mutua.
Una vez que el usuario ha arrancado el terminal a su nombre, lo puede utilizar
normalmente, como cualquiera de sus propios terminales.
La arquitectura se basa en la arquitectura de SSO descrita en el captulo
anterior. En concreto, el agente SHAD para la comparticin de terminales aade
una extensin al protocolo de descubrimiento del agente principal de SHAD
descrito en el captulo anterior. Tambin incluye un nuevo secreto al esquema,
y nuevos atributos para los secretos del repositorio.
El agente principal de SHAD tiene ahora dos cometidos fundamentales:
Servir los secretos del usuario, tal y como lo hace el algente principal de
SHAD en la arquitectura de SSO descrita en el captulo anterior.
emparejar usuarios
mediante el
emparejamiento de
sus UbiTerms.
Cuando dos usuarios confan entre s, emparejan sus UbiTerms. En la
prctica, este proceso consiste en aadir un nuevo secreto en el repositorio de
secretos de ambos usuarios. De esa forma, los agentes SHAD principales de
5.2.
EMPAREJAMIENTO DE UBITERMS
139
Ka,b
Kb,a .
IrReady
intercepte la comunicacin entre los UbiTerms sin que los usuarios se percaten
de su presencia.
Otra forma menos confortable sera generar la clave a partir de un frase
secreta que ambos usuarios introducen en sus UbiTerms. En nuestra opinin este
mtodo no es ms seguro que la anterior, ya que est sujeto a que un tercero
intercepte de la comunicacin entre los dos humanos y a ataques basados en
ingeniera social
[110].
140
CAPTULO 5.
Figura 5.1:
COMPARTICIN DE TERMINALES
5.3.
141
T a , y los
T ai |i : 1..n.
T a0 ,
pertenece.
2. Como parte de la secuencia de arranque de un terminal,
agente SHAD local.
T a0
ejecuta el
142
CAPTULO 5.
3. El agente SHAD de
T a0
COMPARTICIN DE TERMINALES
T a0
5. El agente de
T a0
T b
y espera la conrmacin. El
T a0 .
Ta
T a0 . El agente de T b
se autentica
10. Si
la
cesin
se
T a
puede
autorizar,
el
agente
principal
de
enva
la
T a0
T a0 .
5.4.
143
DISEO
T a0
clave de emparejamiento de A y B,
en el
T b
se basa en la
clave de terminal de
T a
T a0
T a
Ta
como por
en el repositorio de secretos).
5.4. Diseo
No es necesario modicar el diseo del agente SHAD presentado en el captulo
4. Simplemente hay que aadir funcionalidad a los siguientes mdulos:
Enviar
al
usuario
noticaciones
relacionadas
con
la
cesin
de
terminales.
144
CAPTULO 5.
COMPARTICIN DE TERMINALES
Las guras 5.2 y 5.3 muestran los diagramas de ujo de datos de nivel 1 para
los agentes SHAD para comparticin de terminales (agente principal y agente
5.5.
145
146
CAPTULO 5.
COMPARTICIN DE TERMINALES
controlada
un
adversario
queda
comprometido
en
el
acto,
indistintamente del mtodo que se utilice para hacer llegar el secreto all
(mecanismos de SSO, introduccin manual de contraseas, etc.).
Entonces, Es razonable que un usuario acceda al servicio de SSO desde
una mquina que no le pertenece? La arquitectura podra adoptar distintas
estrategias para abordar esta cuestin:
5.5.
147
148
CAPTULO 5.
COMPARTICIN DE TERMINALES
No es posible compartir
5.6.
149
PROTOCOLO
diseado otro protocolo para proteger los secretos del usuario cuando el UbiTerm
del dueo del terminal o la clave de emparejamiento quedan comprometidos.
Este protocolo se describe en la seccin 5.8.
5.6. Protocolo
Este protocolo corresponde a los siguientes ujos de datos presentados en los
diagramas de ujo de datos correspondientes al diseo del agente:
autorizacin (dueo)
mdulo de descubrimiento
de
autorizacin (husped)
agente principal y el
mdulo de anuncios
del
T a0
T a
T b
150
CAPTULO 5.
ineedmainagent
COMPARTICIN DE TERMINALES
T a0
solicita arrancar en
ineegmainagent
similar al protocolo de
T a0 , KTT a0 .
T b
Ka,b )
y el protocolo no prospera.
Antes de continuar con el protocolo,
operacin en
T b
ineedowner
al
agente
T a0 .
principal
del
dueo
del
terminal
mediante
un
mensaje
T a
es capaz
ineedowner.
La peticin de autorizacin se basa en
Ka,b ,
por tanto
ineedmainagent,
para que
T a
pueda
validarlo.
iamowner
(IAO):
T a
autentica el mensaje
ineedowner
ineedmainagent
mediante
Ka,b .
reensamblado mediante
5.6.
151
PROTOCOLO
KTT a0 ,
iamowner,
T b
genera un mensaje
KST a0
y que autoriza la
T b
T a .
KTT a0 .
la clave de terminal
para
Tb
T a0
cifrados mediante
descrito
por
procede de
Ka,b ,
continuacin.
Esta
parte
del
mensaje
iammainagent
se
denomina
fromowner.
iammainagent
La parte
fromowner
T a
T a
KST a0 .
iammainagent
que ha generado
T b
T a .
y que
contiene la direccin del agente principal que debe usar el agente que
arranca en el terminal. Esta parte del mensaje se descifra mediante
la clave de sesin que se ha asignado al terminal,
obtenido de la parte
KTT a0 ,
fromowner.
KST a0 ,
Ta
autoriz la cesin a
que se ha
T b
Tb
conoce
152
CAPTULO 5.
COMPARTICIN DE TERMINALES
REQ
T a0 BROADCAST
AU T REQ
T b T a
ineedowner, unameb
IV2 , {ranb2 , {AU T REQ}SHA1 , AU T REQ}Ka,b
IV3 , {ranb3 , {REQ}SHA1 , REQ}KTT a0
AU T HRES
CAP
T b T a
iamowner
IV4 , {ranb4 , {AU T HRES}SHA1 , AU T HRES }Ka,b
IV5 , {ranb5 , {CAP }SHA1 , CAP }KTT a0
RES
T a0 T b
iammainagent
IV6 , {ranb6 , {RES}SHA1 , RES }KST a0
IV7 , {ranb7 , {CAP }SHA1 , CAP }KTT a0
5.6.
153
PROTOCOLO
N1 :
Lo crea
T a0
y lo incrementa
ineedmainagent
nonces:
T b . T a0
iammainagent
corresponde a la peticin
tipo.
N2 :
Lo crea
T a0
y lo incrementa
ineedmainagent
T a . T a0
mismo tipo.
N3 : Lo crea T b
y lo incrementa
T a . T b
cache de
154
CAPTULO 5.
COMPARTICIN DE TERMINALES
Figura
5.6.
PROTOCOLO
155
T b
T a0 .
156
CAPTULO 5.
COMPARTICIN DE TERMINALES
revoqueterminal
T a
y el terminal
KTT a0 ,
T a0 .
REQ
T a T a0
revoqueterminal, T a0
IV1 , {ranb1 , {REQ}SHA1 , REQ}KTT a
El campo
T imeout
T imeout
nonce N4
T a0
tstampT a
para
reinyectado. Para ello, se sigue la misma tctica descrita para los mensajes
anteriores (
cache de nonces).
5.7.
157
IMPLEMENTACIN DE PROTOTIPO
Ka,b
ubiterm.
El atributo
propietor
secret
almacena la clave de
Clave de terminal
Se han aadido nuevos atributos a las claves de terminal de SHAD con el
n de permitir al usuario jar las polticas de cesin de sus terminales. Para
un terminal
T a0 ,
atributos:
158
CAPTULO 5.
COMPARTICIN DE TERMINALES
handover
en la tupla.
T a
T a0
al
ownerinlocation
5.7.
159
IMPLEMENTACIN DE PROTOTIPO
userinlocation
userinlocation
voicenotification
alienaccess.
160
CAPTULO 5.
COMPARTICIN DE TERMINALES
revoque
rusty
en 120 segundos:
0,
el terminal se
revoqueterminal.
2 Ntese
5.7.
IMPLEMENTACIN DE PROTOTIPO
161
donde se encuentra el terminal slo hay un usuario del sistema, entonces supone
que el identicador del usuario coincide con el que le suministra la infraestructura
de contexto.
En ese caso, el usuario no tiene que suministrar su identicador para arrancar
el terminal a su nombre. Sin embargo, si hay ms de una persona en la sala,
el agente no puede deducir el identicador del usuario que est arrancado el
terminal. En ese caso, se requiere la identicacin manual del usuario.
En espacios inteligentes que dispongan de informacin de localizacin ms
precisa, simplemente se debera comprobar quin es el usuario ms cercano al
terminal. En todo caso, el problema persiste pero con distinta granularidad. En
esta situacin habra incertidumbre sobre el identicador del usuario en el caso
de que hubiera ms de un usuario delante del terminal. En ese caso, tambin se
requerira la identicacin manual.
El problema se puede solucionar mediante el uso de RFIDs pasivas de
contacto. Este tipo de RFIDs necesitan mucha proximidad (casi contacto) con su
lector. Por tanto, si el usuario lleva consigo una RFID de este tipo, por ejemplo
pegada en su reloj de pulsera, bastara con apoyar el reloj sobre el lector de
RFIDs (que podra estar al lado del teclado) para identicarse ante el terminal.
162
CAPTULO 5.
COMPARTICIN DE TERMINALES
5.8.
PROTOCOLO ALTERNATIVO
163
164
CAPTULO 5.
continuacin
presentamos
un
COMPARTICIN DE TERMINALES
nuevo
protocolo
de
comparticin
de
terminales que asegura los secretos transferidos al agente SHAD comn que
ejecuta en un terminal cedido en estas situaciones.
Las hiptesis sobre las que se construye el protocolo son:
El protocolo pretende asegurar los secretos del usuario husped cuando utiliza
el servicio de SSO desde un terminal cedido. El adversario puede denegar el
servicio u obstaculizarlo, pero en ningn caso puede capturar los secretos que se
envan a travs del servicio de SSO.
T b
T a0
T a0
T a
T a
T b
KTT a0 .
Ka,b .
T a
T b
T a0
T b
T a0
no
5.8.
165
PROTOCOLO ALTERNATIVO
T a
se comporta de forma
maliciosa.
Mediante el uso de criptografa de clave asimtrica podemos construir un
protocolo que asegure condencialidad a la comunicacin entre
Cuando el usuario B arranca el terminal
T a0 ,
T b
P RKT a0 .
T a0 .
P U KT a0
T a0 .
caso
de
que
el
terminal
cedido
fuera
un
dispositivo
mvil
cuya
5.8.2. Protocolo
El protocolo de comparticin de terminales se ejecuta cada vez que un usuario
intenta arrancar un terminal que no le pertenece.
166
CAPTULO 5.
COMPARTICIN DE TERMINALES
REQ
T a0 BROADCAST
ineedowner, unameb
IV2 , {ranb2 , {AU T REQ}SHA1 , AU T REQ}Ka,b
IV3 , {ranb3 , {REQ}SHA1 , REQ}KTT a0
AU T HRES
CAP
T b T a
iamowner
IV4 , {ranb4 , {AU T HRES}SHA1 , AU T HRES }Ka,b
IV5 , {ranb5 , {CAP }SHA1 , CAP }KTT a0
RES
T a0 T b
iammainagent
IV6 , {ranb6 , {RES}SHA1 , RES }P U KT a0
IV7 , {ranb7 , {CAP }SHA1 , CAP }KTT a0
5.8.
167
PROTOCOLO ALTERNATIVO
ineedowner
(INO),
iamowner
(IAO) y
iammainagent
Tb
que slo
T a0
enva a
T a0
T a0
nonces
P RKT a0 )
T b
(INMA),
(IAMA).
Los
ineedmainagent
P RKT a0 .
P U KT a0 ,
de tal forma
en el medio
de terminales. El mensaje
ineedmainagent
T a0
ha
T b
T b
hombre en el medio,
debido a la
T a0 , T b
no puede autenticar
T a0 .
T a0
T b ,
por ejemplo
un punto de acceso que comunica la red cableada con la red inalmbrica del
espacio inteligente. En este escenario, el adversario saca partido del problema
del intercambio annimo de claves para hacerse con la clave de sesin
KST a0
168
CAPTULO 5.
COMPARTICIN DE TERMINALES
SSO.
del terminal
T a0 .
P U KT a0
5.8.
169
PROTOCOLO ALTERNATIVO
Figura 5.7:
T a0
. La diferencia radica en
entre los datos que aparecen en la pantalla del UbiTerm (T b ) y los datos que
aparecen en la pantalla del terminal cedido (T a0 ).
Cuando
ngerprint)
T a0
de la clave pblica
P U KT a0 ,
key
Tb
P U KT a0
recibe el mensaje
ineedmainagent,
extrae la clave
170
CAPTULO 5.
COMPARTICIN DE TERMINALES
P U KT a0
El resumen de la clave puede ser un hash SHA-1, cuya longitud es de 160 bits.
Si aplanamos su contenido en formato hexadecimal, obtenemos una cadena de
40 cifras. Si convertimos esa informacin en caracteres ASCII, obtendramos un
total de 20 caracteres. De la misma forma, si convertimos los datos a UNICODE
Message Commitment).
3 Habra
5.8.
171
PROTOCOLO ALTERNATIVO
Figura 5.8:
asimtrica.
Hash Visualization
las imgenes generadas a partir del resumen de la clave poseen las propiedades
pre-imagen
5.
Otro problema relacionado con este mtodo es que aunque dos imgenes
humano (i
i0 ).
Los autores de
Hash Visualization
4 Propiedades
Random Art.
172
CAPTULO 5.
COMPARTICIN DE TERMINALES
En todo caso, hay que valorar el riesgo en la prctica. Para llevar a cabo un
ataque de hombre en el medio, el adversario tendra que realizar las siguientes
tareas:
T b .
P U Km
P RKm
{P U Km }SHA1 = {P U KT a0 }SHA1
Siendo
hash
como semilla.
ineedmainagent falso a
T b .
pblica genere una imagen de arte aleatorio cercana o similar a la generada por
la clave original.
Hay que tener en consideracin que la ventana de ataque es relativamente
pequea. Estas tareas deben realizarse en un tiempo
timeout el tiempo de espera mximo para la recepcin del mensaje INMA y trest
el tiempo mnimo necesario para que prospere el resto de mensajes del protocolo
5.8.
173
PROTOCOLO ALTERNATIVO
timeout
174
CAPTULO 5.
COMPARTICIN DE TERMINALES
Captulo 6
Comparticin de dispositivos
175
176
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
6.1. Introduccin
Un espacio inteligente resulta de la sinergia del conjunto de mquinas
y dispositivos dispersos por el entorno de computacin. El usuario realiza
sus tareas combinando distintos dispositivos, y algunos de ellos pueden no
pertenecerle. Dado que esos dispositivos pueden pertenecer a distintos usuarios
o grupos de usuarios, se debe controlar el acceso a los mismos a travs de algn
mecanismo de seguridad con el n de evitar su uso no autorizado.
Los humanos siempre llevan consigo el UbiTerm, que le permite obtener
Peer-to-Peer,
o humano a
Ofrecer
6.2.
177
EL PROBLEMA
6.2. El problema
Los usuarios del espacio inteligente quieren trabajar en l como si fuera un
nico sistema. Adems, los usuarios eventualmente necesitan utilizar dispositivos
que se encuentran dispersos por el entorno y que no les pertenecen.
Por ejemplo, un usuario que se mueve en el entorno con su ordenador porttil
puede necesitar en cualquier momento tomar prestado un ratn inalmbrico de
cualquier sala para poder manipular un grco cmodamente. Por supuesto, el
usuario quiere poder usarlo sin tener que desconectar la base receptora del ratn
del PC en el que est conectado. Lo nico que desea es especicar a su porttil
(mediante un men, por ejemplo) el ratn que quiere utilizar, cogerlo y empezar
a usarlo. Para l, la ilusin de que el sistema es uno sigue presente. Slo ha
tenido que seleccionar el ratn y empezar a usarlo.
El problema es que el ratn tiene un dueo, y es posible que no est dispuesto
a prestrselo a cualquier usuario del sistema. Ms aun, es posible que s est
dispuesto a prestrselo, pero que en un momento dado lo quiera reclamar para
poder usarlo l.
Por esa razn, tiene que existir una arquitectura que controle el acceso a
los dispositivos. Esta arquitectura tambin debe desaparecer en el entorno en la
medida de lo posible para que el usuario mantenga la ilusin de que el sistema
es un nico computador disponible ubcuamente.
middleware
178
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
6.4.1. Entidades
En la gura 6.1 se muestra a grandes rasgos la arquitectura global de la
arquitectura de comparticin de dispositivos. En la gura podemos encontrar
las siguientes entidades:
Los usuarios emparejan sus UbiTerms, crean roles y se los asignan entre
s para denir el control de acceso a los dispositivos.
6.4.
Figura 6.1:
180
CAPTULO 6.
Figura 6.2:
COMPARTICIN DE DISPOSITIVOS
T b0
en el que se est
6.4.
ejecutando una aplicacin que solicita usar un dispositivo que est controlado
por el terminal
T a0 ,
T a0 .
T b
Ta
T b ,
T a
T a
T a
enva un mensaje a
T a0
T b .
T b
8. El agente
T b0
T b0 .
correcta, el agente
T a0
T a0 .
Si la autorizacin es
sistema operativo.
9. El sistema operativo de
T a0
182
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
T b0
y el dispositivo de
T a0
se
posibilidad
de
en
complejidad,
congurarlas,
ya
que
los
el
sistema
mecanismos
gana
en
necesarios
exibilidad
para
pero
no
implementar
las
6.4.3. Diseo
No es necesario modicar drsticamente el diseo del agente SHAD para
incluir los mecanismos necesarios para hacer posible la comparticin segura de
dispositivos.
6.4.
Mdulo de Control de
Acceso (ACM).
Las guras 6.4 y 6.3 ofrecen el diagrama de ujo de datos de primer nivel del
agente principal y el agente comn respectivamente. Las diferencias respecto los
diagramas mostrados en el captulo anterior se remarcan en color rojo.
Los agentes principales de los distintos usuarios (que estn emparejados)
deben ser capaces de descubrirse y autenticarse mutuamente. Para ello, los
agentes principales tienen un ujo de datos en s llamado
anuncio de servicio.
184
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
Ntese que dicho ujo exista para que los agentes SHAD pudieran encontrar
a su agente principal. Ahora, adems de dicha funcionalidad, los agentes
principales de distintos usuarios se pueden descubrir entre s para poder ofrecer
el servicio de comparticin de dispositivos.
El mdulo de control de acceso tiene la siguiente funcionalidad:
Agente principal:
ello,
debe
poder
almacenadas en el
peticin de autorizacin.
acceder
anillo de secretos.
las
claves de emparejamiento
(cliente).
autorizacin
autorizacin (husped)
autorizacin(servidor).
No confundir
terminales.
6.4.
terminal
claves de
Agente comn:
usuario.
(cliente)
El
ujo
de
datos
correspondiente
autorizacin
es
secretos
clave de sesin
con su
autorizacin
permisos.
secretos
186
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
roles y usuarios
se obtiene de una
6.5.
187
PROTOCOLOS
6.5. Protocolos
Los protocolos necesarios para poder compartir dispositivos dependen en
gran medida del sistema en el que se van a implantar, ya sea un sistema
operativo o un
middleware
capabilities,
etc.). Por tanto, no hay protocolos genricos que puedan ser implementados
para distintos sistemas, como era el caso en las dos arquitecturas presentadas
en los captulos 4 y 5.
En el caso del trabajo que se presenta, que se disea e implementa para
el sistema operativo Plan B, slo es necesario aadir un nico protocolo para
hacer posible la comparticin de dispositivos, ya que el prototipo se apoya en
los protocolos de la arquitectura de SSO. El protocolo se describe en la seccin
6.7.3.
9P [3].
188
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
tickets
authenticators).
1 son:
1. El agente del cliente enva una lista de dominios de 9P en los que se puede
autenticar (servidores en los que tiene una cuenta).
2. El agente del servidor escoge uno de ellos. Debe elegir un dominio para el
que l tambin tenga cuenta y se pueda autenticar.
3. El agente del cliente enva un
ticket,
en los que se puede realizar la autenticacin y otro nonce.
los dominios
ndb
1 En
realidad, los pasos corresponden a dos protocolos distintos, p9any y p9sk1, pero se
presentan como uno con el n de simplicar el esquema.
6.7.
189
peticin de
authenticator
nonce que le envi el agente del servidor (que permite saber al agente
ticket
authenticator
con el
nonce
190
CAPTULO 6.
Figura 6.5:
COMPARTICIN DE DISPOSITIVOS
suponemos que sus mecanismos para proteger los datos transmitidos son
correctos y seguros.
del
usuario.
Por
tanto,
ofrece
acceso
con
autenticacin
Un
un
servidor
servidor
uname-shad,
de
de
autenticacin
autenticacin
donde
uname
que
la
autenticacin
al
dominio
6.7.
191
la negociacin.
Una base de datos,
ndb,
shadroles.
authsrv.
192
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
clave de AS
para que el servidor de autenticacin pueda arrancar sin asistencia humana. Pero
en el esquema que proponemos, el servidor de autenticacin va a ejecutar en la
de AS se encuentre almacenada
dominio
de
autenticacin
obligatoriamente el dominio
para
uname-shad
los
(siendo
dispositivos
uname
el nombre
del dueo del dispositivo a utilizar). Por tanto, cuando un usuario quiere usar un
dispositivo ajeno, el agente SHAD del terminal cliente (el terminal que ejecuta
la aplicacin que necesita usar el dispositivo en cuestin) se debe autenticar
ante el servidor de autenticacin P9SK1 que ejecuta en el UbiTerm del dueo
del dispositivo.
Para que dicha autenticacin pueda llevarse a cabo, el agente principal del
6.7.
193
1a. La
contrasea
sigue
siendo
vlida.
La
contrasea
que
consigue
194
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
obtainkey.
Ntese que la autenticacin se realiza al inicio de una conexin 9P. Una vez
autenticada la conexin, no es necesario volver a autenticarla hasta que esta
acabe. La misma autenticacin puede utilizarse para usar distintos cheros a
travs de la misma conexin [12].
Por esa razn, el uso del dispositivo soporta desconexiones de ambos
UbiTerms. Una vez autenticada la conexin, la aplicacin cliente no depende del
agente SHAD (comn o principal) ni del servidor de autenticacin del dominio
en concreto.
ndb
ndb
por esa opcin, el UbiTerm de los usuarios siempre tendr que ser la misma
mquina.
El cuadro 6.1 muestra un ejemplo de un chero
ndb
en el que se especican
authdom)
6.7.
195
authdom=esoriano-shad
auth=212.128.4.126
authdom=nemo-shad
auth=212.128.4.132
authdom=paurea-shad
auth=193.147.71.88
dom=mosquito.esoriano-shad sys=mosquito ip=212.128.4.133
authdom=esoriano-shad auth=212.128.4.126
dom=sargazos.nemo-shad sys=sargazos ip=212.128.4.139
authdom=nemo-shad auth=212.128.4.132
dom=sailu.paurea-shad sys=sailu ip=212.128.4.155
authdom=paurea-shad auth=193.147.71.88
Cuadro 6.1: Ejemplo de un chero ndb para tres usuarios del sistema (esoriano,
paurea y nemo). Cada uno exporta dispositivos mediante SHAD desde un terminal.
auth
ndb.
base de datos
ndb
196
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
refreshaccount
newaccount
6.7.
197
REQ
T b BROADCAST
T b T a
newaccount
IV 0 , {ranb2 , {RES}SHA1 , RES }Ka,b
nonce N1 asegura que el reenvo del mensaje por parte de un adversario no tenga
efecto.
El campo
address
Ta
direccin del
Ta
con la
a-shad.
anillo de secretos.
198
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
shadroles
que
$home/lib.
Los roles que se pueden asignar a los usuarios. Se pueden crear tantos
roles como se necesiten. Un rol consiste en un nombre mas una lista
de dispositivos a los que tiene acceso. Los roles se denen mediante un
'='.
role, seguida de su
del
nombre
de
un
servidor
de
cheros
se
pueden
asignar
-R
-W,
que signican
Los usuarios emparejados junto a los roles que tienen asignados. Un mismo
usuario puede tener varios roles asignados. La asignacin de roles tambin
se expresa mediante un antecedente y un consecuente separados por
=.
El
6.7.
199
role
role
role
role
role
shadroles.
El chero de
ejemplo muestra las dos secciones separadas por una linea en blanco.
En la primera seccin se denen cinco roles. El rol
input
ofrece acceso a
los dispositivos de entrada del usuario, tales como el ratn y teclado (kbdfs),
micrfono (micfs), cmaras (camerafs) o pizarras electrnicas [109] (mimiofs).
Los usuarios que tienen asignados este rol slo pueden realizar operaciones de
lectura sobre cualquier chero de control de la pizarra electrnica, ya que su
sistema de cheros tiene asociada una restriccin
-W.
omero da acceso a los interfaces grcos, por ejemplo para poder tomar
esoriano
y replicar all
200
CAPTULO 6.
El cuarto rol,
usuario
lab,
COMPARTICIN DE DISPOSITIVOS
esoriano, por ejemplo el sistema de cheros de X10 [17; 19] o las balizas
lab no pueden
guest
esoriano
*. Sin embargo, su conanza en el usuario foo es mucho menor, y por esa razn
slo le permite acceder a los dispositivos destinados a los visitantes del espacio
inteligente.
Como hemos remarcado anteriormente, los sistemas de cheros de Plan B
controlan el acceso mediante listas de acceso (ACL) tradicionales. Hemos
modicado la biblioteca de control de acceso del sistema para aadir el nuevo
esquema. Los dispositivos que se exportan mediante SHAD tienen como dueo
al usuario que arranca el servidor de cheros (normalmente el mismo que arranca
la mquina, su dueo) y como grupo al grupo
shad.
shadroles.
6.7.
201
grupo).
2. Si el usuario s tiene un rol que le permite acceder al recurso, se le aplican
los permisos que aparezcan para el grupo
shad.
; echo $user
paurea
; mount /srv/vol /n/audio '/devs/audio user=esoriano loc=124'
; cd /n/audio
; ls -l
---w--w---- M 95 esoriano shad 0 Jun 28 13:32 audio
--rw-r----- M 95 esoriano shad 0 Jun 28 13:32 volume
; cat volume
audio out 47
treb out 0
bass out 0
speed out 44100
; echo audio out 50 > volume
echo: can't open volume 'volume' permission denied
; cp /n/music/heavy/ACDCHard.mp3 audio &
;
Cuadro 6.3:
shadroles
paurea
quiere
202
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
esoriano.
Para realizar
esoriano-shad.
del dominio
audio
audio
volume.
volume
paurea
volume.
output
-Wvolume.
Para usar el dispositivo de audio, se copia una cancin en formato MP3 sobre
el chero
grupo
shad
el dispositivo.
T b0
mfs,
T a0
T a0
se exporta el
La gura 6.6 ilustra el caso. Las echas continuas representan los protocolos
de SHAD. Las echas discontinuas representan los cheros importados por los
terminales desde su UbiTerm. Las echas punteadas representan el protocolo
6.7.
203
Figura 6.6:
P9SK1.
Las
echas
mixtas
representan
al
protocolo
9P
para
el
uso
del
dispositivo. Las lineas sin echa representan ujos entre entidades internas de
las mquinas.
Los pasos para utilizar el dispositivo son:
mount)
T a0 .
T a0
T a0 )
mfs
(el
informa de que
a-shad.
204
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
anillo de secretos
del agente
T b0 ,
agente
T b0
T b0
T a0 .
T a
T a .
T a
responde a
T b ,
9.
T b
T b0 .
ndb
a-shad.
y adquiere la direccin de
T a ,
T b0
el UbiTerm de A.
6.7.
205
audio).
mfs.
Si hay
T b0
6.7.6. Conrmaciones
El estatus de las conrmaciones se pueden especicar en la tupla que
representa a la
serverconfirm
clientconfirm:
206
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
Si el atributo
clientconfirm.
anillo de secretos los secretos P9SK1 de dominios SHAD de usuarios cuya tupla
de emparejamiento requiera conrmacin, la conrmacin ser necesaria cada
vez que se establezca una conexin 9P.
Si los atributos no estn presentes, la conrmacin no es necesaria en ningn
caso.
aplicaciones
ya
se
autenticaron
el
control
de
acceso
se
produjo
6.7.
207
shadroles
no se encuentra disponible.
shadroles
shadroles
6.7.8. Revocacin
Un usuario puede revocar el acceso a sus dispositivos mediante el chero
shadroles.
#)
la linea
208
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
Eliminar la
clave de emparejamiento
secretos.
shadroles.
shadroles
y la base de datos
ndb
que
6.8.
EXPERIENCIA DE USO
209
210
CAPTULO 6.
COMPARTICIN DE DISPOSITIVOS
Sin autenticacin
y ACLs
0.024
0.207
0.308
Tiempo
(seg)
Cuadro 6.4:
Captulo 7
Conclusiones y trabajo futuro
211
212
CAPTULO 7.
7.1. Conclusiones
7.1.1.
Single Sign-On
Single Sign-On
(SSO) que
por
Nuestra
7.1.
213
CONCLUSIONES
Peer-to-
Peer para compartir sus secretos cuando el servidor personal no esta disponible
permite que las aplicaciones del usuario puedan autenticarse automticamente
en su ausencia. Comnmente, los sistemas que dependen de un servidor central
de claves no soportan fallos del mismo.
las
214
CAPTULO 7.
evaluacin
del
prototipo
Netfactotum
muestra
7.2.
CONTRIBUCIONES
215
7.2. Contribuciones
La presente Tesis ha aportado las siguientes contribuciones al estado del arte
en lo que respecta a las arquitecturas de seguridad aplicadas a sistemas ubicuos:
1.
2.
3.
216
CAPTULO 7.
4.
5.
El
diseo
la
implementacin
de
un
prototipo
de
dicha
La
experiencia
de
uso
(y
medidas
relacionadas)
de
las
Single Sing-On.
La
poner
un
ejemplo,
en
estos
sistemas
los
usuarios
tienden
escoger
falso
7.3.
217
Stick Principle
The Big
218
CAPTULO 7.
del sistema depende de las elecciones que tome el usuario a la hora de congurar
sus secretos.
El usuario puede realizar una eleccin equivocada a la hora de asignar las
restricciones de sus secretos y hacer el sistema inseguro. Hay que tener en cuenta
que la seguridad de la mayora de los sistemas estn sujetos a este problema.
Por ejemplo, en un sistema basado en contraseas se pueden elegir contraseas
inseguras, tales como fechas o nombres propios. Los sistemas que obligan a los
usuarios a elegir contraseas seguras o fuerzan una contrasea aleatoria, estn
sujetos a que el usuario la anote en un papel o en una pizarra, haciendo el
sistema ms vulnerable si cabe. Otro ejemplo son los usuarios de Smart Cards,
que puede olvidar sus tarjetas en el lector. Los ejemplos son numerosos.
En general, la seguridad se basa en la buena prctica de los usuarios del
sistema.
7.4.
TRABAJO FUTURO
219
220
CAPTULO 7.
Apndice A
Herramientas criptogrcas
221
222
APNDICE A.
HERRAMIENTAS CRIPTOGRFICAS
A.1. Introduccin
En este apndice presentamos las herramientas criptogrcas utilizadas en
SHAD, as como justicamos la forma de usar dichas herramientas para asegurar
los distintos mensajes de los protocolos.
protocolos
Chaining).
de
SHAD
utilizan
AES
en
modo
CBC
Cipher Block
operacin XOR con el texto cifrado del bloque anterior. Antes de cifrar el primer
bloque, se aplica un XOR con un vector de inicializacin. Ese vector se suele
generar de forma aleatoria.
Para descifrar un bloque, se aplica la funcin inversa y se aplica un XOR con
el bloque cifrado anterior. El tamao de los datos cifrados debe ser mltiplo de
la longitud de bloque.
Las ventajas ms notables de este modo son [164, Captulo 9]:
Los patrones que pueden existir en el texto en claro quedan ocultos por
las operaciones XOR con el texto cifrado anterior.
A.2.
223
EL ALGORITMO AES
n 1.
en el texto
del
n + 1.
es relativo a su implementacin (
224
APNDICE A.
HERRAMIENTAS CRIPTOGRFICAS
hash
resmenes del contenido de los mensajes, y as poder comprobar que los datos
tiles del mismo no han sido modicados.
hash
Una funcin
hash segura[106]:
Primera resistencia pre-imagen: para cualquiera de los posibles resmenes
que se pueden obtener de la funcin, no es computacionalmente factible
encontrar la pre-imagen que le corresponde.
Segunda
resistencia
pre-imagen:
no
es
computacionalmente
factible
encontrar una pre-imagen que genere el mismo resumen que otra preimagen dada.
280
269
clculos de resmenes,
263
clculos [163]. Ntese que nuestros protocolos utilizan SHA-1 junto AES, y
A.4.
225
CABECERA
IV
DATOS CIFRADOS
La parte cifrada contiene la carga til del mensaje junto con otros datos.
Esta parte sigue este esquema:
96 bits
160 bits
variable
DATOS ALEATORIOS
CARGA TIL
La
226
APNDICE A.
HERRAMIENTAS CRIPTOGRFICAS
quedarn
n1
i 1.
En todo caso, el problema reside en que cambiando los bits del vector de
i+1
i,
entonces
y a la vez modicar
que ocupa el resto del primer bloque mas el segundo bloque entero. A partir del
tercer bloque comienza la carga til.
Mediante
el
resumen
se
puede
comprobar
la
integridad
de
los
datos
nonces y marcas
replay attack).
repeticin (
A.4.
227
No utilizamos MACs (
adicionales en los
nonces, marcas
228
APNDICE A.
HERRAMIENTAS CRIPTOGRFICAS
Bibliografa
[ 1]
[ 2]
1997.
[ 3]
[ 4]
A.
Abdul-Rahman
Communities.
En
and
S.
Hailes.
Supporting
Trust
in
Virtual
K.
Aberer
and
Z.
Despotovic.
Managing
Trust
in
Peer-to-Peer
2001.
[ 6]
Secure
[ 7]
Wearable Security
En
229
230
[ 8]
BIBLIOGRAFA
[ 9]
En
En
[10]
R. J. Anderson.
[11]
A Uniform Approach
Proceedings of the
3rd Australasian Conference on Information Security and Privacy, LNCS
1438, pginas 2435, Springer-Verlag, 1998.
to Securing Unix Applications Using SESAME.
[12]
En
AT
&
Bell
[13]
AT
&
Bell
[14]
112121, 2004.
231
BIBLIOGRAFA
[15]
Journal of the
Brazilian Computer Society, special issue on Adaptive Software Systems,
10(1):31-42, 2004.
[16]
Enviado para su
Traditional
Systems Can Work Well for Pervasive Applications. A Case Study: Plan
[18]
User
Interfaces
in
the
Plan
Operating
Omero:
System.
En
F.
J.
Ballesteros,
E.
Soriano,
and
G.
Guardiola.
The
LS
Smart
http://lsub.org/papers/.
[20]
Plan B: A
[21]
Futura publicacin.
Plan B:
En
232
[22]
BIBLIOGRAFA
Context-aware
Verlag, 2003.
[23]
Internet
En
[27]
Reference Manual.
4.4BSD Programmer's
AT
&
Bell
Secure Internet
Programming: Security Issues for Mobile and Distributed Objects, LNCS
1603, pginas 185210, Springer-Verlag, 1999.
Management
[30]
in
Distributed
Systems
Security.
En
233
BIBLIOGRAFA
[31]
[32]
En
[34]
[35]
UILU-ENG-2002-1729, 2002.
[36]
R.
Campbell,
J.
Al-Muhtadi,
P.
Naldurg,
G.
Sampemane,
and
Human Performance.
[38]
Common
Object
Request
Broker
Specication. The Object Management Group,
Architecture:
Core
http://www.omg.org/cgi-bin/apps/doc?formal/04-03-01.pdf.
[39]
M.
Corner
and
B.
Noble.
Protecting
Applications
with
Transient
Protocol.
234
[41]
BIBLIOGRAFA
Security in
316, 2002.
[42]
1st Workshop
on Security and Privacy at the Conference of Pervasive Computing, 2004.
for Trust and Security in Human-Centric Computing. En
[43]
[44]
T. DeMarco.
Springer, 2002.
Y. Desmedt.
Threshold Cryptosystems.
En
Proceedings of Advances in
2000.
[48]
Internet
IEEE
235
BIBLIOGRAFA
[51]
Tom Du.
En
[53]
[54]
Proceedings
of the Network and Distributed System Security Symposium 2001, pginas
P. Eronen and P. Nikander. Decentralized JINI Security. En
161172, 2001.
[55]
AT & T Bell
TM Cryptocard.
Fortezza
http://www.mykotronx.com/products/fortezza/crypto.asp.
[57]
[58]
[59]
IEEE Pervasive
[61]
Project
http://www-unix.globus.org/toolkit/docs/3.2/gsi/index.html.
236
[62]
BIBLIOGRAFA
[63]
19, 1997.
[64]
IEEE Internet
En
[68]
En
256, 2005.
[69]
R. N. Haber
250(5):104112, 1970.
Cientic American,
237
BIBLIOGRAFA
[71]
http://www.hexamite.com/hx5c.pdf.
5(9):114, 2004.
[73]
Identication.
R.
Housley,
W.
Polk,
W.
Ford,
and
D.
Solo.
Internet
x.509
http://www.ietf.org/rfc/rfc3280.txt.
[75]
Hp
Cambirge
Research
Lab:
Compaq
Personal
Server
Project.
http://www.crl.hpl.hp.com/projects/personalserver/.
[76]
Ibutton. http://www.ibutton.com.
[77]
[78]
[80]
Workshop
238
[82]
BIBLIOGRAFA
with
Ubiquitous
Computing
IEEE Pervasive
Rooms.
[84]
A. Josang.
En
W.
Josephson,
E.
G.
Sirer,
and
F.
B.
Schneider.
Peer-to-peer
Proceedings
of the International Workshop on Peer-to-Peer Systems, LNCS 3279,
Authentication with a Distributed Single Sign-On service. En
1994.
[87]
[88]
H.
En
Kato,
Y.
Sato,
T.
Fukumoto,
T.
Sasaki,
and
M.
Funabashi.
2003, 2003.
[89]
T. J. Killian.
Processes As Files.
En
239
BIBLIOGRAFA
[91]
Mathematics of Computation,
48(177):203209, 1987.
[92]
H.
Kopp,
U.
Lucke,
and
D.
Tavangarian.
Security
Architecture
[93]
[94]
En
[95]
pginas 389404,
Springer-Verlag, 1990.
[96]
Visual, 2004.
[97]
M. Langheinrich.
[98]
Ubiterm: A
Proceedings of
the IEEE International Conference on Pervasive Services 2005, pginas
127136, 2005.
[99]
2003.
240
BIBLIOGRAFA
Mazieres,
M.
Kaminsky,
M.
Frans
Kaashoek,
and
E.
Witchel.
Proceedings
of the 17th ACM Symposium on Operating Systems Principles, pginas
124139, 1999.
[106] A. Menezes.
[107] D. Mery.
CRC, 1996.
Symbian
Ltd.,
2003.
http://www.symbian.com/technology/whitepapers.html.
[108] V. S. Miller.
En
Proceedings
pginas 417426,
Springer-Verlag, 1986.
[109] Mimio by Virtual Ink. http://www.mimimo.com/meet/mimioboard/.
[110] K. Mitnick and W. L. Simon.
[111] G. E. Moore.
Wiley, 2002.
Suite
The
http://www.mozilla.org.
All-in-One
Internet
Application
Suite.
241
BIBLIOGRAFA
Encryption Standard.
Institute
of
Standards
and
Technology.
Encryption Standard.
AT
&
Bell
M.
Needham
and
M.
D.
Schroeder.
Using
Encryption
for
Communications of the
242
BIBLIOGRAFA
O'Hara
Companion.
[128] Okiok.
and
A.
Petrick.
http://www.okiok.com/index.jsp?page=Focal+Point.
[129] On-hand PC Homepage. http://www.matsucomusa.com.
[130] R. Oppliger. Microsoft .Net: A Security Analysis.
35, 2003.
[131] D.
A.
Osvik,
A.
Shamir,
and
E.
Tromer.
Cache
Attacks
and
2005/271. 2005.
[132] Palmsource: PalmOS. http://www.palmsource.com/palmos/.
[133] D. G. Park, J. K. Kim, S. J Bong, J. H. Hwang, C. H. Hyung, and
S. W. Kang. Context Aware Service Using Intra-Body Communication.
243
BIBLIOGRAFA
[136] A. Pineda.
PFC. Universidad
pginas
19, 1990.
[138] R. Pike. Acme: A User Interface for Programmers. En
Postel
and
J.
Reynolds.
Internet
Postel
and
J.
Reynolds.
Internet
Mc
http://www.protocom.com/html/whitepapers/.
academia
de
la
lengua
espaola:
el
diccionario
http://buscon.rae.es/diccionario/Drae_v2/cifras.htm.
[147] Random Art. http://www.random-art.org.
en
cifras.
244
BIBLIOGRAFA
Guide.
[152] R. Rivest.
Internet Engineering
Internet
21(2):120126, 1978.
[155] R. L. Rivest and B. Lampson.
Infrastructure. En
End-to-End Arguments in
2(4):277288,
245
BIBLIOGRAFA
Spaces. En
SHA-1.
http://www.schneier.com/blog/archives/2005/08/new_cryptanalyt.html.
[164] B. Schneier.
Applied Cryptography.
[165] B.
Schneier.
Communications
AT
&
Bell
246
BIBLIOGRAFA
En
Soriano.
Shad:
Human
Centered
Security
Architecture
for
En
En
Proceedings
of Pervasive Computing.
En
2002.
[180] F. Stajano and J. Crowcroft. The Butt of the Iceberg: Hidden Security
Problems of Ubiquitous Systems.
En
247
BIBLIOGRAFA
[181] W. Stalligns.
[182] J.
G.
Steiner,
B.
C.
Neuman,
and
J.
I.
Schiller.
En
Kerberos:
An
Proceedings of
Addison-Wesley, 1992.
[184] W. R. Stevens.
Prentice-Hall, 1995.
Prentice Hall
PTR, 2002.
[189] I. Vajda and L. Buttyan.
En
Security Architecture in
248
BIBLIOGRAFA
Scientic American,
265(3):94104, 1991.
[194] V. Welch, F. Siebenlist, I. Foster, J. Bresnahan, K. Czajkowski, J. Gawor,
C. Kesselman, S. Meder, L. Pearlman, and S. Tuecke. Security for Grid
En
2003.
[195] Wi-Fi Alliance. http://www.wi-.org.
[196] X-10 Home Page. http://www.x10.com.
[197] K. W. Yeh and L. Wang.
Certication.
ACTiSYS Corp.
http://www.actisys.com/IrDAOverview-
Word.pdf.
[198] W.
Yeong,
protocol.
S.
Kille,
Internet
and
T.
Howes.
Engineering
Lightweight
Task
Force:
directory
RFC
1777,
access
1995.
http://www.ietf.org/rfc/rfc1777.txt.
[199] T. Ylonen.
En
En