分享
 
 
 

SSL认证机构是干什么的,在电子商务中如何实现?

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一.协议的起源

随着计算机网络技术向整个经济社会各层次延伸,整个社会表现对Internet、Intranet

、Extranet等使用的更大的依赖性。随着企业间信息交互的不断增加,任何一种网络应用和增值服务的使用程度将取决于所使用网络的信息安全有无保障,网络安全已成为现代计算机网络应用的最大障碍,也是急需解决的难题之一。

由于Web上有时要传输重要或敏感的数据,因此Netscape公司在推出Web浏览器首版的同时,提出了安全通信协议SSL(Secure Socket Layer),目前已有2.0和3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持。目前,利用公开密钥技术的SSL协议,并已成为Internet上保密通讯的工业标准。现行Web浏览器普遍将HTTP和SSL相结合,从而实现安全通信。

二.协议概述

安全套接层协议(SSL)是在Internet基础上提供的一种保证私密性的安全协议。它能使客户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对客户进行认证。SSL协议要求建立在可靠的传输层协议(例如:TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTP,FTP,TELNET。。。

。。。)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

通过以上叙述,SSL协议提供的安全信道有以下三个特性:

? 私密性。因为在握手协议定义了会话密钥后,所有的消息都被加密。

? 确认性。因为尽管会话的客户端认证是可选的,但是服务器端始终是被认证的。

? 可靠性。因为传送的消息包括消息完整性检查(使用MAC)。

三.协议规范

SSL协议由SSL记录协议和SSL握手协议两部分组成。

1. SSL记录协议:

在SSL协议中,所有的传输数据都被封装在记录中。记录是由记录头和长度不为0的记录数据组成的。所有的SSL通信包括握手消息、安全空白记录和应用数据都使用SSL记录层。SSL记录协议包括了记录头和记录数据格式的规定。

1) SSL记录头格式:

SSL的记录头可以是两个或三个字节长的编码。SSL记录头的包含的信息包括:记录头的

长度、记录数据的长度、记录数据中是否有粘贴数据。其中粘贴数据是在使用块加密算

法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有粘贴数据,记

录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有粘贴

数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。

当数据头长度是三个字节时,次高位有特殊的含义。次高位为1时,标识所传输的记录是

普通的数据记录;次高位为0时,标识所传输的记录是安全空白记录(被保留用于将来协

议的扩展)。

记录头中数据长度编码不包括数据头所占用的字节长度。记录头长度为两个字节的记录长度的计算公式:记录长度=((byte[0] ; 0x7f)

2) SSL记录数据的格式:

SSL的记录数据包含三个部分:MAC数据、实际数据和粘贴数据。

MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHER-CHOICE消息确定。若使用MD2和MD5算法,则MAC数据长度是16个字节。MAC的计算公式:MAC数据=HASH[密钥,实际数据,粘贴数据,序号]。当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器。每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有32位,计数值循环使用,每发送一个记录计数值递增一次,序号的初始值为0。

2. SSL握手协议:

SSL握手协议包含两个阶段,第一个阶段用于建立私密性通信信道,第二个阶段用于客户认证。

1) 第一阶段:

第一阶段是通信的初始化阶段,通信双方都发出HELLO消息。当双方都接收到HELLO消息时,就有足够的信息确定是否需要一个新的密钥。若不需要新的密钥,双方立即进入握手协议的第二阶段。否则,此时服务器方的SERVER-HELLO消息将包含足够的信息使客户方产生一个新的密钥。这些信息包括服务器所持有的证书、加密规约和连接标识。若密钥产生成功,客户方发出CLIENT-MASTER-KEY消息,否则发出错误消息。最终当密钥确定以后,服务器方向客户方发出SERVER-VERIFY消息。因为只有拥有合适的公钥的服务器才能解开密钥。下图为第一阶段的流程:

需要注意的一点是每一通信方向上都需要一对密钥,所以一个连接需要四个密钥,分别为客户方的读密钥、客户方的写密钥、服务器方的读密钥、服务器方的写密钥。

2) 第二阶段:

第二阶段的主要任务是对客户进行认证,此时服务器已经被认证了。服务器方向客户发出认证请求消息:REQUEST-CERTIFICATE。当客户收到服务器方的认证请求消息,发出

自己的证书,并且监听对方回送的认证结果。而当服务器收到客户的认证,认证成功返回SERVER-FINISH消息,否则返回错误消息。到此为止,握手协议全部结束。

3. 典型的协议消息流程:

消息名 方向 内容

不需要新密钥

CLIENT-HELLO C-;S challenge, session_id, cipher_specs

