본문 바로가기
IT 이론/정보보호

커호프의 원칙(Kerckhoff's principle)

by 아이들링 2016. 10. 12.

Kerckhoff의 원리에 따라 암호 알고리즘은 비공개로 할 필요가 없다.

시험 문제의 보기에서 자주 나오는 문장이다. 언뜻 보면 당연히 틀린말 같지만 맞는 보기이다.

암호를 푸는데는 복호화 key복호화 알고리즘이 필요하다. 물론 둘다 보안이 철저히 유지 된다면 좋겠지만 커호프는 알고리즘은 중요하지 않다고 말한다. 매우 보안 정신이 부족한 생각 같지만 보안을 책임지는 사람이라면 그렇게 생각해야 한다고 말한다.

그만큼 복호화 key에 대한 보안이 철저해야 한다는 의미이다.

알고리즘은 언제든지 뚫릴 수 있다. 유출이 되지 않더라도 역공학을 이용해서 풀릴 수도 있다. 그런 만큼 알고리즘의 보안성만 믿고 '복호화 key? 유출되면 다른 걸로 바꾸면 되지 뭐. 우린 절대 뚫릴 수 없는 완벽한 알고리즘이 있으니깐!' 이라며 복호화 key의 기밀성 유지를 소홀히 하는 건 매우 매우 위험한 발상이라는 것이다.

역공학으로 알고리즘을 풀려고 해도 결국엔 복호화 key가 확보 되어야 한다. 인터넷 상에 고가 소프트웨어의 시리얼 키를 마구 찍어내는 불법 제너레이터가 돌아 다니는 것도 결국 충분히 확보된 시리얼 넘버를 통해 해커들이 시리얼 넘버 생성 규칙을 풀어냈기 때문이다. 마이크로소프트, 어도비등 아무리 큰 회사에서 아무리 복잡한 알고리즘으로 시리일 넘버를 만들어 내도 이런 방식은 결국 뚫린다.

결국 커호프가 하고 싶었던 말은 '알고리즘은 이미 뚫렸다. key만 유출되면 이제 끝장이다.' 라는 생각으로 key 보안을 철저히 하라는 것이다.

보안 프로토콜, 보안 매커니즘의 보안성도 결국 비밀키가 얼마나 기밀성을 가지는 가에 기인한다.

댓글0