Cryptography 使用公钥密码的网络连接

Cryptography 使用公钥密码的网络连接,cryptography,encryption,public-key-encryption,Cryptography,Encryption,Public Key Encryption,当A使用公钥密码通过网络连接向B发送数据时,A如何实现身份验证、保密的目标?阅读SSL/TLS工作原理的说明。例如,您可以在我们的网站上阅读 在这种情况下,a使用B的公钥,B使用a的公钥 机密性:如果A使用B的公钥对某个东西进行加密,那么只有拥有B的私钥的人才能读取它。实际上,A可能会为某些对称密码(如AES)生成一个随机密钥,因为这样效率更高,但如果使用B的公钥加密,则只有A和B应该拥有它 身份验证:这更复杂。通常,如果可以秘密发送信息,则可以发送身份验证凭据。公钥加密可以有所帮助,前提是由于

A
使用公钥密码通过网络连接向
B
发送数据时,
A
如何实现身份验证、保密的目标?

阅读SSL/TLS工作原理的说明。例如,您可以在我们的网站上阅读

在这种情况下,a使用B的公钥,B使用a的公钥

机密性:如果A使用B的公钥对某个东西进行加密,那么只有拥有B的私钥的人才能读取它。实际上,A可能会为某些对称密码(如AES)生成一个随机密钥,因为这样效率更高,但如果使用B的公钥加密,则只有A和B应该拥有它

身份验证:这更复杂。通常,如果可以秘密发送信息,则可以发送身份验证凭据。公钥加密可以有所帮助,前提是由于某种原因A的公钥已知为A的公钥。也许是因为某种原因在B信托的某个地方注册的,也许B以前与a沟通过,想知道它是否是同一个密钥。然后A可以发送一条用A的私钥加密的消息,该私钥可以用A的公钥读取。通过对消息进行散列并对散列进行加密,可以将其用作加密签名


在这些情况下,我假设A和B有私钥和公钥,并且没有其他人知道他们的私钥(A不知道B的私钥,反之亦然)。如果E知道A的私钥,那么E可以发送看似来自A的消息,E可以将所有私钥读取给A。此外,如果B不知道A的公钥是A的,B无法通过使用B和E的公钥与B通信来判断E是否在进行中间人攻击,使用A和E的公钥与A通信,并中继通信。这意味着E可以读取(违反保密)和更改(违反身份验证)两者之间的通信。这通常是由受信任的证书颁发机构颁发的证书处理的,这超出了问题的范围。

这也不能回答任何问题。当它被标记为这样(并且“我们的网站”正在标记它)时,我并不介意自我提升,但这是一个只提供链接的答案,没有解释任何内容,也没有添加任何内容。@David也阅读了SSL的描述,然后你就会知道它做什么和不做什么。我应该能够阅读一个SO的答案,并得到一些启示,而不必去外部链接。你似乎在谈论我的通信安全知识,这与你的答案不应该在这里这一事实完全无关,因为它本身没有帮助。谢谢大家的回答和评论。它们非常有用。好吧,我可以承认PKC可以用于身份验证,因为私钥必须是私有的(为了让它真正工作)。但是,我认为必须明确的是,这是作为网络基础设施的一部分在系统内发生的,而不是通过用户控制发生的-这是问题没有解决的,答案只是间接提到的。@Thosewhatts:我不确定OP想要解决的级别,所以我讲了如何使用非对称密码来辅助身份验证。就用户控制而言,如果我使用ssh连接到以前从未使用ssh连接到的位置,则会收到用户级警告。