网络安全与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...
相关文章推荐
- 用OpenSSL结合ACE 做安全网络通信
- vc++网络安全编程范例(13)-openssl engine编程
- 《OpenSSL与网络信息安全——密码算法实践》新书预告
- 【网络安全】如何使用OpenSSL工具生成根证书与应用证书
- OpenSSL - 网络安全之数据加密和数字证书
- 网络安全真是个大问题-从OpenSSL“漏洞”谈起
- VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码
- 网络通信安全基础和OpenSSL
- VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码
- 简述网络通信安全技术及openssl命令行工具的基本使用
- 网络安全与OpenSSL相关资料
- 网络安全 - Cross-site scripting
- 使用 OpenSSL API 进行安全编程
- [置顶] 阿里云安全科学家吴翰清入选MIT TR35_你知道弹性安全网络技术吗?
- 网络安全测试工具
- 网络安全系列之十三 Linux中su与sudo的安全设置
- 2011年网络安全预测:苹果将陷入危险
- 网络安全发展的趋势及措施
- 网络安全:小心MSHTA漏洞为黑客开启远程控制之门
- 网络安全应抛开“门户之见”