구글은 올해 초부터 안전한 인터넷 환경 구축을 목표로 삼고 개인, 기업, 정부 모두 홈페이지에 https 및 최신 암호화 기술을 도입해야 한다고 적극 홍보하기 시작했다. 크롬 56 버전부터 https를 적용하지 않고 개인정보를 입력 받는 홈페이지에 '안전하지 않음'이라고 경고창을 띄우는 것 역시 이러한 안전한 인터넷 환경 구축의 일환이다.
이번에는 https의 핵심 기술 가운데 하나인 SHA(Secure Hash Algorithm, 안전한 해시 알고리즘)의 보안 취약점에 대한 경고를 하고 나섰다. 구글은 자사의 보안 블로그(https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)를 통해 과거의 표준 암호화 기술인 SHA-1에서 '암호화 해시 충돌(cryptographic hash collision)' 기법을 이용해 통신으로 주고받는 내용물을 가로챌 수 있는 보안 취약점이 확인되었다고 23일(현지시각) 발표했다.
![]() |
암호화 해시 충돌<암호화 해시 충돌 (사진=구글 시큐리티 블로그)> |
SHA란 서버(홈페이지)와 클라이언트(사용자)가 데이터를 주고받을 때 중간에 훔쳐볼 수 없도록 통신 데이터를 암호화하는 기술이다. 미국 국가안보국(NSA)이 1993년 최초로 설계했고, 이후 인터넷 보안 표준으로 채택되어 널리 이용되고 있다. 1995년 후속 기술인 SHA-1이 발표되었고, 2001년 SHA-1을 대체하기 위해 SHA-256, SHA-384, SHA-512가 공개됐다. SHA-1에 이론상으로 보안 취약점이 존재했기 때문이다.
하지만 그럼에도 불구하고 시중의 상당 수 홈페이지가 SHA-1을 활용해 암호화를 진행했다. 이론상에서만 존재하는 보안 취약점이라 실제로 보안이 취약하지는 않았기 때문이다.
이번 구글의 발표는 그동안 이론상으로만 존재했던 SHA-1의 보안 취약점이 실제로 존재함을 입증한 것이다. 암호화 해시 충돌 기법을 이용하면 해커가 중간에 데이터를 가로채 파일을 위변조할 수 있다. 구글은 실제로 SHA 해시 코드는 동일하지만 내용물이 다른 2개의 PDF 파일을 공개해 이 기법을 통해 해커가 침입할 수 있음을 증명했다.
이러한 문제를 파악한 후 구글은 지메일과 지스위트(구글의 업무용 SaaS)를 암호화해 자사 서비스에서 해커가 암호화 해시 충돌을 이용할 수 없게 했고, 홈페이지에 문제가 있는지 파악할 수 있도록 무료 검출 서비스(http://shattered.io/)도 공개했다. 구글은 90일 후 암호화 해시 충돌에 이용할 수 있는 PDF 파일을 생성하는 코드를 공개하겠다고 함께 밝혔다.
구글은 최신 버전 크롬을 통해 보안 취약점이 실제로 발견된 SHA-1을 활용해 암호화된 홈페이지는 '더 이상 쓸모가 없는(obsolete)' 기술을 활용해 암호화된 페이지라고 표시하고 있다. 반면 SHA-256을 활용해 암호화된 홈페이지는 '강력한(Strong)' 기술을 활용해 암호화된 페이지라고 표시한다. 특정 홈페이지에 접속한 후 크롬 개발자 메뉴 > 시큐리티 > 인증서 확인 항목에서 이러한 문구를 발견할 수 있다.
![]() |
<SHA-1을 이용하는 페이지(상), SHA-256을 이용하는 페이지(하)(출처=IT동아)> |
구글의 이러한 발견은 이미 작년 말부터 업계에 널리 알려졌던 것으로 보인다. 제 3자 인증을 발급하는 보안 기관들은 작년을 기점으로 더 이상 SHA-1을 활용한 제 3자 인증서를 발급하지 않고, SHA-256을 활용한 제 3자 인증서를 새로 발급받아야 한다고 공문을 발송한 상태다.
물론 당장 SHA-1를 이용한다고 해서 엄청난 보안 취약점이 생기는 것은 아니다. 하지만 실제로 보안 취약점이 발견된 SHA-1을 계속 이용할 수는 없는 노릇이다. 22년 동안 이용했던 구형 암호화 기술을 이제 놓아주고 현재 널리 이용되는 보다 안전한 암호화 기술을 이용해야 할 시점이다.
동아닷컴 IT전문 강일용 기자 zero@donga.com
이 기사의 카테고리는 언론사의 분류를 따릅니다.
기사가 속한 카테고리는 언론사가 분류합니다.
언론사는 한 기사를 두 개 이상의 카테고리로 분류할 수 있습니다.
언론사는 한 기사를 두 개 이상의 카테고리로 분류할 수 있습니다.