ssl/tls协议基本原理
每天,您都会多次访问要求您使用用户名或电子邮件地址和密码登录的网站。 银行网站,社交网站,电子邮件服务,电子商务网站和新闻网站只是使用此机制的少数几种网站。
每次您登录其中一个网站时,您实质上是在说:“是的,我信任该网站,因此我愿意与它共享我的个人信息。” 这些数据可能包括您的姓名,性别,实际地址,电子邮件地址,有时甚至包括信用卡信息。
但是您怎么知道您可以信任特定的网站? 换句话说,网站如何保护您的交易,使您可以信任它?
本文旨在揭露使网站安全的机制的神秘性。 我将首先讨论Web协议HTTP和HTTPS以及传输层安全性(TLS)的概念,后者是Internet协议(IP)层中的加密协议之一。 然后,我将解释证书颁发机构(CA)和自签名证书,以及它们如何帮助保护网站。 最后,我将介绍一些可用于创建和管理证书的开源工具。
通过HTTPS保护路由
理解受保护网站的最简单方法是查看其运行情况。 幸运的是,今天在互联网上找到安全网站要比不安全网站容易得多。 但是,由于您已经在Opensource.com上,因此我将以它为例。 无论使用哪种浏览器,地址栏旁都应显示一个类似于锁的图标。 单击锁定图标,您应该会看到类似的内容。
![证书信息 Certificate information](https://i-blog.csdnimg.cn/blog_migrate/dafad1fa67a927783c95abe573e74d82.png)
默认情况下,如果网站使用HTTP协议,则它是不安全的。 将通过网站主机配置的证书添加到路由可以将网站从不安全的HTTP站点转换为安全的HTTPS站点。 锁定图标通常指示该站点通过HTTPS保护。
单击证书以查看站点的CA。 根据您的浏览器,您可能需要下载证书才能看到它。
![证书信息 Certificate information](https://i-blog.csdnimg.cn/blog_migrate/7addd0d3eae037275199ebb2749fd313.jpeg)
在这里,您可以了解有关Opensource.com证书的信息。 例如,您可以看到CA是DigiCert,并且以Opensource.com的名称提供给Red Hat。
通过此证书信息,最终用户可以检查网站是否可以安全访问。
警告:如果您在网站上没有看到证书标志,或者您看到的标志表明该网站不安全,请不要登录或进行任何需要您的私人数据的活动。 这样做非常危险!
如果看到警告标志(对于大多数面向公众的网站很少见),则通常意味着该证书已过期或使用自签名证书,而不是通过受信任的CA颁发的证书。 在进入这些主题之前,我想解释一下TLS和SSL。
带有TLS和SSL的Internet协议
TLS是旧版安全套接字层(SSL)协议的最新版本。 理解这一点的最好方法是检查IP的不同层。
![IP层 IP layers](https://i-blog.csdnimg.cn/blog_migrate/b721a65a43892ca3af019722b339c744.png)
当今,互联网由六层组成:物理层,数据层,网络层,传输层,安全性和应用程序。 物理层是基础,它最接近实际硬件。 应用程序层是最抽象的层,也是最接近最终用户的一层。 安全层可以被认为是应用程序层的一部分,而TLS和SSL是设计用于在计算机网络上提供通信安全性的加密协议,位于安全层中。
此过程可确保最终用户使用该服务时通信的安全性和加密性。
证书颁发机构和自签名证书
CA是可以发布数字证书的受信任组织。
TLS和SSL可以使连接安全,但是加密机制需要一种验证连接的方法。 这是SSL / TLS证书。 TLS使用一种称为非对称加密的机制,该机制是一对称为私钥和公钥的安全密钥。 (这是一个非常复杂的主题,不在本文讨论范围之内,但是如果您想了解它,可以阅读“ 密码学和公共密钥基础结构简介 ”。)要了解的基本内容是,CA与GlobalSign,DigiCert和GoDaddy是外部受信任的供应商,它们发行用于验证网站使用的TLS / SSL证书的证书。 该证书将导入到托管服务器以保护网站。
自签名证书是由创建它的人而不是受信任的CA签名的TLS / SSL证书。 从计算机生成自签名证书很容易,并且可以使您无需立即购买昂贵的CA签名证书即可测试安全的网站。 尽管自签名证书肯定会投入生产使用,但对于在生产前阶段进行开发和测试,这是一种简单而灵活的选择。
用于生成证书的开源工具
有几种开源工具可用于管理TLS / SSL证书。 最著名的一个是OpenSSL,它包含在许多Linux发行版和macOS中。 但是,也可以使用其他开源工具。
工具名称 | 描述 | 执照 |
---|---|---|
OpenSSL | 用于实施TLS和加密库的最著名的开源工具 | Apache许可2.0 |
EasyRSA | 用于构建和管理PKI CA的命令行实用程序 | GPL v2 |
CFSSL | 来自Cloudflare的PKI / TLS“瑞士军刀” | BSD 2条款“简化”许可证 |
Lemur | Netflix的TLS创建工具 | Apache许可2.0 |
考虑到Netflix的扩展目标和用户友好目标,它的Lemur是一个特别有趣的选择。 您可以在Netflix的技术博客上了解更多信息。
如何创建OpenSSL证书
我们有权自行创建证书。 本示例使用OpenSSL生成自签名证书。
- 使用openssl命令创建私钥:
openssl genrsa -out example.key 2048
![使用OpenSSL生成密钥 Generating key with OpenSSL](https://i-blog.csdnimg.cn/blog_migrate/35cb7638ec4737336abc40ccc1079213.png)
- 使用在步骤1中生成的私钥创建证书签名请求(CSR): openssl req -new -key example.key -out example.csr \
-subj "/C=US/ST=TX/L=Dallas/O=Red Hat/OU=IT/CN=test.example.com"
![产生企业社会责任 Generating CSR](https://i-blog.csdnimg.cn/blog_migrate/1539a2c8299ef0d37f0d5754599508ba.jpeg)
- 使用您的CSR和私钥创建证书: openssl x509 -req -days 366 -in example.csr \
-signkey example.key -out example.crt
![使用OpenSSL创建证书 Creating a certificate with OpenSSL](https://i-blog.csdnimg.cn/blog_migrate/809db8838968dd003bc5cf50b6915439.png)
了解有关互联网安全的更多信息
如果您想了解有关互联网和网站安全的更多信息,请观看我为本文制作的随附YouTube视频。
你有什么问题? 在评论中让我知道。
翻译自: https://opensource.com/article/19/11/internet-security-tls-ssl-certificate-authority
ssl/tls协议基本原理