Abstract:
The present invention is directed to a system and a method to facilitate remote secure access from a remote client to a non-public web server having a web browser. The process includes the steps of establishing a list of all authorized remote client users for a non-public host web server. The remote client web servers are in communication with the non-public web server. Authorized remote client user access is validated and data traffic is permitted between the remote client user and the non-public web server. Software permits remote configuration and utilization of application software which is in communication with the non-public web server.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention is directed to a method and a system to facilitate secure remote access from a remote client user to a non-public web server having a web browser in order to permit maintenance and repair.  
         [0003]     2. Prior Art  
         [0004]     Increasing amounts of time, effort and money are being spent on protecting computer networks of businesses and other organizations from external tampering and invasion. For example, a company may have multiple mainframes, personal computers, other hardware and software all linked together by a company intranet network. While various access points are sometimes utilized to permit communication outside of the internal company network, firewalls and other precautions are utilized to prevent external access to the company intranet.  
         [0005]     Oftentimes, various hardware and software incorporate a standard web server. For example, routers that route data traffic and hardware management consoles that monitor and control mainframes have web servers. A web browser is a software package that enables the user to display and interact with data hosted by web servers.  
         [0006]     Web browsers communicate with web servers primarily using the HTTP protocol which allows web browsers to submit data to web servers as well as retrieve data from them. Many browsers support a variety of URL types, including Aftp:@ for FTP and Ahttps:@ for HTTPS (an SSL encrypted version of HTTP).  
         [0007]     While there are various web servers such, as Microsoft Internet Information Server and the Apache web server, most of the common ones are readily accessible and open to outside intervention. Although web servers are easy to access, many of these hardware devices and software need to be kept private.  
         [0008]     In addition, it is recognized that it is advantageous for computer hardware and software of a business or organization to be geographically diverse. For example, while it may be economical for a company to keep all of its computer equipment at one facility, in the event of a disaster, the business is vulnerable. Accordingly, businesses often keep groups of equipment at diverse geographic locations. Maintenance and repair of equipment in multiple locations may be a challenge. Accordingly, it is a principal object and purpose of the present invention to provide authorized remote access by a client user to a non-public web server while prohibiting unauthorized access.  
         [0009]     It is a further object and purpose of the present invention to provide secure remote access to a non-public web server requiring no special software on the web server or on the remote user&#39;s web browser.  
         [0010]     It is a further object and purpose of the present invention to close all unsecured, vulnerable ports of private web browsers to unencrypted data traffic.  
         [0011]     It is a further object and purpose of the present invention to allow authorized encrypted data traffic to approved web server addresses based on encrypted user/ID password pairs.  
         [0012]     It is a further object and purpose of the present invention to protect all private web sites and web servers from unauthorized random access.  
         [0013]     It is a further object and purpose of the present invention to encrypt any and all data transferred from a remote location or from a remote client to a web server.  
         [0014]     It is a further object and purpose of the present invention to ensure the identity of a remote client before any access to a non-public web server is granted.  
         [0015]     It is a further object and purpose of the present invention to administer access to protected web servers remotely.  
         [0016]     It is a further object and purpose of the present invention to maintain all security rights and privileges to various web servers and web browsers in a central location.  
       SUMMARY OF THE INVENTION  
       [0017]     The present invention provides and facilitates secure remote access by a remote client central processing unit having a standard web browser to a non-public web server. In one embodiment of the invention, at least one remote client central processing unit having a standard browser is in communication with a non-public host web server through a public network. A security administrator central processing unit in communication with both remote client central processing unit manually manages creating, editing, and deleting user/password pairs as well as creating, editing, and deleting non-public web servers from a list.  
         [0018]     First software validates authorized remote client user access to the non-public host web server. Once authorized and connected, a list of approved non-public web servers may be presented to the remote client user.  
         [0019]     In one embodiment, second software is capable of remotely configuring and utilizing application software in the form of hardware management console software which is in communication with the non-public host web server.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0020]      FIG. 1  is a simplified diagrammatic view of an arrangement embodying a system for secure remote access to non-public private web servers as set forth in the present invention; and  
         [0021]      FIG. 2  is a diagrammatic view of the present invention showing communication between a client and multiple web servers. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0022]     The embodiments discussed herein are merely illustrative of specific manners in which to make and use the invention and are not to be interpreted as limiting the scope of the instant invention.  
         [0023]     While the invention has been described with a certain degree of particularity, it is to be noted that many modifications may be made in the details of the invention&#39;s construction and the arrangement of its components without departing from the spirit and scope of this disclosure. It is understood that the invention is not limited to the embodiments set forth herein for purposes of exemplification.  
         [0024]     Referring to  FIG. 1 , a simplified diagrammatic view of one preferred embodiment of the present invention is illustrated. A company or organization is illustrated by dashed lines  12 . The business or organization may have multiple pieces of equipment and software, such as computer terminals  14  and  16  and device  10 . In a present, preferred embodiment, the device  10  includes an emulated device controller to be described in detail herein. It will be appreciated that the invention may be employed on devices other than an emulated device controller within the teachings of the present invention. In all instances, the device  10  includes a central processing unit having a host dynamically linked library (DLL) having a library of executable functions or data, such as those that can be used by a Windows™ application.  
         [0025]     As seen in  FIG. 1 , the device  10  includes remote configuration software  18  and proprietary software  26  known as ASecure Agent@ which is described at length in Applicant&#39;s Patents U.S. Pat. Nos. 5,970,149 and 6,499,108, each of which is incorporated herein in its entirety by reference. The access rights of each client is governed by data stored on the Secure Agent device  10  to which the client is governed.  
         [0026]     All of the hardware, devices and software of the business organization  12  are linked together by an internal network  20  or networks. The business organization  12  may also include a hardware management console (HMC)  22  which is a software application running on a personal computer central processing unit that includes a keyboard and display. The HMC has a standard built-in web server  50 . The hardware management console  22  interfaces with, monitors, and controls a mainframe central processing unit  24 . The console  22  is used to display messages about the mainframe computer system.  
         [0027]     The internal network  20  is an intranet, that is, it operates within the bounds of the organization and is not generally accessible to the public and has limited connection to public communication networks.  
         [0028]     A communication path  27  provides a connection to a router  28  which routes data traffic and is interposed between a communication path  30  to a public network, such as the Internet  32 . A firewall  38  may be employed to limit access to the organization  12 .  
         [0029]     The invention also includes at least one remote client central processing unit user  40  connected to the Internet  32  via communication path  42 . The remote client user  40  includes a standard web server and web browser  44 .  
         [0030]     A security administrator  60  may be used to manage creation, editing, and deletion of user/password pairs as well as creating, editing, and deleting non-public web servers from a list.  
         [0031]     The remote client web browser  44  establishes an SSL (Secure Socket Layer) connection into a SecureAgent server  10  which challenges the remote user for their userid and password. Upon verifying these credentials against that stored within SecureAgent, a page is provided to the remote client user  40  that consists of a series of links for internally protected web servers. This page provides, therefore, a “selection list” for the remote user from which he may choose a particular connection they desire to establish. When they click on the link a more-or-less “pass through” connection is established by the device  10  to the desired target web server. Anything further received from the remote client is passed directly along to the web server  50  and anything from the web server  50  is passed directly back to the remote client.  
         [0032]     An example of the invention may be appreciated where the server device  10  has two network adapters, one of which is connected to an internal private LAN which includes the HMC, the other connected to the public internet. An internet user would not directly be able to reach the HMC but could access the SecureAgent server&#39;s adapter connected to the internet. The invention running on the device  10  would be able to accept a connection from the remote internet user, authenticate its access then “patch-panel” through to the HMC. An example in  FIG. 2  illustrates reaching protected web servers.  
         [0033]     A second example would be when there is only a single network adapter in the SecureAgent server device  10  and is connected to both the HMC and the public internet, but direct access from the internet to the HMC is prevented by a firewall. The invention would function identically.  
         [0034]     The invention is implemented on a host DLL in order to take advantage of the secure remote configuration and management it affords such as specifying the criteria for the various web servers protected by the invention and controlling user access thereto. For each protected web server, the criteria includes but is not limited to a descriptive name, its network address including port number, the security groups assigned to it to restrict user access, the TCP/IP port number used to listen to inbound SSL connections intended for it and whether it utilizes the SSL protocol. The configuration also includes the ability to manage user IDs, passwords and security groups authorizing users to access the individual web servers protected by the invention. When a user&#39;s definition includes a security group matching one defined for a protected web server then the user has the ability to connect to that server upon demand. Finally, management also includes the ability to enumerate all authorized users and, if desired, forcibly disconnect a specific remote user connection.  
         [0035]     When there are many web servers protected on different ports by the invention, it rapidly becomes desirable to provide a web page to the remote client user that affords a list of the protected web servers from which to select access. The invention provides this option to present a selection list that, when associated to the default SSL port, means the user must only know the address of the invention rather than which individual port numbers protect which individual web servers.  
         [0036]     The invention simultaneously listens for inbound user connections to one or more ports as configured. Upon a connection, it immediately passes control over to an open source Secure Socket Layer (SSL) server implementation called OpenSSL used by the invention to provide SSL support. A unique certificate and private key are provided by it and are utilized during its SSL authentication and encryption process and offer assurance to the user that the connection to the invention is secure. Once an SSL connection has been established, a unique SSL session ID is generated and associated to it.  
         [0037]     Unfortunately, SSL suffers from the problem of not feasibly assuring the web server that the connecting user has the necessary authority to access its services. To remedy this, the invention further controls each new connection by prompting for a user ID and password pair as defined to SecureAgent. Upon the remote client user&#39;s response, the information is compared against the server&#39;s user database and access either granted upon a match or disallowed if either not valid or if the user lacks sharing a security group with the protected web server. In the case of a rejection, the remote client user is provided a specific error response indicating why their access was not granted.  
         [0038]     Once a remote client user has completed both ordinary SSL authentication and the invention&#39;s additional user ID challenge, password and security group verification, the invention internally records this completed authentication state with the SSL session ID so that it knows during further accesses that access to the internally protected web server may occur.  
         [0039]     At this point, the invention establishes a connection to the private web server and becomes a gateway that simply passes data between the two systems. The connection to the remote client remains under protection of the SSL connection while the connection to the protected web server might or might not also use the SSL protocol as specified by its configuration. If the connection to the protected web server utilizes the SSL protocol then OpenSSL is also used to accomplish that connection and it performs the necessary encryption and decryption of data.  
         [0040]     The same SSL session ID will continue to be utilized for a remote user&#39;s connection to a specific protected web server. However, if the remote user decides to simultaneously access a different port on the invention, in order to access a different protected server, a different SSL session ID will be generated and used. Therefore, authentication for one protected web server does not gain access to a different protected server. The remote user must not only again provide a valid user ID and password, it must also share a security group with the other protected web server.  
         [0041]     When a remote client user ends a connection, notification is made by OpenSSL to the device and the stored SSL session ID and corresponding completed authentication state are purged. Additionally, the present invention exposes the ability to enumerate the entries in the SSL session ID cache, showing the user ID and protected server being accessed for each. If desired, an administrator may selectively disconnect any such connection.  
         [0042]     SSL certificates and corresponding private keys may be produced either by OpenSSL utilities or by third party certificate authorities, such as VeriSign.  
         [0043]     The invention may be appreciated from an example. Upon startup the invention initializes OpenSSL, providing to it a certificate file (for example, sslcert.pem) which might also contain the private key. If not then it provides to it a separate private key file (sslpvtky.pem). A pair of callbacks are at this time established for OpenSSL to call as required. The first is for when a new SSL session ID is generated and the second for when an old SSL session ID is purged.  
         [0044]     The invention next retrieves any previously specified protected server information from a configuration database and opens each specified listen port. It then listens for any incoming client connections and thereupon initializes a unique session instance for each, providing to it the accepted client socket handle and a pointer to the OpenSSL server instance.  
         [0045]     The session instance then provides the client socket handle to the OpenSSL server instance so it might negotiate a secure connection with the client after which OpenSSL calls the previously noted callback function whereby it informs the application that a new SSL session ID has become generated. The session instance is then prepared to receive data from the client, at which point a check is made as to whether it has completed user ID authentication. If not, then received client data is inspected as to whether it is a HTTP GET and, if so, a prompt is sent to the client for their SecureAgent user ID and password. If the client data inspection proves instead to be a HTTP PUT then the data is assumed to be the response to the user ID and password prompt. If they are found to be present in the data then a comparison is made against the set of user IDs and corresponding passwords stored on the invention&#39;s SecureAgent server. A match causes each of the user&#39;s assigned security groups to be compared to each of the protected server&#39;s security groups. A match of any single such compare causes an indication that authentication has been completed to be stored along with the user ID with the previously provided SSL session ID for this connection. A connection is now established to the protected server and any data received from the client is passed to it and vice versa.  
         [0046]     If the user provides an invalid user ID, incorrect password or lacks an appropriate security group then an applicable error message is provided to them.  
         [0047]     If the administrator selects the option to offer a selection list then a client connection to the default SSL port ( 443 ) is similarly authenticated but results in a list of all configured servers rather than establishing a remote connection to one of those protected servers. Clicking on any of these links connects the user back to the invention using the different indicated port.  
         [0048]     If either the client or server disconnects, then the session instance is terminated but the SSL session ID cleanup awaits either notification from the OpenSSL session ID purged callback or an administrator selecting the SSL session ID and disconnect it. Both OpenSSL and the invention have timeouts forcing stale SSL session IDs to be purged after a period of time.  
         [0049]     The invention exposes to the administrator an enumeration of its set of currently existing SSL session IDs and associated user IDs, providing the option to purge any specific connection. The invention also exposes a list of protected servers allowing additions, changes and deletions. The addition of a server causes its listen port to be included with those already opened for possible client connections while a deletion causes its listen port to be removed. Any change for a protected server definition likewise takes immediate effect. Any such modification of the list of protected servers is saved to a configuration database.  
         [0050]     Invention shutdown causes a disconnection of all current users, deletion of all session instances followed by termination of the OpenSSL server instance.  
         [0051]     It will be appreciated that the present invention provides secure access to non-public web servers without any special or proprietary hardware required by the web server or browser.  
         [0052]     Whereas, the present invention has been described in relation to the drawings attached hereto, it should be understood that other and further modifications, apart from those shown or suggested herein, may be made within the spirit and scope of this invention.