什么是ssl加密?

林大妃 2024-05-24 02:37:23
最佳回答
ssl加密的方法关键词: ssl加密的方法 随着计算机网络技术的发展,方便快捷的互连网使人们渐渐习惯了从web页上收发e-mail、购物和交易,这时web页面上需要传输重要或敏感的数据,例如用户的银行帐户、密码等,所以网络安全就成为现代计算机网络应用急需解决的问题。现行网上银行和电子商务等大型的网上交易系统普遍采用http和ssl相结合的方式。服务器端采用支持ssl的web服务器,用户端采用支持ssl的浏览器实现安全通信。ssl是secure socket layer(安全套接层协议)的缩写,可以在internet上提供秘密性传输。netscape公司在推出第一个web浏览器的同时,提出了ssl协议标准,目前已有3.0版本。ssl采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的ssl协议,已成为internet上保密通讯的工业标准。本文着重在ssl协议和ssl程序设计两方面谈谈作者对ssl的理解。ssl协议初步介绍安全套接层协议能使用户/服务器应用之间的通信不被攻击者**,并且始终对服务器进行认证,还可选择对用户进行认证。ssl协议要求建立在可靠的传输层协议(tcp)之上。ssl协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:http,ftp,telnet等)能透明地建立于ssl协议之上。ssl协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,ssl协议提供的安全信道有以下三个特性:1.数据的保密性信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密匙来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密匙要用一个安全的方法传送。加密过的数据可以公开地传送。2.数据的一致性加密也能保证数据的一致性。例如:消息验证码(mac),能够校验用户提供的加密信息,接收者可以用mac来校验加密数据,保证数据在传输过程中没有被篡改过。3.安全验证加密的另外一个用途是用来作为个人的标识,用户的密匙可以作为他的安全验证的标识。ssl是利用公开密钥的加密技术(rsa)来作为用户端与服务器端在传送机密资料时的加密通讯协定。目前,大部分的web 服务器及浏览器都广泛支持ssl 技术。当浏览器试图连接一个具有ssl认证加密的服务器时,就会唤醒一个ssl会话,浏览器检查认证,必须具备下面三个条件:1)有一个权威机构发放证书,当然可以创建自我签订的证书(x509 结构)。2)证书不能过期。3)证书是属于它所连接的服务器的。只有全部具备了这三个条件,浏览器才能成功完成认证。通过这三个条件,用户能确认其浏览器连接到正确的服务器,而不是连接到一些想**用户密码等重要信息的虚假的服务器上。在当今的电子商务中还有一项被广泛使用的安全协议是set协议。set(secure electronic transaction,安全电子交易)协议是由v**a和mastercard两大**公司于1997年5月联合推出的规范。set能在电子交易环节上提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺诈的可能性。set交易分三个阶段进行:用户向商家购物并确定支付;商家与银行核实;银行向商家支付货款。每个阶段都涉及到rsa对数据加密,以及rsa数字签名。使用set协议,在一次交易中,要完成多次加密与解密操作,故有很高的安全性,但set协议比ssl协议复杂,商家和银行都需要改造系统以实现互操作。在linux 下,比较流行支持ssl认证的是openssl服务器。openssl项目是一个合作的项目,开发一个健壮的、商业等级的、完整的开放源代码的工具包,用强大的加密算法来实现安全的socket层(secure sockets layer,ssl v2/v3)和传输层的安全性(transport layer security,tls v1)。这个项目是由全世界的志愿者管理和开发openssl工具包和相关文档。如何在linux下配置openssl服务器,首先从openssl的主页()上下载openssl-version.tar.gz软件包来编译安装,与apache服务器配合可以建立支持ssl的web服务器,并可以使用自我签订的证书做认证,关于如何编译、安装openssl服务器,可以参考一下openssl howto文档。ssl 程序设计初步介绍ssl 通讯模型为标准的c/s 结构,除了在 tcp 层之上进行传输之外,与一般的通讯没有什么明显的区别。在这里,我们主要介绍如何使用openssl进行安全通讯的程序设计。关于openssl 的一些详细的信息请参考openssl的官方主页 。在使用openssl前,必须先对openssl 进行初始化,以下的三个函数任选其一:ssl_library_init(void);openssl_add_ssl_algorithms();ssleay_add_ssl_algorithms();事实上 后面的两个函数只是第一个函数的宏。如果要使用openssl的出错信息,使用ssl_load_error_strings (void)进行错误信息的初始化。以后可以使用void err_print_errors_fp(file *fp) 打印ssl的错误信息。一次ssl连接会话一般要先申请一个ssl 环境,基本的过程是:1. ssl_method* meth = tlsv1_client_method(); 创建本次会话连接所使用的协议,如果是客户端可以使用ssl_method* tlsv1_client_method(void); tlsv1.0 协议ssl_method* sslv2_client_method(void); sslv2 协议ssl_method* sslv3_client_method(void); sslv3 协议ssl_method* sslv23_client_method(void); sslv2/v3 协议服务器同样需要创建本次会话所使用的协议:ssl_method *tlsv1_server_method(void);ssl_method *sslv2_server_method(void);ssl_method *sslv3_server_method(void);ssl_method *sslv23_server_method(void);需要注意的是客户端和服务器需要使用相同的协议。2.申请ssl会话的环境 ctx,使用不同的协议进行会话,其环境也是不同的。申请ssl会话环境的openssl函数是sslk_ctx* ssl_ctx_new (ssl_method*); 参数就是前面我们申请的 ssl通讯方式。返回当前的ssl 连接环境的指针。然后根据自己的需要设置ctx的属性,典型的是设置ssl 握手阶段证书的验证方式和加载自己的证书。void ssl_ctx_set_verify (ssl_ctx* , int , int* (int, x509_store_ctx*) )设置证书验证的方式。第一个参数是当前的ctx 指针,第二个是验证方式,如果是要验证对方的话,就使用ssl_verify_peer。不需要的话,使用ssl_verify_none.一般情况下,客户端需要验证对方,而服务器不需要。第三个参数是处理验证的回调函数,如果没有特殊的需要,使用空指针就可以了。void ssl_ctx_load_verify_locations(ssl_ctx*, const char* , const char*);加载证书;第一个参数同上,参数二是证书文件的名称,参数三是证书文件的路径;int ssl_ctx_use_certificate_file(ssl_ctx *ctx, const char *file, int type);加载本地的证书;type 指明证书文件的结构类型;失败返回-1int ssl_ctx_use_privatekey_file(ssl_ctx *ctx, const char *file, int type);加载自己的私钥;type 参数指明私钥文件的结构类型;失败返回-1加载了证书和文件之后,就可以验证私钥和证书是否相符:bool ssl_ctx_check_private_key (ssl_ctx*);3.既然ssl 使用tcp 协议,当然需要把ssl attach 到已经连接的套接字上了:ssl* ssl_new (ssl_ctx*); 申请一个ssl 套节字;int ssl_set_rfd (ssl*); 绑定只读套接字int ssl_set_wfd (ssl*); 绑定只写套接字int ssl_set_fd ( ssl*); 绑定读写套接字绑定成功返回 1, 失败返回0;4. 接下来就是ssl 握手的动作了int ssl_connect (ssl*); 失败返回 -15. 握手成功之后,就可以进行通讯了,使用ssl_read 和ss_write 读写ssl 套接字代替传统的read 、writeint ssl_read (ssl *ssl, char *buf, int num );int ssl_write (ssl *ssl, char *buf, int num);如果是服务器,则使用 ssl_accept 代替传统的 accept 调用int ssl_accept(ssl *ssl);6. 通讯结束,需要释放前面申请的 ssl资源int ssl_shutdown(ssl *ssl); 关闭ssl套接字;void ssl_free (ssl); 释放ssl套接字;void ssl_ctx_free (ctx); 释放ssl环境;openssl 虽然已经发展到了0.9.96版本,但是它的文档还很少,甚至连最基本的man 函数手册都没有完成。所以,本文紧紧是讲述了使用openssl 进行程序设计的框架。更加详细的资料可以参考openssl 的文档或者 apache mod_ssl 的文档。通过以上的介绍,我想读者对ssl协议已经有了一定的了解,作者有机会将会继续给大家介绍ssl协议的其他方面的内容。ssl原理解密本文出自:范晓明rsa公钥加密在计算机产业中被广泛使用在认证和加密。可以从rsa data security inc.获得的rsa公钥加密许可证。公钥加密是使用一对非对称的密码加密或解密的方法。每一对密码由公钥和私钥组成。公钥被广泛发布。私钥是隐密的,不公开。用公钥加密的数据只能够被私钥解密。反过来,使用私钥加密的数据只能用公钥解密。这个非对称的特性使得公钥加密很有用。使用公钥加密法认证认证是一个身份认证的过程。在下列例子中包括甲和乙,公钥加密会非常轻松地校验身份。符号{数据} key意味着"数据"已经使用密码加密或解密。假如甲想校验乙的身份。乙有一对密码,一个是公开的,另一个是私有的。乙透露给甲他的公钥。甲产生一个随机信息发送给乙。甲——〉乙:random-**乙使用他的私钥加密消息,返回甲加密后的消息。 乙——〉甲:{random-**}乙的私钥甲收到这个消息然后使用乙的以前公开过的公钥解密。他比较解密后的消息与他原先发给乙的消息。如果它们完全一致,就会知道在与乙说话。任意一个中间人不会知道乙的私钥,也不能正确加密甲检查的随机消息。除非你清楚知道你加密的消息。用私钥加密消息,然后发送给其他人不是一个好主意。因为加密值可能被用来对付你,需要注意的是:因为只有你才有私钥,所以只有你才能加密消息。所以,代替加密甲发来的原始消息,乙创建了一个信息段并且加密。信息段取自随机消息(random-**)并具有以下有用的特性:1. 这个信息段难以还原。任何人即使伪装成乙,也不能从信息段中得到原始消息;2. 假冒者将发现不同的消息计算出相同的信息段值;3. 使用信息段,乙能够保护自己。他计算甲发出的随机信息段,并且加密结果,并发送加密信息段返回甲。甲能够计算出相同的信息段并且解密乙的消息认证乙。这个技术仅仅描绘了数字签名。通过加密甲产生的随机消息,乙已经在甲产生的消息签名。因此我们的认证协议还需要一次加密。一些消息由乙产生:甲——〉乙:你好,你是乙么?乙——〉甲:甲,我是乙{信息段[甲,我是乙] } 乙的私钥当你使用这个协议,乙知道他发送给乙的消息,他不介意在上面签名。他先发送不加密的信息,"甲,我是乙。",然后发送信息段加密的消息版本。甲可以非常方便地校验乙就是乙,同时,乙还没有在他不想要的信息上签名。提交公钥那么,乙怎样以可信的方式提交他的公钥呢?看看认证协议如下所示:甲——〉乙:你好乙——〉甲:嗨,我是乙,乙的公钥甲——〉乙:prove it乙——〉甲:甲,我是乙 {信息段[甲,我是乙] } 乙的私钥在这个协议下,任何人都能够成为"乙"。所有你所要的只是公钥和私钥。你发送给甲说你就是乙,这样你的公钥就代替了乙的密码。然后,你发送用你的私钥加密的消息,证明你的身份。甲却不能发觉你并不是乙。为了解决这个问题,标准组织已经发明了证书。一个证书有以下的内容:* 证书的发行者姓名* 发行证书的组织* 标题的公钥* 邮戳证书使用发行者的私钥加密。每一个人都知道证书发行者的公钥(这样,每个证书的发行者拥有一个证书)。证书是一个把公钥与姓名绑定的协议。通过使用证书技术,每一个人都可以检查乙的证书,判断是否被假冒。假设乙控制好他的私钥,并且他确实是得到证书的乙,就万事大吉了。这些是修订后的协议:甲——〉乙:你好乙——〉甲:嗨,我是乙,乙的校验甲——〉乙:prove it乙——〉甲:甲,我是乙 {信息段[甲, 我是乙] } 乙的私钥现在当甲收到乙的第一个消息,他能检查证书,签名(如上所述,使用信息段和公钥解密),然后检查标题(乙的姓名),确定是乙。他就能相信公钥就是乙的公钥和要求乙证明自己的身份。乙通过上面的过程,制作一个信息段,用一个签名版本答复甲。甲可以校验乙的信息段通过使用从证书上得到的公钥并检查结果。如果一个黑客,叫h甲——〉h:你好h——〉不能建立一个令甲相信的从乙的消息。交换密码(secret)一旦甲已经验证乙后,他可以发送给乙一个只有乙可以解密、阅读的消息:甲——〉乙:{secret}乙的公钥唯一找到密码的方法只有使用乙的私钥解码上述的信息。交换密码是另一个有效使用密码加密的方法。即使在甲和乙之间的通讯被侦听,只有乙才能得到密码。使用密码作为另一个secret-key增强了网络的安全性,但是这次这是一个对称的加密算法(例如des、rc4、ide甲)。因为甲在发送给乙之前产生了密码,所以甲知道密码。乙知道密码因为乙有私钥,能够解密甲的信息。但他们都知道密码,他们都能够初始化一个对称密码算法,而且开始发送加密后的信息。这儿是修定后的协议:甲——〉乙:你好乙——〉甲:嗨,我是乙,乙的校验甲——〉乙:prove it乙——〉甲:甲,我是乙 {信息段[甲,我是乙] }乙的私钥甲——〉乙:ok 乙,here ** a secret {secret}乙的公钥乙——〉甲:{some **}secret-key黑客**那么如果有一个恶意的黑客h在甲和乙中间,虽然不能发现甲和乙已经交换的密码,但能干扰他们的交谈。他可以放过大部分信息,选择破坏一定的信息(这是非常简单的,因为他知道甲和乙通话采用的协议)。甲——〉h:你好h——〉乙:你好乙——〉h:嗨,我是乙,乙的校验h——〉甲:嗨,我是乙,乙的校验甲——〉h:prove ith——〉乙:prove it乙——〉h:甲,我是乙 {信息段[甲,我是乙] }乙的私钥h——〉甲:甲,我是乙 {信息段[甲,我是乙] }乙的私钥甲——〉h:ok 乙,here ** a secret {secret} 乙的公钥h——〉乙:ok 乙,here ** a secret {secret} 乙的公钥乙——〉h:{some **}secret-keyh——〉甲:garble[{some **}secret-key ]h忽略一些数据不修改,直到甲和乙交换密码。然后h干扰乙给甲的信息。在这一点上,甲相信乙,所以他可能相信已经被干扰的消息并且尽力解密。需要注意的是,h不知道密码,他所能做的就是毁坏使用秘钥加密后的数据。基于协议,h可能不能产生一个有效的消息。但下一次呢?为了阻止这种破坏,甲和乙在他们的协议中产生一个校验码消息(** authentication code)。一个校验码消息(mac)是一部分由密码和一些传输消息产生的数据。信息段算法描述的上述特性正是它们抵御h的功能:mac= digest[some **,secret ]因为h不知道密码,他不能得出正确的值。即使h随机干扰消息,只要数据量大,他成功的机会微乎其微。例如,使用hd5(一个rsa发明的好的加密算法),甲和乙能够发送128位mac值和他们的消息。h猜测正确的mac的几率将近1/18,446,744,073,709,551,616约等于零。这是又一次修改后的协议:甲——〉乙:你好乙——〉甲:嗨,我是乙,乙的校验甲——〉乙:prove it乙——〉甲:嗨,我是乙,乙的校验甲,我是乙{信息段[甲,我是乙] } 乙的私钥ok 乙,here ** a secret {secret} 乙的公钥{some **,mac}secret-key现在h已经无技可施了。他干扰了得到的所有消息,但mac计算机能够发现他。甲和乙能够发现伪造的mac值并且停止交谈。h不再能与乙通讯。openssl faq 20210311
汇率兑换计算器

