Credit: Michele M. F. (CC BY-SA 2.0)
이런 마이그레이션 작업에 관여한 사람이라면 누구나 알겠지만 운영 중단을 최소화하면서 성공적인 마이그레이션을 달성하기 위해 연구하고 작업하느라 수많은 시간이 소요됐다. 인정하고 싶지 않지만 할 수 있는 최선으로 준비하고 "스위치를 돌린 다음" 결과는 운에 맡겼다고 말하는 편이 더 정확할 것이다. 암호 마이그레이션(Cipher migrations)은 다시 떠올리고 싶지 않을 만큼 힘든 일이었다.
그런데, SHA-2에는 SHA-1과 동일한 수학적 결함이 있고 SHA-3(Secure Hash Algorithm Version 3)에는 그 결함이 없다는 것을 알면서도 SHA-3이 아닌 SHA-2로 전환한 이유는 무엇일까? SHA 암호 마이그레이션을 다시 할 수밖에 없는 이유는 무엇일까.
SHA 암호와 점점 더 정교해지는 공격
SHA-1은 미국 국가안전국(NSA)이 개발해 미국 국립표준기술원(NIST)이 1995년 연방 표준으로 공표했다(FIPS Pub 180-1). SHA-1은 160비트의 메시지 다이제스트를 생성하는데, 암호적으로 완벽하게 안전할 경우, 이는 무차별 대입 공격으로 해시를 크랙하기 위해서는 평균 2의 159승의 공격을 시도해야 함을 의미한다. 지금과 같은 초고속 클라우드 컴퓨팅 환경에서도 2의 159승번 시도가 필요하다는 것은 현실적인 공격이 '간단치 않음(non-trivial)'을 의미한다. '간단치 않다'는 것은 암호화 전문가들이 수학 및 물리학에 대한 현재의 이해로는 불가능하거나 거의 불가능하다는 의미로 사용하는 표현이다.
2005년부터 SHA-1에 대한 여러 가지 이론적 공격이 공개적으로 문서화되기 시작했다. SHA-1 공격이 거듭되면서 2012년에는 이론적으로 SHA-1의 보호 기능이 최대 평균 159비트에서 57.5~61비트 수준으로 낮아졌다. 오랜 시간 동안 이는 단순한 이론적 공격일 뿐이었다. 그러나 시간이 지나면서 이론적 공격이 실제 공격으로 바뀔 것임이 예상됐고 그 예상은 현실화됐다(다만 현실화되기까지 5년이 더 걸렸다).
오래된 암호는 시간이 지나면 깨진다는 것은 모든 암호화에서 예상되는 결과다. 따라서 NIST는 NSA와 함께 누구나 새로 만든 암호를 제안할 수 있는 공개 대회를 정기적으로 개최하고 제안된 암호를 검토해 표준으로 선정한다. 이런 대회에는 보통 몇 년이 걸리고, 세계적인 암호화 전문가들이 참가한다. 최종적으로 새로운 암호 표준이 선정되고 새로운 미국 정부의 공식 필수 암호로 공표된다. AES(Advanced Encryption Standard), SHA-3을 포함한 많은 암호화가 이와 같은 과정을 거쳐 실용화됐다.
2011년 1월(NIST 문서 SP800-131A), SHA-2가 새로운 권장 해시 표준이 됐다. SHA-2는 224비트, 256비트, 384비트, 512비트 다이제스트를 포함해 여러 가지 길이의 해시를 포함하므로 SHA-2 해시 '군(family)'으로 불리곤 한다(각 다이제스트는 관련 NIST 연방 정보 처리 표준 문서에서 논의 및 릴리스됨). 이름만으로는 다른 사람이 사용하는 SHA-2 비트 길이를 알 수 없지만 256비트가 가장 많이 사용된다.
SHA-1에서 SHA-2로의 느린 이동
SHA-1에 대한 성공적인 공격이 이뤄지고 2011년부터 SHA-2가 NIST의 필수 해시 표준이 되었지만 전 세계적으로 대부분의 환경은 2016년까지 SHA-2로 전환되지 않았다. 사람들은 고통에는 즉각적으로 반응하는데 당시에는 공개적인 SHA-1 공격은 이론상의 이야기일 뿐이었기 때문이다.
2015년, 암호화를 사용하는 세계의 주요 개발업체는 고객을 대상으로 2018년 1월 1일까지 SHA-1에서 SHA-2로의 전환을 의무화하기로 결정했다. 이론적인 공격이 조만간 실제로 이어질 것이 확실했기 때문이다. 이런 움직인은 주효했다. 최근 대부분의 기업은 암호화에 의존하는 모든 프로그램 또는 기기를 서둘러 SHA-2로 마이그레이션했다. 필자는 이 글을 포함해 관련 백서와 여러 칼럼을 쓴 적이 있다.
2017년 초반까지 많은 고객이 SHA-2로 마이그레이션했다. 절묘한 시기였다. 2017년 2월 23일 구글은 실제 SHA-1 충돌 공격이 성공했음을 발표하고, 동일한 SHA-1 해시를 가진 두 개의 PDF 파일을 제시해 이를 입증했다. 이 공격은 기본적으로 SHA-1을 완전히 깨트린 것이다.
글로벌 마이그레이션 시점은 이보다 더 절묘할 수 없었다. 암호화 개발업체들은 SHA-1이 깨지기 직전에 전 세계 대부분의 환경에서 SHA-2로의 전환을 성공적으로 마쳤다. 그 때까지 마이그레이션하지 않았던 기업들은 훨씬 더 쉽게 마이그레이션할 수 있었다. 수많은 기업이 이미 성공적인 마이그레이션을 완료했으므로 웹에서 마이그레이션 방법에 대한 지침을 찾을 수 있었고 개발업체는 도울 준비가 되었으며 대부분의 소프트웨어와 기기 공급업체 역시 이미 준비가 되어 있었기 때문이다. SHA-1에서 SHA-2로의 마이그레이션 계획과 일정은 완전히 성공했다. 곳곳에서 칭찬과 격려가 이어졌다.
그런데, 더 안전한 SHA-3으로 마이그레이션하지 않은 이유는 무엇일까?
SHA-3으로 마이그레이션해야 하는 이유
SHA-1과 SHA-2는 공개적인 대회를 통해 만들어지지 않았다. NSA가 만들어 공용 특허로 발표됐다. SHA-1과 SHA-2는 동일하지는 않지만 똑같은 암호화 결함을 포함한 동일한 수학적 기반을 일부 공유한다. SHA-2가 더 안전한 해시인 이유는 주로 늘어난 해시 길이에 있다.
SHA-1과 SHA-2는 서로 상당히 다르지만 동일한 기반 알고리즘(SHA)을 공유하며, 궁극적으로는 일부 동일한 해시 길이가 동일 유형의 공격에 취약하다. 일부 시나리오에서는 SHA-2의 보호 기능이 SHA-1와 비교해 우수한 부분은 SHA-2가 더 큰 입력과 출력을 사용한다는 점 외에는 없다.
SHA-2에 대한 공개적인 공격은 2008년부터 발생하기 시작했다. SHA-1의 경우와 마찬가지로 SHA-2에 대한 공격 역시 점점 더 효과를 더하며 SHA-2를 약화시키고 있다. 일부 공격은 SHA-2의 유효 보호 수준을 237까지 낮췄다. 2016년에 발표된 일부 최근 공격을 보면 SHA-2 공격은 이미 "실용" 단계에 있다. 불과 2~3년 전 SHA-1을 두고 펼쳐졌던 상황과 똑같다.
앞서 언급했듯이 시간이 지나면서 기존 암호가 공격을 받고 약화되는 것은 예상 가능한 일이다. 실제로 NIST는 SHA 군에서 파생되지 않은 새로운 해시 표준을 미리 확보하기 위한 목적으로 공개 대회를 통해 SHA-3을 선정했다. 이 대회는 2006년에 시작되었으며 케착(Keccak) 암호가 2010년 유일한 결승 진출 암호로 선정됐다. NIST는 2015년에 초안 표준을 공표했고 2015년 8월 5일에는 SHA-3이 공식 권장 표준이 됐다.
여기까지의 이야기를 듣게 되면 많은 사람이 SHA-1에서 SHA-3으로 바로 전환하지 않은 이유를 궁금해한다. SHA-1을 버려야 하는 상황에서 대부분의 마이그레이션 작업은 2016년 후반에서 2017년 사이에 이뤄졌다. SHA-1 전환의 공식적인 마감 날짜는 2017년 12월 31일이었다. 준비할 시간이 거의 3년이나 있었는데 SHA-2가 아니라 SHA-3으로 전환하라고 권하지 않은 이유가 무엇일까?
SHA-3으로 전환하지 않은 이유
SHA-3으로 전환하지 않은 가장 큰 이유는 이를 지원하는 소프트웨어 또는 하드웨어가 사실상 전무했다는 데 있다. SHA-3으로 전환하고 싶어도 소유하거나 사용하는 모든 기기를 위한 코드와 펌웨어를 본인이 직접 작성하지 않는 한 방법이 없었다.
게다가 SHA-3은 SHA-2 마이그레이션 계획이 이미 수립된 시점에서 비교적 새로운 표준이었다. 초기 SHA-1 폐기 회의가 열릴 당시 SHA-3은 공식 표준도 아니었다. 또한 SHA-2는 일부분이 SHA-1에서 파생되긴 했지만 SHA-1만큼 악용의 소지가 크지 않았다. 당시에는 SHA-2의 어느 버전을 사용하든 충분한 보호 기능을 얻을 수 있었다. 셋째, SHA-3은 SHA-2에 비해 훨씬 더 속도가 느리다는 것이 중론이었다. 결국 더 느리고 필요하지도 않은 것을 권장할 이유는 없었다.
SHA-2 개발업체의 대부분은 어쨌든 결함을 수정하기 위해 SHA-2 루틴을 업데이트해야 했다. 암호 개발업체 입장에서는 SHA-2를 구현하는 것이나 SHA-3 알고리즘으로 작성하는 편이나 난이도는 똑같았을 것이다. 권장 경로가 SHA-1에서 SHA-3이었다면 암호 개발업체들은 SHA-2 중간 단계를 거치지 않고 바로 구현했을 것이다.
SHA-3의 속도 문제
SHA-3은 소프트웨어에서만 느리다. 하드웨어에서는 SHA-1과 SHA-2를 가볍게 넘어서는 성능을 낸다. 암호화 루틴은 하드웨어 측에서 처리되는 비중이 늘고 있고 앞으로 그 추세는 더 강화될 것으로 전망된다.
소프트웨어 측면을 보면 인텔 CPU에서 SHA-1은 SHA-3에 비해 3배 더 빠르고 SHA-512는 2배 더 빠르다. 수치로 보면 실망스럽겠지만, 사실 최신 소프트웨어와 기기에서 해시 확인 요소는 상당히 드물게 사용되므로 해시를 수행하거나 확인하는 데 필요한 시간이 2배 또는 3배가 된다 해도 대부분의 고객 시나리오에서는 큰 부담이 되지 않는다. CPU는 점점 더 빨라지므로 얼마 후에는 이런 시간 증가를 아예 인지하지 못하게 될 것이다. 또한 SHA-3으로 선정된 해시 암호의 저자는 NSA/NIST에 소프트웨어에서 속도를 크게 높일 수 있는 여러 가지 방법을 제안한 상태다.
여기서 더 중요한 질문은 신뢰할 수 없다면 해시 속도가 더 빠른 것이 무슨 소용이냐는 것이다.
SHA-3 마이그레이션을 준비하는 방법
몇 년 내에 모두들 SHA-3 마이그레이션을 실시하게 될 것임은 확실하다. 그렇다면 어떻게 준비해야 할까?
첫째, SHA-3 마이그레이션이 다가온다는 점을 인식한다. 강제적으로 할 수밖에 없는 때가 언제가 될 지는 아무도 모른다. SHA-2에 대한 현실적인 공격 증가 양상에 달렸다. 언젠가 구글이나 다른 누군가가 SHA-2가 깨졌고 더 강한 것이 필요하다고 발표할 것이다. 그 소식에 깜짝 놀라는 사람이 되지 않도록 준비해야 한다.
둘째, SHA-2 마이그레이션 계획과 문서를 잘 보관한다. SHA-3 마이그레이션은 SHA-2 마이그레이션 작업과 상당부분 비슷할 것이다. SHA-2에서 실수했던 부분에 대해 생각하라. SHA-2 마이그레이션에서 얻은 교훈은 무엇인가? 교훈을 잊지 않도록 기존 암호 마이그레이션 문서를 업데이트해야 한다. 보유 중인 소프트웨어와 하드웨어 제품이 어떤 암호를 사용하는지 문서로 잘 기록하고 있는가?
마지막으로, IT 분야에서 일한다면 암호 마이그레이션은 일상적이고 정기적이며 지속적인 사이클 작업이 될 것임을 기억해야 한다. 자신과 자사의 동료, 그리고 개발업체는 암호에 대해 민첩한 태세를 갖춰야 한다. 필자는 암호화 민첩성의 개념에 대한 칼럼을 다룬 바 있다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.