|
Web Security Technical Note The paper covers various security aspects of Crystal Point's web product line. General topics covered are remote host access via the Internet, Java security, SSL and the HTTPS tunneling protocol in the AppView product. Mainframe systems, with their ability to process huge amounts of data consistently and reliably, continue to be essential to the success of many organizations. The mission-critical applications that run on these systems typically include customer service, order entry, credit card processing and securities trading. The Internet, with its familiar web interface and worldwide accessibility, has made electronic communication and commerce available to everyone. Crystal Point, as the leader in providing access to NonStop systems and others through its OutsideView terminal emulation software, now provides the best of both worlds through a new Java-based web-to-host solution. The Internet offers great benefits and presents many security challenges as well. The key advantage of the Internet is that it provides almost universal connectivity throughout the world. The disadvantage is that not all Internet participants are good citizens. With this in mind most corporations have some form of security architecture to control access to or from the Internet. We will cover using Crystal Point’s web products on internal intranets and for external access via the Internet. Deployment issues:Since the web products intrinsically supply a terminal session to a specified host, a prerequisite is that the user be able to access the web server that is hosting the web page that allows access to the mainframe system. Your first line of defense is the web server, if the web server is open access to everyone then everyone who has a browser will be able to invoke the host access client and your security depends on the build in security of the mainframe. In the web server environment there are many tactics and options that can be used to limit access to the mainframe client. Some of them are:
These methods vary by the type of web server that you use to host Crystal Point’s host access applications. It is suggested that you consult documentation for your web server and available security application notes. On an Intranet Crystal Point’s downloadable Java web products can also be used via a file server share or locally installed on the workstation, avoiding the use of an intranet web server and it security issues. Java Security:Crystal Point web products are 100% pure Java code. The Java environment was designed from the start to have strong security for both local and remote code though the sandbox concept. The essence of the sandbox model is that local code is trusted to have full access to vital system resources (such as the file system) while downloaded remote code (an applet) is not trusted and can access only the limited resources provided inside the sandbox. These Java applets are digitally signed using a software certificate from a known Certificate Authority. This certificate allows these applets to be recognized as trusted code by the Java virtual machine on the end users workstation. When the end user first loads Crystal Point’s Java code, a dialog box comes up and gives them an option to approve the use of code. Since the boot process is sometimes in two stages (depending on circuit security) they may receive this message twice if they don’t check the box to always trust code from Crystal Point (recommend). Proxies and SSL:One of the major strengths of Crystal Point’s products is the ability to deploy applications via the Internet to remote users, customers and partners. The major obstacles to remote access are firewalls and proxy servers. A firewall can be viewed as a combined hardware/software system that links two isolated networks, usually a private network and the Internet. A firewall polices the traffic between the two networks, blocking access from the Internet to the private network, while providing Internet access to internal computers. For software applications proxy servers do this kind of policing. The TCP/IP protocol, which is used for communications on the Internet, allows connections to about 65000 ports on any machine. Firewalls typically have a rule set that allows only certain ports to be accessed from the Internet side of the firewall. A typical example is a web server behind a firewall, which uses port 80 for the standard web protocol http and port 443 for secure (SSL) http or https. Other specific ports on the system may be enabled for FTP file transfer, file-sharing services or other services. All other ports will be blocked disallowing unauthorized access by strangers on the Internet. In this manner, a firewall limits connections to the known, authorized services that we want to offer to the outside world. Web proxy servers perform three basic tasks.
The proxy server must also handle a HTTPS request for you to visit a secure Web site on the Internet. However, there is one significant difference between a proxy server processing HTTP requests and HTTPS requests. For HTTP requests, the proxy server is able to parse the communication content and exercise a lot more discretion on policing the traffic, including dropping the connection at the appropriate time (a proxy server always assumes HTTP connections are non-persistent). On the other hand, the proxy server will not be able to decipher HTTPS connections because of encryption. It has no choice but to relay the data intact and cannot drop the connection unless initiated by the client and/or server. Again, this is because the proxy server assumes the subsequent communication will not be readable. The ability to create a persistent connection that is free of the interference of the proxy server is what we want to exploit here. The solution is use a secure connection (SSL) that the proxy server knows it cannot cache for reuse. Note most HTTPS proxy servers will only tunnel SSL through port 443. This requires that the host connection address be a different address than the web server hosting our connectivity application. More on that later, but note that sites that authorize access on a server-by-server basis will require separate authorization for the web server and the host security proxy server. Among the most time-consuming and computationally expensive operations performed during an SSL transaction are the initial exchange of a shared secret and the negotiation of a bulk-encryption protocol. This exchange usually takes place immediately following the establishment of each TCP connection, and is the primary cause of server CPU load when using SSL. To reduce the number of times that this exchange must be performed, SSL includes a feature called “Session ID Re-use.” When a client and server establish an SSL connection for the first time, that connection is assigned what is known as a Session Identifier, or “Session ID.” During subsequent connections, the client can ask the server to re-use the same Session ID. By using the persistent connection feature of HTTPS connectivity via a proxy server, the vast majority of your remote clients are able to call home via the Internet. There are still some problems primarily with Microsoft Proxy server. If the following message is received when attempting to communicate with a remote host:
This message indicates that the Proxy server has been configured for NTLM authentication, which is a proprietary Microsoft protocol. NTLM is the highest form of client side authentication for which Proxy server 2.0 can be configured and may have been selected by the network administrator without consideration of other applications to be run on the network. Crystal Point’s web products support the basic authentication protocol for web proxy servers that require client side authentication to access the Internet. Only a couple of Microsoft TCP/IP applications (Internet Explorer and the WinSock Proxy Client) conform to the NTLM protocol when used with the Proxy Server. There are other Microsoft applications that also require the basic authentication protocol setting for the proxy server. One method to workaround this issue is to add an applet parameter <param name=”retryWithoutHTTPProxy” value = “true”> to the host session html file. This will cause the client to retry the call as a normal network connection. The organization may use a proxy for caching/network performance and permit outbound data calls through the firewall. It is also possible that the user may already have the WinSock Proxy client installed (which is the other Microsoft application that understands the proprietary NTLM authentication protocol). If this method is not successful, the end user will need to coordinate with their network administrator to implement any of the following solutions or actions:
Corporate Firewall ProxyNow that we have gotten the remote client's traffic out onto the Internet so that it can connect to our location, let’s go through the mechanics of getting it though our firewall. Here’s the scenario that we will discuss:
The next slide shows a high availability DMZ (de-militarized zone) configuration that can support a vast number of users. Our example shows the following components:
The entire purpose of a DMZ firewall is to insure that no device on the internal corporate network can be directly accessed from the Internet . A hacker who wants to access the corporate network has to break two firewalls and a bastion server to get access.
In the diagram we show the basic data flow. The sequence is as follows:
Depending on the security needs of organization you may have either a simpler or more complex setup. As you can see a great deal of coordination is needed for complex security configurations. Another configuration item is the SSL session timeout that may be enforced by the load balancer/health monitoring software. Web servers generally timeout inactive SSL circuits to free up resources, in our case the host circuit are always active, so SSL timeout to the proxy server should be disabled. HTTPS TunnelingThe AppView product from Crystal Point Inc. has an additional secure transport, HTTPS tunneling. This architecture takes advantage of the SSL capabilities of client browsers and the web server to achieve secure transport with no changes to existing network structures. If HTTP(s) tunneling is selected for the session, the AppView applet will forward data targeted for the host to its local browser. The browser will encapsulate this data as an HTTP packet and encrypt it through SSL (HTTPS). This data packet can easily traverse any intervening web proxies and firewalls since it is a known protocol using a known port (443). Once the packet arrives at the web server, it is decrypted and forwarded to a tunneling servelet. This tunneling servelet is included with AppView and can be executed within most servelet runners (e.g., New Atlanta or Tomcat). The tunneling servelet then sends to data to the host application via a standard telnet terminal session. Since web-standard security can be achieved with no changes to network structures, HTTPS tunneling is rapidly becoming the protocol of choice for secure Internet communications via client and server side firewalls. The tunneling servelet can also be installed at a web server residing on the host system (e.g., ITP or WebSphere) if end-to-end encryption is required. Some of this advantages of this technology are:
Tunneling makes heavy use of HTTPS, therefore some web server tuning may need consideration. |
||||||||||||||||||||||||||||||||||||||||||||||||
| ©2007 Crystal Point, Inc. All Rights Reserved. Contact Us Sales: 800.982.0628 |