(openssl) - 强大的安全套接字层密码库

openssl

强大的安全套接字层密码库

补充说明

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。由于这是互联网应用最广泛的安全传输方法,被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用,所以该漏洞影响范围广大。

OpenSSL有两种运行模式:交互模式和批处理模式。

直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式。

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

对称加密算法

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

非对称加密算法

OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。

信息摘要算法

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

密钥和证书管理

密钥和证书管理是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),实现了证书签发的整个流程和证书管理的大部分机制。

实例

1、使用 openssl 生成密码

几乎所有 Linux 发行版都包含 openssl。我们可以利用它的随机功能来生成可以用作密码的随机字母字符串。

openssl rand -base64 10
# nU9LlHO5nsuUvw==

nU9LlHO5nsuUvw==

2、消息摘要算法应用例子

用SHA1算法计算文件file.txt的哈西值,输出到stdout:

# openssl dgst -sha1 file.txt

用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt:

# openssl sha1 -out digest.txt file.txt

用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中。

# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt

用dss1算法验证file.txt的数字签名dsasign.bin,验证的private key为DSA算法产生的文件dsakey.pem。

# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt

用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem。

# openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt

用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem。

# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt

3、对称加密应用例子

对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin。

# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

用DES3算法的OFB模式解密文件ciphertext.bin,提供的口令为trousers,输出到文件plaintext.doc。注意:因为模式不同,该命令不能对以上的文件进行解密。

# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers

用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取,输出到文件ciphertext.bin。

# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD

给文件ciphertext.bin用base64编码,输出到文件base64.txt。

# openssl base64 -in ciphertext.bin -out base64.txt

用RC5算法的CBC模式加密文件plaintext.doc,输出到文件ciphertext.bin,salt、key和初始化向量(iv)在命令行指定。

# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29

4、Diffie-Hellman应用例子

使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数,输出保存到文件dhparam.pem

# openssl dhparam -out dhparam.pem -2 1024

从dhparam.pem中读取Diffie-Hell参数,以C代码的形式,输出到stdout。

# openssl dhparam -in dhparam.pem -noout -C

5、DSA应用例子应用例子

生成1024位DSA参数集,并输出到文件dsaparam.pem。

# openssl dsaparam -out dsaparam.pem 1024

使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem

# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem

使用私钥匙dsaprivatekey.pem生成公钥匙,输出到dsapublickey.pem

# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem

从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,然后写回文件dsaprivatekey.pem

# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin

6、RSA应用例子

产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem

# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

从文件rsaprivatekey.pem读取私匙,用口令trousers解密,生成的公钥匙输出到文件rsapublickey.pem

# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem

用公钥匙rsapublickey.pem加密文件plain.txt,输出到文件cipher.txt

# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

使用私钥匙rsaprivatekey.pem解密密文cipher.txt,输出到文件plain.txt

# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

用私钥匙rsaprivatekey.pem给文件plain.txt签名,输出到文件signature.bin

# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

用公钥匙rsapublickey.pem验证签名signature.bin,输出到文件plain.txt

# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain

从X.509证书文件cert.pem中获取公钥匙,用3DES加密mail.txt,输出到文件mail.enc

# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem

从X.509证书文件cert.pem中获取接收人的公钥匙,用私钥匙key.pem解密S/MIME消息mail.enc,结果输出到文件mail.txt

# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt

cert.pem为X.509证书文件,用私匙key,pem为mail.txt签名,证书被包含在S/MIME消息中,输出到文件mail.sgn

# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn

验证S/MIME消息mail.sgn,输出到文件mail.txt,签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn中

# openssl smime -verify -in mail.sgn -out mail.txt

更多实例:

openssl version -a
openssl help
openssl genrsa -aes128 -out fd.key 2048 # pem format
openssl rsa -text -in fd.key

热点新闻

受疫情影响 Booking.com宣布最多裁员25%

全球酒店预订平台Booking.com母公司Booking Holdings今日宣布,由于新冠病毒疫情继续对旅游造成广泛影响,该公司计划在全球范围内最多裁员25%。目前,Booking.com拥有逾1.7万名员工。 阅读全文

