在可以更改公共可访问词典的任何部分的情况下,是否可以验证某人的身份?

问题描述 投票:0回答:1

因此,假设有一台服务器充当JSON存储设备。您可以从键读取数据,也可以将数据写入键。唯一的限制是您看不到所有键。

是否可以仅使用此JSON存储作为通信方式来验证某人的身份?我说的是rsa密钥对,哈希,密码。没事我有一些想法,例如通过散列每个用户的密码来存储每个用户的私钥,然后将该散列用作私钥的密钥(可能也对私钥进行加密)。现在显然公共密钥必须是任何人都可以读取的,但是我怎样才能阻止某人替换该公共密钥并冒充他们呢?

因此,重申一下,在一个可公开访问的数据库中,您必须已经知道密钥才能访问存储在密钥中的数据,我如何才能验证用户的身份?

security encryption p2p public-key-encryption
1个回答
0
投票

“身份”在这里有点含糊。例如,如果您想确定此人是住在大街123号的爱丽丝,那么系统中的信息太少了。但是私钥,密码等也不会这样做。身份可能意味着很多事情。

您可能在这里指的只是身份验证;这个人就是他们所说的那个人,是对“谁”(一个可能是匿名的,甚至可能不是唯一的)的相当宽松的定义。如果您想知道访问密钥的人就是编写密钥的人,那么只要他们不与他人共享密钥,您的系统就会自动执行此操作。密钥是秘密,而拥有秘密的人仅是通过知道就可以进行身份​​验证。

[您可能还有其他要求和目标,但您在这里没有表达,但是如果您只想对用户进行身份验证,那么他们拥有共享机密正是您的操作方式,并且您的密钥似乎共享秘密。

我有点担心您的评论“显然,任何人都必须可读公共密钥。”一点都不明显。仅仅因为公钥通常是非秘密的,所以这不是必需的。完全可以将私钥和公钥都作为秘密。例如,我可能只将我的公钥提供给某些人。如果我随后收到一条消息,则可以使用我的私钥解密,该消息将验证发件人是该公钥的持有者。

您能否解释一下您试图通过这种身份验证启用的哪种用例?

© www.soinside.com 2019 - 2024. All rights reserved.