OpenAutonomy Authentication



Similar documents
Dashlane Security Whitepaper

Certificate Authorities and Public Keys. How they work and 10+ ways to hack them.

Cryptosystems. Bob wants to send a message M to Alice. Symmetric ciphers: Bob and Alice both share a secret key, K.

Lesson 10: Attacks to the SSL Protocol

Key Hopping A Security Enhancement Scheme for IEEE WEP Standards

Online signature API. Terms used in this document. The API in brief. Version 0.20,

INTRUSION PREVENTION AND EXPERT SYSTEMS

elearning for Secure Application Development

Cryptography and Network Security

Understanding and Integrating KODAK Picture Authentication Cameras

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2

Symmetric and Public-key Crypto Due April , 11:59PM

Lecture 9 - Message Authentication Codes

Key Management. CSC 490 Special Topics Computer and Network Security. Dr. Xiao Qin. Auburn University

VIDEO intypedia007en LESSON 7: WEB APPLICATION SECURITY - INTRODUCTION TO SQL INJECTION TECHNIQUES. AUTHOR: Chema Alonso

Secure Shell SSH provides support for secure remote login, secure file transfer, and secure TCP/IP and X11 forwarding. It can automatically encrypt,

Network Security. Computer Networking Lecture 08. March 19, HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23

CSE/EE 461 Lecture 23

Hushmail Express Password Encryption in Hushmail. Brian Smith Hush Communications

True Identity solution

Message authentication and. digital signatures

Contents. Identity Assurance (Scott Rea Dartmouth College) IdM Workshop, Brisbane Australia, August 19, 2008

SENSE Security overview 2014

Locking down a Hitachi ID Suite server

WHITE PAPER Usher Mobile Identity Platform

JVA-122. Secure Java Web Development

Absorb Single Sign-On (SSO) V3.0

Implementation and Comparison of Various Digital Signature Algorithms. -Nazia Sarang Boise State University

Introduction to Securing Data in Transit

Secure Authentication and Session. State Management for Web Services

Curran, K. Tutorials. Independent study (including assessment) N/A

Configuring Security Solutions

Salesforce1 Mobile Security Guide

Final exam review, Fall 2005 FSU (CIS-5357) Network Security

Topics in Network Security

You re FREE Guide SSL. (Secure Sockets Layer) webvisions

Introduction...3 Terms in this Document...3 Conditions for Secure Operation...3 Requirements...3 Key Generation Requirements...

SSL A discussion of the Secure Socket Layer

Best Practice Guide (SSL Implementation) for Mobile App Development 最 佳 行 事 指 引. Jointly published by. Publication version 1.

SY system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.

CS5008: Internet Computing

Criteria for web application security check. Version

TECHNICAL AUDITS FOR CERTIFYING EUROPEAN CITIZEN COLLECTION SYSTEMS

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

CSC Network Security. User Authentication Basics. Authentication and Identity. What is identity? Authentication: verify a user s identity

Chapter 10. Cloud Security Mechanisms

Lync SHIELD Product Suite

AS DNB banka. DNB Link specification (B2B functional description)

TOP SECRETS OF CLOUD SECURITY

Secure Network Communications FIPS Non Proprietary Security Policy

Crypho Security Whitepaper

A Server and Browser-Transparent CSRF Defense for Web 2.0 Applications. Slides by Connor Schnaith

ADFS Integration Guidelines

Oracle WebCenter Content

Security (II) ISO : Security Architecture of OSI Reference Model. Outline. Course Outline: Fundamental Topics. EE5723/EE4723 Spring 2012

Lecture 9: Application of Cryptography

Authenticate and authorize API with Apigility. by Enrico Zimuel Software Engineer Apigility and ZF2 Team

Authentication requirement Authentication function MAC Hash function Security of

Application Intrusion Detection

APPLICATION SECURITY AND ITS IMPORTANCE

Peer-to-peer Cooperative Backup System

Ciphermail for Android Quick Start Guide

(n)code Solutions CA A DIVISION OF GUJARAT NARMADA VALLEY FERTILIZERS COMPANY LIMITED P ROCEDURE F OR D OWNLOADING

Content Teaching Academy at James Madison University

Client Server Registration Protocol

Session Service Architecture

White Paper: Multi-Factor Authentication Platform

