Welcome!

Machine Learning Authors: Pat Romanski, Yeshim Deniz, Liz McMillan, Elizabeth White, Zakia Bouachraoui

Related Topics: Machine Learning

Machine Learning : Blog Feed Post

Standardize HMAC, OAuth RESTful Authentication Schemes

Must RESTful Web service developers support a different authentication mechanism for each provider

As the enterprise is increasingly taking notice of WOA (Web Oriented Architecture) these days, the need for security guidelines and standards for RESTful Web services is becoming more pressing. Sure, RESTful Web services are meant to borrow existing security mechanisms from the web and HTTP Basic over SSL, when done right, is a great way to accomplish shared-secret based authentication. Yet, for better or for worse, it is common to find REST API providers defining their own authentication mechanisms.

Take for example the Amazon S3 REST API’s custom HTTP authentication scheme. Using this mechanism, a requester signs the RESTful request using HMAC and a symmetric key associated with its Amazon account – the shared secret. This signature is attached to the request through the standard HTTP Authorization header. This achieves requester authentication as well as integrity without SSL. The S3 REST API describes the name of the scheme (‘AWS’) as well as precise ordering for the contents covered by the signature which includes the HTTP VERB, URI, payload, etc. Another example is the Microsoft Windows Azure REST API, which defines a very similar mechanism. However, Windows Azure defines different authentication scheme names (multiple flavors) and the contents and ordering of the “string to sign” is also different. Amazon’s and Azure’s mechanisms are very similar. Unfortunately, their differences make them incompatible.

Must RESTful Web service developers support a different authentication mechanism for each provider they wish to connect with? Clearly a standardized mechanism would be useful.

Perhaps to this effect you often hear OAuth being promoted as a standard security mechanism for RESTful Web service APIs. OAuth defines standardized HMAC and RSA based signatures that are carried in the standard HTTP Authorization header. Although OAuth focuses on a specific use case involving a resource owner authorizing a third party to access said resource from a provider, so called two-legged OAuth enables authentication between a requester and a resource provider. One of the issues with this pattern is that the signature (HMAC or RSA) does not cover payloads for POSTing or PUTting typical RESTFul content-types such as xml or json. The OAuth specification stipulates that only payloads of content-type application/x-www-form-urlencoded are covered. All other content-types signed through OAuth are effectively subject to integrity attacks.

A draft specification from Google, the OAuth Request Body Hash specification attempts to address this OAuth shortcoming by describing an extension of the OAuth specification that enables any payloads to be covered by OAuth signatures regardless of their content-type. Is this the correct solution though? After all, the reason for OAuth to not cover integrity for these payloads in the first place is that OAuth does not focus on a generic RESTful service authentication use case in the first place.

Instead of extending OAuth to make it useful beyond its intended purpose, why not standardize HMAC authentication schemes as used by such REST API providers as Amazon S3 and Windows Azure? Such a standard specification would needs to describe clearly the scheme name and the contents of the signature.

Read the original blog entry...

More Stories By Francois Lascelles

As Layer 7’s Chief Architect, Francois Lascelles guides the solutions architecture team and aligns product evolution with field trends. Francois joined Layer 7 in the company’s infancy – contributing as the first developer and designing the foundation of Layer 7’s Gateway technology. Now in a field-facing role, Francois helps enterprise architects apply the latest standards and patterns. Francois is a regular blogger and speaker and is also co-author of Service-Oriented Infrastructure: On-Premise and in the Cloud, published by Prentice Hall. Francois holds a Bachelor of Engineering degree from Ecole Polytechnique de Montreal and a black belt in OAuth. Follow Francois on Twitter: @flascelles

CloudEXPO Stories
With more than 30 Kubernetes solutions in the marketplace, it's tempting to think Kubernetes and the vendor ecosystem has solved the problem of operationalizing containers at scale or of automatically managing the elasticity of the underlying infrastructure that these solutions need to be truly scalable. Far from it. There are at least six major pain points that companies experience when they try to deploy and run Kubernetes in their complex environments. In this presentation, the speaker will detail these pain points and explain how cloud can address them.
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-centric compute for the most data-intensive applications. Hyperconverged systems already in place can be revitalized with vendor-agnostic, PCIe-deployed, disaggregated approach to composable, maximizing the value of previous investments.
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mistakes high" is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed how this same philosophy can be applied to highly scaled applications, and can dramatically increase your resilience to failure.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by sharing information within the building and with outside city infrastructure via real time shared cloud capabilities.
As Cybric's Chief Technology Officer, Mike D. Kail is responsible for the strategic vision and technical direction of the platform. Prior to founding Cybric, Mike was Yahoo's CIO and SVP of Infrastructure, where he led the IT and Data Center functions for the company. He has more than 24 years of IT Operations experience with a focus on highly-scalable architectures.