TLS规范

举报
黄生 发表于 2022/11/05 23:34:12 2022/11/05
【摘要】 TLS是设计规范,它的实现有比如OpenSSL, LibreSSL, BoringSSL等,据说OpenSSL名声不太好?OpenSSL库可以分为:crypto库函数,密码算法使用库。底层库。EVP接口,对crypto库函数的抽象,方便调用,还会基于CPU模式进行性能优化。有一点需要知道,上层应用不需要关心是HTTP还是HTTPS,HTTPS完全按照HTTP标准处理,它是HTTP+TLS,对...

image.png

TLS是设计规范,它的实现有比如OpenSSL, LibreSSL, BoringSSL等,据说OpenSSL名声不太好?
OpenSSL库可以分为:
crypto库函数,密码算法使用库。底层库。
EVP接口,对crypto库函数的抽象,方便调用,还会基于CPU模式进行性能优化。

有一点需要知道,上层应用不需要关心是HTTP还是HTTPS,HTTPS完全按照HTTP标准处理,它是HTTP+TLS,对上层应用开发者透明。

TLS的一些实现:
image.png

PKI技术不是TLS协议的一部分,之所以引入PKI,是为了避免李鬼中间人,证明你是你。

浏览器有CA机构的公钥(CA机构的根证书内置在浏览器里了),所以可以校验证书的签名,可以证明证书确实是CA用自己的私钥签发的。
然后再将证书中的用户信息,与访问信息一致,比如域名是一样的。就可以表明身份验证通过。
然后就可以获取证书里的公钥,进行下一步密钥协商

看一个密码套件
image.png

查看支持的密码套件
openssl ciphers -V |column -t
测试服务器是否支持某个特定的密码套件:
openssl s_client -cipher “ECDHE-RSA-AES128-SHA” -connect server_of_tls:443 -tls1_1

为了保持前向安全性,使用多的密钥协商算法是DHE, ECDHE,这个不取决于服务器的密钥对,即使服务器的私钥泄露,也不会造成太大的风险。

自建证书就是自己给自己签发的,用途还是比较广的,比如说在企业内部

用着2个命令自己签一个,非常简单,证书链中的特例,就一层。
没有X509v3 extensions属性。所以也没有(CA:TRUE)。

openssl req -newkey rsa:2048 -nodes -keyout ca_key.pem -out ca_csr.pem
#ca_key.pem和ca_csr.pem都可以cat查看。下面的ca_cert.pem也是。
openssl x509 -signkey ca_key.pem -in ca_csr.pem -req -days 365 -out ca_cert.pem
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。