text:
|Publication number
|Publication type
|Application number
|Publication date
|Jul 17, 2012
|Filing date
|Apr 2, 2008
|Priority date
|Apr 2, 2008
|Fee status
|Also published as
|Publication number
|Ulf Mattsson
|Original Assignee
|Protegrity Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (38), Non-Patent Citations (55), Referenced by (6), Classifications (42), Legal Events (3)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention generally relates to systems and methods of data protection across connected, disconnected, attended, and unattended environments.
As credit and debit cards become ubiquitous in commerce, security concerns that were once limited to centralized databases are expanding to encompass the entire stream of commerce, beginning at the point of sale. Moreover, organizations must comply with a number of data security standards including the Payment Card Industry (PCI) Data Security Standard, Basel II, the Gramm-Leach-Bliley Act, the Health Insurance Portability and Accountability Act (HIPAA), and California State Bulletin 1836.
Consider the example of a supermarket with a number of point of sale terminals. Each terminal should be capable of accepting credit card payments which must be transferred to the card issuer for payment and/or stored in the supermarket's database. Each terminal may be used by several cashiers over the course of a day. Each terminal may be powered on or off due to planned or unplanned events and may lose network connectivity at any given moment. Moreover, each terminal may be used in an attended mode in which a user such as a cashier, manager, or technician is authenticated or in an unattended mode where an authenticated user is not present, such as in a self-checkout environment. Such a system presents a need for strong security need, while requiring that the system is resilient in the face of network and power interruptions.
Systems and methods are provided for data protection across connected, disconnected, attended, and unattended environments. Embodiments of the inventions may include differential encryption based on network connectivity, attended/unattended status, or a combination thereof.
A first aspect of the invention is directed to a method of data security including detecting the status of a connection between a system and a security system, and when detecting that the system is disconnected from a security device, implementing a first encryption paradigm for the system; and when detecting that the system is connected to the security device, implementing a second encryption paradigm for the system.
In some embodiments, the system can be a client, a server, a personal computer, a handheld device, a personal digital assistant, a cellular phone, a kiosk, an automatic teller machine, a point of sale system, and/or a vending machine.
The method can also include creating temporary credentials and/or replacing the temporary credentials with credentials allowing access to the security device. The method can further include creating a temporary encryption key and/or replacing the temporary encryption key with a durable encryption key. Other embodiments include encrypting the temporary encryption key and/or obtaining a temporary encryption key previously sent by the security device. Data can be encrypted with the temporary encryption key.
The method can also include storing the data on the system and/or transferring the data from the system to a storage device. In other embodiments, information about the temporary encryption key is transferred with the data. Information about the temporary credentials can also be transferred with the data.
In other embodiments, the step of implementing a second encryption paradigm includes receiving a durable encryption key from the security device. In still further embodiments, the step of implementing a second encryption paradigm includes receiving a new temporary encryption key from the security device.
In some embodiments, the first encryption paradigm includes a first limit on data access. In other embodiments, the second encryption paradigm includes a second limit on data access. In still further embodiments, the first encryption paradigm includes a first limit on data access, the second encryption paradigm includes a second limit on data access, wherein the second limit allows for more data access than the first limit.
Another aspect of the invention is directed to a method of data security including detecting whether a system is attended, and when detecting that the system is unattended, implementing a first encryption paradigm for the system, and when detecting that the system is attended, implementing a second encryption paradigm for the system.
In some embodiments, the step of implementing a first encryption paradigm includes creating temporary credentials and/or creating a temporary encryption key. The method may also include encrypting the temporary encryption key. In other embodiments, the method includes obtaining a temporary encryption key previously sent by the security device. The method can also include encrypting data with the temporary encryption key.
Further embodiments of the method include transferring the data from the system to a storage device. Information about the temporary encryption key and/or temporary credentials can be transferred with the data. In some embodiments, the step of implementing a second encryption paradigm includes receiving a new temporary encryption key from the security device. In other embodiments, the step of implementing a second encryption paradigm includes receiving a durable encryption key from the security device.
In some embodiments, the first encryption paradigm includes a first limit on data access. In other embodiments, the second encryption paradigm includes a second limit on data access. In still further embodiments, the first encryption paradigm includes a first limit on data access; the second encryption paradigm includes a second limit on data access, wherein the second limit allows for more data access than the first limit.
Another aspect of the invention is directed to a computer-readable medium whose contents cause a computer to perform a method of data security including detecting the status of a connection between a system and a security system, and when detecting that the system is disconnected from a security device, implementing a first encryption paradigm for the system, and when detecting that the system is connected to the security device, implementing a second encryption paradigm for the system.
Yet another aspect of the invention is directed to a computer-readable medium whose contents cause a computer to perform a method of data security comprising detecting whether a system is attended, and when detecting that the system is unattended, implementing a first encryption paradigm for the system, and when detecting that the system is attended, implementing a second encryption paradigm for the system.
Figures are provided to generally illustrate principles of the invention and/or to show certain embodiments according to the invention. The figures are not necessarily to scale. Each figure is briefly described below.
Systems and methods are provided for data protection across connected, disconnected, attended, and unattended environments. Embodiments of the inventions may include differential encryption based on network connectivity, attended/unattended status, or a combination thereof.
The features of this invention are explained in the context of a retail environment as described below. This embodiment is but one of many and is not intended to be limiting in any way.
Zone 102 contains a variety of equipment including servers 106 and databases 108 connected by networking equipment represented by cloud 110. Devices 106 and 108 preferably may be separated from outside network traffic by firewall 112.
Zone 104 also contains a variety of equipment, for example, point of sale (POS) systems 114, connected by networking equipment 116 which can include a local server and/or a database (not shown). Data link 118 connects zones 102 and 104.
The servers 102 and POS systems 114 typically include an operating system to manage devices such as disks, memory and I/O operations and to provide programs with a simpler interface to the hardware. Operating systems suitable for use with this environment include, for example: Unix�, available from the X/Open Company of Berkshire, United Kingdom; FreeBSD, available from the FreeBSD Foundation of Boulder, Colo.: Linux�, available from a variety of sources; GNU/Linux, available from a variety of sources; POSIX�, available from IEEE of Piscataway, N.J.; OS/2�, available from IBM Corporation of Armonk, N.Y.; Mac OS�, Mac OS X�, Mac OS X Server�, all available from Apple Computer, Inc. of Cupertino, Calif.; MS-DOS�, Windows�, Windows 3.1�, Windows 95�, Windows 2000�, Windows NT�, Windows XP�, Windows Server 2003�, Windows Vista�, all available from the Microsoft Corp. of Redmond, Wash.; and Solaris�, available from Sun Microsystems, Inc. of Santa Clara, Calif. See generally Andrew S. Tanenbaum, Modern Operating Systems (2d ed. 2001). Such operating systems are well-known to those skilled in the art and, thus, not further described herein.
Differential Encryption Based on Network Connectivity
In some embodiments, various encryption paradigms are implemented depending on whether a POS system is connected to or disconnected from a security device.
As used herein, a system includes any device based in hardware, software or firmware. For example, the POS system may include a client, a server, a personal computer, a handheld device, a personal digital assistant, a cellular phone, a kiosk, an automatic teller machine (ATM), a vending machine, or combinations of such devices. In some embodiments, the system is a specific point of sale (POS) device such as a cash register or vending machine. Point of sale systems are available from a variety of providers such as, for example, International Business Machines of Armonk, N.Y.; MICROS Systems of Columbia, Md.; NCR Corporation of Dayton, Ohio; Squirrel Systems of Vancouver, Canada; VeriFone of San Jose, Calif.; and Wincor Nixdorf of Paderborn, Germany. Additionally, point of sale systems can be assembled from widely available electronic equipment such as a personal computer through the implementation of POS device standards such as OPOS, JavaPOS, and UnifiedPOS.
The system preferably is capable of connection with a security device. As used herein, a security device includes any device based in hardware, software or firmware used to implement a security paradigm. Such devices include, but are not limited to, hardware security modules (HSMs), access control systems, and encryption key databases. A security device can be a specialized piece of hardware or can be implemented on a general purpose piece of equipment such as a server 106.
A HSM securely generates and/or stores keys for cryptography. A HSM may be embedded in the hardware of a system or can be a plug-in card implementing the Peripheral Component Interconnect (PCI) standard or external device connected, e.g., through a standard such as RS232, SCSI, IP, USB, or PCMCIA or the like. Suitable HSMs include, but are not limited to those described in U.S. Pat. No. 6,963,980 to Mattsson and Federal Information Processing Standards (FIPS) Publication 140-2, the contents of which are hereby incorporated by reference herein. HSMs suitable for use in the present invention are available from a variety of providers including, but not limited to, Futurex of Bulverde, Tex.; SafeNet, Inc. of Belcamp, Md.; International Business Machines of Armonk, N.Y.; nCipher Corporation, Ltd. of Cambridge, United Kingdom; Utimaco Safeware Inc. of Foxboro, Mass.; and Sun Microsystems of Santa Clara, Calif.
Access control systems can provide a variety of security features including promulgating intrusion detection profiles, encryption paradigms, and encryption keys. An access control system can be implemented in many ways including, but not limited to, embodiment in a server, a client, a database or as a freestanding network component (e.g., as a hardware device). In some embodiments, the access control system is part of a DEFIANCE� or Secure.Data™ server, both available from Protegrity Corp. of Stamford, Conn. The access control system continuously monitors user activity, and prevents a user from accessing data for which the user is not cleared. An example of a clearance process is described in detail in U.S. Pat. No. 6,321,201 to Dahl, which is hereby incorporated by reference. Exemplary access control systems are further described in U.S. Patent Publication No. 2007/0083928 of Mattsson et al., which is hereby incorporated by reference.
The system and security device can be connected by LAN, WAN, Internet, Intranet, Virtual Private Network, Ethernet, Wi-Fi, Bluetooth, infrared, and the like now known and later developed. See generally, Andrew S. Tanenbaum, Computer Networks (4th ed. 2003). Moreover, the system and security device can be connected by a plurality of one or more of the above technologies.
As depicted in
Non-connectivity can occur and be detected at a variety of points. For example, non-connectivity can be detected at start-up of the system (S204). Alternatively, non-connectivity can occur during routine operation (S202) of the system and can be caused by a failure in one or more connection links or nodes or the failure of the security device. Upon detection of non-connectivity, a first encryption paradigm is implemented (S208).
Information on connectivity status can be provided, for example, by an operating system. For example, if the invention is implemented on a computer running the WINDOWS� operating system, services such as IsNetworkAlive, IsDestinationReachable, InternetGetConnectedState, and Internet CheckConnection can be used to ascertain and monitor the network status. If the invention is implemented on a computer running the LINUX� or UNIX� operating system, the netstat command can be used to ascertain and monitor the network status. Additionally or alternatively, a "heartbeat" function can be implemented to poll the security device. An exemplary heartbeat function is provided (with source code) in W. Richard Stevens, UNIX Network Programming 581-87 (2d ed. 1998), the contents of which are hereby incorporated by reference herein.
The first encryption paradigm can include one or more attributes. For example, the first encryption paradigm can specify an encryption algorithm such as Cramer-Shoup, RSA, FISH, SOBER, SOBER-128, Blowfish and Lucifer and the like. The encryption algorithm can also specify one or more encryption keys to be used for encryption of data. The encryption key(s) can be generated by the system, for example, by an HSM integrated into the system, or can have been generated by the security device and communicated by the security device to the system prior to the connectivity interruption. The key(s) can be stored in an HSM integrated with the system, in a certificate residing on the system, or in any type of memory contained within or coupled or connected to the system. The key(s) also can be encrypted.
The first encryption paradigm can also include the use or creation of temporary credentials. Such credentials, e.g. a username and password, allow for access to and/or use of the machine during the period of non-connectivity. Such credentials can be generated by the system, or may have been pre-generated and stored on the system. In such an embodiment, a plurality of username/password combinations can be stored on the system. During a period of non-connectivity, an appropriate password is determined (e.g. by consulting a codebook or calling a help desk or operations center). In some embodiments, the password is a one-time password and the username will not be used again, or at least not for a defined period of time. The temporary credentials can be updated by the system and/or the security device during periods of connectivity.
The credentials can be stored on the system and can be utilized along with the encryption key for encrypting data, for example as an initialization vector. Initialization vectors are described in, for example, Bruce Schneier, Applied Cryptography 194-205 (2d ed. 1996), the contents of which are hereby incorporated by reference herein. Additionally, information about the temporary encryption key and/or temporary credentials can be transferred with the encrypted data. Suitable methods for transferring encryption information with encrypted data include, but are not limited to, those described in U.S. patent application Ser. No. 11/904,791 of Mattsson, filed Sep. 27, 2007, the contents of which are hereby incorporated by reference herein.
In some embodiments, the first encryption paradigm only allows the system (and users of the system) to encrypt data. Data encrypted on the system, either before or after the first encryption paradigm is implemented, preferably may not be accessed. In this embodiment, a public key (asymmetric) architecture can be used encrypt sensitive data, for example, credit card numbers, social security numbers, medical information, and personal records. Once encrypted with the public encryption key, the data may not be unencrypted without the private encryption key, which resides on the security device or in some other location in a secure location, preferably not on the system. In other embodiments, the system creates, for example, a random symmetric encryption key for encryption and decryption. This symmetric key is encrypted with the public key or is stored in an encrypted and/or password protected file for transport to the security device.
Suitable public-key (asymmetric) algorithms include, for example, RSA, the knapsack algorithm, discrete logarithm algorithms, elliptic curve cryptography (ECC) algorithms, and the like. Such algorithms are described generally in Andrew S. Tanenbaum, Computer Networks 752-55 (4th ed. 2003) and Bruce Schneier, Applied Cryptography (2d ed. 1996), the contents of which are incorporated by reference.
In other embodiments, the processing resources required for a public-key algorithms may deemed too costly, and other encryption techniques may be implemented in the first encryption paradigm. Symmetric-key algorithms such DES (Data Encryption Standard), Rijndael, 3DES (Triple DES), AES (Advanced Encryption Standard), and ANSI X9.24 may be employed to improve encryption performance. Such algorithms may be employed in a variety of cipher modes including, for example, electronic code book mode (ECB), cipher block chaining mode, cipher feedback mode, and stream cipher mode, and counter mode. AES is described in Federal Information Processing Standards (FIPS) Publication 197, the contents of which is hereby incorporated herein by reference. Symmetric-key algorithms and counter modes are described in Andrew S. Tanenbaum, Computer Networks 737-50 (4th ed. 2003) and Bruce Schneier, Applied Cryptography (2d ed. 1996), the contents of which are incorporated herein by reference.
No matter which encryption algorithm is used, an encryption key is needed to encrypt data. It is desirable to provide a new encryption key when the first encryption paradigm is implemented. In some embodiments of the invention, the new encryption key is obtained by the system and stored prior to the loss of network connectivity (S218). The new encryption key may be scrambled or encrypted before storage for greater security. When the first encryption paradigm is implemented, the new encryption key may be descrambled or unencrypted. The new encryption key may be descrambled or unencrypted by the system without user involvement. Such a system may be preferable in an environment such as a supermarket so that each POS system will be capable of implementing the first encryption paradigm in order to receive credit card numbers without user authentication at each POS system. In another embodiment, two passwords and/or encryption keys are required to access the new encryption key. A first password is provided by the user and/or the system. The second password is provided by another source, for example, the security device, a help desk, or a security center. In some embodiments, the user may call a help desk via telephone to obtain the second password. (In some embodiments, additional encryption keys can be used as supplement or substitute for password(s).)
Upon the establishment or reestablishment of a network connection with the security device (S210), the system implements a second encryption paradigm (S212). A second encryption key is transmitted to the system from the security device. The second encryption is used to encrypt data received after the second encryption paradigm is implemented. In some embodiments, data previously encrypted during the first paradigm is transmitted to the security device or other destination. The previously encrypted data may be transmitted along with the encryption key or information about the encryption key used to encrypt the data so that the data may be unencrypted (S214). In further embodiments, the data is deleted from the system as or after the data is transmitted (S216).
In some embodiments, yet another encryption key is transmitted from the security device to the system (S218). This third encryption key is used by the system to encrypt data during the next period of non-connectivity. Accordingly, key compartmentalization is provided wherein any potential data breach resulting from the theft of the system is minimized to the data received during a period of non-connectivity.
In snapshot 302, system 308 a is connected to a security device (not shown). As data is received (in this example, credit card numbers CCN1 and CCN2) the data is encrypted with encryption key A. This encrypted data may be continuously or periodically transferred to a centralized data center and/or deleted from system 308 a as required and/or desired by operational and/or security needs. System 308 a also has stored encryption key B for use when disconnected from the security device as described above. Access to encryption key B can be restricted, for example, through the use of one or more passwords or encryption techniques as described above.
In snapshot 304, system 308 b is disconnected from a security device (not shown). Encryption key B is then retrieved and is used to encrypt new data CCN3 and CCN4. Previously encrypted data CCN1 and CCN2 remains on the system and encrypted with encryption key A.
In snapshot 306, system 308 c is reconnected with security device 312. Security device 312 transmits a new encryption key C which is used for encryption of new data CCN5 and CCN6. Additionally, security device 312 transmits encryption key D which is stored for use when the system becomes disconnected in the future. Previously stored data CCN1, CCN2, CCN3, and CCN4 can be transmitted to security device 312 or some other data center for processing.
Note that while stored data in snapshots 302, 304, and 306 is depicted in separated boxes, such depiction is primarily for the purpose of illustrating the concept of implementing a different encryption paradigm whenever the system changes its connectivity state. For example, all of the stored data can be stored in the same database and/or the same database table. Even though data may be stored in the same location, key compartmentalization is achieved because the data is encrypted with different encryption keys.
Additionally, encryption keys may be changed in response to events other than a change in connectivity status. As described herein, an encryption key may be changed after the key is used to encrypt a defined volume of data or after the key is used for a defined time. For example, in some embodiments, the encryption is retired after encryption 10,000 data records and/or after 6 hours of use.
Differential Encryption Based on System Status as "Attended" vs. "Unattended"
In some embodiments, a different encryption paradigm is implemented depending on whether a system is attended or unattended.
As used herein, the concept of an "attended" vs. "unattended" system is flexible to reflect the varying security needs of business environments. For example, in some environments, an unattended system is defined as systems wherein an authorized user is not present, e.g. a self-checkout POS system, while an attended system is defined as a system wherein an authorized user is present, e.g. a POS system operated by a cashier. In other environments, the concept of "attended" may be defined to mean a system in which a user with a defined authority is present. For example, in some environments, only a manager or a technician may be authorized to access credit card numbers stored on a POS system.
Authentication can be accomplished by examining one or more credentials from the following categories: some property of the user/system is (e.g. fingerprint or retinal pattern, DNA sequence, signature recognition, other biometric identifiers, or Media Access Control (MAC) address), some object the user/system possesses (e.g. ID card, smart card, chip card, security token, or software token), and some knowledge possessed by the user/system knows (e.g. password, pass phrase, or personal identification number (PIN)). Authorization is a process of determining whether the authenticated user/client is allowed to view information or perform actions. The concepts of authentication and authorization are well known to those skilled in the art and, thus, not further described herein.
As depicted in
The system's status as attended or unattended may be ascertained in a variety of ways (S406). In one embodiment, the system a default setting of "attended" or "unattended" is set. This setting may be overridden, when required, by authorized persons. Such an embodiment is advantageous in environments, such as a retail setting, because the embodiment allows for each POS system to be set as unattended by default. Therefore, if all of the POS systems are turned on at the same time (e.g. at opening of the store or after a power outage), each POS system will be able to receive and encrypt data without authentication.
In another embodiment, the system may be configured to detect the presence of a user. The absence of a user may be detected, for example, through the use of time outs, wherein the system detects a period of inactivity, or though other technologies such as a camera or other device to detect the presence of a user at the system. Other suitable technology includes, for example, the use of sensor to detect the weight of a human in a chair or the floor at the system. In some embodiments, the a prompt may be presented to the user allowing the user to verify his/her presence at the system before a "time out" causes the first encryption paradigm to be implemented.
The first encryption paradigm for an unattended system may include any or all of the features of the first encryption paradigm for the disconnected system as described with regard to
The system's status as "attended," may in some embodiments be ascertained by the user authentication of himself or herself. Authentication may occur by any of the methods described herein, for example, by entry of a password. Once authenticated, the second encryption paradigm is implemented on the system. A second (durable) encryption key is used for newly encrypted data.
Improved data security is achieved by implementing a new encryption paradigm whenever the system's status changes between "attended" and "unattended." In particular, increased key compartmentalization results from the frequent change of encryption keys. Such compartmentalization minimizes the data breach caused if a single key becomes compromised. Moreover, key compartmentalization limits the volume of data that can be used for a statistical attack on a particular encryption key and multiplies the time required for a brute force attack to decrypt all data stored on the system.
Relationship between Connected/Disconnected and Attended/Unattended Status
As depicted in
Distributed Differential Encryption
In some embodiments, the system described above may not serve an end user, but rather may be positioned between the security device and POS systems 114. Such a system would act as an intermediary between POS systems 114 and the security device. The system would control the encryption of each POS system in accordance with embodiments of the invention such as those described herein or the like.
Trust Modes
The utility of systems and methods for implementing differential encryption paradigms is enhanced when combined with the concept of trust modes. A trust mode defines the access to data granted to a system and/or user. The amount of access can be defined temporally and/or quantitatively.
For example,
Schematic 600 a in
Trust mode 608 a allows for encryption of additional data, but requires dual control. Under one implementation of dual control, the system will refuse to accept and/or allow access to additional data beyond the threshold defined by trust mode 606 a without authentication by two individuals, e.g. cashier/manager, manager/operations center personnel, etc. Trust mode 610 a also contains a dual control limitation for decryption of data.
Trust mode 612 a requires split knowledge (also known as "shared secrets"), wherein two individuals must provide information for decryption. For example, one individual may provide a first half of the encryption key, while the other individual provides the second half. Trust mode 614 a implements both split knowledge and dual control.
The inventions herein may implement one or more trust modes in any sequence that is desirable in response to a series of events. For example, a system operating under a higher trust mode may implement a lower trust mode (and/or an associated encryption paradigm) upon the loss of connectivity with the security device.
The inventions herein may also implement one or more trust modes (e.g. at startup) based on one or more validation checks of components including, but not limited to: an application, the system, a session, a database, the security device, credential (e.g. logon credentials). Additionally or alternatively, a particular trust mode may be implemented because a system, user, and/or application has a history of data access limit violations or other security violations.
As illustrated in
Additionally, access to encryption keys used for higher volumes of data can be regulated in the context of trust modes as illustrated in
Moreover, the inventions described herein may limit the volume of data that may be encrypted with each encryption key used within a trust mode. Additionally or alternatively, the inventions described herein may limit the time that each encryption key used within a trust mode is viable for encryption. For example, in a lower trust mode, each encryption key may be limited to encrypting lower volumes or data and/or may only be used to encrypt data for a relatively short time. Such a trust mode will result in a highly compartmentalized encryption scheme, wherein a would-be thief must break several encryption keys in order to access all of the data stored on a system. Moreover, the high costs of a brute force attack will yield little data as a relatively low volume of data is encrypted with each encryption key.
Implementation of Data Access Limits
In some embodiments, the system can be authorized to perform a specified number (e.g., 1,000, 10,000, 100,000) of encryption transactions without communicating with the security device. In some embodiments, the system may contain an indicator value that reflects the number of requests that the system can make before the system must communicate with the security device. The indicator value can be increased in some embodiments, or can be decreased in others to reflect operational and/or security needs. For example, the indicator value may initially be zero and may be increased towards the threshold of 1,000. Alternatively, the indicator value may be initially be 1,000 and decreased to a threshold of zero.
The indicator value may be modified by one or another value for each request for information. Alternatively, the indicator value may be modified for each record returned by the request. For example, if a query to a database returned five social security numbers, the indicator value could be increased or decreased by five.
As the embodiment is designed, the system preferably requires periodic communications with the security device if a user is to enjoy uninterrupted access to sensitive data. Accordingly, the system preferably is configured to contact the security device whenever a network connection exists, at a defined interval, when the indicator value is within a defined distance from the threshold, and/or when the indicator value exceeds the threshold. The security device can communicate with the system to modify the indicator value and/or the threshold value.
Dynamic Trust Modes
Trust modes may be further refined to limit or prohibit access to marked data. The rules limiting access could be similar to the rules described above, but would apply in whole or in part to marked data, as opposed to all data in the system. Marked data could include any item including, but not limited to, files, images, sound recording and videos. Marked data can be identified in many ways as is known to one of ordinary skill in the art. Examples of such means of identification include, but are not limited to: inclusion of a flag in file attributes; naming conventions; and the creation of a list or database listing marked items. Certain marked data (e.g., security log files) may be so sensitive such that any attempts to access the file should automatically trigger intrusion detection. Such intrusion detection can include a variety of components that will vary based on a particular implementation of the invention and procedures of the organization using an embodiment of the invention.
Examples of intrusion detection procedures include, but are not limited to, writing a log, modifying one or more trust modes to place restrictions or prohibitions on access to one or more resources for defined period of time or until an administrator restores access; alerting one or more administrators of a potential intrusion, altering one or more intrusion detection profiles and/or trust modes, altering a security level, shutting down one or more data at rest systems (e.g. databases, file systems, network attached storage (NAS) devices, storage area network (SAN) devices), commencing analysis of historical data access records and commencing inference analysis.
Analysis of historical data access records may employ, for example, methods and/or systems for the compilation of access records, computations of statistics based on the records, and/or presentation of the records and statistics. The presentation of the records and statistics may include textual, pictorial and/or graphical elements.
Inference analysis may include, for example, the use of data mining and machine learning technologies and techniques such as Bayes' theorem and the like. For example, anti-spam filters are becoming increasingly sophisticated, with accuracy rates in the high 90 percent being the norm. The best solutions combine Bayesian filtering and content inspection. Most use some combination of Bayesian filtering and content analysis along with whitelists and blacklists. The content filtering will inspect the accessed data element over time and the relation to sensitive data element. As a general rule, accuracy improves when inspection is moved farther away from the desktop and closer to the server.
Bayes' theorem is a facet of probability theory that relates the conditional and marginal probability distributions of random variables. The goal of the inference analysis is to detect patterns and develop heuristics or algorithms that predict intrusions. In machine learning implementations, such as spam filtering or detecting intrusions, Bayes' theorem is instructive on how to update or revise beliefs, a posteriori, in light of new evidence.
The goal of inference is typically to find the distribution of a subset of the variables, conditional upon some other subset of variables with known values (the evidence), with any remaining variables integrated out. This is known as the posterior distribution of the subset of the variables given the evidence. The posterior distribution gives a universal sufficient statistic for detection applications, when one wants to choose values for the variable subset which minimize some expected loss function, for instance the probability of decision error. A Bayesian network thus can be considered a mechanism for automatically constructing extensions of Bayes' theorem to more complex problems. The most common exact inference methods are: variable elimination which eliminates (by integration or summation) the non-observed non-query variables one by one by distributing the sum over the product; clique tree propagation which caches the computation so that the many variables can be queried at one time and new evidence can be propagated quickly; and recursive conditioning, which allows for a space-time tradeoff but still allowing for the efficiency of variable elimination when enough space is used. All of these methods have complexity that is exponential with respect to tree width. The most common approximate inference algorithms are stochastic MCMC simulation, mini-bucket elimination which generalizes loopy belief propagation, and variational methods.
In order to fully specify the Bayesian network and, thus, fully represent the joint probability distribution, it is necessary to further specify for each node X the probability distribution for X conditional upon X's parents. The distribution of X conditional upon its parents may have any form. It is common to work with discrete or Gaussian distributions since that simplifies calculations. Sometimes only constraints on a distribution are known; one can then use the principle of maximum entropy to determine a single distribution, the one with the greatest entropy given the constraints. (Analogously, in the specific context of a dynamic Bayesian network, one commonly specifies the conditional distribution for the hidden state's temporal evolution to maximize the entropy rate of the implied stochastic process.)
Often these conditional distributions include parameters which are unknown and must be estimated from data, sometimes using the maximum likelihood approach. Direct maximization of the likelihood (or of the posterior probability) is often complex when there are unobserved variables. A classical approach to this problem is the expectation-maximization algorithm which alternates computing expected values of the unobserved variables conditional on observed data, with maximizing the complete likelihood (or posterior) assuming that previously computed expected values are correct. A more fully Bayesian approach to parameters is to treat parameters as additional unobserved variables and to compute a full posterior distribution over all nodes conditional upon observed data, then to integrate out the parameters. This approach can be expensive and lead to large dimension models so, in practice, classical parameter-setting approaches are more common.
Embodiments of the invention implementing Bayesian inferences typically begin with predefined rules and/or beliefs regarding user behaviors. Information is gathered from data requests. As discussed herein, these requests are evaluated against said rules and beliefs. If a request violates a rule or conforms to a belief that the request constitutes an intrusion, the request is denied. Beliefs may be expressed probabilistically, i.e., instead of predicting whether or not a request constitutes an intrusion, embodiments of the invention herein preferably produce probabilities that a request constitutes an intrusion. These probabilities can be blended with other probabilities produced through other statistical methods as is well known to those of ordinary skill in the art. See, e.g., U.S. Pat. No. 7,051,077 to Lin, the contents of which are incorporated herein by reference.
Embodiments of the invention utilize outside knowledge to revise beliefs and rules. For example, if a manager requests credit card numbers from a retail store with which she is not affiliated, embodiments of the invention herein can deny access to the data. The manager may, in turn, contact a helpdesk or other system administrator to justify her need for the files. Assuming that the need is legitimate, the helpdesk or administrator can modify classification of the request as not an intrusion. The system, in turn, may be less likely to classify similar requests by similar users as an intrusion in the future.
In embodiments of the invention configured to prevent intrusion in a file system, the item access rule can limit the number of read and/or write requests that may be processed by a user and/or a group of users in one or more files, one or more directories, one or more servers and/or the entire file system. Additionally, item access rules can limit the number of files and/or volume of data that may be accessed by a user or group of users in one or more files, one or more directories, one or more servers and/or the entire file system. Embodiments of the invention described herein may be implemented for a variety of file systems including but not limited to those described herein.
In some embodiments of the invention, inference patterns and analysis as described herein are included in intrusion detection policies. A violation of a inference pattern can result in the security device restricting access to the data at rest system that the requestor is attempting to access and can also restrict access to additional systems including, but not limited to, file system(s), database(s), application(s) and network(s). As described herein, the inference patterns and analysis can include Bayesian inference.
Various embodiments of the invention can produce a scorecard. The scorecard may contain information gathered by sensors and the security devices as well as information from log files including, but not limited to, violation attempts, session statistics and data access statistics. The scorecard may be presented in many formats including, but not limited to, textual, pictorial, graphical and in electronic format, such as a webpage. The scorecard may show data access statistics with respect to an entity including, but not limited to, a user, an application, a database, a query and a column. The scorecard may also include a metric to represent the severity of a threat. In computing the metric, item requests may be given varying weights depending on the sensitivity of the data. An exemplary dynamic intrusion detection system is described in U.S. Patent Application No. 2007/0083928 to Mattsson, et al., the contents of which are incorporated by reference herein.
Exemplary Implementation
The following exemplary implementation, illustrated in
In step 806, the central HSM 802 produces a base derivation key that can be used to produce all or a portion of the encryption keys used through the HSM 802 and in the local encryption services 804. The base derivation key is computed from a data element key and non-secret information.
The data element key is a previously produced encryption key. Ideally, the data element key is stored in an HSM with physical security features. For example, the data element key may be stored in an HSM conforming to FIPS Security Level 2 or 3. An HSM conforming to FIPS Security Level 2 is required to have evidence of tampering (e.g., a cover, enclosure or seal on the physical aspects of the engine 124) as well as an opaque tamper-evidence coating on the engine's 124 encryption chip. An HSM conforming to FIPS Security Level 3 is required to perform automatic zeroization (i.e. erasure of sensitive information such as encryption keys) when a maintenance access interface is accessed, as well as a removal-resistant and penetration-resistant enclosure for the encryption chip.
The date element key preferably resides only in the HSM or in other secure devices in the headquarters and is preferably not distributed to the local encryption services. The data element key is preferably a double-length (128 bit) or triple-length (192 bit) encryption key.
The data element key is combined with key generation information to produce the base derivation key. The key generation information can be obtained from a variety of sources, for example, a random number generator. The key generation information can also be obtained from time and date information, for example, the current year.
The key generation information and the data element key may combined according to any method known to those of skill in the art, including, but not limited to, concatenation, hashing, arithmetic operations (e.g. addition, subtraction, multiplication, division, module, AND, OR, and XOR), and encryption.
In step 808, the base derivation key is combined with a store ID 810 to produce an initial store key 812. The base derivation key and store ID 810 may combined according to any method known to those of skill in the art, including, but not limited to, concatenation, hashing, arithmetic operations (e.g. addition, subtraction, multiplication, division, module, AND, OR, and XOR), and encryption (e.g. the Triple Date Encryption Algorithm (TDEA)).
The initial store key 812 is transferred to the local encryption service 804. On both the central HSM 802 and the local encryption service 804, non-reversible transformation processes A (814) and B (816) produce the current day key 818, 820 from the initial store key 812. After the current day key 820 is computed from the initial store key, the initial store key is deleted from the local encryption service 804.
Transformation processes may consist of or incorporate time-stamping algorithms such as RFC 3161 or ANSI ASC X9.95. See, e.g. ANSI, ANSI X9.24-1:2004: Retail Financial Services Symmetric Key Management Part 1: Using Symmetric Techniques (2004); ANSI, ANSI X9.24-2:2006 Retail Financial Services Symmetric Key Management Part 2: Using Asymmetric Techniques for Distribution of Symmetric Keys (2004); C. Adams et al., Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) (2001), available at http://tools.ietf.org/html/rfc3161.
In the local encryption service, a new day key 822 is produced by a non-reversible transformation process B 816 which accepts as its inputs the current daily key and encryption date. After the new day key 822 is created, the current day key 820 is deleted.
Transformation processes A (814) and B (816) are related as the must produce the same output on any give day so that the central HSM 802 may decrypt the data encrypted on the local encryption service. However, the processes 814 and 816 are different as each function accepts different inputs. The relationship between the processes can thus be expressed functionally as follows:
F A(Initial Store Key, Encryption Day)=F B(Current Daily Key, Encryption Day).
The invention is not limited to the embodiments described herein. In other embodiments, the new day key 822 is produced on the POS system, in a server located in each store, or in the headquarters. A secure key store as described herein is, in some embodiments, located in the same location that the new day is produced.
Store ID 824, and encryption day 826, and data element 828 are combined to form a Key ID 830 that contains the information required by the central HSM 802 to decrypt the encrypted data 832 (in this example, a CCN). Optionally, a token 834 can be used to encrypt data 832 and this token 834 can be sent to the central HSM 802 along with the data 832 and the Key ID 830.
In some embodiments, the encrypted data 832 is encrypted so that the encrypted data 832 contains information about the type of data that is encrypted. For example, the encrypted data 832 can contain information to identify that the encrypted data should be encrypted as a credit card number (as opposed to a string, an integer, or a binary). In an exemplary embodiment, the encrypted data 832 is encrypted in accordance with U.S. patent application Ser. No. 09/721,942 of Mattsson et al. and/or U.S. patent application Ser. No. 11/904,791 of Mattsson. The contents of both applications are hereby incorporated by reference herein.
The functions of several elements may, in alternative embodiments, be carried out by fewer elements, or a single element. Similarly, in some embodiments, any functional element may perform fewer, or different, operations than those described with respect to the illustrated embodiment. Also, functional elements (e.g., modules, databases, computers, clients, servers and the like) shown as distinct for purposes of illustration can be incorporated within other functional elements, separated in different hardware or distributed in a particular implementation.
The invention has been described in detail including preferred embodiments. However, one skilled in the art may make modifications or improvements within the spirit and scope of the invention.
|Cited Patent
|Filing date
|Publication date
|Apr 22, 1981
|Mar 27, 1984
|Siemens Corporation
|Apparatus and method for cryptographic identity verification
|May 16, 1988
|Sep 11, 1990
|Sysmith, Inc.
|Occurence and value based security system for computer databases
|Dec 2, 1992
|Nov 23, 1993
|Tandem Computers
|Access restriction facility method and apparatus
|Sep 23, 1991
|Dec 14, 1993
|Fuji Xerox Co., Ltd.
|Network system having controlled access to available resources
|Sep 30, 1992
|Feb 1, 1994
|International Computers Limited
|Security mechanism for a computer system
|May 28, 1993
|Dec 20, 1994
|Tecsec, Incorporated
|Cryptographic key management method and apparatus
|Sep 12, 1994
|Aug 1, 1995
|Digital Equipment Corporation
|License document interchange format for license management system
|May 4, 1993
|Aug 29, 1995
|International Business Machines Corporation
|Method and apparatus for controlling access to data elements in a data processing system based on status of an industrial process by mapping user's security categories and industrial process steps
|Mar 30, 1992
|Feb 20, 1996
|International Business Machines Corporation
|Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
|Jan 24, 1994
|Apr 2, 1996
|Hughes Aircraft Company
|Efficient security kernel for the 80960 extended architecture
|Sep 23, 1994
|Feb 25, 1997
|Anonymity Protection In Sweden Ab
|Apparatus and method for storing data
|Aug 15, 1996
|Dec 15, 1998
|Entrust Technologies, Ltd.
|Key management system for mixed-trust environments
|Feb 23, 1998
|Nov 20, 2001
|Anonymity Protection In Sweden Ab
|Data security system for a database having multiple encryption levels applicable on a data element value level
|Jan 29, 2002
|Jun 22, 2004
|Mitsubishi Jidosha Kogyo Kabushiki Kaisha
|Exhaust emission control device of internal-combustion engine
|Nov 16, 2000
|Nov 8, 2005
|Protegrity Corporation
|Combined hardware and software based encryption of databases
|Jun 22, 2004
|May 23, 2006
|Mx Logic, Inc.
|Fuzzy logic voting method and system for classifying e-mail using inputs from multiple spam classifiers
|Dec 28, 2001
|Oct 10, 2006
|Protegrity Corporation
|Method for intrusion detection in a database system
|Aug 25, 2006
|Dec 4, 2007
|Protegrity Corporation
|Method for intrusion detection in a database system
|Nov 16, 2000
|Jan 29, 2008
|Protegrity Corporation
|Method for altering encryption status in a relational database in a continuous process
|Dec 5, 2003
|Aug 12, 2008
|Microsoft Corporation
|Methods and systems for enabling secure storage of sensitive data
|Nov 27, 2000
|Aug 26, 2008
|Protegrity Corporation
|Data type preserving encryption
|Dec 6, 2001
|Oct 14, 2008
|Bioscrypt Inc.
|Portable device and method for accessing data key actuated devices
|Feb 28, 2003
|Jun 15, 2010
|Enterasys Networks, Inc.
|Locating devices in a data network
|Jan 4, 2001
|Aug 22, 2002
|Shen-Orr D. Chaim
|Digital content delivery system and method
|May 31, 2001
|Oct 3, 2002
|Harvey Hollander
|System and method for conducting secure on-line transactions using a credit card
|Jan 11, 2002
|Jul 17, 2003
|Sokolic Jeremy N.
|Multiple trust modes for handling data
|May 21, 2001
|Oct 2, 2003
|Jong-Sung Lee
|Total system for preventing information outflow from inside
|Apr 18, 2005
|Nov 17, 2005
|Ntt Docomo, Inc.
|Mobile station and communication control method
|Aug 11, 2005
|Jun 8, 2006
|Stefano Faccin
|Apparatus, and associated methods, for facilitating secure, make-before-break hand-off in a radio communication system
|Sep 29, 2006
|Apr 12, 2007
|Ulf Mattsson
|Data security and intrusion detection
|Sep 27, 2007
|Apr 3, 2008
|Protegrity Corporation
|Meta-complete data storage
|Oct 31, 2007
|May 29, 2008
|Rajat Bhatnagar
|Secure messaging
|Nov 8, 2001
|May 22, 2002
|Protegrity Research & Development
|Encryption of databases based on a combination of hardware and software
|Nov 7, 2001
|May 22, 2002
|Protegrity Research & Development
|A method for altering encryption status in a relation database in a continuous process
|Nov 14, 2001
|May 29, 2002
|Protegrity Research & Development
|Preserving the data type of an encrypted data element
|Title not available
|Title not available
|Feb 14, 1995
|Aug 24, 1995
|British Telecommunications Public Limited Company
|A method and apparatus for controlling access to a database
|Andrew S. Tanenbaum, "Computer Networks" 737-750, 752-755 (4th ed. 2003).
|Application Security, Inc., "DbEncrypt(TM) for Oracle User Guide" (2001).
|Application Security, Inc., "DbEncrypt™ for Oracle User Guide" (2001).
|Billy G. Claybrook, "Using Views in a Multilevel Secure Database Management System", Proc. 1983 Symp. on Sec. and Privacy 4-17 (1983).
|Bruce L. Larson, "The Database Experts' Guide to Database 2" 23 and 372 (1988).
|Bruce Schneier, "Applied Cryptography" 194-205 (2d ed. 1996).
|C. Adams et al., Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) (2001).
|C.C. Chang, "An Information Protection Scheme Based Upon Number Theory", 30(3) Computer J. 249-253 (1987).
|Catherine Meadows, "Extending the Brewer-Nash Modelto a Multilevel Context", 1990 IEEE Computer Society Symp. on Research in Sec. & Privacy 95-102 (1990).
|Charles F. Pfleeger, "Security in Computing" 364-365 (2d. ed. 1997).
|Charles F. Pfleeger, "Security in Computing" iii-xiii & 336-376 (1997).
|Cristi Garvey & Amy Wu, "ASD-Views", Proc. 1988 IEEE Symposium on Research in Security & Privacy 85-95 (1988).
|Cristi Garvey & Amy Wu, "ASD—Views", Proc. 1988 IEEE Symposium on Research in Security & Privacy 85-95 (1988).
|D.B. Johnson et al., "Common Cryptographic Architecture Cryptographic Application Programming Interface", 30(2) IBM Systems J. 130-150 (1991).
|D.E. Denning, "Cryptographic Checksums for Multilevel Database Security", Proc. 1984 Symp. on Sec. & Privacy, IEEE Computer Society Press, 52-61 (1984).
|D.G. Abraham et al., "Transaction Security System", 30(2) IBM Systems J. 206-229 (1991).
|Darrell Woelk and Won Kim, "Multimedia Information Management in an Object-Oriented Database System", Proc. 13th VLDB Conference 319-328 (1987).
|David K. Gifford, "Cryptographic Sealing for Information Secrecy & Authentication", 25(4) Comm. of ACM 274-286 (Apr. 1982).
|David K. Hsiao et al., "Database Access Control in the Presence of Context Dependent Protection Requirements", SE-5(4) IEEE Trans. Software Eng. 349-358 (Jul. 1979).
|Deborah Downs & Gerald J. Popek, "A Kernel Design for a Secure Data Base Management System", Proc. Very Large Data Bases 507-514 (Oct. 1977).
|Dorothy E. Denning et al., "Views for Multilevel Database Security", IEEE Transactions on Software Eng. 129-140 (1987).
|Dorothy E. Denning, "Commutative Filters for Reducing Inference Threats in Multilevel Database Systems", Proc. 1985 Symp. on Sec. & Privacy 134-146 (1985).
|Dorothy E. Denning, "Field Encryption & Authentication", Advances in Cryptology: Proc. Crypto 83 231-247 (1984).
|E. John Sebes & Richard J. Feiertag, "Trusted Distributed Computing: Using Untrusted Network Software", 14th Nat'l Comp. Sec. Conf. 608-618 (1991).
|E.B. Fernandez et al., "Database Security & Integrity" xi-xiv, 55-106, 183-216, 309-320 (1981).
|Elisa Bertino, "Data Hiding & Security in Object-Oriented Databases", 8th Int'l Conf. on Data Engineering 338-347 (1992).
|Federal Information Processing Standards (FIPS) Publication 197.
|Gary W. Smith, "Multilevel Secure Database Design: A Practical Application Proc.", 5th Ann. Computer Security Conf. 314-321 (1989).
|George I. Davida, "Cryptographic Relational Algebra", Proc. 1982 Symp. on Sec. & Privacy 111-116 (1982).
|George I. Davida, David L. Wells, & John B. Kam, "A Database Encryption System with Subkeys", 6(2) ACM Trans. on Database Sys. 312-328 (Jun. 1981).
|Gerald C. Chick & Stafford E. Tavares, "Flexible Access Control with Master Keys", 435 Lecture Notes in Comp. Sci. 316-322 (1990).
|IBM, "DB2 for OS/390 V5 Administration Guide" delta B.2, B.3.2, B.3.3, B.3.4, B.7, & B.7.4 (Apr. 20, 2000).
|IBM, "IBM Database 2 Version 2: Application Programming & SQL Guide", 30, 31, 33, 48, 82, 102, 106, 286, & 529 (3d. ed. Mar. 1992).
|IBM, "DB2 for OS/390 V5 Administration Guide" δ B.2, B.3.2, B.3.3, B.3.4, B.7, & B.7.4 (Apr. 20, 2000).
|Jeffrey N. Thompson, Unit Fileutil.Tpu V.1.0 (Dec. 1990), available at HTTP://www.bsdg.org/SWAG/FILES/0062.PAS.
|Lein Harn & Hung-Yu Lin, "A Cryptographic Key Generation Scheme ofr Multilevel Data Securtiy", 9(6) Computers & Security 539-546 (1990).
|Li Gong, "A Secure Identity-Based Capability System", Proc. 1989 IEEE Symp. Sec. & Privacy 56-63 (May 1989).
|Masaaki Mizuno & Mitchell L Neilsen, "A Secure Quorum Protocol", 14th Nat'l Comp. Sec. Conf. 514-523 (1991).
|Matthew Morgenstern, "Controlling Logical Inference in Multilevel Database Systems", Proc. 1988 IEEE Symp. on Sec. & Privacy 245-255 (Apr. 1988).
|P.C. Yeh & R.M. Smith, Sr., "ESA/390 Integrated Cryptographic Facility: An Overview", 30(2) IBM Systems J. 192-205 (1991).
|Patricia A. Rougeau & Edward D. Sturms, "The Sybase Secure Dataserver: A Solution to the Multilevel Secure DBMS Problem", Proc 10th Nat'l Comp. Sec. Conf. 211-215 (1987).
|Patricia Dwyer et al., "Query Processing in LDV: A Secure Database System", 4th Aerospace Computer Security Applications Conf. 118-124 (1988).
|PCI Security Standards Council, "Payment Card Industry (PCI) Data Security Standard" (Sep. 2006).
|R.W. Conway et al., "On the Implementation of Security Measures in Information Systems", 15(4) Communications of the ACM 211-220 (Apr. 1972).
|Rafael Ahad et al., "Supporting Access Control in an Object-Oriented Database Language", Advances in Database Technology-EDBT '92: Proc. 3d Int'l Conf. Extending Database Technology 184-200 (1992).
|Rafael Ahad et al., "Supporting Access Control in an Object-Oriented Database Language", Advances in Database Technology—EDBT '92: Proc. 3d Int'l Conf. Extending Database Technology 184-200 (1992).
|Ravinderpal S. Sandhu, "Cryptographic Implementation of a Tree Hierarchy for Access Control", 27 Information Processing Letters 95-98 (1988).
|Richard D. Graubart & Kevin J. Duffy, "Design Overview for Retrofitting Integrity-Lock Architecture onto a Commercial DBMS", Proc 1985 Symposium on Security & Privacy 147-159 (1985).
|Selim G. Akl & Peter D. Taylor, "Cryptographic Solution to a Problem of Access Control in a Hierarchy", 1(3) ACM Trans. on Comp. Sys. 239-248 (Aug. 1983).
|Shirley Eichenwald, "Information Technologies: Physician-Hospital Networks", 63(3) J. AHIMA 50-51 (Mar. 1992).
|Stephen L. Montgomery, "Relational Database Design & Implementation Using DB2" 10-11 (1990).
|Sushi Jajodia & Boris Kagan, "Integrating an Object-Oriented Data Model with Multilevel Security", Proc. 1990 IEEE Computer Society Symp. Research in Security and Privacy 76-85 (1990).
|Udo Kelter, "Discretionary Access Controls", Proc. 1991 IEEE Symp. on Research in Security & Privacy 288-299 (1991).
|Vijay Varadharajan, "A Security Reference Model for a Distributed Object System & its Application", 15th Nat'l Comp. Sec. Conf. 593-619 (1992).
|W. Richard Stevens, "UNIX Network Programming" 581-587 (2d ed. 1998).
|Citing Patent
|Filing date
|Publication date
|Dec 7, 2010
|Feb 5, 2013
|Microsoft Corporation
|Counting delegation using hidden vector encryption
|Dec 8, 2010
|Jun 17, 2014
|Microsoft Corporation
|Polynomial evaluation delegation
|Mar 27, 2013
|Dec 1, 2015
|Protegrity Corporation
|Tokenization in a centralized tokenization environment
|Jun 13, 2015
|Feb 7, 2017
|Protegrity Corporation
|Tokenization in a centralized tokenization environment
|Dec 7, 2010
|Jun 7, 2012
|Microsoft Corporation
|Counting delegation using hidden vector encryption
|Sep 16, 2013
|Nov 19, 2015
|Siemens Aktiengesellschaft
|Method and arrangement for secure communication between network units in a communication network
|U.S. Classification
|713/189, 705/64, 705/73, 705/76, 705/72, 726/17, 380/279, 705/67, 380/44, 705/50, 713/155, 726/20, 726/18, 380/277, 713/150, 705/71, 726/21, 726/16, 726/2, 380/278, 713/182, 726/19
|International Classification
|Cooperative Classification
|European Classification
|Jul 30, 2008
Owner name: PROTEGRITY CORPORATION, CAYMAN ISLANDS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MATTSSON, ULF;REEL/FRAME:021315/0548
Effective date: 20080714
|Feb 17, 2016
|Fee payment
Year of fee payment: 4
|Feb 17, 2016
|Surcharge for late payment


