OpenSSL原理及基本使用

OpenSSL原理

SSL:SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape(网景)公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。

SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

OpenSSL开放式安全套接层协议:是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

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

基本功能有:主要的密码算法(MD5、SHA、DH、BASE64等等)、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

辅助功能:如从口令生成密钥的API,证书签发和管理中的配置文件机制等

OpenSSL支持多种不同的算法

对称加密:

AES, Blowfish, Camellia, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, Triple DES, GOST 28147-89[3]

单向加密:

MD5, MD2, SHA-1, SHA-2, RIPEMD-160, MDC-2, GOST R 34.11-94[3]

非对称加密:

RSA, DSA, Diffie–Hellman key exchange, Elliptic curve, GOST R 34.10-2001[3]

这些都为官方解释,简单的理解为openssl就是一个集合,这个集合里面集成了许多的加密算法,而这些加密算法的使用方式都不同,所以openssl就用自己的功能来调用它们从而达到数据加密的效果。

OpenSSL基本使用

OpenSSL程序包由:openssl、libcrypto、libssl三个软件包组成

openssl:多用途的命令行工具,各功能分别使用子命令实现

libcrypto:公共加密库(存放了各种加密算法)

libssl:ssl协议的实现

OpenSSL命令行使用方法:

openssl command [command_options] [args]

查看openssl版本:openssl version

可以看出当前centos系统内置版本为1.0.1e(未升级前的版本,此版本带有漏洞,如需生产环境使用请自行下载1.0.1g版本以后的版本)

OpenSSL实现对称加密,使用enc这个子命令,使用方法 :

加密方法:

openssl enc -e -算法 -a -salt -in 原文件 -out 加密后保存的文件

解密方法:

openssl enc -d -算法 -a -salt -in 加密文件 -out 解密后保存的文件

-e:encrypt加密

-d:decrypt解密

-a:基于base64

-salt:加“盐”,可以理解为添加了一个随即数,每次生成的随机数都是不同的就算使用相同    密码结果也是不同的。

注:加密和解密算法必须使用相同的算法,不然会导致解密出来的内容为乱码

示例1:加密etc目录下的passwd文件并保存到当前目录下

openssl enc -e -des -a -salt -in /etc/passwd -out ./passwd.crypt

加密完后继续编辑文件会发现是一堆密码

解密文件

openssl enc -d -des -a -salt -in passwd.crypt -out passwd

再次打开此文件会发文件正常使用

OpenSSL 实现非对称加密,也就是所说的公钥和私钥,使用genrsa子命令,非对称加密是通过生成私钥来提取公钥因此私钥不可以让除当前用户以外的任何用户可以查看到。

加密方法:

(umask 077;openssl genrsa -out 私钥保存位置  加密长度)

这里的括号代表在子进程中运行因为要修改umask值并且这行命令运行完成后子shell就会退出并不会影响到当前系统中的umask值,使用分号代表在同一行执行命令

提取公钥

openssl rsa -in 私钥 -pubout

实例2:生成私钥文件并且提取出公钥

(umask 077; openssl genrsa -out crypt.key 2048)

提取公钥:

openssl rsa -in crypt.key -pubout > pub.key

OpenSSL实现单向加密一般用于校验文件完整性操作,常用有md5和sha1等。(文件被修改后md5值和sha值都会改变)

加密方法:

openssl dgst -加密算法 文件路径

示例3:获取文件md5值

openssl dgst -md5 passwd

以上加密方法都可以使用--help来获取帮助信息也可以使用man手册页查看帮助信息

openssl enc | genrsa | dgst --help或者man enc | genrsa | dgst

时间: 2024-11-07 06:27:08

OpenSSL原理及基本使用的相关文章

openssl原理的初步理解与私有CA服务器的建立

加密算法主要分为对称加密算法和对称加密算法 一.对称加密算法的原理:使用相同的密钥进行加密运算的算法就是对称加密算法       加密过程(内容-->对称加密-->加密后的内容)       解密过程(加密内容-->对称加密方式-->解密后的内容)       优点与特点:速度块 加密相对安全 加密紧凑:缺点是不能用于大规模使用,会随参与人数的正佳而映像密钥的存储和管理,不支持数字签名和不可否认性   二.  非堆成加密的原理:非对称算法需要每个参与者产生一对密钥,且将公钥共享到服

