如何保护IoT设备与Azure IoT-Hub之间的通信安全?

时间:2019-05-16 16:15:27

标签: security azure-iot-hub opc opc-ua

我的设置如下:

在我的本地环境中,我有一台OPC服务器,该服务器从本地OPC设备读取数据并将其发送到我的本地小服务器,然后再将数据发送到Azure上的IoT-Hub(在那里我将数据保存到cosmosDB)

与Azure looks like this上的IoT-Hub通信的本地小服务器:

var connectionString = '[IoT Hub device connection string]';
// use factory function from AMQP-specific package
var clientFromConnectionString = require('azure-iot-device-amqp').clientFromConnectionString;

// AMQP-specific factory function returns Client object from core package
var client = clientFromConnectionString(connectionString);

// use Message object from core package
var Message = require('azure-iot-device').Message;

var connectCallback = function (err) {
  if (err) {
    console.error('Could not connect: ' + err);
  } else {
    console.log('Client connected');
    var msg = new Message('some data from my device');
    client.sendEvent(msg, function (err) {
      if (err) {
        console.log(err.toString());
      } else {
        console.log('Message sent');
      };
    });
  };
};


client.open(connectCallback);

如何确保此通信安全?

1 个答案:

答案 0 :(得分:0)

IoT中心要求所有连接都必须通过TLS(请参见IoT Hub MQTT Support)进行保护,并且仅使用安全版本1.2(请参见IoT Hub TLS deprecating 1.0 and 1.1)。

这将确保您的运输安全(默认情况下)。

在生产环境中,我将使用X509证书来保护身份和完整性。 为此,请查看IoT Hub Security x509 Get Started,以了解如何在IoT中心获取和注册证书。看看这个Sample 其中显示了如何在node.js代码中使用X509证书连接到IoT中心。