我的学习笔记1:加密、解密,以及OpenSSL创建私有CA

阅读: 评论:0

我的学习笔记1:加密、解密,以及OpenSSL创建私有CA

我的学习笔记1:加密、解密,以及OpenSSL创建私有CA

1.OpenSSL—就是在SSL协议Linux主机上实现的一个软件,从而完成SSL的应用

2.NCIST 数据安全性法则:
(1)保密性。包括:数据保密性、隐私性
(2)完整性。包括:数据完整性、系统完整性
(3)可用性

3.加密算法
1.对称加密
特性:
(1)加密和解密使用同一个密钥。主要用于数据加密。
(2)将明文分割成固定大小的块,逐个进行加密。而非加密整个文件

    依赖于:算法和密钥。安全性依赖于密钥,而非算法。常见对称加密算法:DES:Data Encryption Standard,使用56bits的密钥3DES:就是对DES执行3轮AES:Advanced Encryption Standard,采用(128bits,192bits,256bits)变化的密钥长度。(最常用的)BlowfishTwofishIDEARC6CAST5缺陷:1.密钥过多(当与更多的主机进行密钥通信时,针对不同的主机就会采用不同的密钥)2.密钥分发2.非对称加密,即公钥加密(其密钥是成对儿出现)密钥对儿:私钥和公钥私钥:仅允许个人使用,secret key公钥:公开给所有人使用,public key。(公钥从私钥中提取而来,创建时只需创建私钥即可,另外使用公钥加密的数据,只能使用此公钥配对儿的私钥解密;反之亦然)特性:1.密钥长度较大,例如:512bits,2048bits2.加密、解密分别使用密钥对儿中的密钥相对进行3.常用于数字签名和密钥交换用处:1.身份认证:私钥拥有者用自己的私钥加密的数据,只要用其公钥能解密,即可认证其身份。2.密钥交换:与被通信方通信之前,首先获取到对方的公钥,自己生成一个加密密码,用对方的公钥加密,并发送给对方。不能用来加密数据的原因:公钥加密算法长度太长,而数据一般很大,因此加密效率极低,仅用于加密密码常用的公钥加密的算法:RSA:密钥认证、数据交换都可应用(最常用)DSA:仅用于密钥认证ELGamal:3.单项加密(指数据能加密但不能解密):主要用于提取数据的特征码特性:1.定长输出:无论原来的数据是多大级别,其加密结果长度一样2.有雪崩效应:原始数据的微小改变将会导致结果的巨大变化3.不可逆:算法:MD5:采用128bits的定长输出SHA1:采用160bits的定长输出,一共有2^160种SHA256SHA384SHA512CRC32:循环冗余校验码在/etc/shadow文件中就使用的单项加密算法:![这里写图片描述]()用处:1.数据完整性数字签名:就是通信方用自己的私钥加密提取的特征码,就称为数字签名密钥交换:5.一次加密通信的全过程发送者:1.使用单项加密算法提取出数据的特征码2.用自己的私钥加密特征码并附加在数据的后面3.生成用于对称加密的临时密钥4.用生成的临时密钥加密数据和已加密的特征码5.使用接收方的公钥加密临时密钥,并附加在对称加密的后方接收者:1.使用自己的私钥解密临时密钥,从而获得对称密钥2.使用对称密钥解密对称加密的数据和私钥加密的特征码密文3.使用发送方的公钥解密特征码密文,从而获得对方计算生成的特征码和数据4.使用与对方同样的单向加密算法计算数据的特征码,并与解密而来的进行比较6.数字证书CA:证书颁发机构,对通信双方的公钥进行签名、认证。功用:保证公钥信息安全分发数字证书的格式(x.509):版本号(version)序列号(serial number)签名算法标志发行者的名称:CA自己的名称有效期:两个日志:起始日期和终止日期证书主体名称:证书拥有者的名字证书主体公钥信息:证书拥有者自己的公钥发行商的唯一标识:证书主体的唯一标识扩展信息:签名:CA对此证书的数字签名证书通常有2类用途:用户证书:某个用户单独使用主机证书:(直接放在某主机上,被某个主机进程使用,如httpd进程)撤销证书:7.PKI:Public Key Infrastructure,公钥基础设施组成部分:签证机构:CA注册机构:RA证书吊销列表:CRL证书存取库:8.NetScape---网景公司,研发浏览器以及web浏览器,以及SSL也是其研发的。SSL协议,现在的版本:sslv1,sslv2,sslv3TLS协议:transport layer security,现在版本:tlsv1,http基于ssl协议后就变成了https,https监听在443端口上9.openssl的组成部分:libcrypto:加密、解密库文件libssl:ssl协议的实现openssl:多用途的命令行工具,每种功能都使用专用的子命令来实现
