SSL学习笔记 前言

最近实习时接触到了SSL协议,CA证书,ssh登录之类的东西,总是一知半解的感觉非常不好,于是我决定好好钻研一下。在网上查找了很多资料后,终于理清了很多以前很模糊的知识点。用几篇博客来记录一下,算是一个总结。

SSL(Secured Sockets Layer)与SSH(Secure Shell),是用来解决网络传输中安全问题的协议。如何保证传输安全,使消息不被窃听、不被篡改,这需要用到加密技术。所以,要理解SSL中CA certificate的意义、ssh登录的工作原理,首先得理解它们所基于的加密原理: 非对称加密

非对称加密技术是在信息论的理论基础上,以数学为工具的现代加密技术。它是现在最先进、最不易破解的加密技术。由于非对称加密技术在这一系列概念中的基础性地位,会有单独一篇文章介绍它的历史渊源和数学原理。

非对称加密技术与对称加密技术最明显的区别之处在于,它的密码都是以“公钥/密钥”形式成对存在的。如果要使用非对称加密技术,就出现了很自然的疑问:如何生成这些公钥/密钥对呢?我又该如何使用、部署它们?在Linux系统中,有一些非常强大、非常好用的命令工具帮助我们操作它们。这些命令会在后续谈论应用的技术实现的文章中介绍。(默认Linux环境)

非对称加密技术最著名的,也是本系列文章将会介绍的,是两大应用:SSH登录和SSL协议。SSH登录的原理相对简单,阮一峰的博客上有几篇文章介绍得非常详细好懂,因此只会有一篇文章讨论它。

而SSL协议,内容会多一些。首先,参考阮一峰的博客,会有一篇文章关于SSL加密的基本原理(包括Digest, Signature, Certificate等概念)。其次,因为Certificate在现实中使用得非常广泛,会有一到两篇文章介绍Certificate证书与X.509标准,也会介绍CA以及Certificate的”信任链”,PKI等概念。然后,会有一篇文章介绍如何为自己的域名生成Certificate。最后,从另外一个角度出发,会有一篇文章讨论当浏览器通过https链接访问网页时的交互流程(基本上翻译一篇国外的博客)。

非对称加密技术也可以在DNS系统中使用,即DNSSEC技术。关于这一技术,如果有时间的话,也会有一到两篇博客予以介绍。