篇一 SET协议和SSL协议的区别
SET协议和SSL协议的区别
两种都是应用于电子商务用的网络安全协议。都能保证交易数据的安全性、保密性和完整性。
SSL叫安全套接层协议是国际上最早用的 已成工业标准但它的基点是商家对客户信息保密的承诺因此有利于商家而不利于客户。
SET叫安全电子交易协议是为了在互联网上进行在线交易时保证信用卡支付的安全而设立的一个开放的规范。因它的对象包括消费者、商家、发卡银行、收单银行、支付网关、认证中心所以对消费者与商家同样有利。它越来越得到众人认同将会成为未来电子商务的规范。
近年来 IT业界与金融行业一起推出不少更有效的安全交易标准。主要有
(1)安全超文本传输协议S-HT TP依靠密钥对的加密保障Web站点间的交易信息传输的安全性。
1
(2)安全套接层协议SSL协议 Secure Socket Layer)是由网景Netscape公司推出的(来自:WwW.xltkwJ.cOm小龙文档网:ssl协议未开启是什么意思)一种安全通信协议是对计算机之间整个会话进行加密的协议提供了加密、认证服务和报文完整性。它能够对信用卡和个人信息提供较强的保护。SSL被用于Netscape Communicator和Microsoft IE浏览器用以完成需要的安全交易操作。在SSL中采用了公开密钥和私有密钥两种加密方法。
(3)安全交易技术协议(STT Secure TransactionTechnology) 由Mic rosoft公司提出 STT将认证和解密在浏览器中分离开用以提高安全控制能力。Microsoft将在Internet Explorer中采用这一技术。
(4)安全电子交易协议 SET Secure ElectronicTra nsactio nSET协议是由VISA和Maste rCa rd两大信用卡公司于1997年5月联合推出的规范。 SET主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的以保证支付信息的机密、支付过程的完整、商户及持卡人的合法身份、以及可操作性。 SET中的核心技术主要有公开密匙加密、 电子数字签名、 电子信封、 电子安全证书等。
篇二 SSL协议_openssl_附代码
SSL协议
1实验原理
2
1.1 SSL协议
SSL(Secure SocketLayer安全套接字层)在通信双方间建立了一个传输层安全通道它使用对称加密来保证通信保密性使用消息认证码(MAC)来保证数据完整性并且在建立连接时主要使用PKI对通信双方进行身份认证。 NetscapeNavigator和Internet Explorer都支持SSL。
1.2 SSL协议的分层结构
SSL协议基于C/S(client/server)模式位于TCP/IP协议与各种应用层协议之间为数据通信提供安全支持。它可分为两层
1.SSL记录协议(SSLRecordProtocol)
它建立在可靠的传输控制协议(如TCP)之上为高层协议提供数据封装、压缩、加密等基本功能的支持。
2.SSL握手协议(SSL Handshake Protocol)
它建立在SSL记录协议之上用于在实际的数据传输开始前通信双方进行身份认证、协商加密算法、交换加密密钥等。
作为分层的协议在每一层消息可以包含长度、描述和内容字段。 SSL发出消息先把数据分成可管理的块然后压缩、加密并发出加密后的结果。接收消息后进行解密、验证、解压和重组再把结果发往更高一层的客户。
1.3 SSL握手协议
3
SSL握手协议的作用是在正式的秘密通信之前让服务器和客户之间互相鉴别对方的身份并协商一种会话的加密算法和加密密钥,主要可分为以下两个方面
(1)客户端和服务器端之间互相验证身份
C/S主要是通过证书来验证首先通过对方证书中权威发证机构签字的验证
来确定对方拥有的证书是否有效。如果证书有效接着就从这个证书中提取出公钥通过对方的签名验证用户是不是假冒的。如果二者都通过则证明对方的身份是真实可信的。其中服务器对客户端的验证是可选的。
(2)客户端和服务器之间协商安全参数
协商的参数一般包括协议的版本号、密钥交换算法、数据加密算法和Hash算法通过协商达成一致性。其中版本号一般要求一致。关于密钥交换算法和数据加密算法是先由客户端向服务器端发送一个列表其中详细列举了客户端所支持的算法然后由服务器端从中选取自己支持且加密性能优良的算法将其返回给客户端至此完成了算法的协商最后由客户端随机产生一个用于数据加密的对称密钥用一种商议好的密钥交换协议将它传给服务器端。 SSL支持的密钥交换算法有RSA密钥交换和Diffie-He llma n密钥交换两种。
SSL握手协议顺序图
4
2实验内容
2.1实验环境
1、 win72、 VS2005
3、 openSSL函数库
2.2实验代码
2.2.1 server端
//ssl_Server.cpp:定义控制台应用程序的入口点。//
//server
#include stdafx.h
#inc lude<winsock2.h
#inc lude<co nio.h
#inc lude<stdio.h
#include openssl/x509.h
#include openssl/ssl.h
#include openssl/err.h
#define MSGLENGTH1024
#define PORT 8888
#define CACERT./private/ca.crt
#define SVRCERTF./certs/server.crt
#define SVRKEYF ./private/server.key
#pragma comment(lib,wsock32.lib)
5
#pragma comment(lib, libeay32.lib)
#pragma comment(lib, ssleay32.lib)int_tmain(int argc,_TCHAR*argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);SOCKETsock;
SSL_METHOD*meth;
SSL_CTX*ctx;
SSL*ssl;
//SSL初始化
OpenSSL_add_ssl_algorithms();
//SSL错误信息初始化
SSL_load_erro r_strings();
//创建本次会话所使用的协议meth=(SSL_METHOD*)TLSv1_server_method();//申请SSL会话的环境ctx=SSL_CTX_new(meth);if(NUL L==ctx)exit(1);
//设置会话的握手方式并加载CA证书
SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL);
6
if (!S SL_C TX_lo ad_ve rify_lo c atio ns(ctx, C ACE RT,NULL)) {} printf(%d \n\n下载CA证书出错 \n,S SL_CTX_lo a d_verify_locatio ns(ctx, CACE RT, exit(-1);NULL));
//加载服务器端的证书if (!S SL_C TX_use_ce rtific ate_file(ctx, S VRC ERTF,SSL_FILETYPE_PEM)) { ERR_print_errors_fp(stderr);exit(1);
}
//加载服务器端的私钥if (!S SL_C TX_use_P rivateKey_file(ctx, SVRKE YF,SSL_FILETYPE_PEM)) { ERR_print_errors_fp(stderr);exit(1);
}
//检查服务器端的证书和私钥是否匹配if(!SSL_C TX_check_private_key(ctx)) {p rintf(\n\n私钥与证书公钥不匹配 \n);exit(1);
}
//加密方式
SSL_CTX_set_ciphe r_list(ctx,RC4-MD5);
//处理握手多次
7
SSL_C TX_set_mode(ctx,SSL_MODE_AUTO_RETRY);
/*以下是正常的TCP socket建立过程..............................
*/sock=socket(AF_INET,SOCK_STREAM,0);if(sock==INVALID_SOCKET) {printf(\n\nSOCKE T有问题.\n);return 0;
}sockaddr_in addr;memset(&addr,'\0',sizeof(addr));addr.sin_fa mily=AF_INE T;addr.sin_port=htons(PORT); /*Server Port number*/addr.sin_addr.s_addr=INADDR_ANY;
//绑定sockint nResult = bind(sock, (sockaddr *)&addr,sizeof(addr));if(nResult==S OCKE T_ERROR) {printf(\n\n绑定SOCKET有问题.\n);return 0;
}
/*接受TCP链接*/sockaddr_in sa_cli;
8
int e rr=liste n(sock,5);if(-1==e rr)exit(1);int c lient_len=sizeof(sa_cli);int ss = accept(sock, (struct sockaddr *)&sa_cli,&a mp;c lie nt_le n);if(s s==-1) {exit(1);
}closesocket(sock);printf(\n连接端口%d,po rt%d\n, sa_cli.sin_addr.s_a ddr,sa_cli.sin_po rt);/* TCP链接已建立.开始S SL握手过程..........................*/
//绑定套接字ssl=SSL_new(ctx);if(NUL L==ss l)exit(1);if(!SSL_set_fd(ssl,ss)) {p rintf(\n连接失败 \n);exit(1);
}
//SSL握手
9
轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...
快快CDN主营业务为海外服务器无须备案,高防CDN,防劫持CDN,香港服务器,美国服务器,加速CDN,是一家综合性的主机服务商。美国高防服务器,1800DDOS防御,单机1800G DDOS防御,大陆直链 cn2线路,线路友好。快快CDN全球安全防护平台是一款集 DDOS 清洗、CC 指纹识别、WAF 防护为一体的外加全球加速的超强安全加速网络,为您的各类型业务保驾护航加速前进!价格都非常给力,需...
傲游主机商我们可能很多人并不陌生,实际上这个商家早年也就是个人主机商,传说是有几个个人投资创办的,不过能坚持到现在也算不错,毕竟有早年的用户积累正常情况上还是能延续的。如果是新服务商这几年确实不是特别容易,问到几个老牌的个人服务商很多都是早年的用户积累客户群。傲游主机目前有提供XEN和KVM架构的云服务器,不少还是亚洲CN2优化节点,目前数据中心包括中国香港、韩国、德国、荷兰和美国等多个地区的CN...