我是一名加密经验很少的开发人员。我想在业余时间了解有关加密的更多信息,特别是SSL。
假设一家受信任的公司有一个包含大量个人和机密信息的文件(记事本)。说我想让他们把这些信息发给我来分析。我该怎么做?
我的研究告诉我,我必须:
1)创建自签名证书 2)生成公钥和私钥 3)向受信任公司发布公钥并保留私钥 4)要求公司使用公钥加密信息,然后发送给我 5)使用私钥解密文件
这是对的吗?我该怎么做?
在这种情况下,证书是否应由证书颁发机构签署,因为我会手动将公钥发布给受信任的公司(他们知道它来自我)。
正如我所说,我对这个问题相对较新。
答案 0 :(得分:0)
SSL是用于加密网络连接的协议。它与手动加密和解密文件无关。 (它也不安全和弃用;应该使用TLS。)
如果您想手动加密和解密文件,是的,您可以使用自签名证书,只需将公钥提供给发送该文件的公司即可。但是,您必须确保以无法拦截的方式向他们提供公钥 - 例如在闪存驱动器上进行物理处理,不通过电子邮件发送 - 或者您&# 39;易受man-in-the-middle attack攻击:有人可以拦截公钥并为公司提供不同的。 (如果发生这种情况,公司会在不知情的情况下加密文件以供攻击者解密,然后攻击者会使用真正的公钥重新加密文件并将其发送给您。)< / p>
如果您手动执行此操作并以安全的方式提供公钥,则无需涉及证书颁发机构。证书颁发机构的目的是在证书通过不安全的渠道交付时保证证书的真实性。例如,当您访问stackoverflow.com时,您的浏览器会从Web服务器获取证书(带有公钥)。由于SO员工没有亲自向您提供此证书,您如何知道Web服务器是真正的stackoverflow.com,而不是中间人攻击者拦截您的连接以劫持您的帐户?该网站的证书由证书颁发机构DigiCert签署,目前DigiCert已经证实它是真实的。您的浏览器配置为信任DigiCert的签名,因为浏览器开发人员已经验证该公司是值得信赖的。
PGP和GPG是安全交换加密文件的好工具。他们使用&#34;信任网&#34;模型基于安全地交换证书,而不是依赖于证书颁发机构。