网络与安全基础知识

网络七层协议

  • 物理层
    OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

  • 数据链路层
    它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

  • 网络层
    这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

  • 传输层
    这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

  • 会话层
    它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

  • 表示层
    这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

  • 应用层
    与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。

SQL 注入攻击

SQL注入攻击

IP地址

IP地址是因特网上的每个网络节点在全球范围内的唯一标识符,对每个节点来说,IP地址是一个32位的二进制代码,如11111111111111111111111111111111。为了提高可读性,我们常常把32位IP地址中的每8位转换为对应的十进制,并在两个十进制数之间插入一个点,即255.255.255.255,这种记法就是常用的点分十进制记法。

IP地址的编址经历了三个历史阶段,分类的IP地址、子网的划分以及构成超网。

1.1分类的IP地址

分类的IP地址中是将IP划分为几种固定的类,每一类地址都有两个固定长度的字段组成–网络号和主机号。网络号是标志网络节点所连接到的网络,主机号标志该节点。IP地址主要分为5大类,A类、B类和C类都是单播地址,即一对一通信,最常用。D类地址用于多播,即一对多通信。E类地址保留为以后用。如图可见这几类IP:
网络与安全基础知识

A类地址规定网络号字段为1字节,第一位固定为0来标识该类别,只有7位可供使用,有=126个可指派的网络号。其中有2个特殊的网络号,一个是网络号字段为全0,它是保留地址,意思是“本网络”,如0.0.0.35代表“在这个网络上主机号为35的主机”;另一个是127字段,保留用于环回测试,例,常见的127.0.0.1代表本地主机。所以A类地址的网络号范围为1~126。主机号3字节,最大主机数为,这里也要减去2。一个是主机号全0,表示网络的地址,如,一主机IP为5.6.7.8,则该主机所在的网络地址就是5.0.0.0。另一个是全1,表示该网络内的所有主机,如,125.255.255.255代表了125.0.0.0这个网络上的所有主机。
B类地址网络号字段为2字节,前两位固定为10,有14位可用来分配,有个可指派的网络号。这里减1的原因是一般128.0.0.0是不指派的,B类可指派的网络地址是128.1.0.0。
C类地址网络号字段为3字节,前3位固定为110,有21为可用来分配。
由上我们可以简单看出,整个IP地址空间共有个地址,A类地址有个,占有整个IP地址空间的50%,B类占有25%,C类占有12.5%。

1.2划分子网

上一节中介绍的分类的IP地址是二级IP地址,是由网络号和主机号组成的,而现在常用的是三级IP地址,添加了一个子网号。二级的IP不够灵活且造成了浪费。如,我们办公室假如有300台电脑,使用C类地址,最多可接入=256台主机,显然不够,若使用B类地址,则可接入=65536台主机,造成了极大的浪费。此时,我们可以申请一个B类的网络,如网络地址为172.16.0.0,同时可以把这65536个地址划分成一个个局域网,相互之间互不干扰,划分过的局域网可以称为这个B类网络的一个个子网,而相对于本单位外的网络仍然表现为一个网络。网络号是需要申请和指派的,它一般是固定的,所以想要进行子网的划分,划分的方法是将二级IP的主机号字段借用若干位来表示子网号,这样就变成了三级IP地址:网络号、子网号和主机号。记为:

IP地址::={<网络号>,<子网号>,<主机号>}

但一个数据报到达公司的路由器后,路由器并不知道该发给哪个子网,因为子网号并不一定存在,就算存在位数也并不是固定的,所以此时就需要子网掩码。

子网掩码这个概念主要为了确定IP地址的网络号,这里所说的网络号不再是二级IP中的网络号,而是指的是三级IP地址中网络号和子网号两者的总和。这样,总的来说子网掩码将三级IP地址分成了两部分,即网络号和主机号(注意这里的网络号和主机号与二级IP的网络号和主机号的异同)。

