MQTT-255 Support alternate authenticaion mechanisms

Slides:



Advertisements
Similar presentations
Enabling Secure Internet Access with ISA Server
Advertisements

External User Security Model (EUSM) for SNMPv3 draft-kaushik-snmp-external-usm-00.txt November, 2004.
Gursharan Singh Tatla SLIP and PPP 27-Mar
What is EAP EAP stands for Extensible Authentication Protocol. Offers a basic framework for authentication. Many different authentication protocols can.
Ariel Eizenberg PPP Security Features Ariel Eizenberg
Canonical Producer CP API User Code CP Servlet Files CreateTable, Port, Protocol, Security, SQL Support, Multiple Query Support Security Insert Query Port.
K. Salah 1 Chapter 12 Point-to-Point Access: PPP.
POP3 Post Office Protocol v.3. Intro The Post Office Protocol (POP) is currently the most popular TCP/IP access and retrieval protocol. It implements.
Chapter 18 RADIUS. RADIUS  Remote Authentication Dial-In User Service  Protocol used for communication between NAS and AAA server  Supports authentication,
Point-to-Point Access: PPP. In a network, two devices can be connected by a dedicated link or a shared link. In the first case, the link can be used by.
Gursharan Singh Tatla Transport Layer 16-May
Session Policy Framework using EAP draft-mccann-session-policy-framework-using-eap-00.doc IETF 76 – Hiroshima Stephen McCann, Mike Montemurro.
 It defines the format of the frame to be exchanged between devices.  It defines how two devices can negotiate the establishment of the link and the.
