오늘은 그 동안 내가 잘못알고있던 혹은 이해가 안되었던 보안 상식에 대해서 정리해보려고 한다.
Q. 왜 공개되어 있는 암호 알고리즘이 더 강력한 것일까?
A. 과거에는 회사에서 중요한 자료를 잘 지키기 위해 비밀 암호 알고리즘을 만들어서 그것을 지키면 공개되어 있는 암호 알고리즘 보다 더 강력 할 것이라고 생각했다. 그러나 거기에는 함정이 있다. 정보보호에서 종종 간과되는 고려사항 중의 하나가 바로 인적 요소인 사람이다. 역사적으로 폭로되지 않은 암호 알고리즘이 하나도 없기 때문이다. 또한 강한 알고리즘을 만드는 일은 매우 어렵다. 강한 알고리즘과 약한 알고리즘을 비교하는 방법은 전문 암호 해독자들이 그 암호 알고리즘을 해독하려고 몇 년이나 걸렸지만 실패했다라는 사실만이 암호의 강도를 나타내주기 때문이다.
Q. 공개 키 암호는 암호화키와 복호화키가 다른데 어떻게 암호화 할 수 있는 것일까?
A. 대학교 때 수업을 들었을 때 공개 키에 대해서 "암호화키와 복호화키가 다른 비대칭키이다."라고만 들었고 그것만 암기하였다. 그런데 도대체 암호화키와 복호화키가 다른데 어떻게 암호화를 한다는 것인지 머릿속에 그려지지 않았다. 공개 키를 사용한 통신 흐름을 이해하면 공개 키가 어떻게 암호화가 되는지 어느정도 이해 할 수 있다.
이해를 돕기 위해 송신자인 슬기와 수신자인 현우 도청자인 수희가 있다고 생각 해보자. 공개 키 통신에서 핵심은 수신자인 현우가 먼저 행동을 취해야 한다는 것이다.
(1)현우는 공개 키/개인 키로 이루어진 한 쌍의 키를 만든다. 개인키(복호화키)는 안전하게 보관해 둔다. (2)현우는 자신의 공개 키(암호화키)를 슬기에게 보낸다. 현우의 공개 키(암호화키)는 도청자 수희가 봐도 괜찮다. 공개 키를 슬기에게 주는 것은 이 공개 키를 써서 메시지를 암호화해서 나에게 보내라는 의미가 된다. (3)슬기는 현우의 공개 키를 써서 메시지를 암호화한다. 암호화한 메시지는 현우의 개인 키로만 복호화할 수 있다. 슬기는 밥의 공개 키(암호화키)를 가지고 있지만, 현우의 공개 키를 사용해도 암호문을 복호화할 수 없다. (4)슬기는 암호문을 현우에게 보낸다. 이 암호문은 도청자 수희가 봐도 괜찮다. 수희는 현우의 공개 키를 가지고 있을지도 모르지만, 현우 공개 키로 복화할 수는 없다. (5)현우는 자신의 개인 키(복호화키)를 써서 암호문을 복호화 한다. 전달되는 것은 현우의 공개 키와, 현우의 공개 키로 암호화한 암호문 2개뿐이다. 현우의 개인 키는 통신 경로 상에 나타나지 않으므로 도청자 수희는 암호문을 복호화 할 수 없다. |
Q. 해시 함수가 뭐예요?
일방향 해시 함수 종류는 SHA256, SHA-1등이 있다... 암호화 시키는 것중에 하나인가....?라고 생각을 했었다. 하지만 해시 함수는 암호화를 시킨다고 생각하기에는 무리가 있다. 왜냐하면 평문을 암호화를 시켰으면 읽을 수 있게 반드시 복호화가 되어야 하는데 일방향 해시 함수는 복호화가 되지 않기 때문이다.
그렇다면 일방향 해시 함수는 무엇이고? 왜 사용하는지에 대해서 알아보자. 사람마다 절대 일치하지 않은 것이 지문이다. 지문으로 사람들을 구분할 수 있다. 해시 함수가 바로 메시지(정보)의 지문 역할을 한다. 즉 어떤 나쁜 사람이 메시지의 내용을 손상 시켰는지 안 손상 시켰는지 확인하는, 그 메시지(정보)가 내가 작성한 그대로 인지 확인시켜주는 지문의 역할을 한다. 혹시 그냥 메시지 내용을 확인해서 손상되었는지 안 손상 되었는지 확인하면 되지, 궂이 "일방향 해쉬 함수를 사용할 필요가 있을까?" 라고 생각할 수도 있다. 하지만 메시지(정보)의 양이 많아 지면 일일이 대조해 볼 수 없다. 그럴 땐 요긴하게 쓰이는게 일방향 해쉬 함수이다. 일방향 해쉬 함수는 용량의 한계 때문에 만들어 놓은 미러(mirror)사이트에서도 소프트웨어가 변경되었는지 안 변경되었는지에도 많이 사용된다.
[참고] 알기 쉬운 정보보호개론 흥미로운 암호 기술의 세계 3판
'Security' 카테고리의 다른 글
CA (0) | 2020.07.10 |
---|---|
Certificate(인증서) (0) | 2019.10.02 |
Encrypt virtual disk(가상 디스크 암호화) (0) | 2019.09.18 |
전자서명 (Digital signature) (2) | 2019.07.12 |
Integrity encryption technology (0) | 2019.02.26 |
댓글