OpenLDAP 是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的。 OpenSSL 是 SSL/TLS 加密算法及通信协议的开源实现包,实现了 SSLv2、SSLv3、TLSv1 及 TLSv1.2 的加密算法和通信协议,并提供 API 给第三方应用。第三方应用可以很容易的使用 OpenSSL 来将明文通信加密。OpenLDAP 和 OpenSSL 的互相配合是本文的主要内容,包括:OpenLDAP 服务端的 SSL/TLS 配置、OpenLDAP 客户端的 SSL/TLS 配置。 本文讲述的所有内容和命令适用于 Redhat Enterprise Linux 6.3,其他发行版本的 Linux 可能略有不同。 配置 OpenLDAP 使用 SSL/TLS 加密数据通信 SSL/TLS 加密原理简介 SSL/TLS 是基于 PKI 机制的加密方式,包括证书认证、密钥交换、非对称加密、对称加密。SSL/TLS 采用 CA 作为服务端和客户端都信赖的具有权威性的组织,证书的颁发和认证都依赖于 CA,并假定 CA 颁发的证书是可靠的、可信赖的,证书里面的内容是真实的、有效的,并可用于客户机和服务器进行安全的可靠的通信加密。 SSL/TLS 证书用来认证服务器和客户机双方的身份,并用于密钥交换时候的非对称加密。密钥交换完毕之后,就可以用这个密钥做通信数据的对称加密了,具体的加密算法是由客户机和服务器互相协商得来。服务器和客户机由于 SSL/TLS 库的不同以及用户的配置不同,双方支持的算法列表不完全相同,当双方做 SSL/TLS 握手的时候,就需要将自己支持的算法列表及优先顺序告知对方,一旦对方按照优先顺序找到了第一个支持的算法,那么协商完成,否则双方协商失败,SSL/TLS 连接断开。 如何配置 OpenLDAP 客户端和服务端的算法列表将在本文的后续内容中做重点介绍,用户可以通过控制这个列表来提高安全等级,或者降低安全等级来适应更多的算法。 OpenSSL 常用命令 OpenSSL 提供了为数众多的命令来帮助用户使用和查看 SSL/TLS 加密算法、查看证书、生成证书、测试 SSL/TLS 连接等等,以下是一些常用命令的介绍。
|
|