Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 局域网p2p系统中的网络通信安全_Security_Network Programming - Fatal编程技术网

Security 局域网p2p系统中的网络通信安全

Security 局域网p2p系统中的网络通信安全,security,network-programming,Security,Network Programming,我正在开发用于局域网的p2p应用程序。用户应该在没有任何服务器的情况下直接相互连接。目前应用程序可以在Linux上运行,但我考虑将其移植到Windows和Android上 目前,我只是建立未加密的TCP连接,这在早期开发阶段还可以。稍后我想使用安全通道,这里是我的问题-如何在局域网的分布式p2p解决方案中建立安全连接(确保信任和身份验证,如TLS)?有可能吗 我不能使用TLS,因为我不会让任何中央服务器充当证书颁发机构。而且我的局域网没有互联网连接。匿名TLS是部分解决方案(它能在Android

我正在开发用于局域网的p2p应用程序。用户应该在没有任何服务器的情况下直接相互连接。目前应用程序可以在Linux上运行,但我考虑将其移植到Windows和Android上

目前,我只是建立未加密的TCP连接,这在早期开发阶段还可以。稍后我想使用安全通道,这里是我的问题-如何在局域网的分布式p2p解决方案中建立安全连接(确保信任和身份验证,如TLS)?有可能吗

我不能使用TLS,因为我不会让任何中央服务器充当证书颁发机构。而且我的局域网没有互联网连接。匿名TLS是部分解决方案(它能在Android上工作吗?)


因为用户将在同一个LAN中,我可以假设他们将坐在同一个LAN中。因此,他们可以“物理”身份验证自己,例如共享密钥或部分密钥(PIN)?

Q:“我如何建立安全连接”-A:“他们可以“物理”身份验证自己”-如果您有安全的密钥交换方式,您可以使用您喜欢且可用的任何加密方案/算法。-我觉得您的问题中缺少了一些重要的细节。在实体身份验证、密钥完整性和新鲜度以及(明确的?)密钥身份验证和转发保密性方面,您希望实现哪些目标?如果您认为TLS(带有客户端身份验证)不适合您,那么您将希望了解更通用的密钥建立和身份验证协议。尽管如此,我还是强烈劝阻你不要制定自己的协议。关于:TLS vs.Android-@HannoBinder,这只是部分正确。鉴于协议设计中的一个主要安全性假设是“任何对手都能够获得在协议的任何足够旧的前一次运行中使用的会话密钥的值”(指实际有效载荷),因此绝对不能将预共享秘密直接用作加密方案的加密密钥。更重要的是,这样做会破坏协议的任何其他安全目标,并使参与者面临众多攻击(重播等)。这只能通过使用健全的密钥建立协议来防止。关于TLS的另一个评论是:TLS不需要一个“实时”服务器作为中央证书颁发机构。实际上,可能需要一个证书和签名机构,以便证书可以作为预先共享的秘密,但从协议的角度来看,这不是协议的一部分。在更大的环境中,证书撤销可能是一个需要解决的问题。