[skill][https][ssl/tls] HTTPS相关知识汇总

结论前置:

  A 身份验证

    证书, 服务器证书

  B 密钥协商

    RSA   DHE / ECDHE   PSK

  C 加密通信

加密通信采用对称加密,使用B阶段协商出来的密钥。

B 阶段如果使用 RSA 协商,可以用服务器证书在协商过程中解密到 C过程中的密钥。从而解密通信内容。(此方式下,采用旁路方式就可以)。

B 阶段如果使用DHE/ECDHE协商,至少需要建立链接时的server魔数(也许还需要私钥即服务器证书)才能计算出加密密钥。简单来说协商过程也是一次一密。

于是,应该有两种情况可以解密https。

情况一:与server 通信,实时获得两个信息:1,session 信息。2,server魔数。 这种情况下,只需要旁路就可以了。

情况二:串行在网络中,做中间人。需要服务器证书做认证与签名,流程我暂时还没搞清楚。然后,需要与两端握手并协商密钥,然后做两端加解密,并内容转发。

引用一段有用的内容[1]

A WAF applies filter rules on traffic at an "application" level (e.g. it tries to detect SQL injection attempts). This requires that the WAF sees the traffic, i.e. whatever SSL which may have happened on the client side must stop at the WAF. But you usually want some SSL to protect the traffic between the client and the WAF (in fact, you usually want it more on that link than between the WAF and the server itself, since WAF and server are usually nearby to each other).

There are two ways for a WAF to see SSL-protected traffic:

The WAF has a copy of the private key used by the (SSL-aware) server, and thus can decrypt the data as it flows. (This can imply some restrictions on the cipher suites used by the server; namely, no DHE).
The WAF itself runs a SSL server, and that is the one which the client sees. The WAF decrypt the data, runs its magic on it, and then forwards it to the server over a new connection which may or may not be SSL-protected.
Which one you use depends on what your WAF instance can do and how you configured it.

概念:

http://www.guokr.com/post/114121/

http://www.guokr.com/post/116169/

http://www.guokr.com/post/148613/

https://en.wikipedia.org/wiki/HTTPS

双向认证,单项认证:

http://www.jianshu.com/p/0a7b028e2465

http://edison0663.iteye.com/blog/996526

浏览器安全控件:

最主要的功能就是防止客户端操作系统木马程序截取用户关键信息的输入(银行卡帐号/密码)。

http://wiki.mbalib.com/wiki/%E5%AE%89%E5%85%A8%E6%8E%A7%E4%BB%B6

完全正向保密  PFS(perfect forward secrecy)

  http://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E6%AD%A3%E5%90%91%E4%BF%9D%E5%AF%86

  https://en.wikipedia.org/wiki/Forward_secrecy

  https://www.sslchina.com/deploying-forward-secrecy/

  https://zh.wikipedia.org/wiki/%E5%89%8D%E5%90%91%E5%AE%89%E5%85%A8%E6%80%A7

PFS 密钥协商:

  https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

  https://zh.wikipedia.org/wiki/%E8%BF%AA%E8%8F%B2-%E8%B5%AB%E7%88%BE%E6%9B%BC%E5%AF%86%E9%91%B0%E4%BA%A4%E6%8F%9B

  ** https://program-think.blogspot.com/2016/09/https-ssl-tls-3.html

TLS:

  https://en.wikipedia.org/wiki/Transport_Layer_Security

  https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake

其他:

  https://segmentfault.com/a/1190000004985253

  http://www.admin5.com/special/https/

  **** [1] https://security.stackexchange.com/questions/44563/is-ssl-required-for-sites-hosted-behind-waf

免费证书:

  https://letsencrypt.org/

RFC:

  https://tools.ietf.org/html/rfc5246

题外内容:TOR

https://en.wikipedia.org/wiki/Tor_(anonymity_network)

TODO:

STARTTLS

时间: 2024-12-28 16:03:23

[skill][https][ssl/tls] HTTPS相关知识汇总的相关文章

HTTPS SSL TLS 相关理解