Outline. Computer Science 418. Digital Signatures: Observations. Digital Signatures: Definition. Definition 1 (Digital signature) Digital Signatures

Service Virtualization: Managing Change in a Service-Oriented Architecture

CHAPTER 4 : CASE STUDY WEB APPLICATION DDOS ATTACK GLOBAL THREAT INTELLIGENCE REPORT 2015 :: COPYRIGHT 2015 NTT INNOVATION INSTITUTE 1 LLC

ELECTRONIC DATA INTERCHANGE (EDI) TRADING PARTNER AGREEMENT THIS ELECTRONIC DATA INTERCHANGE TRADING PARTNER AGREEMENT

CIS 6930 Emerging Topics in Network Security. Topic 2. Network Security Primitives

Demand Attach / Fast-Restart Fileserver

PASSWORD MANAGEMENT. February The Government of the Hong Kong Special Administrative Region

Advanced Authentication

Security IIS Service Lesson 6

Internet Banking Two-Factor Authentication using Smartphones

Victor Shoup Avi Rubin. Abstract

The Concept of Trust in Network Security

Public Cloud Security: Surviving in a Hostile Multitenant Environment

Lecture Notes for Advanced Web Security 2015

Configuring CQ Security

Internet Banking System Web Application Penetration Test Report

preliminary experiment conducted on Amazon EC2 instance further demonstrates the fast performance of the design.

User Management Interfaces for Earth Observation Services Abstract Test Suite

Authentication Application

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

Technical Standards for Information Security Measures for the Central Government Computer Systems

Is your data safe out there? -A white Paper on Online Security

CONTENTS. PCI DSS Compliance Guide

Apache Partial HTTP Request Denial of Service Vulnerability - Zero Day. SSL Certificate - Subject Common Name Does Not Match Server FQDN

CS 758: Cryptography / Network Security

White paper. How to choose a Certificate Authority for safer web security

Wildcard and SAN: Understanding Multi-Use SSL Certificates

Single Sign-On for the Internet: A Security Story. Eugene Tsyrklevich eugene@tsyrklevich.name Vlad Tsyrklevich vlad902@gmail.com

CHAPTER 1 INTRODUCTION

Transcription:

OpenAutonomy Authentication Open Autonomy Inc. January 2014 Abstract: A system of federated components, such as OpenAutonomy, requires a protocol to authenticate messages between servers so that a message's receiver can verify the sender is who they claim to be. This document outlines the approach used for building and rebuilding the sequence of authentication keys used to authenticate successive messages. Introduction: Internet services based on monolithic walled gardens have complete control over every component of the system, within a closed environment. This means that they never need to authenticate the sender of a message, from one component to another, as they are already guaranteed that the sender is within their controlled environment. In that context, an invalid sender would be a software bug as opposed to a deliberate authentication breach. Federated systems, such as OpenAutonomy, cannot rely on a closed environment so they cannot rely on this assumption. OpenAutonomy relies on 3 different mechanisms to implement this functionality: 1. Deterministic key sequence - Both the sender and receiver have agreed upon a private sequence of keys to send with their messages. 2. Synchronous verification - The receiver can call back to the sender to verify they are who they claim to be. 3. Trusted third-party - Sender gets a token from a third-party which can be verified by the receiver, assuming they both trust the same third-party. This document outlines the high-level logic of how and when these mechanisms are applied and discusses some potential weaknesses which may require resolution if they are deemed feasible attack vectors and are not resolvable via HTTPS. Design Goals: The authentication system governing communication between two OpenAutonomy components must have the following properties:

