Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-4-13:2011 定义了 UPnP 远程访问服务(Remote Access Service),这是一种将 UPnP 设备控制和媒体流传输扩展到本地网络之外的标准化解决方案。虽然 UPnP 最初是为同一局域网段上的设备设计的,但远程访问服务使得从远程位置安全访问 UPnP 设备成为可能——例如在办公室控制家庭自动化系统、旅行时从家庭服务器流传输媒体、或从度假屋监控安全摄像头。该服务在远程控制点和家庭网络之间建立安全隧道,使标准 UPnP 消息能够像远程设备在本地连接一样在互联网上传输。
该服务的服务类型为 urn:schemas-upnp-org:service:RemoteAccess:1。它定义了两个主要组件:运行在网关或专用 UPnP 互联网网关设备上的远程访问服务器,以及运行在远程控制点上的远程访问客户端。RAS 管理传入连接、认证远程客户端并在远程客户端和本地设备之间代理 UPnP 流量。RAC 发现 RAS、进行认证并建立安全通信通道。
典型的远程访问使用场景包括:一位用户出差时想要查看家中的安全摄像头实时画面并调节室内温度。他打开手机上的 UPnP 控制应用,应用通过云中继服务发现家庭网关上的 RAS 服务并建立 TLS 隧道。认证通过后,RAS 代理将 SSDP 发现请求转发到本地网络,返回摄像头和恒温器的 UPnP 描述。用户的控制应用像在本地一样调用操作,RAS 透明地将这些操作转发到实际设备,并将响应和事件通知返回给远程客户端。
远程访问服务架构涉及四个逻辑实体。远程访问客户端从家庭网络外部发起连接。远程访问服务器监听传入连接并认证客户端。远程访问发现代理帮助 RAC 发现 RAS 的公网地址(使用 STUN 或中继服务器进行 NAT 穿越)。配置管理实体管理访问策略——哪些远程用户可以访问哪些设备以及具有什么权限。
| 组件 | 功能 | 协议 |
|---|---|---|
| 远程访问客户端(RAC) | 发起远程连接,代理本地控制点操作 | UPnP + TLS |
| 远程访问服务器(RAS) | 认证客户端,代理 UPnP 流量到本地设备 | UPnP + TLS |
| 发现代理(RADA) | NAT 穿越,公网地址解析 | STUN / 中继 |
| 配置管理器 | 访问策略定义和执行 | UPnP 控制 |
连接建立遵循多步序列。首先,RAC 发现 RAS——这可以通过云中继服务、动态 DNS 或来自本地网络的推送通知实现。其次,RAC 使用初始配对过程中建立的凭据进行认证(通常使用设备保护服务的 SetupSession)。第三,在 RAC 和 RAS 之间建立 TLS 隧道,确保后续所有 UPnP 消息的机密性和完整性。最后,RAC 可以通过 RAS 代理发现和控制本地 UPnP 设备——RAS 将 SSDP 发现响应和 SOAP 控制请求转发到本地设备,并将事件通知中继回 RAC。
安全对于远程访问至关重要,因为将 UPnP 设备暴露到互联网会显著增加攻击面。标准要求所有远程通信通道使用 TLS 1.2 或更高版本。证书管理是一个实际挑战——自签名证书在消费级部署中很常见,但无法防止中间人攻击。推荐的方法是在网关上使用本地 CA,在初始设置期间向配对设备颁发证书,并在 RAC 应用中实施证书固定。
访问策略执行是另一个关键设计要素。RAS 应维护一个可配置的访问控制列表,将远程客户端映射到特定的本地设备和服务。例如,远程用户可能被允许查看安全摄像头和控制灯光,但不能开锁或修改 HVAC 计划。与设备保护服务的集成实现了嵌套授权:远程客户端向 RAS 认证,然后 RAS 将会话映射到针对每个本地设备的特定设备保护角色。
对于带宽管理,RAS 应实施流量整形,防止远程访问占用家庭网络的上行带宽。优先处理控制消息(小载荷、延迟敏感),其次是媒体流(大载荷、延迟容忍)。对 SOAP/SSDP 消息实现连接池和压缩以减少开销。对于媒体流传输,RAS 可以与转码引擎集成,根据可用远程带宽调整流比特率——这对于蜂窝网络上的移动客户端尤其重要,因为其带宽和延迟变化很大。