포스팅 내용

국내외 보안동향

SHA-1, 더이상 안전하지 않아

SHA-1, 더이상 안전하지 않아

Announcing the first SHA1 collision


HASH 함수는 대량의 데이터를 고정 길이의 의사난수를 생성하는 연산기법으로, 브라우저 보안, 코드 라이브러리 관리, 무결성 체크 등 다양한 방면에서 사용되고 있습니다. 하지만 기술이 발전함에 따라, 몇몇 해쉬함수는 더이상 안전하지 않게 되었습니다. 


SHA-1은 채택된지 10년만에, 처음으로 취약점이 제기되었습니다. 그 후 CWI Amsterdam과 Google의 공동 연구 끝에 SHA1 해쉬충돌을 성공시켰습니다. 이는 즉 SHA-1은 더이상 안전한 알고리즘이 아니며, 그렇기 때문에 더 이상 사용되면 안된다는 것을 뜻합니다.


Google은 몇년동안 SHA-1을 폐기해야 한다고 주장해왔으며, 2014년 Chrome 그룹은 SHA-1의 사용을 줄여나가겠다고 밝히기도 했습니다.


해쉬충돌이란 ?


해쉬 충돌이란 두가지의 서로 다른 데이터에서 동일한 해쉬값이 출력되는 것으로, 보안적인 관념에서의 해쉬함수는 서로 다른 데이터들을 입력하였을 때 출력되는 값들은 무조건 다른 값이 출력되어야 합니다. 하지만 해쉬함수의 취약점으로 인하여 다른 데이터를 입력해도 동일한 해시값이 출력되는 경우가 있는데, 이러한 경우를 해쉬충돌이라고 합니다. 


SHA-1의 해쉬충돌


2013년 Marc Stevens는 SHA-1 해쉬충돌의 이론방법에 대한 논문을 발표하였습니다. 그는 특수하게 제작된 "PDF prefix"를 통하여 두 개의 다른 내용을 가진 파일을 생성하였습니다. 하지만 이 파일들은 동일한 SHA-1 값을 갖게 되었습니다. 연구원들은 Google이 가진 기술적 전문지식과 클라우드 인프라를 이용하여 슈퍼 컴퓨터를 제작하였으며, 충돌 결과값을 계산해 냈습니다. 


충돌을 위한 계산 크기는 다음과 같았습니다. 


1) 총 9,223,372,036,854,775,808번의 SHA-1 계산  

2) 공격을 위한 첫번째 단계를 완성하기 까지, 단일 CPU로 6500년 소요

3) 공격을 위한 두번째 단계를 완성하기까지, 단일 GPU로 110년 소요


SHA-1 충돌 위협의 감소


현재 보안연구원들은 더 안전한 해쉬함수, 즉 SHA-256, SHA-3 등을 사용해야 한다고 주장하고 있습니다. Google의 취약점 정책에 따라서 90일 후 코드를 공개할 것이며, 해당 코드를 이용하면 어떤 사람들이라도 다른 PDFs를 통하여 동일한 해쉬값을 생성해 낼 수 있게 됩니다. 이러한 적극적 공격을 막기 위하여, PDF 충돌 기술에 대해 검증하고 있으며, Gmail과 GSuite 사용자의 보안성을 향상시켰다고 밝혔습니다. 또한 일반 사용자들에게 무료로 취약점 검증을 할 수 있는 시스템을 공개하였다고 밝혔습니다. 


더 자세히 보기 





참고 : 

https://shattered.io/static/shattered.pdf

https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

티스토리 방명록 작성
name password homepage