使用JSPatch安全问题之自定义RSA 密钥

客户端和 JSPatch 后台默认有一对 RSA 密钥,默认会用这对密钥进行加解密验证。

若对安全要求较高,可以按以下步骤自定义 RSA 密钥:

1.在终端生成RSA密钥

在 Mac 终端上执行 openssl,再执行以下三句命令,生成 PKCS8 格式的 RSA 公私钥,执行过程中提示输入密码,密码为空(直接回车)就行。

openssl >

genrsa -out rsa_private_key.pem 1024

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

这样在执行的目录下就有了 rsa_private_key.pem 和 rsa_public_key.pem 这两个文件。这里生成了长度为 1024 的私钥,长度是可选的。只要为1024的整数倍即可。

2.SDK 设置 RSA Public Key

客户端接入 SDK 后调用 +setupRSAPublicKey: 设置自定义的 RSA Public Key,注意应该在 +sync 之前调用,因为 +sync 可能会下载到脚本,这时已经要用 RSA key 去验证了。Public Key 以字符串的方式传入,注意换行处要手动加换行符\n。

3.使用 Private Key 下发脚本

下发脚本时在发布脚本界面勾选 使用自定义RSA Key 选项,会出现文件上传框,选择本地的 rsa_private_key.pem 文件,与脚本一同上传,JSPatch 平台会使用这个上传的 Private Key 对脚本 MD5 值进行加密,再下发给客户端。若客户端经过上述第二步设置了对应的 Public Key,就会用设置的 Public Key 对脚本进行验证,验证通过后运行脚本,否则不会运行。

这里上传的 rsa_private_key.pem 只是一次性使用,不会保存在服务端,所以只有通过用户自己保存的 rsa_private_key.pem 文件才可以针对 APP 下发脚本,即使 JSPatch 平台或者七牛云被黑,第三方也无法对你的 APP 下发恶意脚本(可以下发,但验证不过,不会执行),保证安全性。rsa_private_key.pem 请妥善保管,避免泄露。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1, JSPatch热更新 众所周知,AppStore 上发布需要有个一非常恶心的审核期,而且很可能被拒绝掉,发布...
    嘹亮的浩哥阅读 1,111评论 2 3
  • 背景介绍 IOS平台提交审核的周期太长,快则45天,慢则半个月或者20天,如果碰到圣诞节等假日,可能一个月都有可能...
    恒源宾馆阅读 2,302评论 10 27
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,280评论 19 139
  • 姓名 郭文秀 省份:山东省 【日管理打卡第001天】 【知~学习】 1.一对一沟通,美食沙龙 知行合一 由我做...
    郭文秀阅读 294评论 0 0
  • 有人问:在当下年轻人中,许多人追求时尚男性发型,有的青年人甚至剪出了雕刻型的怪异发型。作为穆斯林青年,是否也可剪这...
    文筆書生阅读 3,697评论 0 0