|Publication number||US6883098 B1|
|Application number||US 09/666,952|
|Publication date||19 Apr 2005|
|Filing date||20 Sep 2000|
|Priority date||20 Sep 2000|
|Publication number||09666952, 666952, US 6883098 B1, US 6883098B1, US-B1-6883098, US6883098 B1, US6883098B1|
|Inventors||John S. Roman, Brian K. Wade|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (14), Non-Patent Citations (5), Referenced by (64), Classifications (11), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention generally relates to computer systems and associated methods and more particularly to a system and associated method for protecting computer systems from unauthorized access by certain applications.
With the increasing sophistication of computer networks and the ability of the public to access private networks (e.g., through the Internet) there have been a number of recent systems and computer programs developed for protecting private networks from being improperly accessed by the public. For example, it is common to use sophisticated passwords and other security devices to prevent unauthorized access to a private network. However, the sophistication of the password and the ability to break passwords is an ever escalating “competition” which quickly renders password security applications obsolete. Therefore, password security applications require constant updating and maintenance. Further, all of the users must have a password to access the system, which limits the effectiveness of password security for Web servers.
Another such security means is known as a firewall. In one type of firewall system, the users transfer files to a firewall host, and then log into the firewall and subsequently transfer the file to the desired external party. Using a firewall prevents users for making a direct connection outside the private network and also prevents the public from reaching the private network because information can only be transferred by the firewall host. Other systems allow certain external users to “tunnel” through the firewall to allow direct access to the private network. Such systems contain high levels of security to allow the tunneling process to take place. However, firewalls and tunnels through firewalls are very cumbersome because the private network and the public need to deal with the intermediary firewall. This is a slow and cumbersome process and adds to the cost and complexity of the system.
Other systems use a proxy server to hide the identity of the private network. In such a system, communications are passed through the proxy server, which appears to the public to be the private network. However, only the proxy knows the true identity and location of the private network and the proxy does not allow the public access to the private network. As with the firewall system, the proxy system is cumbersome, expensive and requires constant maintenance.
Therefore, there is a need for a low-overhead system which limits access by an untrusted computer system to a private trusted computer system, but which simultaneously allows the trusted system full access to the untrusted system.
According to the present invention, application execution contexts within an untrusted computer system are classified as either trusted or untrusted based on distinctive application execution context names. A human administrator of the untrusted system assigns these distinctive application execution context names. The applications is the untrusted system cannot change the names of their own execution contexts (or preferably any other execution contexts in the untrusted computer system).
The untrusted application execution contexts are fenced off from certain parts of the untrusted computer system such that the untrusted application execution contexts cannot interrogate or change critical system data of the untrusted computer system.
Only applications on the untrusted computer system which execute in trusted execution contexts can initiate a connection with a trusted computer system. The trusted computer system can initiate connections with any execution context on the untrusted computer system. Only the untrusted application execution contexts on the untrusted system can initiate connections with an external computer system. The connections originating on the external system can terminate only at the untrusted system and can terminate only at untrusted execution contexts therein.
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of preferred embodiments of the invention with reference to the drawings, in which:
Referring now to the drawings, and more particularly to
To prevent this, the invention positions an untrusted computer system 11 between the trusted computer system 10 and the external system 12. The untrusted system 11 includes an operating system 14 which controls many devices such as storage device 15 (e.g., a disk drive). The untrusted system exists to host data or run applications which must be made available to external system 12.
A key feature of the invention is that the untrusted system includes some applications that run in trusted application execution contexts 13 and other applications that run in untrusted application execution contexts 16. With the invention, the untrusted application execution contexts 16 cannot initiate communications with the trusted system 10. However, trusted application execution contexts 13 can initiate connections with the trusted system 10. Programs running on trusted system 10 can initiate connections to any context or untrusted system 11.
The invention distinguishes between trusted application execution contexts 13 and untrusted application execution contexts 16 according to distinctive application execution context names. A human administrator of system 11 with operating system 14 assigns each application execution context a distinctive name, and an application running in untrusted system 11 cannot tamper with the name of any execution context (i.e., its own or any others). The creation of the distinctive names and the classification of the names as trusted or untrusted is performed with a control in the operating system 14. In one example, the prefix for the trusted names (user ids) is a specifically-chosen alphanumeric character string, (i.e., the administrator of the operating system might specify that all names beginning with the characters “SFS” are trusted).
Certain applications running on behalf of users on external system 12 are given names by a human administrator of the operating system 14 which indicate that they are running in untrusted execution contexts 16. Other applications running on behalf of trusted system 10 are given other names by the human administrator of operating system 14 which indicate that they are running in trusted execution contexts 13.
Any application which is running in a context that has been assigned a “trusted” name by the system administrator executes as a trusted application. These “trusted” contexts (user ids) are unable to communicate with the external system 12. By segregating the application contexts into trusted and untrusted, allowing only the trusted application contexts 13 to initiate connections with the trusted system 10, and allowing the external network 12 to access only the untrusted contexts 16, security is achieved.
In a preferred embodiment two distinct communications protocols are used to distinguish between requests from the external system 12 and the trusted system 10. Requests from the external system 12 use one protocol (e.g., the TCP/IP protocol). Communications to/from the trusted system 10 use a different protocol (e.g., the APPC communications protocol). In this embodiment, the operating system 14 and the storage 15 are set up such that they cannot be manipulated or administered via the TCP/IP protocol (that is, TELNET access is disabled). Therefore, the operating system 14 and storage 15 cannot be compromised by users on external system 12. However, distinct communications protocols are not required to make the invention operable. So long as the operating system can determine the origin of a request through some means (e.g., by noting the TCP/IP interface that the request came through) the invention will operate properly.
Therefore, the invention provides a method for connecting two environments where there is a trusted side 10 and an untrusted side 11 so that the trusted side 10 can have access to all of the data (i.e., the trusted network 10 itself and the untrusted system 11), but the external system 12 can access only a subset of such data (i.e., the data made available through the applications running in untrusted contexts 16).
For example, the invention is very useful where a business has an Internet web page (which would reside on the untrusted system 11) yet still wants to have the Internet web data (in addition to all of its internal business data) accessible by employees who are on the trusted system 10. In the foregoing situation, the business with the trusted system 10 would need full control over access to the trusted system 10, through conventional security measures (e.g., passwords, physical isolation, etc.).
The security of the invention is achieved by the inventive ability of the operating system 14 to decide with application execution contexts are permitted to initiate connections to the trusted system 10. The communications software on the operating system 14 is programmed so that connection attempts with the trusted system 10 cannot originate from the untrusted application execution contexts 16. As mentioned above, the operating system 14 lets connection attempts to the trusted system 10 originate only from trusted execution contexts 13. The untrusted computer system 11 has a communication software stack and operating system whose controls and configuration parameters are adequately fenced from potentially untrustable applications. In other words, the operating system and communication stack are installed and configured such that untrusted contexts do not have access to their configuration information and are not authorized to control them. This is typically done with file permissions but each operating system will have different means.
With the system described above, if a user on the trusted system 10 attempts to connect to the untrusted system 11 to access some data, the user would be communicating with a trusted application execution context 13 and the connection would be allowed (and data would flow over the connection). However, if an external user 12 (accessing untrusted system 11 via an untrusted application execution context 16) tries to initiate a connection with the trusted system 10, the connection is rejected by the operating system 14. Therefore, the invention allows connections between the trusted system 10 and the untrusted system 11 to be initiated only from the trusted system 10, or from an application running in a trusted execution context 13.
As an example, programming implementing steps 20-23 of the present invention could be added to an existing IBM VM/ESA Version 2 Release 4 operating system to yield operating system 14. In this scenario, untrusted system 11 would run the VM/ESA operating system augmented with the present invention and trusted system 10 would run the standard VM/ESA operating system without such augmentation. A networking connection between these two VM/ESA operating systems could be an existing VM/ESA Inter-System Facility for Communication (ISFC) link. When the augmented VM/ESA operating system 14 is untrusted system 11 determines that a connection is not permitted without trusted system 10 because the connection request originates from an untrusted execution context 16, operating system 14 does not let the untrusted context 16 use ISFC. However, if operating system 14 determines that a connection is permitted with trusted system 10 because the connection request originates form a trusted execution context 13, operating system 14 lets the trusted execution context 13 use ISFC to initiate Advanced Program-to-Program Communication (APPC) connection to the trusted system 10. The APPC protocol is described in IBM publications SC24-5760, “VM/ESA CP Programming Services”, and other references.
By allowing trusted application execution contexts 13 in the untrusted system 11 to initiate communications with the trusted system 10, various VM/ESA features requiring such capability, such as the Shared File System (SFS), are easily enabled. The present invention would permit SFS to initiate the connection to trusted system 10 because SFS would be running in a trusted execution context 13.
With the present invention, system administration and overhead are reduced because only one operating system on two (untrusted and trusted) computer systems are required (even though one is modified). As explained above in the “Description of the Related Art”, in order to conventionally attain the results produced by the present invention, several servers running multiple conventional operating systems would have to be utilized to ensure that users operating the untrusted system were denied access to the trusted system. Each of the servers would require more code (which slows the system down) and additional administrator time to set up the servers. Further, such a conventional system would be substantially more complicated to maintain than the present invention.
As noted above, applications running in untrusted execution contexts 16 cannot interrogate or update critical or sensitive system 11 data, such as a password file, the set of enrolled users, the list of trusted execution context names or the record of the name prefix that distinguishes trusted contexts from untrusted ones. This can be accomplished based on file permission and access schemes specific to the type of operating system 14. For example, when operating system 14 is an augmented VM/EAS operating system as explained above, applications running in untrusted execution contexts 16 are denied knowledge of and access to the disk volumes containing the CP directory, the TCP/IP communication stack configuration files, and the startup script containing the commands that activate ISFC filtering and define the trusted context name prefix. The CP directory contains the list of known users (that is, execution contexts) and their passwords. The TCP/IP communication stack configuration files list the names of the contexts that are allowed to communicate with external system 12. The startup script, run automatically by VM/ESA at startup time, contains privileged commands that activate the filtering of IFSC activity based on context name and define the name prefix that identifies trusted execution contexts.
While the invention has been described in terms of preferred embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4945468 *||1 Feb 1988||31 Jul 1990||International Business Machines Corporation||Trusted path mechanism for virtual terminal environments|
|US5713018||27 Sep 1995||27 Jan 1998||Sun Microsystems, Inc.||System and method for providing safe SQL-level access to a database|
|US5781550||2 Feb 1996||14 Jul 1998||Digital Equipment Corporation||Transparent and secure network gateway|
|US5787175||23 Oct 1995||28 Jul 1998||Novell, Inc.||Method and apparatus for collaborative document control|
|US5825877||11 Jun 1996||20 Oct 1998||International Business Machines Corporation||Support for portable trusted software|
|US5841871||18 Nov 1996||24 Nov 1998||Bull S.A.||Method for authenticating a user working in a distributed environment in the client/server mode|
|US5884024||9 Dec 1996||16 Mar 1999||Sun Microsystems, Inc.||Secure DHCP server|
|US5937159 *||28 Mar 1997||10 Aug 1999||Data General Corporation||Secure computer system|
|US6212636 *||1 May 1997||3 Apr 2001||Itt Manufacturing Enterprises||Method for establishing trust in a computer network via association|
|US6321337 *||9 Sep 1998||20 Nov 2001||Sanctum Ltd.||Method and system for protecting operations of trusted internal networks|
|US6473791 *||17 Aug 1998||29 Oct 2002||Microsoft Corporation||Object load balancing|
|US6829704 *||13 Apr 2001||7 Dec 2004||General Electric Company||Method and system to automatically activate software options upon initialization of a device|
|US6829707 *||11 Feb 2000||7 Dec 2004||International Business Machines Corporation||Method and system for downloading encrypted font scripts to a print server|
|US6829712 *||29 May 2003||7 Dec 2004||Sprint Communications Company L.P.||Object-based security system|
|1||*||An integrated management environment for network resources and services□□Bellavista, P.; Corradi, A.; Stefanelli, C.;□□Selected Areas in Communications, IEEE Journal on, vol.: 18, Issue: 5, May 2000 □□pp.: 676-685.*|
|2||*||Arsenault et al., "Trusted Network Interpretation of the TCSEC", 1987, Working Group, section 126.96.36.199, Labels.*|
|3||*||Safe virtual execution using software dynamic translation□□Scott, K.; Davidson, J.;□□Computer Security Applications Conference, 2002. Proceedings. 18th Annual, Dec. 9-13, 2002 □□pp.: 209-218.*|
|4||*||Sebes et al., SIGMA: Security for Distributed Object Interoperability Between Trusted and Untrusted Systems, 1996, IEEE, p. 158-168.|
|5||*||Secure compartmented data access over an untrusted network using a COTS-based architecture□□ Clark, P.C.; Meissner, M.C.; Vance, K.O.;□□ Computer Security Applications, 2000. ACSAC '00. 16th Annual Conference, Dec. 11-15, 2000 □□pp.: 217-223.*|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7398549||17 May 2002||8 Jul 2008||Imprivata, Inc.||Biometric authentication with security against eavesdropping|
|US7631198||8 Dec 2009||Seagate Technology||Protocol scripting language for safe execution in embedded system|
|US7673109||2 Mar 2010||Microsoft Corporation||Restricting type access to high-trust components|
|US7950021||29 Mar 2006||24 May 2011||Imprivata, Inc.||Methods and systems for providing responses to software commands|
|US8458453||4 Jun 2013||Dunti Llc||Method and apparatus for securing communication over public network|
|US8533777 *||29 Dec 2004||10 Sep 2013||Intel Corporation||Mechanism to determine trust of out-of-band management agents|
|US8719898||30 Sep 2013||6 May 2014||Citrix Systems, Inc.||Configuring and providing profiles that manage execution of mobile applications|
|US8726343||9 Aug 2013||13 May 2014||Citrix Systems, Inc.||Managing dynamic policies and settings in an orchestration framework for connected devices|
|US8745755||9 Aug 2013||3 Jun 2014||Citrix Systems, Inc.||Controlling device access to enterprise resources in an orchestration framework for connected devices|
|US8769063||3 Oct 2013||1 Jul 2014||Citrix Systems, Inc.||Policy-based application management|
|US8799994||3 Oct 2013||5 Aug 2014||Citrix Systems, Inc.||Policy-based application management|
|US8806570||3 Oct 2013||12 Aug 2014||Citrix Systems, Inc.||Policy-based application management|
|US8813179||20 Sep 2013||19 Aug 2014||Citrix Systems, Inc.||Providing mobile device management functionalities|
|US8849978||30 Aug 2013||30 Sep 2014||Citrix Systems, Inc.||Providing an enterprise application store|
|US8849979||20 Sep 2013||30 Sep 2014||Citrix Systems, Inc.||Providing mobile device management functionalities|
|US8850010||1 Oct 2013||30 Sep 2014||Citrix Systems, Inc.||Providing a managed browser|
|US8850049||20 Sep 2013||30 Sep 2014||Citrix Systems, Inc.||Providing mobile device management functionalities for a managed browser|
|US8850050||1 Oct 2013||30 Sep 2014||Citrix Systems, Inc.||Providing a managed browser|
|US8850573 *||21 Sep 2010||30 Sep 2014||Google Inc.||Computing device with untrusted user execution mode|
|US8869235||10 Oct 2012||21 Oct 2014||Citrix Systems, Inc.||Secure mobile browser for protecting enterprise data|
|US8881228||1 Oct 2013||4 Nov 2014||Citrix Systems, Inc.||Providing a managed browser|
|US8881229||3 Oct 2013||4 Nov 2014||Citrix Systems, Inc.||Policy-based application management|
|US8886925||10 Oct 2012||11 Nov 2014||Citrix Systems, Inc.||Protecting enterprise data through policy-based encryption of message attachments|
|US8887230||30 Sep 2013||11 Nov 2014||Citrix Systems, Inc.||Configuring and providing profiles that manage execution of mobile applications|
|US8893221||1 Oct 2013||18 Nov 2014||Citrix Systems, Inc.||Providing a managed browser|
|US8898732||1 Oct 2013||25 Nov 2014||Citrix Systems, Inc.||Providing a managed browser|
|US8904477||30 Sep 2013||2 Dec 2014||Citrix Systems, Inc.||Configuring and providing profiles that manage execution of mobile applications|
|US8910239||17 Sep 2013||9 Dec 2014||Citrix Systems, Inc.||Providing virtualized private network tunnels|
|US8910264||20 Sep 2013||9 Dec 2014||Citrix Systems, Inc.||Providing mobile device management functionalities|
|US8914845||17 Sep 2013||16 Dec 2014||Citrix Systems, Inc.||Providing virtualized private network tunnels|
|US8931078||17 Sep 2013||6 Jan 2015||Citrix Systems, Inc.||Providing virtualized private network tunnels|
|US8959579||30 Sep 2013||17 Feb 2015||Citrix Systems, Inc.||Controlling mobile device access to secure data|
|US8996709||1 Oct 2013||31 Mar 2015||Citrix Systems, Inc.||Providing a managed browser|
|US9043480||3 Oct 2013||26 May 2015||Citrix Systems, Inc.||Policy-based application management|
|US9053340||9 Aug 2013||9 Jun 2015||Citrix Systems, Inc.||Enterprise application store for an orchestration framework for connected devices|
|US9111105||3 Oct 2013||18 Aug 2015||Citrix Systems, Inc.||Policy-based application management|
|US9112853||1 Oct 2013||18 Aug 2015||Citrix Systems, Inc.||Providing a managed browser|
|US9137262||10 Oct 2012||15 Sep 2015||Citrix Systems, Inc.||Providing secure mobile device access to enterprise resources using application tunnels|
|US9143529||10 Oct 2012||22 Sep 2015||Citrix Systems, Inc.||Modifying pre-existing mobile applications to implement enterprise security policies|
|US9143530||10 Oct 2012||22 Sep 2015||Citrix Systems, Inc.||Secure container for protecting enterprise data on a mobile device|
|US9158895||1 Oct 2013||13 Oct 2015||Citrix Systems, Inc.||Providing a managed browser|
|US9183380||10 Oct 2012||10 Nov 2015||Citrix Systems, Inc.||Secure execution of enterprise applications on mobile devices|
|US9189645||9 Aug 2013||17 Nov 2015||Citrix Systems, Inc.||Sharing content across applications and devices having multiple operation modes in an orchestration framework for connected devices|
|US9213850||3 Oct 2013||15 Dec 2015||Citrix Systems, Inc.||Policy-based application management|
|US9215225||3 May 2013||15 Dec 2015||Citrix Systems, Inc.||Mobile device locking with context|
|US9280377||3 May 2013||8 Mar 2016||Citrix Systems, Inc.||Application with multiple operation modes|
|US9286471||10 Oct 2012||15 Mar 2016||Citrix Systems, Inc.||Rules based detection and correction of problems on mobile devices of enterprise users|
|US9355223||30 Sep 2013||31 May 2016||Citrix Systems, Inc.||Providing a managed browser|
|US9369449||30 Aug 2013||14 Jun 2016||Citrix Systems, Inc.||Providing an enterprise application store|
|US9378359||10 Oct 2012||28 Jun 2016||Citrix Systems, Inc.||Gateway for controlling mobile device access to enterprise resources|
|US9386120||13 Dec 2013||5 Jul 2016||Citrix Systems, Inc.||Single sign-on access in an orchestration framework for connected devices|
|US9392077 *||9 Aug 2013||12 Jul 2016||Citrix Systems, Inc.||Coordinating a computing activity across applications and devices having multiple operation modes in an orchestration framework for connected devices|
|US9413736||30 Aug 2013||9 Aug 2016||Citrix Systems, Inc.||Providing an enterprise application store|
|US20030177387 *||15 Mar 2002||18 Sep 2003||Cyrill Osterwalder||Secured web entry server|
|US20060236371 *||29 Dec 2004||19 Oct 2006||Fish Andrew J||Mechanism to determine trust of out-of-band management agents|
|US20060259895 *||10 May 2005||16 Nov 2006||Seagate Technology Llc||Protocol scripting language for safe execution in embedded system|
|US20070240055 *||29 Mar 2006||11 Oct 2007||Ting David M||Methods and systems for providing responses to software commands|
|US20080126740 *||7 Dec 2006||29 May 2008||Microsoft Corporation||Restricting type access to high-trust components|
|US20080127142 *||28 Nov 2006||29 May 2008||Microsoft Corporation||Compiling executable code into a less-trusted address space|
|US20080263679 *||23 Apr 2007||23 Oct 2008||Microsoft Corporation||Storing information in closed computing devices|
|US20140108538 *||9 Aug 2013||17 Apr 2014||Citrix Systems, Inc.||Coordinating a Computing Activity Across Applications and Devices Having Multiple Operation Modes in an Orchestration Framework for Connected Devices|
|US20150350005 *||29 May 2014||3 Dec 2015||Blackberry Limited||Coordinating activity views across operating system domains|
|DE112005003340B4 *||19 Dec 2005||21 Apr 2011||Intel Corporation, Santa Clara||Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten|
|WO2014058640A1 *||30 Sep 2013||17 Apr 2014||Citrix Systems, Inc.||Orchestration framework for connected devices|
|U.S. Classification||726/5, 713/151, 713/152, 713/150|
|International Classification||G06F15/00, G06F17/00, G06F15/16, G06F21/00, H04L29/06|
|20 Sep 2005||CC||Certificate of correction|
|23 Sep 2008||FPAY||Fee payment|
Year of fee payment: 4
|3 Dec 2012||REMI||Maintenance fee reminder mailed|
|18 Apr 2013||FPAY||Fee payment|
Year of fee payment: 8
|18 Apr 2013||SULP||Surcharge for late payment|
Year of fee payment: 7