US20020198834A1 - Method and apparatus for encouraging timely periodic payments associated with a computer system - Google Patents
Method and apparatus for encouraging timely periodic payments associated with a computer system Download PDFInfo
- Publication number
- US20020198834A1 US20020198834A1 US10/223,390 US22339002A US2002198834A1 US 20020198834 A1 US20020198834 A1 US 20020198834A1 US 22339002 A US22339002 A US 22339002A US 2002198834 A1 US2002198834 A1 US 2002198834A1
- Authority
- US
- United States
- Prior art keywords
- computer system
- payment period
- period
- determining
- password
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/403—Solvency checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Definitions
- the present invention relates to payment monitoring systems, and more particularly to encouraging timely periodic payments by automatically disabling a computer system if an periodic payment is not timely received.
- Computer systems are often purchased on time or leased over an extended period. Alternatively, computer systems are often packaged free or at a minimal cost with other products such as software licenses or with other services such as Internet services. Whether organizations collect payments for the computer system itself or for products/service packaged with the computer system, consumers often procure computer systems with little or no money down. In such cases, the organizations providing the consumers with the computer systems depend greatly upon receiving timely periodic payments from their costumers on a periodic basis in order to remain profitable. Due to their dependence on timely periodic payments, these organizations appreciate cost effective mechanisms which increase the likelihood of receiving timely periodic payments from their customers.
- the present invention addresses the above-identified need, as well as others, with a method and apparatus of automatically disabling a computer system in the event of untimely or none payment of a periodic fee.
- a method of encouraging timely periodic payments associated with a computer system includes the step of storing passwords in the computer system wherein each password is associated with a separate payment period. Another step of the method includes determining based upon the passwords stored in the computer system whether a supplied password corresponds to a current payment period. The method also includes enabling use of the computer system based upon determining that the supplied password corresponds to the current payment period.
- the computer system includes a non-volatile storage medium, a system clock, a processor, and memory.
- the non-volatile storage medium includes passwords in which each password is associated with a separate payment period, and the system clock is operable to provide a system time.
- the processor is operably coupled to the non-volatile storage medium, the system clock, and the memory.
- the memory includes instructions, which when executed by the processor cause the processor to determine based upon the system time and the plurality of passwords whether a supplied password corresponds to a current payment period.
- the instructions of the memory when executed by the processor further cause the processor to enable execution of user processes based upon determining that the supplied password corresponds to the current payment period.
- a computer readable medium for encouraging timing periodic payments associated with a computer system.
- the computer readable medium includes instructions which when executed by the computer system cause the computer system to determine based a group of passwords associated with a group of payment periods whether a supplied password corresponds to a current payment period.
- the instructions when executed by the computer system further cause the computer system to enable use of the computer system based upon determining that the supplied password corresponds to the current payment period.
- FIG. 1 shows a simplified block diagram of computer system which incorporates various features of the present invention therein;
- FIG. 2 shows a flowchart of an installation method used to install a payment assurance application upon the computer system of FIG. 1;
- FIG. 3 shows a flowchart of a login service of the payment assurance application installed on the computer system of FIG. 1;
- FIG. 4 shows a flowchart of a setup method of the payment assurance application used to configure the payment assurance application installed on the computer system of FIG. 1;
- FIGS. 5 A- 5 B shows a flowchart of a monitoring method of the payment assurance application used to monitor activities performed on the computer system of FIG. 1;
- FIG. 6 shows a flowchart of a removal method of the payment assurance application used to remove the payment assurance application from the computer system of FIG. 1.
- the exemplary computer system 100 is shown which incorporates various features of the present invention.
- the exemplary computer system 100 is generally operable to prevent use of the computer system 100 in response to non-payment or a non-timely payment of a periodic fee.
- the computer system 100 includes a processor 102 , memory 104 , a system bus 106 , controllers 108 , 110 , 112 , and 114 , devices 118 , 120 , and 122 , system BIOS 124 , and a system clock 126 .
- the processor 102 of the computer system 100 is generally operable to execute software and/or firmware routines stored in the memory 104 .
- the processor 102 controls the general operation of the computer system 100 and the devices 118 , 120 , 122 via the respective controllers 108 , 110 , 112 , and 114 .
- the processor 102 as a result of executing software and/or firmware routines of the memory 104 is operable to prevent the computer system 100 from being used if a periodic payment is missed or is paid in an untimely manner.
- the memory 104 of the computer system 100 is operable to store data and instructions used by the processor 102 in the course of ensuring timely periodic payments and in the course general execution of software applications.
- the memory 104 includes standard random access memory for storing the data and software routines needed by the processor 102 .
- the memory 104 may alternatively include other volatile memory types such as DRAM, SDRAM, and SRAM for storing data and software routines and/or non-volatile memory types such as ROMs, PROMs, EEPROMs, and flash memory for storing data and firmware routines.
- the system bus 106 is generally operable to interconnect the processor 102 , the memory 104 , and the controllers 108 , 110 , 112 , and 114 .
- the system bus 106 in the exemplary embodiment includes an address bus and data bus which enable the various components of the computer system 100 to communicate with one another.
- the mass storage device 118 is generally operable to store data and/or software routines of the computer system 100 in a non-volatile manner, and the mass storage controller 108 is generally operable to provide the processor 102 with an interface to the data and/or software routines stored by the mass storage device 118 .
- the mass storage device 118 may include various computer readable and/or writeable media devices such as hard disk drives, floppy disk drives, CD-ROM drives, DVD-RAM drives, RAID devices, and/or Disk-On Chip devices to name a few. It should be appreciated by those skilled in the art that the computer system 100 may be implemented without a mass storage device 118 and mass storage controller 108 .
- the computer system 100 may be implemented with all supported applications stored in a non-volatile memory of the memory 104 .
- the video display device 120 is operable to provide a visual display to a user of the computer system 100 , and the video controller 110 is operable to provide the processor 102 with an interface to the video display device 120 .
- the video display device 120 may include CRT displays, LCD displays, and/or LED displays.
- the input device 122 is operable to provide users with a mechanism for inputting information into the computer system 100 , and the I/O interface controller 112 is operable to provide the processor 102 with an interface to the input device 122 .
- the input device 122 may include a mouse, keyboard, touch pad, and/or touch screen to name a few types of suitable input devices.
- the system BIOS 124 provides the computer system 100 with basic input and output routines.
- the system BIOS 124 provides the computer system 100 with startup routines used to initialize hardware components of the computer system 100 .
- the system BIOS 124 provides the computer system 100 with a hardware setup program which enables a technician to setup certain hardware components of the computer system 100 such as the system clock 126 , and interface controllers for controlling floppy drives, hard drives, and CD-ROM drives.
- the hardware setup program of the system BIOS 124 provides an interface for defining from which devices the computer system 100 will attempt to boot and the order of the devices from which the computer system 100 will attempt to boot.
- the system clock 126 essentially maintains date and time information for the computer system 100 .
- the system clock 126 includes an oscillator and other hardware which in combination implement a conventional date and time clock for the computer system 100 .
- the system clock 126 typically operates from battery power so that the system clock 126 may continue to keep time even after the computer system 100 is powered off.
- the network interface controller 114 is generally operable to provide the processor 102 with an interface to devices coupled to a network (not shown) such as a LAN or the Internet.
- a network such as a LAN or the Internet.
- the network interface controller 114 may include an analog modem, an ISDN modem, a DSL interface, an Ethernet controller, and/or other wired/wireless communication interfaces.
- the computer system 100 in an exemplary embodiment executes a payment assurance application which is depicted in detail in FIGS. 2 - 6 .
- the payment assurance application configures the computer system 100 to prevent use of the computer system 100 if a periodic payment has not been made in a timely manner.
- the payment assurance application attempts to configure the exemplary computer system 100 to provide a computing environment which allows a user to use the computer system 100 with minimal interference while at the same time making it difficult for the average user to circumvent the protection provided by the payment assurance application. Similar to locks on an automobile, the obstacles presented to an individual are sufficient to deter most into compliance; however, sophisticated individuals determined to gain unwarranted access at all costs are likely to succeed in finding a way to circumvent the obstacles.
- FIG. 2 Shown in FIG. 2 is a flowchart of an exemplary installation method 200 for installing the payment assurance application upon the exemplary computer system 100 of FIG. 1.
- the installation method 200 causes the computer system 100 to copy an exemplary payment assurance application to the computer system 100 and perform some initial configuration of the payment assurance application.
- the computer system in step 202 invokes execution of an installation program stored on a computer readable medium such as a CD-ROM disc or a floppy disk.
- the computer system 100 in step 204 determines whether the payment assurance application is already installed on the computer system 100 .
- the computer system 100 may make this determination based upon several known techniques such as determining whether certain executables are available to the computer system 100 and/or determining whether certain configuration parameters are set in the computer system 100 .
- step 204 determines that the payment assurance application is already installed on the computer system 100 .
- the computer system 100 in step 206 terminates execution of the installation program and causes the computer system 100 to invoke execution of the payment assurance application.
- the computer system 100 in an exemplary embodiment invokes execution of reboot operation which causes the computer system to execute a shutdown process and a subsequent a system startup process that invokes the payment assurance application.
- the computer system in step 204 determines that the payment assurance application is not installed on the computer system 100 .
- the computer system 100 installs the payment assurance application on the computer system 100 .
- the computer system 100 in step 208 copies the payment assurance application to the computer system 100 in a persistent manner.
- the computer system 100 copies the payment assurance application to the mass storage device 118 .
- the computer system 100 may need to copy one or more files.
- the payment assurance application may be implemented as a single executable that does not require any other files, or the payment assurance application may be implemented as one or more executable files that are dynamically linked to several library files and that each rely upon various data and configuration files for proper execution.
- the installation program further causes the computer system 100 in step 210 to update configuration information so that during a system startup process the computer system 100 invokes execution of a login service provided by the payment assurance application.
- the installation program in an exemplary MicrosoftTM WindowsTM embodiment of the payment assurance application, causes the computer system 100 to add appropriate references to the payment assurance application in the “Run” key and the “RunOnce” key of the Registry Database.
- the entry in the “RunOnce” causes the computer system 100 to invoke the login service of the payment assurance application upon system startup of the computer system 100 and prevents the computer system 100 from completing the startup process until execution of the payment assurance application is terminated.
- the payment assurance application configures the computer system 100 to implement features of the payment assurance application before a user may input commands to the computer system 100 .
- the program assurance application causes the computer system 100 to disable certain keys and/or key combinations such as the “Alt-Tab”, “F6”, “Ctrl-Esc”, “Alt-F4”, and “Ctrl-Alt-Delete” which may otherwise enable a user to circumvent the program assurance application by causing the computer system 100 to switch to another executing process or causing the computer system 100 to terminate execution of the programs assurance program.
- Another advantage of causing the payment assurance application to be executed via the entries in the “Run” key and “RunOnce” key is that these entries cause the computer system 100 to execute the payment assurance application as a service.
- services are not listed by the Task Manager of MicrosoftTM WindowsTM operating systems.
- the Task Manager of the MicrosoftTM WindowsTM operating systems provides users with a interface to terminate processes; however, since the payment assurance application is executed as a non-listed service, users are prevented from simply terminating the payment assurance application via the Task Manager in order to circumvent the protections provided by the payment assurance application.
- the installation program then in step 210 causes the computer system 100 to reboot in order to force the computer system 100 through the system startup process. Due to the above installation of the payment assurance application, the computer system 100 will begin execution of the payment assurance application as part of the system startup process.
- the installation program then in step 212 causes the computer system 100 to terminate execution of the installation program and to invoke execution of the payment assurance application.
- the computer system 100 in an exemplary embodiment invokes a reboot operation that causes the computer system to terminate all processes and to subsequently invoke execution of the payment assurance application as part of a startup operation.
- the computer system 100 terminates all executing processes and then invokes a system startup process. Since the above installation of the payment assurance program configured the computer system 100 to invoke execution of the login service of the payment assurance program upon system startup, rebooting the computer system 100 in step 212 effectively invokes the payment assurance application and the protections associated with the payment assurance application.
- a technician who is configuring the computer system 100 may perform further actions in order to enhance the protection provided by the payment assurance application.
- the technician may configure the computer system 100 via the setup program of the system BIOS 124 to attempt to boot from the mass storage device 118 before attempting to boot from another device.
- the technician prevents a user from circumventing the payment assurance application by simply booting the computer system 100 from a removable media such as a floppy disk or a CD-ROM disc.
- the technician may password protect the setup program of the system BIOS 124 to prevent users from circumventing the payment assurance application by reconfiguring the computer system 100 to attempt to boot from a removable media before attempting to boot from the mass storage device 118 .
- the payment assurance application may take alternative forms which would not require installing the payment assurance application to the mass storage device 118 .
- the payment assurance application may be implemented in non-volatile memory of the computer system 100 and/or as part of the system BIOS 124 .
- the computer system 100 may not need to execute an installation program in order to install the payment assurance application since the functionality of the payment assurance application is already integrated into the hardware components of the computer system 100 .
- the computer system 100 in step 302 of FIG. 3 automatically executes a login service of the payment assurance program as part of the startup process.
- the exemplary login service of the payment assurance application causes the computer system 100 in step 304 to disable certain keys and/or key combinations of the keyboard which would enable a user to switch to another process or prematurely terminate the payment assurance program.
- the exemplary assurance application causes the computer system 100 to disable the “Alt-Tab”, “F6”, “Ctrl-Esc”, “Alt-F4”, and “Ctrl-Alt-Delete” keys and/or key combinations which may otherwise enable users to circumvent the login service of the payment assurance application by causing the computer system 100 to switch to another executing process or causing the computer system 100 to prematurely terminate the execution of the payment assurance application.
- the login service of the payment assurance application causes the computer system 100 in step 306 to display upon the video display 120 a prompt for a password.
- the computer system 100 in an exemplary embodiment displays a dialog box in which a user may type a password.
- the organization supplies the user via mail, e-mail, or some other mechanism, the password associated with the next payment period. Accordingly, if the user makes the periodic payments in a timely manner, then the user will obtain the passwords for each payment period in a timely fashion.
- the user will be effectively prevented from using the computer system 100 if the user does not have the appropriate password for the current payment period. Accordingly, if the user does not want to be prevented from using the computer system 100 , then the user will be motivated to make the period payments associated with the computer system 100 in a timely manner.
- the login service of the payment assurance application causes the computer system 100 in step 310 to determine whether the entered password corresponds to a setup password for the payment assurance application.
- the computer system 100 may utilize several known techniques for determining whether the entered password corresponds to the setup password for the payment assurance application. For example, the computer system 100 may determine whether the entered password corresponds to the setup password by comparing the entered password to a setup password that is hard-coded into the payment assurance application. Alternatively, the computer system 100 may determine whether the entered password corresponds to the setup password based upon an encrypted setup password which may be stored on the mass storage device 118 , non-volatile memory of the computer system 100 , or hard-coded into the payment assurance application.
- step 310 determines that the user entered the setup password
- the computer system 100 proceeds to step 402 of a setup method 400 depicted in FIG. 4.
- the computer system 100 in step 312 determines whether the user entered the stop program password.
- the computer system 100 may utilize several known techniques for determining whether the entered password corresponds to the stop program password for the payment assurance application. For example, the computer system 100 may determine whether the entered password corresponds to the stop program password by comparing the entered password to a stop program password that is hard-coded into the payment assurance application.
- the computer system 100 may determine whether the entered password corresponds to the stop program password based upon an encrypted stop program password which may be stored on the mass storage device 118 , non-volatile memory of the computer system 100 , or hard-coded into the payment assurance application.
- the computer system 100 in step 312 determines that the user entered the stop program password
- the computer system 100 in step 314 terminates execution of the payment assurance application.
- a user of the computer system 100 regains complete access to the computer system 100 .
- a technician which is attempting to reconfigure a computer system 100 on which the payment assurance application is installed may find it advantageous to cease execution of the payment assurance application in order to regain complete control of the computer system.
- the stop program password does not prevent the computer system 100 from executing the payment assurance application as part of the startup process. In other words, the stop program password merely terminates current execution of the payment assurance application and does not effect future execution of the payment assurance application.
- the computer system 100 in step 312 determines that the user did not enter the stop program password
- the computer system 100 in step 315 determines whether the user entered the password for the current payment period.
- the exemplary payment assurance application causes the computer system 100 to make this determination based upon the current system time and an encrypted password set stored in the Registry Database of the MicrosoftTM WindowsTM environment.
- step 315 If the computer system 100 determines in step 315 that the user did not enter the correct password for the current installment period, then the computer system 100 in step 316 updates a password counter used to track the number of incorrect passwords received by the computer system 100 since the system startup process. Based upon the password counter, the computer system 100 in step 318 determines whether the computer system 100 has received more than a threshold number (e.g. 3) of incorrect passwords. If the computer system 100 determines that not more than the threshold number of incorrect passwords have been received, then the computer system 100 returns to step 306 in order to receive another password.
- a threshold number e.g. 3
- the payment assurance application causes the computer system 100 to display a warning message in step 320 .
- the warning message in an exemplary embodiment, provides the user with an indication that the password is incorrect for the current payment period and provides the user with contact information for an organization from which the user may obtain the correct password.
- the computer system 100 in step 322 disables further use of the computer system 100 .
- the computer system 100 in an exemplary embodiment invokes a shutdown operation which causes the computer system 100 to terminate all running processes.
- the computer system 100 may utilize other techniques for disabling the computer system 100 .
- the computer system 100 may be disabled by preventing any further execution of user processes.
- step 315 determines whether the user entered the correct password for the current payment period. To this end, the computer system 100 determines based upon the received password and the encrypted password list for the computer system 100 whether the received password corresponds to the password for the last payment period. If the computer system 100 in step 324 determines that the user has made the last payment, then the computer system 100 in step 326 completes the startup process and invokes execution of the program removal method 600 depicted in FIG. 6.
- the payment assurance application causes the computer system 100 in step 328 to complete the system startup process and invoke a monitoring service of the payment assurance application.
- the computer system 100 in an exemplary embodiment updates the “Run” key of the Registry Database to ensure that “Run” key of the Registry Database includes a proper reference to invoke the monitoring service of payment assurance application.
- the computer system 100 terminates the current execution of the payment assurance application in order to enable the computer system 100 to complete the system startup procedure. Termination of the payment assurance application causes the computer system 100 to delete the reference to the login service of the payment assurance application from the “RunOnce” key of the Registry Database.
- the computer system 100 invokes execution of the monitoring service of the payment assurance application depicted in FIGS. 5 A- 5 B upon termination of the login service.
- FIG. 4 there is depicted a flowchart for a setup method 400 implemented by the computer system 100 in response to determining in step 310 that the setup password was received.
- the computer system 100 during the setup method 400 provides a technician with a graphical user interface that enables the technician to configure the computer system 100 for a particular payment schedule.
- the computer system 100 in step 402 determines whether the setup program is available.
- the payment assurance application is pre-configured to execute the setup program from a particular location on a floppy drive. Accordingly, the computer system 100 determines whether the setup program is accessible from the particular location.
- the computer system 100 determines that the setup program is not accessible, then the computer system 100 in step 404 displays a warning message that indicates the user performed a prohibited action. After displaying the warning message for a few seconds, the computer system 100 in step 406 disables use of the computer system 100 . To this end, the computer system 100 in an exemplary embodiment invokes a shutdown operation which causes the computer system 100 to terminate all executing processes.
- the computer system 100 determines in step 402 that the setup program is accessible, then the computer system 100 in step 408 invokes execution of the setup program.
- the program assurance application introduces additional obstacles for a user who is intent on circumventing the payment assurance application.
- a user intent on circumventing the payment assurance application via the setup program would need not only the correct setup password but would also need a copy of the setup program.
- the computer system 100 in step 410 provides a graphical user interface from which a technician may request the computer system 100 to clear any prior password lists installed on the computer system 100 .
- the computer system 100 may detect whether the technician has activated a “Clear Password” button of the graphical user interface and clear any encrypted passwords lists by deleting appropriate keys from the Registry Database of the computer system 100 .
- the computer system 100 then in step 412 obtains information concerning the payment schedule.
- the computer system 100 provides a graphical user interface from which a technician may define the length of the payment schedule (e.g. 36 months, 102 weeks, etc.); the grace period for receiving each periodic payment (e.g. 10 days); the date the first payment is due (e.g. Jan. 1, 2000); and the day each recurring payment is due (e.g. every Friday, the first of the month, the fifth of the month, etc.).
- the computer system 100 in step 414 obtains a unique identifier for the computer system 100 being configured.
- the computer system 100 in an exemplary embodiment provides a graphical user interface from which a technician may enter a unique identifier such as the customer's telephone number.
- a unique identifier such as the customer's telephone number.
- the computer system 100 in step 416 stores the collected information in a secure and persistent manner.
- the computer system 100 in an exemplary embodiment encrypts the collected information with the Blowfish encryption algorithm and stores the encrypted information in keys of the Registry Database that is stored on the mass storage device 118 .
- the computer system 100 alternatively may encrypt the collected information with other algorithms and store the collected information on other non-volatile media such as EEPROMs or flash memory devices.
- the computer system 100 may store the collected information in a non-encrypted manner in files that are in accessible to users of the computer system 100 .
- the computer system 100 in step 418 After storing the collected information, the computer system 100 in step 418 generates a password list for the computer system 100 and saves the password list in a persistent manner. More specifically, the computer system 100 in an exemplary embodiment generates a different password for each payment period and three additional date passwords that enable a user to update the system clock 126 of the computer system 100 , and stores the generated password list in a file on the mass storage device 118 . Then, the computer system 100 in step 420 displays upon the video display 120 each password of the generated password list. As a result of displaying the password list, the technician may visual verify that appropriate passwords were generated for the computer system 100 .
- the computer system 100 in step 422 encrypts each generated password with an encryption algorithm such as the DES algorithm, the IDEA algorithm, the RC4 algorithm, or the Blowfish algorithm, and stores the encrypted password list in a persistent manner.
- the computer system 100 stores the encrypted password list in CLSID keys of the Registry Database without associating meaningful descriptions to the keys. Since the Registry Database typically includes a large number of CLSID keys without highly meaningful descriptions, users in search of the passwords will have a difficult time identifying which CLSID keys of the Registry Database store the encrypted password list for the computer system 100 . Moreover, since the passwords are stored in CLSID keys in an encrypted manner, average users would find it very difficult to decrypt the passwords even if they were able to determine in which CLSID keys the encrypted passwords were stored.
- an encryption algorithm such as the DES algorithm, the IDEA algorithm, the RC4 algorithm, or the Blowfish algorithm
- the computer system 100 in step 424 prompts the technician via the graphical user interface to indicate whether the computer system 100 should print the password list or save the password list to disk. If the computer system 100 determines in step 426 that the technician chose to have the password list printed, then the computer system 100 in step 428 provides the technician with an interface for choosing a particular printer and causing the selected printer to print the password list along with the unique computer name assigned to the computer system 100 . In response to choosing a particular printer, the computer system 100 in step 430 prints the password list for the computer system 100 along with the unique identifier assigned to the computer system 100 .
- the computer system 100 in step 426 determines that the technician chose to have the password list saved to disk
- the computer system 100 in step 432 provides the technician with a graphical user interface for defining a path and a filename to which the computer system 100 is to save the password list and unique identifier for the computer system 100 .
- the computer system in step 434 saves the password list and unique identifier to the a file having the defined filename at a location defined by the path. Saving the password list and unique identifier to disk facilitates additional information retrieval and security functionality not provided by printing the password list and unique identifier.
- saved password lists and associated identifiers may be integrated with a database system to provide quick retrieval of passwords for a large inventory of computer systems.
- the saved password lists may be encrypted and password protected in order to secure access to the password lists.
- the computer system 100 in step 436 removes the un-encrypted password list from the computer system 100 . More specifically, the computer system 100 in an exemplary embodiment deletes a file containing the un-encrypted password list from the computer system 100 in such a manner which prevents undelete utilities from recovering the file. Removing the un-encrypted password list from the computer system 100 prevents users from simply locating and reading the un-encrypted password list in order to obtain the proper password for each payment period of the payment schedule.
- the computer system 100 then in step 438 tests the integrity of the computer system 100 and the configuration of the payment assurance application. To this end, the computer system 100 in an exemplary embodiment tests the integrity of the mass storage device 118 , the integrity of the Registry Database, and the integrity of the decryption algorithms. For example, the computer system 100 in an exemplary embodiment verifies that the encrypted passwords can be successfully retrieved from the Registry Database that is stored on the mass storage device 118 and that the retrieved passwords can be successfully decrypted.
- the computer system 100 in an exemplary embodiment causes the first password to be displayed upon the video display 120 in both its encrypted form and its decrypted form so that the technician configuring the computer system 100 may make a visual verification that the computer system 100 can successfully retrieve and decrypt passwords of the password list.
- the computer system 100 then in step 440 disables removal of the payment assurance application for the computer system 100 .
- the login service and monitoring service are implemented with a single executable file.
- the computer system 100 either is executing the executable file for the payment assurance program or is not operable to receive user input.
- MicrosoftTM WindowsTM operating systems do not allow users to delete files which are currently being accessed by the operating system such as the executable file for the payment assurance program. Accordingly, since from the users standpoint, the computer system 100 is constantly executing the executable file for the payment assurance application, the MicrosoftTM WindowsTM operating systems inherently prevents the user from removing the executable file for the payment assurance application from the mass storage device 118 .
- a user may, however, attempt to reformat the mass storage device 118 in order to remove the payment assurance application from the mass storage device 118 .
- the computer system 10 disables the format command for MS-DOS commandline of the MicrosoftTM WindowsTM operating system.
- the computer system 100 encrypts the executable file of the MS-DOS format command, renames the encrypted executable file to a non-descriptive name, and moves the renamed and encrypted executable file to a non-standard location on the mass storage device 118 .
- the combination prevents a user of the computer system 100 from circumventing the payment assurance application by reformatting the mass storage device 118 while at the same time permitting the user to format other storage media such as floppy disks or a second hard drive.
- the computer system then in step 442 requests the technician to enter contact information such as a business name and phone number and saves the received contact information in a persistent manner.
- the payment assurance application utilizes the supplied information to provide a user of the computer system 100 with contact information in case the user encounters problems with the computer system 100 , needs to obtain a password, has questions concerning the computer system 100 , or has questions concerning the payment schedule.
- step 444 the computer system 100 terminates execution of the setup program and forces execution of the payment assurance application.
- the computer system 100 in an exemplary embodiment invokes execution of a reboot operation which causes the computer system 100 to terminate all executing processes and to invoke the payment assurance application as part of a subsequent startup operation.
- the computer system 100 executes a shutdown process which causes the computer system 100 to terminate execution of all executing processes and to subsequently invoke a system startup process. Accordingly, after the computer system 100 completes execution of the setup method 400 , the computer system 100 will automatically execute the payment assurance program in accordance with the supplied payment schedule information and associated password list.
- monitoring method 500 which the computer system 100 executes on a periodic basis such as every 500 milliseconds.
- monitoring method 500 may be implemented in various other manners which may include multiple interrupt service routines, polling routines, hardware timers, and/or software timers.
- an exemplary embodiment of the monitoring method 500 utilizes a 500 millisecond timer that upon expiration causes the computer system 100 to verify a first set of conditions and a 1000 millisecond timer that upon expiration causes the computer system 100 to verify a second set of conditions.
- the computer system 100 in step 502 Upon each periodic execution of the monitoring method 500 , the computer system 100 in step 502 ensures that execution of the payment assurance application will be invoked as part of the system startup process. To this end, the computer system 100 in an exemplary embodiment updates the “Run” and “RunOnce” keys of the Registry Database with entries that properly reference the monitoring service and login service of the payment assurance application, respectively. In this manner, the computer system 100 effectively prevents a user from configuring the computer system 100 to not invoke execution of the payment assurance application upon system startup.
- the computer system 100 updates the “Run” and “RunOnce” keys of the Registry Database on a relatively short interval such as 500 millisecond, even if the user were to delete or alter the entries of the Registry Database the periodic execution of the monitoring method 500 would effectively update the “Run” and “RunOnce” entries to proper values before the user could terminate the monitoring service by restarting or powering-down the computer system 100 .
- the computer system 100 in an exemplary embodiment performs several tests to ensure that the user has not attempted to change the system clock 126 of the computer system 100 .
- the computer system 100 in step 504 determines base upon the date as indicated by the system clock 126 and a date stamp associated with the program assurance application whether the system clock 126 has been set backwards. More specifically, the computer system 100 determines that the system clock 126 has been set backwards if the date indicated by the system clock 126 is earlier then the date indicated by the date stamp of the program assurance application.
- step 504 determines in step 504 that the system clock 126 has been set backwards
- the computer system in step 508 displays a warning message that indicates changes to the system clock 126 are prohibited and provides contact information for an organization from which a password that re-enables the computer system 100 may be obtained.
- the computer system 100 in step 510 prompts the user for a password. If the computer system 100 determines in step 512 that a user entered a proper date password, then the computer system 100 in step 514 updates a confirmed system time for the computer system 100 , disables the entered date password from being used again, and exits the monitoring method 500 until the next periodic execution of the monitoring method 500 . To this end, the computer system 100 determines that the received password is a proper date password if the entered password corresponds to a non-disabled date password of the password list.
- the computer system 100 upon determining that the received password is a proper date password, sets a flag associated with the date password that disables the date password from being used again. Furthermore, the computer system 100 in an exemplary embodiment stores the confirmed system time of the system clock 126 in a key of the Registry Database in order to maintain a persistent copy of the last confirmed system time.
- step 516 determines whether the user entered the stop password. If the computer system 100 determines that the user entered the stop password, then the computer system 100 in step 518 terminates the current execution of the program assurance application in a manner similar to above step 314 of FIG. 3.
- the computer system 100 determines in step 516 that the user did not enter the stop password, then the computer system 100 in step 520 determines whether more than a threshold number (e.g. 3) of invalid passwords have been entered. If the computer system 100 determines that more than the threshold number of invalid passwords have not been entered, then the computer system 100 in step 522 updates a password counter, displays a warning that indicates the last password was invalid, and returns to step 510 in order to receive another password from the user. However, if the computer system 100 determines that more than the threshold number of invalid passwords have been entered, then the computer system 100 in step 524 displays a warning message that indicates the password was invalid, and disables use of the computer system 100 . To this end, the computer system 100 in an exemplary embodiment invokes execution of a system shutdown process that causes the computer system 100 to terminate execution of all executing processes.
- a threshold number e.g. 3
- the MicrosoftTM WindowsTM environment provides various utility programs for setting the system clock 126 . A user could potentially circumvent the protection of the payment assurance application by setting the system clock 126 backwards via these configuration utilities. Whenever one of the MicrosoftTM WindowsTM utility programs changes the system clock 126 , a MicrosoftTM WindowsTM API message is generated which informs other applications of the change to the system clock 126 . Accordingly, if the computer system 100 in step 504 determined based upon the date stamp that the system clock 126 had not been set backwards, then the computer system 100 in step 526 further determines whether the system clock 126 had been changed based upon MicrosoftTM WindowsTM API messages generated by the configuration utilities.
- step 526 determines in step 526 that the system clock 126 has changed, then the computer system 100 in step 528 displays a warning that indicates changes to the system clock 126 are prohibited.
- the computer system 100 determines whether the system clock has been set backwards by more than a threshold amount (e.g. 15 minutes) within a predetermined period (e.g. 24 hours). To this end, the computer system 100 determines whether the time difference between the current system time as indicated by the system clock 126 and the last confirmed system time is greater than the threshold amount remaining for the predetermined period.
- a threshold amount e.g. 15 minutes
- a predetermined period e.g. 24 hours
- step 530 determines that the system clock 126 has been set backwards by more than the threshold amount within the predetermined period, then the computer system 100 proceeds to step 508 in order to display a warning and receive a password from the user. However, if the computer system 100 determines that the system clock 126 has not been set backwards by more than the threshold amount within the predetermined period, then the computer system 100 in step 532 updates the threshold amount remaining for the predetermined period and exits the monitoring method 500 until the next periodic execution of the monitoring method 500 . To this end, the computer system 100 in an exemplary embodiment subtracts the time difference from the threshold amount remaining, encrypts the obtained difference, and stores the encrypted difference in a non-volatile manner. More specifically, the computer system 100 stores the encrypted difference in a key of the Registry Database for future access by the computer system 100 .
- the computer system 100 After verifying the payment assurance application will be invoked upon system startup and the system clock 126 has not been changed by the user, the computer system 100 in step 533 updates the confirmed system time to the system time indicated by the system clock 126 . More specifically, the computer system 100 in an exemplary embodiment updates the confirmed system time in a persistent manner by storing the system time in a key of the Registry Database.
- the computer system 100 determines whether the date stamp associated with the payment assurance application needs to be updated. In particular, if the confirmed system time indicates a date later than the date stamp for the payment assurance application, then the computer system 100 in step 535 updates the date stamp for the payment assurance application. More specifically, the computer system 100 in an exemplary embodiment updates the data stamp by storing the date indicated by the confirmed system time on the mass storage device 118 in a header portion of an executable file used to implement the payment assurance application.
- the computer system 100 resets the time amount remaining for the predetermined period and the pre-notification counter.
- the computer system 100 provides a pre-notification warning once each day the computer system 100 is within a pre-notification period. Accordingly, by resetting the pre-notification counter upon determining the date has changed ensures that the pre-notification warning message is display only once a day.
- the computer system 100 in an exemplary embodiment allows the system clock 126 to be set backwards by no more than a threshold amount within a predetermined period of a day. Accordingly, resetting the time amount remaining upon determining that the date has changed ensures that the system clock 126 may be set backwards by the threshold amount each predetermined period.
- the predetermined period and the pre-notification period may be implemented with separate and different time intervals. Furthermore, those skilled in the art in light of the description herein may implement other time intervals for the predetermine period and the pre-notification using known techniques and without undue experimentation.
- the computer system 100 determines whether the grace period has passed. To this end, the computer system 100 determines based upon the entered payment password, the stored payment schedule information, and the system clock 126 whether the grace period has passed. For example, if the stored payment schedule information defines monthly payments due on the 1 st of each month and a 10 day grace period, then the computer system 100 would determine the grace period had passed in response to the user entering the correct payment password for March 1999 and the system clock 126 indicating the date as Apr. 11, 1999. If the computer system 100 determines that the grace period has passed, then the computer system 100 in step 538 displays a warning message that indicates the current installment period is past due and provides contact information of the organization to which payment is to be made. After displaying the warning message for a few seconds, the computer system 100 in step 540 disables use of the computer system 100 .
- the computer system 100 in step 542 determines whether the grace period has been entered. To this end, the computer system 100 determines based upon the entered payment password, the stored payment schedule information, and the system clock 126 whether the grace period has been entered. For example, if the stored payment schedule information defines weekly payments due on Sunday of each week and a 10 day grace period, then the computer system 100 would determine the grace period had been entered in response to the user entering the correct payment password for the week beginning Sunday, Oct. 10, 1999 and the system clock 126 indicating the date as Oct. 18, 1999. If the computer system 100 determines that the grace period has been entered, then the computer system 100 in step 544 displays a warning message that indicates the current periodic payment is past due and provides contact information for the organization to which payment is to be made.
- the computer system 100 determines whether the pre-notification period (e.g. 3 days before payment due date) has been entered. To this end, the computer system 100 determines based on the entered payment password, the stored payment schedule information, and the system clock 126 whether the pre-notification period has been entered. For example, if the stored payment schedule information defines monthly payments due on the first of each month and a 3 day pre-notification period, then the computer system 100 would determine that the pre-notification period had been entered in response to the user entering the correct password for the month of September and the system clock 126 indicating the date as Sep. 30, 1999.
- the pre-notification period e.g. 3 days before payment due date
- the computer system 100 determines based upon a pre-notification counter and the system clock 126 whether the a pre-notification warning message has been displayed for the current date. If the computer system 100 determines that the pre-notification warning has already been displayed for the current date, then the computer system 100 exits the monitoring method until the next periodic execution of the monitoring method 500 . However, if the computer system 100 determines that the pre-notification warning has not been display for the current date, then the computer system 100 in step 550 displays a warning message that indicates the date by which the next periodic payment is due. The computer system then in step 552 updates the pre-notification counter in order to prevent the pre-notification warning from being displayed again for the current date.
- the computer system 100 executes the monitoring method 500 on a periodic basis, the computer system 100 in an exemplary embodiment causes the grace period warning to be displayed each time the computer system 100 periodically executes the monitoring method 500 . If the computer system 100 is configured to execute the monitoring method on a relatively short interval such as 500 millisecond, then the computer system 100 will essentially cause the grace period warning to be continually displayed once the grace period is entered. It should be appreciated, however, that the grace period warning may be implemented in a less intrusive manner similar to the pre-notification warning by utilizing a grace period counter that causes the grace period message to be displayed less frequently such as once a day, once an hour, or once every 15 minutes.
- a program removal method 600 is illustrated in FIG. 6.
- the computer system 100 executes the program removal method 600 in response to receiving the payment password for the last payment period.
- the computer system 100 in step 602 re-enables mechanisms which were previously disabled in order to prevent the user from removing the payment assurance application from the computer system 100 .
- the computer system 100 in an exemplary embodiment re-enables the MS-DOS format command.
- the computer system 100 un-encrypts the format command, renames the format command to its standard filename, and stores the un-encrypted and properly named format command in its standard location on the mass storage device 118 .
- the computer system 100 removes stored configuration information for the payment assurance application from the computer system 100 .
- the computer system 100 removes the password lists, the payment schedule information, the confirmed system time information, and mechanisms for ensuring execution of the payment assurance application upon startup.
- the computer system 100 in an exemplary embodiment removes the references to the payment assurance application from the “Run” and “RunOnce” keys of the Registry Database.
- the computer system 100 in the exemplary embodiment removes all other keys of the Registry Database associated with the payment assurance applications such as keys used to store the password lists, confirmed system time, and payment schedule information.
- the computer system 100 then in step 606 removes all files associated with the payment assurance application from the computer system 100 .
- the computer system 100 essentially deletes the executable file used to implement the payment assurance application from the mass storage device 118 .
- the computer system 100 in step 608 invokes a reboot operation in order to cause the computer system 100 to terminate all executing processes and to complete the removal of the payment assurance program from the computer system 100 .
- the exemplary embodiment of the payment assurance application automatically removes itself from the computer system 100 upon entering the password associated with the last payment which is advantageous for purchase-over-time agreement.
- the payment assurance application may be implemented to automatically disable the computer system 100 after the last day of the payment schedule which may be advantageous for lease arrangements where the user is to return the computer system 100 at the termination of the lease.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
A method of encouraging timely period payments that are associated with a computer system includes the step of storing passwords in the computer system wherein each password is associated with a separate payment period. Another step of the method includes determining based upon the passwords stored in the computer system whether a supplied password corresponds to a current payment period. The method also includes enabling use of the computer system based upon determining that the supplied password corresponds to the current payment period. The method may further include the step of disabling use of the computer system based upon determining that the supplied password does not correspond to the current payment period.
Description
- The present invention relates to payment monitoring systems, and more particularly to encouraging timely periodic payments by automatically disabling a computer system if an periodic payment is not timely received.
- Computer systems are often purchased on time or leased over an extended period. Alternatively, computer systems are often packaged free or at a minimal cost with other products such as software licenses or with other services such as Internet services. Whether organizations collect payments for the computer system itself or for products/service packaged with the computer system, consumers often procure computer systems with little or no money down. In such cases, the organizations providing the consumers with the computer systems depend greatly upon receiving timely periodic payments from their costumers on a periodic basis in order to remain profitable. Due to their dependence on timely periodic payments, these organizations appreciate cost effective mechanisms which increase the likelihood of receiving timely periodic payments from their customers.
- Accordingly, a need exists for a cost effective mechanism which increases the likelihood of receiving in a timely manner periodic payments associated with a computer system.
- The present invention addresses the above-identified need, as well as others, with a method and apparatus of automatically disabling a computer system in the event of untimely or none payment of a periodic fee. In accordance with one embodiment of the present invention, there is provided a method of encouraging timely periodic payments associated with a computer system. The method includes the step of storing passwords in the computer system wherein each password is associated with a separate payment period. Another step of the method includes determining based upon the passwords stored in the computer system whether a supplied password corresponds to a current payment period. The method also includes enabling use of the computer system based upon determining that the supplied password corresponds to the current payment period.
- Pursuant to another embodiment of the present invention, there is provided a computer system that encourages timely periodic payments. The computer system includes a non-volatile storage medium, a system clock, a processor, and memory. The non-volatile storage medium includes passwords in which each password is associated with a separate payment period, and the system clock is operable to provide a system time. The processor is operably coupled to the non-volatile storage medium, the system clock, and the memory. The memory includes instructions, which when executed by the processor cause the processor to determine based upon the system time and the plurality of passwords whether a supplied password corresponds to a current payment period. The instructions of the memory when executed by the processor further cause the processor to enable execution of user processes based upon determining that the supplied password corresponds to the current payment period.
- Pursuant to a further embodiment of the present invention, there is provided a computer readable medium for encouraging timing periodic payments associated with a computer system. The computer readable medium includes instructions which when executed by the computer system cause the computer system to determine based a group of passwords associated with a group of payment periods whether a supplied password corresponds to a current payment period. The instructions when executed by the computer system further cause the computer system to enable use of the computer system based upon determining that the supplied password corresponds to the current payment period.
- It is an object of the present invention to provide an improved method and apparatus for encouraging timely periodic payments that are associated with a computer system.
- It is also an object of the present invention to provide a new and useful for encouraging timely periodic payments that are associated with a computer system.
- It is another object of the present invention to provide a method and apparatus which disable use of a computer system in order to encourage timely periodic payments.
- It is yet another object of the present invention to provide a method and apparatus which encourages timely periodic payments without being overly intrusive if timely periodic payments are made.
- It is a further object of the present invention to provide a method and apparatus for cost effectively encouraging timely periodic payments associated with a computer system.
- The above and other objects, features, and advantages of the present invention will become apparent from the following description and the attached drawings.
- FIG. 1 shows a simplified block diagram of computer system which incorporates various features of the present invention therein;
- FIG. 2 shows a flowchart of an installation method used to install a payment assurance application upon the computer system of FIG. 1;
- FIG. 3 shows a flowchart of a login service of the payment assurance application installed on the computer system of FIG. 1;
- FIG. 4 shows a flowchart of a setup method of the payment assurance application used to configure the payment assurance application installed on the computer system of FIG. 1;
- FIGS.5A-5B shows a flowchart of a monitoring method of the payment assurance application used to monitor activities performed on the computer system of FIG. 1; and
- FIG. 6 shows a flowchart of a removal method of the payment assurance application used to remove the payment assurance application from the computer system of FIG. 1.
- While the invention is susceptible to various modifications and alternative forms, exemplary embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
- Referring now to FIG. 1, an
exemplary computer system 100 is shown which incorporates various features of the present invention. Theexemplary computer system 100 is generally operable to prevent use of thecomputer system 100 in response to non-payment or a non-timely payment of a periodic fee. To this end, thecomputer system 100 includes aprocessor 102, memory 104, asystem bus 106,controllers devices system BIOS 124, and asystem clock 126. Those skilled in the art should appreciate that features of the present invention may be implemented in a properly programmed general purpose computer system or server; however, those skilled in the art should also appreciate that various features of the present invention may alternatively be implemented in a special purpose device such as Internet appliances, set-top boxes, an medical diagnostic equipment. - The
processor 102 of thecomputer system 100 is generally operable to execute software and/or firmware routines stored in the memory 104. As a result of executing the software and/or firmware routines of the memory 104, theprocessor 102 controls the general operation of thecomputer system 100 and thedevices respective controllers processor 102 as a result of executing software and/or firmware routines of the memory 104 is operable to prevent thecomputer system 100 from being used if a periodic payment is missed or is paid in an untimely manner. - The memory104 of the
computer system 100 is operable to store data and instructions used by theprocessor 102 in the course of ensuring timely periodic payments and in the course general execution of software applications. To this end, the memory 104, in an exemplary embodiment, includes standard random access memory for storing the data and software routines needed by theprocessor 102. However, the memory 104 may alternatively include other volatile memory types such as DRAM, SDRAM, and SRAM for storing data and software routines and/or non-volatile memory types such as ROMs, PROMs, EEPROMs, and flash memory for storing data and firmware routines. - The
system bus 106 is generally operable to interconnect theprocessor 102, the memory 104, and thecontrollers system bus 106 in the exemplary embodiment includes an address bus and data bus which enable the various components of thecomputer system 100 to communicate with one another. - The
mass storage device 118 is generally operable to store data and/or software routines of thecomputer system 100 in a non-volatile manner, and themass storage controller 108 is generally operable to provide theprocessor 102 with an interface to the data and/or software routines stored by themass storage device 118. To this end, themass storage device 118 may include various computer readable and/or writeable media devices such as hard disk drives, floppy disk drives, CD-ROM drives, DVD-RAM drives, RAID devices, and/or Disk-On Chip devices to name a few. It should be appreciated by those skilled in the art that thecomputer system 100 may be implemented without amass storage device 118 andmass storage controller 108. For example, thecomputer system 100 may be implemented with all supported applications stored in a non-volatile memory of the memory 104. - The
video display device 120 is operable to provide a visual display to a user of thecomputer system 100, and thevideo controller 110 is operable to provide theprocessor 102 with an interface to thevideo display device 120. To this end, thevideo display device 120 may include CRT displays, LCD displays, and/or LED displays. - The
input device 122 is operable to provide users with a mechanism for inputting information into thecomputer system 100, and the I/O interface controller 112 is operable to provide theprocessor 102 with an interface to theinput device 122. To this end, theinput device 122 may include a mouse, keyboard, touch pad, and/or touch screen to name a few types of suitable input devices. - The
system BIOS 124 provides thecomputer system 100 with basic input and output routines. In particular, thesystem BIOS 124 provides thecomputer system 100 with startup routines used to initialize hardware components of thecomputer system 100. Moreover, thesystem BIOS 124 provides thecomputer system 100 with a hardware setup program which enables a technician to setup certain hardware components of thecomputer system 100 such as thesystem clock 126, and interface controllers for controlling floppy drives, hard drives, and CD-ROM drives. Furthermore, the hardware setup program of thesystem BIOS 124 provides an interface for defining from which devices thecomputer system 100 will attempt to boot and the order of the devices from which thecomputer system 100 will attempt to boot. - The
system clock 126 essentially maintains date and time information for thecomputer system 100. In particular, thesystem clock 126 includes an oscillator and other hardware which in combination implement a conventional date and time clock for thecomputer system 100. Thesystem clock 126 typically operates from battery power so that thesystem clock 126 may continue to keep time even after thecomputer system 100 is powered off. - The network interface controller114 is generally operable to provide the
processor 102 with an interface to devices coupled to a network (not shown) such as a LAN or the Internet. To this end, the network interface controller 114 may include an analog modem, an ISDN modem, a DSL interface, an Ethernet controller, and/or other wired/wireless communication interfaces. - The
computer system 100 in an exemplary embodiment executes a payment assurance application which is depicted in detail in FIGS. 2-6. In general, the payment assurance application configures thecomputer system 100 to prevent use of thecomputer system 100 if a periodic payment has not been made in a timely manner. To this end, the payment assurance application attempts to configure theexemplary computer system 100 to provide a computing environment which allows a user to use thecomputer system 100 with minimal interference while at the same time making it difficult for the average user to circumvent the protection provided by the payment assurance application. Similar to locks on an automobile, the obstacles presented to an individual are sufficient to deter most into compliance; however, sophisticated individuals determined to gain unwarranted access at all costs are likely to succeed in finding a way to circumvent the obstacles. With this in mind, design choices were made during the development of the exemplary payment assurance application to lessen either (i) the amount of interference and intrusiveness caused by the payment assurance application, or (ii) the complexity and expense associated with implementing the payment assurance application, at the expense of the level of security provided by the payment assurance application. Accordingly, those skilled in the art may chose to provide additional or alternative safeguards than those described herein. - Shown in FIG. 2 is a flowchart of an
exemplary installation method 200 for installing the payment assurance application upon theexemplary computer system 100 of FIG. 1. In general, theinstallation method 200 causes thecomputer system 100 to copy an exemplary payment assurance application to thecomputer system 100 and perform some initial configuration of the payment assurance application. To this end, the computer system in step 202 invokes execution of an installation program stored on a computer readable medium such as a CD-ROM disc or a floppy disk. As a result of executing the installation program, thecomputer system 100 instep 204 determines whether the payment assurance application is already installed on thecomputer system 100. To this end, thecomputer system 100 may make this determination based upon several known techniques such as determining whether certain executables are available to thecomputer system 100 and/or determining whether certain configuration parameters are set in thecomputer system 100. - If the computer system in
step 204 determines that the payment assurance application is already installed on thecomputer system 100, then thecomputer system 100 instep 206 terminates execution of the installation program and causes thecomputer system 100 to invoke execution of the payment assurance application. In particular, thecomputer system 100 in an exemplary embodiment invokes execution of reboot operation which causes the computer system to execute a shutdown process and a subsequent a system startup process that invokes the payment assurance application. - However, if the computer system in
step 204 determines that the payment assurance application is not installed on thecomputer system 100, then thecomputer system 100 installs the payment assurance application on thecomputer system 100. To this end, thecomputer system 100 instep 208 copies the payment assurance application to thecomputer system 100 in a persistent manner. For example, in an exemplary embodiment, thecomputer system 100 copies the payment assurance application to themass storage device 118. Those skilled in the art should appreciate that depending upon the implementation of the payment assurance application, thecomputer system 100 may need to copy one or more files. For example, the payment assurance application may be implemented as a single executable that does not require any other files, or the payment assurance application may be implemented as one or more executable files that are dynamically linked to several library files and that each rely upon various data and configuration files for proper execution. - Besides causing the
computer system 100 to copy the payment assurance application to thecomputer system 100 in a persistent manner, the installation program further causes thecomputer system 100 instep 210 to update configuration information so that during a system startup process thecomputer system 100 invokes execution of a login service provided by the payment assurance application. While various known techniques may be used to configure thecomputer system 100 to invoke upon system startup the login service of the payment assurance application, the installation program, in an exemplary Microsoft™ Windows™ embodiment of the payment assurance application, causes thecomputer system 100 to add appropriate references to the payment assurance application in the “Run” key and the “RunOnce” key of the Registry Database. In particular, the entry in the “RunOnce” causes thecomputer system 100 to invoke the login service of the payment assurance application upon system startup of thecomputer system 100 and prevents thecomputer system 100 from completing the startup process until execution of the payment assurance application is terminated. Moreover, since programs referenced by the “RunOnce” key in a Microsoft™ Windows™ environment are executed early in the system startup process, the payment assurance application configures thecomputer system 100 to implement features of the payment assurance application before a user may input commands to thecomputer system 100. For example, in an exemplary Microsoft™ Windows™ embodiment, the program assurance application causes thecomputer system 100 to disable certain keys and/or key combinations such as the “Alt-Tab”, “F6”, “Ctrl-Esc”, “Alt-F4”, and “Ctrl-Alt-Delete” which may otherwise enable a user to circumvent the program assurance application by causing thecomputer system 100 to switch to another executing process or causing thecomputer system 100 to terminate execution of the programs assurance program. - Another advantage of causing the payment assurance application to be executed via the entries in the “Run” key and “RunOnce” key is that these entries cause the
computer system 100 to execute the payment assurance application as a service. In Microsoft™ Windows™ environments, services are not listed by the Task Manager of Microsoft™ Windows™ operating systems. The Task Manager of the Microsoft™ Windows™ operating systems provides users with a interface to terminate processes; however, since the payment assurance application is executed as a non-listed service, users are prevented from simply terminating the payment assurance application via the Task Manager in order to circumvent the protections provided by the payment assurance application. The installation program then instep 210 causes thecomputer system 100 to reboot in order to force thecomputer system 100 through the system startup process. Due to the above installation of the payment assurance application, thecomputer system 100 will begin execution of the payment assurance application as part of the system startup process. - The installation program then in
step 212 causes thecomputer system 100 to terminate execution of the installation program and to invoke execution of the payment assurance application. To this end, thecomputer system 100 in an exemplary embodiment invokes a reboot operation that causes the computer system to terminate all processes and to subsequently invoke execution of the payment assurance application as part of a startup operation. As a result of invoking the reboot operation, thecomputer system 100 terminates all executing processes and then invokes a system startup process. Since the above installation of the payment assurance program configured thecomputer system 100 to invoke execution of the login service of the payment assurance program upon system startup, rebooting thecomputer system 100 instep 212 effectively invokes the payment assurance application and the protections associated with the payment assurance application. - While not part of the exemplary installation program, a technician who is configuring the
computer system 100 may perform further actions in order to enhance the protection provided by the payment assurance application. In particular, the technician may configure thecomputer system 100 via the setup program of thesystem BIOS 124 to attempt to boot from themass storage device 118 before attempting to boot from another device. In this manner, the technician prevents a user from circumventing the payment assurance application by simply booting thecomputer system 100 from a removable media such as a floppy disk or a CD-ROM disc. Furthermore, the technician may password protect the setup program of thesystem BIOS 124 to prevent users from circumventing the payment assurance application by reconfiguring thecomputer system 100 to attempt to boot from a removable media before attempting to boot from themass storage device 118. - Moreover, while the exemplary payment assurance application was described above as being installed on the
mass storage device 118, the payment assurance application may take alternative forms which would not require installing the payment assurance application to themass storage device 118. For example, the payment assurance application may be implemented in non-volatile memory of thecomputer system 100 and/or as part of thesystem BIOS 124. Furthermore, in such implementations, thecomputer system 100 may not need to execute an installation program in order to install the payment assurance application since the functionality of the payment assurance application is already integrated into the hardware components of thecomputer system 100. - After being configured with the payment assurance application, the
computer system 100 instep 302 of FIG. 3 automatically executes a login service of the payment assurance program as part of the startup process. The exemplary login service of the payment assurance application causes thecomputer system 100 instep 304 to disable certain keys and/or key combinations of the keyboard which would enable a user to switch to another process or prematurely terminate the payment assurance program. For example, in the Microsoft™ Windows™ environment, the exemplary assurance application causes thecomputer system 100 to disable the “Alt-Tab”, “F6”, “Ctrl-Esc”, “Alt-F4”, and “Ctrl-Alt-Delete” keys and/or key combinations which may otherwise enable users to circumvent the login service of the payment assurance application by causing thecomputer system 100 to switch to another executing process or causing thecomputer system 100 to prematurely terminate the execution of the payment assurance application. - The login service of the payment assurance application causes the
computer system 100 instep 306 to display upon the video display 120 a prompt for a password. In particular, thecomputer system 100 in an exemplary embodiment displays a dialog box in which a user may type a password. Each time a periodic payment is received by the organization responsible for monitoring payments associated with thecomputer system 100, the organization supplies the user via mail, e-mail, or some other mechanism, the password associated with the next payment period. Accordingly, if the user makes the periodic payments in a timely manner, then the user will obtain the passwords for each payment period in a timely fashion. As will be apparent from the following description, the user will be effectively prevented from using thecomputer system 100 if the user does not have the appropriate password for the current payment period. Accordingly, if the user does not want to be prevented from using thecomputer system 100, then the user will be motivated to make the period payments associated with thecomputer system 100 in a timely manner. - Upon receiving a password, the login service of the payment assurance application causes the
computer system 100 in step 310 to determine whether the entered password corresponds to a setup password for the payment assurance application. Thecomputer system 100 may utilize several known techniques for determining whether the entered password corresponds to the setup password for the payment assurance application. For example, thecomputer system 100 may determine whether the entered password corresponds to the setup password by comparing the entered password to a setup password that is hard-coded into the payment assurance application. Alternatively, thecomputer system 100 may determine whether the entered password corresponds to the setup password based upon an encrypted setup password which may be stored on themass storage device 118, non-volatile memory of thecomputer system 100, or hard-coded into the payment assurance application. - If the
computer system 100 in step 310 determines that the user entered the setup password, then thecomputer system 100 proceeds to step 402 of a setup method 400 depicted in FIG. 4. However, if thecomputer system 100 in step 310 determines that the user did not enter the setup password, then thecomputer system 100 instep 312 determines whether the user entered the stop program password. To this end, thecomputer system 100 may utilize several known techniques for determining whether the entered password corresponds to the stop program password for the payment assurance application. For example, thecomputer system 100 may determine whether the entered password corresponds to the stop program password by comparing the entered password to a stop program password that is hard-coded into the payment assurance application. Alternatively, thecomputer system 100 may determine whether the entered password corresponds to the stop program password based upon an encrypted stop program password which may be stored on themass storage device 118, non-volatile memory of thecomputer system 100, or hard-coded into the payment assurance application. - If the
computer system 100 instep 312 determines that the user entered the stop program password, then thecomputer system 100 instep 314 terminates execution of the payment assurance application. As a result of terminating execution of the payment assurance application, a user of thecomputer system 100 regains complete access to thecomputer system 100. A technician which is attempting to reconfigure acomputer system 100 on which the payment assurance application is installed may find it advantageous to cease execution of the payment assurance application in order to regain complete control of the computer system. Assuming that the technician or another user does not reconfigure thecomputer system 100 to do otherwise, the stop program password does not prevent thecomputer system 100 from executing the payment assurance application as part of the startup process. In other words, the stop program password merely terminates current execution of the payment assurance application and does not effect future execution of the payment assurance application. - However, if the
computer system 100 instep 312 determines that the user did not enter the stop program password, then thecomputer system 100 instep 315 determines whether the user entered the password for the current payment period. To this end, the exemplary payment assurance application causes thecomputer system 100 to make this determination based upon the current system time and an encrypted password set stored in the Registry Database of the Microsoft™ Windows™ environment. - If the
computer system 100 determines instep 315 that the user did not enter the correct password for the current installment period, then thecomputer system 100 instep 316 updates a password counter used to track the number of incorrect passwords received by thecomputer system 100 since the system startup process. Based upon the password counter, thecomputer system 100 instep 318 determines whether thecomputer system 100 has received more than a threshold number (e.g. 3) of incorrect passwords. If thecomputer system 100 determines that not more than the threshold number of incorrect passwords have been received, then thecomputer system 100 returns to step 306 in order to receive another password. - However, if the
computer system 100 determines instep 318 that more than the threshold number of incorrect passwords have been received, then the payment assurance application causes thecomputer system 100 to display a warning message instep 320. In particular, the warning message, in an exemplary embodiment, provides the user with an indication that the password is incorrect for the current payment period and provides the user with contact information for an organization from which the user may obtain the correct password. After displaying the warning message for a few seconds, thecomputer system 100 instep 322 disables further use of thecomputer system 100. To this end, thecomputer system 100 in an exemplary embodiment invokes a shutdown operation which causes thecomputer system 100 to terminate all running processes. However, those skilled in the art should appreciate that thecomputer system 100 may utilize other techniques for disabling thecomputer system 100. For example, thecomputer system 100 may be disabled by preventing any further execution of user processes. - If the
computer system 100 determines instep 315 that the user entered the correct password for the current payment period, then thecomputer system 100 instep 324 determines whether the user has made the last payment. To this end, thecomputer system 100 determines based upon the received password and the encrypted password list for thecomputer system 100 whether the received password corresponds to the password for the last payment period. If thecomputer system 100 instep 324 determines that the user has made the last payment, then thecomputer system 100 instep 326 completes the startup process and invokes execution of theprogram removal method 600 depicted in FIG. 6. - If the
computer system 100, however, determines that the received password is not the last password of the encrypted password set, then the payment assurance application causes thecomputer system 100 instep 328 to complete the system startup process and invoke a monitoring service of the payment assurance application. To this end, thecomputer system 100 in an exemplary embodiment updates the “Run” key of the Registry Database to ensure that “Run” key of the Registry Database includes a proper reference to invoke the monitoring service of payment assurance application. After updating the Registry Database, thecomputer system 100 terminates the current execution of the payment assurance application in order to enable thecomputer system 100 to complete the system startup procedure. Termination of the payment assurance application causes thecomputer system 100 to delete the reference to the login service of the payment assurance application from the “RunOnce” key of the Registry Database. Furthermore, as a result of the entry in the “Run” key, thecomputer system 100 invokes execution of the monitoring service of the payment assurance application depicted in FIGS. 5A-5B upon termination of the login service. - Referring now to FIG. 4, there is depicted a flowchart for a setup method400 implemented by the
computer system 100 in response to determining in step 310 that the setup password was received. In general, thecomputer system 100 during the setup method 400 provides a technician with a graphical user interface that enables the technician to configure thecomputer system 100 for a particular payment schedule. To this end, thecomputer system 100 instep 402 determines whether the setup program is available. In an exemplary embodiment, the payment assurance application is pre-configured to execute the setup program from a particular location on a floppy drive. Accordingly, thecomputer system 100 determines whether the setup program is accessible from the particular location. If thecomputer system 100 determines that the setup program is not accessible, then thecomputer system 100 instep 404 displays a warning message that indicates the user performed a prohibited action. After displaying the warning message for a few seconds, thecomputer system 100 instep 406 disables use of thecomputer system 100. To this end, thecomputer system 100 in an exemplary embodiment invokes a shutdown operation which causes thecomputer system 100 to terminate all executing processes. - However, if the
computer system 100 determines instep 402 that the setup program is accessible, then thecomputer system 100 in step 408 invokes execution of the setup program. By implementing the setup program as a separate program, the program assurance application introduces additional obstacles for a user who is intent on circumventing the payment assurance application. In particular, a user intent on circumventing the payment assurance application via the setup program would need not only the correct setup password but would also need a copy of the setup program. - In response to executing the setup program, the
computer system 100 in step 410 provides a graphical user interface from which a technician may request thecomputer system 100 to clear any prior password lists installed on thecomputer system 100. For example, thecomputer system 100 may detect whether the technician has activated a “Clear Password” button of the graphical user interface and clear any encrypted passwords lists by deleting appropriate keys from the Registry Database of thecomputer system 100. - The
computer system 100 then in step 412 obtains information concerning the payment schedule. In an exemplary embodiment, thecomputer system 100 provides a graphical user interface from which a technician may define the length of the payment schedule (e.g. 36 months, 102 weeks, etc.); the grace period for receiving each periodic payment (e.g. 10 days); the date the first payment is due (e.g. Jan. 1, 2000); and the day each recurring payment is due (e.g. every Friday, the first of the month, the fifth of the month, etc.). Moreover, thecomputer system 100 instep 414 obtains a unique identifier for thecomputer system 100 being configured. In particular, thecomputer system 100 in an exemplary embodiment provides a graphical user interface from which a technician may enter a unique identifier such as the customer's telephone number. By assigning a unique identifier to thecomputer system 100, an organization may easily associate a password list with the appropriate computer system. - The
computer system 100 instep 416 stores the collected information in a secure and persistent manner. To this end, thecomputer system 100 in an exemplary embodiment encrypts the collected information with the Blowfish encryption algorithm and stores the encrypted information in keys of the Registry Database that is stored on themass storage device 118. Thecomputer system 100 alternatively may encrypt the collected information with other algorithms and store the collected information on other non-volatile media such as EEPROMs or flash memory devices. Furthermore, in computing environments that provide built in security measures such file permissions and file ownership, thecomputer system 100 may store the collected information in a non-encrypted manner in files that are in accessible to users of thecomputer system 100. - After storing the collected information, the
computer system 100 instep 418 generates a password list for thecomputer system 100 and saves the password list in a persistent manner. More specifically, thecomputer system 100 in an exemplary embodiment generates a different password for each payment period and three additional date passwords that enable a user to update thesystem clock 126 of thecomputer system 100, and stores the generated password list in a file on themass storage device 118. Then, thecomputer system 100 in step 420 displays upon thevideo display 120 each password of the generated password list. As a result of displaying the password list, the technician may visual verify that appropriate passwords were generated for thecomputer system 100. - The
computer system 100 instep 422 encrypts each generated password with an encryption algorithm such as the DES algorithm, the IDEA algorithm, the RC4 algorithm, or the Blowfish algorithm, and stores the encrypted password list in a persistent manner. In particular, in an exemplary embodiment, thecomputer system 100 stores the encrypted password list in CLSID keys of the Registry Database without associating meaningful descriptions to the keys. Since the Registry Database typically includes a large number of CLSID keys without highly meaningful descriptions, users in search of the passwords will have a difficult time identifying which CLSID keys of the Registry Database store the encrypted password list for thecomputer system 100. Moreover, since the passwords are stored in CLSID keys in an encrypted manner, average users would find it very difficult to decrypt the passwords even if they were able to determine in which CLSID keys the encrypted passwords were stored. - The
computer system 100 instep 424 prompts the technician via the graphical user interface to indicate whether thecomputer system 100 should print the password list or save the password list to disk. If thecomputer system 100 determines instep 426 that the technician chose to have the password list printed, then thecomputer system 100 in step 428 provides the technician with an interface for choosing a particular printer and causing the selected printer to print the password list along with the unique computer name assigned to thecomputer system 100. In response to choosing a particular printer, thecomputer system 100 instep 430 prints the password list for thecomputer system 100 along with the unique identifier assigned to thecomputer system 100. - However, if the
computer system 100 instep 426 determines that the technician chose to have the password list saved to disk, then thecomputer system 100 instep 432 provides the technician with a graphical user interface for defining a path and a filename to which thecomputer system 100 is to save the password list and unique identifier for thecomputer system 100. In response to defining the path and filename, the computer system instep 434 saves the password list and unique identifier to the a file having the defined filename at a location defined by the path. Saving the password list and unique identifier to disk facilitates additional information retrieval and security functionality not provided by printing the password list and unique identifier. In particular, saved password lists and associated identifiers may be integrated with a database system to provide quick retrieval of passwords for a large inventory of computer systems. Moreover, the saved password lists may be encrypted and password protected in order to secure access to the password lists. - After printing or saving the password list and unique identifier, the
computer system 100 in step 436 removes the un-encrypted password list from thecomputer system 100. More specifically, thecomputer system 100 in an exemplary embodiment deletes a file containing the un-encrypted password list from thecomputer system 100 in such a manner which prevents undelete utilities from recovering the file. Removing the un-encrypted password list from thecomputer system 100 prevents users from simply locating and reading the un-encrypted password list in order to obtain the proper password for each payment period of the payment schedule. - The
computer system 100 then in step 438 tests the integrity of thecomputer system 100 and the configuration of the payment assurance application. To this end, thecomputer system 100 in an exemplary embodiment tests the integrity of themass storage device 118, the integrity of the Registry Database, and the integrity of the decryption algorithms. For example, thecomputer system 100 in an exemplary embodiment verifies that the encrypted passwords can be successfully retrieved from the Registry Database that is stored on themass storage device 118 and that the retrieved passwords can be successfully decrypted. Moreover, thecomputer system 100 in an exemplary embodiment causes the first password to be displayed upon thevideo display 120 in both its encrypted form and its decrypted form so that the technician configuring thecomputer system 100 may make a visual verification that thecomputer system 100 can successfully retrieve and decrypt passwords of the password list. - The
computer system 100 then instep 440 disables removal of the payment assurance application for thecomputer system 100. In an exemplary implementation of the payment assurance application, the login service and monitoring service are implemented with a single executable file. After being powered-up, thecomputer system 100 either is executing the executable file for the payment assurance program or is not operable to receive user input. Microsoft™ Windows™ operating systems do not allow users to delete files which are currently being accessed by the operating system such as the executable file for the payment assurance program. Accordingly, since from the users standpoint, thecomputer system 100 is constantly executing the executable file for the payment assurance application, the Microsoft™ Windows™ operating systems inherently prevents the user from removing the executable file for the payment assurance application from themass storage device 118. - A user may, however, attempt to reformat the
mass storage device 118 in order to remove the payment assurance application from themass storage device 118. In order to prevent removal of the payment assurance application from thecomputer system 100 via reformatting themass storage device 118, thecomputer system 10 disables the format command for MS-DOS commandline of the Microsoft™ Windows™ operating system. In particular, thecomputer system 100 encrypts the executable file of the MS-DOS format command, renames the encrypted executable file to a non-descriptive name, and moves the renamed and encrypted executable file to a non-standard location on themass storage device 118. As a result of the above changes to the format command, average users should have a difficult time locating and executing the format command of the Microsoft™ Windows™ operating system while at the same time maintaining a copy of the format command on themass storage device 118 so that the format command may be automatically re-enabled after the user makes the last payment of the payment schedule. - As a result of disabling the format command of the Microsoft™ Windows™ operating system, a user cannot simply execute the format command stored upon the
mass storage device 118 in order to reformat themass storage device 118 and circumvent the payment assurance application. However, a user is still able to format removable media such as floppy disks via a the Microsoft™ Windows™ format interface. The Microsoft™ Windows™ format interface inherently forbids a user from reformatting the disk partition from which the Microsoft™ Windows™ operating system booted. Accordingly, the combination, of disabling the Microsoft™ Windows™ format command and functionality inherent to Microsoft™ Windows™ format interface, prevents a user of thecomputer system 100 from circumventing the payment assurance application by reformatting themass storage device 118 while at the same time permitting the user to format other storage media such as floppy disks or a second hard drive. - The computer system then in
step 442 requests the technician to enter contact information such as a business name and phone number and saves the received contact information in a persistent manner. The payment assurance application utilizes the supplied information to provide a user of thecomputer system 100 with contact information in case the user encounters problems with thecomputer system 100, needs to obtain a password, has questions concerning thecomputer system 100, or has questions concerning the payment schedule. - In
step 444, thecomputer system 100 terminates execution of the setup program and forces execution of the payment assurance application. To this end, thecomputer system 100 in an exemplary embodiment invokes execution of a reboot operation which causes thecomputer system 100 to terminate all executing processes and to invoke the payment assurance application as part of a subsequent startup operation. As a result of executing the reboot operation, thecomputer system 100 executes a shutdown process which causes thecomputer system 100 to terminate execution of all executing processes and to subsequently invoke a system startup process. Accordingly, after thecomputer system 100 completes execution of the setup method 400, thecomputer system 100 will automatically execute the payment assurance program in accordance with the supplied payment schedule information and associated password list. - In general, once the user has entered the proper password for the current payment period, the
computer system 100 essentially invokes a monitoring service of the payment assurance application that causes thecomputer system 100 to periodically verify that the user has not perform certain operations that could circumvent the payment assurance application. Referring now to FIGS. 5A-5B, there is depicted amonitoring method 500 which thecomputer system 100 executes on a periodic basis such as every 500 milliseconds. However, those skilled in the art should appreciate thatmonitoring method 500 may be implemented in various other manners which may include multiple interrupt service routines, polling routines, hardware timers, and/or software timers. For example, an exemplary embodiment of themonitoring method 500 utilizes a 500 millisecond timer that upon expiration causes thecomputer system 100 to verify a first set of conditions and a 1000 millisecond timer that upon expiration causes thecomputer system 100 to verify a second set of conditions. - Upon each periodic execution of the
monitoring method 500, thecomputer system 100 instep 502 ensures that execution of the payment assurance application will be invoked as part of the system startup process. To this end, thecomputer system 100 in an exemplary embodiment updates the “Run” and “RunOnce” keys of the Registry Database with entries that properly reference the monitoring service and login service of the payment assurance application, respectively. In this manner, thecomputer system 100 effectively prevents a user from configuring thecomputer system 100 to not invoke execution of the payment assurance application upon system startup. In particular, assuming thecomputer system 100 updates the “Run” and “RunOnce” keys of the Registry Database on a relatively short interval such as 500 millisecond, even if the user were to delete or alter the entries of the Registry Database the periodic execution of themonitoring method 500 would effectively update the “Run” and “RunOnce” entries to proper values before the user could terminate the monitoring service by restarting or powering-down thecomputer system 100. - One manner by which users may attempt to circumvent the payment assurance application is by setting the
system clock 126 backwards to a date prior to an overdue payment date. Users may utilizes various different techniques in an attempt to set thesystem clock 126. Accordingly, thecomputer system 100 in an exemplary embodiment performs several tests to ensure that the user has not attempted to change thesystem clock 126 of thecomputer system 100. In particular, thecomputer system 100 instep 504 determines base upon the date as indicated by thesystem clock 126 and a date stamp associated with the program assurance application whether thesystem clock 126 has been set backwards. More specifically, thecomputer system 100 determines that thesystem clock 126 has been set backwards if the date indicated by thesystem clock 126 is earlier then the date indicated by the date stamp of the program assurance application. - If the
computer system 100 determines instep 504 that thesystem clock 126 has been set backwards, then the computer system instep 508 displays a warning message that indicates changes to thesystem clock 126 are prohibited and provides contact information for an organization from which a password that re-enables thecomputer system 100 may be obtained. - After displaying the warning message for a few seconds, the
computer system 100 in step 510 prompts the user for a password. If thecomputer system 100 determines in step 512 that a user entered a proper date password, then thecomputer system 100 instep 514 updates a confirmed system time for thecomputer system 100, disables the entered date password from being used again, and exits themonitoring method 500 until the next periodic execution of themonitoring method 500. To this end, thecomputer system 100 determines that the received password is a proper date password if the entered password corresponds to a non-disabled date password of the password list. Moreover, upon determining that the received password is a proper date password, thecomputer system 100 in an exemplary embodiment sets a flag associated with the date password that disables the date password from being used again. Furthermore, thecomputer system 100 in an exemplary embodiment stores the confirmed system time of thesystem clock 126 in a key of the Registry Database in order to maintain a persistent copy of the last confirmed system time. - However, if the
computer system 100 determines that a user did not enter a proper date password, then thecomputer system 100 determines in step 516 whether the user entered the stop password. If thecomputer system 100 determines that the user entered the stop password, then thecomputer system 100 in step 518 terminates the current execution of the program assurance application in a manner similar toabove step 314 of FIG. 3. - If the
computer system 100 determines in step 516 that the user did not enter the stop password, then thecomputer system 100 instep 520 determines whether more than a threshold number (e.g. 3) of invalid passwords have been entered. If thecomputer system 100 determines that more than the threshold number of invalid passwords have not been entered, then thecomputer system 100 instep 522 updates a password counter, displays a warning that indicates the last password was invalid, and returns to step 510 in order to receive another password from the user. However, if thecomputer system 100 determines that more than the threshold number of invalid passwords have been entered, then thecomputer system 100 instep 524 displays a warning message that indicates the password was invalid, and disables use of thecomputer system 100. To this end, thecomputer system 100 in an exemplary embodiment invokes execution of a system shutdown process that causes thecomputer system 100 to terminate execution of all executing processes. - The Microsoft™ Windows™ environment provides various utility programs for setting the
system clock 126. A user could potentially circumvent the protection of the payment assurance application by setting thesystem clock 126 backwards via these configuration utilities. Whenever one of the Microsoft™ Windows™ utility programs changes thesystem clock 126, a Microsoft™ Windows™ API message is generated which informs other applications of the change to thesystem clock 126. Accordingly, if thecomputer system 100 instep 504 determined based upon the date stamp that thesystem clock 126 had not been set backwards, then thecomputer system 100 in step 526 further determines whether thesystem clock 126 had been changed based upon Microsoft™ Windows™ API messages generated by the configuration utilities. - If the
computer system 100 determines in step 526 that thesystem clock 126 has changed, then thecomputer system 100 instep 528 displays a warning that indicates changes to thesystem clock 126 are prohibited. Thecomputer system 100 then instep 530 determines whether the system clock has been set backwards by more than a threshold amount (e.g. 15 minutes) within a predetermined period (e.g. 24 hours). To this end, thecomputer system 100 determines whether the time difference between the current system time as indicated by thesystem clock 126 and the last confirmed system time is greater than the threshold amount remaining for the predetermined period. - If the
computer system 100 instep 530 determines that thesystem clock 126 has been set backwards by more than the threshold amount within the predetermined period, then thecomputer system 100 proceeds to step 508 in order to display a warning and receive a password from the user. However, if thecomputer system 100 determines that thesystem clock 126 has not been set backwards by more than the threshold amount within the predetermined period, then thecomputer system 100 instep 532 updates the threshold amount remaining for the predetermined period and exits themonitoring method 500 until the next periodic execution of themonitoring method 500. To this end, thecomputer system 100 in an exemplary embodiment subtracts the time difference from the threshold amount remaining, encrypts the obtained difference, and stores the encrypted difference in a non-volatile manner. More specifically, thecomputer system 100 stores the encrypted difference in a key of the Registry Database for future access by thecomputer system 100. - After verifying the payment assurance application will be invoked upon system startup and the
system clock 126 has not been changed by the user, thecomputer system 100 instep 533 updates the confirmed system time to the system time indicated by thesystem clock 126. More specifically, thecomputer system 100 in an exemplary embodiment updates the confirmed system time in a persistent manner by storing the system time in a key of the Registry Database. - The
computer system 100 then instep 534 determines whether the date stamp associated with the payment assurance application needs to be updated. In particular, if the confirmed system time indicates a date later than the date stamp for the payment assurance application, then thecomputer system 100 instep 535 updates the date stamp for the payment assurance application. More specifically, thecomputer system 100 in an exemplary embodiment updates the data stamp by storing the date indicated by the confirmed system time on themass storage device 118 in a header portion of an executable file used to implement the payment assurance application. - In
step 536, thecomputer system 100 resets the time amount remaining for the predetermined period and the pre-notification counter. In an exemplary embodiment, thecomputer system 100 provides a pre-notification warning once each day thecomputer system 100 is within a pre-notification period. Accordingly, by resetting the pre-notification counter upon determining the date has changed ensures that the pre-notification warning message is display only once a day. Similarly, thecomputer system 100 in an exemplary embodiment allows thesystem clock 126 to be set backwards by no more than a threshold amount within a predetermined period of a day. Accordingly, resetting the time amount remaining upon determining that the date has changed ensures that thesystem clock 126 may be set backwards by the threshold amount each predetermined period. The predetermined period and the pre-notification period may be implemented with separate and different time intervals. Furthermore, those skilled in the art in light of the description herein may implement other time intervals for the predetermine period and the pre-notification using known techniques and without undue experimentation. - The
computer system 100 then instep 537 determines whether the grace period has passed. To this end, thecomputer system 100 determines based upon the entered payment password, the stored payment schedule information, and thesystem clock 126 whether the grace period has passed. For example, if the stored payment schedule information defines monthly payments due on the 1st of each month and a 10 day grace period, then thecomputer system 100 would determine the grace period had passed in response to the user entering the correct payment password for March 1999 and thesystem clock 126 indicating the date as Apr. 11, 1999. If thecomputer system 100 determines that the grace period has passed, then thecomputer system 100 in step 538 displays a warning message that indicates the current installment period is past due and provides contact information of the organization to which payment is to be made. After displaying the warning message for a few seconds, thecomputer system 100 in step 540 disables use of thecomputer system 100. - If the computer system determines in
step 537 that the grace period has not yet passed, then thecomputer system 100 instep 542 determines whether the grace period has been entered. To this end, thecomputer system 100 determines based upon the entered payment password, the stored payment schedule information, and thesystem clock 126 whether the grace period has been entered. For example, if the stored payment schedule information defines weekly payments due on Sunday of each week and a 10 day grace period, then thecomputer system 100 would determine the grace period had been entered in response to the user entering the correct payment password for the week beginning Sunday, Oct. 10, 1999 and thesystem clock 126 indicating the date as Oct. 18, 1999. If thecomputer system 100 determines that the grace period has been entered, then thecomputer system 100 in step 544 displays a warning message that indicates the current periodic payment is past due and provides contact information for the organization to which payment is to be made. - However, if the
computer system 100 determines that the grace period has not been entered, then thecomputer system 100 instep 546 determines whether the pre-notification period (e.g. 3 days before payment due date) has been entered. To this end, thecomputer system 100 determines based on the entered payment password, the stored payment schedule information, and thesystem clock 126 whether the pre-notification period has been entered. For example, if the stored payment schedule information defines monthly payments due on the first of each month and a 3 day pre-notification period, then thecomputer system 100 would determine that the pre-notification period had been entered in response to the user entering the correct password for the month of September and thesystem clock 126 indicating the date as Sep. 30, 1999. - If the
computer system 100 determines that the pre-notification period has been entered, then thecomputer system 100 instep 548 determines based upon a pre-notification counter and thesystem clock 126 whether the a pre-notification warning message has been displayed for the current date. If thecomputer system 100 determines that the pre-notification warning has already been displayed for the current date, then thecomputer system 100 exits the monitoring method until the next periodic execution of themonitoring method 500. However, if thecomputer system 100 determines that the pre-notification warning has not been display for the current date, then thecomputer system 100 instep 550 displays a warning message that indicates the date by which the next periodic payment is due. The computer system then instep 552 updates the pre-notification counter in order to prevent the pre-notification warning from being displayed again for the current date. - Since the
computer system 100 executes themonitoring method 500 on a periodic basis, thecomputer system 100 in an exemplary embodiment causes the grace period warning to be displayed each time thecomputer system 100 periodically executes themonitoring method 500. If thecomputer system 100 is configured to execute the monitoring method on a relatively short interval such as 500 millisecond, then thecomputer system 100 will essentially cause the grace period warning to be continually displayed once the grace period is entered. It should be appreciated, however, that the grace period warning may be implemented in a less intrusive manner similar to the pre-notification warning by utilizing a grace period counter that causes the grace period message to be displayed less frequently such as once a day, once an hour, or once every 15 minutes. - A
program removal method 600 is illustrated in FIG. 6. In general, thecomputer system 100 executes theprogram removal method 600 in response to receiving the payment password for the last payment period. As depicted in FIG. 6, thecomputer system 100 instep 602 re-enables mechanisms which were previously disabled in order to prevent the user from removing the payment assurance application from thecomputer system 100. More specifically, thecomputer system 100 in an exemplary embodiment re-enables the MS-DOS format command. To this end, thecomputer system 100 un-encrypts the format command, renames the format command to its standard filename, and stores the un-encrypted and properly named format command in its standard location on themass storage device 118. - In
step 604, thecomputer system 100 removes stored configuration information for the payment assurance application from thecomputer system 100. In particular, thecomputer system 100 removes the password lists, the payment schedule information, the confirmed system time information, and mechanisms for ensuring execution of the payment assurance application upon startup. More specifically, thecomputer system 100 in an exemplary embodiment removes the references to the payment assurance application from the “Run” and “RunOnce” keys of the Registry Database. Furthermore, thecomputer system 100 in the exemplary embodiment removes all other keys of the Registry Database associated with the payment assurance applications such as keys used to store the password lists, confirmed system time, and payment schedule information. - The
computer system 100 then in step 606 removes all files associated with the payment assurance application from thecomputer system 100. In an exemplary embodiment, thecomputer system 100 essentially deletes the executable file used to implement the payment assurance application from themass storage device 118. - After removing the configuration information and files associated with the payment assurance application, the
computer system 100 in step 608 invokes a reboot operation in order to cause thecomputer system 100 to terminate all executing processes and to complete the removal of the payment assurance program from thecomputer system 100. - While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character, it being understood that only exemplary embodiments have been shown and described and that all changes and modifications that come within the spirit of the invention are desired to be protected. For example, the exemplary embodiment of the payment assurance application automatically removes itself from the
computer system 100 upon entering the password associated with the last payment which is advantageous for purchase-over-time agreement. However, the payment assurance application may be implemented to automatically disable thecomputer system 100 after the last day of the payment schedule which may be advantageous for lease arrangements where the user is to return thecomputer system 100 at the termination of the lease.
Claims (18)
1. A method of encouraging timely periodic payments that are associated with a computer system, comprising the steps of:
storing a plurality of passwords in said computer system, each password of said plurality of passwords associated with a separate payment period;
determining based upon said plurality of passwords whether a supplied password corresponds to a current payment period; and
enabling use of said computer system based upon determining that said supplied password corresponds to said current payment period.
2. The method of claim 1 , further comprising the step of:
disabling use of said computer system based upon determining that said supplied password does not correspond to said current payment period.
3. The method of claim 1 , further comprising the step of:
terminating execution of all processes on said computer system based upon determining that said supplied password does not correspond to said current payment period.
4. The method of claim 1 , further comprising the step of determining whether said supplied password corresponds to a predetermined grace period associated with said current payment period, wherein said enabling step further comprises the step of:
enabling use of said computer system based further upon determining that said supplied password corresponds to said predetermined grace period associated with said current payment period.
5. The method of claim 1 , further comprising the steps of:
in response to determining that said supplied password corresponds to said current payment period, determining whether said computer system is within a pre-notification period associated with a second payment period that immediately follows said current payment period, and
displaying a warning message concerning said second payment period in response to determining that said computer system is within said pre-notification period associated with said second payment period.
6. The method of claim 1 , further comprising the steps of:
detecting whether a system time of said computer system has been changed in an unauthorized manner; and
disabling said computer system based upon detecting that said system time has been changed in said unauthorized manner.
7. A computer system that encourages timely periodic payments, comprising:
a non-volatile storage medium in which is stored a plurality of passwords, each password of said plurality of passwords associated with a separate payment period;
a system clock operable to provide a system time;
a processor operably coupled to said non-volatile storage medium and said system clock; and
a memory operably coupled to said processor, said memory comprising a plurality of instructions, which when executed by said processor cause said processor to:
determine based upon said system time and said plurality of passwords whether a supplied password corresponds to a current payment period; and
enable execution of user processes based upon determining that said supplied password corresponds to said current payment period.
8. The computer system of claim 7 , wherein said plurality of instructions when executed by said processor further cause said processor to:
disable execution of user processes based upon determining that said supplied password does not correspond to said current payment period.
9. The computer system of claim 7 , wherein said plurality of instructions when executed by said processor further cause said processor to:
terminate execution of all processes on said computer system based upon determining that said supplied password does not correspond to said current payment period.
10. The computer system of claim 7 , wherein said plurality of instructions when executed by said processor further cause said processor to:
determine whether said supplied password corresponds to a predetermined grace period associated with said current payment period,
enable execution of user processes based further upon determining that said supplied password corresponds to said predetermined grace period associated with said current payment period.
11. The computer system of claim 7 , wherein said plurality of instructions when executed by said processor further cause said processor to:
determine, in response to determining that said supplied password corresponds to said current payment period, whether said system time is within a pre-notification period associated with a second payment period that immediately follows said current payment period, and
displaying a warning message concerning said second payment period in response to determining that said system time is within said pre-notification period associated with said second payment period.
12. The computer system of claim 7 , wherein said plurality of instructions when executed by said processor further cause said processor to:
detect whether said system time of said system clock has been changed in an unauthorized manner; and
disable execution of user processes based upon detecting that said system time has been changed in said unauthorized manner.
13. A computer readable medium for encouraging timing periodic payments associated with a computer system, said computer readable medium comprising a plurality of instructions which when executed by said computer system cause said computer system to:
determine based upon a plurality of passwords associated with a plurality of payment periods whether a supplied password corresponds to a current payment period; and
enable use of said computer system based upon determining that said supplied password corresponds to said current payment period.
14. The computer readable medium of claim 13 , wherein said plurality of instructions when executed by said computer system further cause said computer system to:
disable use of said computer system based upon determining that said supplied password does not correspond to said current payment period.
15. The computer readable medium of claim 13 , wherein said plurality of instructions when executed by said computer system further cause said computer system to:
terminate execution of all processes on said computer system based upon determining that said supplied password does not correspond to said current payment period.
16. The computer readable medium of claim 13 , wherein said plurality of instructions when executed by said computer system further cause said computer system to:
determine whether said supplied password corresponds to a predetermined grace period associated with said current payment period,
enable use of said computer system based further upon determining that said supplied password corresponds to said predetermined grace period associated with said current payment period.
17. The computer readable medium of claim 13 , wherein said plurality of instructions when executed by said computer system further cause said computer system to:
determine, in response to determining that said supplied password corresponds to said current payment period, whether said computer system is within a pre-notification period associated with a second payment period that immediately follows said current payment period, and
displaying a warning message concerning said second payment period in response to determining that said computer system is within said pre-notification period associated with said second payment period.
18. The computer readable medium of claim 13 , wherein said plurality of instructions when executed by said computer system further cause said computer system to:
detect whether a system clock of said computer system has been changed in an unauthorized manner; and
disable use of said computer system based upon detecting that said system time has been changed in said unauthorized manner.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/223,390 US20020198834A1 (en) | 1999-11-03 | 2002-08-19 | Method and apparatus for encouraging timely periodic payments associated with a computer system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/433,168 US6738810B1 (en) | 1999-11-03 | 1999-11-03 | Method and apparatus for encouraging timely payments associated with a computer system |
US10/223,390 US20020198834A1 (en) | 1999-11-03 | 2002-08-19 | Method and apparatus for encouraging timely periodic payments associated with a computer system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/433,168 Division US6738810B1 (en) | 1999-11-03 | 1999-11-03 | Method and apparatus for encouraging timely payments associated with a computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020198834A1 true US20020198834A1 (en) | 2002-12-26 |
Family
ID=23719094
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/433,168 Expired - Fee Related US6738810B1 (en) | 1999-11-03 | 1999-11-03 | Method and apparatus for encouraging timely payments associated with a computer system |
US10/223,552 Abandoned US20030004875A1 (en) | 1999-11-03 | 2002-08-19 | Apparatus for encouraging timely periodic payments associated with a computer system |
US10/223,390 Abandoned US20020198834A1 (en) | 1999-11-03 | 2002-08-19 | Method and apparatus for encouraging timely periodic payments associated with a computer system |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/433,168 Expired - Fee Related US6738810B1 (en) | 1999-11-03 | 1999-11-03 | Method and apparatus for encouraging timely payments associated with a computer system |
US10/223,552 Abandoned US20030004875A1 (en) | 1999-11-03 | 2002-08-19 | Apparatus for encouraging timely periodic payments associated with a computer system |
Country Status (1)
Country | Link |
---|---|
US (3) | US6738810B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153712A1 (en) * | 2002-08-30 | 2004-08-05 | Eric Owhadi | Technical support systems and methods for use in providing technical support |
US20070136570A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Computing device limiting mechanism |
US20090254995A1 (en) * | 2008-04-03 | 2009-10-08 | Microsoft Corporation | Client controlled lock for electronic devices |
CN111726662A (en) * | 2020-05-09 | 2020-09-29 | 广州视源电子科技股份有限公司 | Television use management method and device, television and storage medium |
US20210342422A1 (en) * | 2018-08-21 | 2021-11-04 | Chikara MATSUNAGA | System and method for assisting usage of usage object |
US20220084331A1 (en) * | 2017-11-02 | 2022-03-17 | Chikara MATSUNAGA | Vehicle use assistance system and a vehicle use assistance method |
US11410165B1 (en) * | 2015-12-10 | 2022-08-09 | Wells Fargo Bank, N.A. | Systems and methods for providing queued credentials for an account |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020123964A1 (en) * | 1999-11-03 | 2002-09-05 | Gerald Arthur Kramer | Payment monitoring system |
JP4914533B2 (en) * | 2000-06-05 | 2012-04-11 | 株式会社三井住友銀行 | Information processing apparatus and information processing method |
US7480638B1 (en) * | 2001-04-03 | 2009-01-20 | Ebay Inc. | Method and system automatically to remind parties to a network-based transaction to comply with obligations established under a transaction agreement |
US7325065B1 (en) * | 2001-12-21 | 2008-01-29 | Aol Llc, A Delaware Limited Liability Company | Identifying unauthorized communication systems using a system-specific identifier |
JP2003233725A (en) * | 2002-02-08 | 2003-08-22 | Canon Inc | Service providing system, device, method, and program |
EP1361495A3 (en) * | 2002-05-09 | 2009-06-03 | Panasonic Corporation | Distribution system, distribution apparatus and reception apparatus for distributing digital contents having usage expiry |
ATE464020T1 (en) * | 2002-12-18 | 2010-04-15 | Koninkl Philips Electronics Nv | SYSTEM FOR ALLOWING THE USE OF PRODUCTS AFTER THE EXPIRY OF THEIR TRIAL PERIOD |
US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
DE60330646D1 (en) * | 2003-03-20 | 2010-02-04 | Sony Ericsson Mobile Comm Ab | Time-controlled mobile device for digital rights management (DRM) |
US20050044397A1 (en) * | 2003-08-19 | 2005-02-24 | Telefonaktiebolaget Lm Ericsson | Method and system for secure time management in digital rights management |
US7669140B2 (en) * | 2003-08-21 | 2010-02-23 | Microsoft Corporation | System and method for providing rich minimized applications |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US20060106920A1 (en) * | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Method and apparatus for dynamically activating/deactivating an operating system |
US8464348B2 (en) * | 2004-11-15 | 2013-06-11 | Microsoft Corporation | Isolated computing environment anchored into CPU and motherboard |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US8176564B2 (en) * | 2004-11-15 | 2012-05-08 | Microsoft Corporation | Special PC mode entered upon detection of undesired state |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
US8353046B2 (en) | 2005-06-08 | 2013-01-08 | Microsoft Corporation | System and method for delivery of a modular operating system |
DE102005050352B4 (en) * | 2005-10-20 | 2008-02-07 | Infineon Technologies Ag | Time indication test unit, electronic device and method for checking a time indication |
US7596671B2 (en) * | 2005-11-09 | 2009-09-29 | Microsoft Corporation | Pre-paid computer monitoring hardware |
US8190923B2 (en) * | 2005-12-20 | 2012-05-29 | Microsoft Corporation | Method to securely initialize, protect and recover system date/time |
US7757185B2 (en) * | 2006-01-06 | 2010-07-13 | Apple Inc. | Enabling and disabling hotkeys |
US20080109334A1 (en) * | 2006-11-03 | 2008-05-08 | Lewis Mark K | Method and system for providing payment codes |
US20080159530A1 (en) * | 2006-11-20 | 2008-07-03 | Mehran Randall Rasti | Gadget to encrypt and keep account login information for ready reference |
WO2009058900A2 (en) * | 2007-10-29 | 2009-05-07 | Black Ledger, Inc. | Networks, methods, and systems for encouraging timely fulfillment of periodic obligations |
JP5241319B2 (en) | 2008-05-15 | 2013-07-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Computer system for managing a password for detecting information about components arranged on a network, method and computer program therefor |
US8271623B2 (en) * | 2009-01-15 | 2012-09-18 | Microsoft Corporation | Performing configuration in a multimachine environment |
EP2302519B1 (en) * | 2009-09-09 | 2013-01-16 | ST-Ericsson SA | Dynamic frequency memory control |
US9424425B2 (en) | 2013-05-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
US10114945B2 (en) * | 2014-05-05 | 2018-10-30 | Citrix Systems, Inc. | Clock rollback security |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5510780A (en) * | 1994-02-18 | 1996-04-23 | Profit Plus Corporation | Time cycled security code and activation control system |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3665397A (en) | 1970-06-08 | 1972-05-23 | Minicars Inc | Automobile rental system |
US3790933A (en) | 1972-06-09 | 1974-02-05 | A Cort | Vehicle security system |
US3987408A (en) | 1973-01-30 | 1976-10-19 | Tmx, Inc. | Vehicle anti-theft system |
US4067411A (en) | 1976-05-27 | 1978-01-10 | Conley Thomas R | Vehicle emergency alarm and stop system |
US4177466A (en) | 1977-11-16 | 1979-12-04 | Lo-Jack Corporation | Auto theft detection system |
US4327353A (en) | 1978-03-06 | 1982-04-27 | George W. Beard | Security system |
JPS54158532A (en) | 1978-06-02 | 1979-12-14 | Nippon Denso Co Ltd | Burglarproof method and device for car |
DE2911160A1 (en) | 1979-03-22 | 1980-10-02 | Daimler Benz Ag | DEVICE FOR PREVENTING UNAUTHORIZED STARTING OF VEHICLES |
US4381705A (en) | 1980-12-01 | 1983-05-03 | Cubic Western Data | Modularized ticket handling system for use in automatic ticket preparation system |
US4463340A (en) | 1981-09-18 | 1984-07-31 | Darrell E. Issa | Anti-theft control system |
JPS58167237A (en) | 1982-03-26 | 1983-10-03 | Koichi Nakamura | Driving time information device for car and the like |
JPS58180349A (en) | 1982-04-14 | 1983-10-21 | Omron Tateisi Electronics Co | Controller for automobile |
JPS5982577A (en) | 1982-11-02 | 1984-05-12 | Nippon Denso Co Ltd | Starting control device for car prime mover |
US4630201A (en) | 1984-02-14 | 1986-12-16 | International Security Note & Computer Corporation | On-line and off-line transaction security system using a code generated from a transaction parameter and a random number |
DE3624707A1 (en) | 1985-07-22 | 1987-01-22 | Aisin Seiki | LOCK CONTROL DEVICE FOR VEHICLES |
US4777377A (en) | 1985-09-06 | 1988-10-11 | Jeter Herman C | Vehicle anti-theft system |
US4624578A (en) | 1985-12-02 | 1986-11-25 | Green David L | Rental contract timer system |
DE3679819D1 (en) | 1986-05-06 | 1991-07-18 | Siemens Ag | ARRANGEMENT AND METHOD FOR DETERMINING THE AUTHORIZATION OF PERSONS BY CHECKING YOUR FINGERPRINTS. |
US5089762A (en) | 1986-12-12 | 1992-02-18 | Sloan Jeffrey M | Battery disconnect device |
US4804937A (en) | 1987-05-26 | 1989-02-14 | Motorola, Inc. | Vehicle monitoring arrangement and system |
US4805722A (en) | 1987-06-26 | 1989-02-21 | William Keating | Anti theft system for motor vehicles and the like |
IT1221840B (en) | 1987-12-11 | 1990-07-12 | Roler Srl | REMOTE CONTROLLED PARTIALIZABLE BURGLAR ALARM SYSTEM |
US4990890A (en) | 1988-05-02 | 1991-02-05 | Newby Lionel L | Vehicle security system |
US5023605A (en) | 1988-11-25 | 1991-06-11 | Gte Laboratories, Inc. | Patterned transducer apparatus for correcting spurious signals in said devices |
EP0393660B1 (en) | 1989-04-20 | 1994-02-09 | Kabushiki Kaisha Toshiba | Driver restriction apparatus for restricting a vehicle driver |
IL93567A (en) | 1990-02-27 | 1993-02-21 | Israel Hirshberg | Self renting car |
US5491325A (en) | 1992-08-25 | 1996-02-13 | Huang; Dorge O. | Method and system for payment and payment verification |
US5396215A (en) | 1992-10-28 | 1995-03-07 | Hinkle; Terry A. | Vehicle operation inhibitor control apparatus |
US5544458A (en) | 1993-03-05 | 1996-08-13 | Donnelly Corporation | Vehicle panel assembly |
US5686765A (en) | 1993-03-19 | 1997-11-11 | Driver Id Llc | Vehicle security system including fingerprint and eyeball part identification |
US5519260A (en) | 1993-03-19 | 1996-05-21 | Washington; Valdemar L. | Vehicle security system using drivers license, time of day and passive tag |
DE4332411A1 (en) | 1993-09-23 | 1995-03-30 | Bayerische Motoren Werke Ag | Theft protection for motor vehicles with several control units for vehicle components |
DE4421496B4 (en) | 1993-10-01 | 2006-09-07 | Marquardt Gmbh | Electronic door closing system on a motor vehicle |
DE4416507C5 (en) | 1994-05-10 | 2006-10-19 | Volkswagen Ag | Method for detecting a use authorization for a vehicle |
US5594284A (en) | 1994-10-06 | 1997-01-14 | George Hill | Vehicle security device using key device which completes interrupted circuits |
US5644172A (en) | 1994-12-15 | 1997-07-01 | Hodges; Gerald Marvin | Vehicle anti-theft device |
US5812252A (en) | 1995-01-31 | 1998-09-22 | Arete Associates | Fingerprint--Acquisition apparatus for access control; personal weapon and other systems controlled thereby |
US5602426A (en) | 1995-05-19 | 1997-02-11 | Ecker; Ernest | Automotive theft-prevention system using a key pad and a remote signaling module |
KR100378112B1 (en) | 1995-07-25 | 2003-05-23 | 삼성전자주식회사 | Automatic locking/unlocking system using wireless communication and method for the same |
CA2156236C (en) | 1995-08-16 | 1999-07-20 | Stephen J. Borza | Biometrically secured control system for preventing the unauthorized use of a vehicle |
US5631962A (en) | 1995-10-23 | 1997-05-20 | Motorola, Inc. | Circuit and method of encrypting key validation |
US5660246A (en) | 1995-11-09 | 1997-08-26 | Products Research, Inc. | Vehicle access controller |
JP3229538B2 (en) | 1996-02-15 | 2001-11-19 | 三菱電機株式会社 | Vehicle anti-theft device |
US5819869A (en) | 1996-07-25 | 1998-10-13 | Horton; Timothy D. | Pager actuated automobile disabling system and method for using same |
DE29613136U1 (en) | 1996-08-02 | 1997-11-27 | Rösler, Klaus-Dieter, Dipl.-Ing., 28844 Weyhe | Lock or access authorization system |
JP3405095B2 (en) | 1996-10-22 | 2003-05-12 | 日産自動車株式会社 | Vehicle antitheft device |
US5964877A (en) | 1997-04-07 | 1999-10-12 | Victor; David William | Method and system for programming a security system to protect a protected unit |
US5930777A (en) | 1997-04-15 | 1999-07-27 | Barber; Timothy P. | Method of charging for pay-per-access information over a network |
US6195648B1 (en) * | 1999-08-10 | 2001-02-27 | Frank Simon | Loan repay enforcement system |
-
1999
- 1999-11-03 US US09/433,168 patent/US6738810B1/en not_active Expired - Fee Related
-
2002
- 2002-08-19 US US10/223,552 patent/US20030004875A1/en not_active Abandoned
- 2002-08-19 US US10/223,390 patent/US20020198834A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5510780A (en) * | 1994-02-18 | 1996-04-23 | Profit Plus Corporation | Time cycled security code and activation control system |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153712A1 (en) * | 2002-08-30 | 2004-08-05 | Eric Owhadi | Technical support systems and methods for use in providing technical support |
US20070136570A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Computing device limiting mechanism |
US7669048B2 (en) * | 2005-12-09 | 2010-02-23 | Microsoft Corporation | Computing device limiting mechanism |
US20090254995A1 (en) * | 2008-04-03 | 2009-10-08 | Microsoft Corporation | Client controlled lock for electronic devices |
US8984653B2 (en) | 2008-04-03 | 2015-03-17 | Microsoft Technology Licensing, Llc | Client controlled lock for electronic devices |
US11410165B1 (en) * | 2015-12-10 | 2022-08-09 | Wells Fargo Bank, N.A. | Systems and methods for providing queued credentials for an account |
US11978042B1 (en) | 2015-12-10 | 2024-05-07 | Wells Fargo Bank, N.A. | Systems and methods for providing queued credentials for an account |
US20220084331A1 (en) * | 2017-11-02 | 2022-03-17 | Chikara MATSUNAGA | Vehicle use assistance system and a vehicle use assistance method |
US12093956B2 (en) * | 2017-11-02 | 2024-09-17 | Chikara MATSUNAGA | Vehicle use assistance system and a vehicle use assistance method |
US20210342422A1 (en) * | 2018-08-21 | 2021-11-04 | Chikara MATSUNAGA | System and method for assisting usage of usage object |
CN111726662A (en) * | 2020-05-09 | 2020-09-29 | 广州视源电子科技股份有限公司 | Television use management method and device, television and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US6738810B1 (en) | 2004-05-18 |
US20030004875A1 (en) | 2003-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6738810B1 (en) | Method and apparatus for encouraging timely payments associated with a computer system | |
US20020123964A1 (en) | Payment monitoring system | |
RU2385483C2 (en) | System and method for hypervisor use to control access to computed given for rent | |
TWI446180B (en) | A method, system, and computer program product of controlling use of a computer program | |
US6618810B1 (en) | Bios based method to disable and re-enable computers | |
JP4865177B2 (en) | Behavior of trust status on computing platforms | |
US6484262B1 (en) | Network controlled computer system security | |
US7107366B2 (en) | System, method, and computer program product for uninstalling computer software | |
EP1342149B1 (en) | Method for protecting information and privacy | |
JP3561211B2 (en) | Information processing apparatus and non-volatile storage device rewriting control method | |
US20110099547A1 (en) | Approaches for installing software using bios | |
US20130117859A1 (en) | Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers | |
US20090320145A1 (en) | Apparatus, method, and computer program for controlling use of a content | |
JP2002503365A (en) | Networked installation method and system for uniquely customized, authenticated and trackable software applications | |
JP3764656B2 (en) | Method and computer system for providing security to computers on a computer network | |
KR20130038304A (en) | External boot device, external boot method, inforamtion processing device and network communication system | |
US20080077420A1 (en) | System and Method for Securely Updating Remaining Time or Subscription Data for a Rental Computer | |
US6892305B1 (en) | Method and system for booting up a computer system in a secure fashion | |
US9098677B2 (en) | System and method for automated clock wind back recovery | |
JP2001100855A (en) | Method for monitoring use of execution time for demonstration evaluation software for demonstration | |
US20030028813A1 (en) | Security for standalone systems running dedicated application | |
US8213038B2 (en) | Client call service | |
JP2002091595A (en) | Method and system for managing license | |
US20220164198A1 (en) | Information processing apparatus and bios management method | |
JP2004046756A (en) | License management method, system and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |