Bringing Semantic Security to Semantic Web Services

Document Sample
scope of work template
							              Bringing Semantic
            Security to Semantic
                   Web Services
                     B. Ramamurthy




8/10/2010                            1
Introduction
    Humans can read web pages and understand them,
     but their inherent meaning is not shown in a way
     that allows their interpretation by a computer
     (program).
    One way to enable machine-to-machine exchange
     and automated processing is to provide the
     information in such as way that computers can
     understand it.
    This is precisely the objective of the semantic web.
    The next generation of the Web will combine
     existing Web technologies with knowledge
     representation formalisms.

8/10/2010                                                   2
Semantic Web Services
            dynamic

                                  Semantic
                        Web
                                   Web
                       Services
                                  Services
              static




                                  Semantic
                        WWW
                                    Web




8/10/2010                                    3
RDF, OWL, WSDL-S
    RDF is a standard for creating descriptions of
     information. RDF is for simple semantics.
    OWL provides a language for defining
     structured web-based ontologies which
     allows a richer integration and interoperability
     of data among communities and domains.
    WSDL-S establishes a mapping between
     WSDL descriptions and ontological concepts.

8/10/2010                                           4
WSDL-S Example
    Semantics can be added to operations,
     messages, preconditions and efforts
xmlns:sm= http://dme.uma.pt/jcardoso/StudentMng.owl#
<interface name = “StudentmanagmentUMA”>
<operation name = “RegisterStudent” >
  <action element = sm:RegisterStudent” />
..
<input messageLabel = “ID” element = “sm:studentID” />
<output messageLabel = “student” element = “sm:StudentInfo” />
..
</interface>
8/10/2010                                                        5
Authoring Tool for WSDL-S
    To create, represent, and manipulate WSDL-
     S documents WSDL4J can be used.
    WSDL4J provides Java APIs for WSDL
     parsing and generation.
    WSDL4J supports extensibility elements
     providing an easy mechanism to add new
     extensions.


8/10/2010                                         6
Web Services Security
Background
    Standards are proposed or accepted regarding
     authentication, encryption, and identity
     management.
    RSA encryption, XML signatures , SAML – Security
     Assertion Markup Language
    There are 5 fundamental areas to consider:
     Message level protection, Message privacy,
     parameter checking, authentication, and
     authorization.
    This is application layer security (not network layer
     security).
8/10/2010                                                    7
Application of RSA
           Lets say a person in Atlanta wants to send a
            message M to a person in Buffalo:
           Atlanta encrypts message using Buffalo’s public
            key B  E(M,B)
           Only Buffalo can read it using it private key b:
            E(b, E(M,B))  M
           In other words for any public/private key pair
            determined as previously shown, the encrypting
            function holds two properties:
               E(p, E(M,P))  M
               E(P, E(M,p))  M
