How to quickly and securely connect IoT applications to Google Cloud

Enterprise-level cloud services such as Google Cloud provide IoT developers with a variety of functional services, ranging from scalable virtual machine services to turnkey artificial intelligence (AI) applications. The basic requirement of these services is to use specific security methods to establish and maintain a secure connection between IoT devices and the cloud. But for developers, implementing appropriate security mechanisms may cause delays, thereby increasing the complexity of design projects with tight deadlines.

Enterprise-level cloud services such as Google Cloud provide IoT developers with a variety of functional services, ranging from scalable virtual machine services to turnkey artificial intelligence (AI) applications. The basic requirement of these services is to use specific security methods to establish and maintain a secure connection between IoT devices and the cloud. But for developers, implementing appropriate security mechanisms may cause delays, thereby increasing the complexity of design projects with tight deadlines.

Microchip Technology’s PIC-IoT WG development board is built with a dedicated security IC to provide a turnkey solution for Google Cloud connectivity. The kit uses a dedicated security IC to provide a comprehensive platform for accelerating the development of IoT designs that can be securely connected to Google Cloud services. This article introduces the key requirements for secure connections and illustrates how developers can use PIC-IoT WG to meet these requirements in a typical IoT design.

The complexity of security

The ability to ensure a secure connection between IoT devices and remote host servers is the foundation for comprehensively protecting IoT applications and related network enterprise resources. For the functions and performance that these servers and other enterprise-level systems can provide, IoT devices built with limited-resource microcontrollers and minimal memory are completely unable to provide. If it is hoped that a simple IoT device can transmit sensor data or manipulate actuators in real time, and due to the nature of the IoT device itself, even if it only implements the most basic security algorithm, it may not be able to meet the processing requirements.

The basic principle that the security method relies on is that the cost of breaking through the security barrier should be higher than the value of the assets protected by the barrier. For algorithm-based security methods, this means that decrypting encrypted information or breaking authentication protocols should be computationally prohibitive. At the very least, breaking algorithm-based security should require a certain level of computing resources and time, and the cost exceeds the value or timeliness of the protected data or communication channel. Therefore, encryption algorithms try to hide valuable data under a series of complex and computationally intensive processing steps, and keys must be used to unlock them. For example, the widely used Advanced Encryption Standard (AES) algorithm processes data in multiple rounds, and each round includes several steps, that is, the key is first generated, and then byte replacement, shift, and matrix calculation are performed (Figure 1 ).

How to quickly and securely connect IoT applications to Google Cloud

Encryption algorithm uses a series of schematic diagrams of complex operations

Figure 1: In order to make decryption difficult or even impossible, the encryption algorithm specifically uses a series of complex operations, such as this step of the AES algorithm, which combines the data with the bytes generated by the private key. (Photo: Wikimedia Commons)

For symmetric encryption algorithms such as AES, the recipient of encrypted information needs to use the same key to decrypt the data. On the contrary, an asymmetric algorithm uses a pair of keys, a private key and a public key, which eliminates the risk that may be caused by the use of a shared key, but at the cost of making the calculation more complicated. When using this algorithm, the sender and receiver keep the private key held by each secret while exchanging public keys. Therefore, one party can use the other party’s public key to encrypt information, but the information can only be decrypted using the other party’s private key.

