我正在开发网站和应用程序(iOS和Android),它们应该通过https进行数据通信。我不希望应用程序客户端拦截这些服务器消息,但我想在应用程序内解密该数据。 所以:在请求之后,加密消息(比如高达400kb的消息)(第一次加密),通过https(ssl加密)发送(第二次加密)。 在接收到解密ssl时,在客户端级解密加扰消息。 (我不想让一些机器人通过https嗅探我的数据库,伪装我的应用程序)。 你怎么认为我应该解决这个问题?
https是可以的,我的意思是,但如果有人发送请求而不是应用程序,那么整个事情就没用了,因为我想保护数据库数据。
有什么建议吗?想法?
由于
答案 0 :(得分:3)
这里所需要的只是带有客户端身份验证的HTTPS / SSL。添加第二层加密实际上不会添加任何安全性。客户端的PKI身份验证确实。
答案 1 :(得分:0)
SSL客户端身份验证会有所帮助,但它需要您的应用程序包含嵌入式私钥,如果有人真的需要您的数据,他们可以分析您的应用并提取该密钥。
这不是你可以完全解决的问题:你的服务器无法可靠地区分真正的客户端应用程序,以及由反向设计真实客户端模仿的人设计的虚假应用程序。 / p>
根据应用程序的不同,您可以将部分工作转移到服务器端。换句话说,不要将原始数据暴露给应用程序,只需公开允许应用程序显示的部分。这样一来,攻击者无法通过欺骗应用程序来获取任何东西,只需使用真实的应用程序就无法获得。
答案 2 :(得分:0)
我实际想出了加密请求而不是响应的想法。 这样,用户就不会欺骗并向db发送请求。 我只是认为再次进行加密可能会因为太少而做得太多。