text:
Download Chicken on a Raft apk 1.1 free for Android smartphone
Posted by Calmes Developing in Casual | Feb. 26, 2014 | 10 Comments
Apk file size: 3.1 MB
Had a bad day? "Oohh Chicken on a raft." Lots of homework? "ayyy oh Chicken on a raft!" How much chicken can you handle? Similar to the popular website chickenonaraft.com. Instagram your screenshot with the hashtag #chickenonaraft. And don't forget to tweet your score! Online leaderboard is coming soon. Post your scores and suggestions in the review section.
Whats new
1.1 Fixed some formatting issues in the counter
1.0 First version
Calmes Developing part of our Casual and have average installs from 1000 to 5000. Last Update Feb. 26, 2014. Google play rating is 88.5714. Current verison is 1.1. Actual size 3.1 MB.
Similar applications
Ice Cream Maker-Ice Candy Make76 Comments
Cake Maker –Wedding Decoration4670 Comments
10 Comments
A Google User
Great studying app! I was studying for my History final and this fantastic app inspired me to study hard. I got a 95 on the final! Thanks Chicken on a Raft!!!
George Vasko
Chicken on a raft on a Monday Morning, ohh what a terrible sight to see! Hahaa soo amusing i love it
Candy Hsu
The best Im so addicted! And really helps when youre hving a bad day!! So amazing!!
Marc Schiffres
Heey-oh Chicken on a raft!
Glennda Cook
great! great time waster!
A Google User
Great app! Needs a few updates but works pretty good. Id definitely recommend it:)
vamsi krishna
Boring! I don't really understand what's so exciting about it!
Nate Gibson
Stupidly funny
Drew Dickens
Loved it 5 outa 5 chiken on a freggin raft whats not to love
I love it I wish I would just keep on going and going and going

