加密安全以及CA(修改版1.0)

加密算法

对称加密:加密和解密使用同一个密钥key,有如下算法:

DES(Data Encryption Standard)(56bits)

3DES(128bits)

AES(Advanced Encryption Standard)(128,192,256bits)

特征:效率高,但是无法确认数据的来源

 

非对称加密:成对出现的公钥(public key)、密钥(secret key)

公钥:公开给所有人

密钥:自身留存,保证隐私性

每对公私钥都只可以相互解锁

主要算法有:RSA(加密,数字签名)、DSA(数字签名)

数字签名的实现:  

发送者生成公钥、密钥:P、S

将公钥公开,并对信息M进行密钥加密S(M)

接收者使用收到的公钥P来解密S(M),成功即可验证数字签名

特征:数据可确认来源

 

HASH算法:HASH FILE = DIGEST

通过不同的Hash算法可以给指定文件生成一连串的字符号,简称摘要,文件内容不变,摘要一定不变,可用来检查数据的完整性。

HASH -c FILE  检查文件是否变化

常用的HASH算法工具有:

md5sum(128bits)

sha{1|224|256|384|512}sum(其中1表示160bits)


上述三种算法结合的使用模式:

a传输者

Key{ Sa{ HASH(data)}+data } + Pb(Key)

b接收者

Sb得到Key---àKey得到Sa{ HASH(data)}+data---àPa得到HASH(data)

另外进行HASH(data)作比较,相同则data成功传输


另外还有DH算法加密,网址如下:

https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange



实现加密的命令和举例

A主机:传输数据   B主机:接收数据

对称加密:

gpg的方法:

A: gpg -c FILE          对文件加密生成 FILE.gpg,然后将FILE.gpg传送给B

B: gpg -o FILE_NAME -d FILE.gpg    解密文件至指定文件名

openssl的方法:

A: openssl enc -e [-加密算法] -a -salt -in FILE -out FILE_NAME

    FILE_NAME传送给B

B: openssl enc –d [-加密算法] -a -salt -in FILE_NAME -out FILE

(其中-salt称为盐,对密钥起到保护作用,使密钥不被轻易解读)

 

非对称加密:

gpg的方法:

A: gpg --gen-key            A上生成公私钥

gpg -a --export -o PAkey_NAME    A上公钥导出到文件

PAkey_NAME传输给B

B:(为演示选择pubkey解密,B也生成公、私钥)

gpg --gen-key         B上生成公私钥

gpg --import PAkey_NAME      B导入A的公钥:

gpg -e -r PAkey_NAME FILE B使用A的公钥对文件FILE进行加密,生成FILE.gpg

然后将FILE.gpg传输给A

A:解密

gpg -o FILE_NAME -d FILE.gpg 解密文件至指定文件名


gpg命令生成公、私钥存放在 /root/.gnupg/目录下

gpg --list-keys      可查看本机上的公、私钥

最后删除公私钥:(必须先删除私钥)

gpg --delete-secret-keys KEY_NAME

gpg --delete-keys KEY_NAME



CA证书

专门的第三方CA机构充当中间人的角色

HTTPS协议的基于CA认证的工作原理:

Client(客户端)   发送请求 ->           Service(服务端)

Client(客户端)   <- 发送Sca(Pserver) Service(服务端)

Client(客户端)  Pca验证Sca(Pserver)确定Pserver真实性

Client(客户端)   验证成功,生成随机数字作为key,用Pserver加密后发送 ->      Service(服务端)

Client(客户端)   <-通过key互相加密传输文件 -> Service(服务端)


CA建立基于openssl命令工具的使用

Openssl命令建立公、私钥:

私钥: openssl genrsa -out FILE.key [-des] 2048 

       (其中 [ ]内算法可变以及不使用,2048是私钥长度位数,可变)

若对加密后的私钥解密,则执行如下:

        openssl rsa -in FILE.key -out NEW_NAME.key

从私钥中提取公钥:

        openssl rsa -in FILE.key -pubout -out FILE.key.pub

(其中公、私钥的路劲可自己指定存放目录)


CA的搭建和认证:

假设A主机充当CA机构     B主机申请CA证书

A:

创建私有CA:(具体要求在/etc/pki/tls/openssl.cnf配置文件中)

第一步:生成密钥

密钥的路径和名字固定:/etc/pki/CA/private/cakey.pem

为了保证密钥的安全,可以对其进行权限设定和算法加密:

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 1024)

第二步:生成自签名证书文件

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 100 -out /etc/pki/CA/cacert.pem

其中“-x509”就是在自签名证书时使用

B:

申请CA证书:

第一步:在需要申请证书的主机上生成密钥

(umask 066;openssl genrsa -out test.key -des3 1024)

第二步:生成证书申请文件(申请文件一般以.csr结尾)

openssl req -new -key test.key -out test.csr

第三步:将申请文件test.csr发送给A

A:

签署申请后颁发给B

第一步:需要在 /etc/pki/CA/目录下生成两个文件

touch index.txt  索引数据库文件

echo “序号”> serial  指定第一个颁发证书的序号

第二步:签署颁发

openssl ca -in test.csr -out /etc/pki/CA/certs/test.crt -days 600

注意:申请证书中默认国家、省、公司三项必须和CA一致。若需要变动,则可以在/etc/pki/tls/openssl.cnf配置文件中修改相关选项



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值