一、概述

网络信息安全主要研究的是TCP/IP协议簇构建的局域网和互联网的安全问题。

网络信息安全是广义上的软件安全。

信息安全之所以是一门自然科学,是因为它有完备的数学理论基础,即密码学(现代密码学)。

如今的信息安全主要是保证互联网上的信息安全。

互联网上的通讯安全唯一的密码学解决方案是公开加密算法。

信息安全包括

  1. 信息安全管理
  2. 物理场所安全
  3. 设备的硬件安全
  4. 软件安全(操作系统/其他系统软件应用软件)
  5. 网络信息安全
  6. 密码学的应用
  7. 信息隐藏
  8. 其他不常见技术。

攻击技术

  1. 身份隐藏

  2. 踩点:获取一些关于服务器的公开的信息

    网络踩点并不是犯罪行为。

  3. 扫描

    主机扫描:(不是网络犯罪的开始)扫描服务器是否能被访问到;

    端口扫描:(网络犯罪的开始)采用端口扫描工具,典型工具如SATAN。

  4. 查点:在扫描的基础上查找被访问的主机服务器上各种软件的各种漏洞。

  5. 嗅探(Sniffer):在局域网上抓取数据包。

  6. 拒绝服务攻击(DoS):黑客占用合法用户提供的资源从而使合法用户无法连接被攻击的服务器。

  7. 口令猜测

    一个好的口令需要满足长度至少8位,足够随机,字符字母数字交杂分布。

  8. 欺骗

  9. 会话劫持:通常在欺骗攻击的基础上进行

  10. 缓冲区溢出

  11. 病毒

  12. 蠕虫:利用缓冲区溢出等系统漏洞以及社交网络和电子邮件通过网络进行自我传播的恶意程序,只具有传染性,消耗带宽。

  13. 木马

防范技术

  1. 主机加固

  2. 密码学:指基于冯诺依曼体系结构发展的现代密码学

  3. 防火墙:保障边界安全,控制内网与外网通信的数据包进出。

  4. 虚拟专用网(VPN):端到端(如两个网关)之间建立一个数据包安全传输隧道,通常是基于密码学的保护。

  5. 入侵检测系统(IDS):可以放在网关与互联网之间,也可也放在防火墙上,更多的放在内网上。

    包括HIDS和NIDS:

    • HIDS:基于主机的入侵检测系统,通常放在局域网中重要的服务器主机上,检测原理是检查服务器的日志,所以HIDS只保护当前主机,不保护同一局域网中的其他主机。
    • NIDS:基于网路的入侵检测系统,原理是检测局域网内的攻击流量,所以HIDS可以保护同一局域网中的多个主机。
  6. 蜜罐(honeypot):不同于前几个的被动防御技术,蜜罐是一种对攻击方进行欺骗的主动防御技术 ,通过布置一些作为诱饵的主机、 网络服务 或者信息,诱使攻击方对它们实施攻击。

网络信息安全的原则

  • 安全需要多种安全机制,安全强度等同于安全链路中最薄弱的环节
  • 安全并不等同于加密,安全是一项系统的社会工程
  • 安全也不等同于防火墙,防火墙不能防止内部的攻击
  • 对网络攻击可以采取的防范对策:
    • 保护(加密、防火墙、口令)

    • 检测(入侵检测系统)

    • 反应(自动改变口令,口令错误封锁机制)

      保护不是必须的,但检测和反应才是必须的。

信息安全的四个层面与关系

  • 硬件安全:信息系统安全的首要问题,包括硬件的稳定性、可靠性和可用性。
  • 软件安全:如保护信息系统不被非法侵入,系统软件和应用软件不被非法赋值、篡改,不受恶意软件侵害等
  • 数据安全(传统的信息安全):采取措施确保数据免受非授权的泄露、篡改和毁坏。【真正最需要保护的】
  • 安全管理:运行时突发事件的安全处理等,包括建立安全管理制度,开展安全审计和风险分析等。

系统硬件和操作系统安全是信息安全的基础

密码学和网络安全是信息安全的核心和关键

信息系统安全是信息安全的目标

