Abstract:
In cross-domain transactions, a user communicates with multiple distinct domains. For example, in an authenticated online credit card purchase, the user supplies a credit card number to a merchant&#39;s web page, and is thereafter sent (via a pop-up window) to an issuing bank&#39;s access control server to provide a password to the issuing bank. The server verifies the password and returns a transaction authorization to the user (via the pop-up), who forwards the authorization to the merchant. If the user&#39;s computer includes a pop-up killer, the communication channel between the user&#39;s browser and the issuing bank (i.e., the pop-up) is eliminated, preventing authentication and transaction authorization. This patent discloses techniques for creating a simulated pop-up window that resists automatic termination by pop-up killers, so that the cross-domain transaction can proceed in spite of the pop-up killer.

Description:
[0001]    This patent claims the priority of U.S. provisional patent application No. 60/434,765 filed on Dec. 18, 2002. 
     
    
     
       FIELD  
         [0002]    This patent relates generally to facilitating cross-domain transactions in an Internet (or equivalent) environment. More specifically, this patent relates to the use of simulated pop-up windows, allowing communication with a second domain, to appear within an existing window in communication with the first domain.  
         BACKGROUND  
         [0003]    A. Cross-Domain Transactions Generally  
           [0004]    On a decentralized network, such as the Internet, users often interact with service providers across distinct web domains. A web service provider—referred to as service provider A—located at one or more distinct web domains, may offer services that are actually provided by (or at least relate to services by) another or the same service provider located in a separate web domain or domains—referred to as the service provider B. For example, a transaction between a user and service provider A to access to confidential information, to make purchases, or in still other contexts, may require identity validation to be provided by service provider B. In the Internet environment, the interaction between service provider A and service provider B occurs through a web browser interface.  
           [0005]    Online transactions between service provider A and service provider B, as described above, occur across two or more distinct web domains, and may therefore be regarded as cross-domain transactions. Since cross-domain transactions interact with two distinct web domains, the Internet web browser is required to process information within two distinct browser window entities. The browser window entities, in their conventional form, are composed of a (or primary) main window, which is in the domain of service provider A, and a pop-up window, which is in the domain of service provider B.  
           [0006]    Some drawbacks of having two (or more) distinct browser windows may include some or all of the following:  
           [0007]    1. Pop-up killer software often eliminates web browser pop-up windows—obscuring the flow of a cross-domain transaction. Further, there is currently no definitive technique for detecting pop-up killer software from within a conventional web browser, using currently available scripting languages such as JavaScript or VBScript.  
           [0008]    2. Even absent a pop-up killer, users may not notice that a pop-up window has appeared (for example, because the user&#39;s desktop settings are configured such that the pop-up appears below another window or in minimized form).  
           [0009]    3. Even if the user notices the pop-up window, the user may mistakenly interpret it as an annoying advertisement (and therefore ignore it) rather than a required part of the transaction. The user may even close the browser pop-up window entirely.  
           [0010]    4. The user (or the user&#39;s pop-up killer or other software on the user&#39;s computer) may in some other manner inhibit the flow of a cross-domain transaction.  
           [0011]    B. Operation of an Exemplary Conventional Cross-Domain Transaction Absent a Pop-Up Killer  
           [0012]    One particular example of a cross-domain transaction is Visa&#39;s 3-D secure (also known as “Verified by VISA”) online transaction, whereby Internet users use credit cards to purchase goods or services from merchants, including authenticating themselves with the bank that issued them their credit cards. Throughout the course of Visa&#39;s 3-D secure online transaction, the web browser communicates with two distinct web domains—the merchant&#39;s web domain, and the bank&#39;s web domain. In the conventional 3-D secure implementation, the user-merchant interaction occurs in the main window, and verification of cardholder identity to the bank occurs via the pop-up window.  
           [0013]    The following paragraphs illustrate in greater detail a typical conventional implementation illustrating the interaction between the user&#39;s browser and the merchant and bank computers.  
           [0014]    The user, at his/her browser (i.e., at the main browser window), visits a merchant&#39;s web page, decides to make a purchase, and securely transmits his/her payment information (e.g., credit card data) to the merchant&#39;s purchase confirmation page.  
           [0015]    Then, software at merchant&#39;s web site (or e-commerce server) queries a directory server operated by Visa (or one of its member banks) to verify that the user participates in 3D Secure protocol. Assuming the answer is yes, the directory server returns to the merchant a uniform resource locator (URL) of an access control server (ACS) of the bank that issued the user&#39;s card (the so-called issuing bank). The merchant-directory server interaction is transparent to the user, and is not directly relevant to this patent.  
           [0016]    The merchant&#39;s software then forwards a message—typically implemented using JavaScript or any other type of programming language which enables executable content to be distributed over the Internet—directing the user&#39;s browser to transfer a so-called payment request (PAReq) to the ACS. Because the PAReq is sent from the user&#39;s browser to the ACS, the ACS acquires enough location information (for example and without limitation, the IP address and port number of the user&#39;s Web browser) to be able to communicate directly with the user&#39;s browser. Browser script at the user&#39;s computer opens a browser pop-up window and establishes communication with the ACS, which transmits a request to the user&#39;s browser for an authentication password (or PIN, etc.).  
           [0017]    The user supplies the ACS with the requested password via the pop-up window. Around this time, the merchant&#39;s web site typically performs a “history back” operation that returns the user&#39;s active window to the purchase confirmation page (in the main browser window), while still maintaining the pop-up window. The history back operation tells the browser to go back one item in the history list, returning the user to the page he/she came from (the purchase confirmation page), while keeping the pop-up window viewable.  
           [0018]    After the ACS verifies the user-supplied password, it generates a message including a payer authentication response (PARes) and forwards the message to the user&#39;s browser (via the pop-up window), instructing the cardholder&#39;s Web browser to forward the PARes to the merchant. Included in the PARes is an indication whether the transaction has been verified by the ACS.  
           [0019]    The merchant then transmits transaction processing information to the bank serving its credit card transactions (the so-called acquiring bank), which forwards the information to the issuing bank to authorize the purchase. Finally, the merchant informs the cardholder (at the main browser window) that the transaction was successful.  
           [0020]    C. Impairment of an Exemplary Conventional Cross-Domain Transaction Due to a Pop-Up Killer  
           [0021]    The following paragraphs illustrate a typical scenario that may occur whereby a cross-domain transaction is inhibited by an active pop-up killer.  
           [0022]    As before, when the user clicks on the “buy” button on the merchant&#39;s purchase confirmation page, the merchant web site returns a PAReq to the user&#39;s browser so that the user can be authenticated as a precondition to continuing the transaction. Again, browser script attempts to open a browser pop-up window through which to communicate with the ACS (i.e., to receive the password request &amp; to provide the requested password).  
           [0023]    In this case, however, the pop-up killer would eliminate the pop-up window, so that the cardholder is left with only the purchase confirmation page (from the “history back” operation), without the required identity confirmation having occurred, or perhaps having been terminated prematurely.  
           [0024]    If the user does not realize why the pop-up window did not appear (i.e., due to a pop-up killer), the user may click on the buy button again, trying to complete the transaction. But each time, the result will be the same. Frustrated, the user may simply abandon the purchase.  
           [0025]    D. Mitigation Techniques  
           [0026]    One known way to mitigate this problem is for the ACS to track responses to its auto-enrollment transactions. Auto-enrollment is a procedure, initiated before or at the beginning of a transaction, when the directory server reports to the merchant that the user is not a current participant in the 3-D secure program. In that case, the user (typically through the merchant) is prompted to enroll.  
           [0027]    In one implementation of the ACS (available from Arcot Systems), when the ACS instigates the auto-enrollment sequence for an unenrolled cardholder, it tracks the result in a database. If a pop-up-killer is enabled, the ACS will receive the PAReq from the browser, and request the user&#39;s password (e.g., though a pop-up), but no response will be received at the ACS.  
           [0028]    Thus, for those auto-enrollment transactions where the ACS only receives a PAReq but does not receive any other response from the cardholder, the ACS tallies a mark on the cardholder&#39;s account. If the cardholder tallies two marks in a row, then the ACS marks the account as “hostile to auto-enrollment” and thereafter ceases instigating the auto-enrollment sequence. After a couple of attempts, the cardholder would be able to proceed with the purchase as a non-enrolled card. This is not an optimal solution because, even though the transaction ultimately proceeds, it does so without authentication (and therefore at increased risk).  
           [0029]    A better solution to the example mentioned above, would be to enable the web browser to simulate a pop-up window that resists automatic termination by pop-up killer software, and that is unlikely to be inadvertently closed, or to be misplaced, by an Internet user.  
         SUMMARY  
         [0030]    In cross-domain transactions, a user often must communicate with two distinct domains, say, service providers A and B. For example, in an authenticated online credit card purchase, the user supplies his/her credit card number to a merchant&#39;s web page (service provider A), and is thereafter sent to a third party access control server web page (service provider B) via a pop-up window to authenticate the user&#39;s identity (e.g., though a password or otherwise) to the credit card issuer. The issuer verifies the user&#39;s identity, and returns a transaction authorization to the user (via the pop-up), which then forwards the authorization to the merchant (through the main browser window).  
           [0031]    If the user&#39;s computer includes an active pop-up killer, the communication channel between the user&#39;s browser and the credit card issuer is eliminated, preventing authentication and transaction authorization.  
           [0032]    This patent discloses techniques for creating a simulated pop-up window that resists automatic termination by pop-up killers (at least as presently known in the art), so that the cross-domain transaction can proceed in spite of the pop-up killer. The simulated pop-up is not a real web browser window (i.e., it is not a separate process that exists independently of the web browser or the main browser window). Nevertheless, if desired, the pop-up window can be configured to maintain the look-and-feel of a real web browser window that interacts with the main browser window.  
           [0033]    The simulated pop-up window serves a substitute communications channel, in place of the conventional (real) pop-up window, that provides a direct connection to service provider B, so that information can flow between (i.e., to/from) the user&#39;s browser and service provider B just as if there had been an actual pop-up absent a pop-up killer.  
           [0034]    More specifically, this patent discloses (but is not limited to) three exemplary techniques for creating a simulated pop-up window: (1) through use of a web browser inline frame defined by the HTML &lt;IFRAME&gt; tag; (2) through use of regular web browser frames defined using the HTML &lt;FRAMESET&gt; and &lt;FRAME&gt; tags that may be configured to look like a distinct window; and (3) through use of a Java (or other) applet that acts like a web browser window with the characteristics of a simulated pop-up. 
       
    
    
     BRIEF DESCRIPTION OF THE FIGURES  
       [0035]    [0035]FIG. 1 conceptually illustrates the distinction between the conventional approach to cross-domain transactions, and the simulated pop-up approach of this patent.  
         [0036]    [0036]FIG. 2 illustrates one exemplary implementation of a simulated pop-up window.  
         [0037]    [0037]FIG. 3 illustrates another exemplary implementation of a simulated pop-up window. 
     
    
     DETAILED DESCRIPTION  
       [0038]    U.S. provisional patent application No. 60/434,765, filed on Dec. 18, 2002, is hereby incorporated by reference in its entirety.  
         [0039]    A. Increased Reliability Through Constrained Dependency  
         [0040]    The simulated pop-up approach to cross-domain transactions provides increased assurance, to both service provider A and service provider B, that the Internet users will be able to complete the transactions in a reliable manner. FIG. 1 conceptually illustrates the distinction between conventional and the simulated pop-up approach to cross-domain transactions.  
         [0041]    The domain squares in FIG. 1 represent the dependency of distinct web domain entities within a web browser interface. In the conventional approach closing the browser window containing content associated with (i.e., to or from) either service provider would have no effect on the browser window containing content associated with the other service provider. Hence, if a pop-up killer closes or prevents the window for service provider B, the user at the window for service provider A could be left wondering why the window for service provider B never appeared.  
         [0042]    Unlike the conventional pop-up window, a simulated pop-up is an integral part of the main web browser window, meaning that the former is the latter&#39;s direct dependent. Hence, the simulated pop-up should not be killed by pop-up killers (at least as presently known in the art), and the cross-domain transaction can proceed in spite of the pop-up killer.  
         [0043]    Even though the simulated pop-up is not a real web browser window (i.e., not a separate process that exists independently of the web browser or the main browser window), it can be configured to maintain the look-and-feel of a real web browser window that interacts with the main browser window. In any of the cases, the simulated pop-up can be implemented to include custom event handling code to mimic standard window events such as minimizing, maximizing, and closing.  
         [0044]    The simulated pop-up is configured to provide a direct connection to service provider B, so that the flows occur just as if they would have occurred with an actual pop-up. The simulated pop-up substitutes for the real pop-up as a communications channel between the user and service provider B.  
         [0045]    The following sections illustrate three exemplary embodiments of creating and displaying a simulated pop-up. All three of these exemplary embodiments are constructed using currently HTML tools, for example, those available within the HTML 4.0 protocol as specified by the W3C organization.  
         [0046]    B. First Exemplary Embodiment of a Simulated Pop-Up  
         [0047]    As a first example, a simulated pop-up may be created by a web browser inline frame using the HTML &lt;IFRAME&gt; tag. The &lt;IFRAME&gt; tag allows a frame to be created, and floated atop the main browser window, analogously to embedding an image using the &lt;IMG&gt; tag.  
         [0048]    [0048]FIG. 2 illustrates an exemplary simulated pop-up defined by an inline frame on a computer screen.  
         [0049]    The inline frame is then placed into communication with service provider B, using standard HTML techniques (similar to the conventional pop-up case) to receive information therefrom, and/or to pass information thereto.  
         [0050]    For example, if service provider A is in communication with the main browser window, then information from service provider A can be contained within a form of the main browser window—defined by the HTML &lt;FORM&gt; tag. This form might, for example, include information received from the merchant per se, or after having communicated with a third party server that verifies the user&#39;s participation in a secure credit card authentication protocol.  
         [0051]    The form contents can be posted from the main browser window to service provider B by using the inline frame as an HTML target. By establishing the inline frame as a target, frames (such as the main browser window) can post information (including services) to service provider B via the inline frame.  
         [0052]    Conversely, information (including services) from service provider B would also be made available to the user via the simulated pop-up (i.e., inline frame), and information (including services) from service provider B (e.g., a transaction authorization) could be transferred to service provider A using standard techniques (HTML, JavaScript, etc.)  
         [0053]    The inline frame can be configured to simulate the look-and-feel of a real window, by using a HTML DIV tag as its wrapper object. In one exemplary implementation, the DIV tag posses a distinct border, characteristic to most computer windows. The border is defined by the border-style property of the DIV tag. As it is contained within the DIV tag, the inline frame may be dragged around with a mouse—similarly to a real window. The exemplary DIV tag mentioned above also embeds an image of a window close button and a window title. More generally, attributes of the DIV tag allow the system designed to specify desired actions to occur based on mouseover, mouseout, keypress, keydown, keyup, and still other triggering events. Similarly, the inline frame can include custom event handling code to mimic standard window events such as minimizing, maximizing, and closing.  
         [0054]    Details and use of the &lt;IFRAME&gt;, &lt;FORM&gt;, &lt;DIV&gt; and still other HTML tags- as well as their HTML attributes that may be used to control how and where they are displayed and manipulated—are well known to those skilled in the art of HTML programming, and need not be described in greater detail herein.  
         [0055]    C. Second Exemplary Embodiment of a Simulated Pop-Up  
         [0056]    As a second example, a simulated pop-up may be created by defining a web browser page using the HTML &lt;FRAMESET&gt; tag, and specifying individual (or child) frames within the frameset using HTML &lt;FRAME&gt; tags. FIG. 3 shows the outlines of a frameset that creates a simulated pop-up within a main browser window.  
         [0057]    The simulated pop-up appears to be superimposed on top of the main browser window (as in the conventional case as well as in the case of FIG. 2). In fact, the main browser window is embedded in the same plane as the simulated pop-up. Thus, in this exemplary embodiment, the main browser window may be regarded as having a hole into which the simulated pop-up fits.  
         [0058]    Thus, the overall frameset includes certain frames defining a simulated pop-up, surrounded by other frames defining what appears to be a main browser window. The frameset of FIG. 3 creates a simulated pop-up within a main browser window using nine child frames. Four of these child frames define the main browser window, and five more define the simulated pop-up.  
         [0059]    The four child frames defining the main browser window are (proceeding clockwise from the left): (1) a predominantly vertical side frame at the left; (2) a predominantly horizontal unlabelled frame at the top right; (3) a predominantly vertical unlabelled frame at the right; and (4) a predominantly horizontal unlabelled frame at the bottom right (aligned directly under the second child frame).  
         [0060]    The five child frames defining the simulated pop-up are (proceeding clockwise from the left): (1) a vertical border at the left; (2) a horizontal title box at the top; (3) a vertical border at the right; (4) a predominantly vertical unlabelled frame at the right; and (5) a content area for the simulated pop-up at the center.  
         [0061]    Information from service provider A is contained within a form in one of the side frame windows (part of the main browser window)—again defined by the HTML &lt;FORM&gt; tag. In the exemplary implementation of FIG. 2, the form is held in the predominantly vertical side frame at the left of the simulated pop-up. As before, the form contents may be posted from the side frame holding the form to service provider B with the simulated pop-up content frame as the target.  
         [0062]    As before, the simulated pop-up allows also information (including services) from service provider B to be made available to the user, and information (including services) from the simulated pop-up to be transferred back to the main browser window.  
         [0063]    As before, this exemplary frameset contains a series of frames surrounding the simulated pop-up content frame that maintain the look-and-feel of a real window by containing graphics that mimic a distinct border and title area characteristic to most computer windows. The title area embeds an image of a window close button and a window title text. That is, the simulated pop-up can include custom event handling code to mimic standard window events such as minimizing, maximizing, and closing.  
         [0064]    Details and use of the &lt;FRAMESET&gt;, &lt;FRAME&gt;, &lt;FORM&gt; and still other HTML tags—as well as their HTML attributes that may be used to control how and where they are displayed and manipulated—are well known to those skilled in the art of HTML programming, and need not be described in greater detail herein.  
         [0065]    D. Third Exemplary Embodiment of a Simulated Pop-Up  
         [0066]    As a third example, another way of creating a simulated pop-up is to use a Java applet. The applet program is configured to create a window whose contents the applet controls within the browser main window.  
         [0067]    The applet is a program that is automatically downloaded from service provider A, and executed by the user&#39;s browser environment, when either the &lt;APPLET&gt; or &lt;OBJECT&gt; tag is provided in service provider A&#39;s web page. In one exemplary implementation, the applet program is cryptographically “signed” by a trusted third party in order to allow secure and trusted communications between the applet program and the browser environment.  
         [0068]    Information from service provider A is initially provided into the main browser window that also contains the &lt;APPLET&gt; or &lt;OBJECT&gt; tag. The window contents also include JavaScript, that communicates with the running applet, and is used to subsequently pass such information to the applet. After the information is provided, the JavaScript indicates that the applet should establish communications with service provider B.  
         [0069]    The information is sent to service provider B by the applet. More specifically, the applet posts the information using its own window (i.e., the pop-up created by the applet) as the target.  
         [0070]    As before, the simulated pop-up window allows information (including services) from service provider B to be available to the Internet user, and information (including services) from the simulated pop-up to be transferred to the main browser window.  
         [0071]    Depending on design choice, the simulated pop-up created in this fashion can be the same as (or different than) to that resulting from the &lt;IFRAME&gt; approach shown in FIG. 1. The applet&#39;s window implementing the simulated pop-up can maintain the look-and-feel of a real browser window by containing graphics that mimic a distinct border and title area characteristic to most computer windows. The simulated pop-up can also include custom event handling code to mimic standard window events such as minimizing, maximizing, and closing.  
         [0072]    E. Merchant Plug-In  
         [0073]    All of the foregoing (inline frame, frameset, and applet) techniques for creating simulated pop-ups involve code (HTML, JavaScript, etc.) that is downloaded from the merchant to the user&#39;s browser. Such code can, for example and without limitation, be deployed in the form of a merchant plug-in, or using still other techniques known to those skilled in the art. The merchant plug-in can be conveyed to the merchant through any standard technique, and can be stored on any computer-readable medium, including without limitation, floppy disks, hard disks, CDs, RAM, ROM, or the like.  
         [0074]    F. Conclusion  
         [0075]    As a matter of convenience, the techniques of this patent have been disclosed in the exemplary context of a web-based system in which the user accesses applications browser. However, those skilled in the art will readily appreciate that other user access devices may also be used. For example, certain cell phones, PDAs, and other consumer electronics devices already have the capability to access the Internet. In addition, it is expected that over time, that still other devices and appliances will also be able to access applications over the Internet. Thus, the term browser should be interpreted broadly to include any kind of interface capable of accessing information accessible over a network, rather than merely conventional PC-based browsers. Similarly, it should be appreciated that the proposed techniques will operate on any networked computer, including without limitation, wireless networks, handheld devices, personal computers and others. It should also be understood that, although the exemplary embodiments herein have been disclosed in the context of HTML and/or JavaScript, other current or future techniques could also be used. For example and without limitation, these might include XML, Macromedia&#39;s Shockwave, Macromedia&#39;s Flash, and the Curl content language.