目录
电子商务安全概述
信息加密技术
信息认证技术
数字证书与 CA认证中心
SSL协议
其他电子商务安全第一节 电子商务安全概述
电子商务的安全威胁
信息在网络的传输过程中被截获
传输的文件可能被篡改
伪造电子邮件
假冒他人身份
不承认已经做过的交易,抵赖
电子商务的主要安全要素
有效性
机密性
完整性
可靠性 /不可抵赖性 /鉴别
审查能力
主要安全技术及其标准规范
加密技术
密钥管理技术
数字签名
Internet电子邮件安全协议
安全电子交易规范( SET)
……
加密的基本概念
加密与解密
所谓加密就是通过密码算术对数据(明文)进行转化,使之成为没有正确密钥任何人都无法读懂的报文。而这些以无法读懂的形式出现的数据一般被称为密文。
解密是加密的逆过程。
算法和密钥
算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来控制对数据进行编码和解码方法的参数。
加密的类型
不考虑解密问题
对称加密
非对称加密
密码体制的要求
从截获的密文或明文-密文对,要确定密钥或任意明文在计算机上是不可行的。
系统的保密性只依赖于密钥而不依赖于对加密体制的保密,换句话说加密体制可以对外公开而不影响系统的保密性。
加密和解密算法适用于所有密钥空间中的元素。
系统易于实现而且使用方便。
对称密钥加密
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,
并保持钥匙的秘密。
DES密码体制
最有名的密码算法
第一个被公开的现代密码
由 IBM于 1971年至 1972年研制成功
分组长度,64比特
密钥长度,56比特
目前 DES已被视为不安全,普遍使用的是变种
triple DES,即对 64比特分组加密三次,每次用不同的密钥,密钥长度总共 168比特。
比较著名的对称加密算法算法 注释
Blowfish 块加密;布鲁斯 ·施奈尔( Bruce Schneier)提出
DES 块加密; 7 0年代提出
IDEA 块加密(被认为是现有最好的算法)
RC2
RC4
RC5
RC6
块加密; R S A公司提出流加密块加密块加密
Triple DES 使用三个密钥的加密、解密、加密序列
非对称加密体制
非对称加密体制又称为 双钥密钥体制或公开密钥体制。在该体制中,加密密钥(又称公开密钥) PK是对外公开的,加密算法 E和解密算法 D也是公开的,但解密密钥(又称秘密密钥) SK是保密的。虽然 SK是由 PK决定的,但却不能根据 PK计算出 SK。
公开密钥算法具有以下特点
用加密密钥 PK对明文 X加密后,再用解密密钥 SK
解密即得明文,即 DSK(EPK(X))=X;
加密密钥不能用来解密,即 DPK(EPK(X)≠X;
在计算机上可以容易地产生成对的 PK和 SK,但从已知的 PK不可能推导出 SK。
RSA体制
RSA算法是由 Rivest,Shamir和 Adleman于 1978
年提出的,曾被 ISO/TC97的数据加密委员会
SC20推荐为公开数据加密标准 。
RSA体制是根据寻求两个大素数容易,而将他们的乘积分解开则极其困难这一原理来设计的 。
RSA中的密钥
RSA中的加密与解密
RSA中密钥中参数的选择
RSA密码体制算例
RSA算法的安全性
RSA安全性取决于对模 n因数分解的困难性。
1999年 8月,荷兰国家数学与计算机科学研究所家们的一组科学家成功分解了 512bit的整数,大约 300台高速工作站与 PC机并行运行,整个工作花了 7个月。
1999年 9月,以色列密码学家 Adi Shamir设计了一种名叫,TWINKLE”的因数分解设备,可以在几天内攻破 512bit的 RSA密钥。(但要做到这一点,需要 300-400台设备,每台设备价值 5000美圆)。
现有的 RSA密码体制支持的密钥长度有 512、
1024,2048,4096等。
两种密钥体制的优缺点比较
对称加密体制的编码效率高
对称密码体制在密钥分发与管理上存在困难,
而非对称密码体制可以很好的解决这个问题
比较著名的非对称加密算法算法 注释
ECC
LUC
RSA 块加密; RSA公司提出
两种密钥一起使用
数字信封
数字信封的工作流程数字信封的生成第三节 信息认证技术
攻击密码系统的两种方式
被动攻击
敌手只是对截获的密文进行分析而已。
主动攻击
敌手通过采取删除、增添、重放、伪造等手段主动向系统注入假消息。
信息认证的目的
验证信息的发送者是真正的而不是假冒的;
验证信息的完整性,即验证信息在传送或存储中未被篡改、重放或延迟。
对认证体制的要求
意定的接受者能够检验和证实消息的合法性、真实性和完整性。
消息的发送者不能够对所发的消息不能够抵赖,有时也要求消息的接受者不能否认所收到的消息。
除了合法的消息发送者外,其他人不能伪造合法的消息。
与信息认证相关的技术
数字摘要
数字签名技术
数字信封
数字时间戳
数字摘要
数字摘要简要地描述了一份较长的信息或文件,
它可以被看作一份长文件的,数字指纹,。信息摘要用于创建数字签名,对于特定的文件而言,信息摘要是唯一的。信息摘要可以被公开,
它不会透露相应文件的任何内容。
摘要函数
又称杂 凑函数、杂凑算法或哈希函数,就是把任意长度的输入串变化成固定长度的输出串的一种函数。
摘要函数的安全性
输入长度是任意的;
输出长度是固定的,根据目前的计算技术至少取
128比特长,以便抵抗生日攻击;
对每一个给定的输入,计算输出即杂凑值是很容易的;
( a)给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值在计算上是不可行的,或
( b)给定杂凑憾事的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得他们杂凑到同一个值在计算上是不可行的。
数字摘要的作用
用于验证信息的完整性。
比较著名的摘要算法算法 注释
MD2 目前已放弃; RSA公司提出
MD4 目前已不安全; 128位散列值; RSA公司提出
MD5 能提供较好的保密; 128位散列值; RSA公司提出
SHA1 SHA的替代算法; 160位散列值
数字签名
什么是数字签名
数字签名是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
数字签名
数字签名的作用
保证信息完整
信息发送者身份的验证
数字签名工作流程
( a) 生成数字签名流程
(b) 验证数字签名流程
数字时间戳
什么是数字时间戳?
数字时戳服务( DTS)采用强加密措施颁发时戳,该时戳将一个具体的日期和时间与数字文件关联在一起。数字时戳可以在以后的某个日期里用于证明在时戳所著的时间确实有这么一个电子文件存在。
第四节 数字证书与 CA认证体系
数字证书
什么是数字证书?
Digital ID也称数字证书,把身份与电子密钥对绑定,该密钥对可以对信息进行加密和签名。数字证书可以用于鉴别某人是否有权使用某个指定的密钥,也可以防止人们使用假冒的密钥来冒充他人。数字证书与密码术一起提供更为完整的安全性。
数字证书由 CA颁发,并利用 CA的私钥签名。
数字证书的内容
数字证书一般包含以下内容:
用户的公钥
用户名
公钥的有效期
CA颁发者(颁发数字证书的 CA)
数字证书的序列号
颁发者的数字签名
数字证书的作用在使用数字证书的过程中应用公开密钥加密技术,建立起一套严密的身份认证系统,它能够保证:
信息除发送方和接受方外不被其他人窃取;
信息在传输过程中不被篡改;
接收方能够通过数字证书来确认发送方的身份;
发送方对于自己发送的信息不能抵赖。
数字证书的类型
客户证书
商家证书
网关证书
CA证书
认证中心 (CA)
什么是认证中心?
认证中心是进行网上安全电子交易认证服务、
签发数字证书、确认用户身份的服务机构。认证中心的工作就是受理数字证书的申请、签发数字证书以及对数字证书进行管理。在电子商务交易中,需要有这样具有权威性和公正性的第三方来完成认证工作,使电子商务交易能够正常进行。
例子,广东省电子商务认证中心
CA认证体系的功能模型
RS-接收用户证书申请的证书受理者
RA-证书发放的审核部门
CP-证书发放的操作部门
CRL-记录作废证书的证书作废表
CA认证体系结构第五节 SSL协议
SSL协议
SSL(Secure Sockets Layer,安全套接层 )协议最初由 Netscape公司设计开发的,主要用于提高应用程序之间的数据安全系数。
SSL协议规范
SSL记录协议
在 SSL协议中,所有的传输数据都封装在记录中。
SSL握手协议
用于建立私密通信信道和客户认证。
记录头 记录数据
SSL协议的工作流程
SSL两种加密方式
在建立连接过程中采用公开密钥;
在会话过程中采用了专有密钥。
SSL协议提供的服务
用户和服务器的合法性认证;
加密数据以隐藏被传输的数据;
维护数据完整性第六节 其他电子商务安全
客户机面临的安全威胁
活动内容
活动内容是指在页面上嵌入的对用户透明的程序,
它可完成一些动作。
活动页面可显示动态图像、下载和播放音乐或实现基于 WWW的电子表格程序。
电子商务中使用的活动内容涉及将你选中的商品放入购物车并计算发票总额(包括销售税和送货费)。
常见的活动内容形式
Java小应用程序
ActiveX控件
JavaScript
VB script
Java小应用程序
Java是 Sun微系统公司开发的一种高级程序设计语言。
Java是一种真正的面向对象的语言,这是一个很有用的特点,因为它支持代码重用。
Java与平台无关,可在任何计算机上运行。
ActiveX控件
ActiveX是一个对象(称作控件),它含有
(程序员称为,封装,)由页面设计者放在页面来执行特定任务的程序。
ActiveX的构件源于许多程序设计语言,如
C++或 Visual Basic。但与 Java或 JavaScript代码不同的是,ActiveX控件只能在装 Windows
的计算机上运行,并且只能在支持 ActiveX控件的浏览器上运行。
ActiveX代码编完后,程序设计人员将其封装在 ActiveX信封里(在代码转换成机读码前的一种特殊方式)、编译控件并把它放到页面上。当浏览器下载了嵌有 ActiveX控件的页面时,它就可在客户机上运行了。
ActiveX控件的安全威胁是:一旦下载后,它就能像计算机上的其他程序一样执行,能访问包括操作系统代码在内的所有系统资源,
这是非常危险的。一个有恶意的 ActiveX控件可格式化硬盘、向邮件通讯簿里的所有人发送电子邮件或关闭计算机。由于 ActiveX控件可全权访问你的计算机,它能破坏保密性、
完整性或即需性,因此,ActiveX控件不能控制,但可被管理。如果浏览器安全特性设臵正确,在你下载 ActiveX控件时,浏览器就会提醒你。
JavaScript
JavaScript是网景公司开发的一种脚本语言,
它支持页面设计者创建活动内容。
JavaScript受到各种流行浏览器的支持,它和
Java语言有同样的结构。
当你下载一个嵌有 JavaScript代码的页面,此代码就在你的客户机上运行。同其他活动内容的载体一样,Java Script会侵犯保密性和完整性,它会破坏硬盘、把电子邮件的内容泄密或将敏感信息发给某个 WWW服务器。
其他活动内容形式
图形
图形文件中可包含一些隐含的嵌入指令,当图形下载到客户机后就可执行这些指令。如果运行可执行图形文件或其他文件格式中所嵌入指令的程序,可能会导致隐藏在合法图形指令中的有恶意指令的运行。
WWW浏览器插件
前面讲过插件是用于解释或执行嵌入在下载图形、
声音或其他对象中的指令。所有形式的活动页面都支持 WWW页面完成一些特定的任务。
客户机面临的其他威胁
特洛伊木马
特洛伊木马是隐藏在程序或页面里而掩盖其真实目的程序。特洛伊木马可窃听计算机上的保密信息,并将这些信息传给它的 WWW服务器,从而构成保密性侵害。更糟的是,特洛伊木马还可改变或删除客户机上的信息,构成完整性侵害。
Cookie
简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。
Cookie的使用很普遍,许多提供个人化服务的网站,
都是利用 Cookie来辨认使用者,以方便送出使用者量身定做的内容。
cookie本身并没有恶意,但由于其信息可能会被利用,
因此有些人不喜欢让自己的计算机存储 Cookie。
对客户机的保护
微软公司的 Authenticode技术
Authenticode可检查下载的 ActiveX控件里的两个重要项目:谁在这段程序上签名;签名后是否被修改过。
Authenticode技术可验证程序是否具备有效的证书,但不能阻止恶意程序的下载和运行。
,活动内容不可防止,但可以管理!,
IE浏览其中的安全区域
Internet、本地 Intranet、可信站点、受限站点
IE浏览器中的安全级别
高、中、中低、低
处理 Cookie
使用病毒防火墙软件
防病毒软件只能保护你的计算机不受已下载到计算机上的病毒攻击,所以它是一种防卫策略。
不论选择哪家厂商的产品,你都得不断更新防病毒软件的数据文件。这些文件存储的是用于检测病毒的病毒识别信息。由于每月都会有数以百计的新病毒出现,你必须定期更新防病毒软件的数据文件,以识别新病毒并消灭它。
防火墙技术
什么是防火墙
防火墙的功能
防火墙的种类
数据包过滤包过滤又分为简单包过滤和状态包过滤,简单包过滤是根据数据包的源地址、目的地址或端口号来进行投递的,目前的路由器都能实现简单的包过滤功能。对于状态包过滤是根据每个数据包的状态来进行投递的。
优点:
一个过滤路由器能协助保护整个网络;数据包过滤对用户透明;过滤路由器速度快、效率高。
缺点:
不能彻底防止地址欺骗;一些应用协议不适合于数据包过滤;正常的数据包过滤路由器无法执行某些安全策略。
优点:
代理易于配臵;代理能生成各项记录;代理能灵活、完全地控制进出的流量、内容;代理能过滤数据内容;代理能为用户提供透明的加密机制;
代理可以方便地与其他安全手段集成。
缺点:
代理速度较路由器慢;代理对用户不透明;对于每项服务代理可能要求不同的服务器;代理服务不能保证你免受所有协议弱点的限制;代理不能改进底层协议的安全性。
应用层网关
代理是一种较新型的防火墙技术,这种防火墙有时也被称为应用层网关,这种防火墙的工作方式和过滤数据包的防火墙、以路由器为基础的防火墙的工作方式稍有不同。它是基于软件的。
应用层网关的优点
代理易于配臵;代理能生成各项记录;代理能灵活、完全地控制进出的流量、内容;代理能过滤数据内容;代理能为用户提供透明的加密机制;
代理可以方便地与其他安全手段集成。
缺点
代理速度较路由器慢;代理对用户不透明;对于每项服务代理可能要求不同的服务器;代理服务不能保证你免受所有协议弱点的限制;代理不能改进底层协议的安全性。