借助WebRTC数据通道监控私人住宅(一)

提到WebRTC大多数人会想到视频通信。而家庭监视通常与视频流相关联。这就是为什么我听到一个家庭安全项目不是将WebRTC用于视频流,而是DataChannel时很惊讶的原因。WebRTC的DataChannel可能不能实现视频通话,但是如您所见,它可以很方便地设置端到端的信息传输。

IvelinIvanov是RedHat、Mobicents和Telestax等各种项目和组织的长期开源贡献者。最近他试着通过一个新的开源项目——Ambianic解决一些家庭物联网隐私问题。这个项目包含许多有趣的东西,比如RaspberryPi的计算机视觉(这是我最喜欢的主题之一)。但是这篇文章主要是关于他谈论如何在他的项目构架中使用WebRTC和DataChannel。

如今家庭监视系统很流行,它易于安装和使用。用户通过一个手机应用程序就能查看谁在自己家门口。如果你要云备份,缴纳注册费即可。看起来很完美,但需要担心的是疏于管控的隐私泄露问题。在本文中,我将深入探讨利用WebRTC去阻止数据敏感的数据存储在用户不直接控制的设备上,以及其技术设计和实施方案。

说明

首先我要说明的是:我并不是想实现Ring的另一种变体。的确,当我开始该项目时我考虑过这样做,但是我并不会将其系统安装在自己家里,所以我否决了这个方案。

因为我不喜欢那些我外出时不请自来拜访我家的人。如果是我的朋友,他们会知道怎么找到我。另外,我也没有兴趣观看大多时候平静无波的监控录像。

我真正想要的是一个能告知我关乎我切身利益的事情的系统。也就是说这个系统要观察那些有意义的动作。比如我想知道:

  • 今天UPS给我发短信说我的快递送到了,那么快递放到我家了还是又放在我邻居那里了?
  • 有人偷走我门前的快递包裹了吗?
  • 当我晚上睡着了,我的孩子是不是假扮僵尸玩呢?

由于此数据属于我个人所有,因此未经我的明确许可,不得共享、泄露或出售。

高层架构

我最终得出一个三层体系结构:

  1. 在与我的相机相同的局域网上运行;
  2. 不断观察相机的视频流;
  3. 偶尔推断出值得我关注的有趣事件;
  4. 存储观测值并将事件发送到我的手机;
  • 用户界面(即手机浏览器)
  1. 不论何地都可访问Progressive Web App (PWA) 
  2. 能够与边界设备安全直接通信;
  3. 可作为本地应用程序安装在电脑和手机上;
  4. 将我最喜欢的事件时间轴存储在本地数据库中;
  • 通讯层(基于WebRTC的REST)
  1. UI应用程序与Edge设备之间的安全端对端数据通道;
  2. 启用UI应用程序以将Edge设备设为常规REST服务;
  3. 启用Edge设备使其通过纯REST接口提供数据;
  4. 隐私保护信令——即无法识别具有实际地址或个人的端。

信令流

系统的信令部分主要负责两部分:

  • 用户的UI应用程序与Edge设备之间的初始发现和配对;
  • UI和Edge之间的代理条款,用于连续的端对端(p2p)会话;

发现设备和配对

初始发现部分依靠类似于蓝牙的物理接近度和信任。但是网络浏览器尚不支持蓝牙、zeroconf、mDNS或任何其他标准的p2p配对协议。我的下一个设想是通过sharedrop.io成功实现的。他们将其称为“AppleAirDrop的HTML5克隆体”。

这个设想基于两个重要假设:

  • 用户仅允许在其本地家庭网络上使用受信任的设备。
  • 连接在同一局域网上的设备共享相同的公用IP以进行Internet通信。共享的公共IP不必是永久的。它仅在初始配对期间使用几秒钟。

两种假设都很实用。但是一些用户的家庭网络安全性仍然很差。对于用户的满不在意我们也没有办法。

文章地址:https://webrtchacks.com/private-home-surveillance-with-the-webrtc-datachannel/

原文作者:chad hart

 

 

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营