主要的网络安全威胁

  1. 伪装或假冒

  2. 否认或抵赖

  3. 破坏完整性:数据传输过程中被改变。

  4. 破坏机密性

  5. 信息量分析

  6. 重放:攻击者截获数据然后以攻击者的名义发送。

  7. 重定向:实际攻击对象是A,却以B为跳板。

  8. 拒绝服务

  9. 恶意软件

  10. 社会工程

二、TCP/IP协议簇

(一)数据链路层协议

数据链路层的数据包需要包含源MAC地址和目的MAC地址。

链路层由不同的局域网组成,有线的有以太网令牌环网令牌总线网,无限的有无线局域网

  • ARP:以太网地址解析协议,将一台主机的IP地址(IPv4)解析为网卡地址(MAC地址),且为单向协议

  • RARP:逆地址解析协议,可以把网卡地址转化成IP地址。

    安全隐患:容易遭受ARP毒害(使访问者PC错以为攻 击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线)。

(二)网络层协议

网络层的数据包需要包含源IP地址和目的IP地址。

  • IP

    安全隐患

    • 提供面向无连接不可靠数据传输功能,不能为数据提供完整性、机密性
    • 路由和分片机制——数据包内容易被篡改
    • 对源IP地址不能进行认证——IP欺骗攻击
    • 可以设置“源路由”选项——源路由欺骗攻击
    • “IP分片包”的威胁——分片扫描(对扫描包进行分片进而绕过防火墙)和拒绝服务攻击
  • ICMP:网络管理协议

    安全隐患

    • ICMP echo广播响应包——拒绝服务攻击
    • 利用隧道技术封装成ICMP包来建立隐藏通道、穿越防火墙

    比较特殊的是,ICMP包的上层并没有应用层的包,它直接被封装在IP内,所以从数据封装的角度我们可以把ICMP跟TCP和UDP一起被视作传输层协议。

(三)基于IP的传输层协议

传输层的数据包需要包含源端口和目标端口。

(color{red}{可靠性not =安全性})

  • TCP:基于IP之上的可靠传输。我们需要掌握TCP的三次握手

    缺点

    • 保障数据包被对方可靠接受的同时传送效率会降低

    安全隐患

    • 三次握手的源IP地址可以是虚假的——拒绝服务攻击
    • TCP中的序列号并不是真正随机——IP欺骗攻击
    • 可以定制所发送TCP包的标志位——隐蔽扫描
  • UDP:基于IP之上的不可靠传输。

    缺点

    • 数据包易丢失,收到什么数据就传递什么数据,并且也不会备份数据,发送数据也不会关心对方是否已经正确接收到数据了

    优点

    • 所有包都用来传输数据,效率提升,适用于对可靠性要求不高,但对传输效率有一定要求的应用

    安全隐患

    • 无连接、不可靠的协议——拒绝服务攻击

关于TCP在传输数据前的三次握手

隐患:SYN和ACK是标志位,可以修改,应答号可以猜测,IP地址伪造。

(四)应用层协议

1.基于TCP的应用层协议

  • SMTP:电子邮件传输,提供服务需要打开的对应端口号为TCP25
  • HTTP:web通信,提供服务需要打开的对应端口号为TCP80
  • MIME:多用途网际邮件扩充协议,为HTTP服务,非单独使用无端口号。
  • RPC:不同计算机之间的远程过程调用,与本地过程调用协议LPC相对应。
  • TELNET:远程登录,提供服务需要打开的对应端口号为TCP23
  • rlogin & rsh:远程登录,提供服务需要打开的对应端口号为TCP512
  • FTP:文件传输协议,提供服务需要打开的对应端口号为TCP20TCP21
  • 基于TCP的DNS:域名传输(当域名映射关系被修改时需要同步更新多台DNS域名服务器中的映射关系),基于TCP的DNS端口号是TCP53

域名服务器DNS

服务器端普遍使用的是域名服务器BIND,客户端使用的是负责访问的解析器,由系统提供的函数库来实现。

2.基于UDP的应用层协议

  • 基于UDP的DNS:域名服务(或域名解析),域名和IP地址双向转换,基于UDP的DNS端口号是UDP53。

  • SNMP:简单网络环境协议

  • NFS:网络文件系统。

  • XDR:外部数据表示

  • ASN.1:数据表示。

