客户端App到服务器端数据,加密?

2012-12-26 23:08:41 +08:00
 INT21H
我有一个App需要调用服务器的API,那么在调用HTTP请求的时候,需要POST数据过去,在不走HTTPS情况下,这些FORMDATA很容易被截获。。

所以,需要加密?用什么加密算法比较好?最好在ObjC里和Python都有比较成熟的库。
6568 次点击
所在节点    问与答
17 条回复
cabbala
2012-12-26 23:10:23 +08:00
走HTTPS就好了,服务端和App都是零成本,加几行代码的事情
ewangke
2012-12-27 00:30:15 +08:00
@cabbala https也照样会被中间人截取的
cabbala
2012-12-27 01:55:25 +08:00
@ewangke
phuslu
2012-12-27 01:57:22 +08:00
@ewangke 验证一下证书即可。一般来说具体的 httpclient 的库都有这个功能。
ewangke
2012-12-27 16:24:25 +08:00
@cabbala
@phuslu
http://mitmproxy.org/
这种东西有作用是因为服务器端没有验证么?
phuslu
2012-12-27 16:26:23 +08:00
@ewangke 是客户端没有验证.
java/python 的很多 httpclient 的库自带了验证选项的, 使用它既可.
binux
2012-12-27 16:29:17 +08:00
ewangke
2012-12-27 16:35:09 +08:00
@phuslu 即使在设备上手动安装了证书,客户端代码验证依然有效么?
@binux 想说什么
binux
2012-12-27 16:40:35 +08:00
@ewangke This CA is used for on-the-fly generation of dummy certificates for SSL interception. Since your browser won't trust the mitmproxy CA out of the box (and rightly so), you will see an SSL cert warning every time you visit a new SSL domain through mitmproxy.
phuslu
2012-12-27 16:42:07 +08:00
@ewangke 这要看具体 app 使用 httpclient 的方式. 默认的话, 导入证书就能绕过验证.
但是如果 app 很注重安全, 就会自带一个 cert.crl , 只认可这个列表里面的 Root CA 颁发的证书.
ewangke
2012-12-27 16:48:17 +08:00
@binux 证书可以手动安装啊
@phuslu cert.crl是啥,iOS里没听说过
cabbala
2012-12-27 18:15:40 +08:00
@ewangke 自己安装一个恶意证书监听自己? 你还真能想出来。。。

攻击者要是有能给你的设备添加证书的权力,那你用毛加密手段都无效。。。
ewangke
2012-12-27 18:28:47 +08:00
@cabbala
监听后修改HTTP请求的数据,iOS Game Center里很多高分都是这么来的,同理可以修改自己多人游戏账号的数据。

最近发现V2EX上很多人,尤其是你,火气很大。
notedit
2012-12-27 18:32:16 +08:00
notedit
2012-12-27 18:36:36 +08:00
基本思路是客户端和服务端各保存一个私钥 客户端用私钥加密 服务端再用私钥解密
hidden
2012-12-27 19:43:58 +08:00
正常情况无需加密直接http,你的app不是那么受欢迎是每人来拿你数据玩的
要做的相对安全点儿就用https,客户端一般是默认要验证的https的
要做得再严密点儿,就用AESCrypt去对称加密,只要客户端代码不被破,那个key不被别人知道就安全。
humingchun615
2014-02-25 10:56:18 +08:00
@notedit 私钥加密 公钥解密

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/55931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX