由博主的上一篇博文《网络中数据如何保证数据的安全性?》中介绍得知,CA 具有注册和颁发证书的功能? 但是,证书到底具有哪些信息或者遵循哪些标准呢? 此次博客从这里开始介绍。
一、证书制作的标准
目前使用最广泛的是由 ITU-T 组织定义了证书的制作规范 x509。主要定义了证书结构和认证协议标准。是基于公钥密码体制和数字签名的服务。
在电子商务中,IP,SSL/TLS,S/MIME中都使用了 x509 标准。到目前为止已经有三版了,最新版的 x509 标准定义的证书格式是:
字段说明:
版本号:说明证书采用x509的版本
证书序列号:原来标明证书的个数,每发一个证书序列号就会加1
算法参数:签名算法
发行者名称:CA 的名称
有效日期:证书的有效期
主体名称:证书拥有者的名称,可能是用户名或主机名。
公钥:申请者提供的公钥
发行者ID:CA 的编号
主题ID: 拥有者的编号,CA 的生成
附加信息:其他附加请求
CA的签名:CA 签名信息
二、SSL/TLS
SSL(Secure Socket Layer/Transport Layer Security),是一种安全协议。
SSL是应用层与传输层之间的协议,有 sslv1,sslv2,sslv3版本。TLS是仿照SSL的功能,tlsv1等价于sslv3。应用程序如果使用SSL的功能话,需要调用 SSL 的公共库。
以 web 服务访问为例,ssl会话建立的过程大致如下:
三、OpenSSL项目
OpenSSL是一个开源项目,实现了数据的加密解密,证书认证等功能。主要有 3 部分组成:
openssl:提供 openssl 命令行工具
libssl: 实现 ssl 协议
libcrypto: 公共加密库,里面实现了好多的加密算法
openssl命令的使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | # 示例 # 查看版本号 [root@centos6-5 ~] # openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 # 利用 MD5 算法生成用户密码 [root@server ~] # openssl passwd -1 -salt `openssl rand -hex 4` Password: $1$8da8005e$3rBnudq4DtUPDtB5oX /AQ0 # 提取特征码,实现单向加密 [root@centos6-5 ~] # openssl dgst -md5 /etc/passwd MD5( /etc/passwd )= a957b39dff384602a7048b758a046695 [root@centos6-5 ~] # openssl dgst -out ./md5-passwd -md5 /etc/passwd [root@centos6-5 ~] # cat ./md5-passwd MD5( /etc/passwd )= a957b39dff384602a7048b758a046695 # 实现对称加密 # -a 是基于 base64 编码,-e 加密 [root@centos6-5 ~] # openssl enc -des3 -e -a -salt -in ./md5-passwd -out ./md5-passwd.enc enter des-ede3-cbc encryption password: Verifying - enter des-ede3-cbc encryption password: [root@centos6-5 ~] # cat ./md5-passwd.enc U2FsdGVkX1 /1B23N1i5DH5fmBVX1vHMG6ko2yBtt0XchzRExE1z8RaCR5NU98w5q vYITDKLWWzL4ilW1aSlnq3fAVLS6cI9b # 解密查看 # -d 解密 diff命令查看俩个文件的差异 [root@centos6-5 ~] # openssl enc -des3 -d -a -salt -in ./md5-passwd.enc -out ./md5-passwd2 enter des-ede3-cbc decryption password: [root@centos6-5 ~] # diff ./md5-passwd ./md5-passwd2 # 生成秘钥 [root@centos6-5 ~] # (umask 077;openssl genrsa -out /root/mykey 1024) Generating RSA private key, 1024 bit long modulus ..........++++++ ...................++++++ e is 65537 (0x10001) [root@centos6-5 ~] # cat /root/mykey -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQC6DEaXhrKwnB0JM7VvLFV1TxQmXFjEKIxoDUugBeCZ1mWt1FEL pi7hiN2u3BGBwrbwKAZj8I55Z6pGSXEcKmMMTf1vbUopO9tUknV7nfIGjQeBzwqB hPK9+gj4xK /LvLr/FM8 +WcxXW04FFNNW8WGz7uwUgKbW6XtsjMXbVLuVpwIDAQAB AoGAVp+0loSe2mA1nL04suSffZkuNpY0tlBy31ehaIaUBsyuVvtOKPBdT6FcJjhM 5m /0oWjhYNL2Y0yDGWrEgWqy5pJlbCT7Pow9w0gvoMT +tVzIwXJ4Cz7eL12X+8vk x6IfNAS0YWHlSF /ZzX3WviYy/77fD8qRaqZj4oy0HwjB4LECQQDiQvuyjJQDrNzy 2TQB20tSIBtZXz4AKlh23At6Emv+EeSiOT12 /Juxn2gIDgCuPMiE6WUTr/0TKeDn djAzu1uDAkEA0oA5SL93UsHTeSDPe3l1A3KdfC7 /38f1VCHS/ +Ab2T+g0OpI2X5R dTZLo+pvkvyZhBhooyrsXO71vE9RfLVQDQJBAKORrQgNHMvzYd+mKjTVZgQ+9caM VfQkqMN0nE9pleyc3t5v5wFn6N5l0P1RsihEBOohGFM9PQVnlxF9nacoYSUCQAdR 7CwKdHTNRrRUnsJ1c8s95hoWbFF026QkVPkO6wj //HCnZQcjLGP +El1N3rlmzVPZ oXHjITsOGD+HJpdGmtUCQFcXAjw8bQekrSzL7R+f4RgpCfuy749B+Hg9QZc0R79t /d3dwHBm1fFFe6QEVI1ArL1I8uhlFCwDaZdfQhRz8Y4 = -----END RSA PRIVATE KEY----- # 提取公钥 # -pubout 指定是公钥输出 [root@centos6-5 ~] # openssl rsa -in /root/mykey -out /root/mypub.key -pubout writing RSA key [root@centos6-5 ~] # cat /root/mypub.key -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6DEaXhrKwnB0JM7VvLFV1TxQm XFjEKIxoDUugBeCZ1mWt1FELpi7hiN2u3BGBwrbwKAZj8I55Z6pGSXEcKmMMTf1v bUopO9tUknV7nfIGjQeBzwqBhPK9+gj4xK /LvLr/FM8 +WcxXW04FFNNW8WGz7uwU gKbW6XtsjMXbVLuVpwIDAQAB -----END PUBLIC KEY----- |
至此,openssl 的基本介绍和使用全部完成。对于如何建立 CA 服务器,签名证书,会在下一篇博客中介绍到。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态