SSL提供了一套安全加密方法,相当于网络的加密层。
TLS是SSL的升级版,遵循X.509协议。
支持TLS协议的有很多厂商,如OpenSSL,主要用于生成证书,OpenSSL是TLS协议的一种免费实现方案。
颁发者(CA)颁发证书,颁发者需要有权威性、有公信力。颁发证书过程中需要技术手段保证其可信性,即用OpenSSL在颁发者和证书之间建立安全、可信、有权威性的关系。
证书是网站所申请的,由浏览器代替访客查看证书,有证书意味网站是可信任的。
HTTP:用于浏览器和服务器端交换纯文本数据。
对称加密:客户端和服务器都有密码或密钥。
离线加密狗:将密码写在硬件上,服务器对每个用户发放密码,客户端通过插件的形式得到密码,保证了网络上没有密码传输。要求所有用户离线操作。
HTTPS需要第三方下发证书保证安全。
如何实现在对称加密时使用互联网传输密码且密码不外泄? 无法实现,所以有了非对称加密。
非对称加密:加密方和使用方使用的密钥不同(公私钥匙)。私钥上锁,公钥能解,公钥加密,私钥也能解开。当公钥加密数据时,不能用公钥解。
TCP三次握手目的是建立稳定链接。HTTP协议基于TCP协议,HTTPS协议基于TCP+HTTP+SSL协议,SSL协议要求进行第四次握手。
第四次握手的过程中,客户端发送请求(传输加密的方式,没有密码),服务器返回是否支持该加密算法,若服务器支持,返回接受请求的回应和服务器的公钥(用于密码加密)。
客户端用第四次握手中被接受的对称加密算法对数据加密,随机生成生成对称加密的密钥(解开加密数据的密码)后,使用公钥对对称加密的密钥进行加密,生成公钥密文(对称加密的密钥),然后发给服务器。
服务器收到公钥密文后用私钥进行解密,得到对称加密的密钥(即对称加密需要的密码)和加密算法。
这时在传输过程中拦截到的信息只有服务器的公钥和公钥密文,公钥不可以解开公钥加密的数据。
公私钥怎么来:先有私钥,由私钥生成的公钥,生成的过程是由OpenSSL这个工具做的。私钥是纯文本,相当于一个可读的纯文本密码。由私钥作为参数,用OpenSSL生成公钥,使用的典型算法是RSA算法,这个算法保证了公钥加密的数据私钥能解,私钥加密的公钥能解,但公钥加密的公钥不能解。公私钥都是文本,是一对。
客户端到服务器端的传输过程:
客户端------>代理服务器------->服务器
(1)客户端到代理服务器需要交互;(2)代理服务器和服务器交互。
在(2)的情景下,此时代理服务器代替客户端发送和接收信息,代理服务器是真正的客户端。这时代理服务器能拿到 服务器的公钥,客户端拿到代理服务器的公钥。
在(1)的情景下,代理服务器是服务器端。
也就是说这个代理服务器可以两面冒充。
这时需要第三方认证来保证安全。
server端需要申请认证,需要提供域名、邓白氏编码、营业许可。网站+域名,需要证明服务器有网站的持有权。第三方提供证书,内容包含公钥、域名、公司名、签发人。第三方有自己的私钥,用自己的私钥加密以上信息,同时提供了公钥内置在客户端,浏览器内置有CA机构内置的公钥。
这时server向客户端发送的是证书,客户端解密得到证书的明文,从而得到了服务器的公钥。避免中间的代理商替换掉server的公钥,因此需要第三方。
非对称加密效率低于对称加密。
最近工作上需要把这几个月研发的Flex Realspace产品在sp3时上线,急需制作帮助文...
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,...
前言 最近在知乎里有一个同学付费咨询问我他刚刚毕业即将进入职场有些紧张不知道...
点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点...
因为公司需要在原有的web开发上,实现3d效果。根据需求正在学习webgl,主攻cesiu...
在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和...
? ?我是2021年参加西南大学研究生考试报考的专业是电子信息专业考的是英语二数学...
声明式API vs 命令时API 计算机系统是分层的,也就是下层做一些支持的工作,暴露...
? ? ? ? ? ? ? 提示 有些博客可能只是开了头如果感兴趣的同学可以“ 点赞 ”或“...
什么是黑客? JargonFile包含了一大堆关于“hacker”这个词的定义,大部分与技术...