NovelPoint Security LLC v. Apple, Inc.

Filing 1

COMPLAINT against Apple, Inc. ( Filing fee $ 350 receipt number 0540-3484924.), filed by NovelPoint Security LLC. (Attachments: # 1 Exhibit A (562 Patent), # 2 Exhibit B (635 Patent), # 3 Civil Cover Sheet)(Tadlock, Charles)

Download PDF
EXHIBIT B U.S. Patent No. 6,212,635 111111 1111111111111111111111111111111111111111111111111111111111111 US006212635Bl United States Patent (10) Reardon (12) (45) (54) NETWORK SECURITY SYSTEM ALLOWING ACCESS AND MODIFICATION TO A SECURITY SUBSYSTEM AFTER INITIAL INSTALLATION WHEN A MASTER TOKEN IS IN PLACE (76) Inventor: David C. Reardon, 73 Silver Rod Dr., Springfield, IL (US) 62707 ( *) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 0 days. (21) Appl. No.: 09/115,185 (22) Filed: ( 60) Provisional application No. 60/053,122, filed on Jul. 18, 1997. (51) (52) Int. Cl? ...................................................... G06F 12/14 U.S. Cl. .......................... 713/165; 713/185; 713/192; 713/201; 711!164; 711!153; 705/76; 705/56; 380/30 Field of Search .................... 709/223; 713/160-169, 713/201, 192, 158, 187; 380/30; 705/62; 711!164 Jul. 14, 1998 References Cited (56) U.S. PATENT DOCUMENTS 4,405,829 4,757,533 4,757,534 5,144,659 5,201,000 5,289,540 5,434,562 5,485,519 5,533,123 5,548,721 5,623,637 5,657,470 5,710,817 5,757,920 5,799,086 5,844,986 5,956,406 5,982,896 * * * * * * * * * 8/1996 4/1997 8/1997 1!1998 5/1998 8/1998 12/1998 9/1999 11/1999 * 9/1983 Rivest et a!. ... ... ... ... .... ... ... ... .. 380/30 * 7/1988 Allen eta!. .......................... 713/192 * 7/1988 Matyas eta!. ......................... 705!56 9/1992 Jones ........................................ 380/4 * 4/1993 Matyas eta!. ......................... 380/30 * 2/1994 Jones .................................... 713/165 7/1995 Reardon ... ... .... ... ... ... ... ... . 340/825.34 US 6,212,635 Bl Apr. 3, 2001 Denslaw ............................... 713/201 Jones et a!. .......................... 711!164 Fisherman et a!. .................. 711!153 Sjooquist ............................... 380/30 Misra et a!. ......................... 713/158 Sudia ..................................... 705!76 Davis ................................... 713/187 Maldy .................................... 380/30 Cordery et a!. ........................ 705/62 * cited by examiner Primary Examiner---Meng-Al T. An Assistant Examiner-Wen-Tai Lin (74) Attorney, Agent, or Firm-John 1. Goodwin; Albert W. Hilburger ABSTRACT (57) Related U.S. Application Data (58) Patent No.: Date of Patent: Apparatus and process are disclosed by which to disable a computer's access to all or a part of the computer's memory system or associated peripherals, so as to protect the computer from accidental or malicious damage of data files or programs that may result from the activity of computer users or computer viruses. This result is achieved by providing the authorized user with a token whereby the user can configure the security gateway to completely or partially disable the peripheral device without disrupting the operation of the computer or other peripherals. The principal hardware component of one embodiment of the invention is the security gateway which in a typical configuration simply adds new security functions to the programmable controllers that are typically used for an 1!0 controller or hard drive controller, although this is not always necessary. The process can just as easily be incorporated into a local network controller, a communications controller, or a main processor board for a system. The speed of the security gateway can be further enhanced by adding additional computational or encryption hardware to the chip sets used in said 1!0 or hard drive controllers. * 1!1996 Weiss ................................... 713/185 23 Claims, 1 Drawing Sheet 7/1996 Force eta!. .............................. 380/4 ( 16 TOKEN ( 14 r---- TOKEN READER --- ( 12 SECURITY GATEWAY 10~ CPU v- 18 PERIPHERAL DEVICES v- 20 COMMON BUS --- HARD DRIVE v- 22 U.S. Patent ( 14 ( 12 TOKEN READER SECURITY GATEWAY ( 16 TOKEN US 6,212,635 Bl Apr. 3, 2001 r--- r 18 PERIPHERAL r DEVICES 20 HARD DRIVE ~ COMMON BUS 10 """ r 22 CPU FIG.1 AUXILIARY MEMORY 30) 32) FILE STORAGE DEVICES 34) CPU AUXILIARY CONTROL UNIT (38 ACCESS MEANS KEY DATA GENERATING MEANS 36) (40 ENCRYPTED KEY FILE FIG.2 42 ) BUS US 6,212,635 Bl 1 2 in the exchange of data. This field of security requires an ability to encrypt data, to limit access to intended persons, to verify the accuracy of transmissions, and to verify the identity of the sender. One popular technique employs the 5 use of asynchronous encryption keys. This technique is based on the use of public/private key-pair encryption system wherein two binary strings (one serving as a "public CLAIM OF PRIORITY BASED ON COkey" and the other as a "private key") are used to encrypt and PENDING PROVISIONAL APPLICATION decrypt data. Anything encrypted with one key can only be The present application is related to co-pending Pro videcrypted by the other. The public key is "published" or at sional Patent Application Ser. No. 60/053,122 filed Jul. 18, 10 least accessible to intended recipients of data. The private 1997 entitled "COMPUTERAND NETWORK SECURITY key is never revealed but is held only by owner of that key. SYSTEM", and based on which priority is herewith claimed To send a private message, the sender encrypts a message under 35 U.S.C. §119(e) and the disclosure of which is using the receiver's public key. Since only the receiver incorporated herein by reference in its entirety. Likewise, the possesses the matching private key, only the receiver can disclosure of Disclosure Document 422490 filed Aug. 11, 15 decrypt the message. 1997 is also incorporated herein by reference in its entirety. To send proof of one's identity, the sender encrypts a BACKGROUND OF THE INVENTION message using his own private key. This message can only be decrypted using the sender's public key. Thus, any 1. Field of the Invention receiver who has access to the public key can verify that the This invention relates to apparatus and methods for com- 20 message was sent by the person who possesses the matching puter security and to the prevention of unauthorized reading private key. In this way, the receiver can use nonor altering of computer data by individuals or programs confidential information, the public key, to verify that the operating on a computer or a computer network. sender possesses the corresponding private key, thus con2. Description of the Prior Art 25 firming the identity of the sender as that corresponding to This invention addresses two major areas of computer public key. security for both individual computers and networked comMany additional cryptographic techniques, well known in puter systems: (1) protection of programs and data at the the art, can be used to enhance this general scheme. For place where they are stored, and (2) secure exchange of data example, proof of the identity of the party associated with a and programs between computers and computer users. 30 public key can be certified by a private or governmental Protecting computer data and programs from unauthoauthority who issues said party a an electronic "Digital rized copying, destruction, or alteration is a major concern Certificate." Also, the integrity of data transmissions can be for governmental agencies, businesses, educational verified by the use of "hashing" formulae that create a short institutions, and individual users. In addition to protecting message digest similar to a check sum. In these ways, for valuable data from spies or malicious programmers, there is 35 example, financial transactions and the like can be a need to protect data from computer "virus" programs electronically, securely, and and privately transmitted to the which can infect a system and cause damage at some later intended party (using the receiver's public key), including a date. Numerous computer security programs have been digital signature (using the sender's private key), verificawritten to provide a large variety of features to protect tion of the sender's of identity (using a Digital Certificate), computer data. These include such features as password 40 and verification of the message content (using the hashed protection, restricted access to specified files, limited menu message digest). To guard against the accidental loss of a options, checksum verification, and scanning for known private key, or to recover corporate data in the event of a key virus programs or virus-like activities. The major shortcomowners death or disability, private keys can be split into ing of these computer security programs is that they must multiple parts that are placed in "escrow" with two or more operate within the computer's working memory space, its 45 separate parties. In the event of loss or disability, the escrow RAM. This means the security software is susceptible to agents can provide to the authorized receiver their escrowed other forms of software which can defeat the program's portions of the key so that it can be reassembled and used to security measures. recover files encrypted with its associated public key. These Software protection of computer data can be enhanced by and other encryption techniques, known to those skilled in the use of specialized computer hardware that provides 50 the art, can be implemented with the present invention. additional security functions. In U.S. Pat. Nos. 5,144,659 The use of asynchronous keys, or public/private key pairs, and 5,289,540, Jones teaches a security method wherein a has been further enhanced by the use of portable electronic hard drive controller provides extra security functions. In devices, often referred to as "tokens," that store the asynU.S. Pat. No. 5,434,562, Reardon teaches the use of CPUchronous key in electronic memory and protect it from independent, user activated key lock switches by which an 55 unauthorized use by means of a personal identification CPU-independent security controller can be configured and number (PIN). Tokens may include both memory for storage reprogrammed in a secure fashion. These inventions illusof keys and encryption processors for encrypting data. These trate a method of enhancing security by making some technologies make the private portion of the asynchronous security functions independent of the CPU. In Reardon's key pair more secure because it does not reside on the invention, these hardware secured parameters require a user 60 computer where the data is created. In addition, the token to insert and activate a CPU independent hardware switch to can be easily transported, like an ID card. The "key" to the change or alter the security parameters. Since this switch is data can therefore be stored away from the data, thus CPU independent, it is impossible for this hardware security enhancing security. To access files encrypted using the device to be bypassed or defeated by software or keyboard owner's public key, a corporate spy would need to (1) gain programming. 65 access to the encrypted files, (2) find and steal the token and (3) discover the owner's PIN which makes the token funcThe second major area of concern in the field of computer security revolves around the area of secure communication tional. NETWORK SECURITY SYSTEM ALLOWING ACCESS AND MODIFICATION TO A SECURITY SUBSYSTEM AFTER INITIAL INSTALLATION WHEN A MASTER TOKEN IS IN PLACE US 6,212,635 Bl 3 4 also disclosed for creating a token that can be used throughout a computer network. The appropriate security parameters and access rights are assigned to new users by the appropriate supervisory and/or 5 security personnel and are associated with the token that is issued to the new user. Assignments of rights, or modification of rights, can only take place after the identities of said supervisory and/or security personnel have confirmed by the security gateway's examination of their own tokens and only 10 under such additional conditions that may previously have been defined. SUMMARY OF THE INVENTION After the security gateway has read a token, confirmed a user's PIN number, and determined the user's rights, the This invention describes a means and process by which to security gateway will refuse to allow the user any access to disable a computer's access to all or part of the computer's memory system or associated peripherals, so as to protect 15 any restricted peripherals or portions of said peripherals. Otherwise, the security gateway will be "transparent" to the the computer from accidental or malicious damage of data user and computer system. files or programs that may result from the activity of computer users or computer viruses. This result is achieved In addition, the security gateway can monitor a computer by providing the authorized user with a token whereby the system's initialization process and monitor the integrity of user can configure the security gateway to completely or 20 any CPU based security software. Furthermore, the security partially disable the peripheral device without disrupting the gateway's tokens can be used for all the functions of secure operation of the computer or other peripherals. data communications that are commonly used in public key cryptography. It should be noted that while the encryption The present invention has hardware and software eleand decryption of the U.X key stored on the token must be ments that are well known and utilized in the field of 25 performed by the security gateway itself, when using the computers and computer security. The present invention, token for secured communications, the main message could however, combines these elements in a novel manner unlike be encrypted by the CPU using any of many encryption any other system known to produce useful benefits, techniques. Only the message encryption key would need to increased security, and reduced costs of manufacture. The principle hardware component of one embodiment of 30 be encrypted by the security gateway using U.XR (see definitions to follow). This point is important because the the invention is the security gateway, which in a typical packets of information that must be encrypted or decrypted configuration simply adds new security functions to the by the security processor would normally be relatively programmable controllers that are typically used for an 1!0 small. In most applications, the larger files could be controller or hard drive controller, although this is not always necessary. The process can just as easily be incor- 35 encrypted using the greater processing power of the CPU. Furthermore, the security gateway of the present invenporated into a local network controller, a communications tion can monitor the integrity of program files and implecontroller, or a main processor board for a system. The speed ment a single site licensing protocol that can prevent the of the security gateway can be further enhanced by adding transfer and use of licensed software to other computer additional computational or encryption hardware to the chip systems or limit the use of software to a specific period of sets used in said 1!0 or hard drive controllers. 40 time or number of trials. With regard to the software elements of this invention, A distinct advantage of the present invention over the computer programmers will immediately recognize many prior art is that it combines the data security features with ways to implement security software that can employ the modern encryption techniques in a way that produces new features of the configuration switch disclosed in this invention. Commercial security programs that allow user 45 and unexpected advantages in terms of both cost and functionality. This invention improves on techniques previously configuration, but lack a hardware security gateway and disclosed by Reardon in U.S. Pat. No. 5,434,562 by elimitoken based configuration include Protec by Sophco, Totalnating additional manufacturing costs, provides greater flexsafe by EliaShim, and Cetus by Foundation Ware. U.S. Pat. ibility for third party software developers, and a provides a No. 5,144,659 to Jones discloses a detailed flowchart for software configuration of a CPU-independent, program- 50 means for generating unique asynchronous key pairs for the authentication of an individual user's identity, secure data mable security device for hard drives, though the Jones transmission, and rights access. invention lacks the user accessible configuration switch of the present invention and the use of a token as described An object of the present invention is to provide apparatus herein. and methods by means of which the authorized user of a The present invention provides a security gateway that 55 computer can protect data and programs stored in peripheral devices, such as mass storage media, from alteration or operates by intercepting the system data path, address bus, deletion by malicious persons, or computer "virus" and control logic signals between the CPU and peripherals, programs, or accidents initiated by unskilled persons. such as hard drives and network communication cards. The Another object of the present invention is to provide a means requested operation is processed according to the criteria established by the security gateway's preprogrammed secu- 60 and method for verification of identity of users and encryption and authentication of data transfers. rity parameters. These security parameters may be unique for each individual using the computer or computer network. This invention is particularly useful in multi-user enviThe security gateway generates a unique asynchronous key ronments. This invention is also useful for persons who pair for each user and creates a token containing the private desire to evaluate new software but are afraid that by doing key for that particular user that is encrypted with the security 65 so will they will be exposing their computer system to gateway's own public key making the token readable only infection with a computer virus. By locking out write access to their computer's hard drive, the system is "safe" and the by the security gateway. More complicated techniques are One disadvantage of the encryption tokens described above is that they are relatively expensive because of the substantial electronics required for each token. In addition, while these tokens provide excellent security in the exchange of data, they cannot directly protect the storage area where the data is stored from being erased or altered by computer viruses or sabotage. It was with knowledge of the foregoing disclosures representative of the state of the art that the present invention was conceived and has now been reduced to practice. US 6,212,635 Bl 5 6 suspect program can be run without risk of it causing an CPU: The Central Processing Unit (CPU) is one or more infection which may later cause loss or disruption of procomputer programmable devices that serve as the primary grams and data. processing center for computer implementation of program By providing complete user control over a computer's instructions, computation, and transfer of information. access to its peripheral devices, this invention allows the 5 CPU Security Program: Program and associated files that user to implement greater security precautions against unauare implemented by the CPU to monitor system security, and thorized programs or users. These options include limiting enforce security restrictions for the system or individual read and write access to the peripheral device, and the ability users. to configure the peripheral device so as to make all or Digital Certificate: A binary information file that can be portions of the device appear to the computer as a read-only, 10 verified as issued by a trusted authority by use of the write-only, or write-once peripheral device. certifying authority's public key where the certifying authorA further object of the present invention is to provide ity vouches for some or all of the information contained in computer security apparatus and methods wherein tokens the Digital Certificate. Typically, a Digital Certificates may can be easily and inexpensively created and issued to as in fact include several layers of Digital Certificates, each many users as desired with customized rights for each user. 15 layer vouching for the layer beneath it. This is known as a Still another object of the present invention is to provide Certification Hierarchy. For example, at the highest level the a computer security apparatus and methods wherein tokens U.S. Post Master's public key is used verify that the can be restricted for use at a single computer or configured enclosed Digital Certificate #2 was issued to the local to operate on selected computers within a network. Metropolis post office. The public key of the Metropolis post A still further object of the present invention is to provide 20 office is used to certify that the Metropolis post-master a computer security apparatus and methods wherein modiissued the enclosed Digital Certificate #3 to the ABC corfications to rights and restrictions can be implemented offsite poration. The public key of the ABC corporation's is used to by a security supervisor under more secure conditions and certify that the ABC corporation issued Digital Certificate #4 wherein a security gateway can be easily programmed to to John Doe in ABC's accounting department. Each certifiblock the installation or use of programs that are not 25 cate would contain information about the public key and approved for use on a computer system or computer netidentity to whom the certificate was issue, a certificate serial work. number, certificate validity dates, and the certifying authoriOther and further features, advantages, and benefits of the ties I.D. information and digital signature, and any addiinvention will become apparent in the following description tional information as may be required. All of the Digital taken in conjunction with the following drawings. It is to be 3 Certificates described in the above example can be contained understood that the foregoing general description and the in a single Digital Certificate that is sent to Bill Smith of following detailed description are exemplary and explanaXYZ, Inc. By examining these Digital Certificates, Bill tory but are not to be restrictive of the invention. The Smith can now evaluate the certainty of John Doe's identity accompanying drawings which are incorporated in and based on the his trust in the hierarchy of certifying authoriconstitute a part of this invention, illustrate one of the 35 ties. Thereafter, the Bill Smith can use John Doe's public embodiments of the invention, and together with the key to privately and securely communicate with John Doe description, serve to explain the principles of the invention using the widely known methods of public key cryptograin general terms. Like numerals refer to like parts throughout phy. the disclosure. Gateway Program: A program and associated files that are 40 implemented by the security gateway to monitor system BRIEF DESCRIPTION OF THE DRAWINGS security, and enforce security restrictions for the system or FIG. 1 is a schematic block drawing of a computer system individual users. according to the principles of the present invention that Key Pair: A complimentary pair of encryption keys illustrates the relationship between the CPU, the security whereby a message encrypted with one part can only be gateway, the token reader, and peripheral devices that may 45 decrypted by the other part. This is also known by those in be subject to security restrictions implemented by the secuthe art as an asynchronous key pair or as a public key rity gateway; and cryptography. FIG. 2 is a functional block diagram illustrating the Non-volatile memory: Memory locations that preserve elements of a security subsystem for the present invention. their stored information even when power has been removed 50 DETAILED DESCRIPTION OF THE from the memory banks and/or computer system. Typical PREFERRED EMBODIMENTS examples of non-volatile memory include ROM, EEPROM, Flash memory devices, and magnetic storage media. In the ensuing description of the present invention, the following definitions will be utilized: PIN: Personal Identification Number. This can be any Block Encryption: An encryption method that uses a 55 password associated with the user of a token to prevent the token's unauthorized use by a person who does not know the single key for both encryption and decryption and that PIN. encrypts groups of bits rather than a single bit at a time. Private Key: The part of a key pair that is reserved by the Bus or "host computer bus": The electronic paths within "owner" of the key pair and not disclosed to any other party. the host computer that carry address, control, and data Public Key: The part of a key pair that is shared with signals. As used herein, the term "bus" should be considered 60 parties with whom the owner desires to exchange files. to also include any alternate means of data interface with the CPU and other internal or external devices. A fiber optic Restricted Memory: Non-volatile memory which is accessystem could be one such alternative. sible only to the security gateway. This may include reserved sectors of the hard drive and tokens to which the GATEWAY Computer virus: Any potentially destructive computer program that may cause malfunction of the computer, cor- 65 PROGRAM will never allow access requests from the CPU. ruption of files, loss of data, or other unwanted and unexFor backup purposes, restricted memory can be encrypted pected results. using SG.OR prior to transfer to backup media. ° US 6,212,635 Bl 7 8 Security gateway: A programmable device that is indehistory, and the file is flagged in a manner such that the pendent of the CPU and situated in such manner as to be able security gateway will not allow it to be copied to any other to control or block the CPU's access to secured peripherals media. such as mass memory storage devices, network communiSSL.2-Acopy of SSL.l which is embedded in the software cations devices, and the token reader. This device would 5 and can be freely copied with the program to the hard include sufficient nonvolatile memory and random access drive or backup diskettes. memory for implementation of its functions. U .0-The master configuration key for the security gateway Shell: A security program consisting of two parts, a CPU held by User 0, where User 0 is the person chiefly Security Program and a Gateway Program, wherein each responsible for configuring the computer's security. In part works with the other to enhance the total system 10 addition to any other necessary information, U.OR is security. stored on the MASTER TOKEN in a file encrypted with SSL: Single Site Licensing protocol used to prevent SG.lB. U.OB may be stored on the hard drive or even unauthorized use or duplication of software or data. made available on a network if the MASTER TOKEN is Token: A removable memory device capable of storing intended to be used at other sites. one or more encryption keys. This token may be as simple 15 U.l-Asecurity gateway configuration key used for on-site as a magnetic strip or as complex as a PCMCIA card. confirmation of a network issued upgrade of the Security Token Reader: An input device by which means the gateway security parameters. U.lR is stored on the on-site security gateway can read the information encoded on a diskette in a file encrypted with SG.lB. U.X-A key for individual user number X. A U.X diskette token. contains a file which is encrypted with SG.lB that con20 Definition of Key Names: tains U.XR and any additional security information such In the specification that follows abbreviations are used to specify particular key pairs and, when appropriate, the token as rights, passwords, and a Digital Certificate associated associated with the private portion of the key pair. The SG with the individual user. Returning now to FIG. 1 which illustrates in a broad sense prefix refers to a Security Gateway related key. The U prefix refers to a key that is assigned to an individual user, and SSL 25 one embodiment of a computer system according to the present invention. In the following description of the FIG. 1 refers to a key that is issued to parties in a single site embodiment, file control functions will be discussed, and licensing of software. The prefix CA is used by a Certifying Authority that issues a Digital Certificate. Since multiple such basic control functions are described in U.S. Pat. No. keys may be involved for each party, each prefix is follow 5,289,540 to Jones. by a decimal point and a number identifying which key pair 30 Because they are so well known and in such common use, is being referred to, and either the letter R or B where R the description of this invention will be based on the use of a personal computer (PC) using on operating system such as refers to the private portion of an asynchronous key pair and Windows 95 or MS-DOS. However, it should be understood B identifies the public portion of the key pair. AK.l-Akey pair used by a certifying authority to assist in that this is done for the sake of convenience and simplicity anonymous but traceable transactions wherein the anony- 35 of description and the invention should not be considered as mous user's identity and Digital Certificate is sealed with limited to these or any other operating system or computer AK.lB. AK.lR is divided and placed in escrow so the equipment. anonymous users Digital Certificate and identity can be The system of FIG. 1 includes a control processing unit (CPU) 10, a security gateway 12, a token reader 14 for recovered, with proper authorization such as a court order, in the event there is a subsequent criminal investigation or 40 reading a user token 16, a hard drive memory 18, protected peripheral devices 20 such as network communications, and civil dispute. CAl-A key pair used by a Certifying Authority to verify a common bus 22 for peripheral devices. that some or all of the information contained in a Digital FIG. 2 shows the functional elements of a security subCertificate encrypted with CA.lR has been verified the system including a programmable auxiliary memory 30 and 45 auxiliary control unit 32; file storage devices 34 for storing Certifying Authority. CS.l-The security gateway key pair of the central server of files, with at least one of the storage devices capable of a computer network. reading and writing to removable storage media; means 42 SG .0-A key pair belonging to the security gateway manufor attaching the security subsystem to the digital computer bus; means 36 for generating private/public key pair data facturer. SG.OB is factory installed into the security gateway. This allows for authentication of manufacturer 50 and storing the private key data in a file location of the file upgrades of the security gateway's and SSL standards. storage devices 34 which is under the control of the security The upgrade may include the issuing of a new public key subsystem auxiliary control unit 32 and to which access by for the manufacturer. For authentication purposes, the central processing unit 10 of the digital computer can be denied; means 40 for using the public key to create an upgrade must by verifiable by including one or more files encrypted with SG.OR. 55 encrypted key file which is written to a removable token, such that the encrypted key file can only be decrypted and SG.l-The security gateway's own key pair, generated authenticated by the security subsystem using the correupon activation of the security subsystem functions. This key may be generated using site specific "seed numbers." sponding private key of the private/public key pair; means A corresponding Digital Certificate may include user ID 38 for permitting access to the security subsystem by the and site identification information. 60 computer operating system for installation and modification SG.X-The security gateway key pair of computer other of security requirements only when the removable token is than the one that created a particular token where X is a placed into the appropriate file storage device and has been number identifying the security gateway and host comauthenticated by the security subsystem; and by a combination of these means requiring the security subsystem to puter. SSL.l-A file on the original diskette of an SSL protected 65 deny file storage device and peripheral device access program or data set. This file contains the SSL protected requests by the central processing unit when the security program's Digital Certificate, including a "marriage" requirements are not satisfied. US 6,212,635 Bl 9 It should be noted that in the interest of speed, much of the encrypting can be performed using a faster shared key algorithm (such as a Data Encryption Standard (DES) key) if the shared key is itself encrypted using the appropriate public or private key. The public or private keys, therefore, merely serve as an authentication barrier to access of the shared key. The shared key, of course, can be uniquely generated for each transaction. In the embodiment of FIG. 1, the functions of the security gateway 12 may be integrated into a hard drive and floppy diskette controller. Because most hard drive controllers already use a programmable processor to implement various functions, in many cases the functions of security gateway 12 could be added as additional subroutines in the firmware of the controller without substantial hardware modification. However, because encryption algorithms may be complex, additional memory and/or logic circuitry that enhances the speed of encryption/decryption could be added, if necessary, to prevent any degradation in speed. Because the security gateway 12 has control over one or more hard drives 18, it is most cost effective to reserve space on one or more hard drives for the security gateway's own use. For all practical applications, the security gateway's ability to "leech" as much memory space as it needs off of the system's hard drive for its own purposes ensures that there is no practical memory limit on the security gateway's program size or security parameters. Because these reserved sectors are under the complete control of the security gateway 12, they would never be made accessible to the CPU 10 or the host computer's operating system. For added security, the information contained in these sectors can also be encrypted with the security gateway's own public key (SG.lB). In this event, even if the hard drive was moved to a different computer, these reserved sectors would be indecipherable to any device other than the security gateway that created them. To provide a means of recovering these files in the event of a hardware failure, the public key could be divided and placed in escrow with trusted authorities. For the sake of convenience, the security gateway's reserved sectors of hard drive space will be designated with negative numbers. In this typical example, upon the powering up of the computer system the security gateway, 12, would reads its own factory installed GATEWAY PROGRAM from nonvolatile memory. It might also check for extensions to its GATEWAY PROGRAM on, for example, sectors -1 through -5 of the hard drive. The GATEWAY PROGRAM and any extensions that may be installed contain the instructions and security parameters that control the security related activities of the security gateway. The GATEWAY PROGRAM can be either very simple or very complex, depending upon the needs of users and the marketing goals of manufacturers and security software vendors. The token reader 14, is read directly by the security gateway 12. In a typical configuration, the token reader could be a standard floppy diskette drive. Other devices can be used as a token reader, the only requirement being that the device must be able to read and write to a removable memory device that can serve as a token 16. Because the security gateway is interposed between the token reader and the CPU 10, information stored on the token is secure from CPU access unless such access is specifically provided for by the GATEWAY PROGRAM. In such cases, the security gateway would echo the data reads and writes from the CPU to the token reader 14. In a typical example, a new computer system would be shipped with a rudimentary GATEWAY PROGRAM and a 10 MASTER TOKEN that the buyer would used to customize the security features of the computer. To initialize the security gateway, 12, and setup the security parameters, the buyer or security supervisor would place the MASTER 5 TOKEN in the token reader, 14. Optionally, the manufacturer could design the GATEWAY PROGRAM to require that the MASTER TOKEN be in place before the computer is powered up. The original manufacturer would include as part of the GATEWAY PROGRAM stored in restricted 10 memory the key SG.OB. The MASTER TOKEN would include one or more files encrypted with SG.OR. By use of SG.OB the Gateway Program can verify that the MASTER TOKEN is indeed a token issued by the manufacturer and can be "trusted" as a secure device for initiating security 15 software or parameter changes. It should be noted that SG.OB is never published in any public way. It would only leave the factory in firmware for a particular series of security gateway devices. SG.OP would never leave the manufacturer's premises at all, except in a divided escrowed 20 form. As is true in many other uses of key pairs in this invention, access to both the "public" and "private" portions of the key pair is strictly protected. Under no circumstances would the GATEWAY PROGRAM ever transmit SG.OB to another device. 25 After determining that the MASTER KEY is in the token reader, the GATEWAY PROGRAM would scan the MASTER KEY to determine if this is a first time use of the MASTER KEY and examine the security gateway's restricted memory to determine if SG.l had already been 30 created. If the GATEWAY PROGRAM determines by these means that initialization program should be run, said program would be loaded into the CPU to provide a means of interaction between the user and the security gateway. To enhance the security of this process, it would be advisable 35 not to allow any other programs to be allowed to run during any initialization or modification of security parameters. The manufacturer could enforce this provision through subroutines in the GATEWAY PROGRAM that would be immediately obvious to any computer programmer. 40 Upon confirmation from the user that the first time initialization should proceed, the security gateway would request the user to enter personal information, PIN numbers, and initial security preferences. If desired for the purpose of added security, the new user can also be presented with 45 dozens of questions of a personal nature (such as the name of one's first pet). These questions can then be randomly used as a secondary check after entry of a correct PIN to further verify a user's identity. The security gateway might also request additional information about the computer 50 configuration and computer network from the user or directly from the CPU. After enough information has been collected to construct a unique profile the security gateway would use a hash or checksum of this "random" data to create a unique seed for use in generating SG.l, a key pair 55 that would be unique to this particular security gateway. After SG.l has been created, the security gateway is distinct from all the other security gateway's produced by the manufacturer. Both portions of SG.l are stored in restricted memory locations. Using SG.lB, the security gateway creates a file that is 60 stored, perhaps at a specific and predetermined location, on the MASTER TOKEN. This SG.l encrypted file thereafter serves as a means of determining that the MASTER TOKEN has been configured. A PIN would be selected and encrypted 65 and stored on the MASTER TOKEN with additional security parameters, passwords, certificates of authority, and other information that may be necessary for a particular US 6,212,635 Bl 11 12 security needs. In addition, the security gateway would also Tokens can be created for each individual and also for create U.O, a key pair that is assigned specifically to User 0, specific applications. For example, a corporate accountant the owner of the MASTER TOKEN. U.OR would be stored might have two tokens. The first would be a general use on the MASTER TOKEN in an encrypted form using token that provides him with access to all the general SG.1B. U.OB would be stored in a restricted area. U.OR can 5 purpose programs he might need such as word processing thereafter be used as the private key of the MASTER and Internet access with the exception of access to the accounting books. The second token that gives him access to TOKEN holder and can be used for verification of identity, the accounting books might be separately stored under lock access to modification of security parameters, secured and key, thus providing an additional level of security. communications, and for personal file encryption. To preserve against the loss or destruction of any token After this first initialization, the MASTER TOKEN can be 10 created by the security gateway, including the MASTER used to reconfigure security parameters or to create new tokens for one or more users with rights either equivalent to TOKEN, the GATEWAY PROGRAM may include subrouthose associated with the MASTER TOKEN, or more tines that will take the information and keys stored on a commonly, with restricted rights. Every time the security token and divide them into multiple parts that can placed in gateway creates a new token, it would create a unique key 15 escrow onto multiple tokens. By use of these escrow tokens, pair U.X for the person to whom the token is issued, User X. the security gateway can reconstruct lost or destroyed U.XR and an associated PIN would be stored on the token tokens. SG.1R may also be divided and placed into escrow in a form encrypted with SG.1B. U.XB would be stored in to provide a means of recovery in the event the security the security controllers restricted memory or, if desired, gateway itself is rendered inoperative. "published" in a file accessible to the CPU or computer 20 Most ideally, the security gateway would automatically network. A Digital Certificate, security parameters, and sense when a token is inserted into the token reader and the other user specific information could also be incorporated security SHELL would automatically activate a window into encrypted files on the token. The specific rights and requesting the user to enter his or her PIN. Alternatively, the restrictions associated with each user can saved in the user can activate a program that instructs the computer to log security gateway encrypted files on the token, in restricted 25 on a new user. After confirmation of the PIN, the user could be instructed to remove the token before allowing access to memory, or, in a network application, in a restricted memory ensure that user does not forget to remove the token and location of central server's security gateway. Once the token properly secure it. The security gateway can record multiple has been created and a PIN and rights have been assigned, entries of the wrong PIN on the token and in other memory User X can thereafter use it for any and all security functions, including verification of identity, identification of 30 locations and either disable the token or sound an alarm if computer access rights, secure file communications, and the number of attempts exceeds a predefined security limit. personal file encryption. Additionally, the security gateway can "time out" a user who In a typical application, the User X would place the token, has not been active at the computer after a predefined period. 16, in token reader, 14. The token reader would transfer These and other techniques commonly used in computer information from the token to the security gateway, 12, and 35 security can easily be made part of the GATEWAY PROverify the users identity by activating a subroutine that GRAM or SHELL. The previous discussion has described the basic steps that would allow the user to enter a PIN. After confirmation of the PIN, the security controller would determine the access are always required to implement any of the security funcrights of User X and limit the CPU's access to data and tions disclosed in this invention. Namely, (1) the security peripherals according to these assigned rights. Requests to 40 gateway must be initialized to create its own unique SG.1 read or write to restricted files would be denied and might key pair; (2) A user specific key pair, U.X, must be created; also be recorded for reference by the Corporate Security (3) U.XB must be stored in a restricted area or "published" Officer or trigger an alarm. The GATEWAY PROGRAM can in a place other than on the token; and (4) U.XR and an associated user's PIN must stored on a token, 16, in an also conceal the existence of any files or peripherals such as peripherals 18 and 20 that are "downline" from the control- 45 encrypted file that can only be opened with SG.1R. ler and not directly on the CPU bus. By monitoring CPU bus It should noted, however, that while the encrypted files on the token must be secured so that only the security gateway address, data, and control signals, the security gateway can can open them by use of SG.1R, it is not necessary that they also detect if the CPU attempts any unauthorized reads or writes to peripherals on the CPU Bus, 22. While such actually be entirely and directly encrypted with SG.1B. peripherals cannot be protected in the same fashion as 50 Greater encryption speeds can often be achieved, without "down line" peripherals which have the security gateway loss of security, by the use of other encryption techniques. One widely used method in public key cryptography interposed between themselves and the CPU, the security involves the creation of a "lockbox." A lockbox is a file or gateway can still provide some protection for "up line" peripherals. Specifically, unauthorized CPU access to "up file segment that contains a randomly generated blockline" peripherals or files can result in retaliatory loss of 55 encryption key that was used to encrypt a larger data file. The lockbox is created by encrypting the block-encryption rights to "down line" peripherals, the sounding of an alarm at the computer site or to a network supervisor, or a forced key with the private key of a key pair, in this case, SG.1B. shutdown of the host computer which can easily be achieved To retrieve the information stored on the token, the security gateway would (1) open the lockbox with SG.1R and by contesting the CPU's control of the address bus and control signals, rendering them inoperative. In this manner, 60 retrieve the block encryption key and (2) use the block encryption key to retrieve all the additional information the security gateway is able to monitor and control User's stored in the user files, such as U.XR, the user's PIN, a access to all peripheral devices. Even a very skilled computer programmer could not program the CPU to get around Digital Certificate, security rights information, history of the independently enforced security parameters that are use, et cetera. The accuracy of the stored information may enforced at the level of the security gateway. 65 also be verified by the use of hashing techniques to produce a message digest that is stored on the token with the other As described above, this invention makes it easy to create corresponding files. tokens at a cost as little as the price of a single diskette. US 6,212,635 Bl 13 14 Finally, it should be noted that for backup purposes the the hard drive. It may then check to see if there is a system security gateway can use SG.OR to encrypt restricted security shell program (hereinafter SHELL) which has been installed, for example, in sectors -11 to -20. The SHELL memory in reserved sections of a hard drive and transfer these encrypted files to backup media. If the security conitself may consist of two parts: all or portions of a security troller has direct access to the backup media, these files 5 program that is to be implemented by the CPU (hereinafter the CPU SECURITY PROGRAM) and further extensions could also be completely concealed from the CPU and all users. on the security gateway's own program that are provided by the CPU SECURITY PROGRAM vendor to establish addiHaving identified these steps that are most basic to all embodiments of this invention, it would now be instructive tional security rules governing the interaction between the to examine a simple application of this invention. For this 10 CPU SECURITY PROGRAM and the security gateway. example, consider the case of a simple home environment. If a CPU SECURITY PROGRAM is in place, the security The parents have purchased a new computer wish, in gateway could be configured to ensure that the CPU SECUgeneral, to allow their children complete access to everyRITY PROGRAM is installed at the appropriate point in thing on the computer system. However, they would like to boot up process of the system. The SHELL could be a reserve a portion of the hard drive, or a separate logical 15 factory installed, or installed by the user. Let us assume that drive, that will contain certain business programs and related there is at least a rudimentary SHELL that is factory files. They hope to protect these business files from acciinstalled and is capable of running a simple configuration dental corruption, computer viruses that may be transmitted setup like that used for BIOS configurations, if only for the through borrowed software or "surfing the net" or from purpose of facilitating the installation of a vendor supplied teenage snooping. In this simple case, it would be sufficient 20 SHELL. to have only a single user token that is in the custody of the The following describes one of many ways in which the parents. This may in fact be the factory issued MASTER security gateway could be used to install or upgrade the TOKEN. On first use of this token, U.O is generated and the SHELL. To install a new security SHELL, the system must parents select a PIN number to secure the token. To protect first be powered down. To ensure that the RAM is comtheir business records, the parents use MASTER TOKEN to 25 pletely discharged, a long powerdown may be required. This long powerdown requirement may be ensured by using a instruct the security gateway to only allow the holder of the port on the security gateway controller that can detect the MASTER TOKEN access to, for example, logical drive H state of a slow charge capacitor circuit to ensure that the that they are reserving for their business applications and business data. Non-token users would not even be allowed system has been powerdown for a long enough period to be to see that drive H and its files exist, much less to access or 30 adequately discharged. This is done to ensure that all RAM has been cleared so no virus or "monitoring" virus can be alter them deliberately or by accident. Additionally, the parents wisely configure the security gateway to treat key lurking in the background. Alternatively, the security conprograms and data files, such as those used in the operating troller can pass an initialization program to the CPU that system, as read-only. Non-token users, and any programs would instruct the CPU to clear all RAM addresses, or in activated by non-token users, would not be allowed to alter 35 some configurations the security controller may be configor change any of these files. If desired, these files could also ured to directly write to RAM itself. While the system is be hidden from directory reports to non-token users. The powered down, the MASTER TOKEN would be loaded into parent's children in this example, would be free to boot up the token reader. Upon power up, the security gateway would load it's own GATEWAY PROGRAM and the computer at any time and to do anything that is not restricted to non-token users. They could run programs, save 40 extensions, if any, and immediately check to see if the files, and erase files on logical drive C, for example, but all MASTER TOKEN was in the token reader. If the MASTER of the business programs, business data, and protected TOKEN was detected and authenticated, the security gateway defers or aborts all other initialization procedures and program files would be completely protected from accidenprepares to run the GATEWAY PROGRAM upgrade subtal or deliberate corruption by either computer viruses or children's accidents. In this very simplest of examples, the 45 routine. After confirming the user PIN associated with the GATEWAY PROGRAM would do little more than enforce MASTER TOKEN, the security gateway would allow a a table of restricted sectors on the hard drive. The children vendor supplied SHELL to be loaded into the secure area might not even be aware that the security gateway was in (sectors -10 to -20, in our example) from the designated existence or functional. The only imposition on the users is input source. Alterations of the SHELL could be further that the parents would be required to insert the MASTER 50 restricted by requiring additional passwords or vendor supTOKEN in the disk drive and enter their PIN in order to gain plied tokens and certificates of authority. Failed attempts to access to their business applications. As will be described enter the proper tokens or passwords could be monitored to below, much more elaborate security hierarchies can be limit the number of attempts, provide delays between attempts, and reported to report attempted security breeches. developed with little more imposition on users. Upgrading the Security Shell 55 It would be possible, and perhaps preferable, for the manufacturer of the security gateway to publish interface stanThe security gateway can also be used to assure the integrity of security programs that are operating at the CPU dards for the GATEWAY PROGRAM for developers of or network level. In this respect, the security gateway is security SHELLS. This would invite competition and creopen, under carefully controlled circumstances, to customiativity in the development of ever better and less obtrusive zation. The following is a description of a typical example 60 security SHELLS. Software developers would, however, be unable to sell their new SHELLS to the public until their of the interactions between the security gateway and a CPU SECURITY PROGRAM. programs had been accepted by the manufacturer and a license fee collected. At that point the manufacturer would In this typical example, upon the powering up of the computer system the security gateway would reads its own issue the new SHELL a Digital Certificate and use SG.OR to factory installed GATEWAY PROGRAM from nonvolatile 65 encrypt a software upgrade token. Without this SG.OR memory. It might also check for extensions to its GATEsoftware upgrade token, security gateway's would block any WAY PROGRAM on, for example, sectors -1 through -5 of attempts to delete or alter the existing SHELL. In essence, US 6,212,635 Bl 15 16 then, the communications protocol between the CPU SECUSHELL, which consists of a CPU SECURITY PROGRAM RITY PROGRAM in a SHELL and the GATEWAY PROand extensions to the security gateway GATEWAY PROGRAM can essentially be public knowledge. Security is GRAM could involve an elaborate scheme of checks and maintained by the manufacture's control of the SG.OR. Prior double checks that serve to constantly check and verify the to approval of a new SHELL and licensing, the manufacturer 5 security system's integrity. could provide developers with a unsecured non-consumer For example, when the security SHELL is first installed, version of the security gateway that would freely accept any a checksum of the CPU SECURITY PROGRAM could be software changes for the purpose of testing and evaluation. stored in the security gateway's independent non-volatile When a SHELL upgrade has taken place, the security memory. Thereafter, whenever the computer was booted up, gateway can be reprogrammed to accept future upgrades 10 the Security gateway would check the CPU SECURITY only after the use of an additional upgrade token from the PROGRAM'S checksum and compare it to the stored value software vendor that has provided the present SHELL. It before allowing it, or any other programs in the startup would even be possible, with the agreement of the software menu, to be installed. Furthermore, when the CPU SECUdevelopers and the security gateway manufacturer, to transRITY PROGRAM is first installed at SETUP, the Security fer future authorizations to the software developer or another 15 gateway could generate a random number (seed number third party. from date, time, and available hard drive space) which could Changing Security Parameters then be stored as the one and only SYSTEM ACCESS Assume that by using the MASTER TOKEN to enter the number. This number would stored in the security gateway's GATEWAY PROGRAM upgrade subroutine as described nonvolatile memory or restricted portion of the hard drive. above, the authorized user would be presented with three menu options: UPGRADE, TABLE MODIFICATION, and 20 Only factory test equipment could clear this number. This NORMAL OPERATION. The UPGRADE option would be SYSTEM ACCESS number would then passed out to the selected to install new extensions to the GATEWAY PROCPU SECURITY PROGRAM, which would alter itself to GRAM or to install or upgrade a CPU SECURITY PROincorporate this number at one or more places in the body of GRAM or SHELL. By selecting TABLE MODIFICATION the key files of the CPU SECURITY PROGRAM. A new menu, the user could change passwords, redefine restrictions 25 unique checksum would then be calculated for the altered on directories and files for particular users or user groups, CPU SECURITY PROGRAM and stored in security gateand define other security programs that would be allowed to way non-volatile memory. At this point the installation procedure would then be complete and the CPU SECURITY alter the basic SHELL. These security parameters might PROGRAM would be uniquely identified and "married" to include both those enforced by the security gateway and all or part of those enforced by the CPU SECURITY PRO- 30 the Security gateway. Thereafter, whenever a reboot GRAM. By selecting the NORMAL OPERATION menu occurred, the security gateway would calculate the checkoption, the user would exit the security upgrade subroutine sum of the CPU SECURITY PROGRAM as it is read from the hard drive and verify it against the pre-stored value to and the computer initialization would resume as normal with confirm the integrity of the program before allowing the both the GATEWAY PROGRAM and SHELL, if any, in operation. Under normal operation the CPU SECURITY 35 system to continue with its normal operation. PROGRAM would be allowed to read its own restricted As an additional layer of security, prior to allowing any access tables (which might lie in sector -12, for example) writes, the security gateway could require that the CPU but it would not be allowed to alter them. Additional tables SECURITY PROGRAM provide it with both the SYSTEM ACCESS password and PSEUDO-RANDOM PASSWORD that must be more dynamically accessible to the CPU SECURITY PROGRAM for update and alteration could be 40 which is regenerated at each request. This PSEUDOstored in other areas of the hard drive and would be RANDOM PASSWORD would be identically calculated by protected by methods described elsewhere. both the Security gateway and CPU SECURITY PROGRAM (sharing the same algorithm which can be made Additional Security Enhancements Made Possible by the Interaction of the Security Gateway and a CPU Based unique to the system by using the SYSTEM ACCESS 45 password as part of the calculation). The SEED at which Security Program each of the PSEUDO-RANDOM PASSWORD generators Essentially, what this method does is to create a peer to would begin their calculations would be generated by the peer relationship between the CPU and the security gateway. The CPU cannot demand information, but can only request security gateway and passed out to the CPU SECURITY what the security gateway allows. In addition, because the PROGRAM periodically, or on each reboot of the system. security gateway's program and security parameters can be 50 These internally generated passwords would serve two functions. First, they would ensure that any program seeking modified under carefully controlled conditions, the security access to the hard drive was passing these requests through software developers will continue to develop new and the CPU SECURITY PROGRAM which is where the passcustomized ways of meeting the security needs of individuals and corporations. Indeed, the security gateway can be words are added to the command strings. Second, the use of programmed to act as an independent "watchdog" over the 55 an ever changing password sequence would make it more difficult for a "spy" virus to intercept the passwords. If the CPU SECURITY PROGRAM. In other words, read and write access to the hard drive can be allowed only when the algorithm is made unique for each system, it would be even security gateway has verified that the memory resident CPU more difficult for the "spy" to attempt to break the algorithm. SECURITY PROGRAM is active and intact. Whenever the Finally, the security gateway can be a "watchdog" over CPU SECURITY PROGRAM, which would include many 60 the passwords themselves. In this scheme the CPU SECURITY PROGRAM would store the passwords, and a critical security features itself, is not running or is under threat of portion of its own code, in RAM addresses that are monibeing corrupted, the security gateway's GATEWAY PROGRAM would independently restrict access to peripherals or tored by the Security gateway. To ensure that only the force a computer shutdown or reboot to restore the CPU working CPU SECURITY PROGRAM is accessing these 65 passwords, the security gateway would monitor the CPU's SECURITY PROGRAM. Additional peer to peer interactions can be developed to RAM accesses to ensure that critical sections of the CPU enhance the system's security. For example, the security SECURITY PROGRAM are run in proper sequence prior to US 6,212,635 Bl 17 18 the password access. The location of the CPU SECURITY access through use of the token, U.XR is encrypted with PROGRAM in RAM would be pre-defined, or would be SG.XB which is encrypted with SG.lR, where SG.l is the passed out to the Security gateway during the initialization issuing computer. This "key ring" method provide a means of the SHELL and stored in security gateway secured by which the other security gateways can verify that the memory location. Through this method, the security gate- 5 token was indeed created at an authorized site in the netway would always know what memory locations should be work. When using the token at another host computer #5, for watched before the passwords are even accessed. If another example, security gateway #5 would examine the key for a program attempted to read these sections of RAM tagged as designator identifying where the token claims to have been created. Security gateway #5 would then examine network critical to security, the security gateway could then flag the intrusion, sound an alarm, or even disable further access to 10 files to find the published key SG.lB and examine the token for a key file authorizing it to be used at host computer #5. the drive. This same technique can be used to monitor the This file would be decrypted using SG.lB. If it decrypts bootup process. In this latter case, the security gateway would store in a secured memory location a record of the properly, security gateway #5 has confirmed that this file was created at security gateway #1 has therefore been sequence of events which must occur on the BUS during a valid bootup. Any variation from this predefined sequence 15 created under controlled and secure procedures. But the would generate an appropriate security violation alarm. users file is further secured by use of SG.SB which security Still another level of security can be attained by providing gateway #5 can decrypt using its own SG.SR. This last step for the CPU SECURITY PROGRAM to optionally transmit releases U.XR and the PIN for use by the security gateway a special command to the Security gateway which essenat host computer #5. tially says, "I'm suspicious. I think my process have been or 20 Fourth, the security gateway at the network server can be are about to be corrupted. Force a shut down until the next used as a central clearing house for all user logon processes. reboot." After receiving this command, the Security gateway In this case, all the security gateways would be configured would irrevocably lock out the hard drive, sound the alarm, in a manner that would allow the security gateway procesand respond only to an U.O token. For diagnostic purposes, sors to communicate over the network, preferably in a the security gateway would save information about these 25 manner that is independent of the CPUs. In this scheme, each SG.XR would be registered with the host computer. and subsequent security breeches a secured memory location that can be read or cleared only with the validated U.O token. This would be most securely accomplished encrypting These examples demonstrate how the use of two indeSG.XR with the CS.lB and then again with SG.XB. As described above, the server could confirm which security pendent processors, the CPU and the security gateway, simultaneously running their own independent security 30 gateway in the network that the packet came from and only programs, can be utilized to substantially enhance computer the server security gateway could decrypt SG.XR by using CS.lR. With all the private keys collected at the security security. Additional permutations and techniques can easily gateway of the central server, tokens could then be created be devised with various levels of complexity and would fall within the scope of this invention. simply by using SG.lB. A token used at host computer #5 35 would be identified as created at host computer #1. The Token Access at Multiple Sites in a Network In many applications, it may be desirable to have a single SG.lB encrypted file would be encrypted with SG.SR and token work at multiple computer stations. In this context, the sent to the central server. Since the central server security gateway alone has both SG.SB and SG.lR available in its token may be likened to a key chain, containing the keys to restricted memory, it can retrieve the file that provides multiple computers. This end can be achieved in one of several ways. 40 access to U.XR and the users PIN and other information. This file would then be encrypted with SG.SB then again First, the user can be registered at each individual workstation with each security controller generating a different with CS.lR. This file would then be transmitted back to U.XR key secured to be readable only by each security security gateway #5 where its authenticity would be verified controllers own SG.XR key. The user could elect to use the by decrypting first with CS.lB and then with SG.SR. In this same PIN at each site. If the token is a diskette, there would 45 way, security gateway #5 would be able to retrieve U.XR be sufficient memory space to stork a large number of keys. and other associated information. This process could be repeated every time the token is used at host computer #5. Second, if the workstations are networked together the Alternatively, security gateway #5 could, at this point, add public keys of each security gateway, SG.XB, can be its own copy of the user files to the token by encrypting them securely transmitted to all of the other security gateways. At the time the token is created, the supervisor issuing the token 50 with U.SB in the usual manner. In this way, the "key chain" could designate which terminals the user would have access would automatically have new keys added for each site to and the security gateway at the issuing computer would immediately after its first use at each site. Other Network Applications use the published SG.XB keys of the designated computers to create separate key files encrypted using each designated In a network application this invention makes it easy and computer's SG.XB with each file containing U.XR, the PIN, 55 intuitive to establish a security hierarchy. For example, the highest ranking security officer on the network, the Corpoand any other necessary information. The user's file for each rate Security Officer, might issue user tokens to each departdesignated computer could be stored under a file name using ment head paying particular attention to segregation of files a portion of designated sites security gateway's public key, or some other site identifying tag, thus making it easy for the and memory allocations so that problems or security security gateway to identify the appropriate file. The user 60 breeches that might occur in one department do not spill over into other departments. Each manager under the departcould then use the token at any of the designated computers. ment heads would receive a token with rights no greater than The security gateway at each site would merely need to the Department Head and most probably with additional search the token for the appropriate file that can be decoded with it's own SG.XR. restrictions. Tokens would not necessarily all be created by the CorThird, the method described above could be further 65 porate Security Officer. Department Heads and their manenhanced by adding an additional encryption level using agers could also generate tokens for each user of a workSG.lR. In this case, for each site where U.X shall be allowed US 6,212,635 Bl 19 20 station in their department. New tokens would always be that already described in option four of the section entitled "Token Access at Multiple Sites in a Network." In either limited in rights to within the bounds of issuing parties own case, the Corporate Security Officer would in this way be allowed limits. For example, a receptionist in the bookkeepable to access a MASTER SECURITY TABLE, that is well ing department with 100 megabytes of hard drive space allocated for her word processing files could create a tem- 5 protected in a secured gateway's restricted memory location, to automate security changes to a single site, multiple sites, porary token for a summer intern granting 20 megabytes of or system wide. If for example, USER X is to be assigned her space to the intern. Similarly, managers below the level of the Corporate new rights in the accounting department and have all rights removed in the purchasing department, the Corporate SecuSecurity Officer might be allowed the privilege not only of granting rights within the boundaries of their own limits, but 10 rity Officer could use the SYSTEM MASTER KEY to also withdrawing rights. For example, if the head of activate a SHELL subroutine that would identify all the computers that should be instructed to refuse access to accounting USER 1 discovered that his subordinate, USER Token U.X and also to notify all the computers that should 6, was embezzling, USER 1 could immediately remove USER 6's access rights to the system. This security measure now accept Token U.X. These network messages would be could be taken even if the Corporate Security Manager was 15 "signed and sealed" by encrypting the message first by use unavailable. of each target computers SG.XB and secondly by use of Typically, the MASTER KEYS for all computers in the CS.1R. The security gateway receiving the message packet network would be held in the custody of the highest ranking could then confirm that the message came from the central Corporate Security Officer. While department heads and server, using CS.1B, which is authorized to execute security lower security officers might be allowed to expand or restrict 20 changes, and then to read the private message using its own private key, SG.XR. the rights of particular users or sites in the network, only the Corporate Security Officer, as holder of the MASTER Most security changes involve either (1) expanding one or KEYS, would be able to change, upgrade, or expand the more rights of a user or (2) restricting one or more rights of security SHELL program or GATEWAY PROGRAMS used a user or (3) changing or upgrading the security program in the network. 25 used at a site or network wide. The last of these is always problematic and should always be strictly controlled. As will be detailed below, the MASTER KEYS held in Changes in user or site rights, however, involve varying the custody of the Corporate Security Officer can be gathdegrees of risk. When disgruntled employees or computer ered into a MASTER KEY TABLE to automate security changes, with this MASTER KEY TABLE secured by use of hackers restrict a users rights, this is generally very incona single SYSTEM MASTER KEY. In this way, virtually any 30 venient but seldom provides an opportunity to cause great security changes in the network can be implemented damage to corporate data. A far more serious problem is remotely from the Corporate Security Officer's terminal or when a hacker manages to expand his rights so as to gain any other predetermined sites. To further secure the SYSaccess to files that would normally be deprived to him which he can then steal, alter, or destroy. Conversely, when a TEM MASTER KEY and the MASTER KEY TABLE for all the security gateways in the system, it would be possible 35 Corporate Security Officer needs to expand the rights of an and advisable to divide the SYSTEM MASTER KEY into employee, delays in doing so can be inconvenient, but seldom damaging. But if the Corporate Security Officer several parts that would be placed in escrow with two or needs to restrict the rights of an employee who, for example, more trusted corporate officials. These escrowed keys would is about to be fired or has made threats against the company, be useless until they are used in combination with each other so that the security gateway implementing the system wide 40 speed can be essential. This analysis suggests that network computer security might be enhanced by a process that changes can reconstruct the actual SYSTEM MASTER delays and verifies the expansion of rights but never impedes KEY and verify the PINS of each escrowed portion. For the sake of convenience, however, the following example will the restriction of rights. assume that there is a single Corporate Security Officer in The security technique described above can be easily whose custody all MASTER KEYS are intrusted. It will also 45 implemented by use of the security gateway disclosed in this be assumed below that the Corporate Security Officer will invention. The network SHELL would be designed to allow also initiate any security changes on the network from the the Corporate Security Officer or any holder of a token with central server for the network, thereby using the central a higher security rating, a department manager for example, to revoke any or all rights of a particular user or network site server's security gateway key CS.l. In fact, any terminal could be used as long as it's public key was "published" to 50 either on site or from a remote location. However, to expand the rights of a particular user or network site, the Corporate the rest of the network as a security gateway site that was authorized to make security changes. Security Officer, or other to authorized parties could only In the present example, the Corporate Security Officer transmit a conditional upgrade of rights. On reception of this message, the local security gateway and SHELL would would initialize each new security gateway and collect the MASTER KEY. A GATEWAY PROGRAM subroutine 55 notify the user that a rights upgrade has been authorized. would be run to provide any required parts of SG.1 and U.O, This upgrade of rights, however, would not become active as determined by the SHELL software vendor, to a network until authorized by an approved authority at that site. This table containing this information for all secured computers might be a department head, for example, who has been in the network with said table stored in a restricted memory issued a separate SECURITY UPGRADE token. The seculocation that is accessible only by use of the SYSTEM 60 rity upgrade would be accepted by the security gateway only MASTER KEY. In this example, let us assume that this after the SECURITY UPGRADE token was placed into the token reader and authenticated by use of the appropriate MASTER KEY TABLE is stored on the central server and the SYSTEM MASTER KEY is encrypted with CS.lB PIN. In this manner, it would be impossible to remotely which is why the Corporate Security Officer can only use it grant expanded rights to a terminal or user without the at that site. If desired, it would be possible to accessing this 65 collaboration of an on site agent. If the department head, in this example, had not received notice of the security MASTER SECURITY TABLE using the SYSTEM MASTER KEY from a remote site using a technique similar to upgrade, policy would require him to check with the Cor- US 6,212,635 Bl 21 22 porate Security Officer before allowing the upgrade to be cations by limiting their activities to a secured area of the completed. The use of an onsite SECURITY UPGRADE computer system. Just as the security gateway can be used to enforce a table token would be especially important if extensions or of authorized programs, so also could it enforce a table of changes to the security SHELL are to be implemented. 5 authorized Internet sites that a user would be allowed to Restricted Program Lists visit. By means of the security gateway, for example, even A widely desired feature is the ability to restrict what programs can be run on a corporation's computer. The computer savvy children could be prevented from entering ability to restrict the use of unauthorized programs is imporInternet sites with inappropriate material. Similar CPU tant to prevent employees from introducing computer virus based programs already exist, but can be easily defeated programs into the system and also to curtail the risk of costly 10 simply by installing an unrestricted web browser. Privacy, ID verification, and Traceability on the Internet copyright and licensing violations. Because the security The Internet provides unique opportunities and problems gateway can easily be configured to restrict users activities, for communications and commercial transactions. There are it would be a simple task to create a table of executable files that are allowed to be loaded onto the hard drive or otherconflicting interests in terms of preserving the privacy of wise executed by the CPU. Alternatively, a list can be made 15 Internet user, verifying the identity of users, securing the to exclude the installation or operation of popular programs integrity of financial transactions, and being able to track the that are frequently the target of illegal copying. identity of parties in the event of a criminal activity. The The program restriction subroutine can designed to be following process is illustrative of many techniques that could be employed to take advantage of the features offered either very inflexible (absolutely no unauthorized programs) or safely flexible (unauthorized programs can only be run in 20 by the security gateway to satisfy these conflicting needs. The goal is to create the electronic equivalent of a "paper special isolated parts of the drive, and will automatically be trail" of signed documents that under normal circumstances deleted on a periodic basis). On the inflexible side, authorized program names and checksums could be stored on the is concealed, ensuring privacy, but can be investigated and network, CPU accessible areas of the hard drive, or in decoded with proper authorization, such as a court order or restricted memory. User rights to these programs could be 25 with permission of the transacting parties, to investigate a flagged and updated by the computer security officer. The crime or verify disputed issues. Confidence in this "paper trail" is assured using the security gateway as an indepenSecurity gateway's own security shell would assist the CPU security shell in enforcing these restrictions. Alternatively, if dent means for guaranteeing that a sending party is using a the user is authorized to operate on a "safely flexible" computer that is under the control of an authentic security system, the security gateway would reserve an isolated 30 gateway and licensed security SHELL. Because the receiver knows that an authentic security gateway is ensuring that the section of the drive for any non-corporate programs the user might wish to examine, test, or run. Any attempt to load an proper secure communications protocol is being followed, unauthorized program onto the system would automatically the receiver can know that a proper "paper trail" is being be routed to a safe zone, for example, virtual drive S. In this recorded which can be decoded in the event of fraud or in example, whenever a user logged onto drive S, or sought 35 criminal behavior. Indeed, when agreed to by the transacting to open any files or programs there, the Security gateway parties, or when demanded by law, anonymous but traceable would immediately rescind access to all other portions of the transactions can be easily accomplished. In the following hard drive that are related to corporate files and could force discussion, this will be referred to as a CERTIFIED TRANSACTION. the host computer to disconnect from any networks to which it is connected until the system is powered down or other- 40 The key to this technique is the ability to confirm that a communicating computer is indeed under the supervision of wise resecured. Only the sectors apportioned to user's drive S would be readable or writable to the CPU. In this way, the an authentic security gateway. This can be accomplished by user could load or run any private programs, games, or even the manufacturer embedding in each device a "public key" that is common to all of the security gateways in that line of known computer viruses without exposing any other parts of the system to corruption. This method allows corporate 45 products. In this example, it will be assumed that SG.OB is officials the luxury of using the computer for private purused, although there could be a different key used for this specific purpose. At the start of a CERTIFIED poses while maintaining a secure Security gateway enforced TRANSACTION, the security gateway would encrypt a wall between corporate files and personal files. In a similar way, new programs being developed by SELF-IDENTIFYING MESSAGE, including, for example, corporate programmers could be automatically restricted by 50 its own serial number, the version of the GATEWAY PROthe security gateway to a specific virtual drive or developGRAM and SHELL in use, and a copy of SG.lB, using SG.OB. This SELF-IDENTIFYING MESSAGE is sent over ment site. This restriction could only be lifted by the the Internet to the manufacturer using a proprietary protocol computer security officer who has access to the MASTER TOKEN after the new software had been tested and for added security and verification of identity. The manuapproved for general use. This provision would severely 55 facturer's host site uses SG.OR to decrypt the package, limit a corporation's exposure to disgruntled employees who thereby confirming that the SELF-IDENTIFYING MESare skilled computer programmers. SAGE must have been encrypted by an authentic security Internet Activities gateway since only security gateways manufactured by the company have access to the SG.OB. The authenticity of the As more and more communications occur across networks, on the Internet, for example, security becomes 60 security gateway can be further confirmed by including in increasingly difficult. The present invention is has numerous the SELF-IDENTIFYING MESSAGE, other security gateway embedded data, such as a serial number, and the fact application in securing such Internet activities. For example, that the proprietary communications protocol was properly the security gateway could easily be programmed to limit used. disk and network access whenever a CPU is connected to the Included in the SELF-IDENTIFYING MESSAGE would Internet. In this way, the security gateway would automati- 65 be information about the user as stored on the token in use. cally quarantine and block any destructive Internet programs Most ideally, this would be in the form of a Digital Certifiemploying Java or ActiveX or similar cross platform appli- US 6,212,635 Bl 23 24 cate that can be used to identify of the token holder. If the independent of the CPU, it cannot be altered or tampered sender is seeking to complete an anonymous but traceable with by computer programmers. transaction, the manufacturer would need to verify the The above discussion assumes that the manufacturer of the security gateway would provide the clearinghouse for authenticity of the Digital Certificate using the published public key of the certifying authority that had issued the 5 verification of security gateways and issue for issuing certificate. This step could be skipped if the receiving party CAAPs or other certificates of authority. In practice, will be provided with an unsealed Digital Certificate in however, this responsibility could be transferred to a third which case the receiving party will open and verify the party as designated by the manufacturer and/or the owner of Digital Certificate. the security gateway with appropriate token authorization If the sender is seeking to send anonymous but traceable 10 from the manufacturer. Finally, it should be noted once more that while the communication, the manufacturer would confirm the discussion above refers to encryption and decryption of authenticity of the Digital Certificate and then reencrypt it using AK.lB, the public portion of a anonymous transaction messages using one or the other part of a key pair, it may be key. AK.lR would be held in divided escrow form by two or preferred in practice to encrypt the bulk of a message with more trusted authorities. A message packet would be 15 another type of key, such as a block encryption key, which attached to this packet confirming that the AK.lB encrypted may provide speed or security enhancements. This other key Digital Certificate had been authenticated by the manufacwould then be encrypted with the appropriate portion of the turer and could be retrieved with proper authorization, such key pair to create a lockbox, as previously discussed. In this as a court order, by the parties holding AK.lR in escrow. If way, the entire message can only be decrypted with the desired, a date and time stamp could also be added to this 20 appropriate key of the key pair first by opening the lockbox and then using the key in the lockbox to decrypt the rest of message packet, plus information about the GATEWAY PROGRAM and SHELL that is "refereeing" this the message. Non-duplicatable Tokens transaction, and information about the authority that had issued the original Digital Certificate and how that authority As previously described, a simple floppy diskette can be was able to confirm the identity of the sender: birth certifi- 25 used as a token. The information on the diskette is securely encrypted with SG.lB so that it is only readable by the cate on file, photo on file, fingerprints on file, et cetera. This information would allow the receiver the opportunity to security gateway that issued the token (except in network grade the quality of the Digital Certificate and to evaluate situations where, as previously described, where token sharing techniques are employed). The token is further secured how much trust can be placed in the claim that the certifying authority has adequately verified the identity of the sender. 30 by means of a user PIN and any other identifying informaThis packet containing the AK.lB encrypted version of the tion that may be collected and used for verification of the person's identity. original Digital Certificate and added information would Still, when using a simple floppy diskette, it would be then be encrypted again using CA.lR, the private portion of key pair used for certificates of authority issued by the possible for an exact duplicate to be made. In some cases, manufacturer. This CA.lR packet will hereafter be referred 35 this may be advantageous if the user wanted to keep a "spare to as a digital Certificate for An anonymous Party, or CAAP. key" in another location. On the other hand, it also provides Finally, the CAAP is encrypted with SG.lB, which was an opportunity for an intruder who gains temporary access transmitted to the manufacturer as part of the SELFto the key to undetectably make a perfect copy of the key. IDENTIFYING MESSAGE, and transmitted back to the The intruder would still need to gain access to the PIN and security gateway that initiated the transaction. The security 40 other information, if any, but his job would be half done. There are two general ways to thwart the duplication of gateway then uses SG.lR to retrieve the CAAP which can then be stored on the token or immediately transmitted over tokens. First, if security gateways are installed in all comthe Internet to the receiving party. Immediate transmission puters in system, the GATEWAY PROGRAM can recognize may be required in some secured transactions and could be that the diskette which the user is asking to duplicate is a verified by use of the date and time stamp information 45 token, even if it is a token for another security gateway. The imbedded in the CAAP by the manufacturer. The receiver of security gateway can be programmed by the manufacturer or a Corporate Security Officer either to (1) never duplicate a the CAAP would then use publicly published CA.lB to confirm that the authenticity of the AK.lB encrypted identoken diskette, or (2) only to duplicate a token diskette after confirmation of a duplication request by the token holder's tifying Digital Certificate had been independently verified by the manufacturer. If the CAAP is accepted by the 50 PIN and other information and/or permission of a security receiver, the associate transaction would completed. officer or department manager using their tokens. If the sender is not anonymous and is offering to allow the Additionally, the security gateway might be programmed to receiver to examine the token holder's Digital Certificate, not only refuse to make a duplicate of a TOKEN but also to report the attempt to copy the token to the network AK.lB would not be used. The manufacturer might still include a date and time stamp and then reencrypt the Digital 55 supervisor, to make a false copy that will set off an alarm when used, or to mark the stolen token so that the owner will Certificate using CA.lR and transmit it back to the security be notified of the attempted copy attempt the next time it is gateway using SG.lB. Using SG.lR the security gateway would recover the Digital Certificate that now has the used, or to even remove rights granted to the token holder, additional certification from the manufacturer that the holder either temporarily or permanently. of the certificate is using a computer that is using a security 60 As these security gateway technology becomes more common, the techniques described above, and similar techgateway. Because the manufacturer is able to confirm the use of a niques that will be obvious to those skilled in the security arts, will provide an effective means the security gateway security gateway and the version of the licenses SHELL and technology itself will be able to block the unauthorized GATEWAY PROGRAM in use, parties in electronic transactions of information or financial assets can be assured that 65 duplication of tokens. the transaction is properly governed by whatever protocols The second alternative is to use a unique diskette format are mutually agreed upon. Because the security gateway is or media for tokens that cannot be duplicated by disk drives US 6,212,635 Bl 25 26 SG.OR is used by the manufacturer to encrypt a Digital other than those controlled by a security gateway. While Certificate that is provided to the licensed SSL software special formatting could be used, it is likely that a detervendor for distribution with their products. Upon installation mined corporate spy could find a means to develop a device of the SSL licences software, the security gateway would use that could mimic the formatting method and read and write in that format. Perhaps the most secure option would be to 5 its embedded SG.OB key to verify that the SSL license is valid and execute the appropriate subroutines required to create token media that is permanently marked or coded in implement the SSL protocol for the new SSL program(s). a non-duplicatable manner. This technique of verifying an SSL licenced product is There are many copy protection schemes that can be used similar to that used for verifying the right to upgrade the to make diskettes which are uncopyable or at least extremely GATEWAY PROGRAM or SHELL. difficult to copy. One method involves laying down an 10 In the following example of an SSL protocol, upon analog track with a pattern of identifying bits (a installation and initialization of an SSL protected program, "fingerprint") embedded in this track. If the drive heads the software would be "married" to the security gateway of consistently read this track the same way, then it is known the host computer. If the software is transferred to another that this track is a binary one and the diskette is rejected as computer, the other computer's security gateway will not a copy. Only if this track gives varying results, except for the 15 have SG.lR and will therefore be unable to decrypt the file embedded identifying bits, is the diskette assumed to be the and the program would thereby be rendered useless on other original. If the identifying bits are unique for each diskette systems. manufactured, then each diskette is essentially unique. This A specific advantage of this technique is that backup identifying information can be read by the security gateway copies of the software can easily be made, but they will only and can be stored in the SG.lB encrypted files along with 20 be useful when reloaded onto a computer in which the security gateway to which it was "married" is still active. U.XR. Thereafter, whenever a token diskette is inserted into the drive, the security gateway would check the diskette's This would be especially useful with tape drive backups of actual "fingerprint" and compares it to the copy of the an entire hard drive. If there was a hard drive failure but the fingerprint encrypted in the security file. If the diskette is a security gateway was intact, a new hard drive could be copy, the fingerprints will not match and the token would be 25 installed and all files restored and the SSL protected programs would immediately work without the requirement for rejected or the user could be channeled into a network new "marriage." security trap. It should be noted that standard copy protected Protocols can also be developed to "divorce" software diskette scheme described above proved vulnerable to hackfrom a particular site so that it can be "remarried" to a ers disassembling the CPU code and disabling the subroutine that went out to check for the analog track. In this 30 different host computer. Similarly, a protocol can be impleapplication, however, because this code would be part of the mented to transfer the software to another computer in the GATEWAY PROGRAM stored in restricted memory, it event the host computer or security gateway to which the software was "married" is destroyed or rendered inoperable. would not be vulnerable to disassembling or alteration. The following is illustrative of how the security gateway can Other mechanical or chemical marking techniques might also be employed to create special diskettes that can be used 35 be used in this fashion. Additional variations will be obvious as tokens wherein each token would have a unique "fingerto those skilled in the art. print." The diskette media might be precisely or randomly Marriage Procedures scarred with lasers, chemical spattering, ion bombardment, In this example of an SSL Protocol, the security gateway or other means. It would be sufficient to simply have a would examine a files prior to allowing CPU access to number of sites that either no magnetic charge or a fixed 40 determine if the file has an internal tag identifying it as an magnetic charge. When creating a new token, the security SSL protected file. An SSL file can also be marked with a file gateway could consecutively write and read all O's and all code which tells the Security gateway that said file is l's to the diskette and identify the unreadable or unchangeavailable for use by the security gateway only and cannot be able bits which could then be used to describe the diskette's shared with the CPU nor can it be copied without alteration "fingerprint" pattern. As described above, a description of 45 to another file or media. This tag can be likened to a "DO NOT SHARE" tag that would attached to the SSL certificate this fingerprint pattern can be encrypted with U.XR so that any other diskette containing the which did not match the of authenticity. SSL licensed software would come with a token containfingerprint pattern would be rejected as a valid token. ing a Digital Certificate identifying it as an SSL protected Single Site Licensing of Software Software developers and those who sell electronic infor- 50 product. In this example, the Digital Certificate, hereinafter referred to as the SSL Certificate, would be initially have mation are constantly seeking for a better way to protect their products from being copied and distributed to other been encrypted with SG.OR. The SSL certificate would include a complete "marriage" computers. Using the security subsystem's CONTROLLER and its own public/private keys, as previously described, it record for this specific copy of the software. The software is possible to automate SINGLE SITE LICENSING (SSL) 55 could not be run until it was first "married" to the security of software or data. In brief, software can be sold which gateway installed in the host computer on which it is to be would only operate on computers which have the SINGLE run. At the first initialization of the software, the security SITE LICENSING (SSL) protocol installed and operated by gateway reads the SSL certificate using SG.OB to verify that the software is not presently "married" to another device. If the security gateway. The requirement for use of an SSL enabled security gateway would be enforced by the use of 60 the software is "unmarried" the security gateway modifies the SSL certificate to record its marriage including in the licensed encryption key pairs issued by the manufacturer of certificate any user ID information which may be provided the security gateway. for by the SSL Protocol for tracking down software theft as The security gateway is configured to recognize SSL licensed software by means of key pair that is provided in a provided hereafter. The SSL certificate, or portions thereof, restricted memory location either at the time of manufacture 65 is thereupon encrypted with the Security gateway's public or during the upgrade or installation of a new GATEWAY key, SG.lB, so that it can thereafter by decrypted only by the PROGRAM. For this example, it can be assumed that the security gateway to which it has been married. US 6,212,635 Bl 27 28 The SSL certificate may also contain the software venpublic key, SG.lB. This public key would then be posted on dor's public key which can be used by the Security gateway an Internet morgue file. Purchases, registrations, and other to decrypt essential sections of the file. At this point the transactions which require submission of the security gatesoftware vendor may have the option of designating that way public key could then be checked against the morgue these sections of the code, as identified in the SSL certificate, 5 file. Any transactions by a security gateway previously shall be reencrypted with the security gateway's public key, reported as "dead" by a user could trigger withdrawal of SG.B, during installation. Subsequently, only the Security privileges, investigation of fraud, and civil or criminal gateway which is "married" to that copy of the software sanctions. could decrypt these critical sections of code and pass them Electronic Purchases The above procedures assume that SSL software is pur10 on to the CPU. chased on removable media, in which case the SSL certifiAfter the above initialization procedures, whenever the CPU attempts to access an SSL protected file, the Security cate is already in place. When the software or data is gateway first reads the embedded SSL certificate to detertransferred electronically, the SSL protocol can easily promine if the software is "married" to said security gateway. It vide for the host security gateway to create an SSL certificate not, it then determines if the software is "married" to another 15 which would serve to control the marriage and divorce Security gateway and the "adulterous" CPU's is denied procedures as outlined above. access to the requested files. If the certificate shows that the It is also noteworthy that in electronic transfers of software, the software or data vendor could request SG.lB, software is indeed "married" to said security gateway the or a similar public key owned by the security gateway that Security gateway then checks its own DIVORCE FILES, which are located in restricted memory, to determine if the 20 is to be used for SSL transfers. Using this key, SG.lB, the software has previously been "divorced" from the Security vendor could then provide the files with the SSL certificate gateway, or, in other words, uninstalled so that it could be and any other encrypted blocks already encrypted with the transferred to another computer site. If there is a history of SG.lB. In other words, if provided with the security gatedivorce indicated, the files will not be read. In short, the CPU way's public key in advance, the software vendor could is allowed to read the SSL protected files only after their 25 complete the "marriage" even before the software is deliv"marriage" to the Security gateway has been authenticated. ered to the buyer. This would be the most effective means for Divorce and Remarriage Procedures preventing unauthorized use of commercial software or data At the vendor's option, a "divorce and remarriage" profiles. tocols could provide a means for uninstalling the SSL Secure Cycling to New Keys protected program from its original site so that it can be 30 With sufficient computing power, it is possible to factor or transferred to another computer with an SSL enabled secu"crack" a private key. Yet even if the network manager of a rity gateway. Using key pairs provided by the SSL protocol, large corporation were to harness the parallel processing the "divorcing" security gateway and "new spouse" gateway power of thousands of computers, the factoring of even a could communicate over a network or by the exchange of a small key would take many months or even years. This token to confirm and verify that each party is an SSL enabled 35 lengthy period of time required to "crack" a key, even when security gateway and to exchange their respective public one has immense computer resources, provides a safe zone passwords, SG.lB and SG.SB, for example. Upon obtaining during which a key pair can be considered safe. After a year SG.SB, the security gateway that was presently "married" to or so, however, one must consider the possibility that critical the software would use SG.SB to reencrypt the SSL key pairs, such as SG.O and U.OR could be compromised. However, since each security gateway is capable of certificate, including in the certificate a record of the prior 40 "marriage" to SG.l and transfer of the marriage to SG.S. generating its own SG.l key pair, there is no reason it could Any SG.lB encrypted blocks in the software would also be not generate a new key pair every six-months, for example. If this were done, the complete history of previous keys reencrypted using SG.SB to enable the transfer or "remarriage." would stored in a restricted area and/or backed-up using the The "divorcing" security gateway would also place a 45 latest SG.lB. Drawing on this historical record, security record of the divorce into a table in its own restricted gateway could always decrypt files that had not previously been updated with the new SG.lB. In this way, previously memory. This is done to prevent an attempt to reload a backup copy of the "divorced" software onto the system. If encrypted files that were opened would automatically be this is attempted, the security gateway would recognize from re-keyed. Similarly, tokens U.O, U.l, and U.X, could also be the table that while it is able to read this copy of the software, 50 automatically updated with the newest SG.lB and be issued it is not authorized to do so because of the divorce. new U .XR keys, at periodic intervals. A historical record of U.XR keys would be kept on the token in a file encrypted Similarly, it is now a common practice for trial copies of software to be available through the Internet. If a trial copy with the most recent SG.lB. Such periodic replacement of "old" keys with fresh ones can be done automatically by the was SSL enabled, after the trial period was over the security controller would make a record in its restricted memory 55 CONTROLLER with out any involvement of the user. The noting that this software has been tried for the allotted user need not even be aware that it is taking place. The only number of times or period of time. Subsequent attempts to cost would be a slight delay when the user accesses a secured file which is overdue for being be re-keyed. uninstall the trial software and to reinstall it for a second trial period would be refused by the security gateway. Ramifications, Scope of Invention and Conclusion 60 Death Certificate The present invention increases the security options availIn the unlikely event that the security gateway itself was able to computer users by introducing a new level of control over the computer's access to its peripheral devices. In the damaged or destroyed, users might be allowed to return the token containing the SSL certificate to the vendor for prior art, computers have had a direct and unlimited control issuance of a "virgin" copy. The Protocol, however, would over their peripheral devices. The users control over the provide that the returned token would contain a file created 65 peripherals is implemented through a programs operating at the CPU level. But since a computer's CPU can come under by the first security gateway which would include the user's registration information and the "dead" security gateway's the control of a malicious person or a computer virus, this US 6,212,635 Bl 29 unlimited access to the peripheral device places the authorized user's data and programs at risk of alteration or deletion. The present invention overcomes this inherent weakness in the prior art by implementing another level of user control 5 over the computer. This control occurs directly at the midpoint between the computer's CPU which operates programs, and the peripheral devices which are directed by the CPU to implement programs or retrieve and store data. Because the security gateway is independent of the CPU, 10 this invention makes it impossible for any program run by the user to cross over into restricted memory areas to read, alter, or erase data. Thus, even a system programmer with extensive rights cannot bypass or alter the Security gateway's security program. Furthermore, as described in the 15 previous disclosure, the Security gateway can protect the CPU's boot tracks, security shell, and even RAM tables reserved for the security shell. While this invention provides an unbreechable barrier against security attacks initiated at the CPU level, it also 20 retains flexibility, providing a means for security software designers to enhance and customize security SHELL to meet evolving consumer needs. The method disclosed in this invention produces the following advantages: 25 it allows the user to temporarily make all or portions of a peripheral device completely inaccessible to the computer; it allows the user to temporarily make all or portions of a 30 peripheral device read-only; it allow the user to temporarily make all or portions of a peripheral device write-once so that important data may not be accidentally erased or written over; it allows the user to temporarily make all or portions of a peripheral device write-only so that sensitive data may not 35 be read or copied except under authorized conditions. it provides means for alerting the user of unauthorized attempts by the computer to access a secured peripheral device which may aid in the detection and elimination of computer viruses or other interlopers. 40 it provides a means for anonymous but traceable electronic transactions that offer both parties the assurance of traceability and the confidence that the their identities are protected unless there is a authorized investigation, such 45 as by court order. it provides a means for single site licensing of software to prevent the unauthorized use or duplication of intellectual property. Although the description above contains many specifications and precise examples, these should not be construed as 50 limiting the scope of the invention but merely provide illustrations of some of the principle ways in which the invention can be implemented. Once disclosed, customizing of this process to suit an individual client's security needs will be obvious to one skilled in the art. 55 Thus, the foregoing is considered as illustrative of the principles of the invention, but is not by any means exhaustive. Numerous modifications and changes will be obvious to those skilled in the art. Therefore, it is not desired to limit the invention to the exact construction and process shown 60 and described herein, and accordingly, all modifications and equivalents which utilize a user accessible switch which limits a computer's access to its peripheral devices fall within the scope of this invention. While preferred embodiments of the invention have been 65 disclosed in detail, it should be understood by those skilled in the art that various other modifications may be made to 30 the illustrated embodiments without departing from the scope of the invention as described in the specification and defined in the appended claims. What I claim is: 1. A method for providing security for a computer comprised of a central processing unit, peripheral and file storage devices, at least one of which can be used as a token access device that can read and write files to removable storage media suitable for use as a token, a computer operating system, and a CPU independent security subsystem which includes a security control unit and programmable auxiliary memory, sad method comprising of the steps of: (a) generating with said security control unit a security subsystem key pair comprised of a public key and a private key; (b) storing said private key data in a memory location which is under the control of the said security subsystem; (c) creating with said security -subsystem a key file encrypted with said public key and writing the key file to a master token by means of said token access device, such that said encrypted key file can only be decrypted and authenticated by the security subsystem using its corresponding private key; (d) allowing access to said security subsystem after initial installation and setup by said computer operating system for installation and modification of security requirements only when said master token is placed into an appropriate file storage device and said encrypted key file has been authenticated by the security subsystem; (e) denying file and peripheral device access requests by the central processing unit when the security requirements are not satisfied. 2. The method of claim 1 further including the steps of: (f) creating with said security subsystem a special use token containing a special use file encrypted with said public key such that said special use file can only be decrypted and authenticated by the security subsystem using its corresponding private key and such that said special use file contains information that identifies specific access rights and security restrictions that are applicable to the user of said special use token; (g) providing to said security subsystem by a given user a valid user identification immediately after said special use token has been authenticated by the security subsystem, indicating to the computer operating system only those files which are accessible to the given user of said special use token and whether read operations, write operations, and execute operations may be performed upon the accessible files, and denying access to users with invalid access criteria and refusing to write data to any of the files stored in the file storage devices when operations without valid access criteria have been attempted. 3. The method of claim 2 further including the steps of: (h) generating with said security control unit a user specific key pair comprised of a user public key and a user private key which can be used for authentication, verification, and private communications by a given user; (i) writing to said special use file a copy of said user private key which has been encrypted with the security subsystem's own public key; and G) storing said user public key in at least on file stored on at least one other file storage devices. US 6,212,635 Bl 31 4. The method of claim 2 further including the step of: (h) requiring the security subsystem to access a central file which contains the public keys for the security subsystems of other computers and to make encrypted copies of the special use file using the public keys of the other security subsystems to which the user has been granted limited access and to store these encrypted files on the special use token, whereupon the special use token can be securely used on the other computers. 5. The method of claim 2 further including the steps of: (h) connecting the computer to a computer network; and (i) providing that the security subsystem's parameters can be changed by the network manager at a remote location only when a special use token with security authorization to allow this change has been placed into the local token access device and authenticated by the security subsystem. 6. The method of claim 2 further including the step of: (h) requiring the security subsystem to record invalid attempts to enter user identification information on the token and to initiate additional security precautions if the number of invalid attempts exceeds a predefined limit. 7. The method of claim 1 further including the step of: (t) requiring the removable media to be of a type which has fixed or unwritable domains by which the security subsystem can uniquely identify the diskette and record the identifying diskette information in the key file recorded on the diskette such that if the key file is copied to another diskette the security subsystem can determine that the key file does not reside on the same removable token on which it was originally placed and so can reject the non-original diskette as a copy. 8. A computer security system for a computer having a CPU, a common bus carrying control logic signals, address signals, and data signals, and a computer operating system which comprises: (a) means for providing a CPU independent security subsystem comprised of a control unit, programmable memory, a security program and general security parameters; (b) means for attaching said security subsystem and a plurality of peripheral devices and file storage devices, with at least one of said file storage devices capable of reading and writing to removable media which will be used as a token read/write device, to said common bus; (c) means for said security subsystem to generate at least one pair of keys comprising a private key and a public key and storing sad pair of keys in a restricted memory location residing on at least one of said file storage devices under the control of said security subsystem; (d) means for said security subsystem to encrypt at least one key file using said public key and to write said encrypted key file by means of said token read/write device to a token comprised of removable storage media; (e) means for requiring said security subsystem to deny access requests by said CPU to said peripheral and storage devices whenever said access requests violate said general security parameters; and (t) means for requiring said security subsystem to accept modifications of said general security parameters after initial installation and setup when said token is inserted into said token read/write device and said security subsystem has decrypted said encrypted key file using said private key and thereby verified the authenticity of said token. 32 9. The computer security system of claim 8 further including (g) means of storing a copy of said security subsystems manufacturer's public key in a secure memory location 5 of said security subsystem; and (h) means for requiring said security subsystem to accept modifications of said security program when a master token containing an upgrade authorization file encrypted by said manufacturer's private key is 10 inserted into said token read/write device and said security subsystem has decrypted said encrypted key file using said manufacturer's public key and thereby verified the authenticity of said upgrade authorization file. 15 10. The computer security system of claim 8 further including: (g) means for said security subsystem to generate a special use key pair comprised of a special use public key and special use private key and to store said special 20 use public key on at least one of said file storage devices; (h) means for said security subsystem to create a special use security parameters file encrypted with said public key that contains at least a copy of said special use 25 private key and to write by means of said token read/write device said special use security parameters file to a special use token; and (i) means for said security subsystem to retrieve said special use security parameters file from said special 30 use token when said special use token is inserted into said token read/write device and to limit access requests by said computer to said peripheral and storage devices for a period of time and under such conditions as provided by said security program and 35 said special use security parameters. 11. The computer security system of claim 10 further including: (k) means for obtaining a PIN assigned to a user authorized to use said special use token and storing said PIN 40 in a PIN-file encrypted with said public key and storing said PIN-file on said special use token; (1) means for said security subsystem to retrieve said PIN-file from said special use token when it is inserted into said token read/write device and retrieve a key45 board entry of the PIN as a means of verification of said specific users identity; and (m) means for said security subsystem to utilize said special use security parameters only when said PIN matches the keyboard entered value and to otherwise 50 utilize said general security parameters. 12. The computer security system of claim 8 further including: (g) means for said security subsystem to monitor the integrity of a CPU security program and to force a 55 computer reboot operation whenever said integrity check fails to satisfy said general security parameters. 13. The computer security system of claim 8 further including: (g) means for said security subsystem to generate a seed 60 number that is stored in a memory location accessible to a CPU security program run by said CPU and said operating system; (h) means for said security subsystem and said CPU 65 security program to use said seed number in identical random number generating routines to create a pseudorandom password; and US 6,212,635 Bl 33 (i) means for said security subsystem to require said CPU security program to supply said pseudo-random password at such time and under such conditions as required by said general security parameters and to activate security breech operations as defined for this 5 case in said general security parameters when ever said pseudo-random password generated by said CPU does not match said pseudo-random password generated by said security subsystem. 14. The computer security system of claim 10 further 10 including (n) means for said security subsystem to retrieve at least one other security subsystem's public key, where said other security subsystem is attached to another computer which is connected to said computer by a com- 15 puter network; and (o) means for said security subsystem to create a copy of said special use security parameters file encrypted with said other security subsystem's public key and to store it on said special use token so the token can be securely 20 used on said the other computer. 15. The computer security system of claim 10 further including (n) means for said security subsystem to transmit said public key to at least one other security subsystem is 25 attached to another computer which is connected to said computer by a computer network; (o) means for said security subsystem to retrieve said other security subsystem's public key; (p) means for said security subsystem to encrypt a net- 30 work security parameters change file first using said other security subsystem's public key and second with said private key and to transmit said network security parameters change file to said other security subsystem; 35 and (q) means for said other security subsystem to implement the security provisions required by network security parameters change file after it has been successfully authenticated by decryption using first said public key and using second said other security subsystem's pri- 40 vate key. 16. The computer security system of claim 8 further including (g) means for said security subsystem to store in said restricted memory a list of identifying characteristics of 45 authorized programs that may be run by said CPU; (h) means for said security subsystem to restrict access to said authorized programs under such conditions as have been predefined in said security program. and said 50 general security parameters. 17. The computer security system of claim 8 further including (g) means for said security subsystem to store a copy of a certified transaction public key in said restricted 55 memory; (h) means for said security subsystem to encrypt a selfidentifying message including a copy of said public key using said certified transaction public key; (i) means for transmitting said encrypted self-identifying 60 message to the certifying authority who issued said certified transaction public key; G) means for receiving from said certifying authority a unique digital certificate for an anonymous party pri65 vate key encrypted with said public key; (k) means for said security subsystem to store said unique digital certificate in said restricted memory; and 34 (1) means for said security subsystem to retrieve said unique digital certificate from said restricted memory and to transmit it to as required by said security program and general security parameters to other computers connected with said computer by means of a network. 18. The computer security system of claim 8 further including: (g) means for storing a copy of single site licensing public key in a secure memory location of said security subsystem; and (h) means for requiring said security subsystem to identify a new program to be installed on said computer that is subject to the single site licensing requirements defined in said security program by decrypting a digital certificate provided with said new program using said single site licensing public key and implementing said single site licensing requirements relative to said new program upon verification of said digital certificate. 19. The computer security system of claim 18 further including: (i) means for said security subsystem to extract from said digital certificate site license parameters defining at least one limitation on the use of said new program; and G) means for requiring said security subsystem to deny requests by said computer to access said new program whenever said access requests violate said site license parameters. 20. The computer security system of claim 8 further including: (g) means for said security subsystem to transmit said public key to the software vendor of a site restricted program; (h) means for said security subsystem to receive a site license certificate encrypted with said public key from said software vendor; (i) means for said security subsystem to verify the authenticity of said site license certificate by decrypting said site licence certificate with said private key; and G) means for requiring said security subsystem to deny requests by said computer to access said site restricted program whenever said site license certificate has not been received and verified. 21. The computer security system of claim 8 further including: (g) means for said security subsystem to create a special use identification file encrypted with said public key that contains at least a copy of a special use identification code and to write by means of said token read/write device said special use identification file to a special use token; (h) means for said security subsystem to store a copy of said special use identification code and special use security parameters assigned to said special use identification code in a restricted memory location; and (i) means for said security subsystem to retrieve said special use identification file from said special use token when said special use token is inserted into said token read/write device and to decrypt the file using said private key and to thereby retrieve said special use identification code and said special use security parameters and to limit access requests by said computer to said peripheral and storage devices for a period of time and under such conditions as provided by said security program and said special use security parameters. US 6,212,635 Bl 35 36 22. The computer security system of claim 10 further including: G) means for said security subsystem to retrieve said special use private key from said special use token and to decrypt files that have been encrypted using said special use public key. 23. The computer security system of claim 10 further including: G) means for said security subsystem to retrieve said special use private key from said special use token and to encrypt files using said special use private key. 5 * * * * *

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?