加密与安全
gpg 工具
- 对称加密
- touch a.txt ;echo "hello,word" > a.txt
- gpg -c a.txt
- 会生成基于aes的a.gpg 加密文件
- gpg -o 生成后的文件名 -d a.gpg
- 非对称加密
- 查看存在的公钥 gpg --list-key
- 生成私钥gpg --gen-key 会在家目录创建一个.gnupg的隐藏文件夹root用户则会在/root下创建.gnupg的文件夹,并生成.pubring.gpg(公钥库)secring.gpg(私钥库)等文件
- 导出xieheg的公钥 gpg -a -o xieheg.pubkey --export
- 导入其他pc的公钥 gpg --import xieheg.pubkey
- 发送给目标机时利用目标机的公钥来加密a.txt文件gpg -e -r xieheg a.txt,则会生成a.gpg的加密文件
- 解密发给自己的文件gpg -d a.gpg >b.txt 则将对方发过来的加密文件解密后生成b.txt文件
- 删除公钥文件(别的机器的公钥) gpg -delete-keys keyID 则删除了KeyID的公钥文件,删除自己的公钥的时候,则需要先删除自己的私钥文件才能删除自己的公钥文件
CA 签证机构
作用
-
- 证明目标的合法性和真实性
- 中间人攻击
-
- 请求人请求公钥的时候夺取请求包,然后利用自己的公钥来请求目标,服务器收到后将服务器的公钥发送给中间人, 中间人继续将自己的公钥给请求人,然后当请求人使用假公钥发送的密文到中间人手里,截获密文内容后,即可修改密文内容之后发送到服务器上。
- CA起源
-
- 为了保证不被中间人攻击,所以就需要一个权威的机构来说明某一个公钥准确的来自哪一个机器,能够让请求人知道服务器的准确性,从而诞生CA
- 自签名证书:
-
- 顶层的CA的证书就存在一个问题就是没有上层CA了,这个时候顶层CA就需要自己给自己颁发授权证书
- x509 定义证书结构以及认证协议标准
- 注册机构RA,吊销列表CRL
SSL/TLS
-
SSL 安全套阶层 1995年王景公司研发
-
https安全的原因
-
- 服务器端拥有ca证书,当客户机访问的时候,网站会重定向到服务器上的安全地址。然后客户端重新访问,
-
- 此时服务器就会使用自己获取的上级CA用私钥加密的证书加密自己的公钥Sca[pserver] 然后发送给客户端
-
- 客户端利用这个CA公钥解密这个私钥加密文件解密后获取了服务机的公钥,Pca(ca的公钥) > Sca[pserver](CA私钥加密文件) >pserver(服务器公钥)
-
- 然后利用服务器的公钥加密一个key,用来进行对称加密
-
TLS 1.2 当前使用(本身为SSL)
-
- 功能 认证,完整性,重放保护(防止重放攻击)
-
- 工作在应用层和传输层之中,当应用数据传输之前将数据进行解密
openssl ssl协议的工具
- 标准命令、摘要命令、加密命令
- 对称加密
-
- openssl enc -e -des3 -a -salt -in file -out file (-e 使用base64编码转码,-a 启用盐 )
-
- openssl enc -d -des3 -a -salt -in file -out file(解密)
- 单项散列
-
- openssl dgst -md5 file (-md5 一种算法)
-
- openssl passwd -5 -a -salt string ( -5 算法 )
-
- useradd -p `oppenssl passwd -6 upstring ` uanme(创建用户带密码:upstring)
-
- openssl rand -hex 10 (创建一个10位的16进制哈希值的随机值))
- 非对称加密(私钥生成)
-
- (umask:077; openssl genrsa -out s.key -des3 2048 )( 开启子进程,以077权限生成一个 加密的私钥文件s.key)
-
- openssl rsa -in s.key -out f.key(将加密后的私钥解密)
-
- openssl rsa -in f.key -genout -out pf.key(利用解密后的私钥来取出公钥文件)
利用openssl 搭建ca
-
配置文件 :
-
- /etc/pki/openssl.conf 中规范设置使用哪一个CA,以及需要设置的相关资源,
-
- 设定CA父文件夹:/etc/pki/目录
-
- 目录/certs/ 存放已经发布的证书
-
- 目录/crl/ 存放吊销的证书列表
-
- /index.txt 存放编号索引列表
-
- /newcerts 新证书存放的文件
-
- /CA自己的证书文件
-
- /serial 证书序列号
-
。。。。有效期、国家....等等等配置
-
以下实验默认在/etc/pki/CA目录下完成
-
生成私钥 openssl genrs -out /private/cakey.pem 1024 放在CA/private/下
-
生成自签名证书 openssl req -new -x509 -key /private/cakey.pem -out casert.pem 3650 (如果不带-x509 就是生成CA请求,此命令需要交互填写 相关配置文件中的内容,生成在CA目录下的casert.pem文件)
-
申请者:生成自己的私钥(umask 077;openssl genrs -out a.key 1024 ) ,然后生成CA申请文件:openssl req -new -key a.key -out a.csr (需要填写交互项,会生成证书请求文件) 发送给CA
-
CA颁发证书给申请者 :openssl ca -in a.csr -out certs/a.crt -days 365 (在CA目录创建index.txt文件和一个serial的序列号文件,需要有值且为16进制的数字)