核心内容摘要
国家气象中心我国沿海海域预计将出现8级及以上强风。
【面试经典题】前言HTTP最初的设计就是用于数据的共享和传输并没有考虑到数据的安全性如窃听风险篡改风险和冒充风险。
HTTPS是在 HTTP的基础上引入了一个加密层。
HTTPS通过数据加密数据完整性检验和身份认证有效的保证了数据传输的安全性。
HTTP默认端口号80HTTPS默认端口号是443。
是接下来说说这些方法具体是咋实现的。
HTTPS这里的S指的是TLS(前身是SSL后来更名了)传输层安全协议。
可以理解为HTTPSHTTPTLS。
TLS是一种安全性协议。
旨在保障通信数据的保密性完整性真实性。
TLS位于应用层和传输层之间。
TLS的发展历程HTTP为什么不安全互联网上任何数据包的传输都需要经过许许多多的网络设备如路由器等如果其中一台设备是恶意的或者被恶意的人劫持(如黑客)那传输的数据就可能会被窃取或者修改。
并且HTTP是明文传输的传输的数据没有进行任何加密。
数据就会被轻易窃取。
并且数据没有经过任何的校验要是数据被篡改也无法感知。
并且通信双方也没有进行身份认证就会存在通信对象可能不是目标对象的情况如黑客冒充成客户端或者服务器端与对方进行交互。
综上所述HTTP存在以下三种安全风险窃听风险篡改风险冒充风险HTTPS的工作过程对于如何解决第一种风险我们首先能想到的是进行加密加密有两种对称加密和非对称加密。
使用对称加密这种对称加密使用同一种秘钥秘钥是由客户端这边生成的不同的客户端秘钥不同然后向服务器发送并于服务器约定使用这个秘钥传输。
秘钥既可以加密也可以解密虽然数据传输进行了加密但秘钥在传输过程中并没有被加密就会容易被截获截获的人就可以通过秘钥解密数据造成风险。
使用非对称加密如上图所示加密过程共有四步首先浏览器向服务器发送获取公钥的请求服务器收到请求返回自己的公钥浏览器收到公钥后将请求数据和公钥通过加密算法进行加密生成密文然后发送给服务器。
服务器收到密文后用私钥和密文通过解密算法获得明文数据然后服务器又将响应数据使用私钥加密后发给浏览器浏览器收到密文再通过公钥进行解密。
这种加密显然优于第一种非对称加密使用一对秘钥公钥和私钥公钥是公开的私钥是仅服务器拥有的。
非对称加密的特点是通过公钥加密的密文必须由私钥解密通过私钥加密的密文必须由公钥解密。
但是纯使用非对称加密这种也有缺点一是效率太慢因为涉及到复杂的数学运算二是传输过程中公钥是可以被截获的并且第四步服务器返回响应是通过私钥加密的截获公钥的不法分子就能够通过公钥解密。
使用非对称加密对称加密如上图所示非对称加密过程共有五步浏览器向服务器发起获取非对称加密公钥的请求。
服务器收到请求返回自己的公钥。
浏览器将对称加密秘钥使用公钥加密后发送给服务器服务器收到密文使用自己的私钥解密后获得对称加密秘钥。
浏览器将请求数据使用对称加密秘钥加密后发送给服务器。
服务器使用刚才获得的对称秘钥对密文进行解密得到请求数据。
服务器根据请求处理数据服务器将响应数据使用对称秘钥加密后发给浏览器浏览器使用对称秘钥解密后获得响应。
非对称加密主要用来传输对称加密的秘钥而不是传输业务数据。
传输业务数据交给对称加密。
这样就算不法分子能够拿到公钥也无济于事。
我们的目标是让对称加密的秘钥安全的发送给服务器。
发送过去后剩下的数据传输就全部用秘钥进行加密解密。
总的来说就是两种加密方式的加密对象不同。
作用时间不同。
这样做就可以有效防止窃听风险。
但还不够魔高一尺道高一丈。
如果黑客冒充服务器并伪造公钥该咋办非对称加密为什么要引入对称加密因为非对称加密/解密运算成本是比较高的运算速度也比较慢而对称加密运算成本低速度快。
上文中单单使用对称加密不安全是因为秘钥在传输过程中没有加密容易被截获。
即使用对称加密的要害是传输秘钥。
如果我们使用非对称加密进行传输对称秘钥然后在后面的数据传输中均使用对称加密。
这样相互配合就可以在保证安全的同时效率也提高。
如果整个过程都是用非对称加密传输传输效率会大打折扣。
1详解冒充风险不法分子是如何冒充的客户端向服务器请求公钥后服务器会返回一个公钥但在这个中间公钥存在被截获的风险黑客这边提前自己也生成一对公钥和私钥截获后黑客就可以将公钥替换成自己的。
但是客户端不知道就会拿着黑客提供的公钥进行加密然后传给服务器中间又会被黑客截获由于公钥是黑客的那自然黑客手中的秘钥就能对它解密这个过程中黑客就获得了秘钥这时通信双方并没有正式进行数据通信黑客继续伪装使用之前截获的服务器的公钥(不是伪造的如果这里伪造数据传到服务器那边是解不开的)对秘钥加密发送给服务器。
服务器使用私钥解密于是双方就约定使用这个秘钥进行数据传输了殊不知秘钥已经被黑客截获了。
后续黑客只需要通过秘钥就能轻松地获取数据了。
这个过程的关键是秘钥被黑客给截取了。
使用证书机制解决上述冒充问题的办法就是进入公证机构。
在客户端和服务器起初建立连接时服务器就给客户端返回一个证书。
这个证书就好比人的身份证用来作为网站的身份标识。
而每搭建一个HTTPS 网址时都需要在认证机构申请一个证书。
证书含有的重要信息证书发布机构证书有效期公钥(服务器的公钥)证书所有者签名即在搭建服务器时服务器会去公证机构申请证书并提交一系列材料。
认证成功后公证机构会给这个服务器颁发证书证书中就含有公钥。
接下来每次客户端访问服务器时都会先请求服务器的证书服务器返回证书给客户端。
接下来分两步进行检验第一步检验证书是否合法万一证书是伪造的校验证书方式有判定证书的有效期是否过期判定证书的发布机构是否受信任判定证书是否被篡改从系统中拿到该证书发布机构的公钥对签名解密得到一个 hash 值称为数据摘要设为 hash1。
然后计算整个证书的 hash 值设为 hash2。
对比 hash1 和 hash2 是否相等如果相等则说明证书是没有被篡改过的证书检验通过后进行检验证书中的数据是否被篡改过。
第二步检验证书中数据是否被篡改目的是为了检验公钥是否被修改过进行数字签名(其实就是被加密后的校验和)这里的校验和就是把证书中所有数据的每个字节带入公式就会算出一个结果数字这个数字就是校验和。
为了防止该校验和又被修改我们对校验和进行了加密。
这个加密是由公正机构完成的公证哪个机构那边也有一对公钥和私钥其中公钥分发给各个客户端私钥用来加密校验和。
现如今我们的操作系统上已经拥有许多知名认证机构的公钥客户端收到证书并确认证书无误后开始使用公钥解密获得检验和(一串数字)同时客户端这白牛也用相同的公式将证书中的数据进行计算得出一个校验和与解密后的校验和对比以此来最终确认证书有没有被篡改过。
通过后就可以开始进一步传输秘钥传输数据了。
解决冒充问题的关键就是验证这个证书中携带的服务器的公钥是否被修改过。
常见的计算校验和的算法有MD5 和 SHA以下以 MD5 为例介绍其特点定长无论多长的字符串计算出来的 MD5 值都是固定长度16字节版本或者32字节版本分散源字符串只要改变一点点最终得到的 MD5 值都会差别很大不可逆通过源字符串生成 MD5 很容易但是通过 MD5 还原成原串理论上是不可能的由于 MD5 这样的特性因此可以认为如果两段数据的 MD5 值相同则这两段数据相同。
总结对称加密由客户端生成的对称密钥用于对传输的数据进行加密需要将该对称密钥告知给服务器。
非对称加密 服务器给客户端提供一个公钥私钥自己持有将公钥传发送给客户端客户端使用公钥对对称密钥进行加密将密文传送给服务器。
证书机制 通过第三方公证机构向网站颁发证书该证书里面就含有服务器的公钥。
客户端首先向服务器请求证书客户端拿到证书后进行校验如果证书合法并且证书里的数据没有被篡改就使用里面的公钥对对称密钥进行加密。
通过上面三种方式的结合就可以保证传输过程中的安全了。
文章来自网上侵权请联系博主互动话题如果你想学习更多网安方面的知识和工具可以看看以下题外话题外话网络安全学习路线学习资源网络安全的知识多而杂怎么科学合理安排下面给大家
总结了一套适用于网安零基础的学习路线应届生和转行人员都适用学完保底6k就算你底子差如果能趁着网安良好的发展势头不断学习日后跳槽大厂、拿到百万年薪也不是不可能初级网工
网络安全理论知识2天①了解行业相关背景前景确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。
非常重要
渗透测试基础一周①渗透测试的流程、分类、标准②信息收集技术主动/被动信息搜集、Nmap工具、Google Hacking③漏洞扫描、漏洞利用、原理利用方法、工具MSF、绕过IDS和反病毒侦察④主机攻防演练MS17-
MS08-
MS10-
MS
等
操作系统基础一周①Windows系统常见功能和命令②Kali Linux系统常见功能和命令③操作系统安全系统入侵排查/系统加固基础
计算机网络基础一周①计算机网络基础、协议和架构②网络通信原理、OSI模型、数据转发流程③常见协议解析HTTP、TCP/IP、ARP等④网络攻击技术与网络安全防御技术⑤Web漏洞原理与防御主动/被动攻击、DDOS攻击、CVE漏洞复现
数据库基础操作2天①数据库基础②SQL语言基础③数据库安全加固
Web渗透1周①HTML、CSS和JavaScript简介②OWASP Top10③Web漏洞扫描工具④Web渗透工具Nmap、BurpSuite、SQLMap、其他菜刀、漏扫等恭喜你如果学到这里你基本可以从事一份网络安全相关的工作比如渗透测试、Web 渗透、安全服务、安全分析等岗位如果等保模块学的好还可以从事等保工程师。
薪资区间6k-15k到此为止大概1个月的时间。
你已经成为了一名“脚本小子”。
那么你还想往下探索吗【“脚本小子”成长进阶资源领取】
脚本编程初级/中级/高级在网络安全领域。
是否具备编程能力是“脚本小子”和真正黑客的本质区别。
在实际的渗透测试过程中面对复杂多变的网络环境当常用工具不能满足实际需求的时候往往需要对现有工具进行扩展或者编写符合我们要求的工具、自动化脚本这个时候就需要具备一定的编程能力。
在分秒必争的CTF竞赛中想要高效地使用自制的脚本工具来实现各种目的更是需要拥有编程能力.零基础入门建议选择脚本语言Python/PHP/Go/Java中的一种对常用库进行编程学习 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP IDE强烈推荐Sublime ·Python编程学习学习内容包含语法、正则、文件、 网络、多线程等常用库推荐《Python核心编程》不要看完 ·用Python编写漏洞的exp,然后写一个简单的网络爬虫 ·PHP基本语法学习并书写一个简单的博客系统 熟悉MVC架构并试着学习一个PHP框架或者Python框架 (可选) ·了解Bootstrap的布局或者CSS。
超级网工这部分内容对零基础的同学来说还比较遥远就不展开细说了贴一个大概的路线。
感兴趣的童鞋可以研究一下不懂得地方可以【点这里】加我耗油跟我学习交流一下。
网络安全工程师企业级学习路线如图片过大被平台压缩导致看不清的话可以【点这里】加我耗油发给你大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程需要的话可以扫描下方卡片加我耗油发给你都是无偿分享的大家也可以一起学习交流一下。
网络安全学习路线学习资源结语网络安全产业就像一个江湖各色人等聚集。
相对于欧美国家基础扎实懂加密、会防护、能挖洞、擅工程的众多名门正派我国的人才更多的属于旁门左道很多白帽子可能会不服气因此在未来的人才培养和建设上需要调整结构鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”才能解人才之渴真正的为社会全面互联网化提供安全保障。
特别声明此教程为纯技术分享本书的目的决不是为那些怀有不良动机的人提供及技术支持也不承担因为技术被滥用所产生的连带责任本书的目的在于最大限度地唤醒大家对网络安全的重视并采取相应的安全措施从而减少由网络安全而带来的经济损失