Abstract:
A method for limiting access to resources of a personal computer with an operating system while allowing access to information via a web browser program. The method includes running on the personal computer a locking program that modifies functions of the web browser program and functions of the operating system to disable functions that allow access to any data file in a memory of the computer other than web browser access to a specified list of URL&#39;s until an authenticating input is received by the computer. The method may further include launching the web browser program if it is not already launched. The method may further include a delay from the running of the locking program until it disables functions of the operating system and the web browser program such that disabling is commenced upon expiration of a set amount of time without keyboard or mouse input activity.

Description:
BACKGROUND  
         [0001]    Many personal computer owners wish to lock their computers against access by others when they leave the computer. Software to do so is well known but limited and is sometimes provided with popular operating systems. In typical operation of the locking software, the locking module is activated during computer start-up, upon user demand, or when there has been no user input to the computer from the keyboard or the mouse for a certain length of time. Once activated, the screen display typically shows a screen saver program comprised of one or more images or a static web page (in effect, a captured Image) which are frequently changed on the display so no one spot on a cathode ray tube (CRT) display becomes burned. Alternatively, some locking software modules cause the screen display to go blank (not using any images). Then, when a user moves the mouse or presses a key, a window is presented on the display requesting the entry of a password to unlock the computer.  
           [0002]    When the computer is locked, input from the keyboard or from the mouse causes no reaction by the computer other than displaying the window which asks for a password to unlock the computer. Generally, processes which were set to operate automatically before the computer became locked will continue and operate as intended, such as continuation of a download or upload operation that was commenced before the computer was locked or launching of an executable program on a predetermined schedule according to a time on the computer&#39;s internal clock.  
         SUMMARY OF THE INVENTION  
         [0003]    In one aspect, the invention is a novel computer locking software program that, instead of entirely locking the computer and restricting the computer&#39;s reaction to user input to merely displaying an image or unlock window which requests a password, the computer, while locked, can be used as an information kiosk displaying a web page or allowing controlled interaction with other local or remote resources (applications and hardware) through a web browser based locking mechanism. This allows the user to follow any active link on the page to any other web page or resource; or enter a URL to which the browser will be directed. Allowable resources a user may access, keyboard interaction, and function availability are controlled through settings set by a user with administrator authority. Beyond an edge of the window showing the web page, such as at the bottom edge of the display or a side edge, clickable buttons are displayed by the locking software module, one of which is an “unlock” button which, when clicked, displays a window requesting a password. Additional buttons allow the user to configure locking mechanism options and activate advanced functions.  
           [0004]    The first page that is shown when the computer is locked can be configured in the locking module so that the user cannot change it. Alternatively, that first page can be a page from a remote network server or can be a default web page resident within the user&#39;s computer which would be active if the computer is disconnected from the network. A web page can be based on any standard such as HTML, XML, ASP, PHP, etc. It might include embedded image, audio, or video files, or the web page itself can be an image, audio, or video file.  
           [0005]    In one embodiment, the user is merely able to use the mouse to move the pointer and use the left button on the mouse to click on links displayed on the web page. The user cannot enter anything through the keyboard, cannot send printer data to a printer and cannot directly access any mass storage device such as a hard drive or a floppy drive to read or write a file as selected by the user. Of course, in the computer&#39;s normal operation, it will continue to access files on the hard drive or other mass storage device as controlled by executing programs. This means that ActiveX controls and java scripts will continue to run as activated by user clicks with the mouse button while the cursor is over a hot spot on a web page. However, the locking module may be configured to prevent downloads of files to the hard disk other than the temporary downloads of ActiveX programs java scripts, and the like. The task bar and menu controls of the web browser are hidden so that the only active spots on the screen which can cause a reaction by the computer are the active links in the web page, as well as the buttons added by the locking software module, one of which is an “unlock” button which, when clicked, displays a window requesting a password. The task bar (and buttons) can be viewable or in hidden mode and the unlocking password can be set to mandatory or optional.  
           [0006]    In another embodiment, the locking software allows the user to enter letters, numbers, punctuation, spaces and tabs at the keyboard, use the backspace and delete keys for their normal editing functions, and use arrow keys and other cursor movement keys to navigate on a web page. In this embodiment, the accelerator keys, such as Ctrl-C, Shift-F10, Ctrl-P, etc. are disabled, as well as any keystroke combination that might allow a user to control any other program executing on the computer other than the web browser that is displaying the web page and the locking module that displays the unlock button. By allowing keyboard entry, this embodiment allows a user to direct the browser to any URL, use a search service, enter information at a website, and use the computer for web based email and similar text input requirements.  
           [0007]    Other embodiments of the invention are described below. The invention may be incorporated into any computer operating system or serve as a GUI (Graphical User Interface) for other client or network based applications. The invention can be utilized as a stand alone application or complimentary to other applications. 
       
    
    
     BRIEF DESCRIPTION OF THE FIGURES  
       [0008]    The features of the present invention which are believed to be novel are set forth with particularity in the appended claims. Aspects of the invention may best be understood by making reference to the following description taken in conjunction with the accompanying figures wherein:  
         [0009]    [0009]FIG. 1 shows the screen display of a typical computer locked in accordance with this invention.  
         [0010]    [0010]FIG. 2 shows the process for locking and unlocking the computer.  
         [0011]    [0011]FIG. 3 shows a process for determining support information to be displayed.  
         [0012]    [0012]FIG. 4 shows a process for determining configuration information to be displayed.  
         [0013]    [0013]FIG. 5 shows exemplary system architecture with a focus on the core code architecture. 
     
    
     DETAILED DESCRIPTION  
       [0014]    The following detailed description and the figures illustrate specific exemplary embodiments by which the invention may be practiced. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the stated claims.  
         [0015]    The invention encompasses computer methods, computer programs on program carriers (such as disks or signals on computer networks) that, when run on a computer, implement the method, and computer systems with such a program installed for implementing the method. The various embodiments of the invention may be implemented as a sequence of computer implemented steps or program modules organized in any of many possible configurations. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention.  
         [0016]    The invention may be embodied in software as an EXE file that installs on a user&#39;s computer. It provides the ability to:  
         [0017]    A. Lock the computer when no input is received for a length of time.  
         [0018]    B. Lock the computer when the computer starts.  
         [0019]    C. Let an administrator set a password.  
         [0020]    D. Let an administrator select a URL to use as the page that is displayed when the computer is locked.  
         [0021]    E. Let any user obtain technical support via a web page or e-mail.  
         [0022]    The above features may be provided in any combination. Additional alternative features are described below. The table below shows five examples which provide the above features in different combinations:  
                                                   VERSION   1   2   3   4   5                   Feature A:   Yes   Yes   Yes   Yes   Yes       Feature B:   No   No   No   Yes   Yes       Feature C:   Preset*   Yes   Yes   Yes   Yes       Feature D:   Preset*   No   Yes   No   Yes       Feature E:   Yes   Yes   Yes   Yes   Yes                          
 
         [0023]    When the software installs, a desktop icon is placed on the user&#39;s desktop. If the user steps away from their computer they can simply click on the icon to lock their screen. If they fail to do so, the lock will be activated automatically after a set number of minutes with no keyboard or mouse activity. Other versions of the software automatically lock the computer when the computer starts up. If the computer is connected to the Web (Internet) when the lock is activated, the default URL will be accessed by the computer&#39;s web browser program and the URL&#39;s web page then covers the user&#39;s screen until the unlocking password is entered. If the computer is not connected to the Web (Internet or other network) a default web page (part of the installation) is used to cover the screen. Once locked, visible buttons include: Unlock, Support, and Configure, as shown in FIG. 1. Locking or unlocking operations can also be linked, synchronized, or scheduled with external hardware or software application events.  
         [0024]    An exemplary embodiment may be coded using Visual Basic 6.0 SP4 which runs on all Windows operating systems. Alternatively, the invention may be implemented with other database programming systems providing similar functionality for any operating systems (Apple, Linux, CE, etc) running on personal computers, wireless hand held computers, and PDA devices.  
         [0025]    Technical Description of Working of the System as Implemented for Windows Operating Systems  
         [0026]    Components used other than standard windows dlls include:  
         [0027]    Microsoft WebBrowser Control  
         [0028]    Microsoft WebBrowser Customizer Sample object (WBCustomizer.dll) (included in the installation)  
         [0029]    Wininet.dll  
         [0030]    *On Startup  
         [0031]    As shown in FIG. 2, Set form and control to cover the screen, with space only for buttons, as shown in FIG. 1.  
         [0032]    Instantiate WBCustomizer object and use it to:  
         [0033]    Disable accelerator keys(Ctrl-C, Shift-F10 etc)  
         [0034]    Disable Right-click menu  
         [0035]    Disable Control-Alt-Delete and Control-Escape Keys  
         [0036]    Hide Taskbar  
         [0037]    Set window as always on top  
         [0038]    If the homepage and support page parameters are not set (first run) then  
         [0039]    Read config file (desklock.dll) to get and save parameters.  
         [0040]    If the password is not set, then  
         [0041]    Show set new password form.  
         [0042]    Check if connected to Internet (wininet.dll)  
         [0043]     If yes then  
         [0044]    download and show home page  
         [0045]     Else  
         [0046]    Show local home page  
         [0047]    *On Clicking Support  
         [0048]    As shown in FIG. 3, check if connected to Internet (wininet.dll)  
         [0049]    If yes  
         [0050]    then download and show support page  
         [0051]    Else  
         [0052]    Show local support page  
         [0053]    *On Clicking Unlock  
         [0054]    Display Password Entry Form  
         [0055]    *On Clicking Configure  
         [0056]    As shown in FIG. 4, display Configure Form and implement the following steps:  
         [0057]    Save Password frame  
         [0058]    If old password entered matches the saved password (encrypted) and the new password and confirmation of new password match then the password is saved to new password (encrypted).  
         [0059]    Else  
         [0060]    An error message is given  
         [0061]    If old password entered matches the saved password (encrypted), the Homepage URL setting is changed.  
         [0062]    Else  
         [0063]    An error message is given  
         [0064]    Password Entry Process  
         [0065]    On Entering Password  
         [0066]    If the password has not been set, then  
         [0067]    the desktop unlocks with a blank password.  
         [0068]    If the password has been set,  
         [0069]    the password is compared with the saved password (only an encrypted version of the password is saved, the actual password is not saved) and if both match then  
         [0070]    the desktop is unlocked.  
         [0071]    Else  
         [0072]    An error message is given.  
         [0073]    Unlock Process.  
         [0074]    Enable Control-Alt-Delete and Control-Escape Keys  
         [0075]    Show taskbar  
         [0076]    Disable Window always on Top  
         [0077]    Customization  
         [0078]    A Customized “Build” Process provides the ability to “brand” the software for each customer such as by changing colors, graphics, logos, etc. The final components are then assembled into a unique customer build by a compiler. Customization is typically performed on HTML and DLL files prior to running the compiler.  
         [0079]    System Architecture  
         [0080]    The system architecture is shown in FIG. 5. Some of the components shown in FIG. 5 are referenced in the following description of other features of the system. The core code components are indicated in FIG. 5.  
         [0081]    Password Management  
         [0082]    A second password level, in addition to the primary User password may be built into the software. Certain function settings may be controlled by the User, but others require the Administration password. The Administration password is encrypted during the “Build” process along with the features controlled by each respective password. Any standard encryption algorithm utility can be used to encrypt the passwords; the resulting password “hash” is placed inside the DLL file prior to running the compiler.  
         [0083]    A User&#39;s Password can be set to expire at different time intervals, requiring the user to input a new and updated password. The Administrator can adjust how many days before the password must be updated and the format of the password required, for example, all caps, lowercase, alpha-numeric combination, etc. The Administrator Password can override the User Password. Password controls are embedded into the core code, but are adjustable within the settings menu.  
         [0084]    Keyboard Management  
         [0085]    The Administrator can control which keyboard keys are disabled in the Locked mode. For example, the Administrator may wish to lock particular keys while allowing others to be fully utilized. A good example is to Disable the Alt-Ctl-Delete key combination which will turn off the entire computer. Keyboard control options are embedded into the core code, but are adjustable within the settings menu.  
         [0086]    Intrusion Monitoring Log  
         [0087]    Each User Password that is input is logged into the software Event Log, it can be accessed by the User to determine if someone attempted to enter their computer and input the wrong password. Event Logs can also be automatically transmitted to a central administrator. Logs are standard ASCII text files sent according to SMTP, SMIME, HTTP, etc. when transmitted to a server.  
         [0088]    Ability to Store Multiple URL&#39;s  
         [0089]    Using the VB database within an embodiment of the software, the Administrator or user can store multiple web pages that are accessible from a locked state and designate one particular URL as the default locking page. A pop-up list of these URL&#39;s are available to the user when the screen is locked. The software Access Control Module prevents the browser from being directed to any URL other than those in the list. Groups of URL&#39;s arranged by category can be stored remotely or locally and through the Messaging Module these URL&#39;s can be transmitted within Content Packets. URL Content Packets are standard browser based Favorites format with a folder and text structure.  
         [0090]    Managed IP Access Controls  
         [0091]    The software Access Control Module manages which local or remote network resources can be accessed from a locked state as pre-determined by the Administrator. Only certain IP servers or IP domains or networks can be accessed. For example, the web paged used in locking may work for certain links but other external links may be disabled. Access controls are embedded into the core code, but are adjustable within the settings menu. Access control is simply creating an HTTP Channel running through Specific URL filters, stored in the core code, on the server, or in a third-party Security Plug-in.  
         [0092]    Integration to Other Software Applications  
         [0093]    The Screen Locking software can be used as a “Front End” interface to other software applications that reside either locally on the user&#39;s computer or any computer on the network. For example, if a password is input into the software to unlock the screen, it can pass that information to another application which it then launches. Standard Operating Systems calls are made to executable EXE files and subsequent events are Perl, XML, or Java scripts.  
         [0094]    Integration to External Hardware  
         [0095]    When locked, the software can communicate with external hardware through standard SDK API&#39;s. For example, a biometric device like a thumb print reader. When the user places their thumb on the external hardware device it will communicate with the software to unlock the screen. This has been accomplished using standard API&#39;s between the software and various hardware devices. Hardware manufactures provide standard SDK type API&#39;s.  
         [0096]    Sound and Video Streaming Controls  
         [0097]    When locked, the software can stream audio and video files. Buttons on the bottom control bar may include: Play, Stop, Pause, Sound On/Off switch. This streaming can be live or pre-recorded segments, using standard multi-media file formats. The software may leverage the default multimedia player included in all operating systems and used by the resident web browser.  
         [0098]    To-Do Reminder List  
         [0099]    Using the embedded VB database, there is reminder and to-do list capability. A user can create a custom task and assign it a due date. On the bottom control bar and on the User&#39;s desktop an icon is displayed Green if the task date is not yet passed, or Red if the task is past due. The user can complete out and close tasks.  
         [0100]    Advanced Locking Screen Displays  
         [0101]    This feature, allows multiple URL web pages to be displayed on the Locked screen in any configuration such as split horizontally, vertically, or a four quadrant display of a separate web page in each quadrant. One web page can also be set to transition into a different web page such as a dissolve or fly off the screen in a particular direction. Screen Display options are embedded into the core code, but are adjustable within the settings menu.  
         [0102]    Content Packets, Courses, Tests, Surveys, Polls, Electronic Documents  
         [0103]    This feature allows a user to participate in E-Learning or electronic processing types of tasks at various stages. The type of task and when the user must participate is determined by the Administrator. In addition, when a user inputs information, the software can communicate with a remote IP Server to perform a process or calculation, with results transmitted back to the local software, this can be at a scheduled or real-time interval. Processes are transmitted by the Messaging Module leveraging HTTP or an operating system default email client. Each copy of the software can be serialized; which allows controlled distribution where added packets are received intelligently based on the embedded serial number. Content Packets may include raw content, calculated results, broadcast messages, or even a self-contained EXE file. Content Packets use standard SMIME or ZIP compression if needed for larger content packets.  
         [0104]    Remote Monitoring of Workstations to Server  
         [0105]    The software can communicate with a remote IP Server, sending messages from a particular workstation to the server. For Example, the workstation can detect a wrong password attempting to unlock the screen, these intrusion attempts can be transmitted as alerts to the server which can forward these messages to the system administrator. Logs and Alerts are standard ASCII Text files sent in accordance with SMTP, SMIME, HTTP, etc. when transmitted to a server.  
         [0106]    Remote Broadcasting, Server to Workstations  
         [0107]    In some embodiments, the system includes an ability to send messages from a central IP Server to a particular workstation or a group of workstations. The message can be displayed either on the control bar of the software or as an update to the Page used to Lock the screen. Broadcasts can be used in conjunction with audio or video streaming. These types of tasks may be real-time or scheduled events within the Messaging Module. Remote broadcasting can also allow an Administrator to remotely change the branding, security, and functional aspects of the installed software. Broadcasts are typically HTML or XML, within SMTP, SMIME, HTTP, etc. when transmitted to a workstation.  
         [0108]    Added Security Plug-Ins  
         [0109]    This allows a user “in a locked state” to access and control security specific software modules such as: Anti-Virus, Firewalls, Spam-Control, Pop-Up Filters, etc. which can be added or subtracted as plug-ins by Administration settings. Standard Operating Systems calls are made to executable EXE files and subsequent events are Perl, XML, or Java scripts.  
         [0110]    Anonymous Network Browsing  
         [0111]    This allows a user “in a locked state” to browse any IP network without divulging their unique IP identifiers. This leverages public domain servers on the web to filter out IP information, we added a randomization and switching algorithm to this process.  
         [0112]    Although the present invention has been described in considerable detail with reference to certain preferred embodiments, other embodiments are possible. Therefore, the spirit or scope of the appended claims should not be limited to the description of the embodiments contained herein. It is intended that the invention resides in the following claims.