SERVER-HELLO S-;C connection-id, session_id_hit

CLIENT-FINISH C-;S Eclient_write_key[connection-id]

SERVER-VERIFY S-;C Eserver_write_key[challenge]

SERVER-FINISH S-;C Eserver_write_key[session_id]

需要新密钥

CLIENT-HELLO C-;S challenge, cipher_specs

SERVER-HELLO S-;C connection-id,server_certificate,cipher_specs

CLIENT-MASTER-KEY C-;S Eserver_public_key[master_key]

CLIENT-FINISH C-;S Eclient_write_key[connection-id]

SERVER-VERIFY S-;C Eserver_write_key[challenge]

SERVER-FINISH S-;C Eserver_write_key[new_session_id]

需要客户认证

CLIENT-HELLO C-;S challenge, session_id, cipher_specs

SERVER-HELLO S-;C connection-id, session_id_hit

CLIENT-FINISH C-;S Eclient_write_key[connection-id]

SERVER-VERIFY S-;C Eserver_write_key[challenge]

REQUEST-CERTIFICATE S-;C Eserver_write_key[auth_type,challenge']

CLIENT-CERTIFICATE C-;S Eclient_write_key[cert_type,client_cert,response_data]

SERVER-FINISH S-;C Eserver_write_key[session_id]

四.相关技术:

1. 加密算法和会话密钥:

如前所述,加密算法和会话密钥是在握手协议中协商并有CIPHER-CHOICE指定的。现有的SSL版本中所用到的加密算法包括:RC4、RC2、IDEA和DES,而加密算法所用的密钥由消息散列函数MD5产生。RC4、RC2是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密。下述为CIPHER-CHIOCE的可能取值和会话密钥的计算:

SSL_CK_RC4_128_WITH_MD5

SSL_CK_RC4_128_EXPORT40_WITH_MD5

SSL_CK_RC2_128_CBC_WITH_MD5

SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5

SSL_CK_IDEA_128_CBC_WITH_MD5

KEY-MATERIAL-0 = MD5[ MASTER-KEY, ";0";, CHALLENGE, CONNECTION-ID ]

KEY-MATERIAL-1 = MD5[ MASTER-KEY, ";1";, CHALLENGE, CONNECTION-ID ]

CLIENT-READ-KEY = KEY-MATERIAL-0[0-15]

CLIENT-WRITE-KEY = KEY-MATERIAL-1[0-15]

SSL_CK_DES_64_CBC_WITH_MD5

KEY-MATERIAL-0 = MD5[ MASTER-KEY, CHALLENGE, CONNECTION-ID ]

CLIENT-READ-KEY = KEY-MATERIAL-0[0-7]

CLIENT-WRITE-KEY = KEY-MATERIAL-0[8-15]

SSL_CK_DES_192_EDE3_CBC_WITH_MD5

KEY-MATERIAL-0 = MD5[ MASTER-KEY, ";0";, CHALLENGE, CONNECTION-ID ]

KEY-MATERIAL-1 = MD5[ MASTER-KEY, ";1";, CHALLENGE, CONNECTION-ID ]

KEY-MATERIAL-2 = MD5[ MASTER-KEY, ";2";, CHALLENGE, CONNECTION-ID ]

CLIENT-READ-KEY-0 = KEY-MATERIAL-0[0-7]

CLIENT-READ-KEY-1 = KEY-MATERIAL-0[8-15]

CLIENT-READ-KEY-2 = KEY-MATERIAL-1[0-7]

CLIENT-WRITE-KEY-0 = KEY-MATERIAL-1[8-15]

CLIENT-WRITE-KEY-1 = KEY-MATERIAL-2[0-7]

CLIENT-WRITE-KEY-2 = KEY-MATERIAL-2[8-15]其中KEY-MATERIAL-0[0-15]表示KEY-MATERIAL-0中的16个字节,KEY-MATERIAL-0[0-7]表示KEY-MATERIAL-0中的头8个字节,KEY-MATERIAL-1[8-15]表示KEY-MATERIAL-0中的第9个字节到第15个字节。其他类似形式有相同的含义。";0";、";1";表示数字0、1的ASCII码0x30、0x31。

2. 认证算法:

认证算法采用X。509电子证书标准,通过使用RSA算法进行数字签名来实现的。

1) 服务器的认证:

在上述的两对密钥中,服务器方的写密钥和客户方的读密钥、客户方的写密钥和服务器方的读密钥分别是一对私有、公有密钥。对服务器进行认证时,只有用正确的服务器方写密钥加密CLIENT-HELLO消息形成的

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有