DevSecOps – How to Ensure Application Security within the DevOps Process
How to ensure product security within the DevOps process? What SAST, DAST, and SCA are? How they can contribute to improving security?
Today we want to continue the topic of IoT for you. Today, we will talk about the more technical aspects of how IoT devices work, the protocol stacks, and the challenges that engineers have to overcome. If you’re curious, we invite you to read on!
Computer networks are built in a layered manner and are presented based on a specific network model, such as OSI. Dividing various responsibilities, such as IP addresses or port numbers, into different layers allows protocols to be developed independently of each other. This, in turn, allows different organizations to focus on different issues at each layer. The two most well-known models are the OSI reference model, which precisely divides various protocols into layers, and the TCP/IP model that operates on today’s Internet, which is a simplification of the OSI model.
Figure 1 – Comparison of OSI and TCP/IP models, source: geeksforgeeks.com
Answering this question requires us to point out that IoT devices operate within networks and must transport data to systems that aggregate them. Additionally, in the previous post, we mentioned the diversity of technologies used to deliver data in the initial stages of communication (e.g., the communication between a sensor and a local data aggregation system). The most significant elements that differentiate standard computer communication with the Internet from IoT device communication are the protocols found in the application layer and the data link layer.
Figure 2: Protocols used in IoT, TCP/IP model, source: fb.com/IoTResearch
We can observe that in addition to the widely known HTTP protocol used, among other things, in web applications, there are also specific protocols such as CoAP, MQTT, XMPP, DDS, and AMQP. In the data link layer, specific protocols are found for different types of communication, such as Ethernet or WiFi, which can be used when the end device has access to the Internet via a cable or wireless connection. If this is not the case, cellular access or even WiMax remains an option.
Figure 3: Diagram depicting IoT device communication with a cellular network, source: EMnify
Before diving into specific protocols, it’s worth discussing the general model of server-client communication and what a server actually is. A server can be any device operating on a network that offers certain services. In the context of IoT, a server typically refers to the same as a broker or a device with software that aggregates data from clients (IoT devices with sensors). The following communication models are distinguished in IoT:
Figure 4: Request-response communication model, source: InterviewBit
Figure 5: Publish-Subscribe communication model, source: geeksforgeeks.com
Figure 6: Push-pull communication model, source: geeksforgeeks.com
Figure 7: Exclusive Pair communication model, source: geeksforgeeks.com
As we can see from the examples above, the choice of a specific protocol in the application layer guides us toward a particular communication model. For instance, selecting MQTT leads to the use of the publish-subscribe model, HTTP corresponds to the client-server model, and WebSockets are associated with the Exclusive Pair model.
Due to the reduction in the cost of hardware components and technological advancements, including the development of artificial intelligence (we recommend our previous articles on this topic), sensors will soon be integrated into every aspect of the industry. If a company does not embrace modern solutions in its field, it may become less competitive in the market. Some of the key markets currently employing IoT solutions include:
Today, we’ve provided you with basic technical information about IoT systems, communication models, and real-world applications across various market sectors. We’ll continue the IoT topic next week, so if you’re interested, stay tuned!
DevSecOps – How to Ensure Application Security within the DevOps Process
How to ensure product security within the DevOps process? What SAST, DAST, and SCA are? How they can contribute to improving security?
AdministrationSecurity
User Identity and Access Management – What’s the Deal with IDP?
What user identity is? Why managing access is essential for businesses? How an IDP (Identity Provider) works? You will find the answer to these questions in the article.
Security
Hey, hey... Programmer, this is another article for you! The second part of the article on design patterns. Get to know Adapter and Memento.
Programming