subset: commoncrawl


text:
We haven't been to 'the big city' in years so this visit
to Chicago was a welcome change from small town Athens.
While I wouldn't want to live there, there is definitely a different perspective
in a large city that I can appreciate.
Cosmopolitan is nice – in its own way.
For those of you that live there,
I highly compliment you on your Gino's pizza …
worth the drive … MAYBE even from Tennessee!
Memories …


text:
The BFA Acting Program is competitive with the best university acting programs in the country, both in intensity and in class time devoted to acting training.
Career Profile
Upon graduation students either enter into the profession immediately or are admitted to a high-caliber, graduate training program. Our alumni are successful artists, performers, educators and teachers.
Sample Course Schedules
Wondering what your typical day might be like? We used students' real course schedules to create these examples.
Freshman YearTHET 191 First-Year Seminar - CCA THET 160 Theatre Fundamentals THET 144 Fundamentals of Acting THET 104 Stagecraft Lab THET 103 Stagecraft
Senior YearTHET 441 Advanced Vocal Techniques 2 THET 443 Advanced Stage Movement 2 THET 445 Advanced Acting Studio THET 447 Studio Scene Study 2 THET 352 Acting the Song
By the Numbers
Facts and figures that make this major unique:
- A typical Acting student will perform in as many as 15 productions in his or her time at WVU.
- Seniors in the Acting program present a Bachelor of Fine Arts Showcase in New York City for talent agents, casting directors and theater companies.
- The School of Theatre and Dance produces 6 main stage shows each year.
- Average class size in the School of Theatre and Dance is 15.
- About 10,000 patrons see School of Theatre and Dance performances each year.
English Proficiency Requirements
All applicants whose first language is not English must provide proof of English language proficiency. WVU accepts either the TOEFL or the IELTS for this purpose. Learn more about our English language proficiency requirements.
Accreditation Information
WVU is accredited by the Higher Learning Commission.


