网络安全基础要点知识介绍(非常详细),零基础入门到精通,看这一篇就够了

网络安全
网络安全问题概述

计算机网络的通信面临两大类威胁:被动攻击和主动攻击

被动攻击:指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截取

主动攻击:通常有篡改,恶意程序,拒绝服务方式。

  1. 篡改:攻击者故意篡改网络上传送的报文。这里也包括彻底中断传送的报文,甚至是把完全伪造的报文传送给接收方。这种攻击方式有时也称为更改报文流
  2. 恶意程序:恶意程序种类繁多,对网络安全威胁较大的主要有:计算机病毒,计算机蠕虫,特洛伊木马,逻辑炸弹,后门入侵,流氓软件等。
  3. 拒绝服务:指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。
两类密码体制

对称密钥密码体制:加密密钥和解密密钥使用相同的密码体制。

对称密钥密码体制中的数据加密标准DES:DES是一种分组密码。在加密前,先对整个的明文进行分组。每一个组为64位长的二进制数据。然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据,最后将各组密文串接起来,即得出整个的密文。使用的密钥占有64位(实际密钥长度为56位,外加8位用于奇偶校验)。

对称密钥密码体制中的高级加密标准AES:AES是在DES上发展而来的,因为DES的密钥长度较小(56位),不适合当今数据加密安全性的要求,而AES能支持的密钥长度可以为128,192,256位(也即16,24,32个字节)。

公钥密码体制:使用不同的加密密钥与解密密钥。

在公钥密码体制中,加密密钥(公钥)是向公众公开的,而解密密钥(私钥)则是需要保密的。加密算法和解密算法也都是公开的。

RSA体制:请参考公钥密码体制RSA算法原理。

公开密钥和对称密钥的区别:在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方既可用此密钥加密明文,并发送给对方,也可以接收密文,用同一密钥对密文解密。这种保密通信仅限于持有此密钥的双方(如再有第三方就不保密了)。在使用公钥时,在通信信道上可以是多对一的单向保密通信。多方持有公钥,一方持有私钥。

注意:任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量,而不是简单地取决于加密的体制(公钥密码体制或传统加密体制)。公钥密码体制并没有使传统密码体制被弃用,因为目前公钥加密算法的开销较大,在可见的将来还不会放弃传统加密方法。

数字签名

数字签名主要是能够实现三点功能:

  1. 接受者能够核实发送者对报文的签名。也就是说,接受者能确信该报文的确是发送者发送的。其他人无法伪造对报文的签名。这叫做报文鉴别
  2. 接受者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这叫做报文的完整性
  3. 发送者事后不能抵赖对报文的签名。这叫做不可否认
鉴别

鉴别是要验证通信的对方的确是自己要所通信的对象,而不是其他的冒充者,并且所传送的报文是完整的,没有被他人篡改过。

鉴别分为报文鉴别和实体鉴别:

  • 报文鉴别:鉴别所收到的报文的确是报文的发送者所发送的,而不是其他人伪造的或篡改的。
  • 实体鉴别:仅仅鉴别发送报文的实体。
报文鉴别

密码散列函数

特点:

  • 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫做散列值,或更简单些,称为散列
  • 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。这就是说,散列函数的输入和输出并非一一对应的,而是多对一的。

在密码学中使用的散列函数称为密码散列函数,其最重要的特点就是:要找到两个不同的报文,他们具有同样的密码散列函数输出,在计算上是不可行的。也就是说,密码散列函数实际上是一种单向函数

实用的密码散列函数MD5 和 SHA-1

MD5:MD是Message Digest 的缩写,意思是报文摘要。MD5 是报文摘要的第5个版本。

在2004年,中国学者王小云证明可以用系统的方法找出一对报文,这对报文具有相同的 MD5 报文摘要,并且只需要15分钟或不到1小时。所以MD5 最终被另一种叫做安全散列算法 SHA(Secure Hash Alogorithm) 的标准所取代。

MD5 算法的大致过程:

  1. 先把任意长的报文按模2^64计算其余数(64位),追加在报文的后面。
  2. 在报文和余数之间填充1~512位,使得填充后的总长度是512 的整数倍。填充的首位是1,后面都是0。
  3. 把追加和填充后的报文分割为一个个512位的数据块,每个512位的报文数据再分成4个128位的数据块一次送到不同的散列函数进行4轮计算。每一轮又都按32位的小数据块进行复杂的运算。一直到最后计算出 MD5 报文摘要代码(128位)。

这样得出的 MD5 报文摘要代码中的每一位都与原来的报文中的每一位有关。由此可见,像MD5这样的密码散列函数实际上已是个相当负责的算法,而不是简单的函数了。

SHA 与 MD5 相似,但码长位 160位(比MD5的128位多了25%)。SHA 也是用512位长的数据块经过复杂的运算得出的。SHA 比 MD5 更安全,但计算起来却比 MD5 要慢些。

实体鉴别

实体鉴别是在系统介入的全部持续时间内对和自己通信的对方实体只需要验证一次。

由于实体鉴别容易被攻击者截取而不安全,所以这里不对实体鉴别做详细介绍。

密钥分配
对称密钥的分配

对称密钥分配方式是设立密钥分配中心 KDC (Key Distribution Center)。KDC 是大家都信任的机构,其任务就是给需要进行密钥通信的用户临时分配一个会话密钥(仅使用一次)。

公钥的分配

认证中心 CA(Certification Authority),一般由政府出资建立的。每个实体都有 CA 发来的证书(certificate),里面有公钥及其拥有者的标识信息(人名或IP地址)。此证书被CA 进行了数字签名。任何用户都可以从可信的地方(如代表政府的报纸)获得认证中心CA的公钥,此公钥用来验证某个公钥是否为某个实体所拥有(通过向CA查询)。有的大公司(如Netscape)也提供认证中心服务。

为了使CA的证书具有统一的格式,ITU-T制定了X.509协议标准,用来描述证书的结构。在X.509中规定要使用ASN.1。IETE 接受了X.509(仅有少量的改动),并在RFC 5280(现在是建议标准)中给出了互联网 X.509公钥基础结构PKI(Public Key Infrastructure)。

互联网使用的安全协议
运输层安全协议

现在广泛使用的两个协议:

  • 安全套接字层 SSL(Secure Socket Layer)
  • 运输层安全 TLS (Transport Layer Security)

SSL 作用在端系统应用层的HTTP和传输层之间,在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障。

TLS 是IETF在 SSL 3.0 的基础上设计的,为所有基于 TCP的网络应用提供安全数据传输服务。

SSL 提供的安全服务可归纳下面三种:

  1. SSL 服务器鉴别,允许用户证实服务器的身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。
  2. SSL 客户鉴别, SSL 的可选安全服务,允许服务器证实客户的身份。
  3. 加密的 SSL 会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改网络

网络安全学习路线&学习资源在这里插入图片描述

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

【“脚本小子”成长进阶资源领取】

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

网络安全学习路线&学习资源在这里插入图片描述

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

你可能感兴趣的:(web安全,网络,安全,开发语言,学习)