3.应用层协议的安全隐患

  1. DNS协议的安全隐患:DNS缓存可能被毒害——DNS欺骗(将域名解析成错误的IP地址,从而不能被引导至正确的服务器主机)、区域传输(基于TCP的DNS)。
  2. 路由信息的安全隐患:路由信息被篡改——修改网络数据传输路径。
  3. Web协议的安全隐患:Web语言的漏洞更多。
  4. 其他协议的安全隐患

(五)端口的分类

端口存储字长有16bit,其中

  1. 1-1023:server(服务端)的端口号,是事先确定的服务器提供某项服务的端口号。对于不同服务端的一个服务而言,在不被修改的任何情况下,在任何时间空间访问该服务的端口号始终一致。如server提供的web服务始终是80号端口。

  2. 1024-4999:client(客户端,请求访问端)的由操作系统确定的随机端口号,即便对于同一个客户端,在不同时刻端口号可能不一致。

  3. 5000-65535:提供一些特殊服务的端口号(如数据库);用户自定义服务器端;木马的服务器端口号。

    木马不具备传染性,但可以控制被种植的电脑;病毒和蠕虫具有传染性。

(六)IP地址与MAC地址

IPv4:IP地址的通用格式,字长是(8times4=32)bit。IP地址分为公有IP地址和私有IP地址。

  • 仅用于局域网的私有IP地址:192.168.#.# ; 172.#.#.#.# ; 10.10.#.#。通过私有IP地址可以在局域网内主机间的通信。
  • 除了上面的三个私有IP地址之外,其余的都是公有IP地址,由运营商分配。通过公有IP地址可以直接访问因特网,它是广域网范畴内的。

IPv6:为替代IPv4而出现的IP地址格式。字长是(32times4=128)bit。

MAC:主机的网卡地址,局域网上寻找目的主机,是一个主机不变的标识,字长是(8times6=48)bit

下面是网络通信过程中的名称(地址)间的转换:

每一步转换都存在被欺骗(例如ARP欺骗和DNS欺骗)的可能性,较安全的上网方式是通过IP地址或者MAC地址访问。

(七)网络通信

网关并不关心上层协议栈,节约资源的同时保障了数据不被路由器等中间设备截获。

三、TCP/IP通信的基本要素

包括源IP地址目的IP地址源MAC地址目的MAC地址源端口号目的端口号,只有这四个确定了才能确定是哪一台客户机向哪一台服务器请求什么服务。

四、ISO提出的OSI安全体系结构

1.安全服务

  • 身份认证:确认是否是合法用户。

  • 访问控制:在是合法用户的情况下控制能够访问的资源范围。

  • 数据机密性:防止数据泄露的措施(如预防嗅探和数据加密)。

  • 数据完整性:防止非法篡改和破坏信息。

  • 抗否认:针对对方否认的防范措施(如数字签名)。

2.安全机制

  • 加密机制

  • 数字签名

  • 访问控制机制

  • 数据完整性机制

  • 认证交换机制

  • 通信业务填充机制:对通讯方式的研究,而非内容本身。

  • 路由选择控制机制

  • 公证机制:第三方使用数字签名为通信方签发数字证书来实现。

五、网络安全服务与需求

现今的网络安全服务需要满足

  • 机密性:阻止非授权用户非法获得保密信息,包括存储的机密性和传输的机密性(物理保密、防窃听、防辐射、信息加密、通信业务填充机制)
  • 完整性
  • 身份认证性
  • 访问控制
  • 不可否认性
  • 可用性

六、密码学

数字签名:发送方用自己私钥对消息,加密就是该用户对该消息的数字签名,可以保证发送方不可否认。

数字证书:数字证书是一个经CA认证中心数字签名的包含公钥拥有者信息及其公钥的文件。

数字信封:在实际应用中,并不直接使用公开加密算法加密明文,而仅使用它保护实际用于加密明文的对称密钥。

数字指纹:消息的散列值(或MAC值),即消息摘要。

(一)发展