openvpn安装配置过程

前言 之前为了方便远程办公时访问公司的内部系统,如:svn.OA.wiki.禅道等等:通通在防火墙上做了端口映射.然后 有个内部系统被黑了,各种弱口令没办法.果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用.马上就想到了开源的openvpn, 下面就来介绍openvpn的安装配置过程. openvpn简介 官方网站:https://openvpn.net 打不开请爬墙 openssl原理:http://www.178linux.com/archives/2704 参考书生的

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性

Openssl加密解密原理与命令使用--尚未完善

Openssl加密解密原理: 示例: 比如A与B通信发送数据: 加密原理: 在A把要发送的内容通过单向加密方式进行数据指纹计算,计算出数据指纹后,会用自己的私钥加密数据指纹,并把加密的数据指纹添加到原数据的后面.然后对整个数据(原数据+数据指纹)进行对称加密算法进行计算(让明文转换成密文),得出的数据为整个数据的密码,再用B的公钥进行这个密码进行加密,并放到这个数据的后面一并发给B. 解密原理: 1.B用自己的私钥能够解密---------至此说明数据保密的. 2.B用私钥解密出来的密码,去解密

openSSL命令、PKI、CA、SSL证书原理

转自:http://blog.csdn.net/gui694278452/article/details/46373319 目录 1. PKI.CA简介 2. SSL证书 3. SSL证书生成.openSSL学习 4. CA中心搭建.SSL证书生成过程 1. PKI.CA简介 PKI(Public Key Infrastructure)即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是

OpenSSL和https原理

https原理: 浏览器请求服务端的公钥证书,服务器将注册的证书发送给客户端.客户端向办法机构验证证书的合法性,证书 包括公钥,服务器网址及一些信息.验证完毕,客户端生成一串随即码,用公钥加密发送给服务器端作为对称加密 密钥. Openssl工具生成根证书,公私钥对(key.cer key.pam),证书请求文件(key-req.csr).公钥以.cer结尾的文件,私钥为.pam结尾的文件,证书请求文件是用来颁给请求公私钥对的个人或公司.通过根证书的签名来为个人或公司生成公钥, 根的公私钥对由o

openssl加解密原理及私有CA的建立

一.openssl加解密原理 数据加密解密过程数据加密需要实现的功能:数据私密性,数据完整性,身份认证和秘钥交换. 美国NIST,为了计算机的安全,提出了几个要求: 1.数据保密性   数据保密性   隐私性 2.完整性    数据完整性   系统完整性 3.可用性 4.真实性 && 可追溯性 OSI:x.800  安全攻击:   被动攻击:窃听   主动攻击:伪装.重播.消息修改.拒绝服务  安全机制:   加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证  安全

Openssl及加密解密(一)数据加密解密及CA原理

明文:plaintxt或者cleartext,也就是没有加密的,直接可以看懂的内容.密文就是通过特殊方式处理过的内容,无法直接看懂. 常见的加密方式: 对称加密 公钥加密 单向加密 对称加密: 加密算法+口令,把要转换的数据也就是明文数据,通过加密算法内部转换明文变成密文.这个算法可能是公开的,但口令只有你自己知道.为了更加安全,那么加密本身不能过于依赖算法,因为算法固定而且一旦算法遭到破解,那么基于这个算法的所有密文都可以破解,所以算法固然重要,但是最重要的是口令,口令可以变,就算算法破解了,

加密学原理及openssl,私有CA搭建

公钥加密:密钥是成对儿出现    公钥:公开给所有人:pubkey    私钥:自己留存,必须保证其私密性:secret key    特点:用公钥加密的数据,只能使用与之配对儿的私钥解密:反之亦然:实现:    数字签名:主要在于让接收方确认发送方身份:用自己的私钥加密:    密钥交换 方式(IKE): ①.发送方用对方的公钥加密一个对称密钥,并发送给对方: ②.DH算法,不会在网络上发送秘钥,所以就算破解了也拿不到秘钥,想了解DH算法请google 安全通信过程解析:(假设A和B要安全传输