FTP File Transfer Protocol. Introduction transfer file to/from remote host client/server model  client: side that initiates transfer (either to/from.
Prepared by They Yu Shu Lee Ern Yu.  Motivation  Previous Work  Remaining Issues  Improvement.
Protecting Internet Communications: Encryption  Encryption: Process of transforming plain text or data into cipher text that cannot be read by anyone.
POP3
1 SMTP - Simple Mail Transfer Protocol –RFC 821 POP - Post Office Protocol –RFC 1939 Also: –RFC 822 Standard for the Format of ARPA Internet Text.
TFTP: Trivial file transfer protocol
SIP working group IETF#70 Essential corrections Keith Drage.
Adxstudio Portals Training
SMTP - Simple Mail Transfer Protocol RFC 821
Oasis, Hursley, January Andrew Banks MQTT 256 Message Format indication and message metadata in general. MQTT 249 Add expiry capabilities to MQTT.
Authentication has three means of authentication Verifies user has permission to access network 1.Open authentication : Each WLAN client can be.
API Auth By Kyle Bradley. Role Definitions  User (Resource Owner)  The resource owner is the person who is giving access to some portion of their account.
Oasis, Hursley, January Andrew Banks MQTT 256 Message Format indication and message metadata in general. MQTT 249 Add expiry capabilities to MQTT.
1 © 2004, Cisco Systems, Inc. All rights reserved. Wireless LAN (network) security.
Secure Mobile Development with NetIQ Access Manager
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Port Based Network Access Control
Draft-gu-ppsp-tracker-protocol-04 Presenter : Gu Yingjie IETF-81, Quebec, July, 2011.
EAP Applicability IETF-86 Joe Salowey. Open Issues Open Issues with Retransmission and re- authentication Remove text about lack of differentiation in.
Jonathan Rosenberg dynamicsoft
SMTP - Simple Mail Transfer Protocol POP - Post Office Protocol
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Instructor Materials Chapter 2: Point-to-Point Connections
Instructor Materials Chapter 9: Transport Layer
Microsoft Windows NT 4.0 Authentication Protocols
Hypertext Transfer Protocol
Authentication & .htaccess
Information Security Professionals
PANA Issues and Resolutions
Secure Sockets Layer (SSL)
draft-lemonade-imap-submit-01.txt “Forward without Download”
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
TGaq Service Transaction Protocol for ANDSF Discovery Service
Module 4 Remote Login.
PPP – Point to Point Protocol
Networks Problem Set 1 Due Oct 3 Bonus Date Oct 2
Understand the OSI Model Part 2
802.1X and key interactions Tim Moore November 2001
Chapter 2: Point-to-Point Connections
– Chapter 5 (B) – Using IEEE 802.1x
Eat-out, put-together or cook
MQTT JIRA – 324 Consolidate list of optional server capabilities and review how they are signaled to the client Rahul Gupta.
SSL (Secure Socket Layer)
MQTT State transitions
X-Road as a Platform to Exchange MyData
SharePoint Online Authentication Patterns
Proposal for Extensible Security
Message Queuing Telemetry Transport (Internet of Things)
Chinese wall model in the internet Environment
Canonical Producer CP API CP Servlet User Code Files
Web Server Design Week 11 Old Dominion University
Jul 12, /12/10 Project: IEEE P Working Group for Wireless Personal Area Networks (WPANs) Submission Title: Response to PAR and 5C Comments.
Interference Signalling Enhancements
IEEE MEDIA INDEPENDENT HANDOVER DCN: xx-00-sec
Virtual Private Networks (VPN)
NFD Tunnel Authentication
Presentation transcript:

MQTT-255 Support alternate authenticaion mechanisms Ken Borgendale 2016-04-21

Authentication background In MQTT v3.1.1 there are two fields on CONNECT used for authorization: username and password. The username is a string, and the password is binary data. The client is not required to wait for a CONNACK before sending additional packets. MQTT v3.1.1 does not describe how the server does authentication and authorization, only that these fields are available and there are two return codes on CONNACK. In fact, these two fields are being used to implement a number of token based authorization in addition to a simple userid:password authentication. As the password (or credentials stored in the password) are passed in the clear, it is necessary to secure the connection (TLS or ipsec) external to MQTT. TLS is also used to the authenticate the server at the client.

Authentication requirements Reason for additional authentication support Support constrained devices where TLS is not otherwise required Desire for mutual authentication Organizations already have standards of an authentication mechanism Allow revalidation during a connection While the MQTT v3.1.1 authentication mechanism can support many forms of token authentication (such as OAuth) it does not handle mutual authentication, nor the passing of authentication data in localized encryption. It does not provide for re-validation during a sesson. There is no way in MQTT v3.1.1 for a server to say what forms of authentication it accepts. The mechanism used for this in many other protocols is SASL In many cases, servers are content with the TLS:username:password authentication and do not need more. Therefore we have a requirement to not require servers to implement additional forms of security. This is also required by the new charter.

SASL backgroud SASL (Simple Authentication and Security Layer) is defined in RFC 4422 SASL defines an abstraction layer for a set of authentication mechanisms. It does not define the syntax. SASL defines a set of named authentication methods, and a registry for them. The basic SASL has multiple possible flows, but a common flow is: Client sends request authentication Server sends challenge Client sends challenge response Server sends authentication complete Some flows do not require the challenge, and some require multiple challenge exchanges.

Design – all proposals Add an optional value field AuthMethod which contains the name of the authorization mechanism. Add non-normative text to indicate that this should be a SASL auth mechanism. If not specified the client and server implicitly agree on the authentication method (as in v3.1.1). Add an optional value field AuthData which contains the data as required for the auth method. Rename the password field on CONNECT to be an AuthData field to indicate that it is commonly used for data other than passwords. Servers which do not want to use enhanced authentication only need to parse the fields (as in v3.1.1 where MQTT does not require any action for username and password other than to parse them) Either the client and server can terminate the authentication flow at any point by closing the connection, perhaps having first sent a DISCONNECT or CONNACK. Do not require a username even if the AuthData (password) is given The authorization completion results in a CONNACK

MQTT v5 proposal 1 Add the additional AuthMethod and AuthData fields to CONNECT and CONNACK. Add a return code MoreAuthNeeded in CONNACK to indicate an authentication challenge Add a flag in CONNECT to indicate this is a challenge response. This can only be sent after the server has sent a CONNACK with the MoreAuthNeeded return code. This is essentially a new form of the CONNECT with only additional auth related fields. The authentication complete is set back on CONNACK. Can handle any number of challenge and responses Could handle re-validation by allowing a later CONNET with response flag Does not require any new control packet types Flow for challenge / response like SCRAM CLIENT SERVER CONNECT UserName=user AuthMethod=SCRAM AuthData=Nonce ------ ---- CONNACK RC=MoreAuth AuthMethod=SCRAM AuthData=Nonce+Salt CONNECT (response) AuthMethod=SCRAM AuthData=Nonce+Proof --- ---- CONNACK RC=0 AuthMethod=SCRAM AuthData=ServerProof

MQTT-255 proposal 2 Create a new control packet: AUTH The AUTH packet has a type and the optional fields AuthMethod and AuthData The AUTH types are Challenge – sent from server to client to say more authorization information is required. Response – sent from the client to the server as the response to a challenge. It may not be sent unless the server as sent a challenge. Validate – sent from the client to the server to revalidate the credentials. This can be sent after a CONNACK has been received. This is a bit cleaner at the expense of creating a new packet type. Otherwise very similar. After the CONNACK, the validate can be sent to re-validate the connection. Flow for challenge / response like SCRAM CLIENT SERVER CONNECT UserName=user AuthMethod=SCRAM AuthData=Nonce ----- ------ AUTH (challenge) AuthMethod=SCRAM AuthData=Nonce+Salt AUTH(response) AuthMethod=SCRAM AuthData=Nonce+Proof ------- ------ CONNACK RC=0 AuthMethod=SCRAM AuthData=ServerProof