Java 验证iOS Mdm消息的分离签名(Mdm签名)
我读过,但仍然不知道如何验证来自iOS设备的Mdm消息的Mdm签名 苹果的移动设备管理协议参考文件如下: 如果MDM有效负载中SignMessage字段的值设置为 没错,来自设备的每条消息都会携带额外的 名为Mdm签名的HTTP头。此标头包含BASE64编码的 消息的签名 因此,我将SignMessage字段的值设置为true。然后,该设备带有一个名为Mdm Signature的头文件。我使用了上面链接的文章提供的方法,verifySign(byte[]signedData,byte[]bPlainText)如下所示(我将返回类型修改为boolean。如果验证成功,它将返回true): (上面的变量“request”是传递给HttpServlet类的doPut方法的HttpServletRequest类的实例。) 但是“verified”的值是false 所以我想知道的是我必须传递给verifySign()方法的确切参数是什么 另见以下内容:Java 验证iOS Mdm消息的分离签名(Mdm签名),java,ios,mdm,Java,Ios,Mdm,我读过,但仍然不知道如何验证来自iOS设备的Mdm消息的Mdm签名 苹果的移动设备管理协议参考文件如下: 如果MDM有效负载中SignMessage字段的值设置为 没错,来自设备的每条消息都会携带额外的 名为Mdm签名的HTTP头。此标头包含BASE64编码的 消息的签名 因此,我将SignMessage字段的值设置为true。然后,该设备带有一个名为Mdm Signature的头文件。我使用了上面链接的文章提供的方法,verifySign(byte[]signedData,byte[]bPla
- 客户端在发送给服务器的HTTP PUT消息中包含一个“Mdm签名:”头
- 此签名是base-64编码的.DER格式SMIME签名
- 签名中不包括已签名的内容,而是PUT本身的内容-正在发送的消息
到MDM服务器 - 最后,使用MDM注册时发送到设备的私有标识密钥对其进行签名
boolean verified = verifySign(Base64.decode(request.getHeader("Mdm-Signature")),
IOUtils.toString(request.getInputStream(), "utf-8").getBytes());