资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2024/11/28,1,第,4,章 网络安全,-2,安全协议,主要知识点:,-,Kerberos,协议,-,SSL,协议,-,IPSec,协议,-,PGP,2024/11/28,2,网络安全协议,按照其完成的功能,可以分为:,(1),密钥交换协议,:,一般情况下是在参与协议的两个或者多个实体之间建立共享的秘密,通常用于建立在一次通信中所使用的会话密钥。,(2),认证协议,:,认证协议中包括实体认证(身份认证)协议、消息认证协议、数据源认证和数据目的认证协议等,用来防止假冒、篡改、否认等攻击。,(3),认证和密钥交换协议,:,这类协议将认证和密钥交换协议结合在一起,是网络通信中最普遍应用的安全协议。该类协议首先对通信实体的身份进行认证,如果认证成功,进一步进行密钥交换,以建立通信中的工作密钥,也叫密钥确认协议。,2024/11/28,3,网络层的安全协议:,IPSec,传输层的安全协议:,SSL/TLS,应用层的安全协议,:,SHTTP,(Web,安全协议),PGP,(,电子邮件安全协议),S/MIME,(,电子邮件安全协议),MOSS,(,电子邮件安全协议),PEM,(,电子邮件安全协议),SSH,(,远程登录安全协议),Kerberos,(,网络认证协议)等。,常见的网络安全协议,2024/11/28,4,Kerberos,协议,在一个开放的分布式网络环境中,,,用户通过工作站访问服务器上提供的服务时,,一方面,工作站无法可信地向网络服务证实用户的身份,可能存在着以下三种威胁:,用户可能访问某个特定工作站,并假装成另一个用户在操作工作站。,用户可能会更改工作站的网络地址,使从这个已更改的工作站上发出的请求看似来自伪装的工作站。,用户可能窃听他人的报文交换过程,并使用重放攻击来获得对一个服务器的访问权或中断服务器的运行。,2024/11/28,5,另一方面,在开放的网络环境中,客户也必须防止来自服务端的欺骗。,以自动取款机,ATM,为例,如果存在欺骗,那么客户将泄漏自己的帐户信息。,如何使用一个集中的认证服务器,提供用户对服务器的认证以及服务器对用户的认证,这就是,Kerberos,要解决的问题。,2024/11/28,6,Kerberos,概述,Kerberos,是由美国麻省理工学院(,MIT),提出的基于可信赖的第三方的认证系统,它是基于,Needham-Schroeder,协议设计的,采用对称密码体制。,Kerberos,一词源自希腊神话,在希腊神话故事中,,Kerberos,是一种长有三个头的狗,还有一个蛇形尾巴,是地狱之门的守卫者。现代取,Kerberos,这个名字意指要有三个,“,头,”,来守卫网络之门,这,“,三头,”,包括:,-,认证,(,authentication),-,清算,(,accounting),-,审计,(,audit),2024/11/28,7,Kerberos,协议中的一些概念,Principal(,安全个体),被鉴别的个体,有一个名字(,name),和口令(,password)。,KDC(Key distribution center,,密钥分配中心,),可信的第三方,即,Kerberos,服务器,提供,ticket,和临时的会话密钥。,Ticket(,访问许可证),是一个记录凭证,客户可以用它来向服务器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信息。,Ticket,中的大多数信息都被加密,密钥为服务器的密钥。,2024/11/28,8,Authenticator(,认证符),是另一个记录凭证,其中包含一些最近产生的信息,产生这些信息需要用到客户和服务器之间共享的会话密钥。,Credentials(,证书),由一个,ticket,加上一个秘密的会话密钥组成。,2024/11/28,9,Kerberos,协议的工作过程,Kerberos,基本思想,采用对称密钥体制对信息进行加密,能正确对信息进行解密的用户就是合法用户。用户在对应用服务器进行访问之前,必须先从第三方(,Kerberos,服务器)获取该应用服务器的访问许可证(,ticket)。,认证服务器,AS,(Authentication Server),许可证颁发服务器,TGS,(Ticket Granting Server),2024/11/28,10,Kerberos,协议的工作过程,认证服务器,AS,许可证颁发服务器,TGS,用户,C,应用服务器,V,图7.3,Kerberos,的认证过程,2022/12/29,11,用户想,要,要获取访,问,问某一应,用,用服务器,的,的许可证,时,时,先以,明,明文方式,向,向认证服,务,务器,AS,发出请求,,,,要求获,得,得访问,TGS,的许可证,。,。,AS,以证书(,credential),作为响应,,,,证书包,括,括访问,TGS,的许可证,和,和用户与,TGS,间的会话,密,密钥。会,话,话密钥以,用,用户的密,钥,钥加密后,传,传输。,用户,解,解密得,到,到,TGS,的响应,,,,然后,利,利用,TGS,的许可,证,证向,TGS,申请应,用,用服务,器,器的许,可,可证,,该,该申请,包,包括,TGS,的许可,证,证和一,个,个带有,时,时间戳,的,的认证,符,符(,authenticator)。,认证符,以,以用户,与,与,TGS,间的会,话,话密钥,加,加密。,2022/12/29,12,TGS,从许可,证,证中取,出,出会话,密,密钥、,解,解密认,证,证符,,验,验证认,证,证符中,时,时间戳,的,的有效,性,性,从,而,而确定,用,用户的,请,请求是,否,否合法,。,。,TGS,确认用,户,户的合,法,法性后,,,,生成,所,所要求,的,的应用,服,服务器,的,的许可,证,证,许,可,可证中,含,含有新,产,产生的,用,用户与,应,应用服,务,务器之,间,间的会,话,话密钥,。,。,TGS,将应用,服,服务器,的,的许可,证,证和会,话,话密钥,传,传回到,用,用户。,用户,向,向应用,服,服务器,提,提交应,用,用服务,器,器的许,可,可证和,用,用户新,产,产生的,带,带时间,戳,戳的认,证,证符(,认,认证符,以,以用户,与,与应用,服,服务器,之,之间的,会,会话密,钥,钥加密,),)。,应用,服,服务器,从,从许可,证,证中取,出,出会话,密,密钥、,解,解密认,证,证符,,取,取出时,间,间戳并,检,检验有,效,效性。,然,然后向,用,用户返,回,回一个,带,带时间,戳,戳的认,证,证符,,该,该认证,符,符以用,户,户与应,用,用服务,器,器之间,的,的会话,密,密钥进,行,行加密,。,。据此,,,,用户,可,可以验,证,证应用,服,服务器,的,的合法,性,性。,2022/12/29,13,Kerberos,的主要,优,优点:,通过对,实,实体和,服,服务的,统,统一管,理,理实现,单,单一注,册,册,也,就,就是说,用,用户通,过,过在网,络,络中的,一,一个地,方,方的一,次,次登录,就,就可以,使,使用网,络,络上他,可,可以获,得,得的所,有,有资源,。,。,Kerberos,存在,的问题,:,:,Kerberos,服务器,的,的损坏,将,将使得,整,整个安,全,全系统,无,无法工,作,作;,AS,在传输,用,用户与,TGS,间的会,话,话密钥,时,时是以,用,用户密,钥,钥加密,的,的,而,用,用户密,钥,钥是由,用,用户口,令,令生成,的,的,因,此,此可能,受,受到口,令,令猜测,的,的攻击,;,;,Kerberos,使用了,时,时间戳,,,,因此,存,存在时,间,间同步,问,问题;,要将,Kerberos,用于某,一,一应用,系,系统,,则,则该系,统,统的客,户,户端和,服,服务器,端,端软件,都,都要作,一,一定的,修,修改。,Kerberos实验,Windows 2003 Server,中,Kerberos,认证服务的,创,创建:,(,1,)升级,Windows 2003 Server,为域控制器,;,;,(,2,)配置,DNS,服务器,(,3,)配置,Kerberos,服务,(,4,),Windows xp,客户端加入,域,域,14,15,16,Kerberos,协议体系架,构,构,17,在整个,Kerberos V5,身份认证过,程,程中主要用,到,到两个服务,,,,那就是,Kerberos,服务和,DNS,服务,分别,所,所用到的端,口,口为,TCP 88,和,TCP 53,。所以,在,域,域网络中要,使,使用,Kerberos,协议进行身,份,份认证,就,必,必须确保网,络,络防火墙对,这,这两个端口,保,保持开放。,参与,Kerberos,身份认证的,组,组件,2022/12/29,18,SSL,协议,SSL,(,安全,套,套接,字,字层,,,,,SecureSocketLayer),协议,是,是网,景,景(,Netscape,),),公司,提,提出,的,的基,于,于,WEB,应用,的,的安,全,全协,议,议,,是,是一,种,种用,于,于传,输,输层,安,安全,的,的协,议,议。,传,传输,层,层安,全,全协,议,议的,目,目的,是,是为,了,了保,护,护传,输,输层,的,的安,全,全,,并,并在,传,传输,层,层上,提,提供,实,实现,保,保密,、,、认,证,证和,完,完整,性,性的,方,方法,。,。,SSL,指定,了,了一,种,种在,应,应用,程,程序,协,协议(例,如,如,http,、,、telnet、NNTP,、,、FTP),和,TCP/IP,之间,提,提供,数,数据,安,安全,性,性分,层,层的,机,机制,。,。它,为,为,TCP/IP,连接,提,提供,数,数据,加,加密,、,、服,务,务器,认,认证,、,、消,息,息完,整,整性,以,以及,可,可选,的,的客,户,户机,认,认证,。,。,2022/12/29,19,SSL,协议,概,概述,图7.4,SSL,的,体,体,系,系,结,结,构,构,SSL,握手协议,SSL,修改密文协议,SSL,告警协议,HTTP,SSL,记录协议,TCP,IP,2022/12/29,20,SSL,中有两个重,要,要概念:,SSL,连接,:连接是提,供,供恰当类型,服,服务的传输,。,。,SSL,连接是点对,点,点的关系,,每,每一个连接,与,与一个会话,相,相联系。,SSL,会话:,SSL,会话是客户,和,和服务器之,间,间的关联,,会,会话通过握,手,手协议(在,SSL,协议的高层)来创建。,会,会话定义了,加,加密安全参,数,数的一个集,合,合,该集合,可,可以被多个,连,连接所共享,。,。会话可以,用,用来避免为,每,每个连接进,行,行昂贵的新,安,安全参数的,协,协商。,2022/12/29,21,SSL,记录协议,SSL,从应用层取,得,得的数据需,要,要重定格式,(,(分片、可,选,选的压缩、,应,应用,MAC、,2022/12/29,22,上层报文,分片1,分片2,分片,n,压缩(可选),加密,增加,MAC,增加,SSL,记录首部,图,7.6,SSL,记录协议的发送方执行的操作步骤,2022/12/29,23,SSL,记录协议,中,中,发送方,执行的操,作,作步骤:,从上层,接,接受传输,的,的应用报,文,文;,分片:将数据分,片,片成可管,理,理的块,,每,每个上层,报,报文被分,成,成16,KB,或更小的,数,数据块;,进行数,据,据压缩(,可,可选):,压,压缩是可,选,选的,压,缩,缩的前提,是,是不能丢,失,失信息,,并,并且增加,的,的内容长,度,度不能超,过,过1024字节,,缺,缺省的压,缩,缩算法为,空,空;,应用,MAC:,加入信息认证,码,码(,MAC),,,,,这一步需,要,要用到共,享,享的密钥,;,;,加密:,利,利用,IDEA,、,、DES,、,、3DES,或,其,其,他,他,加,加,密,密,算,算,法,法,对,对,压,增加,SSL,首部:增加由内容类型、主要版本、次要版本和压缩长度组成的首部。,将结果传输到下层。,2022/12/29,24,SSL,记,录,录,协,协,议,议,中,中,接,收,收,方,方,接,接,收,收,数,数,据,据,的,的,工,作,作,过,过,程,程,从,从,低,低,层,层,接,接,受,受,报,报,文,文,;,;,解密;,用事先商定,的,的,MAC,码校验数据,;,;,如果是压缩,的,的数据,则,解,解压缩;,重装配数据,;,;,传输信息到,上,上层。,2022/12/29,25,SSL,修改密文规,约,约协议,SSL,修改密文规,约,约协议用来,发,发送修改密,文,文规约协议,信,信息。任何,时,时候客户都,能,能请求修改,密,密码参数,,比,比如握手密,钥,钥交换。在,修,修改密文规,约,约的通告发,出,出以后,客,户,户方就发出,一,一个握手密,钥,钥交换信息,(,(如果可得,到,到的话),,鉴,鉴定认证信,息,息,服务器,则,则在处理了,密,密钥交换信,息,息之后发送,一,一个修改密,文,文规约信息,。,。此后,新,的,的双方约定,的,的密钥就将,一,一直使用到,下,下次提出修,改,改密钥规约,请,请求为止。,2022/12/29,26,SSL,告警协,议,议,SSL,告警协,议,议是用,来,来将,SSL,有关的,告,告警传,送,送给对,方,方实体,的,的。和,其,其他使,用,用,SSL,的情况,一,一样,,告,告警报,文,文按照,当,当前状,态,态说明,被,被压缩,和,和加密,。,。,SSL,告警协,议,议的每,个,个报文,由,由两个,字,字节组,成,成。第,一,一个字,节,节的值,用,用来表,明,明警告,的,的的级,别,别,第,二,二个字,节,节表示,特,特定告,警,警的代,码,码。如,果,果在通,信,信过程,中,中某一,方,方发现,任,任何异,常,常,就,需,需要给,对,对方发,送,送一条,警,警示消,息,息通告,。,。,警示消,息,息有两,种,种:一,种,种是,Fatal,错误,如,如传递,数,数据过,程,程中,,发,发现错,误,误的,MAC,,,,,双方就,需,需要立,即,即中断,会,会话,,同,同时消,除,除自己,缓,缓冲区,相,相应的,会,会话记,录,录;第,二,二种是,Warning,消息,,这,这种情,况,况,通,信,信双方,通,通常都,只,只是记,录,录日志,,,,而对,通,通信过,程,程不造,成,成任何,影,影响。,SSL,握手协,议,议,一个,SSL,会话工,作,作在不,同,同的状,态,态,即,会,会话状,态,态和连,接,接状态,。,。,会话状,态,态,:,会话,标,标识符,对方,的,的证书,压缩,方,方法,密文,规,规约,主密,钥,钥,可重,新,新开始,标,标志,连接状,态,态,:,服务,器,器和客,户,户随机,数,数,服务,器,器写,MAC,密钥,客户,写,写,MAC,密钥,服务,器,器写密,钥,钥,客户,写,写密钥,初始,化,化向量,序号,SSL,握手协,议,议用于,鉴,鉴别初,始,始化和,传,传输密,钥,钥,它,使,使得服,务,务器和,客,客户能,相,相互鉴,别,别对方,的,的身份,,,,并保,护,护在,SSL,记录中,发,发送的,数,数据。,因,因此在,传,传输任,何,何应用,数,数据前,,,,都必,须,须使用,握,握手协,议,议。,2022/12/29,29,图7.7,SSL,握手过,程,程,SSL,客户端,SSL,服务器端,发送,”,hello,”,消息,传送数据,回复,”,hello,”,消息,发出服务器证书,服务器密钥交换信息,证书请求,服务器,HELLO DONE,发送证书,客户密钥交换信息,证书验证信息,结束,发修改密文规约信息,结束,发修改密文规约信息,传送数据,2,1,4,3,5,2022/12/29,30,SSL,握手的,详,详细过,程,程,第一步,:,:客户,发,发出一,个,个带有,客,客户,HELLO,信息的,连,连接请,求,求。这,信,信息包,括,括:,想要,使,使用的,SSL,版本号,。,。,时间,信,信息,,以,以标准,的,的,UNIX32,位格式,标,标识的,现,现时和,日,日期。,会话,标,标识(,可,可选),,,,如果,没,没有指,定,定的话,,,,则服,务,务器便,重,重用上,一,一次的,会,会话标,识,识或返,回,回一个,错,错误信,息,息,密文,组,组(客,户,户方所,支,支持的,各,各种加,密,密算法,选,选项清,单,单。包,括,括认证,码,码、密,钥,钥交换,方,方法、,加,加密和,MAC,算法),。,。,客户,方,方所支,持,持的压,缩,缩算法,。,。,随机,数,数。,2022/12/29,31,SSL,握手的,详,详细过,程,程,第二步,:,:服务,器,器评估,客,客户方,发,发来的,HELLO,信息中,的,的各项,参,参数,,并,并且返,回,回一个,服,服务器,方,方的,HELLO,信息,,其,其中含,有,有服务,器,器选来,用,用于,SSL,会话的,各,各项参,数,数(版,本,本号、,时,时间信,息,息、以,标,标准的,UNIX32,位格式,标,标识的,现,现时和,日,日期、,会,会话标,识,识、密,文,文组、,压,压缩方,法,法、随,机,机数),。,。,在服务,器,器,HELLO,信息之,后,后,服,务,务器发,出,出如下,信,信息:,服务,器,器证书,,,,如果,服,服务器,需,需要被,鉴,鉴别的,话,话。,服,服务器,密,密钥交,换,换信息,,,,如果,得,得不到,证,证书或,证,证书仅,仅,仅用作,签,签名的,话,话。,证,证书请,求,求,如,果,果客户,要,要求被,鉴,鉴别的,话,话。,最后,,服,服务器,发,发出一,个,个服务,器,器,HELLODONE,信,息,息,,,,,开,开,始,始,等,等,待,待,客,客,户,户,的,的,回,回,音,音,。,。,2022/12/29,32,SSL,握,手,手,的,的,详,详,细,细,过,过,程,程,第,三,三,步,步,:,:,客,客,户,户,发,发,送,送,下,下,列,列,信,信,息,息,:,:,如,如,果,果,服,服,务,务,器,器,发,发,出,出,了,了,一,一,个,个,证,证,书,书,请,请,求,求,,,,,那,那,么,么,客,客,户,户,方,方,必,必,须,须,发,发,送,送,一,一,个,个,证,证,书,书,或,或,非,非,证,证,书,书,信,信,息,息,。,。,如,如,果,果,服,服,务,务,器,器,发,发,送,送,了,了,一,一,个,个,服,服,务,务,器,器,密,密,钥,钥,交,交,换,换,信,信,息,息,,,,,那,那,么,么,客,客,户,户,方,方,就,就,发,发,送,送,一,一,个,个,基,基,于,于,公,公,钥,钥,算,算,法,法,的,的,由,由,HELLO,信,息,息,决,决,定,定,的,的,密,密,钥,钥,交,交,换,换,信,信,息,息,。,。,如,如,果,果,客,客,户,户,方,方,已,已,经,经,发,发,送,送,了,了,一,一,个,个,证,证,书,书,,,,,那,那,么,么,客,客,户,户,方,方,就,就,需,需,验,验,证,证,服,服,务,务,器,器,方,方,的,的,证,证,书,书,并,并,且,且,发,发,出,出,一,一,个,个,证,证,书,书,验,验,证,证,信,信,息,息,指,指,明,明,结,结,果,果,。,。,然,后,后,,,,,客,客,户,户,方,方,发,发,出,出,一,一,个,个,结,结,束,束,信,信,息,息,,,,,指,指,出,出,协,协,商,商,过,过,程,程,已,已,经,经,完,完,成,成,。,。,客,客,户,户,方,方,还,还,发,发,送,送,一,一,个,个,修,修,改,改,密,密,文,文,规,规,约,约,信,信,息,息,来,来,产,产,生,生,共,共,享,享,的,的,常,常,规,规,密,密,钥,钥,。,。,应,应,该,该,注,注,意,意,这,这,部,部,分,分,工,工,作,作,不,不,是,是,由,由,握,握,手,手,协,协,议,议,控,控,制,制,,,,,是,是,由,由,修,修,改,改,密,密,文,文,规,规,约,约,协,协,议,议,管,管,理,理,的,的,。,。,2022/12/29,33,SSL,握手的详细,过,过程,第四步:服,务,务器发出一,个,个结束信息,指,指出协商协,商,商阶段完成,。,。然后服务,器,器发出一个,密,密文修改规,约,约信息。,第五步:会,话,话双方分别,产,产生一个加,密,密密钥,然,后,后他们再根,据,据这些密钥,导,导出会话主,密,密钥。握手,协,协议改变状,态,态至连接状,态,态。所有从,应,应用层的来,的,的数据传输,作,作为特定信,息,息传输给对,方,方。,2022/12/29,34,在,Windows,中使用证书,和,和,SSL,本实验中将,首,首先看看默,认,认情况下什,么,么证书颁发,机,机构被配置,来,来与浏览器,合,合作。然后,将,将创建一个,证,证书颁发机,构,构服务器,,设,设置一个,Web,服务器来使,用,用,SSL,,并测试新,的,的配置。,当使用,SSL,连接到,Web,服务器时,,地,地址栏中的,URL,将显示,https,。,SSL,在传输层使,用,用,TCP,端口,443,。,35,在,Web,服务器上使,用,用证书进行,身,身份认证的,示,示意图,实验步骤,1列举浏,览,览器所配置,的,的受信任的,证,证书颁发机,构,构。,2安装并,配,配置证书颁,发,发机构服务,器,器(事先已,默,默认配置了WEB服务,器,器)。,3创建证,书,书请求。,4颁发/,签,签署证书。,5用SSL安全化Web站点。,6描述当,以,以SSL连,接,接时Web,页,页面使用的,过,过程。,36,2022/12/29,37,SSL,协议,的,的优,点,点,机密,性,性,即连,接,接是,私,私有,的,的。,在,在初,始,始握,手,手阶,段,段,,双,双方,建,建立,对,对称,密,密钥,后,后,,信,信息,即,即用,该,该密,钥,钥加,密,密。,完整,性,性,在信,息,息中,嵌,嵌入,信,信息,鉴,鉴别,码,码(,MAC),来保,证,证信,息,息的,完,完整,性,性。,其,其中,使,使用,了,了安,全,全哈,希,希函,数,数(,例,例如,SHA,和,MD5),来进,行,行,MAC,计算,。,。,鉴别,在握,手,手阶,段,段,,客,客户,鉴,鉴别,服,服务,器,器用,不,不对,称,称密,钥,钥或,公,公开,密,密钥,。,。,2022/12/29,38,SSL,协,议,议,的,的,不,不,足,足,SSL,要,求,求,对,对,每,每,个,个,数,数,据,据,进,进,行,行,加,加,密,密,和,和,解,解,密,密,操,操,作,作,,,,,因,因,而,而,在,在,带,带,来,来,高,高,性,性,能,能,的,的,同,同,时,时,,,,,对,对,系,系,统,统,也,也,要,要,求,求,高,高,资,资,源,源,开,开,销,销,。,。,SSL,协,议,议,主,主,要,要,是,是,使,使,用,用,公,公,开,开,密,密,钥,钥,体,体,制,制,和,和,X.509,数,字,字,证,证,书,书,技,技,术,术,保,保,护,护,信,信,息,息,传,传,输,输,的,的,机,机,密,密,性,性,和,和,完,完,整,整,性,性,,,,,它,它,不,不,能,能,保,保,证,证,信,信,息,息,的,的,不,不,可,可,抵,抵,赖,赖,性,性,,,,,主,主,要,要,适,适,用,用,于,于,点,点,对,对,点,点,之,之,间,间,的,的,信,信,息,息,传,传,输,输,,,,,常,常,用,用,WebServer,方式。,SSL,为带有,安,安全功,能,能的,TCP/IP,套接字,应,应用程,序,序接口,提,提供了,一,一个替,代,代的方,法,法,理,论,论上,,在,在,SSL,之上可,以,以安全,方,方式运,行,行任何,原,原有,TCP/IP,应用程,序,序而不,需,需修改,,,,但实,际,际上,,SSL,目前还,只,只是用,在,在,HTTP,连接上,。,。,2022/12/29,39,OpenSSL,40,openssl-,加密算,法,法,作为一,个,个基于,密,密码学,的,的安全,开,开发包,,,,,OpenSSL,提供的,功,功能相,当,当强大,和,和全面,,,,囊括,了,了主要,的,的密码,算,算法、,常,常用的,密,密钥和,证,证书封,装,装管理,功,功能以,及,及,SSL,协议,,并,并提供,了,了丰富,的,的应用,程,程序供,测,测试或,其,其它目,的,的使用,。,。,1.对,称,称加密,算,算法,OpenSSL,一共提,供,供了8,种,种对称加,密,密算法,其中7种是,分,分组加,密,密算法,,,,仅有,的,的一种,流,流加密,算,算法是,RC4。,这7种,分,分组加,密,密算法,分,分别是,AES、DES、Blowfish、CAST、IDEA、RC2、RC5,,都支持,电,电子密,码,码本模,式,式(,ECB)、,加密分,组,组链接,模,模式(,CBC)、,加密反,馈,馈模式,(,(,CFB),和输出,反,反馈模,式,式(,OFB,),),四种常,用,用的分,组,组密码,加,加密模,式,式。其,中,中,,AES,使用的,加,加密反,馈,馈模式,(,(,CFB),和输出,反,反馈模,式,式(,OFB,),),分组长,度,度是128位,,,,其它,算,算法使,用,用的则,是,是64,位,位。事,实,实上,,DES,算法里,面,面不仅,仅,仅是常,用,用的,DES,算法,,还,还支持,三,三个密,钥,钥和两,个,个密钥3,DES,算法。,2.非,对,对称加,密,密算法,OpenSSL,一共实,现,现了4,种,种非对,称,称加密,算,算法,,包,包括,DH,算法、,RSA,算法、,DSA,算法和椭圆曲,线,线算法(,EC),。,。,DH,算法一,般,般用户,密,密钥交,换,换。,RSA,算法既,可,可以用,于,于密钥,交,交换,,也,也可以,用,用于数,字,字签名,。,。,DSA,算法则,一,一般只,用,用于数,字,字签名,。,。,41,3.信,息,息摘要,算,算法,OpenSSL,实现了5种信,息,息摘要,算,算法,,分,分别是,MD2,、,、MD5、MDC2、SHA(SHA1),和,RIPEMD。SHA,算法事,实,实上包,括,括了,SHA,和,SHA1,两种信,息,息摘要,算,算法,,此,此外,,OpenSSL,还实现,了,了,DSS,标准中,规,规定的,两,两种信,息,息摘要,算,算法,DSS,和,DSS1。,4.密,钥,钥和证,书,书管理,密钥和,证,证书管,理,理是,PKI,的一个,重,重要组,成,成部分,,,,,OpenSSL,为之提,供,供了丰,富,富的功,能,能,支,持,持多种,标,标准。,首先,,OpenSSL,实现了,ASN.1,的证书和密,钥,钥相关标准,,,,提供了对,证,证书、公钥,、,、私钥、证,书,书请求以及,CRL,等数据对象,的,的,DER、PEM,和,BASE64,的编解码功,能,能。,OpenSSL,提供了产生,各,各种公开密,钥,钥对和对称,密,密钥的方法,、,、函数和应,用,用程序,同,时,时提供了对,公,公钥和私钥,的,的,DER,编解码功能,。,。并实现了,私,私钥的,PKCS#12,和,PKCS#8,的编解码功,能,能。,OpenSSL,在标准中提,供,供了对私钥,的,的加密保护,功,功能,使密,钥,钥可以安全,地,地进行存储,和,和分发。,在此基础上,,,,,OpenSSL,实现了对证,书,书的,X.509,标准编解码,、,、,PKCS#12,格式的编解,码,码以及,PKCS#7,的编解码功,能,能。并提供,了,了一种文本,数,数据库,支,持,持证书的管,理,理功能,包,括,括证书密钥,产,产生、请求,产,产生、证书,签,签发、吊销,和,和验证等功,能,能。,OpenSSL,提供的,CA,应用程序就,是,是一个小型,的,的证书管理,中,中心(,CA),,实现了证书,签,签发的整个,流,流程和证书,管,管理的大部,分,分机制。,42,5.,SSL,和,TLS,协议,OpenSSL,实现了,SSL,协议的,SSLv2,和,SSLv3,,,,,支持了其中,绝,绝大部分算,法,法协议。,OpenSSL,也实现了,TLSv1.0,TLS,是,SSLv3,的标准化版,,,,虽然区别,不,不大,但毕,竟,竟有很多细,节,节不尽相同,。,。,虽然已经有,众,众多的软件,实,实现了,OpenSSL,的功能,但,是,是,OpenSSL,里面实现的,SSL,协议能够对,SSL,协议有一个,更,更加清楚的,认,认识,因为,至,至少存在两,点,点:一是,OpenSSL,实现的,SSL,协议是开放,源,源代码的,,可,可以追究,SSL,协议实现的,每,每一个细节,;,;二是,OpenSSL,实现的,SSL,协议是纯粹,的,的,SSL,协议,没有,跟,跟其它协议,(,(如,HTTP),协议结合在,一,一起,澄清,了,了,SSL,协议的本来,面,面目。,6.应用程,序,序,OpenSSL,的应用程序,已,已经成为了,OpenSSL,重要的一个,组,组成部分。,现,现在,OpenSSL,的应用中,,很,很多都是基,于,于,OpenSSL,的应用程序,而,而不是其,API,的,如,OpenCA,,就是完全使,用,用,OpenSSL,的应用程序,实,实现的。,OpenSSL,的应用程序,是,是基于,OpenSSL,的密码算法,库,库和,SSL,协议库写成,的,的,所以也,是,是一些非常,好,好的,OpenSSL,的,API,使用范例。,OpenSSL,的应用程序,提,提供了相对,全,全面的功能,,,,在相当多,的,的人看来,,OpenSSL,已经为自己,做,做好了一切,,,,不需要再,做,做更多的开,发,发工作了,,所,所以,他们,也,也把这些应,用,用程序成为,OpenSSL,的指令。,OpenSSL,的应用程序,主,主要包括密,钥,钥生成、证,书,书管理、格,式,式转换、数,据,据加密和签,名,名、,SSL,测试以及其,它,它辅助配置,功,功能。,43,7.,Engine,机制,Engine,机制的出现,是,是在,OpenSSL,的0.9.6版的事情,,,,开始的时,候,候是将普通,版,版本跟支持,Engine,的版本分开,的,的,到了,OpenSSL,的0.9.7版,,Engine,机制集成到,了,了,OpenSSL,的内核中,,成,成为了,OpenSSL,不可缺少的,一,一部分。,Engine,机制目的是,为,为了使,OpenSSL,能够透明地,使,使用第三方,提,提供的软件,加,加密库或者,硬,硬件加密设,备,备进行加密,。,。,OpenSSL,的,Engine,机制成功地,达,达到了这个,目,目的,这使,得,得,OpenSSL,已经不仅仅,使,使一个加密,库,库,而是提,供,供了一个通,用,用地加密接,口,口,能够与,绝,绝大部分加,密,密库或者加,密,密设备协调,工,工作。当然,,,,要使特定,加,加密库或加,密,密设备更,OpenSSL,协调工作,,需,需要写少量,的,的接口代码,,,,但是这样,的,的工作量并,不,不大,虽然,还,还是需要一,点,点密码学的,知,知识。,Engine,机制的功能,跟,跟,Windows,提供的,CSP,功能目标是,基,基本相同的,。,。目前,,OpenSSL,的0.9.7版本支持,的,的内嵌第三,方,方加密设备,有,有8种,包,括,括:,CryptoSwift、nCipher、Atalla、Nuron、UBSEC、Aep、SureWare,以及,IBM 4758 CCA,的硬件加密,设,设备。现在,还,还出现了支,持,持,PKCS#11,接口的,Engine,接口,支持,微,微软,CryptoAPI,的接口也有,人,人进行开发,。,。当然,所,有,有上述,Engine,接口支持不,一,一定很全面,,,,比如,可,能,能支持其中,一,一两种公开,密,密钥算法。,44,8.辅助功,能,能,BIO,机制是,OpenSSL,提供的一种,高,高层,IO,接口,该接,口,口封装了几,乎,乎所有类型,的,的,IO,接口,如内,存,存访问、文,件,件访问以及,Socket,等。这使得,代,代码的重用,性,性大幅度提,高,高,,OpenSSL,提供,API,的复杂性也,降,降低了很多,。,。,OpenSSL,对于随机数,的,的生成和管,理,理也提供了,一,一整套的解,决,决方法和支,持,持,API,函数。随机,数,数的好坏是,决,决定一个密,钥,钥是否安全,的,的重要前提,。,。,OpenSSL,还提供了,其,其它的一,些,些辅助功,能,能,如从,口,口令生成,密,密钥的,API,,证书签发,和,和管理中,的,的配置文,件,件机制等,等,等。,45,IPSec,协议,由于协议,IPv4,最初设计,时,时没有过,多,多地考虑,安,安全性,,缺,缺乏对通,信,信双方真,实,实身份的,验,验证能力,,,,缺乏对,网,网上传输,的,的数据的,完,完整性和,机,机密性保,护,护,并且,由,由于,IP,地址可软,件,件配置等,灵,灵活性以,及,及基于源,IP,地址的认,证,证机制,,使,使,IP,层存在着,网,网络业务,流,流易被监,听,听和捕获,、,、,IP,地址欺骗,、,、信息泄,漏,漏和数据,项,项被篡改,等,等多种攻,击,击,而,IP,是很难抵,抗,抗这些攻,击,击的。,为了实现,安,安全,IP,,因特网工,程,程任务组,IETF,于1994年开始,了,了一项,IP,安全工程,,,,专门成,立,立了,IP,安全协议,工,工作组,IPSEC,,来制定和,推,推动一套,称,称为,IPSec,的,IP,安全协议,标,标准。,46,IPSec,协议组,网络认证,协,协议,Authentication Header(AH,),),封装安全,载,载荷协议,Encapsulating Security Payload(ESP),密钥管理,协,协议,InternetKeyExchange (IKE),网络认证,及,及加密算,法,法,47,IPSec,安全体系,结,结构,图7.8,IPSec,安全体系,结,结构,IPSec,体系结构,ESP,协议,AH,协议,加密算法,DOI,解释域,密钥管理,认证算法,48,ESP,协议规定,了,了为通信,提,提供机密,性,性和完整,性,性保护的,具,具体方案,,,,包括,ESP,载荷的格,式,式、语义,、,、取值以,及,及对进入,分,分组和外,出,出分组的,处,处理过程,等,等。,DOI,Interpretation of Domain,,,,DOI,规定了每,个,个算法的,参,参数要求,和,和计算规,则,则,如算,法,法的密钥,长,长度要求,、,、算法强,度,度要求以,及,及初始向,量,量的计算,规,规则等。,AH,协议定义,了,了认证的,应,应用方法,,,,提供数,据,据源认证,和,和完整性,保,保证。,IKE,协议是,IPSec,目前唯一,的,的正式确,定,定的密别,交,交换协议,,,,为,AH,和,ESP,提供密钥,交,交换支持,,,,同时也,支,支持其他,机,机制,如,密,密钥协商,。,。,49,安全关联,(,(,SecurityAssociation,,,SA,),为了正确,封,封装及提,取,取,IPSec,数据包,,有,有必要采,取,取一套专,门,门的方案,,,,将安全,服,服务,/,密钥与要,保,保护的通,信,信数据联,系,系到一起,;,;同时要,将,将远程通,信,信实体与,要,要交换密,钥,钥的,IPSec,数据传输,联,联系到一,起,起。换言,之,之,要解,决,决如何保,护,护通信数,据,据、保护,什,什么样的,通,通信数据,以,以及由谁,来,来实行保,护,护的问题,。,。这样的,构,构建方案,称,称为安全,关,关联(,SecurityAssociation,,,SA,)。,50,SA,是单向的,,,,要么对,数,数据包进,行,行,“,进入,”,保护,要,么,么进行,“,外出,”,保护。也,就,就是说,,在,在一次通,信,信中,,IPSec,需要建立,两,两个,SA,,,一个用于,入,入站通信,,,,另一个,用,用于出站,通,通信。,若某台主,机,机,如文,件,件服务器,或,或远程访,问,问服务器,,,,需要同,时,时与多台,客,客户机通,信,信,则该,服,服务器需,要,要与每台,客,客户机分,别,别建立不,同,同的,SA。,51,AH(Authentication Header,),),协议,AH,协议规定,了,了,AH,头在,AH,实现中应,插,插入,IP,头的位置,、,、,AH,头的语法,格,格式、各,字,字段的语,义,义及取值,方,方式,以,及,及实施,AH,时进入和,外,外出分组,的,的处理过,程,程。,AH,机制涉及,到,到密码学,中,中的核心,组,组件,鉴别算法,。,。,AH,的功能,AH,的两种模,式,式,AH,的格式,认证算法,52,AH,的功能,AH,协议为,IP,通信提供,数,数据源认,证,证、数据,完,完整性和,反,反重播保,证,证,它能,保,保护通信,免,免受篡改,,,,但不能,防,防止窃听,,,,适合用,于,于传输非,机,机密数据,。,。,AH,的工作,原,原理是,在,在每一,个,个数据,包,包上添,加,加一个,身,身份验,证,证报头,。,。此报,头,头包含,一,一个带,密,密钥的,hash,散列(,可,可以将,其,其当作,数,数字签,名,名,只,是,是它不,使,使用证,书,书),,此,此,hash,散列在,整,整个数,据,据包中,计,计算,,因,因此对,数,数据的,任,任何更,改,改将致,使,使散列,无,无效,这样就,提,提供了,完,完整性,保,保护。,AH,不能提,供,供加密,服,服务,,这,这就意,味,味着分,组,组将以,明,明文的,形,形式传,送,送。由,于,于,AH,的速度,比,比,ESP,稍微快,一,一点,,因,因此仅,当,当需要,确,确保分,组,组的源,和,和完整,性,性而不,考,考虑机,密,密性的,时,时候,,可,可以选,择,择使用,AH。,53,AH,的两种,模,模式,传输模,式,式,:传输,模,模式用,于,于两台,主,主机之,间,间,只,对,对上层,协,协议数,据,据(传,输,输层数,据,据)和,IP,头中的,固,固定字,段,段提供,认,认证,,主,主要保,护,护传输,层,层协议,头,头,实,现,现端到,端,端的安,全,全;,隧道模,式,式,:隧道,模,模式对,整,整个,IP,数据项,提,提供认,证,证保护,,,,把需,要,要保护,的,的,IP,包封装,在,在新的,IP,包中,,既,既可用,于,于主机,也,也可用,于,于安全,网,网关,,并,并且当,AH,在安全,网,网关上,实,实现时,,,,必须,采,采用隧,道,道模式,。,。,54,AH,的两,种,种模,式,式,数据,IP,包头,数据,IP,包头,AH,数据,原,IP,包头,AH,新,IP,包头,传输,模,模式,隧道,模,模式,55,56,57,AH,的格,式,式,图7.11,AH,报头,格,格式,下一个报头,长度,安全参数索引,(,SPI),序列号,认证数据,(,hash,检查和),AH,报头,58,NextHeader(,下一,个,个报,头,头,,占,占8,字,字节,),):,识,识别,下,下一,个,个使,用,用,IP,协议,号,号的,报,报头,,,,例,如,如,,NextHeader,值等,于,于6,时,时,,表,表示,紧,紧接,其,其后,的,的是,TCP,报头,。,。对,于,于,UDP,,它的,值,值将,是,是17。,Length,(,(,长度,,,,占8字,节,节),:,:,AH,报头,长,长度,。,。,SecurityParametersIndex(SPI,,,,,安全,参,参数,索,索引,,,,占32,字,字节):,这,这,是,是一,个,个为,数,数据,报,报识,别,别安,全,全关,联,联的32,位,位伪,随,随机,值,值。,其,其中,,,,,SPI,值0,被,被,保,保留,,,,用,来,来表,明,明,“,没有,安,安全,关,关联,存,存在,”,。,59,SequenceNumber(,序列,号,号,,占,占32字,节,节),:,:这,是,是一,个,个无,符,符号,单,单调,递,递增,的,的计,数,数器,,,,从1开,始,始的32,位,位单,增,增序,列,列号,,,,不,允,允许,重,重复,,,,唯,一,一地,标,标识,了,了每,一,一个,发,发送,数,数据,包,包,,为,为安,全,全关,联,联提,供,供反,重,重播,保,保护,。,。接,收,收端,校,校验,序,序列,号,号为,该,该字,段,段值,的,的数,据,据包,是,是否,已,已经,被,被接,收,收过,,,,若,是,是,,则,则拒,收,收该,数,数据,包,包。,对,对于,一,一个,特,特定,的,的,SA,,,,,它实,现,现反,重,重传,服,服务,。,。这,些,些信,息,息不,被,被接,收,收对,等,等实,体,体使,用,用,,但,但是,发,发送,方,方必,须,须包,含,含这,些,些信,息,息。,当,当建,立,立一,个,个,SA,时,,这,这个,值,值被,初,初始,化,化为0。,如,如果,使,使用,反,反重,传,传服,务,务重,传,传,,那,那么,这,这个,值,值决,不,不允,许,许重,复,复。,由,由于,发,发送,方,方并,不,不知,道,道接,受,受方,是,是否,使,使用,了,了反,重,重传,功,功能,,,,该,字,字段,中,中的,值,值不,能,能被,重,重复,的,的事,实,实就,要,要求,终,终止,SA,,,,,并且,在,在传,送,送第23,个,个分,组,组之,前,前建,立,立一,个,个新,的,的,SA,。,。,60,AuthenticationData(AD,,,,,认证,数,数据,,,,可,变,变长,),):,包,包含,完,完整,性,性检,查,查和,。,。接,收,收端,接,接收,数,数据,包,包后,,,,首,先,先执,行,行,hash,计算,,,,再,与,与发,送,送端,所,所计,算,算的,该,该字,段,段值,比,比较,,,,若,两,两者,相,相等,,,,表,示,示数,据,据完,整,整,,若,若在,传,传输,过,过程,中,中数,据,据遭,修,修改,,,,两,个,个计,算,算结,果,果不,一,一致,,,,则,丢,丢弃,该,该数,据,据包,。,。通,过,过这,个,个值,,,,通,信,信双,方,方能,实,实现,对,对数,据,据的,完,完整,性,性保,护,护、,分,分组,级,级数,据,据源,鉴,鉴别,以,以及,通,通信,的,的抗,重,重放,攻,攻击,。,。,61,传输,模,模式,下,下的,AH,数据,包,包格,式,式,隧道,模,模式,下,下的,AH,数据,包,包格,式,式,62,63,认证,算,算法,用于,计,计算,完,完整,性,性校,验,验值(,ICV),的认,证,证算,法,法由,SA,指定,,,,对,于,于点,到,到点,通,通信,,,,合,适,适的,认,认证,算,算法,包,包括,基,基于,对,对称,密,密码,算,算法(如,DES),或基,于,于单,向,向,Hash,函数(如,MD5,或,SHA-1),的带,密,密钥,的,的消,息,息认,证,证码(,MAC),。,。,64,ESP(EncapsulatingSecurityPayload,),),协议,ESP,涉及,到,到密,码,码学,中,中的,核,核心,组,组件,加密,和,和鉴,别,别算,法,法。,ESP,的功,能,能,ESP,的两,种,种模,式,式,ESP,的格,式,式,加密,算,算法,和,和认,证,证算,法,法,ESP,处理,ESP,的功,能,能,ESP,为,IP,数据,包,包提,供,供完,整,整性,检,检查,、,、认,证,证和,加,加密,,,,可,以,以看,作,作是,“,超级,AH,”,,,因为,它,它提,供,供机,密,密性,并,并可,防,防止,篡,篡改,。,。,ESP,服务,依,依据,建,建立,的,的安,全,全关,联,联(,SA,),),是可,选,选的,。,。,一些,限,限制,:,:,完整,性,性检,查,查和,认,认证,一,一起,进,进行,。,。,仅当,与,与完,整,整性,检,检查,和,和认,证,证一,起,起时,,,,,“,重播,(,(,Replay,),),”,保护,才,才是,可,可选,的,的。,“,重播,”,保护,只,只能,由,由接,收,收方,选,选择,。,。,ESP,的加,密,密服,务,务是,可,可选,的,的,,但,但如,果,果启,用,用加,密,密,,则,则也,就,就同,时,时选,择,择了,完,完整,性,性检,查,查和,认,认证,。,。因,为,为如,果,果仅,使,使用,加,加密,,,,入,侵,侵者,就,就可,能,能伪,造,造包,以,以发,动,动密,码,码分,析,析攻,击,击。,ESP,可以单独,使,使用,也,可,可以和,AH,结合使用,。,。,66,ESP,的两种模,式,式,数据,IP,包头,加密后的,数,数据,IP,包头,ESP,头部,ESP,头,新,IP,包头,传输模式,隧道模式,ESP,尾部,ESP,验证,ESP,尾部,ESP,验证,数据,原,IP,包头,加密部分,67,68,69,ESP,的格式,ESP,协议包括,ESP,报头、,ESP,报尾、,ESP,认证报尾,三,三个部分,。,。,图7.14,ESP,报头、报,尾,尾和认证,报,报尾,两种模式,下,下的ESP数据包,格,格式,70,传输模式,隧,隧,道,道模式,71,加密算法,和,和认证算,法,法,ESP,所采用的,加,加密算法,由,由,SA,指定。为,了,了提高加,密,密效率,,ESP,设计使用,的,的是对称,密,密码算法,。,。由于,IP,包可能会,失,失序到达,,,,因此每,个,个,IP,包必须携,带,带接收者,进,进行解密,所,所要求的,密,密码同步,数,数据(如,初,初始化向,量,量,IV)。,这个数据,可,可以在有,效,效负载字,段,段中明确,携,携带,也,可,可以从包,头,头中推导,出,出来。由,于,于机密性,是,是可选择,的,的,因此,加,加密算法,可,可以是,“,空,”,。,ESP,中的认证,算,算法同,AH,的认证算,法,法一样。,由,由于认证,算,算法是可,选,选的,因,此,此认证算,法,法也可以,是,是,“,空,”,。虽然加,密,密和认证,算,算法都可,为,为空,但,二,二者不能,同,同时为空,。,。因为这,样,样做不仅,毫,毫无安全,保,保证可言,,,,而且也,为,为系统带,来,来了无谓,的,的负担。,72,ESP,处理,ESP,的处理过,程,程发生在,发,发送时的,IP,分割之前,以,以及接受,时,时的,IP,重新组合,之,之后。,发送时的,处,处理,ESP,头定位:,在,在传输模,式,式下,,ESP,头插在,IP,头和上一,层,层协议头,之,之间;在,隧,隧道模式,下,下,,ESP,头在整个,源,源,IP,
展开阅读全文