03.12.2012 Views

Security - Telenor

Security - Telenor

Security - Telenor

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

On transmission, the message body at the application<br />

level is encoded in CDR (Common Data<br />

Representation). CDR then translates IDL (Interface<br />

Definition Language) data types into a byteordering<br />

independent octet string. For such an<br />

octet string to be decoded back to IDL data type,<br />

the interface definition of the object is needed.<br />

This information, however, is not as a rule at the<br />

firewall with the result that the firewall is unable<br />

to decode the message body. This means that an<br />

IIOP proxy cannot base filtering decisions on the<br />

request body [11].<br />

Since the mechanisms involved in interaction<br />

with a firewall will vary with the type of firewall,<br />

it is necessary to have a precise definition<br />

of which types of firewall are supported in<br />

CORBA if ORB interoperability is to be<br />

achieved. In this connection, the current joint<br />

revised firewall submission proposes three types<br />

of firewall (see below) for use in different situations<br />

[8, 11], a TCP firewall for simple and static<br />

applications, a SOCKSv5 [16] proxy for clientside<br />

firewalls, and a GIOP application level<br />

proxy for enforcing fine-grained security policies<br />

(especially on the server-side).<br />

4.1 TCP Firewalls<br />

A TCP Firewall is a simple firewall that operates<br />

at the transport level, basing its access control<br />

decisions solely on information in TCP headers<br />

and IP addresses. When a connection request is<br />

received on a given port of the firewall, the firewall<br />

establishes a connection to a particular host<br />

and port. In the course of this process the firewall<br />

uses the combination of host address and<br />

port () to authenticate the client on<br />

the basis of the IP address alone. Having established<br />

the connection, the firewall will allow<br />

GIOP messages to pass through uninterrupted.<br />

In other words, ORB protocols are of no significance<br />

to a TCP firewall.<br />

A simple form of ORB interoperability through<br />

TCP firewalls can be achieved without any modifications<br />

to CORBA. TCP firewalls must be<br />

statically configured with host/port address<br />

information in order to process access requests.<br />

The server can then be configured to replace its<br />

own host/port address with that of the firewall<br />

in its IOR for use outside the enclave. How this<br />

is implemented varies with the situation. One<br />

method is to proxify the IOR manually. The<br />

client thus receives an IOR containing the address<br />

of the firewall rather than that of the server,<br />

and sends GIOP messages to the firewall (which<br />

forwards them to the server) under the impression<br />

that is where the server is.<br />

Due to the tradition of TCP/IP using one port per<br />

service, it is common practice to identify a TCP<br />

service by the port number used for the server.<br />

Telektronikk 3.2000<br />

As a result, most of today’s firewalls make lowlevel<br />

access control decisions on the basis of<br />

port used. Since there is no well-known “IIOP<br />

port”, this practice does not facilitate ORB interoperability<br />

through TCP firewalls. As part of its<br />

proposed solutions, the OMG has defined a recommended<br />

“well-known IIOP port” and a “wellknown<br />

IIOP/SSL port”. This will enable client<br />

enclaves with TCP firewalls to permit access to<br />

IIOP servers by enabling access to this port<br />

through their firewalls.<br />

The OMG’s firewall RFP points out that, while<br />

these ports are not mandatory since IIOP servers<br />

can be set up to offer service through other ports,<br />

the ports serve as a basic guideline for server or<br />

TCP, SOCKS or GIOP proxy deployment, and<br />

make it possible for client enclaves to identify<br />

or filter immediately the traffic as IIOP without<br />

processing.<br />

4.2 SOCKS Firewalls<br />

The SOCKS [16] protocol is an open Internet<br />

standard (IETF RFC1928) which performs network<br />

proxying at the transport layer, mainly on<br />

the client-side. SOCKS creates a proxy which is<br />

transparent to either party, and which serves as a<br />

data channel between clients and servers based<br />

on TCP or UDP. In this case a client can have<br />

control over which server it wishes to connect<br />

to, in contrast to the situation when normal static<br />

mapping of TCP connections by a TCP proxy is<br />

used. A SOCKS firewall could then reasonably<br />

be referred to as a “dynamic TCP proxy”.<br />

SOCKS consists of a SOCKS proxy server on<br />

the firewall and a client-side library. In the client<br />

program the normal network calls of the socketinterface<br />

have to be replaced by the corresponding<br />

calls of this SOCKS library, and the process<br />

is called ‘socksification’. The server is unchanged.<br />

The socksified client calls the corresponding<br />

functions of the SOCKS library. These<br />

SOCKS functions communicate transparently<br />

with the client and server over the SOCKS proxy<br />

server on the firewall.<br />

Figure 4-2 shows a typical scenario of a client<br />

communicating with an application server<br />

through a SOCKS firewall. There are six phases<br />

to the communication process: In the first, the<br />

client authenticates itself to the SOCKS proxy<br />

server, and if successful, the process proceeds to<br />

Client application<br />

linked with<br />

SOCKS client<br />

library<br />

1<br />

2<br />

3<br />

5<br />

SOCKS proxy<br />

server<br />

Relay data<br />

Figure 4-2 SOCKS proxy<br />

firewall traversal scenario<br />

4<br />

6<br />

Application<br />

server<br />

57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!