我应该如何以及何时将 OpenSSL 用于 IT 安全?我如何理解输出?

信息安全 tls 证书 公钥基础设施
2021-09-05 22:25:20

我正在发现 OpenSSL,并且已经用它来诊断错误的 SMTP TLS 连接,但我想更好/全面地了解该工具以及如何使用它。

我应该使用哪些资源来开始学习此工具?

我对从示例命令到如何理解和使用输出的任何指南都感兴趣。我对 TLS、PKI、加密等有基本的了解,但考虑到这个工具的复杂性,还有很多东西要学!

3个回答

没有关于 OpenSSL 的好的文档保存它的源代码。可悲的是。您可以做的最好的事情是对底层概念有所了解,然后使用 OpenSSL 进行一些试验,看看它是如何实现的。对于 SSL/TLS,我建议阅读TLS 1.0 规范,该规范非常易读,并包含一些关于 TLS 握手过程的示意图。

对于基本的密码算法,请参阅必不可少的应用密码学手册,该手册可免费下载。第 13 章包括一些关于公钥证书概念的讨论。

对于 X.509 证书,首先要了解 ASN.1 是关于什么的;参见John Larmouth 的ASN.1 Complete这本书是免费下载的(注册后),只要你不相信 ASN.1 很棒的想法,它就很好:它是一个糟糕的化身,可能是一个很好的解决方案(魔鬼在细节中;在在 ASN.1 的情况下,魔鬼有足够的空间与他一起隐藏整个恶魔军团)。一旦您了解了 ASN.1 的内容,您就可以尝试查看 X.509 标准,或者至少查看它的Internet 配置文件这是一个深邃、黑暗、复杂的领域,铺满了世界上所有的善意,就像一个读了太多洛夫克拉夫特的疯狂科学家所能想象的那样噩梦。所有希望都放弃进入这里的你们。另外,请查看X.509 样式指南

我可信赖的朋友 Google 提出了这个页面,该页面链接到一些示例代码和文档(作为两个 PDF 文件),解释如何使用 OpenSSL(作为库)。

我讨厌从“这是一个工具,你能用它做什么?”的角度来学习东西。

相反,我喜欢从“这是一个问题,这是你如何用工具解决它”的观点。

这篇验证 Comodo 黑客密钥的帖子就是一个很好的例子。首先是黑客声称已获得“addons.mozilla.org”的欺诈性 SSL 密钥的问题。他说的是真话吗?您如何使用“openssl”工具来验证这一点?然后我向后工作,从几个角度展示如何使用“openssl”来展示这是如何完成的。

以下是 OpenSSL 中使用的一些命令

# Generate a public private key pair
openssl genrsa -out private-key.pem 2048

# Extract the public key in PEM format
openssl rsa -in private-key.pem -pubout > public-key.pem

# Encrypt a file 
openssl rsautl -encrypt -inkey public-key.pem -pubin -in verify.txt -out encrypted

# Decrypt a file
openssl rsautl -decrypt -inkey private.pem -in encrypted -out decrypted.txt

(当我找到它们时会更多)