오래된 해시 알고리즘 `SHA-1` 시대는 끝났다

22년 전 만들어진 해시 알고리즘 `SHA-1(Secure Hash Algorithm-1)`의 시대가 끝났다. 암호학자들이 이론적 위험성을 경고한 후 구글이 실제로 보안성을 깨트렸다.

구글은 최근 네덜란드 암스테르담 국립수학전산학연구소(CWI)와 함께 SHA-1으로 검증한 값이 똑같은 PDF파일 두 개를 만들었다. SHA-1이 더 이상 안전한 해시 알고리즘으로 역할을 할 수 없다는 의미다.

ⓒ게티이미지뱅크
ⓒ게티이미지뱅크

구글 크롬팀은 2014년부터 TLS 인증서에 쓰이는 SHA-1이 안전하지 않다며 SHA-256이나 SHA-3으로 전환을 강조했다. 구글이 SHA-1 충돌을 실제로 입증하며 이 같은 주장에 힘이 실린다.

우리가 평상시 사용하는 문서 압축 프로그램(Zip, 알집 등)은 비밀번호를 넣으면 압축이 풀리는 양방향 방식이다. 이와 달리 SHA-1은 일방향 암호알고리즘이다. 특정 문서를 압축해 해시 값을 만드는데 풀리지는 않는다.

예를 들어, A문서를 SHA-1으로 압축하면 B가 된다. 문서는 압축 때 마다 다른 형태로 압축된다. 구글은 C문서를 SHA-1으로 압축했는데 B가 되는 현상을 찾아냈다. A와 C는 다른 문서인데 해시값은 B로 같다. 해시 함수는 절대로 같은 해시를 형성하면 안 된다. SHA-1에 사형선고가 내려진 이유다.

SHA-1 충돌 인포그래픽(자료:구글 블로그)
SHA-1 충돌 인포그래픽(자료:구글 블로그)

공격자는 이런 충돌 현상을 이용해 시스템을 속일 수 있다. 완전히 다른 두 개 보험 계약을 바꿔치기하는 식이다. A계약서를 B로 압축해 DB에 넣어뒀는데 해커가 C계약서로 바꿔치기 하는 식이다. 해시 값이 같아 시스템은 알아채지 못한다. 해커가 악성코드를 SHA-1으로 압축한 후 정상 프로그램으로 바꿔치기 하는 방법도 가능하다. SHA-1은 전자서명, HTTP인증, 버전 관리, 백업 시스템 등에 쓰인다.

미국 국가안보국(NSA)은 1995년 SHA-1을 만들었다. SHA-1은 TLS/SSL(Transport Layer Security/Secure sokect Layer), IPSec 등 많은 보안 프로토콜과 프로그램에 사용된다.

구글은 클라우드에 있는 컴퓨터를 동원해 922경 3372조 368억 5475만번 이상 연산을 수행해 SHA-1 충돌을 규명했다. 컴퓨팅 파워 증가로 각종 암호 알고리즘 수명은 점점 단축된다.

중국 산동대 암호학자 왕 시아오윤(Wang Xiaoyun) 교수팀은 2005년 8월 이론적으로 SHA-1 위험성을 지적했다. 미국 정부는 2001년과 2015년에 각각 새로운 표준인 SHA-2와 SHA-3를 만들어 사용을 권고했다.

김승주 고려대 정보보호대학원 교수는 “최근 컴퓨터 속도가 빠르게 발전해 기존 암호 알고리즘이 설계 당시 예측과 다르게 신속하게 해독된다”면서 “양자컴퓨터까지 현실화된다면 이런 현상은 더욱 두드러질 것”이라고 말했다. 김 교수는 “우리나라도 암호안전성 분석기술에 보다 많은 투자해 취약점을 미리 파악하고 대비해야 한다”고 강조했다.

SHA-1 충돌 (자료:구글 블로그)
SHA-1 충돌 (자료:구글 블로그)

김인순 보안 전문기자 insoon@etnews.com