我被要求在三家公司之间开发一个高度安全的B2B文件传输系统。
VPN不是一个选项,他们 更喜欢 使用80,443等公共端口,因此不需要额外的防火墙配置。
我发现像oftp2和as2这样的解决方案足够了。虽然,在我决定之前我还有一些问题:
我主要担心的是避免任何可能的明确数据暴露给外部世界。
所有的想法都受到赞赏。
提前感谢。
答案 0 :(得分:0)
SSL的主要问题是证书验证。默认情况下,所有与过多CA签名的目标域匹配的证书都被视为有效。如果您是偏执狂,则应直接根据配置中存储的证书检查连接上使用的证书。
使用DHE握手实现完美的前向隐私也很不错,但.net中的内置SSL API并没有提供强制执行的方法。因此,您可能会或可能不会获得DHE,具体取决于Windows和.net的版本。
另一个不错的选择是通过SSH隧道化某些东西。例如,SCP是一个现有的文件复制实用程序,可以执行此操作。
答案 1 :(得分:0)
如果您使用像AES这样的分组密码来加密数据并使用RSA加密发送结果来完成这项工作。对于RSA,您使用他们的“公钥”进行加密,您可以将其发送给您带外(Courier服务),然后使用他们的私钥解密。这是完全安全的,因为两家公司都保密他们的私钥。你有3个公司的钥匙对。额外的AES层是你真的很偏执,真的很想确保即使有人拿到了私钥,他们仍然无法读取数据。此外,您应该对所有消息进行签名:使用您的私钥发送加密消息(AES)的其余部分的散列,然后收件人可以使用您的公钥解密,并自己散列数据,如果他们的散列与您的散列不同在它被解密之后被附加然后它不是来自你。这可以防止人在中间,中间的域等拦截。如果他们同时获得公钥和私钥以及AES密码,这只会让某人干涉......此时估计的破解时间超过20亿年,使用2048位RSA,所以我认为你很安全。
答案 2 :(得分:0)
从技术上讲,如果端口22属于列入白名单的端口,则可以始终通过ssh执行scp / rsync。如果没有,您可以在80/443等上运行ssh守护程序。
要回答您的问题,是的https / SFTP足够安全,如果通过加密频道完成,则为rsync(请参阅http://troy.jdmz.net/rsync/index.html)
你可以探索的另一件事是stunnel(http://www.stunnel.org/)
我可以想到不止一种方法。完全取决于您的服务器操作系统和您可能拥有的其他限制。
答案 3 :(得分:0)
好的,您不希望将文件内容与三方之间交换的文件公开给其他任何人。
有两件事需要考虑:
1)保护运输。这里,文件通过加密链接发送。因此,您基本上将正常位放入加密的隧道中,以保护任何人免受链接的窥探。这通常使用SFTP进行公司到公司的通信,并在发生任何转移之前在带外交换和验证密钥。
2)保护文件。这里,每个文件都是独立加密的,然后传输到目的地。您在文件离开网络之前对文件进行加密,然后在文件到达目的地后对其进行解密。这通常使用PGP进行公司到公司的通信,并且在发生任何转移之前,PGP密钥在带外交换和验证。
如果您保护运输,您只需通过受保护的管道发送数据,链接公司。收到文件后,它不加密(它只通过管道加密)。如果您保护文件,则您自己是块加密文件,因此它更像是加密和解密文件的过程;只有在接收端有PGP密钥的实际进程/系统才能解密文件。
那么,你想做什么?这是一个风险决定。如果您只关心某人拦截非公司A或B(或C)的文件内容,则需要保护传输(SFTP等)。如果您担心独立保护每个文件并确保只有接收端的特定进程可以解密文件,您需要保护文件。如果数据非常敏感且风险很高,您可能希望同时执行这两项操作。
答案 4 :(得分:0)
在开发自己的文件传输程序的安全问题上已经提出了一些非常好的观点。此处涉及软件安全性,网络安全性和用户身份验证安全性问题。了解所有各种加密算法和安全规则需要数年时间才能掌握,并且开发团队只需跟上数字安全标准和法律中的所有复杂变化,这是一项耗时的工作。
另一种选择是,有几种非常好且价格合理的托管文件传输(MFTP)解决方案已经开发并解决了所有这些安全问题。他们还掌握了文件传输管理的工作流程,使IT人员更容易完成此过程。我过去几年使用的这些MFTP解决方案之一是Linoma Software's GoAnywhere产品。它为我们的团队节省了数月的时间和头痛,使我们能够专注于我们的核心业务。
我希望这会有所帮助......