OpenSSL初瞻及本系列的博文的缘由

OpenSSL初瞻及本系列的博文的缘由
1.为什么要写关于“OpenSSL源码分析与学习笔记”系列博文?
非常重要的两个原因是Heartbleed和学校课程。
我虽然是一个非常崇尚自学的人但是并不代表我不擅于学校所安排的课程,因为这两者并不矛盾。
而Heartbleed让一大群原先不关心信息安全甚至不码代码的人们,知道了它的存在。并一定程度且某种意义上让OpenSLL更加声名远扬。
我从以前开始就一直在规划着学习OpenSLL,然而同等的规划也非常多,并且还要准备比赛和赶项目的进程,在权衡之下我把OpenSLL先放在一边,而去优先学习Metasploit和GAE,到现在才记得拾起来。
于是我决定写这个系列的博文,并选择在博客园开一个新的账号和博客。
也希望我能抽出时间把这个系列进行下去,并且能学习到相应的知识。

2.OpenSSL简介和密码学
注:笔者学校开的课程是"密码学"。
2.1
名字

OpenSSL是著名的SSL的开源实现,实现语言是C。其名字中的Open当然指的是开源的意思,而SSL为Secure
Sockets Layer,即安全套接层协议。
2.2
OpenSSL的算法

OpenSSL所有加密算法列表(来自:http://hi.baidu.com/fecasmoy123/item/ab94d5b7830c4877244b095d)。


 1 # openssl ciphers -v ‘ALL:!ADH:@STRENGTH‘
2 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
3 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
4 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
5 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
6 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
7 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
8 DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5
9 DHE-DSS-RC4-SHA SSLv3 Kx=DH Au=DSS Enc=RC4(128) Mac=SHA1
10 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
11 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
12 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
13 EXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=MD5 export
14 EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 export
15 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5
16 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1
17 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
18 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
19 RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5
20 RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
21 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5
22 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1
23 EXP1024-DHE-DSS-RC4-SHA SSLv3 Kx=DH(1024) Au=DSS Enc=RC4(56) Mac=SHA1 export
24 EXP1024-RC4-SHA SSLv3 Kx=RSA(1024) Au=RSA Enc=RC4(56) Mac=SHA1 export
25 EXP1024-DHE-DSS-DES-CBC-SHA SSLv3 Kx=DH(1024) Au=DSS Enc=DES(56) Mac=SHA1 export
26 EXP1024-DES-CBC-SHA SSLv3 Kx=RSA(1024) Au=RSA Enc=DES(56) Mac=SHA1 export
27 KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5
28 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1
29 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1
30 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1
31 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1
32 DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5
33 EXP-KRB5-RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 export
34 EXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 export
35 EXP-KRB5-RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 export
36 EXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 export
37 EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export
38 EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export
39 EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export
40 EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
41 EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
42 EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
43 EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export

注解:算法里面可以很明显的找到一个或多个AES、DES、DSA、RSA等算法。这些算法会在近期的博文里面学习,因为都是相对比较重要的算法。

2.3
密码学基础知识

密钥:分为加密密钥和解密密钥。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。
密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。
对称加密算法和非对称加密算法:最本质的区别在于对称加密算法加密和解密的秘钥是相同的,而非对称加密算法反之。

未完待续......

时间: 2024-11-13 09:42:24

OpenSSL初瞻及本系列的博文的缘由的相关文章

瞻博-Juniper-SSG系列之PBR(策略路由)配置终结篇

各位,好 这一个周末似乎过的非常快,因为有太多客户的售后问题需要积极的配合处理,总之,工程师专职做好技术的时代已经一去不复返了,很多时候我们要担任太多原厂的角色,而且不仅仅只是华为.华三.思科. 此篇分享中,也集中比对了华为的配置思路.山石网科防火墙的配置思路,有利于大家触类旁通,花各位几分钟研读,也非常欢迎多多斧正,今天给大家分享的一个配置实例是30岁左右的网工非常喜欢的系列,Juniper-SSG系列的策略路由配置实例.该场景在企业级组网中经常使用,所以务必请大家多多拍砖,万分感谢 演示环境

初码-阿里云系列-文章目录

功能与开发 [初码干货]使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践 [初码干货]使用阿里云邮件推送服务架设自己邮件验证与推送体系 [初码干货]使用阿里云开放搜索服务快速搭建资源搜索网站

初用Cython编写扩展模块

这篇博文还是讲关于提高Python运行效率的,这确实是一个值得去仔细研究一番的问题,这篇博文介绍完Cython后,还要接着介绍线程.进程和协程在提高Python代码运行效率起着怎样的作用,那么我的这个系列的博文基本上写完了. 首先要介绍一下各种*ython,太多了,什么python,pypy呀,等等,都是什么呢.这里简单的做个介绍. CPython:这是平时用的最广泛的,是用C语言实现的解释器,平时说的Python一般都是指CPython. Jython:用Java实现的的python解释器.

实现HTTPS系列第四弹之【TLS ,SSL等概念理解】

博文说明[前言]: 本文将通过个人口吻介绍TLS ,SSL,PKI等相关知识,在目前时间点[2017年5月21号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 1.第一弹:实现HTTPS系列第一弹之[http,https,www,web等概念简介] 博文链接:http://watchmen.blog.51cto.com/6091957/1922919 2.第二弹:实现HTTPS系列

非对称加密,数字签名,公钥私钥,Openssl,https,TLS/SSL等概念说明

本文将通过个人口吻介绍有关公钥私钥,Openssl,https,TLS/SSL等的一些概念及简单配置,在目前时间点(2017年5月7号)下,个人水平有限,存在不少知识理解不够深入,望见谅,后续有新的收获之后将会补充完善该博文. 关于http以及web等基础概念,欢迎看我的另一篇博文:"http,https,www,web等的区别含义" 博文链接地址:http://watchmen.blog.51cto.com/6091957/1922919 本文参考文献引用链接: 1.https://

ajax系列之用jQuery的ajax方法向服务器发出get和post请求

打算写个ajax系列的博文,主要是写给自己看,学习下ajax的相关知识和用法,以更好的在工作中使用ajax. 假设有个网站A,它有一个简单的输入用户名的页面,界面上有两个输入框,第一个输入框包含在一个form表单里用来实现form提交,第二个输入框是单独的.没有包含在form里,下面就用这两个输入框来学习下jQuery的ajax. 1,前端的html和javascript代码 页面html 1 <main style="text-align: center; margin: 200px a

openssl 生成证书基本原理

摘自:http://blog.csdn.net/oldmtn/article/details/52208747 1. 基本原理 公司一个项目要进行交易数据传输,因为这个项目银行那边也是刚刚开始启动,所有的支持只有一个传输字段的说明文档,好吧,总的有人做事不是嘛,于是接口开发正式展开,第一步的难点就是加密解密,我选择使用OpenSSL. OpenSSL初接触的人恐怕最难的在于先理解各种概念 公钥/私钥/签名/验证签名/加密/解密/非对称加密 我们一般的加密是用一个密码加密文件,然后解密也用同样的密

OpenSSL之命令总结

OpenSSL从基础到应用系列: 1) OpenSSL之安全通讯基础 2) OpenSSL之PKI 3) OpenSSL之SSL协议的Web安全实现 4) OpenSSL之编译安装 透过上面几个方面的学习,我们应该对OpenSSL有了一个基本的了解.OpenSSL功能之强大,命令组合用法之多,往往让我们的学习不知所措.在此,我们来对openssl命令的使用做一个总结. 语法格式:  openssl command [ command_opts ] [ command_args ] 常用comma

OpenSSL使用3(基本原理及生成过程)(转)

1. 基本原理 OpenSSL初接触的人恐怕最难的在于先理解各种概念 公钥/私钥/签名/验证签名/加密/解密/非对称加密 我们一般的加密是用一个密码加密文件,然后解密也用同样的密码.这很好理解,这个是对称加密.而有些加密时,加密用的一个密码,而解密用另外一组密码,这个叫非对称加密,意思就是加密解密的密码不一样.初次接触的人恐怕无论如何都理解不了.其实这是数学上的一个素数积求因子的原理的应用,如果你一定要搞懂,百度有大把大把的资料可以看,其结果就是用这一组密钥中的一个来加密数据,可以用另一个解开.