1.几个阶段

  • 传统密码学阶段:一战前的手工阶段和一战到二战的机械阶段都处于传统密码学阶段,特点是算法和密钥必须保密。

    N个人两两之间加密通信算法数和密钥数一共都需要(frac{N(N-1)}{2})个。

  • 现代密码学阶段:随着电子计算机的出现而进入现代密码学阶段,对密钥保密,算法可以公开。

    • 对称加密算法:包括分组加密(如DES、3DES、IDEA、AES)和流(序列)加密(如RC4)。

      N个人两两之间加密通信算法数一共只需要1个,密钥数一共需要(frac{N(N-1)}{2})个。

    • 公开加密算法:有公钥私钥,常基于数学复杂问题,典型的算法有D-H(有限域上基于离散对数问题)、RSA(基于大合数分解成大质数)、ECC(椭圆曲线点群上基于离散对数问题)

      N个人两两之间加密通信算法数一共只需要1个,密钥数一共需要(2N)个(对于N个人,每个人只需要一对公钥私钥)。

      当前互联网上唯一的密码学解决方案

    • 散列算法:不同于前几个实现的是机密性,散列算法常用于实现认证性,且无需密钥,典型的算法有MD5、SHA-1。

      N个人之间通信认证,仅需要一个算法,不需要密钥

  • (未来)量子密码学阶段

2.密码学的四个空间

明文空间、密文空间、算法空间、密钥空间

3.理论不可破解和计算不可破解的加密算法

包括

  1. 一次一密钥(无实用价值:很难生成真正随机的密钥序列,即使生成也很难分发,密钥和明文一样长)
  2. 在现有商用将计算机条件下,112位的3DES算法和1024位RSA算法

(二)现代密码学

1.对称加密算法

优点:速度快

缺点:密钥分发难(可以用公开加密算法实现密钥的分发);加解密双方都具有密钥,所以不具备抗否认性。

对称密码算法要求

  • 算法足够强大,对截获的密文或者已知明文密文对是计算出密钥或明文是不可行的
  • 不依赖于算法的保密,而依赖于密钥,这就是著名的Kerckhoff原则
  • 正常加密解密要快,破译越慢越好。
  • 密文相对明文最好无数据位扩展
  • 好的机密算法具有雪崩效应
  • 好的加密算法的密文很难被压缩(所以先压缩后加密效果更好)

单一性距离

在没有明密文对,只有已知密文的情况下,攻击者需要自己识别明文,而单一性距离就是用来衡量攻击者的识别难度。

计算方法:

[d=K/6.8(K是加密算法的密钥长度) ]

例如DES的单一性距离是(frac{56}{6.8}=8.2),IDEA的单一性距离是(frac{128}{6.8}=19),也就是说当攻击者攻击的目标加密算法是DES时,解出来一个明文连续8-9个字节或者超过8-9个字节是合理的或是有意义的,则该明文很大程度上就是真正的明文。

所以,单一性距离越大的算法越难破解。

  • 对于一个含有格式的文件头的明文易于识别

  • 对于一个二进制明文压缩文件很难识别。

(1)DES/2DES/3DES

  • DES安全问题:DES的56bit密钥太小,易受穷举攻击;DES的迭代次数(16次)太少(16次恰巧能抵抗差分分析);S盒中可能有不安全因素;DES的一些关键部分不应该保密。

  • 2DES安全问题:易受相遇攻击。

    相遇攻击

    假设 E 和 D 分别是加密函数和解密函数,k1 和 k2 分别是两次加密使用的密钥,则我们有

    [C=E_{k2}(E_{k1}(P)) ]

    [P=D_{k2}(D_{k1}(C)) ]

    则我们可以推出

    [E_{k1}(P)=D_{k2}(C) ]

    那么,当用户知道一对明文和密文时

    1. 攻击者可以枚举所有的 k1,将 P 所有加密后的结果存储起来,并按照密文的大小进行排序。
    2. 攻击者进一步枚举所有的k2,将密文 C 进行解密得到 C1,在第一步加密后的结果中搜索 C1,如果搜索到,则我们在一定程度上可以认为我们找到了正确的 k1 和 k2。
    3. 如果觉得第二步中得到的结果不保险,则我们还可以再找一些明密文对进行验证。

    当k1和k2都是(n bit)时,原先我们暴力枚举需要(O(n^2)),现在我们只需要 (O(nlog_2n)),因为枚举k1其实也就枚举了k2。

    那么对于密钥长度固定是56位的2重DES算法,安全性并不比DES高了多少。

  • 3DES实现:使用3个密钥,执行三次DES算法,加密过程是加密-解密-加密,采用的密钥是K1-K2-K3。

    [C=E_{K3}(D_{K2}(E_{K1}(M))) ]

    起初3个密钥不相同,导致密钥过长(168bit),后来令K1=K3,即只使用2个密钥(112bit)。

    其实这样先加密后解密的设计一定程度上也兼容了最初的一重DES算法。