我们知道二进制中任何数逐位与1进行“与”操作后还是本身,和0进行“与”操作后都是0。其实一个子网掩码的实质是指定了一个IP地址中网络号的长度,如一IP地址为01110110.10110110.11010101.00101011,子网掩码是11111111.11100000.00000000.00000000,它的前11位就设置为1,后21位设置为0,IP地址和子网掩码进行“与”操作后,该IP地址的前11位就保留了下来,后21位就变为了全0,即01110110.10100000.00000000.00000000。

如果一个网络不划分子网,那么该网络的子网掩码使用默认子网掩码,这种默认子网掩码其实就三个。即A类地址的默认子网掩码,255.0.0.0,B类地址的默认子网掩码255.255.0.0,C类地址的默认子网掩码255.255.255.0。

顺便说一下,有一种IP表示方法,如192.168.1.0/24,它指的是IP地址是192.168.1.0,子网掩码中1的个数是24个,即255.255.255.0,很容易看出这个就是一个C类的网络。再如,我们办公室网络中有172.16.0.X和172.16.1.X这两种IP,简单分析,172即B类地址,默认网络号是16位,即172.16,但只出现过0.X和1.X的IP说明第三个八位中前七位应该是固定的,只有最后一位在0和1之间变化,所以我们办公室网络的网络号应该是23位,子网掩码是255.255.254.0。

加密与安全

  • 网络安全
    网络安全问题概述
    计算机网络的通信面临两大类威胁:被动攻击和主动攻击。
  1. 被动攻击:指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截取。

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

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

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

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

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

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

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

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

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

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

数字签名

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

  • 接受者能够核实发送者对报文的签名。也就是说,接受者能确信该报文的确是发送者发送的。其他人无法伪造对报文的签名。这叫做报文鉴别。
    接受者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这叫做报文的完整性。
  • 发送者事后不能抵赖对报文的签名。这叫做不可否认。
  • 鉴别
    鉴别是要验证通信的对方的确是自己要所通信的对象,而不是其他的冒充者,并且所传送的报文是完整的,没有被他人篡改过。

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

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

特点:

  • 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫做散列值,或更简单些,称为散列。
    不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。这就是说,散列函数的输入和输出并非一一对应的,而是多对一的。
    在密码学中使用的散列函数称为密码散列函数,其最重要的特点就是:要找到两个不同的报文,他们具有同样的密码散列函数输出,在计算上是不可行的。也就是说,密码散列函数实际上是一种单向函数。

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

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

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

MD5 算法的大致过程:

先把任意长的报文按模2^64计算其余数(64位),追加在报文的后面。
在报文和余数之间填充1~512位,使得填充后的总长度是512 的整数倍。填充的首位是1,后面都是0。
把追加和填充后的报文分割为一个个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 提供的安全服务可归纳下面三种:

  • SSL 服务器鉴别,允许用户证实服务器的身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。

  • SSL 客户鉴别, SSL 的可选安全服务,允许服务器证实客户的身份。

  • 加密的 SSL 会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改。

一些简单的问答

1、什么是防火墙?什么是堡垒主机?什么是DMZ?

防火墙是在两个网络之间强制实施访问控制策略的一个系统或一组系统。

堡垒主机是一种配置了安全防范措施的网络上的计算机,堡垒主机为网络之间的通信提供了一个阻塞点,也可以说,如果没有堡垒主机,网络间将不能互相访问。

DMZ成为非军事区或者停火区,是在内部网络和外部网络之间增加的一个子网。

2、网络安全的本质是什么?

网络安全从其本质上来讲是网络上的信息安全。

信息安全是对信息的保密性、完整性、和可用性的保护,包括物理安全、网络系统安全、数据安全、信息内容安全和信息基础设备安全等。

3、计算机网络安全所面临的威胁分为哪几类?从人的角度,威胁网络安全的因素有哪些?

答:计算机网络安全所面临的威胁主要可分为两大类:一是对网络中信息的威胁,二是对网络中设备的威胁。从人的因素考虑,影响网络安全的因素包括:

(1)人为的无意失误。

(2)人为的恶意攻击。一种是主动攻击,另一种是被动攻击。

(3)网络软件的漏洞和“后门”。

4、网络攻击和防御分别包括那些内容?

