openssl做一个CA(1)

 

     SSL,Security Socket Layer,是一个安全传输协议,在Internet网上进行数据保护和身份确认。OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。OpenSSL的官方网站为http://www.openssl.org/,源代码可以从ftp://ftp.openssl.org/source/上下载,也可以从OpenSSL的镜像网站下载。

 

openssl – SSL

 

openssl做一个CA(1)openssl

SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。

 

 

 

openssl做一个CA(1)openssl

利用公开密钥技术的SSL协议已成为Internet上保密通讯的工业标准。安全套接层协议能使C/S应用之间的通信不被***者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。

 

 

 

 

 

 

 

openssl做一个CA(1)openssl

SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,SSL协议提供的安全信道有以下三个特性:

 

1.数据的保密性
信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密匙来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密匙要用一个安全的方法传送。加密过的数据可以公开地传送。

2.数据的一致性
加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。

3.安全验证
加密的另外一个用途是用来作为个人的标识,用户的密匙可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。

 

openssl做一个CA(1)openssl

 

 

 

 

 

 

 

 

 openssl – OpenSSL简介

众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会产生实现所有这些算法和标准的想法。这是一个令人望而生畏的过程。这个工作不再是简单的读懂几本密码学专著和协议文档那么简单,而是要理解所有这些算法、标准和协议文档的每一个细节,并用很熟悉的C语言字符一个一个去实现这些定义和过程。

Eric A. Young和Tim J. Hudson这两个加拿大人自1995年开始编写后来具有巨大影响的OpenSSL软件包,这是一个没有太多限制的开放源代码的软件包。1998年,OpenSSL项目组接管了OpenSSL的开发工作,并推出了OpenSSL的0.9.1版,目前为止,OpenSSL的算法已经非常完善,对SSL2.0、SSL3.0以及TLS1.0都支持。

OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库SSL协议库应用程序
OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。

作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

1.对称加密算法

OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。

2.非对称加密算法

OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。

DH算法一般用户密钥交换。
RSA算法既可以用于密钥交换,也可以用于数字签名。
DSA算法则一般只用于数字签名。

3.信息摘要算法

OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

4.密钥和证书管理 

密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。

首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。

在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。

OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。

5.SSL和TLS协议

OpenSSL实现了SSL协议的SSLv2和SSLv3,支持了其中绝大部分算法协议。OpenSSL也实现了TLSv1.0,TLS是SSLv3的标准化版,虽然区别不大,但毕竟有很多细节不尽相同。

虽然已经有众多的软件实现了OpenSSL的功能,但是OpenSSL里面实现的SSL协议能够对SSL协议有一个更加清楚的认识,因为至少存在两点:一是OpenSSL实现的SSL协议是开放源代码的,可以追究SSL协议实现的每一个细节;二是OpenSSL实现的SSL协议是纯粹的SSL协议,没有跟其它协议(如HTTP)协议结合在一起,澄清了SSL协议的本来面目。

6.应用程序

OpenSSL的应用程序已经成为了OpenSSL重要的一个组成部分,其重要性恐怕是OpenSSL的开发者开始没有想到的。现在OpenSSL的应用中,很多都是基于OpenSSL的应用程序而不是其API的,如OpenCA,就是完全使用OpenSSL的应用程序实现的。OpenSSL的应用程序是基于OpenSSL的密码算法库和SSL协议库写成的,所以也是一些非常好的OpenSSL的API使用范例。

OpenSSL的应用程序提供了相对全面的功能,在相当多的人看来,OpenSSL已经为自己做好了一切,不需要再做更多的开发工作了,所以,他们也把这些应用程序成为OpenSSL的指令。OpenSSL的应用程序主要包括密钥生成、证书管理、格式转换、数据加密和签名、SSL测试以及其它辅助配置功能。

 

原创文章,作者:ATLTL,如若转载,请注明出处:http://www.wangzhanshi.com/n/16575.html

(0)
ATLTL的头像ATLTL
上一篇 2025年1月2日 12:39:22
下一篇 2025年1月2日 12:39:26

相关推荐

  • python3.7安装后ssl问题

    pip3报错 安装python3.7.0后发现使用pip会出现如下报错: [root@localhost ~]# /usr/local/python3/bin/pip3 insta…

    ssl证书 2025年1月2日
  • ssl证书如何申请

    ssl证书的申请方法 ssl证书的使用,是为了对网站的安全进行加固,不但能够实现身份验证,还能够为传输中的数据进行加密处理,以保证数据的完整性和安全性。而网站想要安装ssl证书,就…

    2025年1月2日
  • php7+中怎么使用openssl替代mcrypt进行AES加密解密

    mcrypt十年过去,现在php7+中已经开始淘汰。官方给出掉提示: mcrypt_get_block_size — 获得加密算法的分组大小 Warning T…

    ssl证书 2025年1月2日
  • SSL证书转换操作的流程

    SSL证书转换如何操作?    对于SSL证书转换操作的流程,在一定的环境下是比较好操作的。整体流程也不是非常难。现在对于SSL数字证书的使用已经发展到网络的每…

    2025年1月2日
  • SSL证书厂商都有哪些?

    SSL证书是一种配置在网上服务器当中的安全证书,可以保护网站当中的信息安全。因为该证书配置在网站服务器当中,因此有被称之为服务器证书。虽然这种证书对网站的信息安全起到好的作用,但是…

    2025年1月2日
  • ssl证书是什么?如何申请

    网络逐渐的渗入到我们的生活当中了,对网络信息的安全也是逐渐的受到了很多用户的关注,毕竟网络的安全和很多因素都有关系,如果网络的安全不到位,那么用户在使用网络的时候怎么样才能够放心?…

    2025年1月2日
  • 如何用微信本地数据库获取密钥

    怎么找PC微信本地数据库的密钥,我们知道微信使用的数据库是sqlite3,然后数据库是经过 aes 加密的,我们需要找到aes的密钥,才能解密,然后进行数据库操作。思路是在微信登陆…

    2025年1月2日
  • ssl双向认证指的是什么

    SSL证书在配置到网站的过程中,必须要进行SSL认证,特别是双向认证,这样之后才可以进行SSL的正常使用。那么什么是ssl双向认证呢,双向认证和普通的认证有什么区别呢,下面就来看看…

    2025年1月2日
  • ssl证书多少钱,失效了怎么办

    现在很多人比较关心的就是ssl证书费用问题,以及在使用证书的过程当中,出现无效的ssl证书,所以接下来小编就和大家说一下,ssl证书多少钱和无效的ssl证书怎么办,以及tomcat…

    2025年1月2日
  • SSL证书中EV指的是什么

    众所周知的是,SSL证书的分类很多,其中比较多人认可的一种SSL就是EV证书了,那么这种EV SSL证书怎么用呢,到底有什么作用呢,下面就来看看关于EV SSL证书的情况。 其实E…

    2025年1月2日

发表回复

登录后才能评论