签名验证

为了防止Android客户端被反编译修改,可以开启签名验证功能。开启之后服务器端校验android客户端的签名,当签名不匹配时就拒绝服务。

1. 依赖版本

使用2022.11.21以后的IM服务和android客户端协议栈。

2. 签名获取

在Android的ChatManager.java文件中存在函数getSignature()此方法会获取当前应用的签名。可以调用一下这个函数打印出来签名,然后交给后端来配置。注意debug开发时和上线时的签名会不同,需要找出每个签名。

3. 服务端配置修改

在IM服务配置文件中找到如下,打开下面两个配置,要把所有的签名配置到下面的签名列表中。

##客户端(目前只有android)的应用签名(一个应用最取第一个签名),如果有多个签名(多个客户端),用英文逗号分开。获取签名方法请参考文档。
#connect.client_signature_list eNkezQ1g9OsnhfLSFUY1vzKDzhs=,xykezQ1g9OsnhfLSFUY1vzKDzhs=

##是否拒绝空签名的android客户端, 默认为true。当有旧的客户端需要兼容时改成false,当所有都是新客户端时,改成true。
#connect.reject_empty_signature true

修改完配置之后重启才生效。

4. 客户端修改

Android客户端的ChatManager.java文件中存在checkSignature()方法。请在调用connect之前调用此方法,这样就会连接是带上签名。注意这个方法必须是2022.11.21之后的IM服务版本才支持,如果之前版本的IM服务会无法连接。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2023-08-24 15:37:16

results matching ""

    No results matching ""