网络安全与OpenSSL

网络安全与OpenSSL

这两天看了个介绍网络安全的视频,有点豁然开朗的感觉,结合前段时间看OpenSSL的各种不懂,就有了这篇笔记类似的文章

1. 名词解释

加密,解密,明文,密文:不解释

对称加密:
加密解密密码一样,DES, AES, Rijndael, 3DES, blowfish等加密算法
非对称加密:
加密解密密码不一样,又称公开密钥加密,RSA, ECC
散列函数/摘要:
即hash, 不可逆,抗碰撞, MD5, SHA1
DES:
曾是美国联邦标准,已经不太安全的加密算法。密钥长度56位,加密块64位, 16轮置换。

RSA:

非对称加密,被广泛使用,SSL, TLS的理论基础

随机选两个大素数, P和Q, P不等于Q, 计算N=P*Q

根据欧拉函数,求得r=(P-1)(Q-1)

选择一个数e, e满足1 < e < r, 并且e与r互质,即gcd(e, r)=1

计算出d, d满足e*d = 1 mod r, 0 <= d <= r

(e, r)是公钥, (d, r)是私钥)

对于消息M, C = (M**e) mod r 就是加密过程, M = (C**d) mod r 就是解密过程

数字签名:
用私钥加密消息摘要,起到消息认证和消息不可抵赖作用
证书:
由第三方机构颁发的能证明证书拥有者身份的文件,包含证书机构私钥加密的信息和证书人信息和公钥

加密是用来解决消息泄密功能, 摘要是为了防止消息被篡改,签名为了消息不可抵赖,证书用来确认身份。

Kerberos:
基于对称加密的一种网络认证协议,首先,client向AS请求身份认证,AS返回身份token, 接着client向TGS传送身份token和应用server id, TGS检查配置返回票据TGT, client使用TGT登陆应用server
X509:

X500目录服务一部分,基于公钥加密和数字签名,被广泛使用的数字证书标准。

在签发者处,首先求出传递消息Info的HASH值,然后用私钥对Hash值做加密,然后将传递消息原文Info和经过加密的HASH值一起发给接受者,接受者首先用签发者的公钥密码解开Hash,然后对收到的Info原文计算HASH值,然后比对是否相对,如果相同,则认证成功。

2. OpenSSL 使用简介

散列:

echo ‘abcd’ | openssl md5

echo ‘abcd’ | openssl sha1

RSA:

生成密钥 openssl genrsa -out private.key 1024

提取公钥 openssl rsa -in private.key -pubout -out pub.key

用公钥加密消息 echo ‘abcd’ | openssl rsautl -encrypt -inkey pub.key -pubin > encrypt.result

用私钥解密消息 cat encrypt.result | openssl rsautl -decrypt -inkey private.key

生成ssl证书 openssl req -new -x509 -key private.key -out cacert.pem -days 1000

DSA 用于签名:

生成密钥 openssl dsaparam -out dsaparam.pem 1024

openssl gendsa -out privkey.pem dsaparam.pem

生成公钥 openssl dsa -in privkey.pem -out pubkey.pem -pubout

rm dsaparam.pem

用私钥签名 echo ‘123456’ | openssl dgst -dss1 -sign privkey.pem > sign.result

用公钥验证 echo ‘123456’ | openssl dgst -dss1 -verify pubkey.pem -signature sign.result

Base64:

echo ‘abc’ | openssl enc -base64 -A > base64.info

cat base64.info | openssl enc -d -base64 -A

3. OpenSSL python 包装

openssl有3个模块

crypto 加密模块

rand 伪随机数生成器

ssl ssl相关

3.1 rand

rand.seed 添加种子

rand.bytes 生成指定长度的随机数

rand.write_files 将随机数写入文件

3.2 crypto

continue...

3.3 ssl

continue...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值