Conclusion
This paper introduces EclipseIoT, a hub which aims to address IoT heterogeneity, as well as enhancing the overall security of a smart environment. The main components of EclipseIoT are both a gateway and a policy sever. The gateway is capable of communicating with each device whilst also allowing users to access their devices over a secure communications channel, addressing the heterogeneity of the IoT ecosystem. Simultaneously, the policy server maintains accountability of such access. Further mechanisms such as authentication, AES256 algorithm, sub-network configuration, and canary functions also enhance the overall security. In order to evaluate the security of the proposed hub, it was implemented and further incorporated within a home-based testbed. This included commercially available devices, to which we applied a penetration testing methodology consisting of a selection of various attacks. The results from such attacks demonstrated that EclipseIoT significantly improves the security of the heterogeneous IoT ecosystem, as it was able to mitigate against most of the attacks which affect conventional IoT networks. However, EclipseIoT faces its limitations. Firstly, it relies on third-party providers, such as PubNub, to support some actions within the framework. If such third-parties halted their services, the actions on our framework would not be able to perform. Another limitation is the fact that the communication channels between the gateway and the user and the gateway and the policy server, are based on TLS across PubNub. The security of the system was enhanced by implementing the AES256 algorithm in addition to the TLS protocol. However, as these communications are passed over PubNub, they must be decrypted to be able to forward messages to the correct destination. When using AES alongside TLS, PubNub is not able to perform this action. Lastly, although APIs provide an accessible and user-friendly interface to access, add, and control the smart devices, they are often subjected to having limits for the number of requests that they can receive.