Leoly003
Leoly003
采纳率0%
2015-09-18 15:02 阅读 2.6k

APP接口安全问题,求大神指点

APP与后台接口间的数据传输加密使用3DES加密,但是3DES的密钥需要保存在APP中,这样很容易被获取,一旦密钥被获取,数据加密将不复存在。
所以我想使用RSA非对称加密方式传输3DES的密钥,用户登录时从服务器获取3DES的密钥,这个密钥是在服务器端经过RSA私钥加密的,APP获取后再用公钥解密,最终得到3DES密钥。
但是我有个问题,RSA的公钥是保存在APP中的,如果能够得到公钥,是不是也可以解密服务器经过RSA私钥传过来的密文了??那RSA的安全性何在??但是如果RSA公钥不保存在APP中,又能放在哪里呢?
求大神解答。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • devmiao devmiao 2015-09-18 15:24

    用ssl加密就可以了

    点赞 评论 复制链接分享
  • oyljerry oyljerry 2015-09-19 06:33

    你这个流程其实跟ssl协议有点类似了,它就是这样处理master key
    不管对称非对称,你手里的密钥都要保证私密,不然就没办法保证安全。

    点赞 评论 复制链接分享
  • voefwill 一滴水 2015-09-19 07:09

    首先你需要理解两个东西:
    1.非对称加密,需要两个密钥,一个是公钥(所有人都可以得到),一个是私钥(打死都不能给别人)。
    2. 非对称加密有连个特性:公钥加密一段文字后,只能由私钥才能解密,公钥是无法解密的。 私钥加密一段文字,只能通过公钥解密。

    举个例子:
    1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
    2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
    3、乙方再用自己保存的私钥对加密后的信息进行解密。但是公钥却无法解密此加密信息。

    现在言归正传,通过你所说的情形,3DES的密钥是服务器要传给你的文件,服务器在传给你之前会通过你的(app端)的公钥来加密。
    加密之后,公钥是无法解密的。所以别人获取到公钥,也没有任何用处。只能用你的(app端)的私钥来解密。(你说:APP获取后再用公钥解密
    ,你理解错了,你的公钥是解密不了的)。
    而私钥,只有你一个人有。除非你是个败家的娘们,把自己的私钥给别人了。

    点赞 评论 复制链接分享

相关推荐