首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP通信的加密?

TCP通信的加密?
EN

Security用户
提问于 2018-10-05 06:56:22
回答 3查看 3.3K关注 0票数 0

我使用的是一个使用手动配置TCP端口与Raspberry Pi设备通信的exe应用程序。应用程序将从端口1234发送数据到Raspberry,后者正在监听19000。但通讯没有加密。有人能建议我如何在这两个端口之间进行加密吗?

我浏览了一下,并得到了一个想法,我可以通过TCP实现SSL。如果有人有更好的解决方案,我很想听听。

EN

回答 3

Security用户

发布于 2018-10-05 10:48:45

我想了一下,我可以在TCP上实现SSL。

在TCP上使用SSL/TLS是个好主意。

它是一种建立起来的、众所周知的、经过广泛研究的协议,在协议中可以找到大量的库,并存在大量的文档。而且,适当的使用它提供了强大的加密和保护,防止被动嗅探和主动的中间人攻击。

但是,请确保使用最近的TLS库,并遵循当前和广泛发布的文档,以便实际使用TLS提供的安全性。此外,不要试图通过禁用证书验证等来“欺骗”--尽管它看起来会工作,但通常是不安全的。

考虑到您在这方面的经验不多,您不应该尝试创建您自己的保护层,因为您很可能会引入一些您不会意识到的问题-请参见我们为什么不自己动手呢?

票数 6
EN

Security用户

发布于 2018-10-05 11:11:16

您没有提到所涉及的操作系统(我想是rPi上的Linux ),也没有提到您是否对修改代码感到满意。

虽然您可以在客户机和服务器中应用加密,但在这两个设备之间实现一个隧道要简单得多--您可以将当前客户端指向客户端主机上的一个新服务,并限制服务器侦听在rPi上运行的补充服务。在这两个新服务之间,连接是加密的。

对于使用新服务的技术,有很多选择,但最实际的选择是基于TLS或ssh。对于TLS,您可以使用眩晕或stud (在每个端配置不同的相同服务)用于ssh,您可以从ssh客户机(如putty/plink/ssh )到rPi上的opensshd使用端口转发。在这两种情况下,您都应该将rPi上的防火墙配置为仅接受来自本地主机的端口19000上的连接。

这两种方法都依赖于密钥对,但是基于TLS的机制有更多的选择和潜在的复杂性。OTOH,如果您使用的是一个MSWindows客户端,那么这个令人震惊的用户界面可能比putty或plink更容易使用。

票数 1
EN

Security用户

发布于 2018-10-05 07:55:11

嗨,扎帕和惠康,

我的建议是,您应该从一个简单的算法(例如RC4 )开始,当您正在学习时,您可以以TLS作为最终目标来改进解决方案和目标。根据您正在使用的语言,我将建议您使用库,使您的加密更容易,没有意义实现AES由您自己。作为您可以使用的库,我建议您从openssl和start开始,这两个库在大多数语言中都得到支持,而且您可以很容易地在程序中进行集成。

票数 -3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/195111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档