【问题标题】:How works Public-key cryptography on Github?Github 上的公钥密码学是如何工作的?
【发布时间】:2011-08-19 10:16:42
【问题描述】:

在Public-key cryptography 中生成一对密钥,一个私有的,一个公共的,我放在Github 中的public。

私钥解密数据,公钥加密数据。这意味着当我向 github 发送数据时,该数据未加密,因为只有私钥解密数据?

更新:

谢谢大家,我现在明白了。

当我发送推/拉时,我在想我的数据在 github 中以这种方式加密。此案例用于登录/验证/签名。这与 SSH 连接为发送我的数据而设置的加密传输流完全不同。

感谢大家的回复...

【问题讨论】:

    标签: git cryptography github public-key


    【解决方案1】:

    使用私钥加密的数据可以使用公钥解密 键(反之亦然)

    PKI 基于两个密钥(公钥和私钥) 可以使用公钥或私钥对数据进行安全加密 只有使用与加密数据相反的密钥才能解密数据

    注意:公钥可以从私钥生成(不是相反) 来源:https://github.com/topics/public-private-key

    【讨论】:

      【解决方案2】:

      完全没有错,但是错了。 (a) 私钥解密公钥加密的数据,(b) 公钥解密私钥加密的数据。

      (a):每个人都可以加密某些东西,但只有私钥的所有者才能解密它。

      (b):所有者用他的私钥“加密”某些东西,每个人都可以解密它,这确保了真正的所有者,而不是其他人加密了数据。

      git(hub) 使用第二种情况:如果你推送一些东西,它会用你的私钥签名。接收者现在根据它从您那里知道的公钥来验证签名。如果匹配,一切都很好。

      更新:(也许也是)对所发生情况的简化描述(将 github 与 ssh 一起使用时)

      • Github 向您发送随机的东西,使用 他的_private_ 密钥加密(也许它不是那么随机,我不知道,但在这里无关紧要)
      • 您收到它并使用 他的 _public_ 密钥对其进行解密。如果这是可能的,你可以肯定,你真的在​​和官方的 github 服务器交谈
      • 然后您将使用 您的_private_ 密钥加密的相同随机内容发送到 github-server
      • 他试图用 你的 _public_ 密钥对其进行加密。如果这是可能的,而且是他之前给你发的随机东西,他肯定知道你就是你。
      • 然后,您将使用 他的 _public_ 密钥加密的内容发送给您。现在只有 github 服务器可以解密。他还会回复使用你的_public_密钥加密的消息/数据,因为只有你可以解密它。

      即使它不完全正确,它也应该描述这个想法。

      【讨论】:

      • 所以我的公钥不是对所有人公开的吗?公钥必须对我的接收者保密?因为如果我有公钥,我可以解密数据。
      • 不,您的公钥可以对所有人公开(即使它取决于您,是否公开;))。私钥是你保密的。如果您有公钥,则可以解密由私钥加密的数据。这意味着,如果您能够使用从 Bob 那里收到的公钥解密数据,那么您可以确定 Bob 对其进行了加密。这更像是一种验证,而不是一种加密。如果 Bob 想给你发送一条秘密消息,他应该使用你的公钥来加密它。
      • 这取决于使用的协议。使用 SSH 或 HTTPS 完全加密。如果您使用 git-protocol .. 我不知道 :X 但据我所知,它没有加密(以避免开销)。使用 github,您通常会使用 ssh-protocol。
      • 如果我窃取了 Bob 的公钥并将其放在任何人都可以看到的地方,我的安全性会下降吗?
      • 不,这只是意味着,现在(如果 Bob 自己没有提前公布他的密钥)每个人都可以发送 Bob 加密的消息,只有他可以解密。它总是:发送者用接收者的public密钥加密某些东西,只有接收者能够解密它,因为他有私钥。另一件事是,如果他向您发送使用他的 私钥 密钥加密的内容,您可以验证他的身份,因为只有他的公钥才能解密它。
      【解决方案3】:

      一个大的简化是,当您尝试推送某些内容时,GitHub 将通过使用您的公钥加密一些随机内容并查看您是否可以解密它来向您发送挑战,您只有在您这样做的情况下才能这样做有私钥。

      【讨论】:

      • 这不是 Github 本身做的,那是加密握手,它是设置 SSH 连接的一部分,你的本地 git 将使用它来与 github 通信。
      猜你喜欢
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      相关资源
      最近更新 更多