TCP Socket服务器安全那些事?
Posted 51reboot运维开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP Socket服务器安全那些事?相关的知识,希望对你有一定的参考价值。
首先,这是个很大的命题,之前在360负责过几个对外的服务的研发,也算是有点小经验,我试着答一下:
在Internet环境下,安全问题我主要分为如下几类:
信息传输过程中被黑客窃取
服务器自身的安全
服务端数据的安全
首先,如果能用https,就尽量用https,能用nginx等常见服务器,就用常见服务器,主要能避免以下问题:
自己实现的协议&Server端可能会有各种Bug,被缓冲区溢出攻击等
SSL加密体系在防监听方面已经足够成熟,值得信赖
所幸,私有协议服务的攻击需要黑客分析协议,这就给一般的小服务增加了一层保护。但如果是在大公司做事,树大招风,就必须至少做到理论上没有安全漏洞。神马,xor混淆一下,C/S端写死一个对称密钥这种掩耳盗铃的事情就不要做了,不然会死的很难看。
如果需要自己实现Server端,实现一套合格的SSL还是很考验功底的:
首先要弄明白SSL加密体系密钥交换的原理
对各种对称、非对称加密算法要有深刻的理解
用非对称加密算法怎么实现一套密钥交换体系
如何处理ca证书,在自签名情况下怎么避免中间人攻击
工程实现过程中,要考虑:
各种可能的缓冲区溢出攻击
SYN flood攻击,慢连接攻击
DDoS防起来有难度,但至少能防御DoS攻击
业务逻辑层面,要考虑:
每个接口都要做好用户&权限验证
接口会不会被人乱用,重放攻击
攻击方会不会找到一个比较消耗服务端资源的接口,用很小的代价耗尽服务端资源
用户的用户名密码会不会被通过接口破解,参见:2014 celebrity photo hack
你的服务会不会被黑客利用去攻击别的服务,特别是会根据用户输入抓取什么资源的服务
古老的SQL注入
无耻的仿冒服务,DNS欺诈
涉及html的,还要考虑跨站……
即使你做到了天衣无缝,还要考虑队友有时会掉链子:
glibc、openssl这些基础的库也会爆出漏洞,参见:Heartbleed
同一台主机上的其它服务被攻陷
没有踩过很多坑,哪里知道很多事。写完之后整个人都不好了
Reboot关于:
以上是关于TCP Socket服务器安全那些事?的主要内容,如果未能解决你的问题,请参考以下文章