| Technologies | Security | Drawbacks |
|---|---|---|
| ZigBee | Three types of security: Control and managing who or what can view or use resources. Encryption Integrity It provides security by assigning a mandatory network key to each device for proper authorization. | Network key assigned to different devices are fixed and cannot be changed later. |
| Bluetooth | It provides encryption of data between sender & receiver. | It has some common threats like blue jacking & bluesnarfing. Blue Jacking: Sending unsolicited message in the form of business card, messages, or pictures. It does not steal any information from recipient device. Bluesnarfing: It is the unauthorized access of information from a wireless device through a Bluetooth connection, often between phones, desktops, laptops, and PDAs. This allows access to calendars, contact lists, emails and text messages, and on some phones, users can copy pictures and private videos. |
| Radio Frequency Identification (RFID) | It provides encryption of data supporting AES & DES symmetric algorithm. | – It does not provide security to read information from tags because tags give information without verifying the authentication of reader. The attacker can make his own reader to collect information. – Even attacker can change the cipher text that leads to data integrity issue. |
| Wireless Sensor Network(WSN) | It provides encryption of data. | There are several attacks in WSN, such as – Denial of Service (DOS) – Distributed DOS (DDOS) |
| Wireless Fidelity (Wi-Fi) | Authentication and Authorization mechanism | – There is no proper encryption mechanism that may cause to change the message by attacker. – Eavesdropping & monitoring data |
Tag Archives: LoRAWAN
IoT Platform – MainFlux
Description
- It is on premise and cloud (or hybrid) based IoT Platform that provides:
- Device management
- Data aggregation and data management
- Connectivity and message routing
- Event management
- User Interface
- Core analytics
- It is developed by considering following three main entities:
- Users : These are real users who can access and manage resources (CRUD).
- Things : These are devices & applications part of the IoT solution.
- Channels : These are communication channels to exchange messages.
- It uses *NATS as a main messaging system.
- It can be run on gateway as well as on cloud at the same time. It provides below services to deploy on gateway for having communication with MainFlux on cloud.
- Agents: It is a service to manage a gateway that is connected to MainFlux on cloud. It allows you to send commands to the gateway and receive responses.
- Export: It is a service that allows sending messages from one MainFlux cloud to another. It also allows sending messages from the gateway to MainFlux cloud.
- MainFlux provides following major functionalities:
- Provisioning: It is a configuration of IoT Platform for creating & setting-up different entities (users, channels & things).
- Messaging: Publishing messages from things to channels using protocols (HTTP/MQTT/CoAP/WebSocket)
- Storage: Supporting multiple databases (CassandraDB/MongoDB/InfluxDB/PostgreSQL) to store messages.
- Security: Establishes secure connections when users or things are communicating with other entities proper certificates are required to set.
- Authentication: Using keys or TLS mutual authentication.
- Authorization: Setting policies to control permissions for users, things and channels. Mainflux uses *Ory Keto server.
- Group based authentication: Allows group based authentication for users & things.
- Bootstrap: Supports self restarting process based on conditions set. Devices can trigger bootstrapping if conditions are matched.
- Tracing: Supports for generating profiling and monitoring applications as well as helps in debugging. Mainflux uses the *Jaeger tracing framework. It also uses Grafana, Prometheus and OpenTracing for instrumentation purposes.
- Twin Services: Supports digital twins functionality.
- Benchmarking: To generate large traffic & measure performance third party tool MZBench is used.
- Container-based deployment using Docker and Kubernetes.
MainFlux architecture contains following services mentioned in table 1.0
| Service | Description |
| users | This service provides APIs to Manages users by allowing following major activities: New Account Registration Obtaining access tokens and verify them |
| things | This service provides APIs to manage resources (things & channels) by allowing following activities: Provision new things Create new channels Connect things and channels |
| http-adapter | This service provides APIs to send messages. |
| mqtt-adapter | This service provides MQTT APIs to send messages. |
| coap-adapter | This service provides CoAP APIs to send messages. |
| opcua-adapter | This service provides OPCUA APIs to exchange data. This sits between Mainflux IoT System & OPC-US server. |
| lora-adapter | This service provides Lora APIs to exchange data. This sits between Mainflux IoT System & OPC-US server. It uses MQTT protocols. |
| mainflux-cli | This service provides APIs for command line interface. Cli makes it easy to manage users, things, channels and messages. |
*NATS : It is an open source messaging system. It provides servers and also has client libraries (multiple languages) for interacting with servers. It is scalable and high in performance. It is also used in cloud based solutions.
*OPCUA(OPC Unified Architecture) is an open standard to exchange data from sensors to cloud applications. It is cross platform.
*Ory Keto is a permission and authorization server.
*Jaeger tracing system is an open-source tracing system for microservices
Is it open source?
Yes
GitHub Link
https://github.com/mainflux/mainflux
Supported Messaging & Security protocols
- HTTP/HTTPS
- MQTT
- WebSocket
- CoAP
- TLS
Supported Networks
- BLE
- Ethernet (eth0)
- LoRaWAN
Supported technologies & tools
- Docker
- Kubernetes
- Swagger
Supported Languages
- Go
- *Protobuf (Protocol Buffers)
*Protobuf : It is a mechanism that allows us to serialize and de-serialize data. It is language & platform neutral so that different programs written in different languages on different platforms can send & receive data without writing additional code. It has its own compiler and specification.
Supported Databases
- CassandraDB
- MongoDB
- InfluxDB
- PostgreSQL
Supported OS
Supports all major OS
Domains where it is used and can be used
Applicable in all domains where IoT solution can be implemented.
IoT Platform – OpenRemote
Description
- OpenRemote IoT platforms enables connecting various network connected assets/entities/things to mobile and Web application.
- OpenRemote platform architecture is split among following 6 major categories of IoT Solutions:
- Frontend
- Services (Manager)
- Agents
- Security
- Edge Gateway
- Console
Below table describes solutions provided by OpenRemote for above mentioned categories:
| IoT Solution Categories | Features/Tools provided by OpenRemote |
| Frontend | Frontend simplifies creation and development of user interfaces that includes: – Web Components & Templates for developing browser based application & administration tool. – Smartphone Apps for both Android & iOS It also has some dedicated/pre-built frontend applications like: – Multi tenancy based monitoring dashboard – Home automation/Smart City based control panel – Mapping all assets on map using asset model. |
| Services (Manager) | Manager provides APIs of services or *headless applications to monitor & administrate the system. It provides following services: – Asset management service – State & Historical Data service – Rules Engine – Event Processing Engine – Messaging Service – Streaming Service It provides APIs for following technologies: – REST based HTTP APIs – Websocket event based APIs – MQTT event or protocol based APIs Rules engines allows to write and understand the rules written using: – Groovy – JavaScript – JSON |
| Agents | It links the external devices or services with OpenRemote system. Agents supports proprietary and open standard protocols. It contains following two major components: – Device Management – Protocols Adapter |
| Security | It provides pre-integrated Keycloak based Identity & access management security that includes: – Authentication (multi tenants authentication), Single sign-on etc and also supports OAuth authentication. – Authorization – Identity Management |
| Edge Gateway | – It is a OpenRemote manager that connects to central OpeRemote manager using Websocket API with proper authentication mechanism. – It also supports Keycloak identity management solution. – Edge Gateway has very limited hardware. |
| Console | It is native mobile applications those are used by OpenRemote Web Component. |
* Headless Application functions without frontend or it exposes APIs.
Is it open source?
Yes
GitHub Link
https://github.com/openremote/openremote
Supported Messaging & Security protocols
- HTTP
- *KNX (Konnex)
- MQTT
- *Simulator
- *SNMP (Simple Network Management Protocol)
- Serial
- TCP
- UDP
- SSL
- TLS
Note:
*KNX is OSI-based network communications protocol that is primarily designed and developed for building & home automation. And it is managed by the KNX Association.
*Simulator: It simulates a connection to an external services so that development can be done without the availability of actual
*SNMP manages & monitors of devices connected in network.
Supported Networks
- Bluetooth Mesh
- Z-Wave
- LoRa etc.
Supported technologies
- Websocket
- Velbus( A home automation system)
- Docker
- NodeJS
- REST
Supported Languages
- Java
- TypeScript
- Groovy
- CSS
- Swift
- Kotlin
Supported Databases
- PostgreSQL with GIS and JSON extension
Supported OS
- Supports all major operating systems
Domains where it is used and can be used
- Energy Management
- Asset Management
- Smart City & Mobility
IoT Platform – Kaa
Description
- It is an IoT Platform which is available in following forms:
- In-premise solution (Anyone can use it for their specialized or customized solution)
- Cloud based solution (Kaa provides Platform as a service solution – PaaS for their customization solution)
- Below are the two major characteristics of Kaa architecture:
- Modular Architecture
- *Microservice Architecture
This type of architecture offers below benefits:
- Scalability
- Extensibility
- This platform offers below features:
| Feature | Description |
| Device management | – Digital twining and records of such devices – Filtering & Grouping of devices – Accessing credentials and metadata of devices |
| Communication | Establishing communication between Device & Gateway to address below requirements: – Authentication & Authorization – Data exchange – Multiplexing |
| Data collection | Collection & Storage of below types of data and automatic remote transmission (telemetry) – Time Series – Device Logs – Alerts |
| Configuration management | Device and overall system configuration data in small & large scale deployment |
| Command invocation | Sending on demand or time based commands remotely. |
| Data analytics | Querying mechanism to analyze & visualize the data. |
| Software updates | Continuous software up-gradation |
| Visualization | Web interfaces for below requirements: – Data Visualization – Device Management – Platform Administration Also provides customizable dashboard |
| *Multi-tenancy | Support for accessing solution by multiple tenants |
| Infrastructure | Managing and monitoring clustering operations |
*Microservice architecture enables split a large solution into separate small multiple services where each service is responsible for specific functionality.
*Multi-tenancy is an architecture where a single instance of software is used by multiple tenants (group of users). Multi-tenancy architecture is different from multi-instances architecture.
Is it open source?
Yes, but cloud solution is subscription based.
GitHub Link
https://github.com/kaaproject/kaa
Supported Messaging & Security protocols
- MQTT
- HTTPS
- TLS
Supported Networks
- Sigfox, LoRa, NB-IoT, …),Near Field (WiFi, BLE, Z-Wave, …) Cellular (2G/3G/4G/…)
- Wired (Ethernet)
Supported technologies
- NodeJS, REST API, WebSockets
- Business tools like SAP, Salesforce, etc
Supported Languages
- Java, Go, and TypeScript (NodeJS),
- Platform users implement their compatible and integrated microservices also in Python, Rust, Scala, etc.
Supported Databases
- Databases like Cassandra, MongoDB, InfluxDB, and others.
Supported OS
- All major OS are supported.
Industries where it is used and can be used
- Automotive
- Agriculture
- Healthcare
- Logistics
- Telecom
- Wearables
- Consumer Electronics
- Renewable Energy etcs.
IOT Connectivity Technologies
What are Radio-technologies (Radio frequency Range) used to transfer data among devices?
- Bluetooth-BLE (Bluetooth Low Energy Protocol) Wearable devices generally use it i.e smartwatches, wireless headphones, smartphones etc.
- RFID(Radio Frequency Identification) Primarily used for product information and location retrieval.
- WiFi Medium range wireless data transfer technology.
- ZigBee Wireless technology having IEEE 802.15.4 *mesh network standard, specially designed for low cost and low power IOT devices for reliable and secure data transfer.
- Thread IPv6 based wireless technology having IEEE 802.15.4-2006 *mesh network standard, specially designed for low power IOT devices for reliable and secure data transfer. It enables access services on the cloud as well.
- LoRAWAN(Low Powered Wide Area network) A wireless technology built on top of LoRa radio modulation technique that can be primarily used for IoT devices. AWS IoT core has support for LoRAWAN.
- Sigfox A long range wireless technology designed for low power, low data and low cost data transmission for IoT devices.
- LTE-CatM1(Long Term Evolution Category M1) It is for IoT devices connected directly with the 4G network.
- NB-IoT (Narrow Band Internet of Things) It is 3GPP low power wide area network standard that is compatible with 2G, 3G and other 3GPP standards that are designed for wide area IoT devices connectivity.
Wireless data transfer technologies can be categorized based on range like WiFi, ZigBee and Thread are for medium range data transfer. LoRAWAN, Sigfox, LTE-CatM1 & NB-IoT are for long range data transfer.
*Mesh Network refers to network topology where multiple nodes are directly connected to each other without any hierarchy to efficiently route data.
Note: Low power consumption devices are mostly used in IoT therefore radio- technologies are used accordingly that supports or provide long battery life.. There is always a trade-off between low power consumption and frequent data transfer.