8/10/2010                                                      8
How can you authenticate
“sender”?
    In real life you will use signatures: we will look at
     concept of digital signatures next.
    Instead of sending just a simple message, Atlanta
     will send a signed message signed by Atlanta’s
     private key:
           E(B,E(M,a))
    Buffalo will first decrypt using its private key and use
     Atlanta’s public key to decrypt the signed message:
           E(b, E(B,E(M,a))  E(M,a)
           E(A,E(M,a))  M


8/10/2010                                                    9
Digital Signatures
    Strong digital signatures are essential requirements
     of a secure system. These are needed to verify that
     a document is:
    Authentic : source
    Not forged : not fake
    Non-repudiable : The signer cannot credibly deny
     that the document was signed by them.




8/10/2010                                               10
Digest Functions
    Are functions generated to serve a
     signatures. Also called secure hash
     functions.
    It is message dependent.
    Only the Digest is encrypted using the private
     key.



8/10/2010                                         11
Alice’s bank account
certificate



                     :
    1. Certificate type       Account number
    2. Name :                 Alice
    3. Account :              6262626
                         :
    4. Certifying authority   Bob’s Bank
    5. Signature :            {Digest(field 2 + field 3)}KBpriv




8/10/2010                                                         12
Digital signatures with public keys
                           M                                     signed doc

             Signing
                                     H(M)      h      E(K pri , h) {h} Kpri


                                             128 bits                M




                          {h} Kpri                             h'
                                       D(Kpub ,{h})

            Verif y ing    M                                                  h = h'?

                                            H(doc)              h




8/10/2010                                                                               13
Message Privacy
    Deals with confidentiality of messages.
    Message header has token and signature.
    Typically WS are chained together to form a
     complex service.
    In this situation we need end-to-end encryption
     schemes. Scheme such as SSL will not suffice.
    Solution: XML encryption allows for encryption of
     any combination of the message body, header,
     attachments, and sub-structures.

8/10/2010                                                14
XML Signature
    Service requestor encrypts the message and
     the signature information in the header it may
     specify in the header that it used providers
     public key.
    Private key of the provider is then used
     decrypt the XML request.
    XML Encryption allows for multiple keys to be
     used for encrypting different sections thus
     allowing intermediaries to access parts of the
     message.
8/10/2010                                         15
Message level Protection
    Message level protection has to with message
     integrity. How do assure that the message has not
     been modified?
    This is done by creating a message digest.
    Digest is a cryptographic checksum of an octet
     stream which is created using an algorithm, say,
     SHA-1 algorithm.
    Provider gets the message, its digest as signature
     and type of algorithm used to create the digest. It
     creates the digest and compares with the one from
     the sender and verifies the integrity of the
     messages.

8/10/2010                                                  16
Message validity
    Message validity is ensuring that the contents
     of a message are appropriate to the service
     and that they are well formed.
    You check the types used and operations
     used are valid.
    SQL injection is a common malicious code.
     Typical identification method is to look for “;’
     (semicolon) that allows for SQL commands to
     follow.
8/10/2010                                           17
Authentication
    Authentication is verifying that the requester
     is who he/she claims to be.
    In a typically closed environment: user name
     / password
    If the sender previously unknown: send
     credential to verify oneself.
    Trusted authorities issues certificates that
     can be used as credential. (Verified by
     Verisign)

8/10/2010                                             18
Authorization
    In any organization, data located may have levels of
     sensitivity. Ex: grades and student personal
     information in a university: Infosource at UB.
    Authorization is granting of rights which includes the
     granting of access based on access rights.
    This typically takes place after authentication.
    Three most common access control
     implementations:
           Access matrix
           Access Control List (ACL)
           Role Based Access Control (RBAC)
8/10/2010                                                 19
Access Matrix
    A general model of access control as exercised by a
     file or database management system is that of an
     access matrix.
    Basic elements of the model are:
           Subject: An entity capable of accessing objects. The
            concept of subject equates that of a process.
           Object: Anything to which access is controlled. Ex: files,
            programs, segments of memory.
           Access right: The way in which an object is accesses by
            the subject. Examples: read, write, and execute.




8/10/2010                                                                20
Access Matrix (contd.)
            File 1   File 2   File 3   File 4   Acct1     Acct2 Printer1

            Own               Own               Inquiry
 userA      R, W                                Credit
                              R, W

             R       Own       W         R      Inquiry Inquiry
  userB                                                             P
                                                Debit Credit
                     R, W
                                       Own                Inquiry
  userC     R,W        R                                  Debit
                                       R, W




8/10/2010                                                                  21
Access Matrix Details
    Row index corresponds to subjects and
     column index the objects.
    Entries in the cell represent the access
     privileges/rights.
    In practice, access matrix is quite sparse and
     is implemented as either access control lists
     (ACLs) or capability tickets.



8/10/2010                                         22
ACLs
    Access matrix can be decomposed by columns,
     yielding access control lists.
    For each object access control list lists the users
     and their permitted access rights.
    The access control list may also have a default or
     public entry to covers subjects that are not explicitly
     listed in the list.
    Elements of the list may include individual as well
     group of users.


8/10/2010                                                      23
WS Security
    Access Control Scheme
           name/password
           access token associated with each process object
            indicating privileges associated with a user
           security descriptor
               access control list
               used to compare with access control list for object




8/10/2010                                                             24
Access Token (per
user/subject)


            Security ID (SID)

              Group SIDs

               Privileges

             Default Owner

              Default ACL




8/10/2010                       25
Security Descriptor (per
Object)


                       Flags

                      Owner

             System Access Control List
                     (SACL)

            Discretionary Access Control
                    List (DACL)




8/10/2010                                  26
Access Control List


            ACL Header

            ACE Header

            Access Mask

                SID

            ACE Header

            Access Mask

               SID


                .
                .
                .
8/10/2010                 27
Access Mask

                                 Delete
                           Read Control
                            Write DAC
                           Write Owner
              Generic      Synchronize
            Access Types



                                            Standard               Specific Access Types
                                           Access Types

                                          Access System Security
                                          Maximum allowed
                               Generic All
                               Generic Execute
                               Generic Write
                               Generic Read




8/10/2010                                                                                  28
Access Control Using ACLs
    When a process attempts to access an object, the
     object manager in security executive reads the SID
     and group SIDs from the access token and scans
     down the object’s DACL.
    If a match is found in SID, then the corresponding
     ACE Access Mask provides the access rights
     available to the process.




8/10/2010                                                 29
RBAC
    In 2004 the National Institute of Standards and
     Technology (NIST) published a standard for defining
     the features of the Role Based Access Control
     (RBAC).
    Two parts: (i) Reference model and (ii) System and
     Administrative functions.
    Reference model: objects, operations, permissions,
     roles and users (in-band artifacts)
    Administrative model: system functionality,
     administrative operations and reviews.
8/10/2010                                              30
RBAC Details
    RBAC starts with Permission sets.
    Permission express a privilege to access a
     resource.
    Examples of permission: “create a file”, “access
     grades information” (ublearns)
    Next steps is defines Roles and assigning
     permissions to Roles.
    Examples of roles: “Physician”, “Reviewer”
    Scenario driven approach is typically used to
     connect roles to permissions.
    Upper level ontology in SWS should map Users,
     Roles, Groups etc. to the ontology.
8/10/2010                                               31