非对称加密详解:公钥与私钥的关系
本文深入解析非对称加密的工作原理,以及公钥和私钥如何协同工作。
本文深入解析非对称加密的工作原理,以及公钥和私钥如何协同工作。
介绍如何配置 SSH 客户端和服务端的 keepalive 机制,防止 SSH 会话因空闲而断开。
介绍如何使用 OpenSSL 命令检测服务器支持的 TLS 版本,用于安全审计和配置验证。
OpenSSL 证书链验证详解 证书链验证是 SSL/TLS 安全的核心机制。本文将详细介绍如何使用 OpenSSL 工具进行证书链验证,确保连接的安全性。 什么是证书链? 证书链(Certificate Chain)是一系列证书的有序集合,用于验证终端实体证书的有效性。典型的证书链包含: 终端实体证书:最终服务的证书 中间证书:由 CA 签发的证书 根证书:受信任的根 CA 证书 OpenSSL 验证命令 基本验证 1 2 3 # 验证证书和私钥匹配 openssl x509 -noout -modulus -in server.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5 证书链验证 1 2 # 验证证书链 openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt 实战案例:完整证书链验证 场景描述 验证包含终端证书、中间证书和根证书的完整证书链。 1. 准备证书文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 创建测试目录 mkdir -p /tmp/cert-test cd /tmp/cert-test # 生成根证书 openssl genrsa -out root....
TLS 1.3 密码套件配置指南 TLS 1.3 相比之前的版本有了重大改进,其中最重要的变化之一就是大幅简化了密码套件。本文将详细介绍 TLS 1.3 的密码套件配置和使用方法。 TLS 1.3 密码套件概述 TLS 1.3 对密码套件进行了大幅简化,移除了不安全的算法,只保留以下类型的密码套件: AEAD 密码套件:所有套件都使用 AEAD(Authenticated Encryption with Associated Data)算法 前向保密:所有套件都支持完美前向保密(PFS) 移除弱算法:不再支持 RC4、MD5、SHA-1 等 TLS 1.3 支持的密码套件 1. GCM 密码套件 密码套件 密钥交换 认证 加密 密钥长度 适用场景 TLS_AES_256_GCM_SHA384 ECDHE ECDSA/RSA AES-256-GCM 256位 高安全性要求 TLS_CHACHA20_POLY1305_SHA256 ECDHE ECDSA/RSA ChaCha20-Poly1305 256位 移动设备、弱网络 TLS_AES_128_GCM_SHA256 ECDHE ECDSA/RSA AES-128-GCM 128位 标准安全性 TLS_AES_128_CCM_SHA256 ECDHE ECDSA/RSA AES-128-CCM 128位 兼容性要求 2. 查看系统支持的 TLS 1.3 密码套件 1 2 3 4 5 # 查看 OpenSSL 支持的 TLS 1....
OpenSSL EC 密钥生成与管理 椭圆曲线密码学(Elliptic Curve Cryptography, ECC)是现代密码学中的重要技术,相比传统 RSA 算法,ECC 在提供相同安全级别的情况下只需要更短的密钥长度。本文详细介绍如何使用 OpenSSL 生成和管理 EC 密钥。 EC 密钥的优势 相比 RSA 密钥,EC 密钥具有以下优势: 更短的密钥长度:256位 EC 密钥相当于 3072位 RSA 密钥的安全强度 更快的计算速度:加密解密和签名验证速度更快 更小的存储空间:密钥文件更小,节省存储空间 更低的带宽占用:传输密钥时占用更少带宽 生成 EC 密钥对 1. 生成 EC 私钥 1 2 3 4 5 6 7 8 # 生成 P-256 曲线的 EC 私钥 openssl ecparam -name secp256r1 -genkey -out ec_private.pem # 生成 P-384 曲线的 EC 私钥 openssl ecparam -name secp384r1 -genkey -out ec_private.pem # 生成 P-521 曲线的 EC 私钥 openssl ecparam -name secp521r1 -genkey -out ec_private....
证书吊销列表验证指南 证书吊销列表(Certificate Revocation List, CRL)是 PKI 系统中用于撤销已颁发证书的重要机制。本文将详细介绍如何使用 OpenSSL 工具验证证书的吊销状态。 什么是证书吊销列表 CRL 是由证书颁发机构(CA)维护的已撤销证书的列表。当证书出现以下情况时,会被添加到 CRL 中: 私钥泄露 证书信息变更 用户不再需要该证书 CA 发现证书存在问题 验证证书吊销状态的命令 1. 查看证书基本信息 1 openssl x509 -in certificate.pem -text -noout 2. 下载 CRL 文件 1 2 3 4 5 # 从证书中提取 CRL 分布点 openssl x509 -in certificate.pem -text -noout | grep -A 5 "CRL Distribution Points" # 下载 CRL 文件 wget -O crl.crl http://crl.example.com/crl.crl 3. 验证证书是否被吊销 1 openssl x509 -in certificate.pem -noout -purpose sslserver -verifycrl crl....
SSL/TLS 握手是 HTTPS 性能的关键瓶颈。本文聚焦会话恢复(Session Resumption)技术,帮助你减少握手延迟。 问题:SSL 握手的开销 完整的 TLS 握手需要多次网络往返: 1 2 3 4 5 # 测试握手时间 curl -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com # 使用 openssl 测试连接时间 time openssl s_client -connect example.com:443 </dev/null 对于 TLS 1.2,完整握手需要 2 个 RTT。通过会话恢复可以降至 0-1 个 RTT。 Session ID 复用 工作原理 服务器为每个会话分配唯一 ID,客户端在后续连接时发送该 ID,服务器据此恢复会话状态。 Nginx 配置 1 2 3 4 5 6 7 8 9 10 11 12 server { listen 443 ssl; server_name example....
OpenSSL 是最强大的证书管理工具之一。本文聚焦日常证书管理中最常用的操作:生成、签名、转换和验证。 生成私钥 生成 RSA 私钥 1 2 3 4 5 6 7 8 # 生成 2048 位 RSA 私钥 openssl genrsa -out private.key 2048 # 生成 4096 位 RSA 私钥(更安全) openssl genrsa -out private.key 4096 # 生成带密码保护的私钥 openssl genrsa -aes256 -out private-encrypted.key 2048 生成 EC 私钥 1 2 3 4 5 # 生成 EC 私钥(P-256 曲线) openssl ecparam -name prime256v1 -genkey -noout -out ec-private.key # 生成 EC 私钥(P-384 曲线) openssl ecparam -name secp384r1 -genkey -noout -out ec-private-384....
TLS(Transport Layer Security)协议是现代互联网安全的基石。本文聚焦 TLS 1.2 和 TLS 1.3 的核心差异,帮助你理解协议升级的重要性。 TLS 1.2 的工作流程 TLS 1.2 的握手过程需要 2 个 RTT(Round-Trip Time): 1 2 3 4 5 6 7 8 9 10 11 Client Server |-------- ClientHello ----------------------->| |<------- ServerHello ------------------------| |<------- Certificate ------------------------| |<------- ServerKeyExchange ------------------| |<------- ServerHelloDone --------------------| |-------- ClientKeyExchange ----------------->| |-------- ChangeCipherSpec ------------------>| |-------- Finished -------------------------->| |<------- ChangeCipherSpec -------------------| |<------- Finished ---------------------------| 使用 OpenSSL 测试 TLS 1.2 连接 1 2 3 4 5 # 测试服务器是否支持 TLS 1....