linux中另一个加密解密的工具---gpg:全称GNU Privarcy Guard,是pgp规范的实现10.openssl:子命令分类:标准命令消息摘要命令加密、解密相关的命令1.加密文件(使用对称加密),工具:openssl enc,gpg算法:des,3des,aes,blowfish,twofish,idea,cast5enc工具简单用法:#openssl enc -e CIPHERNAME -a -salt -in /PATH/FROM/SOMEFILE -out /PATH/FROM/SOMECIPHERFILE#openssl enc -d CIPHERNAME -a -salt -in /PATH/FROM/SOMECIPHERFILE -out /PATH/FROM/SOMEFILE1.加密fstab文件#openssl enc -e -des3 -a -salt -in fstab -out fstab.des3-e :表示加密,encryption-des3:表示使用的加密算法为des3-a :表示使用ASCII格式输出文本内容-salt:表示加密使用杂质-in fstab:表示要加密的文件为fstab-out fstab.des3:表示加密后的文件的名字叫fstab.des3#cat fstab.des32.解密文件#openssl enc -d -des3 -a -salt -in fstab.des3 -w-d:表示解密#w2.单向加密:(提取特征码)算法:md5,sha1工具:openssl dgst,md5sum简单用法:#openssl dgst -CIPHER /PATH/TO/SOMEFILE…..1.产生w文件的特征码#openssl dgst -w-md5:使用md5码来计算文件w特征码,并显示在屏幕上#w上述两者产生的md5码是一样的,2.MAC:消息认证码,单向加密的一种延伸 应用,用于实现在网络通信中保证所传输的数据的完整性常用的MAC机制:CBC-MACHMAC:使用md5或sha1算法3.生成用户密码:简单用法:#openssl passwd -1 -salt 8bits随机数一般8bits随机数 随机生成实例:#openssl passwd -1 -salt 12345678输入密码即可-1:表示使用MD5码加密-salt 12345678:表示加入杂质,防止密码一样而后生成的md5码一样4.生成随机数#openssl rand [-hex|-base64] NUM1.#openssl rand -hex 44:表示4个字符,每个字符用2位二进制来表示生成的随机数是0-9,a-f等16进制的随机数组成2.#openssl rand -base64 4生成的随机数a-z,1-9,A-Z等任何文本字符组成5.整合生成随机数和用户密码1.#openssl passwd -1 -salt $(openssl rand -hex 4)6.生成密钥对儿(即生成私钥,从私钥中提取出公钥)简单用法1(生成密钥):genrsa#openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE NUMBITSgensa:生成密钥的-out /PATH/TO/PRIVATE_KEYFILE :指明生成密钥文件NUMBITS:指明密钥长度1.#openssl genrsa -out test.key 2048#cat test.key#chmod 400 test.key【生成私钥后,一定要更改私钥的权限,仅root用户可读,其他用户、组都无权限】2.#(umask 077;openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE NUMBITS)#ll /PATH/TO/PRIVATE_KEYFILE生成的test.key文件的权限自动就是600注意:在bash命令行放在小括号执行的命令,其实是通过打开一个子shell进程进行的;简单用法2(从私钥中提取公钥):rsa#openssl rsa -in /PATH/TO/PRIVATE_KEY_FILE -pubout1.从test.key提取公钥并输出在屏幕上#openssl rsa -in test.key -pubout系统上随机数生成器:random,urandom熵池:用来保存硬件中断产生的随机数。被映射为两个设备文件:/dev/random:仅从熵池中返回随机数,当熵池中的随机数耗尽时,取随机数的进程将会被阻塞/dev/urandom:先从熵池中取随机数,当熵池中的随机数耗尽时,就通过伪随机数生成器生成随机数X.509版证书格式:![这里写图片描述]()获取证书的方法:1.向RA注册申请2.建立私有CA,主要工具:OpenSSL使用OpenSSL构建私有CA:1.生成私钥(私钥用于签发证书时,向证书添加数字签名使用)2.生成自签署证书(证书用于实现与每个通信方都导入此证书至“受信任的证书颁发机构”)配置文件:/etc/pki/tls/opensslf工作目录:/etc/pki/CA/#cd /etc/pki/CA/;lscerts crl newcerts privatecerts:证书存放位置crl:证书吊销列表存放位置newcerts :新创建的证书存放位置private:CA自己私钥的存放位置,cakey.pem为其私钥生成CA的私钥,保存在private/下名为cakey.pem的文件,密钥长度为2048位#(umask 077 ;openssl genrsa -out private/cakey.pem 2048)生成自签证书的命令 :req,自请自签,#openssl req -new -x509 -key private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650-new:表示生成的新的证书签署请求-x509:表示自己跟自己签证,直接输出自签署的证书文件,通常只有构建CA的时候才用-key private/cakey.pem :指明私钥的位置,用于提取公钥-out /etc/pki/CA/cacert.pem :表示将生成的证书保存在/etc/pki/CA/cacert.pem文件里面-days 3650:表示签署证书的有效期为10年,单位为“天”然后继续签署即可,构建私有证书就完成了给节点发证书1.节点申请证书(在证书申请的主机上进行如下步骤)(1)生成私钥(2)生成证书签署请求(3)把请求发送给CA【注意:】(1)其中的subject信息部分,要与CA的保持一致(2)Common Name要使用此主机在通信真实使用名字2.CA签发证书(1)验证请求者信息(2)直接签署证书#openssl  ca -in /PATH/FROM/CSR_FILE -out /PATH/TO/CRT_FILE -days N(3)把签好的证书发还给请求者3.提供辅助文件示例:在web服务器下#cd /etc/httpd/;ls#mkdir ssl#cd ssl/生成私钥#(umask 077 ;openssl genrsa -out httpd.key  1024)生成证书签署请求#openssl req -new -key httpd.key -out httpd.csr签署请求即可将证书请求发送给CA服务器端(若在同一台主机上就不用发了)创建CA所需要的文件:,serial#cd /etc/pki/CA;ls##echo 01 > serial签署请求#openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ -days 3650吊销证书(1)获取吊销证书的序列号#openssl x509 -in /PATH/FROM/CRT_FILE -noout -serial -subject (2)CA实现证书吊销1.吊销证书#openssl ca -revoke /PATH/FROMCRT_FILE 2.生成吊销证书的编号#echo 01 > /etc/pki/CA/crl/number3.更新证书吊销列表#openssl crl -gencrl -l示例:接上#openssl x509 -in /etc/httpd/ -noout -serial -subject子命令:genrsa,req ,ca,x509,crl

本文发布于:2024-01-28 12:41:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064168747490.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记   OpenSSL   CA
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23