论文标题
朝着IoT设备的安全API客户端生成器
Towards a secure API client generator for IoT devices
论文作者
论文摘要
鉴于物联网平台的成功,更多的开发商和公司希望将该技术包括在其投资组合中。但是,在单板微控制器的情况下,对网络操作的支持并不理想,并且不同的IoT平台允许通过不同的库和系统调用访问网络子模块,从而导致学习曲线更陡峭。 API客户端的代码生成器可以提高生产率,但是它们倾向于生成通用的目的代码,另一方面,IoT设备的网络原始图是平台特定的,尤其是当安全层诸如运输层安全性之类的安全机制是图片的一部分时。本文介绍了\ texttt {cpp-tiny-client},这是一个为OpenAPI Generator Project开发的API客户端发生器,该插件可以根据用户指定的IoT平台来量身定制生成的代码。我们的工作允许为IoT设备为API客户端生成正确的代码,因此可以使开发人员具有更高的生产率和更快的市场应用程序时间。通过仅将主流技术结合在一起,\ texttt {cpp-tiny-client}提供了柔和的学习曲线。此外,实验表明,生成的代码具有合理的足迹,至少与用于验证工作的IoT设备有关。与此工作相关的代码可通过OpenAPI Generator Project〜\ Cite {OpenApigenerator}获得。该技术报告是〜\ cite {acmsac22}的扩展名,它整合了在ACM SAC 2022会议上提供的信息。
Given the success of IoT platforms, more developers and companies want to include the technology in their portfolio. However, in the case of single board microcontrollers, the support for networking operations is not ideal, and different IoT platforms allow access to the networking submodule via different libraries and system calls, leading to a steeper learning curve. Code generators for API clients can enhance productivity, but they tend to generate universal purpose code, and on the other hand the networking primitives of IoT devices are platform specific, especially when security mechanisms such as Transport Layer Security are part of the picture. This paper presents \texttt{cpp-tiny-client}, an API client generator developed as a plugin for the OpenAPI Generator project, which can tailor the generated code based on the IoT platform specified by the user. Our work allows to generate correct code for API clients for IoT devices, and thus can empower a developer with more productivity and a faster time-to-market for its own applications. By combining together mainstream technologies only, \texttt{cpp-tiny-client} offers a gentle learning curve. Moreover, experiments show that the generated code has a reasonable footprint, at least with respect to the IoT devices that were used in the validation of the work. The code related to this work is available through the OpenAPI Generator project~\cite{OpenAPIGenerator}. This technical report is an extension of~\cite{acmsac22}, and it integrates the information presented at the ACM SAC 2022 conference.