Examen Final 2008-07-23 - Electronica - FRBA

Anuncio
Universidad Tecnológica
Nacional
Facultad Regional Buenos Aires
Departamento de Ingeniería
Electrónica
Apellido y Nombres
Legajo
Técnicas Digitales III
23 de Julio de 2008
Examen Final
Calificación
Parte Teórica: Tiempo Límite 45 minutos
1)
Mediante una puerta de tarea se conmuta de una tarea de nivel 0 a
otra de nivel 3 quedando el selector DS apuntando al descriptor 5 de
la GDT cuyo DPL es 3; y el selector de código CS apuntando al
descriptor 6 de la GDT.
a. Con qué valor quedan los registros CS y DS?
b. Con qué RPL queda el selector DS?
c. Explique el mecanismo del proceso y justifique su respuesta de a y
b.
2)
Qué debería hacer el handler correspondiente a la excepción 11h
(segment not present).?
a. Proponga un mecanismo.
b. Que sucedería con dicho mecanismo si el descriptor de la IDT
correspondiente a dicha excepción fuese del tipo “interrupt gate”?
3)
Diferencia entre aritmética saturada y aritmética de desborde. Cite
ejemplos e instrucciones IA32 para ambos casos.
4)
Si Ud. desarrolla un servidor TCP:
a. ¿Cómo hace para no permitir acceso a cierto rango de direcciones
IP?
b. ¿Es posible realizar esto antes de invocar a la función Accept?
Justifique.
Universidad Tecnológica
Nacional
Facultad Regional Buenos Aires
Departamento de Ingeniería
Electrónica
Apellido y Nombres
Legajo
Técnicas Digitales III
23 de Julio de 2008
Examen Final
Calificación
Parte Práctica: Tiempo Límite 1hora 30 minutos
Se dispone de un servidor concurrente que escucha pedidos por el puerto TCP
32001 para luego procesar transacciones con los clientes conectados hasta
que los mismos envían la palabra “END”.
Debido a que los datos de las transacciones viajan en “Texto plano” y los
mismos suelen ser confidenciales, su tarea será desarrollar un servidor que
actúe como túnel de seguridad de datos encriptados.
Es decir, los clientes, en lugar de conectarse al servidor descripto, se
conectarán al servidor de seguridad, enviando los datos encriptados por el
puerto TCP 32002 para que luego este servidor los desencripte y reenvíe al
servidor original de transacciones.
Para desencriptar los datos, el servidor de seguridad dispone de una librería
con la función:
char* Desencript(char *data, char *ip_client, int publicKey)
donde el 1er. parámetro corresponde a la información encriptada que envía el
cliente, el 2do. a su IP y el 3ro. se trata de una clave pública que se recibe por
el puerto UDP 32002 cada cierto tiempo. Esta función devuelve un puntero al
buffer de los datos desencriptados.
Análogamente el servidor de seguridad debe encriptar las respuestas que el
servidor original envía al cliente mediante la función:
char* Encript(char *data, char *ip_client, int publicKey)
donde ahora el 1er. parámetro corresponde a la información desencriptada y
análogamente la función devuelve un puntero al buffer de la información
encriptada para ser enviada.
Para aumentar la confiabilidad del sistema de seguridad se dispone al servidor
de transacciones en una LAN privada con una de las dos interfaces Ethernet
del Servidor de Seguridad, en tanto que la segunda interfase de este último se
conecta a la WAN en la que se encuentran los diferentes clientes que requieran
transacciones.
A continuación se ilustra el sistema sobre el que debe ejecutarse su aplicación
El servidor a desarrollar debe ser concurrente y soportar 100 pedidos de
conexión sin arrojar errores y no mas de 350 conexiones activas cada una
manejada con un child. No debe dejar procesos zombies.
Descargar