类似问答
  • 为什么需要购买ssl证书?
    • 2024-05-24 19:45:46
    • 提问者: 未知
    1、保障了客户的信息安全,网站存储数据交流等将进行保护。2、加强您的品牌,增加客户信任度,https首先确保的是正规安全可靠网站。3、更好的搜索引擎排名:百度、谷歌、360、搜狗、必应将https优先收录并靠前展示。4、ios上线与微信程序接口必要https协议存在。
  • 加密数字货币是什么
    • 2024-05-24 04:11:14
    • 提问者: 未知
    数字加密货币bai是不依靠法定货du币机构发行,不受央zhi行管控,依据全世界的计dao算机运算回一组方程式开源代码,答通过计算机的显卡、cpu大量的运算处理产生,并使用密码学的设计来确保货币流通各个环节安全性的货币。拓展资料: 数字货币的定义: 数字货币简称为digiccy,是英文“digital ...
  • 部署了ssl数字证书能说明什么?
    • 2024-05-24 22:40:08
    • 提问者: 未知
    ssl 协议是 netscape 公司于 1994 年提出的一个关注互联网信息安全的信息加密传输协议,其目的是为客户端(浏览器)到服务器端之间的信息传输构建一个加密通道,此协议是与操作系统和 web 服务器无关。同时,netscape 在 ssl 协议中采用了主流的加密算法(如:des、aes 等)和采用了通用的 pki 加密...
  • 什么叫ssl
    • 2024-05-24 05:49:46
    • 提问者: 未知
    secure socket layer,为2113netscape所研发,用以保障在internet上数据传输的安全5261,利用数据加密(encryption)技术,可确保数据在网络4102上的传1653输过程中不会被截取及**。ssl提供的服务包括 1)认证用户和服务器,确保数据发送到正确的客户机和服务器;2)加密数据以防止数据中途被...
  • ssl加解密和f5是什么意思?
    • 2024-05-24 11:31:31
    • 提问者: 未知
    某大型金融机构原采用f5 bigip实现ssl加速。从业务的发展速度规划,该机构需要在新的系统下能达到原系统性能的10倍以上,并且系统需要考虑到冗余和管理性的综合要求,在系统中的设备数量尽量减少。在该机构的新一代业务系统建设中,共采用了4台bigip。其中两台bigip采用高可用性结构负责服务器负载均衡...
  • ssl证书是什么有哪些 怎么识别这几种ssl证书
    • 2024-05-24 03:08:05
    • 提问者: 未知
    ssl证书更加验证级别不同主要分为3种:dv ssl证书;ev ssl证书;ov ssl证书。详细介绍:
  • https 加密了什么内容?
    • 2024-05-24 22:44:19
    • 提问者: 未知
    客户端发出请求,服务端进行响应,就是这么简单。...在传输公钥的过程中,肯定也会有被中间人获取的风险,但在目前的情况下,至少可以保证客户端通过公钥加密的内容,中间人是...
  • 网站不安装ssl证书有什么风险,网站一定要使用ssl吗?
    • 2024-05-24 20:37:33
    • 提问者: 未知
    沃通ssl证书由全球信任顶级根签发,支持所有浏览器和移动端,能够为web站点、ios/安卓app、小程序等各类互联网应用...安装ssl证书能避免这个风险,现在浏览器都要求网站安装...
  • 数据加密与解密的加密过程
    • 2024-05-24 10:16:45
    • 提问者: 未知
    因特网作为信息传输的载体是不安全的信息媒介,它所遵循的通讯协议(tcp/ip协议)本身具有脆弱性。当初设计该协议的初衷并非出于对通信安全的考虑,而是出于对通信自由的考量。因此,一些基于tcp/ip协议的服务也是极不安全;另一方面,因特网给众多的商家带来了无限的商机,许多网络黑客依照...
  • 什么样的网站需要安装安信ssl证书?
    • 2024-05-24 16:41:28
    • 提问者: 未知
    您好!社会各界人士,社会群体组织,及每位从事互联网行业的人员,都应有互联网安全责任与义务,牢记:**谈网络安全“没有网络安全就没有**安全”ssl证书应用到个人、企业、**、金融等其它互联网参与者,他将确保数据不被**,提供数据加密传输,保证群众上网安全。移动互联网的发展迅速,网民都应识别https协议网站才是安全网站,加强计算机安全教育,网民针对ssl证书类型,尤其ov、ev ssl证书实名性质...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。