V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
felixzhu
V2EX  ›  Android

安卓客户端如何与服务端安全地通信?

  •  
  •   felixzhu · 2014-12-04 20:18:02 +08:00 · 10334 次点击
    这是一个创建于 3651 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果客户端与服务端要通过HTTP协议通信,为了加密,之前使用的方法是HTTPS和对称加密。但是HTTPS可以Fiddler之类的工具抓包查看数据,对称加密的话安卓的apk包反编译一下就可以看到secret_key。不知道大家一般都怎么处理需要加密的请求呢?
    12 条回复    2014-12-08 13:03:14 +08:00
    felixzhu
        1
    felixzhu  
    OP
       2014-12-04 20:18:36 +08:00
    自抢沙发求回复
    lsylsy2
        2
    lsylsy2  
       2014-12-04 20:21:30 +08:00
    不要把重要的东西放在客户端做。
    或者说,你可以把客户端当成浏览器去做
    realityone
        3
    realityone  
       2014-12-04 22:46:04 +08:00
    上次有人问过吧。。
    没什么好办法。。
    我见过的是重要部分用jni..再加上千牛的方案好像是动态取key。。
    banbanchs
        4
    banbanchs  
       2014-12-04 23:00:09 +08:00
    Fiddler能看HTTPS那是因为导入了证书,正常是看不了的
    zts1993
        5
    zts1993  
       2014-12-04 23:00:33 +08:00
    写native的
    jason52
        6
    jason52  
       2014-12-04 23:08:05 +08:00
    推荐看云风的游戏人生那本书,里面反破解游戏外挂的知识学一点,基本都够了。

    印象最深的是,对于客户端到底有没有用外挂这个 1 bit的信息,你直接放在数据流里面传会被人看出,所以他很机智的改为,正常的每隔100个包发一段信息,不正常的改为101个。


    哎,我觉得我没讲清楚。。。
    ryd994
        7
    ryd994  
       2014-12-05 00:43:41 +08:00   ❤️ 1
    如果你按规范(验证CA……)实现HTTPS的话,是无法中间人窃听的
    felixzhu
        8
    felixzhu  
    OP
       2014-12-08 09:19:57 +08:00
    感谢大家的回复,后来还是决定用最简单的HTTPS自颁发证书(等有空再考虑去买一个证书),然后在客户端校验证书,保证不会被中间人窃听。
    felixzhu
        9
    felixzhu  
    OP
       2014-12-08 09:20:25 +08:00
    liuxun349
        10
    liuxun349  
       2014-12-08 09:49:03 +08:00
    怎么保证用户每次请求状态?用session么?
    felixzhu
        11
    felixzhu  
    OP
       2014-12-08 11:22:20 +08:00
    @liuxun349 嗯,都是用户系统一起的
    jianen
        12
    jianen  
       2014-12-08 13:03:14 +08:00
    哈哈,难怪如此熟悉的话题~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:51 · PVG 22:51 · LAX 06:51 · JFK 09:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.