secure patterns

Upload: kristin-pate

Post on 02-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Secure Patterns

    1/38

  • 8/10/2019 Secure Patterns

    2/38

    Secure Distributed Systems

    The Eight Fallacies of DistributedComputing

    The network is reliableLatency is zeroBandwidth is infiniteThe network is secureTopology doesn't changeThere is one administratorTransport cost is zero

    The network is homogeneous

    Peter Deutsch

  • 8/10/2019 Secure Patterns

    3/38

    Secure Distributed Systems

    Aspects of Security Not Covered

    Physical security Has the hardware or software been corrupted? Is someone reading my keystrokes? Is my private key safe from a sledgehammer?

    Authentication Who am I talking to?

    Authorization How do I decide what this party is allowed to do?

    Non-repudiation Can I pretend I never made this deal?

    Privacy Can someone I dont know about see this thing?

  • 8/10/2019 Secure Patterns

    4/38

    Secure Distributed Systems

    Aspects of Security Covered

    Anonymity Who can know Ive seen this thing?

    Auditing How do I know who did what to whom when?

    Access control Should I honor this request?

    Denial of service Can my machine be rendered unusable?

  • 8/10/2019 Secure Patterns

    5/38

    Secure Distributed Systems

    Modest scale

    Relatively static

    Trusted remote systems

    Reasonably homogeneous

    Little sharing across domains

    Assumptions

    Extremely large scale

    Wildly dynamic

    Malicious remote systems

    Heterogeneity rules the day

    Be all and end all

  • 8/10/2019 Secure Patterns

    6/38

  • 8/10/2019 Secure Patterns

    7/38Secure Distributed Systems

    What These Patterns Cant Help

    Attacks against underlying OS Attacks against network stack Many attacks against the application Many denial of service attacks Misplaced trust Social engineering Careless users

  • 8/10/2019 Secure Patterns

    8/38Secure Distributed Systems

    Separate Authorization

    From

    Access Control

    Pattern 1

  • 8/10/2019 Secure Patterns

    9/38Secure Distributed Systems

    Existing Systems

    User Service

    Request +Credentials

    ServiceUser

  • 8/10/2019 Secure Patterns

    10/38Secure Distributed Systems

    The Sad Tale of Zebra Copy

    Mom and Pop copy center Contract with HP

    2,000 HP employees with right to order jobs HP told Zebra Copy when an HP employee changed jobs Zebra copy updated its list

    Problem HP has over 10,000 such partners Zebra copy had over 500 such contracts

    Zebra copy now out of business

  • 8/10/2019 Secure Patterns

    11/38Secure Distributed Systems

    Problems

    User needs credential per service different types of credentials different rules for use too many passwords

    Every service needs to do authentication authorization access control

    Too many updates Authentication doesnt tell what service needs to know

  • 8/10/2019 Secure Patterns

    12/38Secure Distributed Systems

    Access Pattern

    Access Rule

    Service

    Authorizer

    Service Access Rule

    User

    Request + Rights

  • 8/10/2019 Secure Patterns

    13/38Secure Distributed Systems

    Zebra Copy Done Better

    HP and Zebra Copy reach agreement Zebra Copy gives HP a token representing contract Order honored if accompanied by valid token

    Zebra Copy responsibilities Verify token validity Revoke and re-issue when asked by HP

    HP responsibilities Delegate token properly Revoke privilege when people change jobs Pay for any use involving a valid token Ask for replacement token when necessary

  • 8/10/2019 Secure Patterns

    14/38Secure Distributed Systems

    Benefits

    Service only needs simple access control mechanisms An access right can be meaningful to one service Rules can be registered by third party Each company manages its own employees Admits multiple management schemes for one service Can add new service, types of access, etc. without

    affecting management mechanisms Can add new management mechanisms without

    affecting services

  • 8/10/2019 Secure Patterns

    15/38Secure Distributed Systems

    Mediate betweenClient and Service

    Pattern 2

  • 8/10/2019 Secure Patterns

    16/38Secure Distributed Systems

    Existing Systems

    Service User

    Locator

    FindRegister

    Use

  • 8/10/2019 Secure Patterns

    17/38Secure Distributed Systems

    The Jini Jive

    Designed for sharing of resources in trusted workgroup Promised access control within a year Still doesnt have it (some talk about ACLs but no details)

    System structure is the problem Look up the service by interface Invoke service directly

    Control points JavaSpace only knows interface, not specifics of service Service is a printer

    Do you really want to do authentication, authorization,and access control in every device?

  • 8/10/2019 Secure Patterns

    18/38Secure Distributed Systems

    Problems

    Each service needs to authenticate users make authorization decisions produce audit trail

    protect against malicious or erroneous users Common library linked with service

    guaranteeing proper use rolling forward versions

  • 8/10/2019 Secure Patterns

    19/38Secure Distributed Systems

    Mediation Pattern

    Service User

    Mediator

    Locator

    Register FindUse

    Use

  • 8/10/2019 Secure Patterns

    20/38Secure Distributed Systems

    Mediation Pattern

    Service User

    Mediator

    Register Find

    UseUse

    Locator

  • 8/10/2019 Secure Patterns

    21/38

    Secure Distributed Systems

    Benefits

    Mediator provides trusted path additional metadata mutual anonymity

    audit information Service and client dont have to trust each other directly

    turns N*M problem into N+M Mediator can translate authorization information into a

    form meaningful to service Mediator can verify protocol adherence

  • 8/10/2019 Secure Patterns

    22/38

    Secure Distributed Systems

    Use a Service-side Proxyfor Remote Users

    Pattern 3

  • 8/10/2019 Secure Patterns

    23/38

    Secure Distributed Systems

    Existing Systems

    Service User

    Locator

    Register

    Find

    UseUser Use

    Locator Register

    Find

    Find

  • 8/10/2019 Secure Patterns

    24/38

    Secure Distributed Systems

    Web Server Woes

    Clients talk directly with server denial of service attacks hard to prevent

    Server has more privileges than any client confused deputy a possibility

    successful attack can give client all server privileges No place to enforce system policies

  • 8/10/2019 Secure Patterns

    25/38

    Secure Distributed Systems

    Problems

    Every service subject to a variety of network attacks Successful attack can do anything service can do Crashing server cuts off all users Service must

    deal with authentication, authorization, access control enforce machine-specific policies

  • 8/10/2019 Secure Patterns

    26/38

    Secure Distributed Systems

    Proxy Pattern

    Service User

    Proxy

    User

    Proxy User

  • 8/10/2019 Secure Patterns

    27/38

    Secure Distributed Systems

    Use a Proxy for Remote Users

    Service User

    Proxy

    User

    User

  • 8/10/2019 Secure Patterns

    28/38

    Secure Distributed Systems

    Benefits

    Crashing proxy cuts off attacker Protection domain of remote user under local control Proxy can be dumb and repeat requests verbatim Proxy can be smart and filter requests Smarts added to proxy implementation protect all

    services

  • 8/10/2019 Secure Patterns

    29/38

    Secure Distributed Systems

    Example of Use

  • 8/10/2019 Secure Patterns

    30/38

    Secure Distributed Systems

    E-speak E-xplained

    First attempt at a web services infrastructure Alpha 1.0 May 1999 Beta 2.2 December 1999 Release 1.0 June 2000

    Fully integrated platform Naming, discovery, security, manageability

    Several novel features Access control with capabilities Extensible ontology system Path dependent naming Powerful event system

    Abandoned in May 2001

  • 8/10/2019 Secure Patterns

    31/38

    Secure Distributed Systems

    Single Machine View

    Monitor

    Naming Permission

    Router

    Repository

    ServiceUser

    ProtectionDomain

    ServiceProvider

    ProtectionDomain

    Event Distributor

    Host OS

    = Core

  • 8/10/2019 Secure Patterns

    32/38

    Secure Distributed Systems

    Using a Remote Resource

  • 8/10/2019 Secure Patterns

    33/38

    Secure Distributed Systems

    Key Features

    Service sees only local requests Client makes only local requests Core sees only local requests Only proxies know about the wire Brokering comes for free Secure firewall traversal for messages Events are messages

  • 8/10/2019 Secure Patterns

    34/38

    Secure Distributed Systems

    Design Principles

    Separation of responsibility Authorities determined when protection domain attached Access control independent of authorization mechanism Only components that talk on the wire know about the wire

    Separation of control Each machine sets own policy via proxy protection

    domains Different mechanisms for authentication and access

    control Limit damage done by a successful attack

    Limited permissions of proxies Mediator can filter some bad requests

    Strong and rapid revocation

  • 8/10/2019 Secure Patterns

    35/38

    Secure Distributed Systems

    Summary

  • 8/10/2019 Secure Patterns

    36/38

    Secure Distributed Systems

    Fundamental Idea

    Design patterns useful in object oriented coding no reason they wont help in distributed systems

    Propose using three patterns

    separate authorization from access control mediate between client and service use a local proxy for remote users

    Others connection manager your favorite here

  • 8/10/2019 Secure Patterns

    37/38

    Secure Distributed Systems

    A Definition

    A distributed system is one in which a component Inever heard of can make my computer unusable.

    Leslie Lamport

  • 8/10/2019 Secure Patterns

    38/38