客户端App到服务器端数据,加密? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
INT21H
V2EX    问与答

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

  INT21H 2012 年 12 月 26 日 7421 次点击
这是一个创建于 4854 天前的主题,其中的信息可能已经有所发展或是发生改变。
我有一个App需要调用服务器的API,那么在调用HTTP请求的时候,需要POST数据过去,在不走HTTPS情况下,这些FORMDATA很容易被截获。。

所以,需要加密?用什么加密算法比较好?最好在ObjC里和Python都有比较成熟的库。
17 条回复    1970-01-01 08:00:00 +08:00
cabbala
    1
cabbala  
   2012 年 12 月 26 日   1
走HTTPS就好了,服务端和App都是零成本,加几行代码的事情
ewangke
    2
ewangke  
   2012 年 12 月 27 日
@cabbala https也照样会被中间人截取的
cabbala
    3
cabbala  
   2012 年 12 月 27 日 via Android
@ewangke
phuslu
    4
phuslu  
   2012 年 12 月 27 日
@ewangke 验证一下证书即可。一般来说具体的 httpclient 的库都有这个功能。
ewangke
    5
ewangke  
   2012 年 12 月 27 日
@cabbala
@phuslu
http://mitmproxy.org/
这种东西有作用是因为服务器端没有验证么?
phuslu
    6
phuslu  
   2012 年 12 月 27 日
@ewangke 是客户端没有验证.
java/python 的很多 httpclient 的库自带了验证选项的, 使用它既可.
binux
    7
binux  
   2012 年 12 月 27 日
ewangke
    8
ewangke  
   2012 年 12 月 27 日
@phuslu 即使在设备上手动安装了证书,客户端代码验证依然有效么?
@binux 想说什么
binux
    9
binux  
   2012 年 12 月 27 日
@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
    10
phuslu  
   2012 年 12 月 27 日
@ewangke 这要看具体 app 使用 httpclient 的方式. 默认的话, 导入证书就能绕过验证.
但是如果 app 很注重安全, 就会自带一个 cert.crl , 只认可这个列表里面的 Root CA 颁发的证书.
ewangke
    11
ewangke  
   2012 年 12 月 27 日
@binux 证书可以手动安装啊
@phuslu cert.crl是啥,iOS里没听说过
cabbala
    12
cabbala  
   2012 年 12 月 27 日 via Android
@ewangke 自己安装一个恶意证书监听自己? 你还真能想出来。。。

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

最近发现V2EX上很多人,尤其是你,火气很大。
notedit
    14
notedit  
   2012 年 12 月 27 日
notedit
    15
notedit  
   2012 年 12 月 27 日
基本思路是客户端和服务端各保存一个私钥 客户端用私钥加密 服务端再用私钥解密
hidden
    16
hidden  
   2012 年 12 月 27 日
正常情况无需加密直接http,你的app不是那么受欢迎是每人来拿你数据玩的
要做的相对安全点儿就用https,客户端一般是默认要验证的https的
要做得再严密点儿,就用AESCrypt去对称加密,只要客户端代码不被破,那个key不被别人知道就安全。
humingchun615
    17
humingchun615  
   2014 年 2 月 25 日
@notedit 私钥加密 公钥解密
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2722 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 24ms UTC 15:12 PVG 23:12 LAX 08:12 JFK 11:12
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86