XML Security Framework CSE 5810 Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-1155 Storrs, CT 06269-1155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818 XMLSecurity-1 CSE 5810 An XML Security Framework that Integrates Role-Base, Mandatory, and Discretionary Access Control Policies Alberto De la Rosa Algarín Major Advisor: Dr. Steven A. Demurjian Associate Advisors: Dr. Jinbo Bi, Dr. Swapna Gokhale Dr. Xiaoyan Wang, XMLSecurity-2 Introduction CSE 5810 Today’s Applications and Systems Built around Multiple Technologies APIs, Cloud Computing, Web Services, Data Mining, etc. Alternative Data Structure Standards XML, RDF, JSON, OWL, etc. Meta-Systems that Share, Use and Exchange Information to fully function XML as de-facto Standard What are the Top Security Challenges? Integrate Security Requirements of Existing Systems Consolidate in Support of Newly Developed Application XMLSecurity-3 Tree-Structured Documents CSE 5810 Documents that follow a tree structure Root node Certain amount of children Leaf nodes Example of tree-structured document formats eXtensible Markup Language (XML) JSON (if written in a tree-structured form) RDF serializations Ontologies (e.g. Web Ontology Language, OWL) XML and JSON extensively used Information Exchange SOAP REST XMLSecurity-4 Secure Information Exchange CSE 5810 XML Quickly Emerging as Standard of Choice for: Web Content Information Exchange Database Exchange Standard format for Tools (e.g., UML Tools Export XMI) Etc. Our Perspective, Given a Document Repository Each Document has a Schema Multiple Documents per Schema Users with Particular Roles in Application Can We Customize the Displayed Instance Based on Role? How Can we Incorporate RBAC, LBAC, etc.? XMLSecurity-5 Security for Tree-Structured Documents CSE 5810 Can we Customize Instance Based on Role? Can we Incorporate RBAC, LBAC, and DAC ? Security Schemas Set Roles, Users, Constraints RBAC, LBAC, DAC Apply Security Schemas to Documents Security Schema Filters Document Document Appears Differently Based on Role, MAC, Delegation Security Schemas n Role Schema n User Schema n Constraint Schema Security Officer Generates Security XML files for the Application Application DTDs and XML Application Schemas Application XML Files Appl_Role.xml Appl _User.xml Appl_Constraint.xml Application User’s Role Determines the Scope of Access to Each XML Document XMLSecurity-6 What is a Schema? CSE 5810 XMLSecurity-7 What is a Schema? CSE 5810 XMLSecurity-8 What is an Associated Instance? CSE 5810 XMLSecurity-9 Attaining Security CSE 5810 Given an Application of Schemas and Associated Instances, can we: Define Schemas/Instances for Clearances, Roles, Users, User-Role Authorizations, and Delegation Augment Application’s Schemas/Instances with LBAC Security Classifications (if Needed) Then, as Instances are Dynamically Identified to Suit a User’s Needs for an Application, can we: Retrieve and Filter those Instance(s) Based on User’s Role, LBAC, and/or Delegation Deliver Filtered Instances(s) to User XMLSecurity-10 Main Research Questions CSE 5810 How do we Provide a Solution that Operates across Various Contexts? Information Exchange, Databases, Web Services, etc. Integrates Local and Global Security How do we Integrate and Support Major Access Control Models? Role-Based Access Control (RBAC) Lattice-Based Access Control (LBAC) Discretionary Access Control (DAC) How Can we Make Security Policies Changes without Impacting Each Document? How do we Enforce Security across Multiple Interoperating Systems? XMLSecurity-11 Attaining Security CSE 5810 Given an Application of Schemas and Associated Instances, can we: Define Schemas for Security Levels, Roles, UserRole Authorizations, and Delegation Augment Application’s Schemas/Instances with MAC Security Classifications (if Needed) Instances are Dynamically Filtered to Suit a User’s Needs for an Application: Based on User’s Role, MAC, Delegation Deliver Filtered Instance(s) to User Exploit eXtensible Access Control Markup Language (XACML) or other Policy Languages for Policy Generation XMLSecurity-12 What is the Big Picture? CSE 5810 An Security Framework for Secure Information Engineering and Enforcement Provides Guidance and Structure for Information Usage and Exchange Leverage Health Care Domain Information Exchanged in Multiple Formats XML, JSON, RDF, OWL Unify (Convert) Data Schema and Associated Documents Use, Share, Exchange Documents Provide Customized View based on User Exchange Information over Secure Network Provide a “Degree” of Security Assurance XMLSecurity-13 Why Health Care Domain? CSE 5810 Health Insurance Portability and Accountability Act (HIPAA) provides Security Guidelines Usage, Transmission, and Sharing of Protected Health Information (PHI) Protect Personally Identifiable Info (PII) Encryption and secure transmission of PHI and PII (e.g., SSL, etc.) In Practice, Security for Health Care goes well beyond the Needs of Compliance to HIPAA What are the Available Technologies? What is the Role of Standards in Exchange? What are Standards for Security Policy Defining? What Needs to be Exchanged & Controlled? XMLSecurity-14 Makeup of Health Care Landscape CSE 5810 Health Information Technology (HIT) Standards HL7 Clinical Document Architecture (CDA) Continuity of Care Record (CCR) SNOMED, UMLS, LOINC, NDF-RT, etc. HIT Systems Electronic Health Records (EHRs) VistA GE Centricity, AllScripts open HER, FreeMD, PatientOS Personal Health Records (PHRs) Microsoft HealthVault Patient Portals (PPs) XMLSecurity-15 Interplay of Information in Health Care Harvard SMART EHR RxTerms XML Schema LOINC XML Schema SNOMED XML Schema XML-C Secure XML JSON Secure XML UMLS XML DTD Standards XML-C RxNorm XML Schema Secure XML XML openEHR Secure XML Global Security Policy and Control Health Information Exchange PHA Patient App Mobile JAVA APIs HL7 CDA PatientOS MeSH XML DTD ASP.NET API XML-C REST API Open mHealth C# Data JSON-LD CSE 5810 MS Health Vault Secure CDA PHA Provider Mobile App Secure CDA FreeMED PHP APIs HL7 CDA Java APIs XML Converter Local Security Policy/Control SMARTSync App PHI Secure PHI XMLSecurity-16 Proposed Security Framework CSE 5810 Security Framework Definition Extends the Unified Modeling Language Model RBAC, LBAC and DAC for Tree-Structured Documents Generates Enforcement policies in eXtensible Access Control Markup Language (XACML) Target Schemas and Instances for any Application Security Framework Enforcement Generating Global Enforcement Policy Leveraging UML diagrams Develop Mapping Algorithms to Facilitate the Secure Interactions of Applications XMLSecurity-17 Why Multiple Access Control Models? CSE 5810 Filter Documents (Instances) based on: RBAC: Limit what Portions of Document can be Read and/or Written (Nurse vs. MD) LBAC: Security Level may Limit Portions of a Medical Record (Psychiatry Notes) DAC: Delegation of Authority for Emergent Situations (ER MD Access External EHR) Provide a Breath of Access Control Alternatives for Multiple Domains Health Care E-commerce National Defense XMLSecurity-18 What is the Big Picture? CSE 5810 Secure Data HIT System Data Sources and Local Schemas Secure Data MS Health Vault ASP.NET API Lattice-Based Access Control Input XML-C Schemas Discretionary Access Control Enforcement Mechanism Secure Data HIT Application Application Instances Open mHealth JSON Security Framework Local Security Policies Java APIs C# Data Role-Based Access Control HL7 CDA PatientOS HIE Server Schemas Generate XACML XACML Policy Enforcement Global Security Policies Filtered Instances Medical Provider PHA SMARTSync XMLSecurity-19 Expected Research Contributions CSE 5810 Security Model for Information Access Control RBAC, LBAC and DAC Support Security Extensions for UML Represent schemas as UML-like Diagrams Augment with Security Features and Definitions Security Policy Generation XACML Policy Generation Mapping from UML Diagrams, Algorithm for Automatic Generation Secure Information Engineering Process for Secure System Creation Target Data to be Secured XMLSecurity-20 Remainder of Presentation CSE 5810 Background UML, Access Control, XML, XACML Security Model for Tree-Structured Documents RBAC, LBAC and DAC Support UML Diagram Extensions and Metamodel DSCD, DRSD, SID, LSID, UD, DD, AD Security Policy Generation Mapping Statements and Algorithm Secure Information Engineering Process Development Cycle Example Use-Case Conclusion and Contributions Ongoing Research and Future Directions Publications, In Review and Work in Progress XMLSecurity-21 Unified Modeling Language CSE 5810 UML Diagrams Exhibit Two Views of a System’s Model Structural View Objects, Attributes, Operations, Relationships Behavioral View Collaboration Among Objects and Changes to Internal States Different Kinds of Diagrams for System Modeling Structure, Representing Components in the System Behavior, Representing Series of Events that Must Happen Interaction, Representing Data and Control-Flow between Components XMLSecurity-22 Access Control Models CSE 5810 Role-Based Access Control (RBAC) Permissions assigned to Roles, Roles assigned to Users Lattice-Based Access Control (LBAC) Sensitivity Levels for data (classification) and users (clearance) Policies defined and set by a Security Administrator Discretionary Access Control (DAC) Access to Objects is Permitted or Denied based on the Subject’s Identity Users are capable of passing Permissions to other Users XMLSecurity-23 eXtensible Markup Language (XML) CSE 5810 Provides a Common, Structured Language Independent of Systems Information Hierarchically Structured and Tagged Tags can Offer Semantics XML schemas Blueprints for new Instances Validation Agents Achieved with XML Schema Definition (XSD) XML Schema Language (XSL) XMLSecurity-24 Sample XML from CCR Standard CSE 5810 <xs:complexType name="StructuredProductType"> <xs:complexContent> <xs:extension base="CCRCodedDataObjectType"> <xs:sequence> <xs:element name="Product" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="ProductName" type="CodedDescriptionType"/> <xs:element name="BrandName" type="CodedDescriptionType" minOccurs="0"/> <xs:element name="Strength" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:complexContent> <xs:extension base="MeasureType"> <xs:sequence> <xs:element name="StrengthSequencePosition" type="xs:integer" minOccurs="0"/> <xs:element name="VariableStrengthModifier" type="CodedDescriptionType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="Concentration" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:complexContent> <xs:extension base="MeasureType"> <xs:sequence> <xs:element name="ConcentrationSequencePosition" type="xs:integer" minOccurs="0"/> <xs:element name="VariableConcentrationModifier" XMLSecurity-25 eXtensible Access Control Markup Language CSE 5810 Aims to Define a Common Language and Processing Model Permits a Level of Security Interoperability XACML schema Provides Several Structures and Elements to Represent Policies PolicySet, Policy, Rule PolicySets and Rules Combined by Policy/Rule Combination Algorithm Permit-overrides Deny-overrides First-applicable Only-one-applicable PolicySet Policy Combination Algorithm Policy Rule Combination Algorithm Rule Resource Subject Action XMLSecurity-26 Introducing Security with our Framework CSE 5810 SchemaCIS1 SchemaCIS3 SchemaCIS4 SchemaLSIA2 Security Definition Policy Generation Security Model and Policy Generation Access Control Models Lattice-Based Access Control Role-Based Access Control Discretionary Access Control Information Security Extensions to UML Document Schema Class Diagram Document Role Slice Diagram SECURITY SCHEMA MODELING SECURE INFORMATION ENGINEERING Schema Modeling SchemaCIS2 SchemaLSIA1 LBAC & DAC Features Generated Security Policies Roles, Actions, Resources Element Sensitivity User Clearance Delegations and Authorizations XMLSecurity-27 Security Model CSE 5810 Need to provide all relevant stakeholders with some degree of assurance on the different capabilities of RBAC, LBAC and DAC Support any document format that follows a treestructure for representation XML, JSON, RDF, OWL, etc. Support of major NIST RBAC capabilities Roles, Permissions, Assignments, Mutual Exclusion, etc. Support for LBAC capabilities Classifications to all application schemas and their elements and define clearances for users. Ability to support DAC Delegation of role from user to user and the ability to pass on the delegation. XMLSecurity-28 Model: Application, Schema, Instances, and Users CSE 5810 Information and data is represented in a tree structure with a root node , where non-leaf nodes provide context (metadata, element name, typing information, cardinality constraints, etc.), and leaf nodes offer a place to store data values. A schema is defined to organize the structure and content of a tree and act as a blueprint for instances. Schemas have the basic structures and context information (such as cardinality constraints, etc.). Akin to classes in an object-oriented programming languages or relations in a database, they contain the meta-data that describes the structure, elements, typing, etc. of a schema. A schema can be instantiated which means that the actual data is created and defined. The structure and data in an instance is validated against it respective schema. This is equivalent to classes in object-oriented programming languages (create an instance of the person class) and to databases (create a tuple in a relation). RBAC and LBAC are orthogonal. That is, each one can live independently from the other in case an application only needs RBAC or LBAC security. XMLSecurity-29 Model: Application, Schema, Instances, and Users CSE 5810 Defn. 1: An element e eID , eNAME is defined as an ordered pair component in a hierarchical data structure that contains information against which operations are performed, where eID is a unique identifier for the element and eNAME is the tag of the element. Defn. 2: A schema S S ID , S NAME , E is defined as a hierarchical organization of n elements represented as a set E {e1 , e2 ,..., en } for a given purpose in the form of a tree, where every ei S and there is a single root node in the tree of the schema S . In this case, S ID is a unique identifier for the schema S , and S NAME is the tag of the schema. Defn. 3: An instance i iID , iNAME of a schema S is referred to as a document that contains values for each of the n elements; instances must follow the structure of a schema, where iID is the unique identifier for the instance and i NAME is the tag that describes the instance. S j has an instance set I j which is defined as Defn. 4: Each schema I j {i j1 , i j2 ,..., i jms } that contains ms instances where each instance follows the format of the n elements that are defined by E and is validated against S j . Defn. 5: An application A is comprised of set of k schemas and g instance set pairs A { S1 , I1 , S1 , I 2 , S 2 , I1 ,... S k , I g } where each pair represents one aspect of the information needs of an application. Defn. 6: A user u is defined as a pair u ID , u NAME that will have the ability to access portions of an application and uniquely identifies each user by u ID . j users for a given Defn. 7: Let U {u1 , u 2 ,..., u j } be defined as the set of application A , where u j U and u j uID j , u NAME j . XMLSecurity-30 Example of Model CSE 5810 XMLSecurity-31 CDA Instance CSE 5810 XMLSecurity-32 CDA Instance CSE 5810 XMLSecurity-33 CCR Instance CSE 5810 XMLSecurity-34 CCR Instance CSE 5810 XMLSecurity-35 Model: Schema Operations for RBAC, LBAC, and DAC CSE 5810 A schema is a hierarchically structured collection of elements which can be altered via a schema projection operation (SPO), denoted as|rP|c|e , that can filter the tree into a proper subtree. S iP ( r |c|e ) is the result of a projection |rP|c|e of S i that effectively identifies the subset of S i that has been filtered. Using this notation : S iPr means that a role has been utilized to create a subtree of the original schema that represents all of the elements allowed for role r; S iPc means that a CLS c (e.g., TS, C, etc.) has been utilized to create a subtree the original schema that represents all of the elements allowed for that c; and, S iPe means that a subtree of the original schema) that represents all of the elements of the schema that need to be protected. Given a projection S iP ( r |c|e ) of schema S i , the instance set is also projected, creating I iP ( r |c|e ) which are now filtered instances for the schema that must follow the structure of the filtered schema. This yields an instance that has been project by role r, CLS c, elements e of the schema. A schema which is a hierarchically structured collection of elements can be extended via a decoration operation, denoted as |c|Dt , over a criterion that alters the form of the elements by adding new information in the form of LBAC sensitivity levels or time constraints. S iD ( c|t ) is the result of a decoration |c|Dt of S i that effectively identifies the decorated version of S i based on LBAC sensitivity levels. Using this notation: S iDc means that CLSs chosen from the set of all possible sensitivity levels (e.g., S, TC, C, U) have been added to all of the elements of the original schema ; and, S iDt means that time constraints have be included that represent the allowable timeframe for each element. Given a decoration S iD (c ) of schema S i , the instance set is also decorated, creating I iD (c ) which are now decorated instances for the schema that must follow thenew structure of the decorated schema. This yields an instance that has expanded by classification or time. XMLSecurity-36 Model: Schema Operations for RBAC, LBAC, and DAC CSE 5810 Defn. 8a. |rP is a schema projection operation (SPO) over an RBAC role r and tree such that the end result of the action is the creation of a pruned tree by RBAC role that is a subset of the tree being projected , meaning that the projected subtree is a subset of the original schema to represent which portions of the original ~ schema can be access by role . In our notation, for a schema S i , SiPr Si |rP means ~ that SiPr is a projected version of S i with respect to a role r , the results of a filtering action. Defn. 8b. |cP is a schema projection operation (SPO) over an LBAC sensitivity c and tree such that the end result of the action is the creation of a pruned tree by LBAC that is a subset of the original schema to represent the portion of original ~ tree that has a sensitivity level c . In our notation, for a schema S i , SiPc Si |cP ~ means that S iPc is a projected version of S i with respect to an c , the results of a filtering action. Defn. 8c. |eP is a schema projection operation (SPO) over elements e and tree such that the end result of the action is the creation of a pruned tree that is a subset of the tree being projected , meaning that the projected subtree is a subset of the original schema to represent the porti on of original tree that has had elements deleted resulting in a subtree of the original tree that has the elements to be ~ ~ secured. . In our notation, for a schema S i , SiPe Si |eP means that S iPe is a projected version of S i with respect to elements e , the results of a filtering action. Defn. 9: |cD is a schema decoration operation (SDO) over LBAC and tree such that the end result of the decoration is the creation of an expanded tree with sensitivity level or classifications on the elements of the tree. In our notation, for a schema ~ ~ S i , Sid Si |cD means that SiDc is an expanded version of S i with respect to LBAC, the results of a decoration action. ~ Defn. 10: A P ( r|c|e)|D (c ) A is a subset of the information in an application’s schemas that need to be protected through a process of SPO and/or SDO . Specifically, ~ P ( r | c | e )| D ( c ) ~ P ( r | c | e )| D ( c ) ~ P ( r | c | e )| D ( c ) ~ P ( r |c|e)| D ( c ) ~ P ( r |c|e)| D ( c ) A { S1 , I1 ,..., S m , In } is the result of an SPO and/or SDO on the original k schema/instance set pairs , that results in the creation of a set of m schemas where the information that needs to be secured and is available for access control has been identified. XMLSecurity-37 Projecting Instances – Define Projection CSE 5810 XMLSecurity-38 Projecting Instances – Apply CDAProjection CSE 5810 XMLSecurity-39 Projecting Instances – Apply CCR Projection CSE 5810 XMLSecurity-40 Model: RBAC Security CSE 5810 A schema that contains a set of elements has defined, for each of the elements, a set of operations that are allowable, namely: read, aggregate, insert, update, and delete. These operations dictate the way that each element can be utilized. A role is a means to characterize privileges that are based on usage behaviors of the application coupled with needed functionality to arrive at a construct (role) that is able to quantify a common set of responsibilities that are shared by multiple users. Roles will be authorized to utilize different portions of the schema and instances for an information application. Each application has a set of roles. A permission is defined on each element in a schema by associating an element (by id) with an operation. The collection of all permissions for all roles across all schemas of an application is the role-based permission set, where each set member binds a permission to a role. The schema projection operation (SPO) (see Defn. 8a) can be applied by role in order to identify the elements of each schema and the associated permissions per role. XMLSecurity-41 Model: RBAC Security CSE 5810 Defn. 9: A role r is defined as a two -pair r rID, rNAME representation of the responsibilities for a user u U to access some portion (entire or further restricted) of a schema. Defn. 10: Let R {r1, r2 ,..., r j } be defined as the set of j roles for a given application A , where r j R and r j rID , rNAME . j j Defn. 6 (RBAC Version): A user that has been authorized to RBAC (but not LBAC) redefines theuser u as a tuple u ID , u NAME, u r , where u r is the role Defn. 19: SoD denotes separation of duty between roles which means that, given rx SoD ry , with rx R and ry R , a user with role rx cannot be assigned and perform as defined in Defn. 26. Note that a user can be authorized to more than one role, but is limited to playing one role in any application session. any permissions of role ry , where the two tuple rx , ry SoD represents the SoD Defn. 11: There exists a schema projection operation |rP by role that acts on a between the two roles . The set SoD contains all the pairs of roles that have a ~ separation of duty relation. schema Si , and yields a filtered version S iPr for any given role r R . This results r Defn. 20: For a given role rx , the set SoD { rx , ri | rx , ri SoD"i} where i in what is referred to as a role-secured schema. ~ ~ ~ ~ iterates over all of the roles in R. Defn. 12: The set of role -secured schemas ASPr (S1Pr , S2Pr ,..., SiPr ) is the set of role Defn. 21: ME denotes separation of duty between roles that is strictly defined as two ~r projections of S i for role r , for any given schema i , where i 1,2,..., m . roles not allowed to have any permissions in common which means that , given rx Defn. 13: Let O {read, aggregate, insert, update, delete} be the set of operations ME ry , with rx R and ry R , the set of RPA does not have pairs with rx and ry that can be performed against an element in each schema from either an original where the pID are the same. This defines a set ME that contains all the pair of roles or a projected and/or decorated tree. The operation is defined at the schema level that have a mutual exclusion relation. More specifically, rx , ry ME . to be applied at the instance level. For permissions, each op O will be assigned ID ID x to individual roles. Defn. 14: A permission p is represented by the four tuple p pID , sID , eID , op , where pID is the unique identifier of the permission (akin to uID and rID ), s ID is ~ ~ the identifier of a schema Si P ( r|c|e )|D ( c ) ASP ( r|c|e )|D ( c ) and e ID is the identifier of an ~ element el S i P ( r|c|e )|D ( c ) for some i 1,2,..., m , meaning that operation op can be performed on the element (node) identified by ~ P ( r|c|e )|D ( c ) Si of the application. eID constrained to the schema r Defn. 22: For a given role rx , the set ME x { rx , ri | rx , ri ME A "i} where i iterates over all of the roles in R. Defn. 6 (RBAC with SoD and ME): A user that has been authorized to RBAC with SoD and ME constraints redefines the user u as a tuple u ID , u NAME , rID , SoD rID , ME rID , where SoDrID is the resulting set of roles that have a separation of duty for role rID and ME have a mutual exclusion with rID . rID is the resulting set of roles that Defn. 15: Let P {p1 , p2 ,..., pz } be defined as the set of all granular permissions in a given application A, where a p ermission p P . That is, P is the set of all permissions defined by the security administrator in a given applicationA. Defn. 16: The set of all permission s, the role -permission assignments RPA { rID , p ID ,..., rID , pID } , where rID is the identifier of a role r as 1 1 k n defined in Defn. 12, and pID is the identifier of a permissionp as defined in Defn. 16, contains all the role-permissions pairs meaning that role with identifier rID can perform the permission with identifier pID . XMLSecurity-42 Examples CSE 5810 XMLSecurity-43 Model: LBAC Security CSE 5810 There exists a lattice of sensitivity labels that covers mandatory access control features in a generalized manner. These sensitivity levels correspond to classifications that are assigned to schema elements (see Defn. 1) and clearances that are assigned to users (see Defn. 6). The lattice L of sensitivity levels is constructed from sensitivity levels thatare bound by upper (most secure) and lower (least secure) values (see Defns. 19 to 23). In support of our security model, we specialize from a lattice L of sensitivity levels to an ordered set SL {x1 , x 2 ,..., x q } of sensitivity levels , where SL , x1 x 2 ... x q . This means that x q represents the most secure sensitivity level and x1 represents the least secure sensitivity level (see Defn. 24). An element of a schema can be assigned a sensitivity level (classification) with a user being assigned a clearance. Since schema elements can be either be context nodes (refer to other elements) or data nodes, and each can be assigned a classification. In a subtree of a schema, the classification of a node cannot be more secure than the classifications of its children, and the entire tree’s schema when annotated with classifications must satisfy the lattice relationship of sensitivity levels (e.g., in MAC, TS > S > C > U) with the least secure level tending toward the top of the tree and the most secure level tending towards the bottom of the tree. XMLSecurity-44 Model: LBAC Security CSE 5810 Defn. 23: A partial order relation < is a binary relation that is reflexive, antisymmetric , and transitive. Defn. 24: A lattice is a structure with a set LS , a partial order <, and two binary operations: infimum and supremum. Defn. 25: Let a,bLS . infimum(a,b) is called the greatest lower bound of a and b , or meet, and, supremum(a,b) is called the least upper bound , or join of a and b, such that: a. For any a,bLS , infimum(a, b) < infimum(a, b) < b, and for any g LS , if g < a and g <b then g < infimum(a, b). b. For any a,bLS , a < supremum(a, b) and b < supremum(a, b), and for any g LS , if a < g and b < g, then supremum(a, b) < g. Defn. 26: If for any given a,b LS , with < as the partial order relation, we have that a < b or b < a , then we call LS a chain or totally ordered set. Defn. 27: We call a lattice L (LS ,<) bounded if there exist elements top (?) and bottom (?) such that for any a ? LS, ? < a < ?. Defn. 28: Define SL {sl1 , sl2 ,...,slq } to be the partially ordered set of q consecutive Defn. 33: AM { AM READ, AM WRITE} is the set of access modes that are AM-READ category used to categorize the multiple read oriented operations into the and multiple write operations in theAM-WRITE categorythat act against the secured tree nodes. Defn. 34: Each op O has an access modeassigned based on the operation . For nondestructive operationssuch as {read, aggregate} have am AM READ, while destructive operationssuch as {insert, update, delete} have am AM WRITE . Defn. 6 (LBAC Version): A user that has been authorized to LBAC (but not RBAC) redefines the user u as a tuple u ID , u NAME , uCLR , u LBACR , u LBACW , where u LBAC R / W are either SS, SI, LS, SSR, or SSW. sensitivity levels for the application where sl1 represents the least secure and sl q represents the most secure; an individual level is referred to as sl SL . Defn. 29: Given a, b SL, the expression a b denotes that b has a higher sensitivity (classification or clearance) than a, which means that b is more secure. Similarly, the expression a b denotes that a and b have the same sensitivity. Defn. 30: We define a lattice L (SL, ) as the lattice of sensitivity levels in an application A, ordered by the relation < which has replaced < as defined in Defn. 19. D Defn. 31: Let S~iDc be the subtree that results from the decoration Si |c as defined in ~ Dc Defn. 9 . The nodes of Si are LBAC decorated and in the form of el eID,eNAME,eSL , where el Si or el SiP(r|c|e) and eSL SL for any i. As a result, the schema has been extended due to the addition of an element for eSL . ~ P( r|c|e) Defn. 18: If some node in a secure schema, e Si with classification eSL , has children nodes e1 and e2 , then the classification e1,SL and e2,SL must be equal to or higher than the classification eSL . That is, eSL < e1,SL or eSL e1,SL and eSL < e2,SL or eSL e2,SL . This definition means that the least secure levels migrate towards the top of the tree of the schema while the more secure level migratetowards the bottom leaf nodes. XMLSecurity-45 Examples CSE 5810 XMLSecurity-46 LBAC in CDA Instance CSE 5810 XMLSecurity-47 LBAC in CCR Instance CSE 5810 XMLSecurity-48 Model: DAC Delegations CSE 5810 There exists a set of original users that have assigned roles and the ability to delegate those roles. There is a set of delegable users that have the ability to receive roles from original users. Pass-on delegation is an ability given to original users that allows an individual the authority to delegate the role even further. This means that an original user can delegate a role to a delegable user with pass -on delegation, resulting in the permission of that delegable user to pass the role on one step further to another user. Delegation of roles is only allowed to delegable users. This means that original users can delegate the role to a user in the delegable users set, and in the case that pass-on delegation is authorized, the receiving delegable user can delegate the role to ano ther user in the delegable users set. XMLSecurity-49 Model: DAC Delegations CSE 5810 Defn. 35: Let DelRoles R , where DelRoles {r1 , r2 ,..., ry } and ry R , be defined as the subset of all roles that are eligible for delegation. Defn. 36: The set of Original Users, OU U DelRoles , OU U DelRoles , where DU { u1 , r1 ,..., u x , ry } , is the set of original users with their assigned roles. That is, the members of OU have the form u x , ry OU , which means that the user with identifier uID is allowed to delegate the role with identifier ry . Defn. 37: The set of Delegable Users , DU U DelRoles , where DU { u1 , r1 ,..., u x , ry } , is the set of delegable users w ith the roles they are allowed to receive as part of a delegation. The members of DU have the form of u x , ry DU , which means that the user u x can receive the role with identifier ry when delegated by another user. Defn. 38: Pass-On Delegation, or PoD, is a Boolean {0,1} that indicates whether a user and role pair u x , rx DU can delegate the role rx , originally received by a user and role pair u y , rx OU , one further step to another user u z that is set as u z , rx DU . In this case, a PoD value of 0 means that the delegation has no pass-on authority. A value of 1 means that the delegation has a pass-on authority. Defn. 39: Delegable, or Del, is a Boolean {0,1} that indicate whether a user and role pair u y , ry OU or a user and role pair u x , rx DU can execute the permission of delegation to another user and role pair u z , rz DU , where rz ry or rz rx . Defn. 6 (RBAC with Delegation): A user that has been authorized to RBAC (but not LBAC) redefines the user u as a tuple u ID , u NAME , rID , Del , PoD , where Del true means that the role can be delegated and when PoD true means that the authority to delegate that role can be passed on when the role is delegated. If Del is false, PoD must be false; if Del is true, PoD can be either true or false. XMLSecurity-50 Model: User Authorizations CSE 5810 Defn. 40: The set of authorized schemas, AS { uID1 , rID1 , sID1 ,..., uIDx , rIDy , sIDz } , is defined as the schemas from the application A that have been assigned to a uID , rID , sID AS represents an user/role combination. That i s, the tuple authorized schema to a user/role combination, where u ID is the unique identifier for a user u U , rID is the unique identifier for a role r R , and s ID is the unique identifier for a schema S A , where S is a role -secured schema or an LBAC decorated schema. Defn. 41: The set of authorized instances ( AI) is defined as the instances from the application A that have been assigned to a user/role combination. That is, the tuple uID , rID , iID AI represents an authorized instance to a user/role combination, where u ID is the unique identifier for a user u U , rID is the unique identifier for a role r R , and iID is the unique identifier for an instance i A . Defn. 6 (LBAC + RBAC): A user that has been authorized to both RBAC and LBAC redefines the user u as a tuple rID rID u ID , u NAME , u CLR , u LBAC R , u LBAC W , rID , SoD , ME , Del , PoD , where u ID is the unique identifier for the user, u NAME is the tag for the user u, uCLR is the clearance level assigned to the user (per LBAC components), u LBAC R / W are either SS, SI, LS, SSR, or SSW , rID is the unique identifier for the assigned role r R , SoD rID is r the resulting set of roles that have a separation of duty for role rID , ME ID is the resulting set of roles that have a mutual exclusion with rID , Del means that the role with the identifier u rID can be delegated (Boolean value), and PoD means that passon delegation is allowed or not (Boolean value). XMLSecurity-51 Delegation and Users CSE 5810 UserID, Name, RoleID, DA, PODA CLR, Dom, RoleID, SoD, ME, DA, PODA XMLSecurity-52 Example Process Original Schema CSE 5810 S r Original tree-structured schema D SL = {x1, x2, ….} c L = (SL, <) ~ ~ S ~ S r 3 r 2 3 2 3 P 2 2 3 3 2 2 R LBAC Decorated 2 1 1 1 2 2 1 RBAC projected for role R 1 1 1 XMLSecurity-53 Security Framework CSE 5810 Security Schema and Policy Generation Schema Modeling via Seven Security Extensions to UML Document Schema Class Diagram (DSCD) Document Role Slice Diagram (DRSD) Secure Information Diagram (SID) LBAC Secure Information Diagram (LSID) User Diagram (UD) Delegation Diagram (DD) Authorization Diagram (AD) XACML Policy Generation Mapping Process from Diagrams to Enforcement XACML Instances XMLSecurity-54 Securing Schemas with our Framework CSE 5810 UML provides diagrams to model applications Lack of diagrams for Security Pavlich-Mariscal defined new UML diagrams for RBAC in the Metamodel layer Document Schema Class Diagram (DSCD) UML Representation of the schema For RBAC, Document Role Slice Diagram (DRSD) Security Augmented Representation of schema Elements, Roles and Permissions For LBAC, LBAC Secure Information Diagram (LSID) Security Augmented Representation of schema with classification levels For DAC and Authorizations, the Delegation and Authorization Diagrams (DD and AD) XMLSecurity-55 Document Schema Class Diagram (DSCD) CSE 5810 An artifact that holds all the characteristics of an schema Structure, Data Type, Value Constraints Hierarchical nature of schemas is modeled via a UML Profile xs:complexType, xs:element, xs:sequence Child Relations (xs:element, xs:sequene, xs:simpleType) xs:extension Data-type Cardinality Requirements and Constraints; type XMLSecurity-56 UML Profile for DSCD CSE 5810 XMLSecurity-57 CDA Schema Segment CSE 5810 XMLSecurity-58 CCR Schema Segment CSE 5810 XMLSecurity-59 CCR Schema Segment CSE 5810 XMLSecurity-60 Example DSCD for the HL7 CDA XML Schema CSE 5810 XMLSecurity-61 Example DSCD for the HL7 CDA XML Schema CSE 5810 XMLSecurity-62 Example DSCD for the CCR XML Schema CSE 5810 XMLSecurity-63 Example DSCD for the CCR XML Schema CSE 5810 XMLSecurity-64 Secure Information Diagram (SID) CSE 5810 Represents those elements from the DSCD that require some type of security RBAC permissions LBAC classification Results from the projection operation over the original schema diagram Truncates the original schema by some criteria Elements, Roles, Classification XMLSecurity-65 Secure Information Diagram (SID) CSE 5810 XMLSecurity-66 Document Role Slice Diagram (DRSD) CSE 5810 Represents Access Control Definitions on DSCD Attributes for RBAC Fine Grained Control through Security Policies and Definitions to the DSCD Permissions on Documents with operations – Read, Aggregate, Insert, Update, Delete Represented in the DRSD with Stereotypes: On a access() method for the class «read» (non-destructive) «aggregate» (non-destructive) «insert» (destructive) «update» (destructive) «delete» (destructive) XMLSecurity-67 Document Role Slice Diagram (DRSD) CSE 5810 XMLSecurity-68 Document Role Slice Diagram (DRSD) CSE 5810 XMLSecurity-69 LBAC Secure Information Diagram (LSID) CSE 5810 XMLSecurity-70 LBAC Secure Information Diagram (LSID) CSE 5810 Similar to SID Represents those elements of the DSCD that require LBAC Sensitivities UML package with the stereotype «SecureInformation» that decorates the Contains all of the respective classes of elements from the schema to be secured Access modes (ams) Classifications (cls) «SecureInformation» ClinicalDocumentArchitectureSystem «SecureInformation» ContinuityOfCareRecordSystem «element» «ref» name=“legal_authenticator” { am=read, cls=c } «element» «ref» name=“patient” { am=read, cls=u } { am=write, cls=c } «element» «name» “Assessment” { am=read, cls=c } «element» «ref» name=“Vital Signs” { am=read, cls=c } { am=write, cls=c } «element» Patient «constraint» maxOccurs=“2” { am=read, cls=c } «element» «ref» name=“originating_organization” { am=read, cls=c } «element» «name» “Allergies” { am=read, cls=c } «element» «name» “Past Medical History” { am=read, cls=c } { am=write, cls=s } «element» Body { am=read, cls=c } «element» Problems «constraint» minOccurs=“0” { am=read, cls=c } «element» FamilyHistory «constraint» minOccurs=“0” { am=read, cls=c } XMLSecurity-71 User Diagram (UD) CSE 5810 Fulfills the need to quantify different users of the system Their requirements and constraints Define the users of the system whose information is to be secured. The interplay of users, roles and delegation permissions, clearance levels, and authorization permissions Jaime proposed a UML extension for users via a User Diagram. We build upon it for information security XMLSecurity-72 User Diagram (UD) CSE 5810 XMLSecurity-73 Delegation Diagram (DD) CSE 5810 Captures the information of the security model’s delegation Mechanisms as a new UML diagram extension Meant to capture the concepts Original user Role assigned Delegable users Role delegation XMLSecurity-74 Authorization Diagram (DD) CSE 5810 Illustrates a particular user/role combination Connected to authorizations to particular schemas and/or their instances Authorizations are used to augment security by providing another layer of verification. If a user has permissions defined over a specific schema, but is not authorized to it, then that user cannot perform any of the permissions. A user may have permission to access a particular schema but have no assigned instances. XMLSecurity-75 Authorization Diagram (DD) CSE 5810 XMLSecurity-76 UML Metamodel CSE 5810 XMLSecurity-77 Generating Enforcement Policies CSE 5810 UML has a long history for the automatic generation of code in varied languages Our usage of our new UML diagrams to generate a security policy is consistent with this Define a set of mapping statements (MSs) Utilized to define the conditions under which the combination of the various diagrams (DSCD, SID, DRSD, LSID, UD, DD, and AD) Utilized to support the creation of respective policies for RBAC, LBAC, DAC, and authorization A mapping rule (MR) is defined to take the security model concepts and capabilities and the new the UML diagrams to yield a portion of the security policy For example, an XACML Policy’s <Target> Subject is the role and role identifier set as a <role> subtree with <roleName> and <roleID> children that corresponds to the DRSD package name. XMLSecurity-78 Generating Enforcement Policies RBAC Mappings Users, Roles & Permissions LBAC Mappings Users, CLRs, Elements, CLSs & Operations DAC Delegations Mappings Users & Roles Authorizations Mappings Users, Schemas & Instances Secure Information Diagram (SID) LBAC Secure Information Diagram (LSID) Document Role Slice Diagram (DRSD) User Diagram (UD) Authorization Diagram (AD) AOP Delegation Diagram (DD) Generated Policy XACML Policies Document Schema Class Diagram (DSCD) Policy Components SQL Database Access Control Model Automatic Policy Generation CSE 5810 XMLSecurity-79 Mapping Process CSE 5810 XMLSecurity-80 XACML CSE 5810 XMLSecurity-81 RBAC Mapping Statements Mapping Statement Type Involved UML Diagram(s) CSE 5810 R-MS (Role Mapping Statements) DRSD, UD P-MS (Permission Mapping Statements) DRSD, SID E-MS (Element Mapping Statements) DRSD, DSCD, SID Mapping Statements R-MS1. XACML Policy’s <Target>Subject is the role and role identifier set as a <role> subtree with <roleName> and <roleID> children that corresponds to the DRSD package name. R-MS2. XACML Policy’s <Target>Subject is the user name and user identifier set as a <user> subtree with <name> and <id> children that corresponds to the UD. R-MS3. SubjectMatch’s MatchId uses the function “stringequal” to evaluate the user’s role as modeled in the DRSD. R-MS4. AttributeValue of the Subject is a string, and the value is the «DRSD» Role. R-MS5. SubjectAttributeDesignator’s AttributeId is the role attribute. R-MS6. As many Rule per role Policy as permission combinations. R-MS7. Subject in Rule is set as the Subject in the higherlevel <Target> (role). P-MS1. XACML Policy’s <Target>Action set to <AnyAction /> to ensure that the higher-level policy applies to the role. P-MS2. ActionMatch’s MatchId uses the function “stringequal”. P-MS3. ActionAttributeDesignator’s AttributeId set to the operation’s tag (e.g. read, aggregate, insert, update, delete). P-MS4. Rule’s <Actions> children are <Operation> with the operation name (<operationName>) and access mode (<opAccessMode>) that correspond to the stereotypes of the +access() method in the «element» classes in the DRSD package. E-MS1. XACML Policy’s <Target>Resource set to <AnyResource /> to ensure that the higher-level policies applies to the role. E-MS2. Each Resource’s ResourceMatch has a MatchId that determines the usage of the function “stringequal”. E-MS3. Rule’s <Resources> children are <element> with the element identifier (<elementID>) and element name (<elementName>) that correspond to the «element» classes in the DRSD, DSCD and SID packages. XMLSecurity-82 Mapping Process CSE 5810 XMLSecurity-83 Mapping Process CSE 5810 XMLSecurity-84 Mapping Process CSE 5810 XMLSecurity-85 LBAC Mapping Statements CSE 5810 Mapping Statement Type Involved UML Diagram(s) SU-MS (Subject User Mapping Statements) UD AO-MS (Action Operation Mapping Statements) UD, SID, LSID RE-MS (Resource Element Mapping Statements) DSCD, SID, LSID Mapping Statements SU-MS1. XACML Policy’s <Target> Subject is the user and user identifier set as a <user> subtree with <name> and <id> children that corresponds to the «User» package of the UD. SU-MS2. SubjectMatch’s MatchId uses the function “string-equal” to evaluate the user’s name and id as modeled in the UD and the security model. SU-MS3. Subject in Rule is set as the Subject in the higher-level <Target> (user). SU-MS4. Subject in Rule is extended with a <clearance> element that corresp onds to the LBAC clearance from the UD. AO-MS1. XACML Policy’s <Target> Action set to <AnyAction /> to ensure that the higher-level policy applies to the user. AO-MS2. ActionMatch’s MatchId uses the function “string-equal”. AO-MS3. ActionAttributeDesignator’s AttributeId set to the operation’s tag (e.g. read, aggregate, insert, update, delete). AO-MS4. Rule’s <Actions> children are <Operation> with the operation name (<operationName>) and access mode (<opAc cessMode>) that corresponds to the members of the stereotyped «element» classes of the LSID. RE-MS1. XACML Policy’s <Target> Resource set to <AnyResource /> to ensure that thehigher-level policies applies to the user. RE-MS2. Each Resource’s ResourceMatch has a MatchId that determines the usage of the function “string-equal”. RE-MS3. Rule’s <Resources> children are <element> with the element identifier (<elementID>), element name (<elementName>), LBAC cla ssification (<classification>), and access mode (<accessMode>) that corresponds to the stereotyped «element» class of the LSID. XMLSecurity-86 Mapping Process CSE 5810 XMLSecurity-87 Mapping Process CSE 5810 XMLSecurity-88 DAC Delegation Mapping Statements CSE 5810 Mapping Statement Type Involved UML Diagram(s) UD, DD DSOU-MS1. XACML Policy’s <Target> Subject is the user and user identifier set as a < user> subtree with <name> and <id> children that corresponds to the «User» package of the DD. DSOU-MS2. SubjectMatch’s MatchId uses the function “string-equal” to evaluate the user’s name and id as modeled in the DD and the security model. DSOU-MS3. Subject in the Delegation Rule is set as the Subject in the higher-level <Target> (user), the «User» package from the DD. DRSD, DD DRR-MS1. XACML Policy’s <Target> Resource set to <AnyResource /> to ensure that thehigher-level policies applies to the user. DRR-MS2. Rule’s <Resources> children are <role> elements with the role identifier (<roleID>) and role name (<roleName>) that corresponds to the«DRSD» of the DD. UD, DRSD, DD DTDU-MS1. Rule’s <DelegationTargets> children are <User> with the user identifier (<id>) and user name (<name>) that corresponds to the «User» classes of the «DelegationDiagram» package in the DD. DSOU-MS (Delegation Subject Original User Mapping Statements) DRR-MS (Delegation Resources Role Mapping Statements) DTDU-MS (Delegation Targets Delegable User Element Mapping Statements) Mapping Statements XMLSecurity-89 Mapping Process CSE 5810 XMLSecurity-90 Mapping Process CSE 5810 XMLSecurity-91 Authorizations Mapping Statements CSE 5810 Mapping Statement Type Involved UML Diagram(s) Mapping Statements UD, DRSD, AD SUA-MS1. XACML Policy’s <Target> Subject is the user and user identifier set as a <user> subtree with <name> and <id> children that corresponds to the «User» package of the AD. SUA-MS2. XACML Policy’s <Target>Subject is the role and role identifier set as a <role> subtree with <roleName> and <roleID> children that corresponds to the DRSD package name. SUA-MS3. SubjectMatch’s MatchId uses the function “string-equal” to evaluate the user’s name and id as modeled in the AD and the security model. SUA-MS4. Subject in the Authorization Rule is set as the Subject in the higher-level <Target> (user), the «User» package from the AD. AD, DSCD RSI-MS1. XACML Policy’s <Target> Resource set to <AnyResource /> to ensure that thehigher-level policies applies to the user. RSI-MS2. Rule’s <Resources> children are <Schemas> and <Instances> elements that correspond to the with the «DSCD» and «Instance» components of the «AuthorizationDiagram» package. SUA-MS Subject (User) Mapping Statements RSI-MS Resources (Schemas and Instances) Mapping Statements XMLSecurity-92 Mapping Process CSE 5810 XMLSecurity-93 Mapping Process CSE 5810 XMLSecurity-94 High-level Mapping Algorithm CSE 5810 XMLSecurity-95 Mapping Algorithm Pseudo-code CSE 5810 XMLSecurity-96 Resulting XACML Policy CSE 5810 <Policy PolicyId="ada-policy" RuleCombiningAlgId="deny-overrides"> <Description>Omitted due to length.</Description> <Target> <Subjects> <user><id>6</id><name>Elisa</name></user> </Subjects> <Resources><AnyResource/></Resources> <Actions><AnyAction/></Actions> </Target> <Rule RuleId="simple-RBAC+LBAC-rule" Effect="Permit"> <Target> <Subjects> <role><roleID>5</roleID><roleName>Physician</roleName></role> </Subjects> <Resources><element> <elementID>el-3</elementID> <elementName>Past Medical History</elementName> </element></Resources> <Actions><operation> <operationName>insert</operationName> <opAccessMode>write</opAccessMode> </operation></Actions> </Target> <Condition> <Apply FunctionId="…:integer-greater-than-or-equal"> <Apply FunctionId="…:integer-one-and-only"> <AttributeValue DataType="…#integer">Secret</AttributeValue> </Apply> <AttributeValue DataType="…#integer">Secret</AttributeValue> </Apply> </Condition> </Rule> <Rule RuleId="simple-delegation-rule" Effect="Permit"> <Target> <Subjects> <user><id>6</id><name>Elisa</name></user> </Subjects> <Resources> <Roles><role> <roleID>2</roleID><roleName>Physician</roleName> </role></Roles> </Resources> <DelegationTargets> <user><id>30</id><name>Samantha</name></user> </DelegationTargets> </Target> </Rule> <Rule RuleId="simple-authorization-rule" Effect="Permit"> <Target> <Subjects> <user><id>6</id><name>Elisa</name></user> </Subjects> <Resources><Schemas><schema> <schemaID>4</schemaID> <schemaName>Schema 4</schemaName> </schema></Schemas> <Instances><instance> <instanceID>4,2</instaneID> <instanceName>Carol Smith Health Record</instanceName> </instance></Instances></Resources> </Target> </Rule> </Policy> XMLSecurity-97 Secure Information Engineering CSE 5810 Over the past five years, major focus has been on extending UML with new diagrams Supports secure software engineering for RBAC, MAC, and DAC From a functional perspective A framework of composable security features was defined (Jaime) From a collaboration perspective A framework for secure, obligated, coordinated, and dynamic collaboration was developed (Solomon) From an information perspective A framework for tree-structured document security was developed (Alberto) XMLSecurity-98 Secure Software Engineering CSE 5810 XMLSecurity-99 Secure Information Engineering Process CSE 5810 XMLSecurity-100 Secure Information Engineering Process CSE 5810 XMLSecurity-101 Secure Information Engineering Process CSE 5810 (1) Main Security Design of the Application (2) Initial Information Security Design (2.1) Define Document Schema Class Diagram (DSCD) A (2.2) Define Information Security Requirements and User Diagram (UD) B «element» ContinuityOfCareRecord «complexType» «RoleAssignment» «User» Elisa «DRSD» Physician «sequence» «User» Brock «CLRAssignment» «CLRAssignment» «LBAC» S «RoleAssignment» «element» CCRDocumentObjectID «element» Patient «LBAC» TS «CLRAssignment» «element» Body «constraint» maxOccurs=“2” «element» Language «User» Leroy «complexType» «DRSD» Psychiatrist «LBAC» C «complexType» «element» Version «sequence» «SOD» «sequence» «element» DateTime «RoleAssignment» «element» ActorID «ME» «RoleAssignment» «DRSD» Nurse «element» Payers «element» AdvanceDirectives «element» Support «User» Jenkins «LBAC» S «constraint» minOccurs=“0” «constraint» minOccurs=“0” «complexType» «complexType» «sequence» «sequence» «element» Payer «constraint» minOccurs=“unbounded” «element» FunctionalStatus «constraint» minOccurs=“0” «element» AdvanceDirective «constraint» minOccurs=“unbounded” «element» Problems «constraint» minOccurs=“0” «constraint» minOccurs=“0” «sequence» «element» SupportProvider «constraint» minOccurs=“unbounded” «constraint» minOccurs=“0” «complexType» «sequence» «sequence» «sequence» «element» Function «element» Problem «element» FamilyProblemHistory «constraint» minOccurs=“unbounded” UD «element» FamilyHistory «complexType» «constraint» minOccurs=“unbounded” «CLRAssignment» «complexType» «complexType» «constraint» minOccurs=“unbounded” B DSCD A XMLSecurity-102 Secure Information Engineering Process «element» ContinuityOfCareReco rd «SecureInformation» ContinuityOfCareRecordSystem «complexType» CSE 5810 «RoleAssignment» «User» Elisa «sequence» «element» Patient «constraint» maxOccurs=“2” «element» Language «element» Body «complexType» «complexType» «element» Version «sequence» «User» Brock «LBAC» S «element» Body «constraint» maxOccurs=“2” «RoleAssignment» «LBAC» TS «CLRAssignment» «element» Problems «User» Leroy «DRSD» Psychiatrist «LBAC» C «sequence» «constraint» minOccurs=“0” «SOD» «element» ActorID «element» DateTime «element» Patient «CLRAssignment» «CLRAssignment» «element» CCRDocumentObjectID «DRSD» Physician «element» FamilyHistory «RoleAssignment» «ME» «RoleAssignment» «element» AdvanceDirectives «constraint» minOccurs=“0” «element» Payers «constraint» minOccurs=“0” «element» Support «constraint» minOccurs=“0” «complexType» «complexType» «complexType» «sequence» «sequence» «sequence» «element» AdvanceDirective «constraint» minOccurs=“unbounded” «element» Payer «constraint» minOccurs=“unbounded” «element» FunctionalStatus «constraint» minOccurs=“0” UD C «complexType» «sequence» «sequence» SID «LBAC» S «CLRAssignment» «element» FamilyHistory «constraint» minOccurs=“0” «complexType» «complexType» «sequence» «element» FamilyProblemHistory «constraint» minOccurs=“unbounded” «element» Problem «constraint» minOccurs=“unbounded” «element» Function «constraint» minOccurs=“unbounded” «User» Jenkins «element» SupportProvider «constraint» minOccurs=“unbounded” «element» Problems «constraint» minOccurs=“0” «constraint» minOccurs=“0” «DRSD» Nurse B DSCD «User» Elisa A «Delegation» «RoleAssignment» «DelegationDiagram» Delegations «User» Samantha «User» Emily «DRSD» Physician «DRSD» MedicalProv ider «elemen t» «read» access() DD «SecureInformation» ContinuityOfCareRecordSystem «element» caption : string = {“Allergies, Assessment, ref:patient «element» Patient «constraint» maxOccurs=“2” Past Medical History”} «read» + access() + «element» «element» ref:legal_authenticat or ref:originating_organizatio n «read» + access() «read» + access() «element» Body { am=read, cls=c } { am=read, cls=c } F «element» caption : string = {“Vital Signs”} «read»«aggregate»«insert»«update» + access() «element» Problems «constraint» minOccurs=“0” «DRSD» Physician «DRSD» Nurse «elemen t» { am=read, cls=c } «element» «element» «element» ref:prescription ref:laboratytest ref:prescription ref:laboratytest «read» access() «read» + access() «rwrite» + access() «rwrite» + access() + «element» FamilyHistory «constraint» minOccurs=“0” { am=read, cls=c } «element» «element» ref:prescription ref:laboratytest «rwrite» + access() «rwrite» + access() «elemen t» ref:patient «read» access() «element» ref:pyschhistory «rwrite» + access() D + «element» «element» ref:legal_authenticat or ref:originating_organizatio n «read» + access() «read» + access() DRSD «AuthorizationDiagram» Authorizations «User» Elisa «DRSD» Staff «DRSD» Psychiatrist LSID E «Authorization» «DSCD» CCR «RoleAssignment» «DRSD» Physicia n «has» «Instance» Carol Smith «Instance» John Jones AD G XMLSecurity-103 Secure Information Engineering Process (1) Main Security Design of the Application (2) Initial Information Security Design CSE 5810 (2.2) Define Information Security Requirements and User Diagram (UD) (2.1) Define Document Schema Class Diagram (DSCD) A B (3) Information Security Design C Define Secure Information Diagram (SID) [NOT DONE] [DONE] [NEEDS DAC] [NEEDS LBAC] [NEEDS RBAC] Define Roles and Permissions Define User/Role Delegations and Authorizations Define Sensitivity Levels [NOT DONE] [NOT DONE] [NOT DONE] [DONE] E [DONE] Create Document Role Slice Diagrams Create Authorization and Delegation Diagrams Create SID with LBAC [NOT DONE] [DONE] [DONE] [NOT DONE] [NOT DONE] [DONE] [NOT DONE] D B F, G Security Refinement Process and UD [DONE] [NEEDS REVISION] (4) Mapping to Enforcement Code and XACML Policies Generated Information Secure System XMLSecurity-104 Prototype for Enforcing Generated Policies Microsoft HealthVault - Patient’s Account CSE 5810 HV Objects + XACML Write-back: HV Objects • Medications • Procedures • Allergies • Demographics Reading: CCR Instance + XACML XACML Policies Microsoft HealthVault Middle-Layer Server Patient Layer (Data Transfer) • Set Security Policies • Save Medications • Save Allergies • Save Procedures • Save Demographic Info • Get Patient Information • Write-back Information • Enforce XACML Policies Provider List JSON JSON Provider Layer (Enforcement) Patient List JSON PHA - Patient PHA - Provider • Medications • Allergies • Procedures • Demographics Patient List Provider List Reading: JSON (from filtered CCR instance) Writing: JSON (with update payload) • Medications • Allergies • Procedures • Demographics XACML Policies XMLSecurity-105 Enforcing RBAC read access modes Initial Request: Patient Selection CSE 5810 Retrieval of CCR XML instance and XACML policies Is user/role authorized? YES Evaluate policy reading rules to requester’s role NO Drop Request: Deny access Filter CCR XML instance Package as equivalent JSON for PHA Respond Request: JSON XMLSecurity-106 Enforcing RBAC write access modes CSE 5810 Initial Request: Information Update JSON Data Payload Evaluation of target and policy writing rules Is user/role authorized and allowed? YES Write-back to CCR XML instance NO Drop Request: Deny access Validation of updated CCR with schema Validation passed? YES Save data in HealthVault NO Drop Request: Invalid Respond Request: Success XMLSecurity-107 Enforcing LBAC read and write CSE 5810 Initial Request: Information Update JSON Data Payload (if write) Evaluation of target, policy rules and LBAC features YES Is User authorized and clearance proper? NO Read XML instance and output or Write-back to CCR XML instance IF READ IF WRITE Drop Request: Deny access Validation of updated CCR with schema YES Validation passed? Save data in HealthVault Respond Request: Success NO Drop Request: Invalid XMLSecurity-108 Enforcing Delegations CSE 5810 Initial Request: Information Update Delegate Role and Respond Request: Success Evaluate the Initiating User and the Receiving User Is the Initiating User an Original user? YES YES Is the receiving user a delegable user allowed to perform the sent role? NO Is the Initiating User a Delegable User NO Drop Request: Invalid Is there Pass-On Delegation? NO NO XMLSecurity-109 What about Authorizations? CSE 5810 Authorizations over schemas and instances are verified before permissions For RBAC, this is part of the process that determines if the role is authorized If the user/role is not authorized, then the permission is not performed For LBAC, this is part of the process that determines if the user is authorized If the user/role is not authorized, the operation is not performed XMLSecurity-110 Conclusion and Contributions CSE 5810 Presented a Security Framework Addressed the Issue of Providing Information Security in Systems with Tree-Structured Documents Utilize Security Policies defined after the different Access control models Support for RBAC, LBAC and DAC Not enough to utilize the security requirements of the newly developed system Security Definitions and Requirements of Constituent Systems must be Considered XMLSecurity-111 Ongoing Research and Future Directions CSE 5810 Non-orthogonal RBAC and LBAC Clearance assigned to both users and roles Support of other access control models ABAC (Attribute-Based Access Control) Support of Compartments for RBAC UML Profile for other specialized document formats JSON RDF serializations OWL Automatic Creation of DSCD Policy generation in other languages and more efficient algorithm Deployable to databases Development Framework Policies Decoupled systems from a security architecture Generate XACML directly from the model Skip UML altogether XMLSecurity-112 Conclusion and Contributions CSE 5810 Security Model RBAC (roles, permissions) LBAC (sensitivities, read/write features) DAC (delegations) and Authorizations UML Security Extensions for UML DSCD, DRSD (for RBAC), SID, LSID (for LBAC), UD, DD (delegations), AD (authorizations) Schema targeting XACML Policy Generation Automatic Policy Generation Mapping Statements Generation Algorithm Secure Information Engineering Development Cycle XMLSecurity-113 Publications to Date Published / Accepted CSE 5810 Demurjian, S., De la Rosa Algarín, A., Bi, J., Berhe, S., Agresta, T., Wang, W., Blechner, M. (2014). A Viewpoint of Security for Digital Health Care: What's There? What Works? What's Needed? (Accepted) To appear in International Journal of Privacy and Health Information Management. Pavlich-Mariscal, J. A., Berhe, S., De la Rosa Algarín, A. and Demurjian, S. A. (2014). An Integrated Secure Software Engineering Approach for Functional, Collaborative, and Information Concerns. (Accepted) To appear in Handbook of Research on Emerging Advancements and Technologies in Software Engineering, IGI Global. Saripalle, R., Demurjian, S. A., De la Rosa Algarín, A. and Blechner, M. (2013). A Software Engineering Process for Ontology Design and Development through Extensions to OMD and OWL. (Accepted) To appear in International Journal of Web Semantics and Information Systems. De la Rosa Algarín, A., Ziminski, T. B., Demurjian, S. A., Rivera Sánchez, Y. K. and Kuykendall, R. (2013). Generating XACML Enforcement Policies for Role-Based Access Control of XML Documents. (WEBIST 2013 Selected Papers) (Accepted) To appear in Lecture Notes in Business Information Processing (LNBIP), Springer-Verlag. De la Rosa Algarín, A. and Demurjian, S. A. (2013). An Approach to Facilitate Security Assurance for Information Sharing and Exchange in Big Data Applications. Emerging Trends in Information and Communication Technologies Security, pp. 65-83. Elsevier (Kaufman). Editors: Babak Akhgar and Hamid R. Arabnia. Demurjian, S., De la Rosa Algarín, A. and Saripalle, R. K. (2013). Information Models for Granular Computing. Encyclopedia of Complexity and Systems Science, Springer. Editor-in-Chief: R. Meyers, Granular Computing Section, T. Y. Lin (ed.); revision and substantial update of June 2009 article Springer, submitted April 2013, see here for Encyclopedia and here for article. De la Rosa Algarín, A., Demurjian, S. A., Ziminski, T. B., Rivera Sánchez, Y. K. and Kuykendall, R. (2013). Securing XML with Role-Based Access Control: Case Study in Health Care. Architectures and Protocols for Secure Information Technology (APSIT), pp. 334-365, IGI Global. Editors: Antonio Ruiz Martínez, Fernando Pereñíguez García, and Rafael Marín López. De la Rosa Algarín, A., Ziminski, T. B., Demurjian, S. A., Kuykendall, R. and Rivera Sánchez, Y. (2013). Defining and Enforcing XACML Role-Based Security Policies within an XML Security Framework. Proceedings of 9th International Conference on Web Information Systems and Technologies (WEBIST 2013) (pp. 16-25), doi:10.5220/0004366200160025 De la Rosa Algarín, A., Demurjian, S. A., Berhe, S. and Pavlich-Mariscal, J. (2012). A Security Framework for XML Schemas and Documents for Healthcare. Proceedings of 2012 International Workshop on Biomedical and Health Informatics (BHI 2012) (pp. 782-789), doi:10.1109/BIBMW.2012.6470239 Ziminski, T. B., De la Rosa Algarín, A., Saripalle, R., Demurjian, S. A. and Jackson, E. (2012). SMARTSync: Towards Patient-Driven Medication Reconciliation Using the SMART Framework. Proceedings of 2012 International Workshop on Biomedical and Health Informatics (BHI 2012) (pp. 806-813), doi:10.1109/BIBMW.2012.6470243 In Review De la Rosa Algarín, A. and Demurjian, S. (2014). UML Extensions to Model and Enforce LBAC and RBAC on XML Documents. Submitted to PST 2014. XMLSecurity-114