1,在理解 HTTPS SSL TLS 之前先对常用的加密方式进行一个简述: (1),对称加密: 采用一个密钥,对明文进行加密生成密文,相反采用此密钥可对加密后的密文进行解密还原成明文. 代表算法有,DES,3DES,AES 等 (2),非对称加密: 公钥加密,私钥解密. 网上有个比喻很形象(公钥好比一把开着的锁头, 私钥好比这把锁头的钥匙全世界就只有一把钥匙,由你保管, 若要与人通信,将锁头给别人好了.别人拿到这个锁头将重要信息锁在起来.然后全世界就只有你一个人能打开这个锁) 代表算法有,RS

[转帖]xserver相关知识汇总

xserver相关知识汇总 https://blog.csdn.net/QTVLC/article/details/81739984 本文主要是从以下几个方面介绍xorg-xserver 相关的知识 1.linux系统图形界面框架 2.xserver 和x client启动过程 3.图形2d,3d加速原理简介 4.xserver主分支代码解析. 5.xserver,xclient协议简介 6.一个基于Xlib的简单例子解析 7.radeon驱动初始化代码解析. 1.linux图形界面框架 参考至

【干货】样品气体预处理系统相关知识汇总

武汉天禹智控科技有限公司依托多年来从事气体分析行业的经验和强大的技术实力,经过多年研制开发和应用实践,在传感技术方面,成功的研制出拥有自主知识产权的电化学分析仪系列,红外分析仪系列,紫外气体分析仪系列,激光分析仪系列,光声光谱气体分析仪系列,适用于各种工况的工业过程分析系统,同时可以根据客户需求进行气体分析仪个性定制,产品广泛应用于环保.冶金.石化.化工.能源.食品.农业.交通.水利.建筑.制药.酿造及科学研究等众多行业,并且得到用户的一直好评.现针对样品气体预处理系统相关知识汇总分享,供大家使

HTTPS(SSL/TLS) 原理之深入浅出

注:本文参考自网络上的多篇HTTPS相关文章,本人根据自己的理解,进行一些修改,综合. 1. 必要的加密解密基础知识 1)对称加密算法:就是加密和解密使用同一个密钥的加密算法.因为加密方和解密方使用的密钥相同,所以称为称为对称加密,也称为单钥加密方法. 优点是:加密和解密运算速度快,所以对称加密算法通常在消息发送方需要加密大量数据时使用: 缺点是:安全性差,如果一方的密钥遭泄露,那么整个通信就会被破解.另外加密之前双方需要同步密钥; 常用对称加密算法有:DES.3DES.TDEA.Blowfis

Https SSL/TLS

SSL 是洋文"Secure Sockets Layer"的缩写,中文叫做"安全套接层". 它是在上世纪90年代中期,由网景公司设计的.(顺便插一句,网景公司不光发明了 SSL,还发明了很多 Web 的基础设施--比如"CSS 样式表"和"JS 脚本") 为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点--比如传输内容会被偷窥(嗅探)和篡改.发明 SSL 协议,就是为了解决这些问题.

在 ASP.NET MVC 中使用 HTTPS (SSL/TLS)

某些安全性较高的网页,如网上支付或用户登陆页面,可能会使用到https(SSL/TLS)来提高安全性.本文介绍了如何在ASP.NET MVC中强制某action使用https和如何进行向https页面的跳转.我们先实现强制一个action使用https.这里写了一个RequireHttpsAttribute,它的作用是将非https连接转换成https连接,这样所有使用了RequireHttps这个filter的controller都会强制使用https连接. 1 using System.We

Python Web学习笔记之SSL,TLS,HTTPS

一. SSL 1. SSL简介 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持.SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装.压缩.加密等基本功能的支持. SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证.协商加密算法.交换加密密钥等. SSL协议提供的服务主要有:1)认证用户和

win10系统iis下部署https (ssl/tls)本地测试环境

有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建https环境用来测试,下面看具体在本地搭建https测试站点. 首先要去证书认证机构申请一个证书用来测试,认证机构很多,如              1.http://www.symantec.com/zh/cn/ 2.https://www.geotrust.com/  3.https://cn.g

Nginx+HTTPS(SSL/TLS)

环境 首先确保机器上安装了openssl和openssl-devel rpm -qa | grep openssl #yum install openssl #yum install openssl-devel 确认nginx是否安装了SSL模块,如下的命令: /opt/nginx/sbin/nginx -V 看是否输出--with-http_ssl_module,如果没有需要重新配置并安装下. 创建证书 [自己颁发证书给自己] #cd /usr/local/nginx/conf #openss