• No se han encontrado resultados

Introducción. En este apartado veremos

N/A
N/A
Protected

Academic year: 2021

Share "Introducción. En este apartado veremos"

Copied!
17
0
0

Texto completo

(1)
(2)

Introducción

n

En este apartado veremos

n ¿ En qué difiere la programación de un applet frente a una aplicación stand-alone ?

n Problemas de seguridad en applets

n Uso de CORBA en entornos con firewalls n IIOP sobre SSL

n Funcionalidad proporcionada por el servicio de seguridad de CORBA

(3)

Programación de applets (1)

n En principio, la ventaja de que una aplicación cliente sea un

applet, es el no tener que instalar/actualizar la aplicación en las máquinas cliente

n En realidad, muchas veces es preciso descargar el ORB (y quizás los proxies de algunos servicios) con el propio applet (lo que incrementa notablemente el tiempo de descarga del applet)

n Browsers que no tienen ORB de CORBA

n Browsers con ORB de CORBA anticuado (en los que además, es preciso realizar modificaciones/actualizaciones de algunos componentes software)

n Además, es preciso hacer frente a determinados problemas de seguridad (se comentan más adelante)

n A diferencia de las aplicaciones, crean un ORB con

package org.omg.CORBA;

public abstract class ORB {

public static ORB init(java.applet.Applet, java.util.Properties properties) { ... } // ....

(4)

Programación de applets (2)

n

Ejemplo ClockNaming con cliente como applet

n Fichero

$CORBA_JAVA_EXAMPLES/Subsystems/ClockNaming/Scripts/ClockNamingA pplet.html

<html> <head>

<title>Clock applet example</title> </head>

<body>

Clock applet example <p></p><p></p>

<applet code=es.udc.fbellas.corba.clocknaming.applet.ClockNamingApplet archive="OB.jar, OBNaming.jar, ClockNamingApplet.jar"

width=60 height=25>

<param name=org.omg.CORBA.ORBClass value=com.ooc.CORBA.ORB> <param name=org.omg.CORBA.ORBSingletonClass

value=com.ooc.CORBA.ORBSingleton> <param name=initialNamingContextURL

value=corbaloc::localhost:5000/NameService> You gotta be Java.

</applet> </body> </html>

(5)

Programación de applets (3)

n Applet =>

$CORBA_JAVA_EXAMPLES/Subsystems/ClockNaming/Sources/es/udc/fbellas/ corba/clocknaming/applet/ClockNamingApplet.java

/* Get 'initialNamingContextURL parameter. */

String initialNamingContextURL = getParameter("initialNamingContextURL"); if (initialNamingContextURL == null) {

// .. }

/* Initialize ORB. */

orb = ORB.init(this, null);

/* Get a reference to the initial naming context. */ org.omg.CORBA.Object initialNamingContextObject = orb.string_to_object(initialNamingContextURL); if (initialNamingContextObject == null) { // .. } NamingContext initialNamingContext = NamingContextHelper.narrow(initialNamingContextObject);

(6)

Programación de applets (y 4)

n

Comentarios

n El servidor podría escribir la IOR del objeto Clock en un fichero del servidor web (el applet lo puede leer fácilmente con java.net.URL), de manera que el applet no tenga

que usar el servicio de nombres

n Para ejecutar el ejemplo puede ser necesario adaptar el navegador

n Ej.: Véase manual de ORBacus para uso con Netscape

(7)

Problemas de seguridad en applets

n

Normalmente el gestor de seguridad que utilizan los

navegadores para los applets, impide que el applet

n Abra conexiones contra máquinas distintas a la del servidor web del que vino

n Acepte conexiones

n

Por tanto, en principio, un applet no podría

n Invocar operaciones sobre objetos remotos que están en máquinas distintas a la del servidor web del que vino

n Implementar objetos callback n

Soluciones

n Gateways IIOP (invocaciones sobre objetos de otras

máquinas distintas a la del servidor web) e IIOP bidreccional (callbacks)

n Usar el modelo de seguridad de Java

(8)

Gateway IIOP

n

Ejemplos

n Wonderwall (Orbix), Gatekeeper (Visibroker), Appligator (JacORB)

Servidor web

Gateway IIOP Servant Servidor IIOP Navegador Applet Stub IIOP

(9)

Modelo de seguridad de Java

n

Hasta JDK 1.0.x

n Código cargado localmente => todos los permisos

n El código cargado a través de la red (ej.: applets) => permisos restringidos por un

java.lang.SecurityManager

n

Con JDK 1.1.x

n Los applets se pueden firmar digitalmente (el fichero .jar) n Si el destinatario acepta el applet, se trata como si fuese

código cargado localmente

n

A partir de JDK 1.2

n Mismo control de seguridad para código local y para código cargado a través de la red

n Es posible especificar permisos y firmar digitalmente los ficheros .jar (jarsigner)

n Ej.: aceptar conexiones, permitir conexiones a máquinas,

(10)

Firewalls

n Firewalls

n Restringen el acceso desde el exterior (firewalls inbound) o hacia el exterior (firewalls outbound)

n Un mismo firewall puede funcionar como inbound y outbound

n En organizaciones grandes existen varios niveles de firewalls

n Mecanismos: filtrado de paquetes (a nivel de red y/o transporte => IP y/o TCP/UDP) y filtrado basado en protocolos de nivel de

aplicación (ej.: HTTP, FTP, etc.)

Cliente FWC1 FWC2 Enclave C1 Enclave C2 Servidor FWS1 FWS2 Enclave S2 Enclave S1 Firewalls outbound Firewalls inboud

(11)

Filtrado de paquetes

Desde x:x a

193.170.80.91:80/tcp

Desde subred 193.144.50.x:x a 193.170.80.123:21/tcp

Cualquier otro intento de comunicación

Filtrado

X

(12)

Filtrado basado en protocolos de nivel de aplicación

TCP Filtrado de paquetes FTP Gateway (proxy) para FTP Firewall Desde subred 193.144.50.x:x a 193.170.80.123:21/tcp, con FTP cq. comando excepto comandos de modificación (put, mput, delete, etc.)

Servidor FTP

(13)

Problemas causados por los firewalls a las aplicaciones CORBA

n Con IIOP, un servidor normalmente elige el puerto o los puertos

por los que escucha dinámicamente

n Los ORBs suelen tener opciones para especificar el puerto que usa cada servidor

n Un mismo servidor puede correr en distintas máquinas en

distintos instantes de tiempo

n Incluso, la decisión puede tomarse dinámicamente (ej.: un repositorio de implementaciones con balanceo de carga)

n Los clientes que tienen objetos callback, también eligen puertos

dinámicamente y pueden correr en distintas máquinas

n Una primera solución

n Configurar los firewalls para permitir tráfico a y desde muchas máquinas y puertos

n Política de seguridad demasiado permisiva y difícil de administrar

n Soluciones reales

n HTTP tunneling

n Uso de gateways (proxies) GIOP

(14)

HTTP tunneling

n Tratan de salvar las restricciones impuestas por los firewalls outbound en los clientes

n Generalmente permiten hacer conexiones HTTP a casi cualquier máquina

(por el puerto 80)

n Con HTTP tunneling los mensajes IIOP se mandan dentro de mensajes

HTTP Servidor HTTP con HTTP tunneling Servant Servidor IIOP Navegador Applet Stub HTTP Firewall outbound en el cliente n Problemas

n Un applet no puede implementar objetos callback (necesitaría una

infraestructura similar a la del servidor, lo que no es realista)

n Si el cliente no es un applet, necesita configuración para especificar cuál es

el servidor HTTP con soporte para HTTP tunneling (para poder enviarle las peticiones)

Wonderwall (Orbix) Gatekeeper (Visibroker)

(15)

Gateways GIOP

n

Solucionan los problemas asociados a HTTP tunneling

Gateway IIOP Servant Servidor IIOP Cliente Stub IIOP n

Idea básica

n Invocaciones de objetos del servidor desde el cliente

n Las IORs que usa el cliente “apuntan” al gateway IIOP, y éste

las redirige la servidor

n Invocaciones de objetos del cliente desde el servidor

n Para evitar abrir una conexión y tener un gateway instalado en

la red cliente, el servidor reutiliza la conexión del cliente (GIOP bidireccional)

Wonderwall (Orbix) Gatekeeper (Visibroker)

(16)

IIOP sobre SSL

n

SSL (Secure Socket Layer)

n Extensión al API de sockets para TCP/IP

n Encriptación, autenticación del servidor y opcionalmente del cliente

n Se ha hecho popular con HTTP

n HTTP sobre SSL

n

El OMG ha estandarizado el uso de IIOP sobre SSL,

integrado dentro del servicio de seguridad

n

Muchos fabricantes proporcionan IIOP sobre SSL con

(17)

Servicio de seguridad de CORBA

n

Permite controlar la seguridad de aplicaciones CORBA

de una manera “más fina” que el uso de exclusivo de

firewalls

n Ej.: Especificar qué usuarios pueden invocar un método de un objeto

n

Es uno de los servicios más complejos

n

Funcionalidad

n Identificación (“principals”) y autenticación n Control de acceso

n Trazado (“auditing”)

n Seguridad en la comunicación

n Autenticación del cliente y del objeto, integridad y

confidencialidad del mensaje

Referencias

Documento similar

El SEBC es una in s titu c ió n supranacional que ha de ser asegurada por el actual IME, estará compuesta por el Banco Central Europeo -BCE- y los Bancos Centrales de

l. Esta escena de Alas de vida, está disponible en: http://youtu.be/5rRllAm4mUA m. Esta escena de La mariposa azul, está disponible en: http://youtu.be/yU_TQYm1mS8.. “George,

DIARIO DEL ALTO ARAGÓN Http://www.diariodelaltoaragon.es/ Sí. DIARIO DEL BIERZO

Instalación y configuración de Mooshak en el servidor dedicado a este proyecto (http://docentis.inf.um.es/~mooshak/). Elaboración de un conjunto de 25 problemas teórico-prácticos de

I POST: do some processing on the resource (the actual kind of processing is resource-dependent) based on the data included in the request message.. (Other methods defined by the

(n) en rojo, marcando con líneas verticales los intervalos donde ambas bandas se solapan.. Repositorio de la Universidad de Zaragoza – Zaguan http://zaguan.unizar.es potencia de

The aim of the Earth System Services Group (ESS) within the Earth Sciences Department is to research the impact of weather, atmospheric chemistry and climate upon socio-economic

Para el desarrollo del Bridge ONVIF fue necesario utilizar el servidor y cliente ONVIF además de un sistema externo que enviará notificaciones HTTP.. Fue necesario desarrollar