Transferring data via a secure network connection

A request for secure data sent from a client computer 2 to a webtsite server computer 4 is redirected to a proxy computer 6. A secure connection is established with the proxy computer 6 using a protocol such as HTTP and Certificate Exchange. The proxy computer 6 then establishes its own secure connection with the website server 4. The data requested is passed in encrypted form from the website server computer 4 to the proxy computer 6. The proxy computer 6 decrypts this data and then scans it for illegal content, such as computer viruses, worms, Trojans, banned computer files, banned words, banned combinations of words or banned images and the like. Providing no illegal content is found, the data is encrypted again for transfer over the secure link between the proxy computer 6 and the client computer 2. The proxy computer 6 may conveniently be the firewall computer within a local area network.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to the field of data processing systems. More particularly, this invention relates to the transfer of data via a secure network connection.

2. Description of the Prior Art

The exchange of data via computer networks is becoming increasingly widespread. The adoption of the use of the internet as a way of making network connections is firmly established. The pervasive nature of the Internet has strong advantages in terms of the flexibility it allows and the wide access to data from different sources that is provided. A problem with transferring data via the internet is maintaining the security of that data. The data being exchanged may be confidential, such as credit card or bank details, or might be subject to an unauthorised alteration, such as inserting computer virus code or offensive content into the data being exchanged.

One way of addressing the security issues discussed above is by the use of secure network protocols such as HTTPS. With such protocols, when a client computer wishes to retrieve some data from a server computer, it first establishes a secure connection with that server computer by issuing a HTTPS connection request to the server and waiting for an appropriate Certificate to be returned from the server. Once the secure connection has been established in this way, data can be exchanged across the secure connection in an encrypted form such that its confidentiality may be maintained or to resist tampering with that data. This type of arrangement is well known and has strong advantages.

It is known to provide firewall computers for scanning network traffic for illegal content. A company computer network may typically make its internet connection via a firewall computer such that inbound and outbound traffic to the internet can be scanned for illegal content. A significant problem with this arrangement arises when the client computer and the server computer which are communicating via the firewall computer are connected by a secure link of the type in which the data being transferred is encrypted. As a result of the encryption of the data passing through the firewall computer, the firewall computer is no longer able to scan that data for illegal content. Whilst such secure network connections may be good at maintaining the confidentiality of data being exchanged, they do not in themselves ensure that the data does not contain illegal content, such as offensive material that is banned as a matter of company policy, or malware such as computer viruses, worms, Trojans, spyware etc.

SUMMARY OF THE INVENTION

Viewed from one aspect the present invention provides a computer program product for controlling a proxy computer to transfer data via a secure network connection, said computer program product comprising:first link establishing code operable to establish a first secure link between a first computer and said proxy computer;second link establishing code operable to establish a second secure link between said proxy computer and a second computer;receiving code operable to receive at said proxy computer said data in encrypted form from said second computer;decrypting code operable to decrypt said data at said proxy computer;scanning code operable to scan said data at said proxy computer for illegal content and triggering illegal content found action if illegal content is found within said data; andsending code operable to send said data in encrypted form from said proxy computer to said first computer.

The invention recognises that the confidentiality of the data being exchanged may be maintained and yet the data be made accessible to be scanned for illegal content if the exchange of data is made via a trusted proxy computer. The client computer may issue its secure connection request via the proxy computer. The proxy computer can intercept this request and establish its own secure link with the client computer. The proxy computer can then go on to establish its own secure link with the original target server computer and retrieve the requested data on behalf of the client computer. Since the proxy computer established the secure link with the server computer, it is able to decrypt and scan for illegal content the data returned from the server computer before passing it on, again over a secure link in an encrypted form to the client computer. Thus, the data is always encrypted as it is being transferred over the network links so as to help maintain its confidentiality and yet the data is able to be scanned for illegal content before it is delivered to the client.

It will be appreciated that the first computer and the second computer between which data is being transferred via the proxy computer could take a variety of different forms, but preferred embodiments of the invention are ones in which these computers are respective ones of a client computer and a website server computer.

The data being transferred could also take a wide variety of forms, such as encrypted e-mail or the like, but the invention is particularly well suited to dealing with data in the form of secure web content.

The secure links could use many different data transfer protocols providing these protect the security of the data being transferred by encryption. However, the invention is particularly well suited to using a HTTPS secure protocols to form the network links.

The illegal content being scanned for preferably includes one or more of a computer virus, a Worm, a Trojan, a banned computer file, a banned word, a banned combination of words or a banned image. It will be understood by those in this technical art that the term illegal content does not necessarily mean that the content breaks a law, but rather than the content is categorised as undesirable, banned, unwanted by the controller of the systems concerned.

