심각한 보안: MD5는 $600,000의 PlatoBlockchain Data Intelligence에 비해 유해한 것으로 간주됩니다. 수직 검색. 일체 포함.

심각한 보안: 유해한 것으로 간주되는 MD5 – $600,000

프랑스 데이터 보호 규제 기관인 CNIL(Commission Nationale de l'Informatique et des Libertés), 에너지 회사인 Électricité de France(약칭 EDF)는 벌금 EUR 600,000 (약 $ 600,000).

법적 선언은 그러한 방식으로 다소 길고 (최소한 변호사가 아닌 경우) 언어적으로 복잡합니다. 즉, 문제의 모든 내용을 이해하려면 프랑스어에 대한 합리적인 능숙도가 필요하지만 전반적인 경우 네 가지 위반 사항으로 요약됩니다.

처음 세 가지는 고객과의 일반적인 데이터 관련 상호 작용과 관련이 있으며 다음을 다룹니다.

  • 상업 마케팅 이메일 보내기 적절한 동의 없이.
  • 데이터 수집 무엇 또는 이유를 명확히 하지 않고.
  • 요청을 안정적으로 처리하지 않음 고객이 데이터를 보거나 삭제하도록 요청한 경우.

그러나 우리의 관심을 끌었던 것은 마지막 불만입니다. Sur le manquement à l'obligation d'assurer la sécurité des données.

영어로 이것은 느슨하게 다음과 같이 번역됩니다. 데이터를 안전하게 저장하지 못함, 매우 구체적으로 비밀번호의 안전하지 않은 처리와 관련이 있습니다.

유해한 것으로 간주되는 MD5

무엇보다도 EDF는 승인된 해싱 알고리즘을 사용하여 비밀번호를 솔팅한 다음 해싱한다고 주장했지만 EDF는 25,000년 5월까지 단일 MD2022 해시로 XNUMX명 이상의 사용자 비밀번호를 "보안"했습니다.

Naked Security에서 여러 번 들었을 것입니다. 암호의 암호화 해시 즉, 해시를 재계산하고 원래 선택한 비밀번호의 해시와 비교하기만 하면 비밀번호가 표시될 때 유효성을 검사할 수 있습니다.

해시가 일치하면 실제 암호를 저장할 필요 없이 암호가 일치한다고 안전하게 추론할 수 있습니다.

제시된 암호는 메모리에 일시적으로만 보관하면 되며 해시가 계산되는 즉시 폐기할 수 있습니다.

해싱 알고리즘이 암호학적으로 안전한 것으로 간주되는 한 유용하게 "역순으로 실행"될 수 없으므로 암호 자체에 대한 정보를 공개하기 위해 해시에서 역방향으로 작업할 수 없습니다. (이러한 종류의 해시는 전문 용어로 다음과 같이 알려져 있습니다. 단방향 기능.)

마찬가지로, 적절한 해싱 알고리즘은 알려진 해시로 시작하여 원하는 해시를 생성하는 일부 입력 값(반드시 원래 암호가 아닌 모든 입력)을 고안하는 것을 방지합니다.

운이 좋을 때까지 입력 후 입력을 시도해야 합니다. 128비트 해시의 경우 실행 가능한 공격이 되기에는 너무 오래 걸립니다. (동일한 출력을 가진 여러 입력을 알아낼 수 없도록 하는 안전 예방책이 있는 해시는 충돌 방지.)

그러나 MD5는 아시다시피 충돌에 심각한 문제가 있습니다. 직계 계승자 SHA-1 (이 두 해시는 모두 1990년대 초에 나왔습니다.)

요즘에는 SHA-256 및 SHA-512와 같이 알고리즘을 대체하는 데 쉽게 사용할 수 있는 유사하지만 여전히 안전한 대안이 있다는 점을 감안할 때 두 알고리즘 모두 어디에서나 누구에게나 어떤 목적으로 사용하는 것이 권장되지 않습니다.

MD5 해시는 128비트 또는 16바이트 길이입니다. SHA-256 및 SHA-512의 길이는 각각 2배 및 4배입니다. 그러나 이 여분의 해시 길이만이 그것들을 더 적합하게 만드는 것은 아닙니다. MD5에 비해 주요 이점은 충돌과 관련하여 알려진 특정 문제가 없기 때문에 암호화 안전성이 일반적으로 의심스러운 것으로 간주되지 않는다는 것입니다.

염장 및 스트레칭

요컨대, EDF와 같은 에너지 분야의 거대 기업은 말할 것도 없고 어떤 회사도 암호 보안은 고사하고 암호화 목적으로 MD5를 사용할 것이라고 기대하지 않을 것입니다.

그러나 더 나쁜 것은 부족이었습니다. 염장, 각 사용자에 대해 무작위로 선택된 데이터 청크가 해시가 계산되기 전에 비밀번호와 혼합되는 곳입니다.

솔트를 사용하는 이유는 간단합니다. 잠재적인 암호의 해시 값을 미리 계산한 다음 공격에 사용할 수 없도록 합니다.

솔팅 없이 사용자가 비밀번호를 선택할 때마다 123456, 사기꾼은 해시가 무엇인지 미리 알고 있습니다.

사용자가 다음과 같이 더 적합한 비밀번호를 선택하더라도 34DF6467!Lqa9, MD5 해시가 7063a00e 41866d47 f6226e60 67986e91.

미리 계산된 암호 또는 부분적으로 계산된 암호 목록이 충분히 긴 경우(전문 용어로는 무지개 테이블) 운이 좋을 때까지 수조 번의 암호 조합을 시도하는 대신 테이블을 통해 암호를 복구할 수 있습니다.

솔팅은 완전하고 미리 계산된 레인보우 테이블이 필요함을 의미합니다. 모든 사용자를 위해 (테이블은 솔트 + 암호의 조합으로 결정됨) 어쨌든 솔트를 복구할 때까지 각 레인보우 테이블을 계산할 수 없습니다. 이 작업은 몇 주가 걸리고 디스크 공간의 테라바이트를 차지할 수 있습니다.

하지만 해야 할 일이 더 있습니다.

미리 계산된 "해시 사전"을 사용할 수 없도록 솔트를 포함하고 SHA-512와 같은 신뢰할 수 있는 암호화 알고리즘을 사용하더라도 해시 데이터베이스를 획득한 공격자가 하나의 해시 계산만으로도 충분히 빠릅니다. 여전히 초당 수십억 개의 가능한 암호를 시도하거나 그 이상 시도합니다.

그래서 당신은 스트레칭 또한 초기 암호를 소금에 절인 다음 루프에서 해싱 알고리즘을 통해 입력을 수천 번 이상 전달하므로 공격을 시도하려는 사기꾼에게 훨씬 더 많은 시간이 소요됩니다.

계산 5+5+5+5+5+5를 6×5로 바꾸는 지름길로 단일 곱셈을 사용할 수 있는 반복 덧셈과 달리 반복되는 해시에는 지름길이 없습니다. 입력을 1000번 해시하려면 암호화 계산 핸들을 1000번 "회전"해야 합니다.

MD5 문제뿐만 아니라

아이러니하게도 EDF는 MD25,800로 해시된 암호가 5개뿐이고 대신 대부분 SHA-512를 사용한다고 주장했지만 여전히 저장된 해시를 솔팅하거나 늘리지는 않았습니다.

규제 기관은 11,200,000개의 비밀번호가 올바르게 솔트 및 해시 처리되었지만 그럼에도 불구하고 MD2,400,000 또는 SHA-5를 사용하여 직접 한 번만 해시된 비밀번호는 512개라고 보고합니다.

분명히 EDF는 이제 암호 저장 공간을 완전히 확보했지만 어쨌든 회사는 EUR 600,000의 벌금을 물었고 향후 XNUMX년 동안 CNIL의 "naughty step"에 온라인으로 공개적으로 등록될 것입니다.

판결이 부실한 해싱과 관련이 있고 EDF가 처음에 나열된 다른 세 가지 데이터 보호 위반에 대해 답변할 필요가 없었다면 어떤 벌금이 부과되었을지 확신할 수 없습니다…

… 하지만 잘못된 암호화 선택이 여러 면에서 비용을 초래할 수 있음을 보여줍니다!

무엇을해야 하는가?

고객의 비밀번호 저장 안전하게!

솔팅 앤 스트레치의 추가 계산 비용을 선택하여 개별 사용자가 로그인할 때 불편을 겪지 않으면서 잠재적인 공격자의 공격 속도가 몇 배 증가하도록 할 수 있습니다.

간단한 원샷 해시로 저장된 암호의 10%를 추출하는 데 일주일이 걸릴 수 있는 암호 복구 공격은 각 시도 암호를 계산하는 비용을 200배 더 어렵게 만들면 이론적으로 10,000년(10,000주)이 걸립니다. .

우리의 읽기 훌륭한 설명 기사 바로 이 주제에 대해:

요컨대, 다음을 권장합니다. PBKDF2 "스트레칭" 알고리즘 SHA-256 코어 해시로, 사용자별 랜덤 salt of 16 bytes (128비트) 이상.

이것은 CNIL의 최근 판결의 권고와 일치합니다.

CNIL은 PBKDF2 반복 횟수에 대한 조언을 제공하지 않지만 기사에서 볼 수 있듯이 조언(2022년 XNUMX월)은 다음을 사용하는 것입니다. 200,000 or more. (계산 능력의 증가를 따라잡기 위해 정기적으로 루프 수를 늘릴 수 있습니다.)

PBKDF2를 사용하지 않으려면 알고리즘을 읽어보는 것이 좋습니다. bcrypt, scryptArgon2 현명한 선택을 할 수 있도록 도와드립니다.

장난 꾸러기 암호 단계에 걸리지 마십시오!


타임 스탬프 :

더보기 노출 된 보안