设为首页 收藏本站
查看: 4276|回复: 0

[经验分享] OpenSSL原理及基本使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-16 08:41:01 | 显示全部楼层 |阅读模式
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
wKiom1SO4unTyWJRAAEA7fbmrqk055.jpg
        可以看出当前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
wKioL1SO5F6gROxYAAF_zmcLt2E831.jpg
        加密完后继续编辑文件会发现是一堆密码
wKiom1SO4-3C7SXsAAXkXLQWgC4248.jpg
        解密文件
        openssl enc -d -des -a -salt -in passwd.crypt -out passwd
wKiom1SO5Jajr9xrAAFV6WjOTvo195.jpg
        再次打开此文件会发文件正常使用
wKiom1SO5Maj3G8MAAO0cjjFcOY862.jpg
        OpenSSL 实现非对称加密,也就是所说的公钥和私钥,使用genrsa子命令,非对称加密是通过生成私钥来提取公钥因此私钥不可以让除当前用户以外的任何用户可以查看到。
        加密方法:        
        (umask 077;openssl genrsa -out 私钥保存位置  加密长度)
        这里的括号代表在子进程中运行因为要修改umask值并且这行命令运行完成后子shell就会退出并不会影响到当前系统中的umask值,使用分号代表在同一行执行命令
        提取公钥
        openssl rsa -in 私钥 -pubout
        实例2:生成私钥文件并且提取出公钥
        (umask 077; openssl genrsa -out crypt.key 2048)
wKiom1SO5TWhNMrtAAGwRLVZuZk408.jpg
        提取公钥:
        openssl rsa -in crypt.key -pubout > pub.key
wKioL1SO5frwKIq8AAFEye08wz0562.jpg
        OpenSSL实现单向加密一般用于校验文件完整性操作,常用有md5和sha1等。(文件被修改后md5值和sha值都会改变)
        加密方法:

        openssl dgst -加密算法 文件路径


        示例3:获取文件md5值
        openssl dgst -md5 passwd
wKiom1SO5c3CTVQVAAEUum4IwX4258.jpg
        以上加密方法都可以使用--help来获取帮助信息也可以使用man手册页查看帮助信息

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38101-1-1.html 上篇帖子: 解决parted分区时The resulting partition is not properly aligned for best performance报 下篇帖子: Rsyslog 更改Linux系统日志的时间格式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表