felixzhu
V2EX  ›  Android

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

  •  
  •   felixzhu · Dec 4, 2014 · 14697 views
    This topic created in 4197 days ago, the information mentioned may be changed or developed.
    如果客户端与服务端要通过HTTP协议通信,为了加密,之前使用的方法是HTTPS和对称加密。但是HTTPS可以Fiddler之类的工具抓包查看数据,对称加密的话安卓的apk包反编译一下就可以看到secret_key。不知道大家一般都怎么处理需要加密的请求呢?
    12 replies    2014-12-08 13:03:14 +08:00
    felixzhu
        1
    felixzhu  
    OP
       Dec 4, 2014
    自抢沙发求回复
    lsylsy2
        2
    lsylsy2  
       Dec 4, 2014
    不要把重要的东西放在客户端做。
    或者说,你可以把客户端当成浏览器去做
    realityone
        3
    realityone  
       Dec 4, 2014
    上次有人问过吧。。
    没什么好办法。。
    我见过的是重要部分用jni..再加上千牛的方案好像是动态取key。。
    banbanchs
        4
    banbanchs  
       Dec 4, 2014
    Fiddler能看HTTPS那是因为导入了证书,正常是看不了的
    zts1993
        5
    zts1993  
       Dec 4, 2014
    写native的
    jason52
        6
    jason52  
       Dec 4, 2014
    推荐看云风的游戏人生那本书,里面反破解游戏外挂的知识学一点,基本都够了。

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


    哎,我觉得我没讲清楚。。。
    ryd994
        7
    ryd994  
       Dec 5, 2014   ❤️ 1
    如果你按规范(验证CA……)实现HTTPS的话,是无法中间人窃听的
    felixzhu
        8
    felixzhu  
    OP
       Dec 8, 2014
    感谢大家的回复,后来还是决定用最简单的HTTPS自颁发证书(等有空再考虑去买一个证书),然后在客户端校验证书,保证不会被中间人窃听。
    felixzhu
        9
    felixzhu  
    OP
       Dec 8, 2014
    liuxun349
        10
    liuxun349  
       Dec 8, 2014
    怎么保证用户每次请求状态?用session么?
    felixzhu
        11
    felixzhu  
    OP
       Dec 8, 2014
    @liuxun349 嗯,都是用户系统一起的
    jianen
        12
    jianen  
       Dec 8, 2014
    哈哈,难怪如此熟悉的话题~~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3745 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
    ♥ Do have faith in what you're doing.