Most consumer IoT devices are vertically integrated with cloud-side infrastructure. Such architectures present enormous risk to user data, exacerbated by vendor heterogeneity and the inability for users to audit cloud-side activity. A more promising approach would be to leverage local hardware, providing users control over how their data is processed and why it can be shared with other devices or the Internet. Karl is a new smart-home framework designed to host IoT computation and storage on user-chosen devices. A key insight in Karl's modular programming model is that a familiar interface (inspired by serverless) can capture most modern cloud-side IoT components under a single framework, which executes modules agnostic of hardware location. While local hosting eliminates many flows, modularity enables all remaining flows to be justified using fine-grained primitives. We introduce two IoT security mechanisms: pipeline permissions that permit device data to be shared given some justification and exit policies that block flows unless specific conditions are met. We evaluate Karl through two end-to-end applications.
翻译:大多数消费类物联网设备与云端基础设施垂直集成。此类架构对用户数据构成巨大风险,供应商异构性以及用户无法审计云端活动加剧了这一风险。更可行的方案是借助本地硬件,让用户自主控制数据处理方式及与其他设备或互联网共享数据的权限。卡尔系统(Karl)是一种新型智能家居框架,旨在将物联网计算与存储托管于用户指定设备上。卡尔模块化编程模型的关键洞见在于:借鉴无服务器计算理念的通用接口,能够将大多数现代云端物联网组件纳入统一框架,且该框架支持模块独立于硬件位置的执行。尽管本地托管消除了大量数据流,但模块化设计使得所有剩余数据流均可通过细粒度原理解释其合理性。我们引入两种物联网安全机制:管道权限(允许设备数据在合理前提下共享)与退出策略(在未满足特定条件时阻断数据流)。我们通过两个端到端应用对卡尔系统进行了评估。