1、第4章 密码技术应用,4.3 S-HTTP 4.4 SMIME 4.5 SET 4.6 PGP,4.3 S-HTTP,1安全超文本传输协议(S-HTTP)简介安全超文本传输协议(S-HTTP)定义于RFC 2660,是一种面向安全信息通信的协议,它可以和HTTP结合起来使用。S-HTTP能和HTTP信息模型共存并易于与HTTP应用程序相整合。S-HTTP协议为HTTP客户机和服务器提供了多种安全机制,提供安全服务选项是为了适用于万维网上各类潜在用户。S-HTTP为客户机和服务器提供了相同的性能(同等对待请求和应答,也同等对待客户机和服务器),同时维持了HTTP的事务模型和实施特征。,4.3 S
2、-HTTP,1安全超文本传输协议(S-HTTP)简介S-HTTP客户机和服务器能与某些加密信息格式标准相结合。S-HTTP支持多种兼容方案并且与HTTP相兼容。使用S-HTTP的客户机能够与沒有使用S-HTTP的服务器连接,反之亦然,但是这样的通信明显地不会利用S-HTTP的安全特征。S-HTTP不需要客户端公用密钥认证(或公用密钥),但它支持对称密钥的操作模式,这点很重要,因为这意味着即使没有要求用户拥有公用密钥,私人交易也会发生。虽然S-HTTP可以利用大多现有的认证系统,但S-HTTP的应用并不必依赖这些系统。,4.3 S-HTTP,1安全超文本传输协议(S-HTTP)简介S-HTTP支
3、持端对端的安全事务通信。客户机可能“首先”启动安全传输(使用报头的信息),例如它可以用来支持已填表单的加密。使用S-HTTP,敏感的数据信息不会以明文形式在网络上发送。S-HTTP提供了完整且灵活的加密算法、模态及相关参数。选项谈判用来决定客户机和服务器在事务模式、加密算法(用于签名的RSA和DSA、用于加密的DES和RC2等)及证书选择方面取得一致意见。,4.3 S-HTTP,1安全超文本传输协议(S-HTTP)简介虽然S-HTTP的设计者承认他有意识地利用了多根分层的信任模型和许多公钥证书系统,但S-HTTP仍努力避开对某种特定模型的滥用。S-HTTP与摘要验证(在RFC-2617中有描述
4、)的不同之处在于,它支持公钥加密和数字签名,并具有保密性。HTTPS作为另一种安全Web通信技术,是指HTTP运行在TLS和SSL上面的实现安全Web事务的协议。,4.3 S-HTTP,2协议结构在语法上,S-HTTP报文与HTTP相同,由请求或状态行组成,后面是信头和主体。显然信头各不相同并且主体密码设置更为精密。 正如HTTP报文一样,S-HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应组成。请求报文的格式如下:,4.3 S-HTTP,2协议结构为了和HTTP报文区分开来,S-HTTP需要特殊处理,请求行使用特殊的“安全”途径和指定协议“S-HTTP”。因此S-HTTP和 HT
5、TP可以在相同的TCP端口混合处理(例如端口80)。为了防止敏感信息的泄漏,URI请求必须带有“*”。S-HTTP响应采用指定协议“S-HTTP”。响应报文的格式如下:,4.4 SMIME,1多用途的网际邮件扩充协议(MIME/S-MIME)多用途网际邮件扩充协议(MIME,Multipurpose Internet Mail Extensions) 说明了如何安排消息格式使消息在不同的邮件系统内进行交换。MIME的格式灵活,允许邮件中包含任意类型的文件。MIME消息可以包含文本、图像、声音、视频及其他应用程序的特定数据。具体来说,MIME允许邮件包括:单个消息中可含多个对象;文本文档不限制一
6、行长度或全文长度;可传输ASCII以外的字符集,允许非英语语种的消息;多字体消息;二进制或特定应用程序文件;图像、声音、视频及多媒体消息。,4.4 SMIME,1多用途的网际邮件扩充协议(MIME/S-MIME)MIME复合消息的目录信息头设有分界标志,这个分界标志绝不可出现在消息的其他位置,而只能是在各部之间以及消息体的开始和结束处。MIME的安全版本S/MIME(Secure/Multipurpose Internet Mail Extensions)设计用来支持邮件的加密。它可以把MIME实体(比如数字签名和加密信息等)封装成安全对象。RFC 2634定义了增强的安全服务,基于MIME标
7、准,S/MIME为电子消息应用程序提供如下加密安全服务:认证、完整性保护、鉴定及数据保密等。,4.4 SMIME,1多用途的网际邮件扩充协议(MIME/S-MIME)传统的邮件用户代理(MUA)可以使用S/MIME来加密发送邮件及解密接收邮件。S/MIME并不限于邮件的使用,它也能应用于任何可以传送MIME数据的传输机制,例如HTTP。同样,S/MIME利用MIME的面向对象特征允许在混合传输系统中交换安全消息。此外,S/MIME还可应用于消息自动传送代理,它们使用不需任何人为操作的加密安全服务,例如软件文档签名、发送到网上的FAX加密等。,4.4 SMIME,2协议结构MIME定义了许多新的
8、RFC822头域用于描述一个MIME实体的内容。这些头域有两种情形(一种作为常规RFC822消息头的一部分,一种是多个结构中的MIME主体部分头)。这些正规头域的定义如下: entity-headers := content CRLF encoding CRLF id CRLF description CRLF ,实体头:=目录CRLF 编码CRLF ID CRLF 描述CRLF,4.4 SMIME,2协议结构 *( MIME-extension-field CRLF ) MIME-message-headers :=entity-headers fields version CRLF ;Th
9、e ordering of the header fields implied by this BNF definition should be ignored. MIME-part-headers := entity-headers fields ;Any field not beginning with “content-“ can have no defined meaning and may be ignored. ;The ordering of the header fields implied by this BNF definition should be ignored.,*
10、(MIME扩展字段CRLF),;在BNF定义中声明的消息头字段顺序应该忽略,;不从“目录”开始的任何字段没有具体含义,可忽略,字段,MIME局部头:=实体头,;在BNF定义中声明的消息头字段顺序应该忽略,版本 CRLF,字段,MIME消息头:=实体头,4.4 SMIME,2协议结构MIME加入安全特性就是S/MIME,它是MIME的延伸,RFC 1847就是S/MIME的标准。当一篇MIME加入电子签章或编码后,S/MIME会把整个MIME邮件视作一个不可分割的主体,对这个主体实施PKI安全操作(加密或签名等),并加入必需的S/MIME头信息,这样就产生了S/MIME格式的邮件。,表明邮件是S
11、/MIME格式,这部分是对MIME body的数字签名,表明邮件是S/MIME格式,这部分是加密的MIME body,图4-7 经过数字签名的邮件结构,图4-8 经过加密的邮件,4.5 SET,1SET简介电子商务是在开放的Internet环境中实现交易应用。电子商务涉及资金流和物流信息的传送,因此安全至关重要。 针对电子商务的要求,目前最有影响力的安全协议是安全电子交易协议(SET,Secure Electronic Transaction)。SET是由VISA和MasterCard两大信用卡公司于1997年5月联合推出的。,4.5 SET,1SET简介SET采用公钥密码体制和X.509数字
12、证书标准,它主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的,以保证支付信息的机密、支付过程的完整、商户及持卡人的合法身份以及可操作性。SET协议中的核心技术主要有公钥加密、数字签名、电子信封、电子安全证书等。SET协议是PKI框架下的一个典型实现,也是一个基于可信的第三方认证中心的方案,它不仅加密两个端点间的单个会话,还可以加密和认定三方间的多个信息。,4.5 SET,1SET简介SET协议的目标:(1) 信息在Internet上的安全传输,保证网上传输的数据不被黑客窃听。(2) 订单信息和个人账号信息的隔离,在将包括消费者账号信息的订单送到商家时,商家只能看到订货信息,而看不
13、到消费者的账户信息。(3) 消费者和商家的相互认证,以确定通信双方的身份,一般由第三方机构负责为在线通信双方提供信用担保。(4) 要求软件遵循相同的协议和消息格式,使不同厂家开发的软件具有兼容和互操作功能,并且可以运行在不同的硬件和操作系统平台上。,4.5 SET,1SET简介在一次完整的电子商务交易中,SET涉及到持卡人、商家、收单银行、发卡机构、认证中心(CA)、支付网关等实体,具体关系如图4-9所示。,图4-9 SET协议的电子商务模型,4.5 SET,1SET简介图4-9电子商务模型中各实体的具体含义如下:* 持卡人:在电子商务环境中,消费者和团体购买者通过计算机与商家交流,持卡人通过
14、由发卡机构颁发的付款卡(例如信用卡、借记卡)进行结算。在持卡人和商家的会话中,SET可以保证持卡人的个人账号信息不被泄漏。* 商家:提供商品或服务,使用SET就可以保证持卡人个人信息的安全。接收卡的商家必须和银行有关系。,4.5 SET,1SET简介图4-9电子商务模型中各实体的具体含义如下:* 收单银行:在线交易的商家在银行开立账号,并且处理支付卡的认证和支付。* 发卡机构:它是一个金融机构,为每一个建立了账户的顾客颁发付款卡,发卡机构根据不同品牌卡的规定和政策,保证对每一笔认证交易的付款。* 认证中心(CA):通常是由一些发卡机构共同委托,并负责向持卡人、电子商家发行公开密钥证书的机构。*
15、 支付网关:是由银行操作的,将Internet上的传输数据转换为金融机构内部数据的设备,或由指派的第三方处理商家支付信息和顾客的支付指令。,4.5 SET,2SET交易流程(1) 卡用户向商家发送订购和支付信息,其中支付信息被加密,商家无从得知。(2) 商家将支付信息发送到收单银行,收单银行解密信用卡号,并通过认证验证签名。(3) 收单银行向发卡银行查询,确认用户信用卡是否属实。(4) 发卡银行认可并签证该笔交易。(5) 收单银行认可商家并签证此交易。,(6) 商家向用户传送货物和收据。 (7) 交易成功后,商家向收单银行请求支付。 (8) 收单银行按合同将货款划给商家。 (9) 发卡银行定期
16、向用户寄去信用卡消费账单。,4.5 SET,3双重签名双重签名是SET推出的数字签名的新应用。在电子商务的电子支付系统中,存在着客户,商家和银行三者之间交易信息的传递,其中包括只能让商家看到的订购信息,和只能让银行看到的支付信息。因为银行需要了解的支付信息是客户通过商家传递给银行的,双重签名的目的就是在交易的过程中,在客户把订购信息和支付信息传递给商家时,订购信息和支付信息相互隔离开,商家只能看到订购信息不能看到支付信息,并把支付信息无改变地传递给银行;而且商家和银行可以验证订购信息和支付信息的一致性,以此来判断订购信息和支付信息在传输的过程中是否被修改。,双重签名的目的,4.5 SET,3双
17、重签名 客户用Hash函数对订购信息和支付信息进行散列处理,分别得到订购信息的消息摘要和支付信息的消息摘要。 将两个消息摘要连接起来再用Hash函数进行散列处理,得到支付订购消息摘要。 客户用他的私钥加密支付订购消息摘要,最后得到的就是经过双重签名的信息。,双重签名的生成过程,双重签名的使用和验证过程,1)客户将“订购信息+支付信息的消息摘要+双重签名”发给商家,将“支付信息+订购信息的消息摘要+双重签名”发给银行; 2)商家和银行对收到的信息先生成摘要,再与另一个摘要连接起来,如果它与解密后的双重签名(利用客户的公钥)相等,就可确定消息的真实性。 虽然商家看不到顾客账户信息、银行不知道客户的
18、购买信息,但都可确认另一方是真实的。,4.6 PGP,1PGP简介PGP(Pretty Good Privacy,完美隐私)是美国的菲利普齐默曼(Philip R. Zimmermann)在1995年开发的,它是一个基于RSA公钥加密体系的邮件加密软件包。它可以保密邮件以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确信邮件的发送者。PGP可以使得用户和他从未见过的人安全通信,而事先并不需要任何保密的渠道用来传递私钥。,相关网站,PGP台湾专业代理商 http:/ PGP台湾代理商 http:/.tw/pgp/ PGP公司网站 http:/ The International PGP Home Page http:/www.pgpi.org/,4.6 PGP,1PGP简介,图4-10 PGP加密和认证过程,4.6 PGP,2PGP的应用当文件以收件人的公钥加密后,只有持有私钥的收件人才能解读,即使文件被窃取也不怕资料外泄;再者,送件人以个人私钥加签于文件上,收件人取得后,以送件人的公钥加以核算,若一致就表示这份文件确实是由对方发出而且没有遭到篡改,基本上可达到文件加密及电子签章的功能。,习 题,4.5 简述S-HTTP相对于HTTP的特性。4.6 SET如何在电子商务流程中实现安全保密功能?4.7 简述PGP的加密和认证过程。,