【问题标题】:Encrypting a file using a private key and public key使用私钥和公钥加密文件
【发布时间】:2017-01-04 15:03:20
【问题描述】:

我是一名几乎没有加密经验的开发人员。我正在尝试在业余时间了解有关加密,特别是 SSL 的更多信息。

假设一家受信任的公司有一个文件(记事本),其中包含大量个人和机密信息。假设我想请他们将此信息发送给我进行分析。我该怎么做?

我的研究告诉我,我必须:

1) 创建自签名证书 2)生成公钥和私钥 3) 将公钥颁发给受信任的公司,并保留私钥 4) 要求公司使用公钥加密信息,然后发送给我 5) 使用私钥解密文件

正确吗?我该怎么做?

在这种情况下,证书是否应该由证书颁发机构签署,因为我将手动将公钥颁发给受信任的公司(他们知道它来自我)。

正如我所说,我对这个主题比较陌生。

【问题讨论】:

  • SSL/TLS 不用于加密文件。它用于建立加密连接。如果您真的想加密文件以进行存储,那么您无法使用 SSL/TLS 执行此操作。看来您只是指公钥加密。如果是这样,那么是的,这是一种方法。
  • 请注意,您可以使用 RSA 加密的数据大小限制为小于密钥大小。由于参考的是 SSL,请注意数据使用对称密钥(如 AES)加密,而该密钥使用非对称加密(如 RSA)加密。这有时称为混合加密。
  • @Zaph,感谢您的评论。但是,我不想成为“专家”。我只是想掌握基础知识。

标签: ssl encryption


【解决方案1】:

SSL 是一种用于加密网络连接的协议。它与手动加密和解密文件并不真正相关。 (它也不安全且已弃用;应该使用 TLS。)

如果您想手动加密和解密文件,是的,您可以使用自签名证书并将公钥提供给发送文件的公司。但是,您必须确保以无法被拦截的方式向他们提供公钥 - 例如将其物理上交给闪存驱动器,通过电子邮件发送 - 否则您很容易受到攻击给man-in-the-middle attack:有人可以截获公钥并给公司一个不同的。 (如果发生这种情况,公司会在不知不觉中加密文件以供攻击者解密,然后攻击者会使用 真实 公钥重新加密文件并将其发送给您。)

如果您手动执行此操作并以安全方式提供公钥,则无需涉及证书颁发机构。证书颁发机构的目的是在证书通过不安全的渠道交付时保证证书的真实性。例如,当您访问 stackoverflow.com 时,您的浏览器会从 Web 服务器获取证书(带有公钥)。由于此证书不是由 SO 工作人员亲自提供给您的,您如何知道 Web 服务器是真正的 stackoverflow.com,而不是中间人攻击者拦截您的连接以劫持您的帐户?该网站的证书由证书颁发机构(目前为 DigiCert)签署,表明 DigiCert 已验证它是真实的。您的浏览器已配置为信任来自 DigiCert 的签名,因为浏览器开发人员已验证该公司值得信赖。

PGPGPG 是安全交换加密文件的好工具。他们使用基于安全交换证书的“信任网络”模型,而不是依赖于证书颁发机构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-17
    • 2012-04-11
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2018-02-27
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多