A common way in which secure links are established involves the exchange of Certificates used to authenticate associated data. The present technique can utilise this technique and reduce the impact of the system on users by providing that the proxy computer serves to issue its own Certificates to be associated with the data being transferred and the recipient computers for that data being configured to recognise the proxy computer as an authorised Certificate issuing authority.

It will be appreciated that whilst the proxy computer could be located in a variety of positions between the first and second computers, although not essential it is advantageous and fits well with other aspects of many network security environments if the proxy computer is a firewall computer.

Further aspects of the present invention also provide a method of transferring data and an apparatus for transferring data in accordance with the above described techniques.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1illustrates a known technique for exchanging data via a secure link over the Internet. A client computer2wishes to access a webpage stored on a secure web server4. As is known in Secure Socket Layer (SSL) communication, the client computer2issues a HTTPS connection request to the secure web site4. The secure website4then returns a Certificate to the client computer2. The client computer2verifies this Certificate and if this verification is successful uses the key in the Certificate to send a session specific symmetric key to the website4for use in order handling the exchange of encrypted data sent from the secure web site4to the client computer2. Further details regarding SSL communication and establishing SSL links may be found in the document “Understanding Digital Certificates and Secure Socket Layer (SSL)” produced by Peter Robinson of Entrust, Inc and available via the internet as Version 1.1 of Jan. 2001.

Whilst the above technique is good at guarding the confidentiality of the data being passed over the internet, it suffers from the disadvantage that any firewall or other such computer in the datapath is not able to scan the data being exchanged for illegal content (e.g. search within the data for malware such as viruses, worms, Trojans, etc).

FIG. 2illustrates one example of the present technique. In this example the client computer2and the secure website4exchange their data via a HTTPS proxy computer6. This proxy computer6may also serve, for example, as the firewall for a local area network to which the client computer2is attached. The proxy computer6includes a content scanner, such as scanner software which serves to detect computer viruses, Worms, Trojans, banned files, banned words, banned combinations of words, banned images and the like.

As will be seen inFIG. 2, the request for the secure HTTPS connection is redirected to the proxy computer6. The proxy computer then returns either a default Certificate issued by itself or a Certificate obtained from an organisation such as Verisign (or other Certification Authority) for the particular web site being visited. When the Certificate is passed back to the client computer2, providing the proxy is configured in the web browser of the client computer2as a Certification Authority, then the user will not be prompted to accept the Certificate as the browser already trusts the Certificate. If the proxy is not configured as a Certification Authority within the browser of the client computer2, then the user is given the option of accepting the Certificate. If the user does not accept the Certificate, then no more communication takes place over the secure connection and the process terminates. If the user accepts the Certificate, then the user is effectively confirming the proxy computer6as a trusted computer whose security they accept. The client computer2may then send a symmetric key to the proxy computer6encrypted using the public key in the Certificate. The proxy computer6decrypts the symmetric key using its private key and uses the symmetric key for further communication with the client computer2.

Once the proxy computer6has a secure connection with the client computer2, then the proxy computer6makes it own HTTPS connection request to the secure website4that the user originally wanted to connect to as was indicated in their connection request. If that secure website4does not have a valid Certificate (i.e. one produced by a recognised Certification Authority), a webpage indicating that the website4is not secure is returned to the client computer2and the process terminated. If the website computer4has a valid Certificate that is returned to the proxy computer6, then a secure connection is established, using the techniques mentioned above, between the proxy computer6and the secure website4over which encrypted data (encrypted using the symmetric key) is transferred. The encrypted data is decrypted within the proxy computer6and scanned for illegal content. The different types of legal content have been mentioned above. This type of scanner is in itself known and will not be described further herein. If illegal content is found, then this triggers an appropriate action, such as the sending of a warning webpage to the client or the issue of an alert message to a network administrator. The secure connection would also be terminated. If the content within the data scanned by the proxy computer6is all legal, then it is encrypted again and sent in encrypted form from the proxy computer6to the client computer2where it is decrypted by the client computer2for use by the user.

It will be seen that the above provides a system that serves to intercept the HTTPS negotiation and replace this with a redirect to a local secure proxy computer. This provides a secure “hop”. Thus, the client requests a secure connection to a HTTPS web server across the internet. The proxy computer serving as the firewall for the client computer intercepts this HTTPS request, does not forward it to the webserver directly, but instead performs its own negotiation with the webserver. The requested data between the webserver and the HTTPS proxy is subsequently encrypted as it passes across the internet links but is able to be decrypted within the HTTPS proxy. The HTTPS proxy then uses another secure HTTPS connection through to the client computer2and encrypts the data as it passes over this connection providing it has passed the scanning for illegal content. In this way, anti-virus and other content scanning can occur prior to the data reaching the client computer and yet at no point does unencrypted data flow over the network.