2.公开加密算法

优点:产生密钥个数少;可以实现密钥的分配和交换;数字签名;适用于互联网环境。

缺点:密钥长,速度慢,不太适合直接加密明文。

应用

  • 实现机密性:A用B的公钥加密(rightarrow)B用自己的私钥解密。

  • 数字签名实现不可否认性:A用自己的私钥加密(rightarrow)B用A的公钥解密。

    (解出来说明只有A可以加密,A无法否认,因为只有A知道自己的私钥并可以发送这样的消息)

保证公钥不被篡改的解决方案:

​ 通信的一方A可以从可信的第三方CA处得到对方B的公钥。CA以自己的私钥加密B公钥做担保,且CA的公钥众所周知(任何人都知道),因而CA的公钥不会被篡改,所以A得到了被CA的私钥钥加密后的B公钥可以直接通过众所周知的CA公钥解密得到B公钥。B对A同样如此。

3.散列算法

不可逆、无密钥、存在冲突

应用

  • 实现完整性:通常是将明文和明文的哈希值一起加密发送,接收方收到后对明文做哈希对比收到的哈希值来确保完整性。

(三)PGP加密系统

1.基于PGP的加密发送

如上图,下面是对发送方如何基于PGP加密系统发送信息的解读:

  1. 用发送方的私钥对哈希后的明文进行基于RSA的数字签名

  2. 签名跟明文拼接得到长明文P1。

  3. 对长明文压缩得到较长的明文P1.Z。

  4. 发送方随机生成一个对称加密算法IDEA的会话密钥(K_s)要确保 每次生成的不一样,且 是强密钥),对较长的明文P1.Z进行IDEA加密得到密文。

    同样是为了提高效率采用的是对称加密算法。

  5. 为了让接收方也得到会话密钥,对该会话密钥用接收方的公钥进行RSA加密。

    对IDEA会话密钥基于RSA加密可以保证。

    同时会话密钥比较短,因此不用担心效率问题。

  6. 加密后的密钥跟IDEA加密后的密文拼接得到的便是数字信封,然后对其base64编码后发送到接收方。

2.功能分析

  • 机密性和完整性:PGP加密系统的安全性取决于RSA和IDEA的破解难度。所以保证了机密性的同时确保了哈希值不被修改,进而保证了数据完整性。
  • 数字签名:对明文的散列值签名,保证完整性的同时签名速度更快,一定程度上认证了发送方身份。
  • 压缩:先签名后压缩再加密,如果先加密后压缩效果压缩的很差。压缩同时可以补充base64编码导致的膨胀。
  • 数字信封:既有RSA加密的保密(IDEA密钥的安全传递)又有IDEA算法的快捷。

七、网络攻击技术

(一)口令破解

  1. 手工尝试(猜测)
  2. 对口令文件使用破解工具(字典/暴力/组合攻击)
  3. 使用嗅探技术获得口令
  4. 使用社会工程方法获得口令
  5. 恶意网页和恶意电子邮件
  6. 通过键盘记录器获得口令
  7. 账号口令锁定机制

(二)权限提升

黑客进入系统获得访问权,最终获得系统的控制权

(三)掩盖踪迹

  1. 隐藏上传的文件
  2. 禁止或者篡改日志审计信息
  3. 清除日志记录
  4. 改变系统时间造成日志文件数据紊乱
  5. 干扰入侵检测系统的正常运行
  6. 修改完整性监测数据
  7. 使用Rootkit工具

(四)创建后门