网络攻击:网络扫描、监听、入侵、后门、隐身;

网络防御:操作系统安全配置、加密技术、防火墙技术、入侵检测技术。

5、分析TCP/IP协议,说明各层可能受到的威胁及防御方法。

网络层:IP欺骗攻击,保护措施;防火墙过滤、打补丁;

传输层:应用层:邮件炸弹、病毒、木马等,防御方法:认证、病毒扫描、安全教育等。

6、请分析网络安全的层次体系

从层次体系上,可以将网络安全分成四个层次上的安全:物理安全、逻辑安全、操作系统安全和联网安全。

7、请分析信息安全的层次体系

信息安全从总体上可以分成5个层次:安全的密码算法,安全协议,网络安全,系统安全以及应用安全。

8、简述端口扫描技术的原理

端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的相应。通过分析相应来判断服务端口是打开还是关闭,就可以知道端口提供的服务或信息。端口扫描可以通过捕获本地主机或服务器的注入/流出IP数据包来监视本地主机运行情况。端口扫描只能对接受到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。

9、缓冲区溢出攻击的原理是什么?

缓冲区溢出攻击是一种系统的攻击手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。

缓冲区溢出攻击最常见的方法是通过使某个特殊的程序的缓冲区溢出转而执行一个shell,通过shell的权限可以执行高级的命令。如果这个特殊程序具有system权限,攻击成功者就能获得一个具有权限的shell,就可以对程序进行操控。

10、列举后门的三种程序,并阐述其原理和防御方法

(1)远程开启TELNET服务。防御方法:注意对开启服务的监护;

(2)建立WEB和TELNET服务。防御方法:注意对开启服务的监控;

(3)让禁用的GUEST用户具有管理权限。防御方法:监护系统注册表。

11、简述一次成功的攻击,可分为哪几个步骤?

隐藏IP-踩点扫描-获得系统或管理员权限-种植后门-在网络中隐身。

12、简述SQL注入漏洞的原理

利用恶意SQL语句(WEB缺少对SQL语句的鉴别)实现对后台数据库的攻击行为。

13、分析漏洞扫描存在问题及如何解决

(1)系统配置规则库问题存在局限性

如果规则库设计的不准确,预报的准确度就无从谈起;

它是根据已知的是安全漏洞进行安排和策划的,而对网络系统的很多危险的威胁确实来自未知的漏洞,这样,如果规则库更新不及时,预报准确度也会相应降低;

完善建议:系统配置规则库应能不断地被扩充和修正,这样是对系统漏洞库的扩充和修正,这在目前开将仍需要专家的指导和参与才能实现。

(2)漏洞库信息要求

漏洞库信息是基于网络系统漏洞库的漏洞扫描的主要判断依据。如果漏洞库

完善建议:漏洞库信息不但应具备完整性和有效性,也应具备简易性的特点,这样即使是用户自己也易于对漏洞库进行添加配置,从而实现对漏洞库的及时更新。

14、按照防火墙对内外来往数据的处理方法可分为哪两大类?分别论述其技术特点。

按照防护墙对内外来往数据的处理方法,大致可以分为两大类:包过滤防火墙和应用代理防火墙。

包过滤防火墙又称为过滤路由器,它通过将包头信息和管理员设定的规则表比较,如果有一条规则不允许发送某个包,路由器将其丢弃。

在包过滤系统中,又包括依据地址进行过滤和依据服务进行过滤。

应用代理,也叫应用网关,它作用在应用层,其特点是完全“阻隔”了网络的通信流,通过对每个应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。

代理服务器有一些特殊类型,主要表现为应用级和回路级代理、公共与专用代理服务器和智能代理服务器。

15、什么是应用代理?代理服务有哪些优点?

应用代理,也叫应用网关,它作用在应用层,其特点是完全“阻隔”了网络的通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。

代理服务器有以下两个优点:

(1)代理服务允许用户“直接”访问互联网,采用代理服务,用户会分为他们是直接访问互联网。

(2)代理服务适合于进行日志记录,因为代理服务遵循优先协议,他们允许日志服务以一种特殊且有效的方式来进行