Skip to main content

syyim

[번역] 마이크로소프트가 SHA-1 업데이트를 포기한 이유?

원문 링크: SMBlog — 19 February 2019

마이크로소프트는 업데이트 프로세스에서 SHA-1 해시를 제거하기 위한 패치를 준비 중입니다. SHA-1을 제거하는 것 자체는 아무런 문제가 없지만 그 이유는 매우 흥미로울 수 있습니다.

[역자 주]
취약한 SHA-1 알고리즘을 제거하기 위해 Windows 7, 2008에 필수 업데이트가 제공됨

SHA-1은 암호학적 해시 함수입니다. 즉, 사이즈의 제한 없이 파일을 입력받아 20 바이트를 출력합니다. 암호학적 해시 함수의 본질적인 속성은 (이론적으로 분명하지는 않지만) 파일이 동일하지 않으면 동일한 해시값을 가지면 안 된다는 것입니다.

SHA-1은 더 이상 그 속성을 가지고 있지 않습니다. 우리는 그것을 약 15년 동안 알고 있었습니다. 하지만 문제점을 정의하는 것은 중요합니다. SHA-1은 충돌 공격에 취약합니다. 공격자는 동일한 SHA-1 해시값을 갖는 (즉 충돌이 발생하는) 두 개의 파일을 동시에 만들어낼 수 있습니다. 그러나 기존 파일과 그 해시를 알고 있다 해서 동일한 해시값을 갖는 두 번째 파일을 생성하는 것은 불가능하다고 모두가 알고 있습니다.이 공격을 역상 공격이라 부르며, 훨씬 더 심각한 (세 번째 유형의 공격, “제 2 역상 공격”은 생략합니다.)

일반적인 이벤트 순서에 따라 마이크로소프트의 누군가가 업데이트 파일을 준비합니다. 이때 디지털 서명 알고리즘으로 SHA-1이 흔하게 사용됩니다. 만약 누군가 가짜 업데이트를 만들려는 사람이 있다면 서명 알고리즘을 깨뜨리거나, 합법적인 업데이트와 동일한 해시값을 갖는 가짜 업데이트 파일을 만들어내야 합니다. 하지만 이는 역상 공격이며, SHA-1은 여전히 이 공격에 대해 안전하다고 여겨집니다. 그렇다면 이 가짜 업데이트는 쓸모없는 시도 였을까요? 아니요, 완전히 그렇지는 않습니다. 여전히 위험합니다.

SHA-1은 충돌 공격에 취약합니다. 즉, 두 개의 업데이트가 동시에 준비된 경우 하나는 문제없지만 다른 하나는 악의적인 업데이트가 될 수 있습니다. 다시 말해 여기서 위협 모델은 부패한 내부자입니다. 마이크로소프트는 SHA-1을 사용하지 않음으로써 직원의 잘못된 행동으로부터 고객을 보호합니다.

어쩌면, 이것은 아마도 단순한 집안 문제로, 마이크로소프트가 코드 베이스에서 SHA-1 사용을 제거 함으로서 사용을 막을 수 있습니다. 이 알고리즘은 25년이나 되었으며 심각한 약점으로 가지고 있고, 이미 SHA-1을 사용하는 시절은 지났습니다. 그러나 다크 사이드로 눈을 돌리는 내부자가 매우 위험할 수 있다는 것을 인식해야 합니다.

이 글을 작성한 시점으로부터 몇 개월 전 회사에서 업데이트 인증서 SHA-1 알고리즘 충돌 공격으로 인한 피해가 있었고 이를 이해하는데 이 글이 도움이 되었습니다. - 단 이는 원격 해킹으로 인한 피해 였음