可以告诉大家你的加密信息吗?

信息安全 加密 密码 tls 朦胧
2021-08-14 17:54:53

我在网上银行系统中有一个帐户,他们有这样的常见问题解答:

<网上银行系统名称>的安全性如何

您查看的每个页面以及在<Online Banking System Name>上提交的任何信息都在客户端计算机和<Online Banking System Name>服务器之间使用 128 位 SSL 加密...

敏感数据被加密

敏感数据(例如客户的<在线银行系统名称>)密码使用单向 160 位哈希加密算法进行加密,该算法将任意长度的输入转换为固定长度的二进制值,这种转换是单向的,即是,给定一个哈希值,重新创建一个会产生这个值的文档在统计上是不可行的......

这是否会使他们的网上银行系统更容易受到恶意攻击?

4个回答

可以告诉大家你的加密信息吗?

这不仅没问题,它实际上是现代密码的设计特征。密码学的整个概念是您可以自由地发布所使用的算法,但必须保密一条特定的信息,称为密钥。

密码使用单向 160 位哈希加密算法进行加密

加密在这里是错误的词——这不是加密;相反,它是散列。加密是一个可逆过程,其中数据的恢复是游戏的目标。然而,散列函数被设计为“单向”,即获取给定输入并产生散列是微不足道的,但很难倒退。

如果你仔细想想,这很有意义——银行不需要知道你的密码;他们只需要知道输入密码的人输入的密码与您最初告诉他们的密码相同。因此,通过存储密码的哈希值,他们可以将未来的密码输入与该密码进行比较,瞧!他们不需要知道密码,但他们可以检查它。

从技术上讲,它们是正确的。160 位建议使用 SHA1 或 RIPEMD160 算法。然而,如果他们只做一个简单的哈希,他们可以做更多的事情来提高安全性:

  • 使用盐值,理想情况下每个密码唯一生成。
  • 使用慢速散列函数,例如 PBKDF2。

他们提供的信息是相对标准的东西。在保护传输中的数据的情况下,128 位 SSL 是一种标准机制,并且知道它正在使用不会给攻击者带来显着的好处。

关于敏感数据的加密,除了他们描述的是散列而不是加密的琐碎之外,密码散列再次是一个标准过程,因此告诉人们他们正在这样做不应该使他们更容易受到攻击。

对于 SSL 安全性:告诉它没有害处,因为无论如何它都是作为连接协议的一部分以明文形式发送的。客户端发送它支持的密码列表,服务器选择一个并将信息发送回客户端;这必然发生任何加密发生之前,因此任何在网络上进行间谍活动的人都可以看到它。请参阅SSL/TLS 规范(消息ServerHello,第 7.4.1.3 节)。

对于密码散列:银行使用的密码散列是在某些机器上体现为代码的信息。几台计算机都有该代码。研究它的人也知道算法;这可能包括相当长的顾问名单、过去的实习生和第三方供应商。如果他们的开发正确,他们的密码散列机制的规范会在各种文档中描述,其中许多可能已经打印出来并放在某个地方的匿名书架上。因此,这些信息不能被认为是真正的秘密。推论:披露它不会造成额外的伤害。

对于一般情况:二战后密码学领域的重大进步是算法密钥之间的密码拆分。这样做正是因为观察到算法的实现(例如Enigma 机器)很难保密——比一小段数据要难得多,如果需要,可以记住并在需要时再次输入。钥匙浓缩了秘密。算法_被认为是公开的,并且设计为使其公开不会降低其安全性。作为(大)奖励,公开披露算法允许外部审查,没有比让许多专家尝试破解它一段时间更好的方法来验证安全性(事实上,根本没有其他方法,当你归根结底)。这就是我们现在拥有精细密码和散列函数的方式:因为 1970 年代初期的人们决定将密码学作为公共研究领域。

这是否会使他们的网上银行系统更容易受到恶意攻击?

不以任何方式 - 他们不披露任何敏感数据,仅描述使用的方法和技术