이론상 취약점 항상 지적당해온 SHA-1의 위기, 현실화
예전에 발표되고 인정받은 이론이라도 다시 살펴보아야
http://www.boannews.com/media/view.asp?idx=48181
아주 오래 전부터 SHA-1의 불완전함은 보안 전문가들이 지적해온 바 있다. 그들이 지적한 내용을 정리하면 다음과 같다.
1) SHA-1은 해시 알고리즘의 일종이며, 해시 알고리즘은 긴 메시지를 대표하는 하나의 짧은 값을 생성하는 암호화 방식이다. 그 짧은 값을 보통 해시값(hash value)이라고 부른다. 긴 메시지의 대표 이미지 혹은 썸네일 이미지라고 이해하면 된다.
2) 해시 알고리즘의 특성은 두 가지다. 하나는 해시값만 가지고 최초의 입력 값 즉, 데이터를 알아내기가 불가능하다는 것이고 또 다른 하나는 해시값이 같은 두 개의 데이터를 알아내기가 매우 힘들다는 것이다.
3) 디지털 인증서에 SHA-1이 많이 사용된다고 했는데, 그 말을 보다 상세히 풀면 인증서의 입력 값 혹은 데이터에 대한 해시값을 생성하고(=해시방식으로 암호화하고), 이 해시값을 디지털 인증서의 서명키로 다시 전환한 것, 즉 해시값을 암호화해서 서명키로 바꾼다는 것과 같다.
4) 이는 즉 같은 해시값에 최초 입력 값과 최종 서명키가 얽혀있게 된다는 것으로서, 해시 알고리즘의 특정 중 하나인 ‘해시값이 같은 두 개의 데이터를 알아내기 매우 힘들다’가 깨진다면 같은 인증서에 대한 최초 입력 값과 최종 서명키를 얻어낼 수 있다는 것이다.
5) 공격자가 이렇게 같은 해시값을 갖고 있는 두 개의 데이터를 확보한다면 인증서의 내용 자체는 조작하지 못해도 인증서의 가짜 서명문을 생성해 사용자가 전송하도록 유도할 수 있다. 그러면 공격자가 이를 중간에 가로채 다른 것으로 대체하고, 서명을 검증하는 쪽에서는 중간에 이런 저런 변경이 있었다는 걸 모르고 수신된 서명문이 합법적인 것으로 인증하게 된다.
6) 그렇다면 해시값이 같은 두 개의 데이터를 찾아내기만 하면 SHA-1은 뚫릴 수 있다는 것이고, 그걸 해내는 공격이 바로 충돌 공격(collision attack)이다. 즉 SHA-1은 애초에 충돌 공격에 약할 수밖에 없는 게 태생적인 한계다.
이런 지적은 2005년부터 있어왔다.
출처 : 보안뉴스
댓글