# SecurityDemo **Repository Path**: senjoeson/SecurityDemo ## Basic Information - **Project Name**: SecurityDemo - **Description**: No description available - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-10-31 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 研究SDK安全性 ## 如何集成SDK * 如图所示 ![常规SDK集成流程图](image/sdk_icon.png) ___ ## 采用三种方式 >1. 采用代理模式对主要逻辑进行封装,对外暴露接口方法,主要逻辑进行混淆方式 >2. 请求接口时,采用https方式进行SSL双向验证 >3. 采用NDK方式进行AES/DES加密解密功能(加密算法参照网上所写) >4. 给每个客户生成一个独立的secret,sdk用secret对参数加密取哈希, 服务端同样的操作来验证 ## 保障SDK安全的目的 ### * 1. 防止接口被滥用 * 接口采用https进行双向验证 * 参数传递时,统一进行加解密使用 * 加密逻辑采用so文件封装,不暴露真实实现方法 * 可采用token方式,后台对token的时效性限制,避免重复被调用 ### * 2. 防止未进行认证也能使用 * 计算MD5进行对比 * 签名信息与后台进行对比,签名信息包括(包名,APPID,SCRECT KEY,SHA1等) ### * 3. 防止核心业务泄露(例如:算法) * 核心逻辑优先采用远程服务器进行部署. * 非要在客户端使用时,务必采用so库文件