×

Authenticating device for controlling application security environments

  • US 20090260050A1
  • Filed: 04/14/2008
  • Published: 10/15/2009
  • Est. Priority Date: 04/14/2008
  • Status: Abandoned Application
First Claim
Patent Images

1. A method for implementing security in Application Security Environments in computers where an Application Security Environment is an environment in which one or more processes/tasks can be run and each Application Security Environment is owned by a user or a user group, and more particularly, a method for controlling privileged operations and access to mass-memory devices from processes/tasks/threads running in an Application Security Environment by:

  • i. Using a device supporting user authentication and supporting one or more Application Security Environments and one or more states for each supported Application Security Environment;

    This device is referred to as an Authenticating Application Security Environment Protection Device or AASEPDevice;

    The state of an Application Security Environment is referred to as Application Security Environment State.ii. The state of an AASEPDevice corresponding to an Application Security Environment is controlled by manual action by a user;

    The manual action by a user on the AASEPDevice is referred to as Application Security Environment Protection Manual Action or ASEPManualAction;

    iii. The AASEPDevice authenticating the user who entered an ASEPManualAction;

    The AASEPDevice discarding/rejecting the operation requested by an ASEPManualAction if the authentication of the user fails;

    iv. The AASEPDevice discarding/rejecting the operation requested through an ASEPManualAction if the user who performed the ASEPManualAction does not have enough privilege to perform the operation requested through the ASEPManualAction;

    v. Where each state of an Application Security Environment corresponds to or maps to a set of privileges that the processes/tasks/threads running in that Application Security Environment have when that Application Security Environment is in that state. This mapping is referred to as Application Security Environment State Mapping.vi. The user or members of the user group who own an Application Security Environment are referred to as Application Security Environment Owners or ASEOs.vii. Preferably, in addition to supporting an ASEPManualAction that allows a user to the change the state of an Application Security Environment, an AASEPDevice supporting an ASEPManualAction that allows a user to;

    a. Create or delete one or more users orb. Create or delete one or more user groups orc. Create or delete one or more Application Security Environments for a user or a user group ord. Create or delete one or more Application Security Environment States for an Application Security Environment ore. Add users to or remove users from a user group orf. Divide mass-memories into Regions which can be protected by AASEPDevices org. Assign privileges to users and user groups including access to Regions of mass-memories orh. Create or modify or delete one or more Application Security Environment State Mappings for an Application Security Environment;

    viii. Every Application Security Environment being uniquely identifiable;

    Preferably, each Application Security Environment having a unique identifier in a computer;

    ix. A software in the computer to which the AASEPDevice is attached processing requests from the AASEPDevice;

    This software is referred to as ASEPSoftware;

    x. The ASEPSoftware or the AASEPDevice validating an operation requested by a user by performing an ASEPManualAction and discarding/rejecting the operation if it is not a valid operation;

    xi. If an operation attempts to create or modify an Application Security Environment State Mapping in such a way that the privileges corresponding to or mapping to the Application Security Environment State exceed the privileges of the user or the user group who owns the Application Security Environment, it is an invalid operation;

    xii. The ASEPSoftware or the AASEPDevice verifying whether an operation requested by a user by performing an ASEPManualAction has conflict with any of the ongoing operations, employing a conflict resolution strategy as applicable such that no operations which are active at the same time have conflicts with each other;

    The conflict resolution strategy may involve discarding some operations or queuing some operations or marking some operations for discarding at a later time.xiii. The AASEPDevice communicating the operation requested by an ASEPManualAction and any status changes to the operations requested by the ASEPManualAction to the ASEPSoftware using registers/memory readable by the computer to which the AASEPDevice is attached;

    Preferably, these registers/memory are not writable by the computer;

    xiv. The ASEPSoftware sending commands to the AASEPDevice by writing into registers/memory in the AASEPDevice where these registers/memory are writable by the computer to which the AASEPDevice is attached;

    xv. Preferably, the AASEPDevice and ASEPSoftware using a unique identifier to identify an operation requested by an ASEPManualAction;

    xvi. Preferably, an AASEPDevice device driver processing the interrupts from one or more AASEPDevices and reading the operation requested or any status change for the operation requested by each ASEPManualAction from an AASEPDevice by reading registers/memory in the AASEPDevice;

    The AASEPDevice device driver sending the operation requested or any status change for the operation requested by each ASEPManualAction along with the unique identifier for the operation requested by the ASEPManualAction to the ASEPSoftware;

    The AASEPDevice device driver sending commands from the ASEPSoftware to an AASEPDevice by writing into the AASEPDevice registers/memory;

    Where the AASEPDevice device driver is the software component that controls the AASEPDevice;

    xvii. The ASEPSoftware sending a command to perform or discard/reject an operation;

    If the ASEPSoftware commands the AASEPDevice to perform an operation, the AASEPDevice performing an operation provided it is not marked for discarding due to conflict with an operation from another ASEPManualAction;

    If the ASEPSoftware commands the AASEPDevice to discard the operation, the AASEPDevice discarding the operation;

    xviii. The ASEPSoftware sending a command to discard/reject an operation in the case where the ASEPSoftware is doing validation of the operation and the operation is invalid or in the case where ASEPSoftware is doing operation conflict resolution and the operation has conflict with another operation and the operation is selected for discarding/rejection by the operation conflict resolution strategy;

    xix. The ASEPSoftware performing clean up required for an operation if it is not identified for discarding/rejection;

    The clean up involves blocking all processes/tasks that may impact the clean state from running and updating buffers and data structures;

    xx. The ASEPSoftware sending a command to perform an operation to the AASEPDevice if the operation is not discarded/rejected and the clean up for the operation is completed;

    xxi. The AASEPDevice updating its registers/memory readable by the computer to which it is attached, when an operation is rejected or completed indicating status;

    xxii. The ASEPSoftware releasing the block for processes/tasks which were blocked from running for an operation to complete, after that operation is completed or discarded/rejected by the AASEPDevice;

    xxiii. The configuration used by the ASEPSoftware and AASEPDevices consisting of;

    a. The list of users;

    b. The list of user groups;

    c. The list of users in each user group;

    d. The privileges for each user and each user group;

    e. The list of Application Security Environments owned by each user or user group;

    f. The list of states for each Application Security Environment;

    g. The list of Regions of mass-memories protected by the AASEPDevices;

    h. The Application Security Environment State Mapping for each Application Security Environment State;

    xxiv. Preferably, the configuration is stored in the AASEPDevices and the AASEPDevices are capable of identifying the current set of privileges of an Application Security Environment based on the current state of that Application Security Environment;

    xxv. Preferably, a computer software module that enforces access restrictions, reading AASEPDevice registers/memory to verify whether a privileged operation requested by a process/task/thread running in an Application Security Environment is permissible as per the Application Security Environment State Mapping for the current state of that Application Security Environment;

    These software modules that use the privileges corresponding to or mapped to the current state of an Application Security Environment to implement access protection are referred to as ASEPImplementers;

    xxvi. Optionally, the ASEPImplementers reading AASEPDevice registers/memory to fetch the current state of the Application Security Environment and the configuration containing the Application Security Environment State Mapping for the current state of the Application Security Environment and enforcing privileges based the current state of the Application Security Environment and the configuration;

    xxvii. Preferably, the ASEPImplementers reading the AASEPDevice registers/memory to read the current set of privileges that the processes/tasks/threads running in the Application Security Environment have corresponding to the current state of that Application Security Environment;

    xxviii. When the configuration corresponding to the current state of the Application Security Environment does not allow a privileged operation requested by a process/task/thread in the Application Security Environment, the ASEPImplementer putting that process/task/thread in an error state;

    xxix. When the configuration corresponding to the current state of the Application Security Environment allows a privileged operation requested by a process/task/thread in the Application Security Environment, the ASEPImplementer allowing the process/task/thread to perform the privileged operation;

    xxx. Preferably, mass-memories are divided into Regions such that read or write access to these Regions are part of privileges that can be mapped to an Application Security Environment State;

    xxxi. A user or a user group having access to one or more of these Regions of a mass memory or mass memories;

    The access being further restricted to processes/tasks/threads in Application Security Environments owned by the user or the user group based on the current state of the Application Security Environment and the privileges corresponding to that current Application Security Environment State;

    xxxii. Preferably, when a process/task/thread in an Application Security Environment does a file operation permitted by file permissions and the operation maps to a read or write operation to a buffer in the file system buffer cache, the file system verifying whether the read or write access to the Region of mass-memory required by the file operation is permitted by the current set of privileges corresponding to the current state of the Application Security Environment;

    If the access is not permitted to the Region of mass-memory, the file system returning an error to the process/task/thread that attempted to do the file operation;

    If the access is permitted, the file system allowing the operation to continue;

    xxxiii. Preferably, a file system tagging a read or write request to read or write to a Region in a mass-memory with an identifier for the Application Security Environment so that the storage components below the file system or mass-memory device controllers can verify whether that Application Security Environment has sufficient privileges to do the operation in its current state;

    xxxiv. Preferably, when a process/task/thread in an Application Security Environment performs a raw disk read or write, the operating system tagging the raw disk read or write request with the identifier of the Application Security Environment so that storage components or a mass-memory device controller can enforce access protection based on the current state of that Application Security Environment;

    xxxv. Optionally, an AASEPDevice being capable of emulating ASEPManualAction and is also allows scripting.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×