Abstract:
The present invention depicts a method, system and program product for controlling levels of security and levels of encryption based on a predefined policy profile. This enables administrators and those who control the network to easily respond to changes in the requirements of the security levels for specific applications. It also allows for response to changes in personnel (such as someone being removed from a position that had topsecret security access) and accommodates variations in access by client devices.

Description:
BACKGROUND OF THE INVENTION 
   Communications networks are widely used to send and receive messages among nodes that are connected thereto. Communications networks may include, for example, wired and wireless communications networks, local area networks, the Internet, other connections based networks or any combination thereof. The nodes may include but are not limited to mainframe computers, mid-range computers, personal computers, notebook devices, hand held devices, radio-telephones, applications programs, devices such as smart cards or adapters and combinations thereof. 
   Crytography is a security mechanism for protecting information from unintended disclosure by transforming the information into a form that is unreadable to humans, and unreadable to machines that are not specially adapted to reversing the transformation back to the original information content. The cryptographic transformation can be performed on data that is to be transmitted electronically, such as an electronic mail message, and is equally useful for data that is to be securely stored, such as the account records for customers of a bank or credit company. 
   In addition to preventing unintended disclosure, cryptography also provides a, mechanism for preventing unauthorized alteration of data transmitted or stored in electronic form. After the data has been transformed cryptographically, an unauthorized person is unlikely to be able to determine how to alter the data, because the specific data portion of interest cannot be recognized. Even if the unauthorized user knew the position of the data portion within a data file or message, this position may have been changed by the transformation, preventing the unauthorized person from merely substituting data in place. If an alteration to the transformed data is made by the unauthorized user despite the foregoing difficulties, the fact of the alteration will be readily detectable, so that the data-will be considered untrustworthy and not relied upon. This detection occurs when the transformation is reversed; the encrypted date will not reverse to its original contents properly if it has been altered. The same principle prevents unauthorized addition of characters to the data, and deletion of characters from the data, once it has been transformed. 
   The transformation process performed on the original data is referred to as “encryption.” The process of reversing the transformation, to restore the original data, is referred to as “decryption.” The terms “encipher” and “decipher” are also used to describe these processes, respectively. A mechanism that can both encipher and decipher is referred to as a “cipher.” Data encryption systems-are well known in the data processing art. In general, such systems operate by performing an encryption on a plaintext input block, using an encryption key, to produce a ciphertext output block. “Plaintext” refers to the fact that the data is in plain, unencrypted form. “Ciphertext” refers to the fact that the data is in enciphered or encrypted form. The receiver of an encrypted message performs a corresponding decryption operation, using a decryption key, to recover the original plaintext block. 
   A cipher to be used in a computer system can be implemented in hardware, in software, or in a combination of hardware and software. Hardware chips are available that implement various ciphers. Software algorithms are known in the art as well. 
   Historically, encryption for computer programs has been performed either based on the session over which the traffic flowed or by the application program itself determining its level of security and encrypting all of the information it sends in an end-to-end manner. This end-to-end manner of encryption requires a secure session, where hardware devices or software devices are used to encrypt everything that flows across the link and a corresponding device is required at the receiving end to decrypt everything. This means that even non-critical data is encumbered by the processing overhead of the encryption and decryption. 
   OBJECTS OF THE INVENTION 
   It is an object of the present invention to provide an easily maintainable method for selective encryption. 
   It is a further object of the present invention to minimize the processing requirement for information where part of the information requires high security and part of the information requires little or no security. 
   It is a further object of the invention to enable a programmatic means for only transferring the information that a user is authorized to view out of a larger set of information having many security authorizations. 
   It is a further object of the invention to enable a programmatic means for only transferring the information that can be sufficiently decrypted by a client device out of a larger set of information having many security authorizations. 
   SUMMARY OF THE INVENTION 
   These and other objects are met by the present invention. The present invention discloses a method, system and apparatus for selecting encryption levels based on policy profiling and client device capabilities. It discloses a means for determining, based on user group or profile and connection type, the level of security required for data transmission on a given session. It allows categories of groups to be assigned easily modifiable security clearance levels for information receipt. Using the present invention, the application need only identify the minimum level of encryption required (or appropriate) for the given application session or particular data fragment. Using the combination of the end user group profile and the application identified requirements, the optimal security versus network, client device and server capabilities may be obtained. 
   In the present invention, the network middleware described herein determines the security level. The prior art suffers from a number of drawbacks remedied by the present invention. First, security is all-or-nothing in the prior art. Encryption requirements and policies are typically decided based either on the application, in which case every packet sent by the application is encrypted end to end, or by the connection type whereby the packets are encrypted at a link level. Either of these methods typically are extreme in the sense that data may be over encrypted or under encrypted because of the limitations of processing the entire session and the required resources to accomplish this. In the present invention, encryption levels are determined and applied dynamically based on a defined policy optimizing the encryption applicability. This removes some of the administrative problems from the application concerning encryption levels. That is, in prior art, a user is given access to an electronic document or he isn&#39;t given access. Using the present invention, a user can be given access only to appropriate sections of a larger document. 
   Second, similarly, prior art requires that a client device support the chosen encryption mechanism to receive requested information. The present invention allows a user on a client device to receive portions of a document if the client device is capable of sufficient encryption to receive those portions, even if it is not capable of sufficient encryption to receive the entire document. 
   Combining the previous two points, sections within a document are filtered out if (a) the user is not authorized to see them or (b) the device is not sufficiently secure to receive them. The remaining content is encrypted using the selected encryption mechanism (where the selection process is described below, and includes configurable levels of security, as described above), and sent to the client. 
   Third, the prior art does not recognize roles within an organization. For example, information deemed “secret” by a lawyer might be more sensitive to a corporation than information deemed secret by an engineer. The present invention provides mechanisms for tailoring encryption based on organizational roles, and modifying these actions based on those roles without making changes to the installed middleware. Rather, changes in these actions require only changes in table entries. 
   Fourth, as computers become more powerful, it becomes easier to break existing encryption techniques. In the current art, replacing an application&#39;s encryption technique requires making changes to the application itself. For example, changing from use of a 56-bit encryption to use of a 64-bit encryption would require that the application be reinstalled. Using the present invention, changing which encryption technique is selected requires only changes in a database. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  depicts a sample document in XML implementing the present invention. 
       FIG. 2  is an example of nested XML security tags. 
       FIG. 3  depicts the interactions between the document, the security database and the database containing user definitions. 
       FIG. 4  represents a sample mapping in a security database. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
   Many conceivable implementations of the present invention exist. The preferred embodiment of the present invention will be presented using XML (extensible Markup Language) tags and data stored on one or more servers. In this implementation the client sends credentials to a server, which sends authorized parts of a document to the client. For example, the document might have &lt;TOPSECRET&gt;. &lt;/TOPSECRET&gt;, &lt;SECRET&gt; . . . &lt;/SECRET&gt;, and &lt;PUBLIC&gt; . . . &lt;/PUBLIC&gt;as its security level authorizations. If a user presents SECRET credentials, they can view SECRET and PUBLIC information, but the TOPSECRET information is removed. 
   Before the process starts, it is assumed that authors have written documents using XML to denote the security requirements of the various sections of a document, along with standard markup instructions such as section headers and italicization. For example, a document might look like that depicted in FIG.  1 . 
   In the example of  FIG. 1 , the document begins with a standard tag, title ( 10 ), indicating that “Annual Report” is the title of the document. The next three sentences are marked with security indicators. The first tag indicates that the text is unclassified ( 20 ); the second that the text is secret ( 30 ); the third, that is topsecret ( 30 ). 
   In addition, security tags can be nested as in FIG.  2 . In such cases, the innermost tag takes precedence. 
   It is to be noted that, as discussed below, the tags themselves do not have semantic meaning, but are instead used as keys in the security database. Therefore, the keys can be any tags not already having an alternate use. The names of the security levels are determined by a systems administration, as are the relationships among them. For example, in some installations, SECRET might be considered more secure than TOPSECRET. In any case, the actual names of the security levels are not important to the process described herein. 
   The process begins, as shown in  FIG. 3 , when a person using a client device requests a document by sending a document request to the Librarian ( 101 ). In order to clarify the terminology used below, the person requesting a document is depicted as the “user” and the device that is used to request and view that document the “client device” or simply the “client”. The term “Librarian” is used to describe a collection of processes executed on the server. The request contains the name of the document, the user&#39;s name and the user&#39;s password. Security mechanisms besides userid/password can be used without materially affecting the present invention. The userid/password combination is used here as an example because of its wide public acceptance. 
   The librarian sends a request for the document&#39;s header to the document database ( 102 ). The librarian then receives the document header ( 103 ) from the document database. The header contains the document&#39;s author, and the security tags used in the document. 
   The librarian process then passes the author&#39;s name to the personnel database ( 104 ) and receives the author&#39;s role in the company as a response ( 105 ). For example, John Smith might be a lawyer, and Jane Doe an engineer. Role retrieval is a simple database lookup; that is, it is assumed that names and roles are stored in a standard corporate database. 
   The list of security tags and the author&#39;s role is then passed to the security database ( 106 ). The security database contains a mapping of (role, tag) tuples to absolute levels of security, represented by an integer. The security database returns this integer ( 107 ) For example,
     (CEO, topsecret) might map to  99     (CEO, secret) to  80     (engineer, topsecret) to  75     (engineer, secret) to  50     (engineer, classified) to  25     

   The present invention is not limited to integers. Any indexable or discrete mapping is possible although integers make the most intuitive sense for sample purposes. It is assumed that the company assigns these requirements according to their business necessities. It is an important aspect of this invention that the security database can be updated dynamically to reflect changing business requirements. For example, the mapping (engineer, secret) could be updated to  55  with no effect on any other component of the system. This flexibility is useful. 
   Next, the librarian looks up the requester in the personnel database ( 108 ) using the user&#39;s ID and password to determine the maximum level of security that the requester is authorized to access. The librarian receives this information ( 109 ). If the requester&#39;s authorization level is below the lowest level indicated in the document, the user is informed that he may not access any part of the document, and the process is terminated. If the requester is authorized to view at least part of the document, his authorization level is cached by the librarian for later use. 
   The figure shows a generic cache ( 150 ) in the librarian. To speed performance, the cache can store document headers, personnel information and security information, replacing entries using a Least Recently Used policy. The method of the present invention will work correctly even without a cache although it may perform more slowly. 
   Note that it has been specified that a simple integer shall be used to indicate absolute security level. One skilled in the art will recognize that more sophisticated mechanisms can be used. For example, for compartmentalized information, the single integer can be converted to a (compartment, security level) tuple, and authorization is granted on a compartment-by-compartment basis. 
   Next, the security database maps the integers to available security protocols  110 ,  111 . For example, the security database might contain the information as presented in FIG.  4 . 
   Thus, security level  25  would require 56-bit DES. Again, it is assumed that a systems administrator for a company would adjust these levels based on their own perceived security requirements, and the available encryption technologies. 
   In addition, a systems administrator for a company can specify multiple alternative encryption technologies for the same security level. This feature is useful in dealing with heterogeneous client devices. For example, one type of personal digital assistant (PDA) might support one type of encryption while another type of PDA might only support a different, but equally secure, technology. 
   It is another important aspect of this invention that the systems administrator for a company can adjust the type of encryption used simply by changing an entry in a database. For example, if 128-bit DES become less expensive to crack, the company can require (e.g.) 256-bit DES for scores above 85. This greatly reduces the administration required for secure transmission. This is in contrast to an application in which security is built-in. In such cases, changing the level of security requires that the application itself be updated. Software update is known throughout the industry to be expensive. 
   This above discussion of security protocols should not be construed to limit this invention to using the specified protocols. The present invention is equally applicable to all security protocols. 
   Referring to  FIG. 3 , at this point, the librarian has determined the algorithm(s) required to transmit the information in the requested document. Next, it must determine whether the client device supports any of the algorithms. The librarian transmits an indication of the required encryption protocols to the client ( 112 ). The client then responds with the protocols that it supports ( 113 ). The librarian now has all of the information required to transmit the document to the requester. 
   The next step is to filter out the portions of the document that the requester is not permitted to see. The librarian uses the document name to fetch the entire document from the document database. (Recall that only the header was fetched earlier.) 
   The librarian&#39;s filtering process then removes the parts of the document that the requester cannot see. It parses each tag in the text and again uses the author&#39;s role to determine the absolute security level of the section governed by the tag. If the user is not authorized to see this level of information, the section is removed from this temporary copy of the document. It should be noted that all filtering is done on the temporary copy of the document. The original document is left unaltered in the document database for later use. 
   Next, the client device&#39;s security capability is used to further filter the document. For example, if the section requires security of  85 , and the CEO is requesting the document, then that section would typically be included. However, if the CEQ was using a device that only supported encryption valid up to level  75 , that section would be removed since the client device does not support a sufficiently strong cipher. In a variation of the preferred embodiment of the present invention, the system could be configured to allow certain individuals such as a CEO to override the client device requirements. 
   The librarian next selects the security algorithm. The librarian selects the least secure algorithm that meets the security requirement of the most secure portion of the filtered; document. (As strong ciphers typically require more processing, and thus are slower, it saves processor time to select the least secure algorithm.) For example, consider a case where a document has sections that map to security levels  10 ,  30 ,  50 ,  70  and  90 ; the requester can see up to level  80 ; and the client supports three encryption algorithms A, B, and C. Further assume that algorithm A is considered secure up to level  20 ; B up to level  55 ; C to level  65 ; some algorithm D to level  80  and another algorithm E to  99 . (D and E are not supported by the client.) Since the requester is only authorized up to level  80 , the section of the document requiring level  90  will be filtered out. Further, since the client device does not support either encryption protocols D or E, the document section requiring level  70  will also be filtered out. So, since the remaining document has maximum security level of  50 , protocol B will be chosen, since it is the lightest weight protocol that supports the maximum requirement ( 50 ). Other selection criteria for security algorithms can be used without materially affecting the present invention. For example, some installations might choose to always use the strongest possible encryption. 
   The librarian process then encrypts the filtered document using that algorithm, and delivers it to the client ( 114 ). Note that the order of certain steps in this process can be interchanged without affecting the novelty of the present invention. For example, the librarian could perform all database lookups at the beginning of the process, rather than waiting until such lookups are necessary. 
   It should also be noted that while static documents are implicitly assumed, the present invention applies also to dynamic content. Often web documents are constructed by web servers only when they are requested. The web server stores a collection of sub-documents, which are assembled into documents when a web request is satisfied. One skilled in the art will immediately recognize that the web sub-documents are analogous to the sections (or collections of sections) described above, and will recognize the applicability of the present invention to such cases.