text:
Diet tip # 3 – Cook your lunch in the morning
I often see people looking for lunch ideas at lunch time. In my opinion that is too late. Unless you are a role model of discipline, when you are hungry, you will choose food and portion differently. Most likely you will go for bigger portions, more food and high-carbohydrate meals. So why don't you cook your lunch in the morning?
Lunch time doesn't come by surprise, it will happen everyday and we going to get hungry at some point during the day.
This is my next diet tip for you, this is what I do: I plan my meal a night before; I make sure I have everything I need. The meals I cook in the morning always easy to make and they don't take too much time to prepare. I leave the more complicated recipes for those days when I have a day off. I often cook enough food for two days, I don't mind to eat leftovers. I rather to have my own, home made, nutritious lunch the next day again, than a store packed, often unhealthy sandwich.
When I wake up I quickly prepare the dish, and have my morning coffee while it's cooking or baking. When it's ready, I take out a portion and let it cool down so I can pack it to my lunch box before I leave my home.
There are many ways I benefit from this, but let me share my top 10 reasons why I cook my lunch in the morning:
1, I eat a home made dish from fresh ingredients, without any additives, preservatives. I know what is in it.
2, I will have the meal there, ready, when I get hungry.
3, I eat the right portion, I don't overeat.
4, I don't waste my lunch break to get something first and have my meal in a hurry, I always able to sit down and eat slowly and enjoying it too.
5, I eat cooked meal every day.
6, I never get home from work being extremely hungry and usually I just have a lighter dinner.
7, It's nice to know after a long day that I don't need to cook anymore when I get home and I can enjoy the evening.
8, By eating a wide variety of foods, I get all the essential vitamins, minerals, nutrients, in other words I have a balanced diet.
9, I always eat what I like, and its always delicious. After all, I made it!
10, I know that my husband can enjoy the same, above mentioned 9 benefits too.
I must admit there are some days when I don't have a cooked meal with me for lunch. Why? Occasionally some of the foods I make have a strong odor, for example if it was made with lots of garlic, or if it has sauerkraut in it. I prefer to eat these meals at home, after work. Also, some of the Hungarian dishes, like fish soup is not really suitable for packing, again I will consume it when I get home.
On those days, when I don't pack my cooked meal, I make a healthy sandwich with or without a lighter salad on the side, or just make a filling salad.
I strongly recommend you to try my tip, and cook your lunch in the morning. It will definitely help you to stick to your diet plan and maintain a balanced diet. Believe me, I don't particularly like to cook, but I love good food. Putting a meal together is nothing, still by the time I leave my home for work, I feel I have accomplished something for that day.
You can friend me on Facebook here and I will keep you updated on my blog,
or subscribe to my YouTube channel to be the first to see my videos.
Good luck!