In the general case, it should not incur appreciable overhead in an RPC. This refers to both round-trip time and payload size. It must be robust against intrusion. That is, a third-party should not be able to cause a denial-of-service for the legitimate applications. The user should not be required to do any work to facilitate communication between components. The exception to this is non-web applications which have no other way of being reached. It should not be feasible for a third-party to succeed with a brute force attack. Permitted Limitations: In order to keep the intent of this authentication component clear, the following limitations are stated as a reminder that they are outside the scope of this concern: Exceptional (first or infrequent) messages are permitted to add substantial overhead to their RPC. Non-web applications will require some amount of user interaction for initial authentication. No encryption is explicitly added (the system should be run over HTTPS if this is a concern). There is no signature protection against man-in-the-middle attacks (again, use HTTPS to mitigate this problem - cache and compare target certificates). Mechanism Details: Deterministic key sequence: In this approach, A (sender) and B (receiver) both contain an algorithm which, starting from a given seed value, will generate an infinite sequence of seemingly random values. When A calls an RPC exposed by B, it passes the next value in this sequence as an argument. Since B has the same generator, it can compare this value against what it expected in order to determine if the call is genuine. While this approach is fast and relatively secure, it has the obvious bootstrapping problem of how this private key is communicated between A and B. Another noteworthy limitation is that all communication between these applications is synchronous (the messages must be received in the same order they are sent) and half-duplex (since both sides could try to send "next" at the same time). The specific key sequence applied in OpenAutonomy is generated like so: key_{n+1} := sha1(string_concatenate(key_{n}, private))

The initial key exchange includes key_{0} and private. The key exchange is of the form "version-key_{0}-private", where version is always 0, key_{0} and private are both non-empty lower-case ASCII strings. The sha1 function must return a lower-case hex string of the digest. Synchronous verification: In this approach, A (sender) calls B (receiver), to request an RPC. It passes its URL and a token as arguments to the RPC. B, in order to verify that A is the sender, will call a special verification RPC on A (using the URL), passing the token it received as an argument. A knows which tokens it has produced so it can verify if this is one of these tokens. If so, it returns true and B now knows it is talking to A. While this approach is reasonably secure, it is very slow and can introduce spurious failures due to network failures on the reverse call. Thus, it isn't appropriate in the general case. It also makes an assumption that A is a reachable web application which is an invalid assumption once non-native applications have been added to the system. Trusted third-party: In this approach, A (sender) first calls T (a third-party), to request a trusted token. A then calls B (receiver), passing this token as an argument to the RPC. B calls T in order to ask for whom it created the token, passing the token as an argument. T returns information used to identify A. Thus, B now knows the RPC was sent by A. While this approach is reasonably secure, it is very slow and can introduce spurious failures due to network failures surrounding the calls to T. It also introduces this additional party to the communication. Thus, it isn't appropriate in the general case. It does have some useful properties which are worth noting. It is similar to synchronous verification except it doesn't assume that A can receive calls. Additionally, T can provide richer information regarding A than simply its location. Application-Identity Communication: When an application contacts an identity, it uses a combination of deterministic key sequence and synchronous verification. The vast majority of calls use the key sequence but the initial key exchange is done using the verification approach. The case where it cannot use synchronous verification is when the application is a nonweb application, since it cannot be called back. In that case, the initial key exchange must be done by the user.

Application-Application Communication (same creator): When an application contacts another application with the same creator identity, it uses a combination of deterministic key sequence and trusted third-party. The key sequence is used for all but the first message between them. The initial key exchange (as well as additional sender meta-data such as name and trust level) is done via a thirdparty where the identity acts as their mutually-trusted third party. Note that this works the same way, no matter whether the sender is a web application or non-web. 2 applications with the same creator. Application-Application Communication (differing creator): When an application contacts another application with a different creator identity, it uses a combination of deterministic key sequence and 2 instances of trusted third-party. The key sequence is used for all but the first message between them. The initial key exchange (as well as additional sender meta-data such as name and trust level) is done via a third-party approach which involves both of their creator identities, as they share no mutually-trusted third-party. The sequence is complicated so here are the steps involved: 1. A (sender) contacts X (its creator identity) to request a referral token. 2. A contacts Y (B's creator identity) to request access to its applications, passing the referral token.

3. Before Y returns, it first contacts X to request more information about the application represented by the referral token it was given (that is, A). It then returns the token to contact B. 4. A contacts B (receiver), passing it the token it received from Y. 5. B contacts Y to verify the token and receives information about A, including its creator identity. The communication can now progress using a key sequence derived from this token information. Similarly to the case of the same creator, this works the same way, no matter whether the sender is a web application or non-web. 2 applications with different creators. Conclusion: This paper has provided a high-level overview of the authentication mechanisms used by OpenAutonomy along with the situations where they apply. The explanation demonstrated how these mechanisms support all 3 of the relationship types required by the federated components: identity contact, local applications, and foreign applications. These relationship styles facilitate the complex relationships required to support the various trusted multi-user services required by modern internet-based applications.