[35]In a rearguard action against the proliferation of acronyms, CORBA users almost always treat this as a word ("orb") instead of an acronym ("ORB").IIOP provides a great deal of flexibility. It permits callbacks, where a client makes a connection to the server with a request and the server makes a separate connection to the client with the response. It also permits bidirectional use of a connection; if a client makes a connection to the server, the server is not limited to responding to requests from the client but can make requests of its own over the existing connection. IIOP does not provide authentication or encryption services, leaving them up to the application.
All of this flexibility makes it basically impossible to make blanket statements about CORBA's security. Some applications of CORBA are quite secure; others are not. You will have to analyze each CORBA application separately.
In order to help with security, some vendors support IIOPS, which is IIOP over SSL. This protocol provides the basic protections SSL provides, which are discussed later, and therefore will help protect applications that use it from packet-sniffing attacks.
IIOP is extremely difficult to control with packet filtering. A packet filter cannot tell whether an IIOP connection is unidirectional or bidirectional, so it's impossible to keep the server from executing commands on the client using packet filtering. In addition, if your application uses callbacks, you may need to allow connections in both directions anyway, further reducing your control over the situation.
Either kind of proxying provides better security than can be managed with packet filtering. Using a generic proxy requires less configuration on the firewall, but it makes your security entirely dependent on the orb and the applications developer. An IIOP-aware proxy server will allow you to add additional protections by using the firewall to control what operation requests can be passed to the orb.