text:
Dancehall star Bounty Killer drop a new single featuring Jah Cure "A Murdah," off the Inna Rub A Dub Style Riddim, Produced by John John Records.
A murder, in di streets
A murder, bad bwoys and police
A murder, in di streets
A murder
Full: Jah Cure & Bounty Killer – A Murdah Lyrics
Listen full track below.
Jah Cure Talks "That Girl," World Cry, Career, Album & More [VIDEO]
Bounty Killer & Angel Doolas – Reach Fast [New Music]


text:
Crowley Receive Port of Seattle Environmental Award
Crowley Maritime Corp was recently honored with the Marine Environmental Business of the Year Award during the 62nd Annual Maritime Festival Luncheon in Seattle.
Crowley's Gordon Brink, administrative assistant, harbor ship assist and tanker escort services, accepted the award from the Port of Seattle's CEO Tay Yoshitani on behalf of the company.
Each year the award is granted to a company that demonstrates environmental initiative and leadership through its commitment to helping the Port of Seattle maintain a low-carbon footprint. Crowley received the award for demonstrating a strong culture of environmental stewardship through its initiatives to keep Puget Sound and other bodies of water clean.
The company's early interest in keeping harbors and oceans clean has developed into a strong company culture of EcoStewardship . Recent examples of the company's environmental work include: the repowering of the company's tugboat Tioga, in the Pacific Northwest, and the Goliah, in Northern California, to meet Tier III emission standards a year ahead of government requirements; certification to the international standard ISO 14001 Environmental Management System; and the construction of the first two double-hulled, environmentally friendly barges to serve Western Alaska.
"We are thrilled to be recognized once more for our past and ongoing environmental stewardship efforts," said the company's Scott Hoggarth, general manager, harbor ship assist and tanker escort services. "For Crowley, the effort to protect and improve the environment is not only a company-wide endeavor, but a way of life. We are proud to be a part of this select group that strives to make the world a greener place."
Crowley say they have twice been named runner up for the award, first in 2010 and again in 2011.


