Skip to content
Deian Stefan edited this page May 17, 2016 · 5 revisions

Brief summary of COWL

See Editor draft

Framework:

  • Labels
  • Privileges
  • Labeled contexts/data (objects, requests, responses, etc.)

Goals:

Changes to spec since last meeting

  • Labels are now composed of principals, which are now one of:

    1. "Traditional origins" (e.g., https://mozilla.org:443)
    2. App-specific principals (e.g., app:user or app:maps)
    3. Unique/fresh principals (unique:<UUID>)
  • Header label values similar to JS API

    E.g.,

    Sec-COWL: ctx-confidentiality 'none';
              ctx-integrity 'none';
              ctx-privilege https://university.edu OR app:user1
    
  • Top-level pages cannot get tainted: can only read labeled data that the context subsumes

  • Integration with WebSockets

    • Don't allow creating websockets that the context can't write to
    • Close sockets once context gets tainted if can no longer write to (or read from) end-server
  • More flexible APIs

To discuss F2F (see GitHub issues)

Status of FF implementation

Complete:

TODO

  • Workers
  • Sec-COWL HTTP request header
  • Send XHR labeled-json support
  • WebSocket killing
  • ServiceWorkers