Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-5-1定义了DeviceProtection服务,这是UPnP框架的关键安全组件,为UPnP设备和控制点提供标准化的身份验证和授权机制。在DeviceProtection之前,UPnP网络在没有内置安全性的情况下运行——网络上的任何设备或应用程序都可以在无需身份验证的情况下发现、描述和控制任何UPnP设备。DeviceProtection通过引入基于角色的访问控制模型和用于敏感操作的加密通信通道来解决这一基本漏洞。
DeviceProtection服务定义了三个不同的安全级别:Administrator(管理员)、User(用户)和Guest(访客)。每个角色根据设备上配置的访问控制列表访问特定的设备服务和操作。该服务使用公钥密码学进行身份验证握手,并支持多种身份验证方法,包括预共享密钥、基于证书的身份验证和供应商特定扩展。通信完整性通过SOAP消息上的HMAC签名得到保护,防止篡改和重放攻击。
DeviceProtection身份验证协议使用基于RSA公钥密码学的挑战-响应机制。该过程从控制点向设备请求会话公钥开始。设备使用其公钥证书和随机数挑战进行响应。控制点使用设备的公钥加密随机数,并连同自己的公钥证书一起返回。验证成功后,双方使用ECDH密钥协商推导出共享会话密钥,为后续的SOAP操作启用加密通信。
| 步骤 | 发起方 | 消息 | 目的 |
|---|---|---|---|
| 1 | 控制点 | GetPublicKeys() | 请求设备公钥 |
| 2 | 设备 | 公钥+随机数 | 提供证书和挑战 |
| 3 | 控制点 | 加密随机数+身份 | 证明拥有私钥 |
| 4 | 设备 | 会话密钥推导 | 建立加密通道 |
| 5 | 双方 | HMAC-SHA256签名SOAP | 安全操作调用 |
将DeviceProtection集成到UPnP产品中需要仔细设计访问控制数据库。标准定义了基于XML的ACL格式,其中每个条目指定角色、允许的操作列表和可选的时间限制。ACL应存储在防篡改的非易失性存储器中,并应包括在恢复出厂设置操作期间恢复的出厂默认ACL。工程团队还应在身份验证尝试上实现速率限制,以防止对随机数验证步骤的暴力攻击。
一个关键的实现细节是处理未验证与会话验证的状态。DeviceProtection允许设备在”混合模式”下运行,其中一些操作无需身份验证即可使用,而其他操作需要特定角色。服务定义包括一个”ACL”动作,控制点可以调用该动作来查询设备上每个操作所需的最低安全级别,允许控制点预先请求适当的身份验证,而不是在操作被拒绝后失败。