courtesy of andrea zonca sdsc science gateway security
play

Courtesy of Andrea Zonca, SDSC Science Gateway Security - PowerPoint PPT Presentation

Courtesy of Andrea Zonca, SDSC Science Gateway Security Considerations Applications of OAuth2 and OpenID Connect to Science Gateways https://tools.ietf.org/html/rfc6749 Three Layers of Science Gateway Cyberinfrastructure Tenants Resources


  1. Courtesy of Andrea Zonca, SDSC

  2. Science Gateway Security Considerations Applications of OAuth2 and OpenID Connect to Science Gateways https://tools.ietf.org/html/rfc6749

  3. Three Layers of Science Gateway Cyberinfrastructure Tenants Resources Middleware

  4. Science • Domain specific: SEAGrid.org, gateway Three Major SimVascular, etc • Maintain their own user bases tenants Divisions of a Science Science • Provides general purpose services that are used by gateway tenants. Gateway gateway • One middleware instance can support multiple science gateway tenants and middleware Architecture: multiple resources Three Security Science Issues • A user “rents” space on a resource gateway • Could be a supercomputer, Google Drive, AWS, etc resources

  5. Security Between Tenants and Middleware Three Levels of Security within Middleware Security (Byzantine Faults) Considerations Security Between Middleware and Resources: Direct and Brokered

  6. Authenticate users and manage their profiles. Custos: Services that Manage the “secrets” needed to access Provide Three remote resources Types of Security Manage access to digital objects (metadata) created and managed by the gateway

  7. Simplifying Assumption: the Middleware Perimeter • Assume all the microservices run under a single administrative domain. • Can use “operational security” rather than “architectural security” • Firewalls, closed networks and similar approaches to limit access to services to trusted entities. • Logging and event detection • Service Mesh solutions use TLS and mutual authentication within the perimeter Some interesting further Microservice security considerations: • Rogue services, Byzantine Fault Tolerance: RAFT • Inter-Service Mesh Security • Integrating trusted third party services like Box.

  8. Let’s Look at the Tenant-Middleware Security

  9. Zoom in on the UI and API Server • UI: this is the gateway tenant • The API Server can communicate Gateway Gateway Gateway with multiple tenants. Tenant Tenant Tenant • Tenants can be Web servers, mobile applications, native browser JavaScript apps, or API Server desktop applications. • Tenants and the API server Apache Airavata Middleware communicate over network connections (TCP or HTTPS)

  10. Security Challenges for Gateway Tenants • Establishing trust between a gateway tenant and the API server. • The gateway tenant may manage its own user base, but these must be communicated to the API server. • A gateway tenant may be a single web server for an entire community • A gateway tenant also may be a desktop application, scripting tool, or in-browser application that get distributed to every user. OAuth2 can address many of these issues.

  11. Network Security and OAuth2 A basic introduction

  12. Entities on a Network Entity 1 Entity 2 Network Communications (TCP/IP)

  13. Entities have unique identities Security Concept 1: Entities can prove their identity: authentication Entities Entities can can limit access based on identity: authorization

  14. Security Concept 2: Messages Detecting if the network Entities can verify that message between messages came from a entities has been altered. specific authenticated Implemented with entity. Implemented message digests with cryptographic keys (hashes). Communications Each message between between entities can entities is unique. Avoids only be read by those accidental or malicious entities. Implemented replays. Uses nonces, with encryption, shared timestamps, etc. secret keys

  15. Security Concept Description Identity Entities have unique identities. Authentication Entities can establish and prove their identities. Commonly (AuthN) implemented with public-private key pairs Authorization How an entity responds to a request from another entity. (AuthZ) Usually coupled with authentication. Message Signing Entities can verify that messages came from a specific authenticated entity. Implemented with cryptographic keys Message Integrity Detecting if the network message between entities has been altered. Implemented with message digests (hashes). Message Privacy Communications between entities can only be read by those entities. Implemented with encryption, shared secret keys Message Each message between entities is unique. Avoids accidental or Singularity malicious replays. Uses nonces, timestamps, etc. Summary of Basic Network Security Concepts

  16. The Authorization Problem Trust Boundary Resource Owner Client The Resource Owner wants to Resource authorize the Client to act on Service Resource Service on the Resource Owner’s behalf. How do you do delegate this authority?

  17. Authorization and 3 rd Party Services • This is a pervasive problem • Platforms and devices such as Facebook, Google, and Apple IPhones hold your personal data. • Third party applications need to access some of this data. • You decide which applications to authorize • “Facebook, it is ok for this application to access the names of my Facebook friends and other personal information.” • “IPhone, it is OK for this app to know my location” I am the Resource Owner. My list of friends, personal information, and location are accessible through a Resource Service. Facebook and IPhone apps are Clients.

  18. Problems Delegating Authority • Straightforward Approach: Client requests an access- Resource restricted resource by Owner authenticating using the resource owner's credentials , like passwords Client • The Resource Owner shares its credentials with the third party Client. • The Client impersonates the Resource Resource Owner. Service • This is a really bad solution • What are some problems with this approach?

  19. Third-party applications gain full, permanent access to the Resource Owner's protected resources. Some Resource Owners cannot revoke access to specific Problems clients without revoking access to all clients (must change passwords) with Credential Compromise of the client results in compromise of the end-user's long-term credentials and all the data Sharing protected by that password. Compromise of one client compromises all the clients and all the Resource Services.

  20. Introducing OAuth2 OAuth2 solves this AuthZ Resource problem by Service Owner introducing a mutually trusted* Authorization Service *There are rigorous ways, like key exchanges, for Resource Client establishing mutual Service trust.

  21. OAuth2 Main Concepts • Introduces an authorization layer • Separates the role of the client from that of the resource owner. • Client is issued a different set of credentials than those of the resource owner. • OAuth2 access tokens rather than passwords • An OAuth2 access token has a specific scope, lifetime, and other access attributes. • These limit what the Client can do and how long the Client’s requests are valid • Access tokens are issued to third-party clients by an Authorization Server with the approval of the Resource Owner. • The Client uses the access token to access the protected resources hosted by the Resource Server.

  22. Credentials vs. Tokens Resource Owner Credentials Access Tokens • Can be used by the client to do • Can be associated with specific, anything the user can do limited operations • Read but not write • Don’t expire • Have a specific lifetime • Resource Owner must manually change them • Generated by the Authorization Server, not a human • All Clients use the same credentials for a specific • Each Client has a different token Resource Owner

  23. Types of OAuth2 Clients Client Type Description Web Application Confidential client that runs on a Web server. Client credentials and access tokens are stored on a Web server. Native Applications Public client that runs on a device used by the Resource Owner. Client credentials and access tokens are stored on the device. Examples: mobile devices and desktop clients User Agent Public client code is downloaded from a server and runs on Applications the user’s device (Web browser). Client credentials and access tokens are stored on the user’s device. These clients have different security implications

  24. Client Registration: Trusting the Client • Clients register with the Authorization Server • This is a one-time operation. • The Client can be either confidential or public • Confidential: a web server-based Client, for example • Public: Browser, desktop, or mobile clients • The Authorization Server issues a client identifier to the Client • Unique string representing the information provided by the client. • Confidential Clients authenticate to the Authorization Server • Passwords, key pairs, secrets, etc.

  25. OAuth2’s Abstract Protocol Flow

  26. OAuth2 In Brief... • The Resource Owner issues a grant to the client. • The grant usually comes from the Authorization Service • The Client uses the grant to get an access token from Authorization Service. • The Client uses the access token to make requests from the Resource Service until the access token expires. OAuth2 has several grant types that are appropriate for different scenarios.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend