210 likes | 224 Views
Gain a comprehensive understanding of web security standards and the unique security requirements of the IoT landscape. Compare and contrast security concerns across these two worlds and explore Layer 7 protocols, with a focus on Layer 6 and 5. Dive into SASL, MQTT, and AMQP, examining their benefits, security considerations, brokers, and workarounds.
E N D
Eat-out, put-together or cook • Web standards for IoTSecurity • BhuvanaRamkumar • Staff Software Engineer, Application Security Team, Predix, GE Digital
Intent • Take a look at web security standards • Take a look at the IoT land • Compare and contrast security concerns across these two worlds • Reinvent ? • Reengineer ? • Recombine ?
What to expect from the session ? • Gain an overall perspective of security protocols • Explore unique security requirements of IoT landscape • Focus on Layer 7 protocols with details of Layer 6 and 5 • i.e : Application, Presentation and Session layers
Focus • SASL : • MQTT : • AMQP : • Brief overview • Security considerations • Brokers • Workarounds • Benefits
What is SASL ? • Authentication mechanism/framework • Independent of Application protocols • Inbuilt support for integrity (message digest) • Inbuilt support for confidentiality (SCRAM, hashing, encryption) • Support for proxy authorization • Users can assume authentication credentials • Can work complementary to TLS
Benefits of SASL • Abstracts away security implementation details • Inbuilt support for network encryption • No hard requirement for choice of protocols • Simple handshake mechanism between parties • Support for a range of options during connection establishment • Negotiated challenge response based protection. • OAUTHBEARER support : SASL profile combined with OAuth token • Supported by AMQP • Not supported by MQTT
MQTT : Brief Overview Source : MQTT, A practical protocol for the Internet of Things, Bryan Boyd, IBM
AMQP : Brief Overview Source : AMQP and Rabbit MQ, Intro and Messaging patterns, Javier Arias Losada, Telefonica
Authentication , Authorization and Access Control : AMQP • Authentication in AMQP : • OAuth plugins • SASL certificates • Authorization in AMQP : • vhost level • Broker level support, for example, RabbitMQ supports : • Per operation (read, write, configure) • per resource (queue, exchange) • rabbitmqctlset_permissions -p /myvhosttonyg "^tonyg-.*" ".*" ".*” • ACL’s cached on per-connection or per-channel basis. • Reconnect request needed for effecting operational changes. • Operations on resources restricted by ACL’s
Authentication , Authorization and Access Control : MQTT • Authentication in MQTT : • Username and Password fields in CONNECT message • Client Identifier • X.509 certificate • Authorization in MQTT : • Broker level support, for example, HiveMQ supports : • Topic permissions • Allowed topic • Allowed operation • Allowed QOS tunability • OpenSource Plugin support : OnAuth Callback
BasicAuth (MQTT) vs OAuth (AMQP) • BasicAuth : • Username and password, standard HTTP headers, Base64 encoding • No encryption, no hashing • Single point of failure if server gets compromised, replay attacks • No cached session or cookies, no token management • Password or key rotation helps • Scheduling, configuring and management of key rotation • Rotation over a deployment of 1K-1M devices
BasicAuthvs OAuth : Continued • OAuth : • Private key never leaves the host • No single point of failure • Attack surface is significantly minimized • Access token as bearer in Auth header • Token management with TTL, grant types • Configurable scopes
Connected Cars & OAuth Dynamic scope configuration Run time access control Privilege management Source : UIEvolution & Wikipedia
OAuth : Limitations • OAuth is a big step in IoT • Lack of anonymity : single sign-on across devices • Limited spread of OAuth client support • Grant bearer token : abstract concept • Web, enterprise and IoT worlds. • OAuth itself is not sufficient (for fine grained ACL’s ?) • OAuth + ACS ? • https://github.com/predix/acs
MQTT vs AMQP • MQTT is still very popular • Low foot print : simple pub-sub model • Low power draw • Light on network bandwidth • Ideal for embedded devices and hence for IoT • 3 QoS levels : • Fire and forget • At least once • Exactly once
Fine-grained access control • Application level support for finer control • Desired degree of configurability ? • Role based access control • Policy based access control • Operational requirements based access control • Inheritance of access privileges • Proxy and sharing of access control • Example : Predix ACS • https://github.com/predix/acs
Security considerations : • Pluggable backend for authorization and authentication • Cost of a redirect loop to such backend systems • Elliptical crypto support • PKI support • Interoperability of plugins • Order of evaluation • Ease of deployment and management • Ease of run time changes to settings
Web vs IoT Security • Web security standard : • HTTPS + OAuth + OpenIDConnect + Application (ACS) • IoT security : • SASL + OAuth + ?