김 Dotcom의 코더 우리가 말하는하더라도 메가의 암호화에 대한 해킹 – 사실 “영원한 베타”스타일

김 Dotcom의 새로운 파일 공유 저장 벤처, 메가은 불법 복제에 대해 조치를 취할 실패의 비난에서 자신을 보호하려고합니다.

그것은 보이지 않는 않으며 실제로 당신이 업로드 한 무엇을 말할 수 있는지 확인하기 위해 암호화를 사용하면 않습니다.

그게 당신 (메가 자신의 직원을 포함한 다른 사람이, 당신의 파일을 뒤져 할 수 없습니다)에 대한 개인 정보 보호 및 메가를위한듯한을 제공합니다 (의 메가 자신의 직원을 포함한 다른 사람들은, 심지어 파일이 될 수 정확히 알 수 없습니다.)

하지만 그 약속을 제공하기 위해, 당신은 암호화 권한을 얻을 수 있습니다.

우리가 같이 어제 설명 , 초기 징후는 메가의 코더는 이렇게하지했다고했다 : 우리는 에 대해 쓴 불필요 암호 사전이 가능한 공격하는, 엔트로피 (임의성), 중복 제거 및 메가의 가입 이메일에 저조한 선택한 데이터의 사용과 문제.

해킹 그룹의 연구자 fail0verflow는 전체 서비스 작업을 만드는 자바 스크립트 코드를 인증 할 수있는 결함이 해쉬 함수의 사용 : 이후 또 다른 암호화 오류를 썼다.

나는 간단히 설명하려고합니다.

당신은 안전한 사이트가 암호화를 구동 자바 스크립트 코드 (또는 아마도 특히)를 포함하여, HTTPS를 통해 모든 콘텐츠를 제공 할 것 같군요.

메가은 HTTPS를 사용하지만, 돈을 절약 할은 1024 비트 RSA 키를 사용하여 분산 콘텐츠 전달 네트워크에서 '저렴한'서버에서의 자바 스크립트의 대부분을 제공하고 있습니다.

→ 짧은 RSA 키가 적은 CPU 전원을 필요로하므로 특정 지출에 대한 더 많은 성능을 얻을. 그러나 분산 네트워크는 더 많은 서버를 의미하고, widepsread 키 분배를 필요로하므로 손상의 위험을 증가시킵니다.

전반적인 보안을 마련하기 위해 메가는 2048 비트 키를 사용하여 중앙 서버, "싼 좌석"에 호스팅되는 콘텐츠에 대한 암호화 해시 목록에서, 최대 즐기실 수 있습니다. 이러한 중앙 집중식 서버는 해당 해시를 확인하는 데 필요한 암호화 코드를 제공합니다.

당신은 네트워크의 낮은 보안 부분에서 무단 스크립트를 제공하기 위해 2048 비트 보호 서버와 1024 비트 보호 서버를 손상 할 것을 의미한다.

얘! 보안 케이크를 가지고 있지만 그것을 제공하는 적은 금액을 지불 할 수 깔끔한 방법입니다.

어제 그러나, fail0verflow 암호 코드를 문서화는 높은 보안 서버에서 최대 하였다.

낮은 보안 서버에서 오는 자바 스크립트를 인증하는 데 사용되는 해시 코드는 아래의 기능 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 VAR I = s.length &amp; -16)에 대한 <br /> [(I &gt;&gt; 2) &amp; 3] ^ = s.charCodeAt은 (i) &lt;&lt; ((7 I &amp; 3) &lt;&lt; 3); <br /> 경우 = aes.encrypt (A) ((I &amp; 15)!); <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-맥 보호되지 않습니다. 당신이 키를 알고있는 경우 당신은 위조를 만들 수 있습니다. </li><li style=’font-size:95%;’> <tt>H에</tt> 사용되는 키는 <tt>()</tt> 하드 유선 및 안전하지 않은 것입니다. 거기에 북극성이있어 : 자바 스크립트 배열 <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&gt; 또는 SHA-256은 아마 좋은 생각이 될 것입니다. <tt>fail0verflow 께서</tt> 지적 하셨 듯, SHA-1은 OK 것, 심지어 MD5는 MD5의 알려진 암호화 약점에도 불구하고, 위의 코드보다 더 나은 것입니다. </p><p> 은색 안감은 물론, 클라우드 서비스가 거의 즉시 업데이트를 발행 할 수 있다는 것입니다. 단 사용자가 사이트를 방문 다음에 새 코드를 검색 할 수 있습니다. </p><p> (예, 당신이 옆으로 비켜 서기 기존 변경 관리를 사용자가 선택하지 않기 때문에 경우하거나 업데이트 할 수 있습니다. 그러나 사용자가 업데이트하는 경우 경우 또는 선택하지 않기 때문에, 변경 관리 sluggishness도하지 마십시오.) </p><p> 그리고 확실히 충분히, 오늘 오후에, 메가는 <tt>fail0verflow의</tt> 조언을 촬영했다. </p><p> 1024 비트 암호화로 보호 된 코드를 보호하는 2048 비트 암호화로 보호 된 코드는에 업데이트되었습니다 : </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의 사용됩니다.

메가의 코더로 잘 신속하게 수정을 가져옵니다. 자신의 개인 정보 보호를 위해 메가에 의존하는 경우 그러나, 당신은 아마 그들이 눈 앞에 자신의 암호화 구현의 기본을받지 않은 이유 자신에게 물어 싶습니다.

덧글 우리는 앞의 글에서이 메가의 주요 암호화 필요가 자기 보존이라는 합리적인 제안을 제공 :는 사용자의 데이터와 함께 중단 점점을 방지하기 위해 자체듯한을 강화하고 있습니다. 귀하의 개인 정보 보호 및 보안 두 번째 위치에 있습니다.

사실이라면 두 사람 간단한 해결책이 있습니다. 다른 공급자를 사용하거나 메가를 암호화 죽기 전에 데이터를 직접 암호화 : 당신이 하나 또는 두 가지 모두를 선택할 수 있습니다.

사실, 왜 항상 그리고, 자신을 자신의 데이터를 암호화하지? 그것은 결국 데이터입니다.