Patent Publication Number: US-8997205-B1

Title: Method and apparatus for providing secure web transactions using a secure DNS server

Description:
BACKGROUND 
     1. Field of the Invention 
     Embodiments of the present invention generally relate to network security techniques and, more particularly, to a method and apparatus for providing secure domain name services. 
     2. Description of the Related Art 
     Computer users have begun to rely upon their home computers to utilize on-line banking and e-commerce services. The users of online banking and e-commerce services have become more and more concerned with computer-related viruses as well as attacks specifically focused on web browsers. Such attacks are intended to compromise sensitive and confidential information that a user provides to the banking or e-commerce website during an on-line session. 
     Most browser-related security techniques provide a blacklisting function that does not allow a browser to access websites that are on a blacklist. These blacklisted websites are generally known by an anti-virus service provider to be security risks. The anti-virus service provider provides the blacklist to the host computer system via virus protection software. The anti-virus software informs the browser of certain websites that are not to be visited because they exist to compromise sensitive and confidential information. Such blacklisting techniques require the security solution to be constantly updated in response to ever changing and different attacker mechanisms. Consequently, such blacklisting techniques do not provide a perfect solution. 
     In one form of attack on a host computer, a browser is compromised when a user enters a particular website to be visited, e.g., a banking website, and malicious software directs the browser to an unauthorized domain name services (DNS) server. The unauthorized DNS server provides an IP address to the browser for an unauthorized banking website that has the look and feel of an authentic banking website. The unauthorized website will, in all likelihood be a malicious website. Unknowingly, the user enters their username and password into an unauthorized and malicious website, compromising their security. 
     In other instances, the malicious DNS server may direct the user to an appropriate and correct web server, but the malicious DNS server monitors all communications between the host computer and the web server. In this manner, the user&#39;s confidential information that is transmitted to use the banking services such as password, user name, and the like will be compromised. 
     Therefore, there is a need in the art for a method and apparatus for providing a secure DNS server. 
     SUMMARY OF THE INVENTION 
     Embodiments of the present invention comprise a method and apparatus for providing a secure domain name services by utilizing a hypervisor to provide an isolated execution environment in which a secure browser session can be instantiated. The secure browser session utilizes a secure DNS server to provide domain name services. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
         FIG. 1  depicts a block diagram of a computer network utilizing embodiments of the present invention to provide secure domain name services (DNS) to a host computer; 
         FIG. 2  depicts a functional block diagram of a Type-1 hypervisor being used to create an isolated execution environment for an application in accordance with one embodiment of the invention; and 
         FIG. 3  depicts a flow diagram of a method of providing a secure DNS server to a host computer in accordance with one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  depicts a computer network  100  comprising a host computer  102 , a web server  104 , a secure domain name services (DNS) server  106 , and a local DNS server  108 . The host computer  102 , the web server  104 , the secure DNS server  106 , and the local DNS server  108  are coupled to one another through a network  110 . The network  110  provides digital communication services amongst the computers and servers via at least one of a local area network, wide area network, wireless network, or other Internet Protocol-based networks. For the host computer  102  to communicate with the web server  104 , the host computer  102  requires an IP address of the web server  104 . In one embodiment of the invention, this IP address is provided to the host computer  102  using an isolated execution environment to communicate with a secure DNS server  106 . 
     The host computer  102  is any computing device that is capable of supporting a browser for browsing the Internet, including a laptop computer, a desktop computer, personal digital assistants, mobile telephones, and the like. Generally speaking, the host computer  102  can be any form of computing device that utilizes domain name services to facilitate web browsing. 
     The host computer  102  comprises a central processing unit (CPU)  112 , support circuits  114 , and memory  116 . The central processing unit  112  generally comprises one or more commercially available processors, microprocessors, microcontrollers or a combination thereof. The support circuits  114  are generally well known circuits that facilitate functionality of the CPU  112 . These support circuits  114  comprise, for example, power supplies, clock circuits, cache, network interface cards, bus circuits, peripheral drivers, I/O devices, and the like. The memory  116  is any form of digital storage including for example semiconductor memory, optical memory, magnetic memory and the like. 
     In one embodiment of the invention, the memory  116  stores, for use by the CPU  112 , a host operating system  118 , applications  120  that are supported by the host operating system  118 , a hypervisor  122  for establishing an isolated execution environment (IEE), a secure operating system  124  that is executed in the IEE, secure applications  126  that are executed in the IEE, and a secure session application  128  (e.g., a secure DNS client). 
     The applications  120  comprise a browser for accessing information at web server  104 . The browser will communicate through the network  110  with a web server  104 . The browser user enters the uniform resource locator (URL) of the web server, but to communicate with the web server the URL must be mapped to an IP address. To identify the IP address of the web server on the network  110 , the browser contacts a local DNS server  108  to request an IP address for the web server  104 . It is this communication with the local DNS server  108  that can be compromised by malicious software (malware) that may reside in the memory  116 . The malicious software can redirect the request to a malicious DNS server that provide incorrect information or monitor the user information that is provided to the web server  104 . 
     In one embodiment of the invention, upon a need for use of a secure DNS server, i.e., the communication with the web server contains confidential information, the hypervisor  122  is launched to form an IEE. An operating system, such as Linux, is executed within the IEE to provide a secure operating system  124 . Upon the execution of the secure operating system  124 , various applications that require the security of the secure operating system can be launched within the IEE. 
     For example, a browser can be launched in the IEE to form a secure application  126 . The secure application (browser) can be utilized for accessing brokerage and/or banking services through the web within the IEE. To launch such services, the secure session application  128  is executed upon a specific key combination (e.g., Alt-4) or other information being entered into the host operating system  118 . When this information is entered, the secure session application  128  is instantiated. The secure session application  128  launches the hypervisor  122  to form the IEE containing the secure operating system  124  and secure applications  126  (including a secure browser). The secure browser is directed (the IEE is “hardwired”) to access only the secure DNS server  106  for DNS services. As such, when a bank URL is entered into the secure browser, the secure browser contacts the secure DNS server  106  for the bank web server IP address. In this manner, the secure session provided by the hypervisor and the secure operating system is not compromised by any local DNS server  108  that may function as a malicious DNS server. 
     In one embodiment of the invention, the hypervisor  122  is Type-1 hypervisor such as a XEN hypervisor, distributed by Citrix Systems, Inc. A Type-1 hypervisor is launched and functions on the “bare metal” of the host computer  102 . In other embodiments of the invention, the hypervisor may be a Type-2 hypervisor that operates in conjunction with and supported by the host operating system  118 . In either instance, the hypervisor provides a IEE in which the secure operating system and the secure applications can be executed without reliance on the host operating system and its applications. 
       FIG. 2  depicts a functional block diagram of an IEE established within the host computer  102  in accordance with one embodiment of the invention. In this embodiment, the IEE is launched upon a bare metal platform  200  of the host computer hardware  102  (i.e., CPU  112 , memory  116  and support circuits  114 ). The hypervisor  204  supports the user domain  206  and the secure domain  208 . The user domain  206  executes various guest applications  120  using an unmodified host operating system (a guest operating system)  118  that interact with the virtualized environment of the hypervisor  204 . Within this user domain  206 , there are conventional functional layers (not shown) that operate in a conventional manner in their interaction with the hypervisor  204 . As such, a user experiences the typical operation of a computer using a standard operating system  118  such as XP, LINUX and the like. 
     The secure domain  208  that is formed within the IEE supports at least one application  126  (e.g., a browser) as well as an operating system  124  comprising the backend virtual drivers  230  and native drivers  228  that interact with the hypervisor  204 . All communications to the hardware platform  200  are controlled by the hypervisor  204  that resides between the various domains  206  and  208 . In this manner, the secure domain can be utilized to support a secure operating system  124  and applications  126  within an IEE. The applications, including a browser  126 , communicate with a secure DNS server using a secure DNS client  210 . 
       FIG. 3  depicts a flow diagram of a method  300  of operation of the secure session application  128  that launches the IEE when needed to provide secure DNS. The method  300  begins at step  302  and proceeds to step  304 , wherein the hypervisor is launched. Typically, method  300  begins upon a specific key command being entered by the user to launch a IEE because a secure session is desired. In other embodiments, the method  300  may be launched automatically upon the entry of a specific URL into the unsecure browser running on the host operating system. When that unsecure URL is entered in that browser application, the secure session application recognizes that URL as being one that has been previously identified by the user as needing a secure environment for operation. In either instance, the method  300  launches the hypervisor to form the IEE, and at step  306 , a browser is launched in that IEE provided by the hypervisor. Once operating in the IEE, the keyboard mouse and display input/output functionality is always processed by the hypervisor. As such, any malicious software that resides within the host operating system or applications associated with the host operating system, will not be able to compromise the information that is communicated through the secure environment. 
     At step  308 , the method  300  queries whether DNS domain name services are needed, e.g., has the user entered a URL into the secure browser. If no DNS services are needed at the moment, the method  300  waits until such services are needed. Upon the need being recognized, the method  300  proceeds to step  310  wherein the secure DNS server is contacted. Typically, the secure DNS server IP address is hard coded into the secure session application software such that the method will only access the secure DNS server. Upon contact of the secure DNS server, the method  300  requests the appropriate IP address corresponding to the web server URL. 
     At step  312 , the method  300  provides the IP address to the browser within the IEE and the user begins a secure transaction. Once the secure transaction begins, the method  300  ends at step  314 . The browser then uses the IP information in a normal manner to communicate information to the web server. Since a secure DNS server provides the IP address of the web server, the address information is secure and trusted. Consequently, the user&#39;s information that is entered and directed to/from the web server is secure. 
     While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.