text:
Cool Projects
A year and a half ago, my friend recommended me to watch the TV show "Silicon Valley." I was aware of the show's existence but had not found the time to check it out. My friend pitched the show as... full post →
A year and a half ago, my friend recommended me to watch the TV show "Silicon Valley." I was aware of the show's existence but had not found the time to check it out. My friend pitched the show as... full post →
More than four years ago I wrote Pronto. The initial commit is dated 2013-07-02. The first version released 2013-08-15. I wanted to solve my problem. I wanted to stop writing comments like "This line is too long!" on GitHub pull... full post →
There's more focus in my life. It has not always been that way. What does focus enable me to do and how did I get here? I lay in bed. My eyes are open. Silence. I hold Kindle with one... full post →
Communication is hard. It involves people, and no two people are the same. This is a story about how I continue to learn to communicate better in writing. At Vinted, we use GitHub and pull requests. Pull requests tells others... full post →
If you've followed my summaries of the year, you know that I've been in a leadership role for a while. That means less code, more listening. But I still like to keep my coding skills sharp. At first, I thought... full post →
Last week this post hit Hacker News frontpage. It's about how Justin Angel lost 100lbs (~45kg) in 6 months. The story is quite interesting, though a little extreme. My ex-wife cheated on me stating that she found me unattractive, that... full post →
When my focus was .NET development, on the podcasts I listened to I've used to hear praises heaped upon Norwegian Developers Conference. It was held in Oslo and quickly became Europe's largest .NET & Agile conference. I wanted to attend.... full post →
American Dialect Society declared "dumpster fire" as the word of the year. And that's how most will remember 2016. But while demotivating and fake news dominated our feeds, there's no need to be discouraged. In a lot of ways, 2016... full post →
I've started listening to podcasts sometime in 2007, almost 9 years ago. DotNetRocks was my first show. Can't remember which episode was the first one, but I distinctly remember listening to Billy Hollis talk about Complexity (show #214, 2007-02-13) and... full post →
The year 2015 was different. Every year is. Without further ado, a short overview of things that happened with me. Most of these are about what I did. But let's start with an obvious opposite one. I didn't write a... full post →
The year 2014 was exciting and challenging for me. This yearly post provides a short horn-trumpeting summary of it. In no particular order: Lost more than 2kg. That might seem like peanuts compared to last year. But I also avoided... full post →
Best ideas and efforts come from the most unexpected of places. Having a company culture where everyone feels like they can solve and contribute to any problem or opportunity is very important. I'm happy to be working at a company... full post →
Code quality and consistency is important. There are a ton of great open source tools and libraries that provide insights. For example: Rubocop checks your style and Brakeman scans for security vulnerabilities. You can run them easily and get a... full post →
This post was originally written by Justas Janauskas, CEO of Vinted, edited for publishing by me and Marek Ivanovskis In this post I want to share with you my way of getting things done. It works quite well for someone... full post →
What is software development? Is it typing features that your product people come up with into your text editor as quickly as possible? Not quite. At the very least, think when typing. Make it easier for your fellow typers to... full post →
Office. Office never changes Fog Creek waged war for private workplace and marble showers. GitHub built an empire on letting everyone work wherever and whenever they want. 37signals reworked the whole industry by getting real. But office never changes. In... full post →
The year 2013 was a heck of a year for me, mostly in a good way. In no particular order: Lost 26kg. Probably only weighted less when I was fourteen. Besides health benefits, this gave me a big self-confidence boost... full post →
We were discussing something with a co-worker that I perceived as a problem, yet he didn't. One of his arguments was: Compared with other companies, we would be among the top ten percent. Being among top ten percent is pretty... full post →
The feedback after the first post about git-playback was amazing. I've been slowly improving it for the last couple of months and I'm pretty happy where it is right now. What's new: Easier installation Just clone the repository and run... full post →
It's accepted among Vim users - arrow keys should be avoided at all possible cost. Using hjkl is preferred and is advantageous. You never have to leave the home row - that let's you be faster and it's more comfortable... full post →
I've been doing a lot of things this year that I was (and still am) afraid of doing. Writing a blog is one pretty obvious example. I wanted to try writing a blog for some time. So, what was stopping... full post →
I still encounter people who want to use their favorite extremely-powerful framework for everything. I don't think that's the right attitude. Slides for a lightning talk 'simpler', hosted on Speaker Deck, which tries to address that: Font: Spatha Sans Palette:... full post →
It was a lovely Saturday afternoon… I just did a code kata, but I was not entirely happy and not sure how to do it better. So I decided to look at how other developers tackled the same problem. Found... full post →
I'm always surprised when I meet programmers who don't enjoy what they're doing. Don't misunderstand me - I realize that software development is not everyone's passion. Still stunned every time. For the life of me, I can't imagine doing anything... full post →
Welcome to my blog. My name is Mindaugas Mozūras, and I'm a twentysomething software developer. Here I intend write about anything that interests me - mostly various development topics, but there will probably be some general geekery as well. If... full post →


text:
First Tutors enables you to find a local mandarin tutor in Burton-on-Trent and across the UK. Private mandarin tuition is an excellent way to improve confidence as well as improving grades and doesn't have to be boring! Please use our service to find Burton-on-Trent mandarin tutors and select the one who best fits your requirements.
First Tutors is the best place to find the top Burton-on-Trent mandarin tutors for your needs, enabling you to find a home Burton-on-Trent mandarin tutor for any subject, for example, GCSE English, A-Level Maths or even university Physics. We also help with language tuition, so if you want to learn Spanish, take a Arabic course or prepare yourself for Italian life, we can help - and all in Burton-on-Trent! Our search will order mandarin Burton-on-Trent tutors in your area according to their mandarin lesson costs and proximity to you.
If you are a Burton-on-Trent mandarin tutor wanting to offer your home mandarin tuition services in Burton-on-Trent or the UK, please register with First Tutors or find out more about what we offer here. Home mandarin tuition is a great way to re-affirm your own mandarin knowledge while helping someone else, all in the Burton-on-Trent area!