• 王棕生
    2019-09-10
    TLS 能识别客户端模拟器仿冒用户真实访问的问题吗?如果不能有什么其他更好的办法?
    答: TLS 是传输层的加密协议,是用来保证消息传输过程中不被截获、篡改和伪造的,但是无法识别仿冒的真实用户。
             客户端模拟器如果像真实用户一样来访问服务端,其实是没有必要去识别的,因为此时模拟器一般是为了帮助真实用户做一些事情,没有恶意行为;如果存在恶意行为,进行识别的办法是通过机器学习的方式进行识别,例如:客户端模拟器会频繁发送消息,针对这一特征,可以对线上访问流量进行甄别。


    展开

    作者回复: 是的,模拟器识别确实可以通过机器学习等方式来识别异常行为。对于严格要求进行人机识别的场景,可以使用手机验证码、高难度的验证码识别、或者类似银行U盾的usb客户端证书认证来解决。

    
     5
  • leslie
    2019-09-09
    消息安全性问题我记得大规模爆发的经典案例应当是当年的QQ尾巴吧?QQ使用近20年,手机端这块可能因为工作相关特性基本不太接触,不过我个人认为其实其一定程度上还是和PC类类似吧。毕竟手机就是一台Mimi的computer.对于老师说的我还是整体谈一下个人的见解吧;
        其实近15年爆发的安全问题无非出自几方面:
         一类是:客户端;主要表现形式1)弱密码 如简单设置数字就OK,结果被人破解了 2)非安全网络环境下上网 如蹭网、网吧上网时中毒 3)链接非安全,QQ尾巴就是经典案例,此三种是最普遍的;
         一类是服务器端: 1)连接数不限:其实这是个问题;造成QPS过高且不能确定是否是本人登录;故而像QQ或者某些在线教育的基本上都有严格的限制 2)网络安全:这个应当算是个老问题,举个例子吧:例如很多人家里东西被偷无非还是自己没有把门锁好、或者用了个最普通的门或者锁;不然为何为了安全现在会用防盗门 3)系统安全:各种补丁和问题爆发时你不注意不去强化,造成出问题。4)实时监控:网络异常、数据包异常时其实就说明有问题了 这就像现在商店商城都用监控一样。
          一个是应用程序:最经典的案例就是SQL注入,其实追其本源无非就是几个因素吧;1)省事完成了再说,没想到结果就被人利用了,其实老师所说的加密我印象里数据库端国内真正开始做是那次事件爆发之后再有的 2)数据传输时的安全性:举个个人觉得比较好的方式吧,消息中间件kafka这块我认为做的就还算不错,3)敏感过滤:其实不只是敏感词、甚至敏感链接吧。
           其实这些年尤其是2000后网络开始普及后:各种问题层出不穷,这也是为何监管越来越严格;DNS之类的其实真正挖下去肯定是有问题的,我们只能尽力避免一些常规问题,做好防患未然;这就像谷歌的 SRE有句很经典的话“没有问题是有问题的特殊形态”。网络这块深聊下去老师的课程就改成网络安全了 。
         谢谢老师的辛勤付出:期待老师的下节课的分享。
    展开

    作者回复: 👍

     1
     5
  • 东东🎈
    2019-09-10
    老师,问个im问题,服务端采用读扩散,比如A用户在群里面撤回了一条消息,B用户离线上线怎么收到这条已经撤回的消息,还有个问题群消息是异步mq入库成功后再推送吗,也就是推送的代码要放到mq里面,插入数据库成功后再推送吗?谢谢

    作者回复: 1. 撤回这条信令也是写入到离线buffer里的,上线时接收方收到原消息和撤回信令,前者会被后者覆盖。
    2. 一般是从mq拿到消息进行入库,入库成功才会下推。

     1
     4
  • Geek_62a1d1
    2019-09-17
    老师,问个问题,您上面说的保证传输链路安全(中断、截获、篡改、伪造)是如何去发现这些问题呢?

    作者回复: 这个我不是专业哈,一般可以通过端口扫描、数据抓取分析等方法吧,大点的公司会有专门的网络安全部门来定期检查外网暴露的端口和传输的内容。

    
     1
  • 🐾
    2019-09-10
    老师节日快乐

    作者回复: 谢谢,刚看到哈~

    
     1
  • L
    2019-11-28
    你好,对于账号密码存储那块有个问题,如果每个账号密码拥有一个单独的盐(随机的?)那如何验证登录呢?

    作者回复: 每个uid登录验证时先获取到各自独立的salt,然后和登录提交的密码进行哈希,将结果和存储的密码密文进行一致性校验,这里salt和存储的密码密文一般都会分开存储。

    
    
  • 墨子
    2019-11-18
    大佬,问一个问题,wns与dns区别

    作者回复: 您这里提到的wns具体是哪个产品?我看腾讯和万网都有叫wns的网络组件。

     1
    
  • 怪物老爷
    2019-11-02
    讲的真好!
    
    
  • 龙
    2019-10-31
    老师,对消息内容(主要考虑文本),进行加解密的话,综合考虑性能,一般用什么技术来加解密比较好呢?

    作者回复: 常用的对称加密就可以吧,AES-128 AES-256这些加上随机数。

    
    
  • wuhaka
    2019-10-30
    不仅TLS,任何加密措施都不能解决模拟器伪造请求,这个是个无解的问题,本质上客户端安全攻防的问题,解决办法的实质是windows,android,ios等常用平台客户端如何防止反编译破解,常用字符串常量级加密、汇编花指令、反调试、动态加载吐出二进制文件等手段,道高一尺魔高一丈的问题;服务端机器学习识别为辅,核心是客户端反破解问题
    
    
  • null
    2019-10-03
    老师,如果需要在服务端存储消息内容,是加密后存储,下推离线消息时,解密之后再推送给用户?
    不知道微博消息内容,是使用对称还是非对称加密?

    作者回复: 消息存储的时候不一定需要加密哈,使用tls来进行消息传输基本就能避免消息被中途截获,篡改的问题。

    
    
  • 胡波 allenhu
    2019-09-14
    老师你好,请问端到端的加密方式,总不可能每一条消息的发送和接收都采用公私钥做加解密吧?是不是也要通过密钥交换算法来协商一个对称密钥?如果这样,因为连接不是直接建立在用户A和用户B之间,他们是如何做密钥交换的?

    作者回复: 可以生成一个临时的对称秘钥,通过公钥加密后发给对方,来解决非对称加密性能差的问题,对于普通文本,也可以直接用公钥来加密。公钥可以都存放在公认的第三方权威服务器上(比如iMessage的端到端加密公钥就上传到苹果的Apple IDS服务器上),用户能从服务器获取到你的公钥,另外还可以通过GPG 使用去中心化的信任模型,来自行通过多种渠道交换公钥。

    
    
  • Leon📷
    2019-09-11
    老师,问一个客户端认证的问题,服务器怎么鉴定跟自己通讯的是授权的app,而不是其他非法app

    作者回复: 这个好像比较困难吧,比如源代码泄露,重新基于原有代码来打包一个新app,这种通过请求很难鉴定出来呀,不确定是不是有基于app包md5进行校验的哈。个人觉得更多的是需要防止机器模拟人的行为来使用app吧。

    
    
  • 刘小兔bunny
    2019-09-09
    本节DNS块的LocalDNS问题和信息安全问题学习起来有些吃力
    
    
  • 钢
    2019-09-09
    tls是保证传输安全,源头有问题,tls无法识别,解决:服务器对客户端进行筛选,短时间对服务器做大量请求,可做限制处理或要求重新登录

    作者回复: 除了限制处理或者重新登录还有其他方式来验证确实是真正的用户在使用还是模拟器在跑吗?

     1
    
  • 一路向北
    2019-09-09
    我有个疑问,关于HttpDNS。原理我懂,在进行DNS解析时,直接向自建服务器或第三方服务器去请求。但是进行域名解析的过程,是浏览器的行为,不是开发者的行为,我们怎么去控制DNS解析向自己的服务器发请求呢?

    作者回复: httpDNS就是让浏览器或者APP直接请求“从自建服务器接口返回的IP而不是域名”。

     4
    
  • 有铭
    2019-09-09
    模拟器不是TLS能识别出来的,本质上模拟器就是外挂,还是脱机挂,要想识别外挂,基本都是靠在客户端内置一些隐藏的检测机制,由服务器激发,因为外挂一般都是“够用就好”,不会在内部实现这些机制,所以对这些被激活的机制没有回应的,就可以判断为模拟器了

    作者回复: 如果是源码级的泄露这些内部机制也能获取到了呀。

    
    
  • 煜
    2019-09-09
    老师,请教一个额外的问题。nio所说的的异步非阻塞是体现在接收请求和处理请求,还是体现在对请求的读写?或者是是指底层调用了epoll?

    作者回复: epoll就是nio的实现呀,nio的异步非阻塞主要是指io过程中,用户进程不需要等待I/O(比如read和write不需要hang住等待),而是直接返回,并通过Reactor模型来实现socket可读写时才唤醒io线程进行读写操作。

    
    
  • 墙角儿的花
    2019-09-09
    不让用端到端加密,支持浏览器的话最合适的是json+wss了吧。
    老师,上篇文章我又留了个问题,辛苦老师再看下帮忙答疑
    多谢

    作者回复: 基本上是这样的:浏览器端 wss + json。

    
    
我们在线,来聊聊吧