后门程序可以为攻击者提供访问权限

  1. 重新开放不安全的服务端口
  2. 修改系统配置留下漏洞
  3. 安装嗅探器和建立隐藏通道
  4. 创建具有root权限的虚假用户账号
  5. 安装批处理文件
  6. 安装远程控制工具
  7. 使用木马程序替换系统程序

常用方法有下面几种

  1. SUID后门:提升权限后门

  2. 利用信任关系建立rlogin后门

  3. 使用Netcat建立远程登录后门

    攻击者通过80/53端口向受害系统发送命令,后者执行Shell完毕后通过25端口将结果回送给攻击者。

  4. 采用隧道技术的后门:通过封包来穿越防火墙

  5. 端口重定向后门:通过中转主机将请求转发给目标

  6. 采用反向连接来穿越防火墙

  7. 键盘记录器后门

  8. 木马服务器后门

  9. 内核级Rootkit后门:工作效率高且很难发现

(五)Web攻击技术

1.攻击Web服务器

  • 样板文件和源代码泄露、缓冲区溢出攻击

  • 资源解析和二次解码攻击(即同义异名攻击)

  • 服务器功能扩展模块问题

  • 服务器端包含(Server Side Include,SSI)问题

  • SQL注入攻击:在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。

    一些安全保护措施:

    • 现今为保证通讯信道的安全采用了HTTPS协议,端口是TCP443。

    • 为抵御SQL注入攻击而导致被非法获取Web管理员权限,必须遵循最小权限原则,即Web管理员不会获得最高管理员权限,只会获得IUSER_Server权限。

2.攻击Web浏览器(客户端)

  • 跨站脚本攻击(XSS攻击):也是代码注入的一种。XSS是由于Web应用程序对用户的输入过滤不足而产生的,攻击者利用网站漏洞把恶意的脚本代码注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害者用户可能采取Cookie窃取、会话劫持、钓鱼欺骗等各种攻击。这类攻击通常包含了HTML以及用户端脚本语言。
  • 对ActiveX和JavaScript脚本的攻击
  • 攻击会话跟踪(cookie)机制
  • 同形异义词(Homograph)漏洞 :例如修改某官方网址中的一个字母为其同形异义的字母(无视觉差异),再将网址传播出去,用户误以为是正确的网址,但实际上点进去已经进入了攻击者自己控制的的网站。

3.SQL注入攻击

  1. Web应用程序没有对用户输入进行合法性验证而产生SQL注入漏洞( “空格”的存在和使用);

  2. 攻击者通过构造特殊的SQL语句,将指令插入系统原始的SQL查询语句中并执行它;

  3. 获取数据库的敏感信息,甚至获取主机的控制权。

(六)踩点

踩点获取的是公开的信息,采用的技术合法。

网上有一些关于踩点的博客仅供参考

  1. 通过Whois工具获取获取目标系统的用户注册信息。(许多Whois服务器也支持www访问方式,可以直接通过浏览器访问进而获取域、网络、管理者在内的众多信息)

  2. 通过Nslookuphost工具获取域名、IP地址、DNS服务器、邮件服务器。

    Nslookup是一种经典的DNS测试命令行工具,具备域名解析器的功能,可以在交互模式下列举指定域的区域文件内容。

  3. 通过Traceroute工具获取网络拓扑和路由信息。

  4. 直接利用浏览器通过各种搜索引擎查找具有漏洞含有的特征字符串,获取存在漏洞的网站。

    比如利用Google搜索引擎的语法在搜索框输入inurl:login可以搜索到易存在 SQL 注入点的页面(inurl 是指搜索到的链接要包含 login 信息)。谷歌搜索引擎使用语法大全收集

  5. 通过其他命令行工具如finger获取账户信息

    比如早期Morris蠕虫就是通过Finger服务(提供账号信息,端口号:TCP79)最初版本踩点罗列出注册以来从未登录过的账号名称(这种往往是具有特殊缺省口令的特殊账号)进而找到入侵点。

  6. 通过命令行工具ping发送一个ICMP请求包测试网络是否畅通,如果对方在线对方随之发送一个包含ttl的响应包,如果不在线或者发送包响应包被拦截的情况下会返回一个timeout包。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/Em0sEr1t/p/15311372.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!