더북(TheBook)

그렇다면 공격자 입장에서 한번 생각해 봅시다. 암호문을 취득했다면 다음으로 무엇이 알고 싶을까요? 일단 알고리즘이 너무 단순하고 쉽다면 간단하게 암호문을 원본 메시지로 되돌릴 수 있을 것입니다. 하지만 최근 사용하는 공인된 알고리즘은 그 정도로 허술하지 않습니다.1 공격자는 자물쇠(알고리즘)를 열려고 애타게 열쇠(키)를 찾습니다. 금고에 아무리 크고 튼튼한 자물쇠를 달아 놓았더라도 열쇠가 남의 손에 들어갔다면 그 금고는 이미 안전하지 않습니다. 마찬가지로 알고리즘이 아무리 강력해도 안전하게 키 관리를 못한다면 암호화는 헛수고가 됩니다. 그래서 안전한 암호화를 하려면 ‘키 관리’가 가장 중요합니다. 암호학 수업을 듣는 학생들에게 교수가 제발 키 관리만이라도 기억하라고 당부하는 이유가 바로 여기에 있습니다. 보안의 핵심이 암호화라면 암호화의 핵심은 키 관리이기 때문이지요.

그런데 여기서 골치 아픈 문제가 하나 생깁니다. 대체 키는 어떻게 관리해야 안전할까요? 키 역시 데이터 형태이므로 키 관리는 다시 데이터 보안의 문제가 됩니다. 게다가 암호화를 할 때 생성된 키는 하나가 아닙니다. 암호화 키, 복호화 키, 암호화 권한을 확인하는 키, 복호화 권한을 확인하는 키 등 여러 개가 필요하다 보니 키마다 접근 권한을 부여하고 관리하는 ‘체계’가 있어야 합니다. 즉, 키 관리 체계라는 새로운 시스템 보안이 필요한 것입니다.2

1장에서 언급했듯이 이제 키 관리 체계를 안전한 시스템으로 만들어야 합니다. 그러려면 다시 암호화와 해킹 방어 및 관리가 필요합니다. 그중 암호화를 수행하려면 다시 키가 필요하고, 그 키를 관리하는 시스템을 또다시 설계해야 하고, 그 시스템을 보안하려면 또 암호화를 수행해야 하는 등 이렇게 키의 암호화가 재귀하는 과정에서 키 관리 체계는 필연적으로 계층 구조(Hierarchy)를 이룹니다. 결국 안전하게 키 관리를 한다는 것은 키의 계층 구조를 잘 감추고 관리하며 해킹 방어를 하는 것입니다.

다시 여기서 제기한 문제의식으로 돌아가 봅시다. 강력한 알고리즘으로 암호화만 하면 데이터는 안전할까요? 아닙니다. 키를 관리하는 체계와 방식에 따라 안전성에 직접적인 차이가 납니다.

 

 


1 이는 알고리즘과 운영 모드 같은 암호화 과정이 안전하다는 것을 전제로 합니다. 암호화 과정의 안전성은 뒤에서 다시 다룹니다.

2 키 관리 개념을 키의 생명주기(Lifecycle : 키의 생성·이용·소멸 주기) 관리로 받아들이기도 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.