发布于:2020-08-04T23:15:13Z  |  114次阅读  |  详细内容 »

CDC预测:未来30天 美国每天将有1000人死于新冠肺炎

美国疫情现况有多严峻?美疾控中心(CDC)预测,未来30天,美国每天将有1000人死于新冠肺炎。据美国有线电视新闻网(CNN)消息,过去一周,美国27个州的疫情逐渐趋缓,这是一个好消息,但对全美来说,疫情还是相当严重。根据CDC发布的一份综合预测数据,到8月22日,美国新冠肺炎死亡病例将达到17.3万例,在未来30天,平均每天就有1000个美国人死于新冠肺炎。 阅读全文

发布于:2020-08-03T12:15:09Z  |  90次阅读  |  详细内容 »

勒索软件Maze公开数十GB的LG和施乐内部数据

在未能勒索到赎金之后,勒索软件 Maze 背后的犯罪组织公开了 50.2 GB 的 LG 内部数据和 25.8 GB 的施乐内部数据。Maze 犯罪组织入侵企业网络后,首先窃取数据然后加密数据,最后索要赎金解密文件。 阅读全文

发布于:2020-08-05T23:45:42Z  |  77次阅读  |  详细内容 »

如果特斯拉Cybertruck失败 马斯克还有Plan B

据外媒报道,特斯拉CEO埃隆·马斯克在周末发表的评论详细阐述了他的备用计划以防即将到来的Cybertruck以失败告终。马斯克在周日出版的Automotive News的采访中表示,如果Cybertruck失败,特斯拉只会制造一种常规版和类似版皮卡。 阅读全文

发布于:2020-08-04T08:14:48Z  |  75次阅读  |  详细内容 »

Google Doodle呼吁人们戴上口罩 以拯救生命

据外媒CNET报道,根据美国疾病控制和预防中心(CDC)的指导方针,美国许多州都规定在公共场所或不可能社会保持距离的地方必须戴上口罩,以帮助防止新冠病毒的传播。然而,有些人还是反对戴口罩。有些人认为,如果他们没有出现症状,就不需要戴口罩,这一立场与健康专家、医生和科学家的建议相反。 阅读全文

发布于:2020-08-05T09:44:51Z  |  74次阅读  |  详细内容 »

字节跳动:考虑在美国之外重新设立TikTok总部

字节跳动发布最新声明称,考虑在美国之外的主要市场,重新设立TikTok总部。字节跳动声明全文:字节跳动始终致力于成为全球公司。根据目前情况,字节跳动考虑在美国之外的主要市场,重新设立TikTok总部,以更好地服务全球用户。 阅读全文

发布于:2020-08-04T03:44:23Z  |  73次阅读  |  详细内容 »

德国判决特斯拉的触摸屏雨刷控制特性非法

一位德国特斯拉司机在下雨时使用触摸屏去调整挡风玻璃上的雨刷速度,结果发生了车祸。地方法院对他进行了罚款并处以一个月的驾驶禁令。特斯拉 Model 3 和 Model Y 两款电动汽车取消了方向盘上的雨刷速度调整功能,而是改用自动驾驶相机,根据降雨强度自动调整速度。 阅读全文

发布于:2020-08-05T23:45:44Z  |  68次阅读  |  详细内容 »

马斯克:当太空旅行像航空旅行一样普遍 人类文明未来将得到保证

8月3日消息,据国外媒体报道,今天SpaceX飞船及NASA宇航员完成历史性飞行,安全返回地球。SpaceX CEO马斯克非常兴奋,在社交网络上发表了许多言论。美国国家航空航天局(简称NASA)宇航员Bob Behnken和Doug Hurley在当地时间下午2:45在墨西哥湾地区降落,这是首次由商业化建造和运营的宇宙飞船载人到达国际空间站并载人返回。 阅读全文

发布于:2020-08-03T12:15:23Z  |  68次阅读  |  详细内容 »

