1、第七章电子商务安全,第一节 电子商务的安全概述 第二节 密码学 第三节 PKI/CA 第四节 SSL/TLS,第一节电子商务的安全概述,一、客户端安全 二、服务器端安全 三、传输安全,2、电子商务的安全需求身份的真实性信息的机密性数据的完整性行为的不可否认性,第二节密码学,一、古典加密技术 1、替代算法 是指明文的字母由其他字母、数字或符号所代替。 最著名的替代算法是凯撒密码 原理:单字母替换,2、置换移位法使用此算法的最著名的一种密码是维吉尼亚密码。 加密密钥是一个可被任意指定的字符串加密密钥字符依次逐个作用于明文信息字符,密钥需要不断循环直至明文的每个字符都对应一个密钥字符,二、现代密钥技
2、术,1、对称加密技术 以DES算法为典型代表DES发展历程 DES加密标准:IBM公司设计的方案 ISO DES算法对信息的加密和解密都使用相同的密码 DES算法在ATM、POS、IC卡、加油站、高速公路收费站等领域广泛使用,DES,数据加密算法(Data Encryption Algorithm,DEA)的数据加密标准(Data Encryption Standard,DES)是规范的描述,它出自 IBM 的研究工作,并在 1997 年被美国政府正式采纳。它很可能是使用最广泛的秘钥系统,特别是在保护金融数据的安全中,最初开发的 DES 是嵌入硬 件中的。通常,自动取款机(Automated
3、Teller Machine,ATM)都使用 DES。 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环。 攻击 DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的
4、安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过 ,DES 现在仅用于旧系统的鉴定,而更多地选择新的加密标准 高级加密标准(Advanced Encryption Standard,AES)。,DES是数据分组的加密算法。全称为Data Encryption Standard, 它是IBM公司于1975年研究成功并公开发表的。 DES算法的入口处参数有3个:数据、工作方式与密钥。其中数据是被加密或被解密的数据分组,为8个字节64位;工作方式为DES的工作方式,有两种:加密或解密;密钥为8个字节64位,是DES的工作密钥,有效密钥长度为56位,另外有8位用于奇偶
5、校验。 DES的保密性仅取决于对密钥的保密,而算法是公开的。其内部的复杂结构是至今没有找到破译方法的根本原因,其算法主要分为两步: 1初始置换 其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长3 2位,其置换规则为将输入的第58位换到第一位,第50位换到第2位依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D58D50D8;R0=D57D49D7。 2逆置换 经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置
6、换正好是初始置换的逆运算,由此即得到密文输出。,DES的保密性仅取决于对密钥的保密,而算法是公开的。其内部的复杂结构是至今没有找到破译方法的根本原因 DES算法的安全性极高,到目前为止,除了用穷举搜索法对DES进行攻击外,还没有发现更有效的方法。为了提供更高的安全性,后来又提出了三重DES 或称3DES系统,DES的不足之处 使用对称加密算法要求提供一条安全的渠道使通信双方在首次通信是协商一个共同的密钥,直接面对面协商难以实践,故可能需要借助邮件等不够安全的手段进行协商密钥的数目难以管理 无法验证发送者和接受者的身份 管理和分发工作是一件具有潜在危险的和繁琐的工作,RSA,2、非对称加密技术通
7、常以RSA算法为代表 已被ISO/TC97的数据加密技术委员会SC20推荐为公开密钥数据加密标准 非对称加密算法需要两个密码:公开密码(public key简称公钥)和私有密码(private key 简称私钥),RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是
8、NPC问题。RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。,RSA既能用于数据加密,也能用于数字签名。其安全性是基于分解大整数的困难性。在RSA体制中使用的基本事实:到目前为止,无法找到一个有效的算法来分解两大素数之积
9、,RSA算法原理,第一步 用两个很大的互异的质数p和q,计算它们的乘积n=pq(p、q必须保密);n为模数 第二步 选择一个比n小的数e,它与(p-1)(q-1)互为质数, 第三步 找出一个数d,使(ed-1)能被(p-1)(q-1) 第四步 去公开密钥为(e,n)这一对数;私有密钥为(d,n)这一对数。 第五步 加密过程为c=me(mod n)其中m为明文,c为密文 第六步 解密的过程为m=cd(mod n),三 消息摘要,MD5和SHA-1 是目前应用最广的Hash算法 都是以MD4基础设计的 1、MD45MD5(RFC1321)是Rivest 与1991年对MD4的改进版,MD5比MD4
10、复杂,但速度要慢一点,,2、SHA-1 1994 年又发布了SHA原始算法的修订版即为SHA-1SHA-1生成160位的信息摘要,虽然执行更慢,却被认为更安全。它的抗穷性更好,明文讯息的最大长度可达到264位,王小云,王小云教授,1966年生于山东诸城,1983年至1993年就读于山东大学数学系,先后获得学士、硕士和博士学位,1993年毕业后留校任教。2005年获国家自然科学基金杰出青年基金资助,同年入选清华大学“百名人才计划”,2005年6月受聘为清华大学高等研究中心“杨振宁讲座教授”,现为清华大学“长江学者特聘教授”。王小云教授带领的研究小组于2004年、2005年先后破解了被广泛应用于计
11、算机安全系统的MD5和SHA-1两大密码算法,对于这项十几年来国际上首次成功破解全球广泛使用的密码算法与标准的工作,整个国际密码学界为之震惊,密码学领域最权威的两大刊物Eurocrypto与Crypto将2005年度最佳论文奖授予了这位中国女性,其研究成果引起了国际同行的广泛关注。 她获得由全国妇联、中国联合国教科文组织全国委员会、中国科协和欧莱雅(中国)有限公司创立的,被誉为女性诺贝尔奖的中国青年女科学家奖。,、大厦轰然倒塌 在去年月之前,国际密码学界对王小云这个名字并不熟悉。年月,在美国加州圣芭芭拉召开的国际密码大会上,并没有被安排发言的王小云教授拿着自己的研究成果找到会议主席,没想到慧眼
12、识珠的会议主席破例给了她分钟时间来介绍自己的成果,而通常发言人只被允许有两三分钟的时间。就这样,王小云在国际会议上首次宣布了她及她的研究小组近年来的研究成果对、和等四个著名密码算法的破译结果。 令世界顶尖密码学家想象不到的是,破解之后,今年月,王小云教授又破解了另一国际密码。因为在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。,四密码学的应用,1、数字签名信息是有签名者发送的信息自签发后到收到为止未曾做过任何修改 数字签名一
13、般采用非对称加密技术,通过对整个明文进行某种变换,得到一个值。作为核实签名,数字签名不同于手写签名数字签名随文本的变化而变化,而手写签名是不变的;数字签名与文本信息是不可分割的,而手写签名是附加在文本之后的,与文本信息是分离的,2、数字时间戳 是一个经加密后形成的证书文档需加时间戳的文件摘要DTS收到文件的日期和时间DTSde数字签名,3、数字证书 (1)内容:格式遵循ITUT X.509证书的版本信息证书的序列号,每个证书都有一个惟一的证书序列号证书所使用的签名算法证书的发行机构名称,命名规则一般采用X.500格式证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2
14、049证书所有人的名称,命名规则一般采用X.500格式证书所有人的公开密钥证书发行者对证书的签名,(2)数据认证原理每个用户自己设定一把特定的仅为本人所知的私有密钥,用它进行解密和签名 同时设定一把公开密钥并有本人公开,为一组用户所共享,用于加密和验证签名,(3)数字证书类型个人证书企业服务器证书软件开发者证书,第二节PKI/CA,公钥基础设施PKI/CA,公钥基础设施PKI,1 PKI基本概念 2 PKI中常用的密码技术 3 PKI体系结构与功能操作 5 X.509标准 6 认证机构CA系统,PKI基本概念,什么是PKI? 公钥基础设施(Public Key Infrastructure)
15、PKI是一个用非对称密码算法原理和技术来实现并提供安全服务的具有通用性的安全基础设施。能够为所有网络应用提供采用加密和数字签名等密码服务所需要的密钥和证书管理。,PKI基本概念,为什么需要PKI? 电子政务、电子商务对信息传输的安全需求 在收发双方建立信任关系,提供身份认证、数字签名、加密等安全服务 收发双方不需要共享密钥,通过公钥加密传输会话密钥,PKI基本概念,非对称密码体制,PKI基本组成,PKI由以下几个基本部分组成: 公钥证书 证书作废列表(CRL) 策略管理机构(PMA) 认证机构(CA) 注册机构(RA) 证书管理机构(CMA) 证书存档(Repository),PKI基本组成,
16、公钥证书 由可信实体签名的电子记录,记录将公钥和密钥(公私钥对)所有者的身份捆绑在一起。公钥证书是PKI的基本部件。 证书作废列表(CRL) 作废证书列单,通常由同一个发证实体签名。当公钥的所有者丢失私钥,或者改换姓名时,需要将原有证书作废。 策略管理机构(PMA) 监督证书策略的产生和更新,管理PKI证书策略。,PKI基本组成,认证机构(CA) 互联网定义:一个可信实体,发放和作废公钥证书,并对各作废证书列表签名。 美国防部定义:一个授权产生,签名,发放公钥证书的实体。CA全面负责证书发行和管理(即,注册进程控制,身份标识和认证进程,证书制造进程,证书公布和作废及密钥的更换)。CA还全面负责
17、CA服务和CA运行。,PKI基本组成,注册机构(RA) 互联网定义:一个可选PKI实体(与CA分开),不对数字证书或证书作废列单(CRL)签名,而负责记录和验证部分或所有有关信息(特别是主体的身份),这些信息用于CA发行证书和CLR以及证书管理中。RA在当地可设置分支机构LRA。 PKIX用语:一个可选PKI实体与CA分开,RA的功能随情况而不同,但是可以包括身份认证和用户名分配,密钥生成和密钥对归档,密码模件分发及作废报告管理。,PKI基本组成,证书管理机构(CMA) 将CA和RA合起来称CMA(certificate management authority)。 证书存档(Reposito
18、ry) 一个电子站点,存放证书和作废证书列表(CRL),CA在用证书和作废证书。,PKI中的证书,证书(certificate) PKI适用于异构环境中,所以证书的格式在所使用的范围内必须统一; 证书是一个机构颁发给一个安全个体的证明,所以证书的权威性取决于该机构的权威性; 一个证书中,最重要的信息是个体名字、个体的公钥、机构的签名、算法和用途、有效日期; 签名证书和加密证书分开; 最常用的证书格式为X.509 v3;,PKI服务,认证 实体鉴别:鉴别实体的身份。 数据来源鉴别:鉴定某个指定的数据是否来源于某个特定实体。 本地实体鉴别、远程实体鉴别 单条件实体鉴别、多条件实体鉴别(智能卡、口令
19、、PIN、指纹、虹膜、手写签名) PKI的强鉴别:本地鉴别获得私钥,远程鉴别,PKI服务,完整性 哈希+数字签名技术 消息认证码:对称分组密钥算法,得到一小段附加数据MAC,PKI服务,保密性 采用数字信封,传输会话密钥 上述三种安全服务是PKI提供的核心安全服务,PKI服务,不可否认性服务 数字签名 是最困难、最复杂的服务,PKI服务,安全时间戳 由可信的时间权威,用一段可认证的完整的数据表示时间戳,PKI服务,公证服务 由CA充当第三方进行数据验证,X.509证书格式,版本号,证书序列号,签名算法标识,签发此证书的CA名称,证书有效期,用户名称,用户公钥信息 (算法、参数、公钥),X.50
20、9证书格式,签发者唯一标识,用户唯一标识,扩展项,签名(算法、参数、签名),第三节 SSL/TLS,SSL TLS,SSL协议的发展,一、SSL协议的概述,1 SSL(Secure Socket Layer)是Netscape公司设计的主要用于web的安全传输协议。 2 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),TLS1.0与SSL3.0差别很小。 3 在WAP的环境下,由于手机处理和存储能力有限,wap论坛(www.wapforum.org)在TLS的基础上做了简化,提出了WTLS协议(Wi
21、reless TLS),以适应无线的特殊环境。,SSL协议概述,SSL协议:Secure Socket Layer Protocol,安全套接层协议。它提供在Internet上的安全通信服务,也是目前包括网络支付在内的电子商务业务中广泛应用的安全通信协议。本质上,SSL协议是一种在持有数字证书的客户端浏览器和远程的WWW服务器之间,构造安全通信通道并且传输数据的协议.,SSL协议的优势在于它是与应用层协议独立无关的,上述高层的应用层协议能”透明”地建立在SSL协议之上,也就是说,SSL协议在应用层协议通信之前已经完成加密算法、 通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的数据都
22、会被加密,从而保证通信的私密性。 通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。,SSL协议概述,SSL协议概述,该协议是由Netscape 公司设计开发,主要用于: 提供对用户和服务器的认证; 对传送的数据进行加密和隐藏; 确保数据在传送中不被改变,即数据的完整性。 现已成为该领域中全球化的标准。由于SSL 技术已建立到所有主要的浏览器和Web 服务器程序中,因此,仅需安装服务器证书就可以激活该功能了。,SSL协议解决了目前Ipv4版TCP/IP协议难以满足的网络安全通信要求,它运行在TCP/IP层之上而在其他高层协议(如HTTP,FTP,
23、SMTP等之下),SSL协议概述,SSL协议 结构 和层次,SSL协议与OSI参考模型的关系,一、SSL协议的概述,1、SSL服务器认证:允许用户确认服务器身份。支持SSL协议的客户机软件能使用公钥密码标准技术检查服务器证书、公用ID是否有效和是否由在客户信任的CA列表内的认证机构发放。 2、SSL客户机认证:允许服务器确认用户身份。使用应用于服务器认证同样的技术,支持SSL协议的服务器软件能检查客户证书、公用ID是否有效和是否由在服务器信任的认证机构列表内的CA发放。,主要功能,主要功能,一、SSL协议的概述,3、机密性:一个加密的SSL连接要求所有在客户机与服务器之间发送的信息由发送方软件
24、加密和由接受方软件解密,这样提供了高度机密性。 4、完整性:所有通过加密SSL连接发送的数据都被一种检测篡改的机制所保护,这种机制自动地决定传输中的数据是否已经被更改。,SSL协议的分层模型,SSL协议的分层模型,SSL协议是一个分层的协议,共有两层组成。处于SSL协议的底层的是SSL记录层协议(SSL Record Protocol),它位于可靠的传输层协议(如TCP)之上,用于封装高层协议的数据。其中SSL握手协议(SSL Handshake Protocol)允许服务方和客户方互相认证,并在应用层协议传送数据之前协商出一个加密算法和会话密钥。,主要工作流程,四、SSL协议原理及工作流程,
25、网络连接建立,SSL客户端发送消息,消息中包含可实现的算法列表和其他一些必要信息; SSL服务器端回应消息,确定加密算法和压缩算法; SSL服务器发出服务器数字证书; SSL客户端的身份认证是可选的; 客户端生成密钥,用服务器的公钥加密后返回服务器,服务器利用自己的私钥解密后得到会话密钥; 加密的数据传输; 网络连接的关闭。,主要工作流程,四、SSL协议原理及工作流程,应用数据的传输过程为 : )应用程序把应用数据提交给本地的SSL; )发送端的SSL根据需要 :a)使用指定的压缩算法 ,压缩应用数据;b)使用散列算法对压缩后的数据计算散列值;c)把散列值和压缩数据一起用加密算法加密; 3) 密文通过网络传给对方;,主要工作流程,四、SSL协议原理及工作流程,4)接收方的SSL 用相同的加密算法对密文解密 ,得到明文; 用相同的散列算法对明文中的应用数据散列; 计算得到的散列值与明文中的散列值比较; 5)如果一致 ,则明文有效 ,接收方的SSL把明文解压后得到应用数据上交给应用层。否则就丢弃数据,并向发方发出告警信息。严重的错误有可能引起再次的协商或连接中断。,