In order to provide further protection, advanced algorithms will be built on top of asymmetric public key encryption algorithms. Only during a specific information exchange session will the short-term shared private key used to encrypt data be securely exchanged. Considering the criticality of these key exchanges, more advanced algorithms such as the Elliptic Curve Diffie-Hellman Algorithm (ECDH) can hide the key deeply under complex elliptic curve calculations. Authentication protocols such as Transport Layer Security (TLS) use digital certificates to combine mechanisms such as Diffie-Hellman key exchange with formal verification methods; digital certificates can be embedded in the public key from a certification authority (CA, Verifiable digital signature that can prove the authenticity of the certificate.

As mentioned in the brief description, the security method depends on the encryption algorithms and protocols of each layer, and ultimately still depends on the private key. Although these levels can withstand continuous attacks by hackers, if the private key is discovered, the entire security structure will fall apart in an instant.

Therefore, hardware-based secure key storage is a basic requirement for the security of IoT devices. In addition, the computational complexity of these algorithms and protocols determines the demand for dedicated encryption engines, which must be able to share complex calculations for microcontrollers with limited resources.

Hardware-based security

Dedicated secure element hardware devices, such as Microchip Technology’s ATECC608A CryptoAuthentication IC, have the characteristics required to protect keys and increase the execution speed of encryption algorithms. In addition to these features, ATECC608A also provides on-chip EEPROM, which can safely store up to 16 keys, certificates and other data, as well as other necessary functions, including a random number generator that meets the NIST SP 800-90A/B/C standard.

ATECC608A is not only a secure storage device, it can also increase the execution speed of a variety of algorithms, including AES for symmetric encryption and ECDH for asymmetric encryption. In addition, the device supports higher-level services, including secure boot (see “Using encryption chips to add secure boot to IoT device design”).

In addition to the direct performance advantages obtained by sharing the execution tasks of these algorithms, ATECC608A also has an encryption engine, secure storage and other functions, which will fundamentally improve security to another level: keeping keys and untrusted entities isolate. These entities include microcontrollers that do not pay special attention to safety, software running on the microcontroller, and individuals who use the software. The device can also generate a private key, which provides further security for the deployment of manufacturing or distribution facilities.

Compared with traditional software-based security methods, the result is a reduction in the number of threat vectors. This in turn supports the principle of defense in depth, which is the core of an effective security strategy.

The fully integrated mode of ATECC608A simplifies the hardware interface requirements. The device can operate as another I2C peripheral, and can even share the microcontroller’s I2C bus with other devices, such as digital sensors such as Microchip Technology’s MCP9808 (Figure 2).

How to quickly and securely connect IoT applications to Google Cloud

Schematic diagram of Microchip Technology’s ATECC608A CryptoAuthentication IC

Figure 2: Since Microchip Technology’s ATECC608A CryptoAuthentication IC (left) completes the security processing entirely on-chip, it can provide a simple I2C hardware interface for use with other I2C devices, such as Microchip Technology’s MCP9808 I2C digital temperature sensor (right). (Photo: Microchip Technology)

However, in terms of software, the rich functions of ATECC608A will complicate the interface. Microchip Technology’s CryptoAuthLib library abstracts the interface as a set of intuitive function calls, which can be used in the CryptoAuthLib application programming interface (API). This library is bundled with related drivers and middleware in Microchip Technology’s MPLAB X Integrated Development Environment (IDE). Although the CryptoAuthLib API and driver can provide the basic elements for custom designs using ATECC608A, developers still face other challenges in terms of achieving the complete security chain required to securely connect to Google Cloud. And Microchip Technology’s PIC-IoT WG development board can also eliminate this obstacle.

Develop end-to-end IoT applications

The PIC-IoT board is based on ATECC608A and Microchip Technology’s low-cost PIC24FJ128GA705 16-bit microcontroller. This wireless IoT design includes Microchip Technology’s ATWINC1510 Wi-Fi module, Vishay semiconductor‘s TEMT6000X01 ambient light sensor and MCP9808 I2C temperature sensor. In addition, developers can easily extend the hardware base platform by adding hundreds of sensors and actuators provided by MikroElektronika’s Click board. For software development, Microchip Technology provides MPLAB X IDE and related MPLAB Code Configurator (MCC) rapid prototyping tools.

The circuit board and related software can provide a turnkey platform for basic end-to-end IoT application evaluation, and the operation of such applications is based on the secure connection between IoT sensor devices and Google Cloud services. The kit uses a unique method to achieve mutual authentication, even for resource-constrained IoT devices. Using this method, IoT devices can use light-weight TLS services to verify the connection on the Google side, and use JavaScript Object Notation (JSON) Web Token (JWT) to prove their identity to the Google server (please refer to the “How to Securely Connect IoT Devices to the Cloud” Simple solution”). In addition to device drivers, board support packages, and middleware services, Microchip Technology also demonstrates this approach through the MPLAB development kit as part of a complete sample IoT application for PIC-IoT boards.

Through the sample application, developers can not only gain experience in using cloud applications, but also experience in IoT-specific services provided by major cloud service providers and connecting IoT devices to the cloud. For example, IoT devices can access Google Cloud resources through Google Cloud IoT Core, which provides a series of services required for device connection and related metadata management (Figure 3).

How to quickly and securely connect IoT applications to Google Cloud

Schematic diagram of Google Cloud providing dedicated service Google Cloud IoT Core

Figure 3: Like other enterprise cloud providers, Google Cloud also provides a dedicated service, Google Cloud IoT Core, designed to meet the unique requirements related to combining IoT devices with cloud resources.

The Links:   LP150E07-A3 SKD160-12