第一章绪论TCP/IP的成功应用把全世界的计算机和网络连接到一起,形成了一个开放性的全球网络系统——互联网。自1988年起,互联网的规模就保持着每年翻一番的增长速度。美国国会图书馆印刷品的信息量也不过是10万亿字节,而根据2003年3月IDC最新调查预测,到2007年,互联网流动的信息量,包括访问、下载等的数据,每天都会是美国国会图书馆信息量的64000倍。终端用户互联网通信量将会提高28到29倍。但互联网的安全状况却并不乐观。随着商业、政务、金融等不同领域在互联网上业务的开展,越来越多不同背景和不同动机的参与者加入到互联网环境中,现实社会中的各种违法犯罪行为在互联网中也不断出现,互联网不再是当初以教育和科研为主要目的的校园式互信开放环境,它已成为最主要的网络攻击目标,其安全漏洞的出现速度实际上已经超过了互联网规模的增长速度。便捷的网络环境,拉近了攻防双方的距离。1988年11月RobertT.Morris的“Internet蠕虫”事件,导致数以千计的联网主机遭受攻击,引起了全社会对安全问题的关注。随着互联网的快速发展,各种网络攻击,如IP欺骗、TCP连接劫持、拒绝服务、网络窃听等明显增多,而伴随动态Web而出现的各种新技术,为网络攻击提供了更多的可能性。信息安全的研究是伴随着计算机的普及和发展而兴起的,网络环境下复杂的安全状况更推动了信息安全领域研究的发展和深入。防火墙、入侵检测系统和密码学等领域的研究蓬勃发展,各国计算机应急事件反应小组相继成立,信息安全问题已经成为各国家、各部门、各行业乃至每个计算机用户极为关注的重要问题。1.1信息安全概述1.1.1信息安全的定义信息安全并没有统一的定义。按照美国国家安全电信和信息系统安全委员会(NSTISSC)的说法,信息安全是对信息、系统以及使用、存储和传输信息的硬件的保护。从广义来理解,这种保护手段应该不仅包括技术,还应包括策略、法规和教育等。1.1.2信息安全的特征信息的安全性有自己的特征。这些特征体现了信息的价值,但对于不同的用户来说,同样的特征却可能具有不同的价值。保密性:防止信息有意或无意地被非授权泄露。完整性:防止信息被非授权修改、保持信息的内外部一致。可用性:保证信息可以被授权者及时、可靠地访问。可控性:对信息的保密性进行控制的能力。不可抵赖性:信息源对信息无法否认或抵赖的特性。信息安全的主要任务就是保证信息的这些特征。1.1.3信息安全的研究内容从学科的角度来讲,信息安全学科群体系由核心学科群、支撑学科群和应用学科群三部分构成,是一个‘以信息安全理论为核心,以信息技术、信息工程和信息管理等理论体系为支撑,以国家和社会各领域信息安全防护为应用方向’的跨学科的交叉性学科群体系。该学科交叉性和边缘性强,应用领域面宽,是一个庞大的学科群体系,涉及计算机科学与技术、通信工程、电子工程、物理、数学等多个学科,横跨理科、工科和军事学等三个门类,涉及的知识点也非常庞杂。随着信息技术的发展与应用,信息安全的内涵在不断的延伸,从最初的信息保密性发展到信息的完整性、可用性、可控性和不可否认性,进而又发展为攻(攻击)、防(防范)、测(检测)、控(控制)、管(管理)、评(评估)等多方面的基础理论和实施技术。信息安全是一个综合、交叉学科领域,它综合利用数学、物理、通信和计算机诸多学科的长期知识积累和最新发展成果,进行自主创新研究,加强顶层设计,提出系统的、完整的,协同的解决方案。与其他学科相比,信息安全的研究更强调自主性和创新性,自主性可以避免信息系统被别国植入后门,体现国家主权;而创新性可以抵抗各种攻击,适应技术发展的需求。就理论研究而言,一些关键的基础理论需要保密,因为从基础理论研究到实际应用的距离很短。现代信息系统中的信息安全其核心问题是密码理论及其应用,其基础是可信信息系统的构建与评估。总的来说,目前在信息安全领域人们所关注的焦点主要有以下几方面:1)密码理论与技术;2)安全协议理论与技术;3)安全体系结构理论与技术;4)信息对抗理论与技术;5)网络安全与安全产品。网络的发展将信息安全的重要性带到一个前所未有的高度。网络是信息安全研究的基础。为了更好地学习信息安全知识,掌握网络的攻防策略,下面将回顾—些相关的计算机网络基础知识,作为全书内容的准备。1.2网络体系结构1.2.1ISO-OSI模型计算机网络是计算机技术和通信技术相结合的产物。自从1946年第一台电子计算机ENIVAC问世以来,由于计算机网络技术和软件技术的不断发展,人们使用计算机的方式有了根本的改变,由多人通过终端使用一台计算机到现在一人通过计算机网络使用多台计算机。计算机网络是由多个独立的计算机通过通信线路和通信设备互连起来的系统,以实现彼此交换信息和共享资源的目的。计算机网络具有以下功能:数据通信,网络系统中各相连的计算机能够相互传送数据信息,使相距很远的用户之间能够直接交换数据。资源共享,网络中的软件,硬件资源如外部设备、文件系统和数据等可为多个用户所共享。并行和分布式处理,在计算机网络中用户可根据问题的性质和要求选择网内最合适的资源来处理。对于综合性的大问题,可以采用合适的算法,将任务分散到不同的计算机上进行分布和并行处理。提高可靠性,由于控制、数据、软件和硬件的分散性(不存在集中环节),资源冗余以及结构上可动态重组提高了可靠性。好的可扩充性,随着用户需求的增长,包括性能方面和功能方面的增长,只需增加新节点数,而不必替换整个系统。可扩充性可以避免较大的初始投资,另外使用多个微小型机代替一个大型主机,可以获得很好的性能价格比。随着计算机网络的日益普及,它已经应用在各个领域中,我们在日常生活中常见的采用计算机的服务项目,如银行的提款机,销售点的终端,支票和发票的核实等都依赖于计算机网络。下面是计算机网络应用的一些典型领域:服务业:通过计算机网络系统进行酒店和航空公司的在线订票、订房,远程购物等等。金融服务业:现在的金融服务都依赖于计算机网络,如外汇汇兑和投资服务,电子资金转账服务等。企业管理:通过网络信息系统对企业生产、销售、财务等方面进行管理。制造业:计算机网络在制造业的多个方面包括制造过程本身,都有应用。如计算机辅助设计(CAD)和计算机辅助制造(CAM),这两种业务都允许同时有许多用户在同一个项目上工作。电子消息传递:最广泛的应用如电子邮件。信息服务:如电子公告板和站点。实时信息传递:如音频和视频会议,视频点播,远程教学等。总之,计算机网络的应用已经深入到社会和经济生活的各个方面。随着计算机网络应用的不断推广和普及,网络软件的设计和开发越来越流行,目前绝大多数系统软件(例如:操作系统UNIX、Linux、Windows系列等)和应用软件是网络版的。掌握网络安全的原理和方法对于设计和开发网络应用程序是十分重要的。计算机网络要完成数据处理和数据通信两大功能。相应地,网络结构可以分成两大部分:负责数据处理的计算机和终端;负责数据通信的通信控制处理机CPP(CommunicationControlProcessor)、通信线路。计算机网络从逻辑功能上可以分为两个子网:资源子网和通信子网,其结构如图1-1。图1-1资源子网和通信子网计算机网络由若干个相互连接的节点组成,在这些节点之间要不断地进行数据交换。要通信子网资源子网进行正确的数据传输,每个节点就必须遵守一些事先约定好的规则,这些规则就是网络协议。网络协议是在主机与主机之间、主机与通信子网之间或子网中各通信节点之间的通信而使用的,是通信双方必须遵守的,事先约定好的规则、标准或约定。一个网络协议主要由以下三个要素组成:1.语法:即数据与控制信息的结构或格式。如:数据格式、信号电平等规定。2.语义:即需要发出何种控制信息,完成何种动作,以及做出何种应答。包括用于调整和进行差错处理的控制信息。3.时序(同步):即事件实现顺序的详细说明,包括速度匹配和顺序。为了减少网络设计的复杂性,大多数网络在设计上都是分成不同功能的多个层次的。图1-2是国际标准化组织ISO-OSI网络参考模型,图1-3是以报文传输的形式演示了图1-2中的通信过程。各层协议是通信双方在通信过程中的约定,规定有关部件在通信过程中的操作以保证正确地进行通信。各层的主要功能如下:1.物理层:规定在一个节点内如何把计算机连接到通信介质上,规定了机械的、电气的功能;该层负责建立、保持和拆除物理链路;规定如何在此链路上传送原始比特流;比特如何编码,使用的电平,极性,连接插头插座的插脚如何分配等。所以在物理层数据的传送单位是比特(bit)。2.数据链路层:它把相邻两个节点间不可靠的物理链路变成可靠的无差错的逻辑链路,包括把原始比特流分帧、排序、设置检错、确认、重发、流控等功能;数据链路层传输信息的单位是帧(frame),每帧包括一定数量的数据和一些必要的控制信息,在每帧的控制信息中,包括同步信息、地址信息、差错控制信息、流量控制信息等;同物理层相似,数据链路层负责建立、维护和释放数据链路。3.网络层:它连接网络中任何两个计算机节点,从一个节点上接收数据,正确的传送到另一个节点;在网络层,传送的信息单位是分组或包(packet)。网络层的主要任务是要选择合适的路由和交换节点,透明地向目的站交付发送站所发的分组或包,这里的透明表示收发两端好像是直接连通的。另外网络层还要解决网络互连、拥挤控制和记账等问题。上述三层组成了所谓的通信子网,用户计算机连接到此子网上。通信子网负责把一个地方的数据可靠地传送到另一个地方,但并未实现两个地方主机上进程之间的通信。通信子网的主要功能是面向通信的。4.传输层:真正地实现了端—端间通信,把数据可靠地从一方的用户进程或程序送到另一方的用户进程或程序。这一层的控制通常由通信两端的计算机完成,中间节点一般不提供这一层的服务,这一层的通信与通信子网无关。从这一层开始的以上各层全部是针对通信的最终的源端—目的端计算机的进程之间的。传输层传送的信息单位是报文(message)。传输层向上一层提供一个可靠的端—端的服务,使上一层看不见下面几层的通信细节。正因为如此,传输层成为网络体系结构中最关键的一层。对于传输层的功能,主要在主机内实现。而对于物理层、数据链路层以及网络层的功能均在报文接口机中实现。对于传输层以上的各个层次的功能通常在主机中实现。5.对话层:又称会话层。它允许两个计算机上的用户进程建立对话连接,双方相互确认身份,协商对话连接的细节;它可管理对话是双向同时进行的,还是任何时刻只能一个方向进行。在后一种情况下,对话层控制哪一方有权发送数据;对话层还提供同步机制,在数据流中插入同步点机制,在每次网络出现故障后可以仅重传最近一个同步点以后的数据,而不必从头开始。以上两层为两个计算机上的用户进程或程序之间提供了正确传送数据的手段。6.表示层:主要解决用户信息的语法表示问题。表示层将数据从适合于某一系统的语法转变为适合于OSI系统内部使用的语法。具体地讲,表示层对传送的用户数据进行翻译或解释、编码和变换,使得不同类型的机器对数据信息的不同表示方法可以相互理解。另外,数据加密、解密、信息压缩等都是本层的典型功能。7.应用层:应用层确定进程之间通信的性质以满足用户的需要;负责用户信息的语义表示,并在两个通信者之间进行语义匹配。具体地说,应用层处理用户的数据和信息,由用户程序(应用程序)组成,完成用户所希望的实际任务。这一层包括人们普遍需要的协议,例如,虚拟终端协议、文件传送协议、电子邮件等。图2ISOOSI/RM图1-2OSI的参考模型图1-3层间通信与对等层间通信1.2.2服务和数据单元1.数据的传输方式数据链路层协议主机A主机B应用层应用层表示层对话层传输层网络层网络层网络层数据链路层数据链路层物理层物理层物理层数据链路层物理层数据链路层网络层传输层对话层表示层应用层协议表示层协议对话层协议传输层协议中间节点物理层协议网络层协议发送主机接收主机应用层应用层表示层对话层传输层网络层数据链路层物理层物理层数据链路层网络层传输层对话层表示层DataDataAHDataAHDat