您的位置:首页 > 理论基础 > 计算机网络

网络安全与OpenSSL

2013-06-07 14:07 141 查看


网络安全与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...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: