ssh ssl tls set
ssh:
ssh用来建立安全的数据传输通道,相比于tftp,ftp等通过明文传输文件,ssh通过密文传输文件,提高了安全性.
ssh包括3层协议:传输,认证,连接;
ssh的连接由客户端发起,过程包括3个过程:
1)协商ssh协议.
2)协商加密算法.交换密钥.
3)认证(可以通过user,password方式或者publickey方式).然后就进入
数据传输模式,该模式是建立在前面通过认证建立的安全通道基础上的.
ssl:
ssl是安全套接字,由netscape公司最先发明和使用.目的是为数据传输建立安全环境,
基础是加密算法和公钥基础设施.
握手协议包括身份认证、协商加密算法、交换密钥。
ssl连接由客户端发起,过程包括服务器认证,客户端认证。
1)服务器认证:
1.1客户端发送“hello”到服务端;
1.2服务端根据需要发送一个生成密钥的算法给客户端;
1.3客户端根据算法,计算出一个密钥,并通过服务端的公钥加密,发送给服务端;
1.4服务端计算出客户端的密钥并发送给客户端,再生成一个用客户端密钥加密的信息发送给客户端;
1.5客户端可以通过返回信息验证服务端。
2)客户认证:
2.1服务端发送一个提问给客户端;
2.2客户端返回签名后的提问和客户端公钥。
ssl目前版本为3.0;
tls:
tls和ssl差不多,但是在ssl3.0基础上做了一些改进,可以看做是ssl3.1版本;
https:
是在ssl基础上的http传输。https的端口是443.
set:
电子交易安全协议,是为了保证交易双方的身份真实,交易的不可抵赖性.基础是公钥密码体制和x.509数字证书.
SET交易过程中要对商家,客户,支付网关等交易各方进行身份认证,因此它的交易过程相对复杂。
(1)客户在网上商店看中商品后,和商家进行磋商,然后发出请求购买信息。
(2)商家要求客户用电子钱包付款。
(3)电子钱包提示客户输入口令后与商家交换握手信息,确认商家和客户两端均合法。
(4)客户的电子钱包形成一个包含订购信息与支付指令的报文发送给商家。
(5)商家将含有客户支付指令的信息发送给支付网关。
(6)支付网关在确认客户信用卡信息之后,向商家发送一个授权响应的报文。
(7)商家向客户的电子钱包发送一个确认信息。
(8)将款项从客户帐号转到商家帐号,然后向顾客送货,交易结束。
从上面的交易流程可以看出,SET交易过程十分复杂性,在完成一次SET协议交易过程中,需验证电子证书9次,验证数字签名6次,传递证书7次,进行签名5次,4次对称加密和非对称加密。
通常完成一个SET协议交易过程大约要花费1.5-2分钟甚至更长时间。由于各地网络设施良莠不齐,因此,完成一个SET协议的交易过程可能需要耗费更长的时间。
mac:消息验证码(message authentication code)
是将散列值通过加密算法进行加密后的消息。加密算法可以是des,也可以是hmac。hmac是基于MD5
或sha-1.
hmac(k,m)=h(k异或opad|h(k异或ipad|m)).
h是哈希函数,k是密钥,m是消息,opad,ipad是若干个0x5c和0x36的组成的字符串.