网络安全与HTTPS

一、信息安全三要素

任何完整的信息安全体系,都需要遵循CIA原则,即保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。

  • 保密性:对需要保护的数据(如用户的私人信息等)进行保密操作,无论存储还是传输,都要保证用户数据及相关资源的安全。通常使用加密等手段保证数据的安全。
  • 完整性: 访问的数据要是完整的,没有缺失或被篡改。可以对数据进行签名和校验(比如MD5和数字签名等)。
  • 可用性:服务必须可用。可以使用访问控制、限流等手段保证服务的可用性。

二、常见的网络攻击

网络攻击大体可以分为非破坏性攻击和破坏性攻击。非破坏性攻击一般是为了扰乱系统的运行,使之暂时失去正常对外提供服务的能力,比如DDoS攻击等;破坏性攻击注意会造成两种后果:系统数据受损或信息被窃取,比如CSRF等。

DDoS

DDoS(Distributed Denial of Service,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的攻击之一。其攻击效果:

  • 占满网络带宽
  • 提交大量请求,使服务器超负荷运行,响应缓慢
  • 阻断某一用户访问服务器
  • 阻断某服务与特定系统或个人的通讯

防范思路:
1、 请求拦截,包括:硬件防火墙、HTTP请求限流(如阿里的开源中间件sentinel)等
2、使用CDN
3、带宽扩容
4、实时监控等

SQL注入

SQL注入是由于未将代码与数据进行严格的隔离,导致在读取用户数据的时候,错误地将数据作为代码的一部分执行,从而导致的安全问题。最常见的例子是当对SQL语句进行字符串拼接操作时,直接使用未加转义的用户输入内容作为变量,从而可能出现drop、delete等意想不到的结果。

防范思路:
1、过滤用户输入参数中的特殊字符,从而降低被SQL注入的风险
2、禁止通过字符串拼接的SQL语句,严格使用参数绑定传入的SQL参数
3、合理使用数据库访问框架提供的防范注入机制。比如Mybatis提供的#{}

XSS

跨站脚本攻击(Cross-Site Scripting):为了和CSS区分开,所以简称为XSS。它是指黑客通过技术手段,向正常用户请求的HTML页面中插入恶意脚本,从而可以执行任意脚本,达到信息窃取、破坏等目的。

主要防范思路是对用户输入数据做过滤或转义,且需要前后端开发人员共同配合。比如后端开发可以使用Jsoup、Spring框架的HtmlUtils等框架工具做过滤或转义;前端使用安全的API展示数据,比如innerText而不是innerHTML等。

CSRF

跨站请求伪造(Cross-Site Request Forgery):在用户不知情的情况下,冒充用户发起请求,在当前已登录的Web应用程序中执行恶意操作,如恶意发帖、修改密码、发邮件、甚至利用网银登陆信息进行转账等。

和XSS的区别:XSS是在正常用户的HTML页面中执行黑客提供的恶意代码,问题在于没有对用户数据过滤、转移;而CSRF是黑客直接盗用用户浏览器中的登陆信息,冒充用户去执行黑客的指定操作,问题出在HTTP接口没有防范不受信任的调用。

防范思路:
1、CSRF Token验证:利用浏览器的同源机制,在HTTP接口执行前验证页面或者Cookie中设置的Token
2、人机交互:比如在调用网银转账接口时校验短信验证码

三、HTTPS

HTTP的不足:

  • 通信使用明文,内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,有可能已遭篡改

因此当前网站的主流文本传输协议都使用HTTPS了。HTTPS的全称是HTTP over SSL,即在HTTP传输上增加了SSL协议的加密能力。SSL(Secure Socket Layer)协议工作于传输层与应用层之间,为应用提供数据的加密传输。

要理解HTTPS的传输机制,需要先理解对称加密与非对称加密算法(这里就不作展开)。另一个重要概念是数字证书,是由CA(Certificate Authoriry)颁发的HTTPS证书,用于证明信息传输方的身份,防止传输过程中的公钥和密文被替换。

访问一个HTTPS网站的大致流程如下:


HTTPS请求执行流程

1、浏览器向服务器发送请求,请求中包括浏览器支持的协议,并附带一个随机数(作为客户端公钥)

2、服务器收到请求后,选择某种非对称加密算法,把数字证书签名公钥、身份信息发送给浏览器,同时也附带一个随机数(作为服务端公钥)

3、浏览器收到后:
3.1 首先验证证书的真实性,如果服务端的CA机构存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,则认为服务端是可信的
3.2 生成客户端的公私钥、会话密钥
3.3 使用服务端公钥加密{客户端公钥,客户端会话密钥},并给服务端

4、服务器收到后:
4.1 使用服务端私钥解密{客户端公钥,客户端会话密钥}
4.2 使用之前的随机数生成服务端会话密钥
4.3 使用客户端公钥加密服务端密钥,并发送给客户端

5、后续所有的信息发送都是以对称加密方式进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,790评论 2 89
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,405评论 0 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • “是我没用,才会让你那么苦。”他发来这么一句微信。这一瞬间,我呆了,女孩,该嫁给爱情还是将就? ...
    长得漂亮不如活得漂亮阅读 532评论 2 0
  • 今天虽然进行朗读比赛比较匆忙,但也应该提前准备好,要不然,有点手忙脚乱。搞的一团糟! 我常告诫学生,不打无准备之仗...
    秋韵灵儿阅读 147评论 0 0