⑴ set 协议描述
SET安全协议(Secure Electronic Transactions,简称 SET)
SET标准(http://www.setco.com) SET是为了在Internet上进行在线交易时保证信用卡支付的安全而设立的一个开放的规范。它是由Visa国际组织和万事达组织共同制定的一个能保证通过开放网络(包括Internet)进行安全资金支付的技术标准。SET主要由三个文件组成,分别是SET业务描述、SET程序员指南和SET协议描述。SET1.0版已经公布并可应用于任何银行支付服务。
由于设计合理,SET协议得到了IBM、HP、Microsoft、Netscape、VeriFone、GTE、VeriSign等许多大公司的支持,目前已获得IETF标准的认可,成为B TO C业务事实上的工业标准。
安全电子交易是基于因特网的银行卡支付系统,是授权业务信息传输的安全标准,它采用RSA公开密钥体系对通信双方进行认证。利用DES、RC4或任何标准对称加密方法进行信息的加密传输,并用HASH算法来鉴别消息真伪,有无篡改。在SET体系中有一个关键的认证机构(CA),CA根据X.509标准发布和管理证书。
1. SET安全协议运行的目标
SET协议要达到的的目标主要有五个:
(1)保证信息在因特网上安全传输,防止数据被黑客或被内部人员窃取。�
(2)保证电子商务参与者信息的相互隔离。客户的资料加密或打包后通过商家到达银行,但是商家不能看到客户的帐户和密码信息。
(3)解决多方认证问题,不仅要对消费者的信用卡认证,而且要对在线商店的信誉程度认证,同时还有消费者、在线商店与银行间的认证。
(4)保证了网上交易的实时性,使所有的支付过程都是在线的。
(5)效仿EDI贸易的形式,规范协议和消息格式,促使不同厂家开发的软件具有兼容性和互操作功能,并且可以运行在不同的硬件和操作系统平台上。
2. SET安全协议涉及的范围
SET协议规范所涉及的对象有:
(1)消费者,包括个人消费者和团体消费者,按照在线商店的要求填写定货单,通过由发卡银行发行的信用卡进行付款。
(2)在线商店,提供商品或服务,具备相应电子货币使用的条件。
(3)收单银行,通过支付网关处理消费者和在线商店之间的交易付款问题。
(4)电子货币(如智能卡、电子现金、电子钱包)发行公司,以及某些兼有电子货币发行的银行。负责处理智能卡的审核和支付工作。
(5)认证中心(CA)。负责对交易对方的身份确认,对厂商的信誉度和消费者的支付手段进行认证。
3、SET的认证
在用户身份认证方面,SET引入了证书(Certificates)和证书管理机构(Certificates Authorities)机制。
(a)证书
证书就是一份文档,它记录了用户的公共密钥和其他身份信息。在SET中,最主要的证书是持卡人证书和商家证书。
持卡人证书:它实际上是支付卡的一种电子化表示。它是由金融机构以数字签名形式签发的,不能随意改变。持卡人证书并不包括帐号和终止日期信息,取而代之的是用单向哈希算法根据帐号、截止日期生成的一个编码,如果知道帐号、截止日期、密码值即可导出这个码值,反之不行。
商家证书:表示可接受何种卡来进行商业结算。它是由金融机构签发的,不能被第三方改变。在SET环境中,一个商家至少应有一对证书。一个商家也可以有多对证书,表示它与多个银行有合作关系,可以接受多种付款方法。
除了持卡人证书和商家证书以外,还有支付网关证书、银行证书、发卡机构证书。
(b) 证书管理机构
CA是受一个或多个用户信任,提供用户身份验证的第三方机构。证书一般包含拥有者的标识名称和公钥,并且由CA进行过数字签名。
CA的功能主要有:接收注册请求,处理、批准/拒绝请求,颁发证书。用户向CA提交自己的公共密钥何代表自己身份的信息(如身份证号码或E-mail地址),CA验证了用户的有效身份之后,向用户颁发一个经过CA私有密钥签名的证书。
(c)证书的树形验证结构
在两方通信时,通过出示由某个CA签发的证书来证明自己的身份,如果对签发证书的CA本身不信任,则可验证CA的身份,依次类推,一直到公认的权威CA处。就可确信证书的有效性。SET证书正是通过信任层次来逐级验证的。
通过SET的认证机制,用户不再需要验证并信任每一个想要交换信息的用户的公共密钥,而只需要验证并信任颁发证书的CA的公共密钥就可以了。
4、SET标准的应用
自1996年始,34个国家的150多家金融机构制定了SET试行方案。从新加坡到旧金山的信用卡公司都开始建造SET交易网关,软件厂家则着手开发支持SET的应用软件。
⑵ 举例说明set协议和ssl协议的区别
两种都是应用于电子商务用的
网络
安全协议。都能保证交易数据的安全性、保密性和完整性。
SSL叫安全套接层协议,是国际上最早用的,已成工业标准,但它的基点是商家对客户信息保密的承诺,因此有利于商家而不利于客户。
SET叫安全电子交易协议,是为了在互联网上进行在线交易时保证信用卡支付的安全而设立的一个开放的规范。因它的对象包括消费者、商家、发卡银行、收单银行、支付网关、认证中心,所以对消费者与商家同样有利。它越来越得到众人认同,将会成为未来电子商务的规范
近年来,IT业界与金融行业一起,推出不少更有效的安全交易标准。主要有:
(1) 安全超文本传输协议(S-HTTP):依靠密钥对的加密,保障Web站点间的交易信息传输的安全性。
(2) 安全套接层协议(SSL协议:Secure Socket Layer)是由网景(Netscape)公司推出的一种安全通信协议,是对计算机之间整个会话进行加密的协议,提供了加密、认证服务和报文完整性。它能 够对信用卡和个人信息提供较强的保护。SSL被用于Netscape Communicator和Microsoft IE浏览器,用以完成需要的安全交易操作。在SSL中,采用了公开密钥和私有密钥两种加密方法。
(3) 安全交易技术协议(STT:Secure Transaction Technology):由Microsoft公司提出,STT将认证和解密在浏览器中分离开,用以提高安全控制能力。Microsoft将在 Internet Explorer中采用这一技术。
(4) 安全电子交易协议(SET:Secure Electronic Transaction):SET协议是由VISA和MasterCard两大信用卡公司于1997年5月联合推出的规范。SET主要是为了解决用户、商 家和银行之间通过信用卡支付的交易而设计的,以保证支付信息的机密、支付过程的完整、商户及持卡人的合法身份、以及可操作性。SET中的核心技术主要有公 开密匙加密、电子数字签名、电子信封、电子安全证书等。
目前公布的SET正式文本涵盖了信用卡在电子商务交易中的交易协定、信息保密、资料完整及数字认证、数字签名等。这一标准被公认为全球网际网络的标准,其交易形态将成为未来“电子商务”的规范。
支付系统是电子商务的关键,但支持支付系统的关键技术的未来走向尚未确定。安全套接层(SSL)和安全电子交易(SET)是两种重要的通信协议, 每一种都提供了通过Internet进行支付的手段。但是,两者之中谁将领导未来呢?SET将立刻替换SSL吗?SET会因其复杂性而消亡吗?SSL真的 能完全满足电子商务的需要吗?我们可以从以下几点对比作管中一窥:
SSL提供了两台机器间的安全连接。支付系统经常通过在SSL连接上传输信用卡卡号的方式来构建,在线银行和其他金融系统也常常构建在SSL之 上。虽然基于SSL的信用卡支付方式促进了电子商务的发展,但如果想要电子商务得以成功地广泛开展的话,必须采用更先进的支付系统。SSL被广泛应用的原 因在于它被大部分Web浏览器和Web服务器所内置,比较容易被应用。
SET和SSL除了都采用RSA公钥算法以外,二者在其他技术方面没有任何相似之处。而RSA在二者中也被用来实现不同的安全目标。
SET是一种基于消息流的协议,它主要由MasterCard和Visa以及其他一些业界主流厂商设计发布,用来保证公共网络上银行卡支付交易的安全性。SET已经在国际上被大量实验性地使用并经受了考验,但大多数在Internet上购的消费者并没有真正使用SET。
SET是一个非常复杂的协议,因为它非常详细而准确地反映了卡交易各方之间存在的各种关系。SET还定义了加密信息的格式和完成一笔卡支付交易过 程中各方传输信息的规则。事实上,SET远远不止是一个技术方面的协议,它还说明了每一方所持有的数字证书的合法含义,希望得到数字证书以及响应信息的各 方应有的动作,与一笔交易紧密相关的责任分担。
. SSL安全协议
SSL安全协议最初是由Netscape Communication公司设计开发的,又叫“安全套接层(Secure Sockets Layer)协议”,主要用于提高应用程序之间的数据的安全系数。SSL协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务 安全的协议,它涉及所有TC/IP应用程序。
SSL安全协议主要提供三方面的服务:
用户和服务器的合法性认证
认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都是有各自的识别号,这些识别号由公开密钥进行编号,为了验证用户是否合法,安全套接层协议要求在握手交换数据进行数字认证,以此来确保用户的合法性。
加密数据以隐藏被传送的数据
安全套接层协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手 情息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。
护数据的完整性
安全套接层协议采用Hash函数和机密共享的方法来提供信息的完整性服务,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。
⑶ 这是什么加密方式
7种html加密方式介绍2009-11-26 12:35一:最简单的加密解密
二:转义字符""的妙用
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)
四:任意添加NUL空字符(十六进制00H) (自创)
五:无用内容混乱以及换行空格TAB大法
六:自写解密函数法
七:错误的利用 (自创) 在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^
但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。
以加密下面的JAVASCRIPT代码为例:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
alert("黑客防线");
</SCRIPT>一:最简单的加密解密
大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
以下是代码片段:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:
以下是代码片段:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B呵呵!如何?这次是完全都加密了!
当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵
二:转义字符""的妙用
大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、' (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:
八进制转义字符串如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>十六进制转义字符串如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>
就会弹出对话框告诉你解密后的结果!
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码
工具的使用就不多介绍啦!我是直接使用JavaScript调用控件Scripting.Encoder完成的编码!代码如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var Senc=new ActiveXObject("Scripting.Encoder");
var code='<SCRIPT LANGUAGE="JavaScript">rnalert("黑客防线");rn</SCRIPT>';
var Encode=Senc.EncodeScriptFile(".htm",code,0,"");
alert(Encode);
</SCRIPT>编码后的结果如下:
以下是代码片段:
<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&ls DD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>够难看懂得吧?但相应的解密工具早已出来,而且连解密网页都有!因为其解密网页代码过多,我就不多说拉!给大家介绍一下我独创的解密代码,如下:
以下是代码片段:
<SCRIPT LANGUAGE="JScript.Encode">
function decode()
alert(decode.toString());
</SCRIPT>咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码!
如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:
window.execScript( sExpression, sLanguage )
参数:
sExpression: 必选项。字符串(String)。要被执行的代码。
sLanguage: 必选项。字符串(String)。指定执行的代码的语言。默认值为 Microsoft JScript
使用时,前面的"window"可以省略不写!
利用它我们可以很好的运行编码后的JavaScript代码,如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
execScript("#@~^FgAAAA==@#@&ls DD`J黑客防线r#p@#@&FgMAAA==^#~@","JScript.Encode")
</SCRIPT>
你可以利用方法二对其中的""号内的字符串再进行编码,使得"JScript.Encode"以及编码特征码"#@~^"不出现,效果会更好!
四:任意添加NUL空字符(十六进制00H)
一次偶然的实验,使我发现在HTML网页中任意位置添加任意个数的"空字符",IE照样会正常显示其中的内容,并正常执行其中的JavaScript 代码,而添加的"空字符"我们在用一般的编辑器查看时,会显示形如空格或黑块,使得原码很难看懂,如用记事本查看则"空字符"会变成"空格",利用这个原理加密结果如下:(其中显示的"空格"代表"空字符")
以下是代码片段:
<S C RI P T L ANG U A G E =" J a v a S c r i p t ">
a l er t (" 黑 客 防 线") ;
< / SC R I P T>
如何?是不是显得乱七八糟的?如果不知道方法的人很难想到要去掉里面的"空字符"(00H)的!
五:无用内容混乱以及换行空格TAB大法
在JAVASCRIPT代码中我们可以加入大量的无用字符串或数字,以及无用代码和注释内容等等,使真正的有用代码埋没在其中,并把有用的代码中能加入换行、空格、TAB的地方加入大量换行、空格、TAB,并可以把正常的字符串用""来进行换行,这样就会使得代码难以看懂!如我加密后的形式如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
"xajgxsadffgds";1234567890
625623216;var $=0;alert//@$%%&*()(&(^%^
//cctv function//
(//hhsaasajx xc
/*
asjgdsgu*/
"黑客防线"//ashjgfgf
/*
@#%$^&%$96667r45fggbhytjty
*/
//window
)
;"#@$#%@#432hu";212351436
</SCRIPT>
至少如果我看到这样的代码是不会有心思去分析它的,你哪?
六:自写解密函数法
这个方法和一、二差不多,只不过是自己写个函数对代码进行解密,很多VBS病毒使用这种方法对自身进行加密,来防止特征码扫描!下面是我写的一个简单的加密解密函数,
加密代码如下(详细参照文件"加密.htm"):
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
function compile(code)
{
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
alert(escape(c));
}
compile('alert("黑客防线");')
</SCRIPT>运行得到加密结果为:o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd
相应的加密后解密的代码如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
function uncompile(code)
{
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
eval(uncompile("o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd"));
</SCRIPT>
七:错误的利用
利用try{}catch(e){}结构对代码进行测试解密,虽然这个想法很好(呵呵,夸夸自己),因为实用性不大,我仅给个例子
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var a='alert("黑客防线");';
var c="";
for(var i=0;i<a.length;i++){
c+=String.fromCharCode(a.charCodeAt(i)^61);}
alert(c);//上面的是加密代码,当然如果真正使用这个方法时,不会把加密写上的
//现在变量c就是加密后的代码
//下面的函数t()先假设初始密码为0,解密执行,
//遇到错误则把密码加1,然后接着解密执行,直到正确运行
以下是代码片段:
var d=c; //保存加密后的代码
var b=0; //假定初始密码为0
t();
function t()catch(e){
c="";
for(var i=0;i<d.length;i++){
c+=String.fromCharCode(d.charCodeAt(i)^b);}
b+=1;
t();
//setTimeout("t()",0);
}
}
</SCRIPT>
⑷ 简述SSL协议与SET协议的工作原理
SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。 set协议的交易流程: 用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证SET交易过程中要对商家,客户,支付网关等交易各方进行身份认证,因此它的交易过程相对复杂。 (1)客户在网上商店看中商品后,和商家进行磋商,然后发出请求购买信息。 (2)商家要求客户用电子钱包付款。 (3)电子钱包提示客户输入口令后与商家交换握手信息,确认商家和客户两端均合法。 (4)客户的电子钱包形成一个包含订购信息与支付指令的报文发送给商家。 (5)商家将含有客户支付指令的信息发送给支付网关。 (6)支付网关在确认客户信用卡信息之后,向商家发送一个授权响应的报文。 (7)商家向客户的电子钱包发送一个确认信息。 (8)将款项从客户帐号转到商家帐号,然后向顾客送货,交易结束。 从上面的交易流程可以看出,SET交易过程十分复杂性,在完成一次S ET协议交易过程中,需验证电子证书9次,验证数字签名6次,传递证书7次,进行签名5次,4次对称加密和非对称加密。通常完成一个SET协议交易过程大约要花费1.5-2分钟甚至更长时间。由于各地网络设施良莠不齐,因此,完成一个SET协议的交易过程可能需要耗费更长的时间。
⑸ SET协议如何实现数字签名
1995年 1o月.包括Mastercard.N etscape和IBM在内的联盟开始进行安全
电子支付协议(SEPP)的开发.此前不久,Visa 和微软组成的联盟己经开始开发
另外一种不同的网络支付规范:安全交易技术(ST)。这样便出现了一种不幸的
局面.两大信用卡组织Mastercard和visa.分别支持独立的网络支付解决方案.这
种局面持续了数月时间.在1996年1月,这些公司宜布它们将联合开发统一的系
统.叫做安全电子交易(SET). 1996年2月末.它们发布了两份文件,其中第一
份文件给出了SET协议的业务描述,而第二份文件给出了更多的技术细节。其后
经历了一段公众评论期。在此期间,感兴趣的各方对该规范进行了讨论.并指出
了其中的不当之处。此后,发表了修改后的文件—协议描述.,它定义了产品
SET协议。SET是一种基于消息流的协议,用来保证公共网络上银行卡支付交易
的安全性。在Internet支付产业中,很多重要组织都声明将支持SET. SET在国
际上己彼大t实验性地使用井经受了考验,但大多致在Intemet上采晌的消费者井
没有宾正使用SET.
支付系统安全是电子商务的关键.SET支持了电子商务的特殊安全需要.如:
使用加密保证购物信息和支付信息的机密性:使用数字签名确保支付信息的完整
性;使用持卡人证书.对使用信用卡的合法性进行认证;使用商家证书.对商家
进行认证;保证各方对有关事项的不可否认性。特别地.SET保证了不会籍待卡人的信用卡号泄落给商家.
下面 对 电 子商务的交易过程进行简单的介绍。一个典型的墓于SET的电子商
务交易过程大体上可以用下面的一个简单的例子来描述:
1. 在交易之前客户应向其金触机构(即发行机构或付欲银行)申请银行帐号.
商家 也 应 该向它的金融机构(收单银行)申请银行帐号,并且向认证中心注
册得 到 所 漪要的证书。
2. 持卡人通过各种方式来浏览商品,如可以通过浏览器浏览商家电子商务服务
器的 We b页面上的商品目录;或浏览由商家提供的存储在CD ROM上的商
品 目录 : 查看印刷的商品目录,井选择要购买的商品。
3. 持卡人选择一定的付欲方式,如选择付欲卡的品牌。
4.持卡人(客户)把完整的订单以及付欲指令传送给商家(付软指令必须由合
法的 持 卡 人进行戴字签名).
5. 商家向持卡人的金融机构请求付欲代理.
6. 商家向持卡人(客户)发送定购确认.
7. 商家向持卡人(客户)运送货物或提供服务。
8. 商家从持卡人的金触机构(付教银行)取得货教·
在整 个 交 易过程中SET参与了4,5 ,6 ,8 这几个阶段。在支付过程中SET
协议的参与者需要使用数字证书以证明自己的身份或交换会话密钥。持卡者对自
己的数字证书和私钥、信用卡号码以及其他信息需耍进行加密存储。它们与符合
SET协议的软件一起组成了一个SET“电子钱包”。当持卡者在网上商店选中商品
并使用SET“电子钱包”付钱时,商家服务器上的软件发报文给持卡者的浏览器
要求SET“电子钱包”付钱,SET“电子钱包”则与商家服务器交换“握手”消
息(包括得到商家的证书),让持卡者确认商家被授权可以接受付欲卡付欲。同时
商家也通过类似过程来脸证持卡人的证书以验证其使用付欲卡的合法性。脸证合
法性之后才能进行支付信息的交换。在SET协议的消息流中所有教感信息都采用
密码技术对其机密性、完整性等进行保护,同时对消息派进行认证。为能够实现
这些安全功能,SET使用了致字签名、数字信封、对偶签名(也称双重签名)等.SET安全电子交易系统中,商家,CCA.MCA.发行银行,支付网关,支付卡品牌均有一对公开尹秘密密钥交换密钥和一对公开尹秘密签名密钥及相应的证书。持卡人有一对公开琳密签名密钥及相应的证书。除此以外,参与通信的各方均要求拥有加解密模块、数字签名了验证模块、具有密码随机性的随机对称密钥生成器、能够实现证书及其他安全今数的安全存贮的模块等.它们一起组成了SET棋组。该模型中的部分消息可能是带外完成的,例如商家注姗、持卡人注册及颁发证书时的部分认证过程。SE T 安全 电子交易的整个过程大体可以分为以下几个阶段:持卡人(c)注
册,商家(M)注册,购物请求,付欲授权,付款结算.
一、持卡人注册(Cardholder Registrafion)
持卡 人 C 在 实 儿电子交易之前必须先向其金胜机构(付欲银行)注册登记.
以便得到一个签名证书.在这过程中.C为了保证消息的机密性.盆要使用CCA
的密钥交换公钥,它是从CCA的密钥交换证书中得到(在初始响应中由CCA发
送)。注册的大体步异如下:
1. c向CCA发送初始请求;
2- CCA接收初始请求;
3- CCA生成响应,井对响应进行致字签名:
4- CCA把晌应连同证书一起发送给C;
5- C接收初始响应,井验证CCA的证书;
6- C脸证CCA对响应的数字签名:
7- C拍入帐号:
8- C生成注册表请求:
9- c随机生成对称密钥K二用K.对注册表请求消息加密,K.与帐号一起用CCA
的密 钥 交 换公钥加密:
10- C发送加密后的注册表请求给CCA;
It- CCA用密祖交换私钥解密K.和帐号,用K.解密加密的注册表请求;
12- CC^选择合适的注册表.井对其进行数字签名;
13- CCA发送注册表及CCA的证书给C-.
14- C接收注册表并脸证CCA的证书:
15- C脸证CCA对注册表的效字签名;
16- C产生一公用秘密密钥对和一个秘密的用于注册帐号随机数R
17- C坟写注册表井生成注册表请求:
18- C生成由请求、c的公开钥和新生成的对称密钥K:组成的消息,并签名;
19- C将此消息用密钥丸加密,吮、R.与帐号一起用CCA的密钥交换公钥加密:
20- C发送加密后的证书请求消息(包括加密的帐号和R,等)给CCA
21. CC人用密钥交换私钥解密K2、随机数和帐号.用K,解密加密后的证书请求:
22- CCA验证C的数字签名:
23- CCA用帐户信息和注册表信息对C进行必要的脸证(SET中没有具体规定):
24·根据验证结果CCA生成随机数凡,将凡、R,, C的帐号、有效期等信息的
散列 值 包 含在证书中,并签名:
25- CCA生成证书应答(包含有加密的凡)并签名:
26- CCA将证书应答用K:加密后发送给C;
27- C验证CCA的证书并用K2解密消息:
28- C验证CCA对证书的数字签名后保留证书以及CC^产生的秘密随机数R2
散列 函 数 作用于任愈长度的消息产生一个具有固定长度、在统计意义上唯一
的散列值。SET在实现数据完整性的时候,频繁地使用散列函数。散列函数自身
井不能提供完整性,通常要把它和密钥或者跟其他的算法结合在一起。例如,它
和数字签名结合在一起、在通信双方具有共享密钥时跟分组密码结合在一起或使
用带密钥的散列函数等。散列函数一般仅要求具有以下性质:故列函致的算法是
公开的:散列函数是一个单向函数;对于特定的散列函数寻找其碰撞消息对在计
算上是不可行的.SET中默认使用的散列函数是SHA. SHA算法是NIST NSA设计的与DSS( Digitalsig natuers tandard)一起使用的一个敞列函数,它产生160bits
的散列值。与其 他 散 列算法类似,首先将消息填充为512bits的整数倍:先添加一个比特
1,然后填充足够多的零使其长度为512bits的整数倍减去64bits,最后的64bits
用于表示消息填充前的长度。
将 算 法 中的五个32bits的变量初始化: A= 0x67452301
B=Oxefcdab89。C=Ox98badcfe,D=0x10325476,E=Oxc3d2e1fO .
然后开始算法主循环,每次处理512 bits的消息。因此,主循环的次数是消息所
包含的512bits分组的数目。
⑹ SET安全协议的密钥体制其重点在于
1 A
2 B
3 c
4 c
6 A
7 A
8 D
9 C
10 B
11 D
12 B
⑺ 如何基于set协议实现电子商务交易安全
保证电子商务安全,对敏感信息和个人信息提供机密性保证、认证交易双方的合法身份、保证数据的完整性和交易的不可否认性等,已经成为制约电子商务发展的瓶颈。基于SET协议的电子商务交易安全解决方案
1、加密方案:
当前电子商务中密码应用发展要求提出新的加密方案。组合加密方案就是指在符合SET
协议标准的系统中,采用多种经过严格理论证明的,实践表明是安全有效的成熟的算法,而不局限于某种特定的算法,按某种组合方式来进行加解密处理的加解密方案。
组合加密方案可以采用两种组合方式:叠套加密方案和协商加密方案。
2、叠套加密方案:
本方案对明文信息采用二层加密,即自主加密和SET 加密,提高了系统的安全性。在扩展性方面,本方案有非常好的扩展性,可适应各种不同的自动加密算法,
同时,可以反复套叠,以满足各种不同加密强度的要求。
3、协商加密方案:
如果每个参与者都支持多证书和多数字签名,可以采用协商加密方案。假设发起人A支持私钥加密算法DES、IDEA,公开密钥算法RSA和ElGamal,单向哈希算法有MD5、SHA-
1;B是信息的接收者,它只支持DES、RSA 和SHA- 1 三种算法。A、B的数字认证中心所支持的算法与A一致。A通过算法协商过程与B确定使用DES,SHA-
1 和RSA 算法。
⑻ set协议是什么
SET协议是指为了实现更加完善的即时电子支付应运而生的。SET协议(Secure Electronic Transaction),被称之为安全电子交易协议,是由Master Card和Visa联合Netscape,Microsoft等公司,于1997年6月1日推出的一种新的电子支付模型。
SET协议是B2C上基于信用卡支付模式而设计的,它保证了开放网络上使用信用卡进行在线购物的安全。SET主要是为了解决用户,商家,银行之间通过信用卡的交易而设计的,它具有的保证交易数据的完整性,交易的不可抵赖性等种种优点,因此它成为目前公认的信用卡网上交易的国际标准。
主要目标:
1. 防止数据被非法用户窃取,保证信息在互联网上安全传输。
2. SET 中使用了一种双签名技术保证电子商务参与者信息的相互隔离。客户的资料加密后通过商家到达银行,但是商家不能看到客户的帐户和密码信息。
3. 解决多方认证问题。不仅对客户的信用卡认证,而且要对在线商家认证,实现客户、商家和银行间的相互认证。
4. 保证网上交易的实时性,使所有的支付过程都是在线的。
5. 提供一个开放式的标准,规范协议和消息格式,促使不同厂家开发的软件具有兼容性和互操作功能。可在不同的软硬件平台上执行并被全球广泛接受。
⑼ 目前常用的加密解密算法有哪些
加密算法
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。
对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。
不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
不可逆加密算法 不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。
加密技术
加密算法是加密技术的基础,任何一种成熟的加密技术都是建立多种加密算法组合,或者加密算法和其他应用软件有机结合的基础之上的。下面我们介绍几种在计算机网络应用领域广泛应用的加密技术。
非否认(Non-repudiation)技术 该技术的核心是不对称加密算法的公钥技术,通过产生一个与用户认证数据有关的数字签名来完成。当用户执行某一交易时,这种签名能够保证用户今后无法否认该交易发生的事实。由于非否认技术的操作过程简单,而且直接包含在用户的某类正常的电子交易中,因而成为当前用户进行电子商务、取得商务信任的重要保证。
PGP(Pretty Good Privacy)技术 PGP技术是一个基于不对称加密算法RSA公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。PGP技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不需要通过任何保密渠道传递密钥的情况下,使人们安全地进行保密通信。PGP技术创造性地把RSA不对称加密算法的方便性和传统加密体系结合起来,在数字签名和密钥认证管理机制方面采用了无缝结合的巧妙设计,使其几乎成为最为流行的公钥加密软件包。
数字签名(Digital Signature)技术 数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。
PKI(Public Key Infrastructure)技术 PKI技术是一种以不对称加密技术为核心、可以为网络提供安全服务的公钥基础设施。PKI技术最初主要应用在Internet环境中,为复杂的互联网系统提供统一的身份认证、数据加密和完整性保障机制。由于PKI技术在网络安全领域所表现出的巨大优势,因而受到银行、证券、政府等核心应用系统的青睐。PKI技术既是信息安全技术的核心,也是电子商务的关键和基础技术。由于通过网络进行的电子商务、电子政务等活动缺少物理接触,因而使得利用电子方式验证信任关系变得至关重要,PKI技术恰好能够有效解决电子商务应用中的机密性、真实性、完整性、不可否认性和存取控制等安全问题。一个实用的PKI体系还必须充分考虑互操作性和可扩展性。PKI体系所包含的认证中心(CA)、注册中心(RA)、策略管理、密钥与证书管理、密钥备份与恢复、撤销系统等功能模块应该有机地结合在一起。
加密的未来趋势
尽管双钥密码体制比单钥密码体制更为可靠,但由于计算过于复杂,双钥密码体制在进行大信息量通信时,加密速率仅为单钥体制的1/100,甚至是 1/1000。正是由于不同体制的加密算法各有所长,所以在今后相当长的一段时期内,各类加密体制将会共同发展。而在由IBM等公司于1996年联合推出的用于电子商务的协议标准SET(Secure Electronic Transaction)中和1992年由多国联合开发的PGP技术中,均采用了包含单钥密码、双钥密码、单向杂凑算法和随机数生成算法在内的混合密码系统的动向来看,这似乎从一个侧面展示了今后密码技术应用的未来。
在单钥密码领域,一次一密被认为是最为可靠的机制,但是由于流密码体制中的密钥流生成器在算法上未能突破有限循环,故一直未被广泛应用。如果找到一个在算法上接近无限循环的密钥流生成器,该体制将会有一个质的飞跃。近年来,混沌学理论的研究给在这一方向产生突破带来了曙光。此外,充满生气的量子密码被认为是一个潜在的发展方向,因为它是基于光学和量子力学理论的。该理论对于在光纤通信中加强信息安全、对付拥有量子计算能力的破译无疑是一种理想的解决方法。
由于电子商务等民用系统的应用需求,认证加密算法也将有较大发展。此外,在传统密码体制中,还将会产生类似于IDEA这样的新成员,新成员的一个主要特征就是在算法上有创新和突破,而不仅仅是对传统算法进行修正或改进。密码学是一个正在不断发展的年轻学科,任何未被认识的加/解密机制都有可能在其中占有一席之地。
目前,对信息系统或电子邮件的安全问题,还没有一个非常有效的解决方案,其主要原因是由于互联网固有的异构性,没有一个单一的信任机构可以满足互联网全程异构性的所有需要,也没有一个单一的协议能够适用于互联网全程异构性的所有情况。解决的办法只有依靠软件代理了,即采用软件代理来自动管理用户所持有的证书(即用户所属的信任结构)以及用户所有的行为。每当用户要发送一则消息或一封电子邮件时,代理就会自动与对方的代理协商,找出一个共同信任的机构或一个通用协议来进行通信。在互联网环境中,下一代的安全信息系统会自动为用户发送加密邮件,同样当用户要向某人发送电子邮件时,用户的本地代理首先将与对方的代理交互,协商一个适合双方的认证机构。当然,电子邮件也需要不同的技术支持,因为电子邮件不是端到端的通信,而是通过多个中间机构把电子邮件分程传递到各自的通信机器上,最后到达目的地。