金Dotcom公司的黑客攻击上万的加密技术,即使在我们说话的编码器 – 真正的“永久测试”的风格

金Dotcom公司的新的文件共享存储企业, 兆丰 ,要保护本身不采取行动,打击盗版的指控。

它是通过使用加密技术,以确保它不看,确实看不出来,你已经上传。

这为您的隐私(包括兆丰自己的工作人员,其他人,不能窥探你的文件)和不可否认性,为万(万自己的工作人员,其他人,包括什至不能告诉你的文件可能)。

但是,为了兑现这一承诺,你必须得到加密的权利。

正如我们解释昨日 ,早期的迹象是,Mega的编码器已没有做过这样:我们写的有关问题与 (随机性), 重复数据删除不佳,所选择的数据在Mega的的注册电子邮件的,不必要的制作密码字典攻击的可能。

研究人员随后在黑客团体fail0verflow写了另一种加密错误:一个错误散列函数的使用进行身份验证的JavaScript代码,使整个服务工作。

我会尽量简短地解释一下。

你会希望一个安全的网站提供的所有内容通过HTTPS,包括(或许特别是)的JavaScript代码驱动器的加密技术。

兆丰使用HTTPS,但为了省钱,它提供了最“便宜”的服务器在分布式内容交付网络,使用1024位的RSA密钥,它的JavaScript。

→短的RSA密钥需要较少的CPU电源,让您获得更多的表现为一个给定的支出。但是,分布式的网络意味着更多的服务器,并要求widepsread密钥分配,所以你的风险增加的一个妥协。

为了提高整体安全性,兆丰也提供了,从中央服务器,使用2048位密钥,加密哈希列表中的“廉价席位”承载的内容。这些集中式服务器还提供了加密代码,需要验证这些哈希。

这意味着,你将不得不妥协的2048位受保护的服务器 1024位保护的服务器,以便为未经授权的脚本,从低安全性的网络的一部分。

罗!有您的安全蛋糕,但要提供一个巧妙的办法。

然而,昨天,fail0verflow 记录的加密代码提供从较高安全服务器。

用于验证的JavaScript从低安全服务器的哈希代码的函数h()如下:

<br /> function h(s) <br /> { <br /> var a = [0,0,0,0]; <br /> var aes = new sjcl.cipher.aes([111111,222222,333333,444444]); <br /> s += Array(16).join('X');</span> </p> <p> (I = s.length和-16 – ){ <br /> [(ⅰ&gt;&gt; 2)&3] ^ = s.charCodeAt(ⅰ)&lt;&lt;((7-i及3)&lt;&lt; 3); <br />如果((&15))= aes.encrypt(一); <br /> } <br />返回; <br /> } <br /> [/源代码] </p><p>不要担心,如果你不说话。所有你需要知道的是这样的: </p><ul><li style=’font-size:95%;’> <tt>函数h()</tt>是公知的算法作为一个键控<a href="http://en.wikipedia.org/wiki/CBC-MAC&quot; rel="nofollow">CBC-MAC</a> 。 </li><li style=’font-size:95%;’> CBC-Mac是确保,除非关键是安全的。您可以创建一个伪造的,如果你知道的关键。 </li><li style=’font-size:95%;’> <tt>在H()</tt>使用的密钥是硬有线和不安全。这是正确的:JavaScript数组<tt>[111111,222222,333333,444444]。</tt> </li></ul><p>哎哟。您不能使用CBC的MAC这样的。您需要使用适当的加密哈希。 </p><p> <a href="https://nakedsecurity.sophos.com/2012/10/04/sha-3-hash-competition-concludes-keccak/">SHA-3</a>或SHA-256可能是一个好主意。作为<tt>fail0verflow</tt>指出,SHA-1是“确定”,甚至MD5比上面的代码会更好,虽然MD5的被称为加密的弱点。 </p><p>一线希望,当然,云服务可以发出几乎瞬间。下一次用户访问您的网站只是为新的代码。 </p><p> (是的,你回避传统的变更控制,因为用户不选择是否或何时进行更新。但是,你也避免变更控制的不景气,因为用户没有选择是否或何时更新)。 </p><p> ,果然,今天下午,兆丰采取了<tt>fail0verflow</tt>的建议。 </p><p> 2048位保护的加密代码,可保护1024位保护的加密代码已经被更新为: </p><p> <span class="notranslate"> <br /> function sha256(d) <br /> { <br /> h = new sjcl.hash.sha256(); <br /> for (var i = 0; i &lt; d.length; i += 131072) <br /> h = h.update(d.substr(i,131072)); <br /> return h.finalize(); <br /> } <br />

现在,使用SHA-256用硬接线的密钥而不是CBC-MAC。

Mega的编码器,以良好的工作很快得到修复。但是,如果你是依靠自己的隐私上万,你可能要问自己,为什么他们没有得到他们的加密实现的基本在前场右侧。

我们以前的文章提意见上提供了合理的建议,,Mega的主密码需要的是自我保护:确保自身的不可否认性,以避免随着其用户的数据。您的隐私和安全的排在第二位。

有两个非常简单的解决方案,如果这是真的。您可以选择一个或两个:使用不同的供应商,或自行对数据进行加密之前,你让万对其进行加密。

事实上,为什么不自己的数据进行加密自己,始终呢? ,毕竟这是你的数据。