Recentemente, o número de coisas inteligentes tem aumentado constantemente, como câmeras, vários sensores, lâmpadas inteligentes, interruptores e muito mais. Essas coisas têm acesso constante à Internet e trocam ativamente dados para análise com aplicativos. Na verdade, existem dados mais estrategicamente importantes, como leituras de sensores sobre a saúde do paciente. Surge uma questão muito lógica de como proteger dados desse tipo, que são enviados em tempo real (sem a discrição do usuário) para dispositivos de terceiros. O fato é que é muito difícil projetar e construir um sistema IoT (Internet das coisas) único e cem por cento seguro, devido ao fato de que os dispositivos têm sistemas operacionais, objetivos e escalas diferentes - alguns funcionam dentro de sua sala, e alguns, por exemplo , deve abranger o sistema de vigilância por vídeo da área da cidade.
Neste artigo, veremos vários mecanismos de autenticação - por nome de usuário e senha, por token, usando OTP (senha de uso único) e, finalmente, certificados. Por exemplo, no nível doméstico, isso permite proteger medidores de eletricidade contra acesso não autorizado e proteger dados contra substituição.
O melhor lugar para começar é algo muito fundamental para uma plataforma de IoT. A plataforma IoT é uma ferramenta que une "coisas" e a "Internet" e, de fato, é a base para a construção de novas soluções em IoT. O mercado de plataformas está crescendo muito rapidamente e não faz sentido considerá-los todos e, além disso, não é o objetivo deste artigo. Como isso não quebra a generalidade, como exemplo, considere uma plataforma da IBM (International Business Machines).
Para entender quando os mecanismos de autenticação devem funcionar, vamos examinar a estrutura de um aplicativo IoT padrão com base na plataforma IBM Watson IoT e na plataforma de nuvem IBM Bluemix.

Não entraremos em detalhes sobre a estrutura, mas resumindo: os dispositivos publicam dados do sensor no IBM Watson IoT Platform, que se comunica com o aplicativo IoT (no Bluemix) usando o Message Queuing Telemetry Transport Protocol (MQTT). Os dispositivos então recebem instruções de aplicativos para executar funções de controle.
, , ( ) . - , , , .
, - 1. - , , , IoT - . .
, ( ), , CONNECT. , .
CONNACK, Return Code, . SUBSCRIBE .
MQTT SUBACK .
, .

CONNECT. password. , .
(OTP)
. , IOT-, OTP-request. , , . , . OTP- , .
. , . MQTT TCP/IP - TLS(Transport Layer Sequrity), TLS, .
, TLS . , , , . - . , .
? Client Hello, TLS, Clent Random - , . Server Hello, TLS, , Server Random( ). , , , . - , . , . Server Key Exchange, ( , , ). Server Hello Done, .
- Client Key Exchange, ( , , ). RSA , , pre-master secret( , ). , pre-master secret Client Key Exchange. , pre-master secret. (pre-master secret), , Client Random Server Random. Change Ciper Spec Finished( ), .
! IOT. ! Server Hello Done . , , . , , , , , CONNECT .
, , - , .
IoT. - - , . IoT, , , .
1. http://blog.catchpoint.com/2017/05/30/protocol-for-internet-of-things/
2. https://developer.ibm.com/articles/iot-trs-secure-iot-solutions1/
3. https://iot-analytics.com/5-things-know-about-iot-platform/