FIG. 3is a flow diagram schematically illustrating the establishment of the links. At step8the client computer2sends a HTTPS connection request to the proxy computer6. At step10the proxy computer6returns the proxy Certificate to the client computer2. At step12the client computer examines the proxy Certificate and determines whether or not it will accept this Certificate.

If the Certificate is not acceptable, then processing proceeds to step14at which a prompt to the user is displayed at the client computer2as to whether or not they wish to authorise the acceptance of the proxy Certificate. If the user does authorise the acceptance of the proxy Certificate, then step16returns processing to the main flow. Otherwise, the link establishing process terminates.

Providing the proxy Certificate has been accepted, processing proceeds to step18at which a secure conversation (link) between the client computer2and proxy computer6is established. Once this secure link has been established, then processing proceeds to step20at which the proxy computer6sends it own HTTPS connection request to the website server computer4. At step22the website server computer4returns the website Certificate to the proxy computer6. At step24the Certificate returned from the web site is examined by the proxy computer6to determine whether or not it should be accepted. If the Certificate is not accepted, then processing proceeds to step26at which a webpage is issued to the client computer2indicating that the website server4was not appropriately secure and the link establishing processes terminated. If the proxy computer6does accept the Certificate returned by the website server4, then processing proceeds to step28at which a secure conversation (link) is established between the proxy computer6and the website server4.

It will be seen from the above that providing both of the Certificates returned are accepted, then the process serves first to establish a secure link between the client computer2and the proxy computer6and then to establish a secure link between the proxy computer6and the website server computer4.

FIG. 4is a flow diagram schematically illustrating the transfer of data from a website to a client over the secure links established in accordance withFIG. 3. At step30the client computer2sends a page request to the proxy computer6. At step32the proxy computer6forwards this page request to the website server computer4. At step34the web site server computer4returns the encrypted webpage to the proxy computer6via their secure link. At step36the proxy computer6decrypts the webpage returned to it. At step38the proxy computer6then scans the decrypted webpage for illegal content, such as the various different types of illegal content previously described using a standard content scanner. If illegal content is detected, then step40directs processing to step42at which a warning webpage is sent to the client computer2instead of the requested webpage. If illegal content is not detected, then step44serves to encrypt the webpage that has been scanned using the encryption in place between the proxy computer6and the client computer2. Step46, then sends this encrypted webpage via the secure link between the proxy computer6and the client computer2. At step48, the client computer2decrypts the webpage it has received and then at step50displays this webpage to the user.

FIG. 5is a flow diagram schematically illustrating the transfer of traffic between a client and a website over the link established in accordance withFIG. 3. At step52the client computer2sends encrypted data to the proxy computer6via the secure link between the client computer2and the proxy computer6. The encrypted data being sent, could for example be form data including sensitive confidential information, such as credit card numbers and passwords. At step54, the proxy computer6decrypts the data received from the client computer2. At step56, this decrypted data is then subject to a scan for illegal content. If any illegal content is found, then step58serves to direct processing to step60at which an administrator alert message is issued for the network to which the client computer2is attached. It will be appreciated that many other different types of events may be triggered by the detection of illegal content. If illegal content is not detected, then processing proceeds to step62at which the proxy computer6encrypts the data again using the encryption required for communication between the proxy computer6and the website server computer4. This encrypted data is then sent to the web site server computer4at step64. At step66the website server computer4decrypts this data and then processes it at step68in accordance with its normal techniques.

FIG. 6schematically illustrates a general purpose computer200of the type that may be used to implement the above described techniques. The general purpose computer200includes a central processing unit202, a random access memory204, a read only memory206, a network interface card208, a hard disk drive210, a display driver212and monitor214and a user input/output circuit216with a keyboard218and mouse220all connected via a common bus222. In operation the central processing unit202will execute computer program instructions that may be stored in one or more of the random access memory204, the read only memory206and the hard disk drive210or dynamically downloaded via the network interface card208. The results of the processing performed may be displayed to a user via the display driver212and the monitor214. User inputs for controlling the operation of the general purpose computer200may be received via the user input output circuit216from the keyboard218or the mouse220. It will be appreciated that the computer program could be written in a variety of different computer languages. The computer program may be stored and distributed on a recording medium or dynamically downloaded to the general purpose computer200. When operating under control of an appropriate computer program, the general purpose computer200can perform the above described techniques and can be considered to form an apparatus for performing the above described technique. The architecture of the general purpose computer200could vary considerably andFIG. 6is only one example, e.g. a server may not have a screen and a mouse or keyboard.