TikTok在美遭遇集体诉讼 被控收集儿童数据

数十名美国未成年人通过他们的父母向短视频应用TikTok(抖音海外版)提起集体诉讼,指控该应用收集他们有关面部特征、位置和亲密联系人的数据,并悄悄将其发送到中国服务器上。 阅读全文

发布于:2020-08-05T23:45:47Z  |  67次阅读  |  详细内容 »

收购TikTok,对微软有什么意义?

北京时间8月3日晚间消息,乍一看,微软收购TikTok似乎有些不寻常。微软花了数年时间始终徘徊于消费业务侧,比如Groove Music、Kinect Xbox、Microsoft Band健身设备、Windows Phone以及最近的Mixer流媒体服务等等。 阅读全文

发布于:2020-08-04T00:16:40Z  |  67次阅读  |  详细内容 »

Statista:苹果在可穿戴设备市场上目前排名第一 小米第二

8月4日晚间消息,据《Statista数字市场展望》,长期以来,Fitbit在全球可穿戴设备市场上一直扮演着市场领导者的角色,但其地位近年来有所减弱。IDC称,面对来自苹果、三星和一些中国供应商的激烈竞争,Fitbit去年仅位列全球第五大可穿戴品牌。 阅读全文

发布于:2020-08-05T02:14:31Z  |  66次阅读  |  详细内容 »

瑞士一家母子因100万美元假冒iPhone维修欺诈被捕

瑞士的一对母子被指控在一场100万美元的保修骗局中以假乱真,调换出了苹果公司的真iPhone。据瑞士广播公司SRF的新闻网站报道,瑞士北部阿尔高州一名34岁的男性华裔居民,拿着假iPhone带到苹果商店,谎称他将这些手机有问题,他要求通过Apple Care进行更换,并收到更换后的苹果真iPhone。 阅读全文

发布于:2020-08-04T01:44:35Z  |  66次阅读  |  详细内容 »

小米10超大杯手机壳细节暴露 后置相机模组超级大

8月3日,小米方面正式宣布了将于8月11日晚19:30举行一场小米十周年主题演讲,将对小米此前十年的成绩做一次“总结汇报”。有消息指出,小米可能会在这场发布会上推出小米10超大杯手机。随后,网上出现了一款宣称是小米10超大杯手机的手机壳。 阅读全文

发布于:2020-08-03T21:30:16Z  |  66次阅读  |  详细内容 »

SpaceX载人飞船返程 马斯克全程“祈祷”

在国际空间站执行了长达两个月的任务后,两名美国宇航员鲍勃·贝肯(Bob Behnken)和道格·赫尔利(Doug Hurley)搭乘SpaceX公司的奋进号“龙飞船”,历经19个小时的飞行旅程,于美国东部时间8月2日下午2时48分,在墨西哥湾的佛罗里达州彭萨科拉(Pensacola)海岸附近水域降落,完成了这次历史性的太空探索任务。 阅读全文

发布于:2020-08-03T18:18:17Z  |  65次阅读  |  详细内容 »

小米新一代真无线耳机现身:终于加入主动降噪

经查,名为Mi Active Noise Cancelling Wireless Earphones的音频设备现身蓝牙认证组织的数据库中。认证资料显示,这款TWS真无线耳机支持蓝牙5.0传输,音频编码格式包括SBC、AAC,而且还获得了IPX4防水认证。 阅读全文

发布于:2020-08-03T15:17:21Z  |  65次阅读  |  详细内容 »

Google公布Pixel 5与Pixel 4A 5G:今年秋季搭载5G后到来

对于Google来说,今天是忙碌的一天。在周一新的Pixel 4a经济型手机发售之后,Pixel 4A 5G、Pixel 5的消息也有略微的披露。虽然你现在已经可以预购Pixel 4A,然后8月20日开始陆续收到货,但Pixel 4A 5G和Pixel 5似乎更有吸引力一些。 阅读全文

发布于:2020-08-04T00:22:56Z  |  64次阅读  |  详细内容 »

热门Linux命令