seegongsik
보안

어떻게 믿을 수 없는 세상의 규칙

편지를 한 통 부친다고 하자. 우체통에서 받는 사람 손에 닿기까지 누가 몰래 뜯어볼지, 내용을 바꿔치기할지, 처음부터 누가 내 이름을 빌려 쓴 가짜인지 알 길이 없다. 네트워크도 마찬가지예요. 메시지는 내가 모르는 수많은 장비와 회선을 거쳐 간다. 그래서 보안은 이 길을 그대로 믿지 않는 데서 출발한다.

01

믿을 수 없는 길에서 출발해요

네트워크로 메시지를 보내면 그 메시지는 내 손을 떠나 여러 중간 지점을 거친다. 공유기, 통신사 장비, 남의 서버가 그 길에 있고, 그 모두가 안전한지는 알 수 없어요.
어딘가에서 누군가 내용을 몰래 들여다볼 수도, 슬쩍 바꿀 수도, 중간에서 붙잡아 아예 전달되지 못하게 할 수도 있다. 공격 방법까지 알 필요는 없다. 길을 무조건 믿으면 안 된다는 것, 그것이 출발점이다.

길 위의 위험을 하나씩 눌러요
???보내는 쪽받는 쪽낯선 길
위 세 위험을 하나씩 눌러요

보내는 쪽에서 받는 쪽으로 가는 길을 따라가며 위험을 하나씩 눌러 보자. 몰래 읽기, 내용 바꾸기, 가로채기가 모두 길 위에서 일어날 수 있어요.

길 위에서 세 가지가 모두 일어날 수 있었다. 몰래 읽기, 내용 바꾸기, 가로채기다. 가만히 보면 셋은 서로 다른 것을 망가뜨린다. 읽히면 비밀이 새고, 바뀌면 내용을 믿을 수 없고, 가로채이면 받아야 할 것이 오지 않아요.
지켜야 할 것이 하나가 아니라는 뜻이다. 보안에서는 이것을 세 가지 목표로 나눠요.

02

지킬 세 가지, 기밀성 무결성 가용성

보안의 목표는 세 가지로 모인다. 첫째는 기밀성이다. 정해진 사람만 내용을 읽을 수 있어야 하고, 남이 몰래 읽으면 기밀성이 깨진다. 둘째는 무결성이다. 내용이 허락 없이 바뀌지 않아야 하고, 한 글자라도 달라지면 무결성이 깨져요.
셋째는 가용성이다. 필요할 때 막힘없이 쓸 수 있어야 하고, 서버가 마비되거나 길이 막혀 못 쓰게 되면 가용성이 깨진다. 일부러 엄청난 양의 요청을 보내 서버를 마비시키는 공격이 바로 가용성을 노린다. 세 영어 낱말의 머리글자를 따서 CIA라고 부른다.

세 목표를 하나씩 눌러요
위 세 목표 가운데 하나를 눌러요

기밀성, 무결성, 가용성을 하나씩 눌러 보자. 목표마다 무엇을 지키는지, 깨지면 어떻게 되는지 나와요.

셋을 따로 보니 차이가 분명하다. 기밀성은 읽히지 않는 것, 무결성은 바뀌지 않는 것, 가용성은 언제든 쓸 수 있는 것이다. 같은 메시지라도 셋은 따로 깨질 수 있어요. 아무도 읽지 않았으니 기밀성은 지켰어도, 그사이 내용이 바뀌었다면 무결성은 깨진 것이다.
그래서 세 목표를 따로 챙겨야 한다. 다만 이 셋은 지키고 싶은 것일 뿐, 어떻게 지킬지는 아직 말하지 않았다. 목표를 지키려면 방법이 필요하다.

03

수단 하나, 누구인지 확인하기

목표를 지키는 방법은 여럿이다. 그중 가장 먼저 만나는 것이 인증이다. 인증은 상대가 정말 자기가 말하는 그 사람인지 확인하는 일이에요. 낯선 길에서는 이름을 대는 것만으로는 부족하다. 누구나 남의 이름을 댈 수 있기 때문이다.
그래서 본인만 아는 것을 보여 달라고 한다. 비밀번호가 가장 익숙한 예다. 휴대폰으로 받는 인증 번호나 지문, 얼굴도 본인을 확인하는 데 쓰인다. 맞는 것을 내놓으면 본인으로 받아들이고, 틀리면 들여보내지 않는다.

본인만 아는 비밀을 골라 문을 통과해요
?
문
아래 셋 가운데 본인만 아는 비밀을 눌러요

아래 셋 가운데 본인만 아는 비밀을 골라 문을 통과해 보자. 맞는 것을 고르면 본인으로 받아들이고, 아무 이름이나 남의 추측은 막아요.

본인만 아는 비밀을 내놓자 문이 열렸다. 인증은 이렇게 누구인지를 가린다. 그런데 인증은 목표가 아니라 수단이에요. 인증이 직접 비밀을 지키는 것이 아니라, 엉뚱한 사람을 걸러 내서 기밀성 같은 목표를 지키는 데 보탬이 된다.
수단은 인증 말고도 많다. 내용을 남이 못 읽게 뒤섞는 암호화, 내용이 바뀌었는지 확인하는 해시 같은 것들이다. 목표와 수단을 나란히 놓고 보면 구분이 쉬워진다.

04

목표와 수단은 다른 칸이에요

둘을 또렷이 갈라 보자. 목표는 지키고 싶은 것이고, 기밀성, 무결성, 가용성 셋이 여기에 든다. 수단은 그 목표를 지키는 방법이고, 인증, 암호화, 해시가 여기에 든다.
둘을 자주 헷갈리는 데는 이유가 있어요. 수단과 목표가 늘 짝지어 이야기되기 때문이다. 암호화는 수단이지만 그것으로 지키려는 목표는 기밀성이다. 카드를 목표 칸과 수단 칸에 나눠 넣어 보면 한눈에 들어와요. '암호화를 썼다'는 말을 들으면 그것으로 어떤 목표를 지키는지, 나머지 목표는 무엇으로 지키는지 이어서 물어야 한다.

카드를 눌러 알맞은 칸으로 나눠요
목표 (지킬 것)
수단 (지키는 법)
남은 카드를 눌러 목표인지 수단인지 정해요

카드를 하나씩 눌러 목표 칸과 수단 칸으로 나눠 보자. 기밀성, 무결성, 가용성은 지킬 것이고, 인증과 암호화는 지키는 방법이에요.

카드를 다 나누고 나니 깔끔하다. 한 칸에는 지킬 목표가, 다른 칸에는 지키는 수단이 모였다. 이 둘을 섞지 않는 것이 보안을 보는 눈이에요.
어떤 보안 이야기를 들어도 먼저 물어보면 된다. 이것은 지키려는 목표인가, 지키는 방법인가? 수단을 목표로 착각하면 진짜 목표를 놓치기 쉽다. 비밀번호를 걸어 두었다고 해서 데이터가 바뀌지 않는다는 보장은 없는 것처럼 말이다.

05

정리

정리하면 이렇다. 네트워크는 믿을 수 없는 길이다. 그래서 보안은 기밀성, 무결성, 가용성(CIA)이라는 세 목표를 세운다. 이것은 지키려는 목표이지 방법이 아니에요.
목표를 지키는 수단은 따로 있고, 누구인지 확인하는 인증이 그중 하나다. 무엇을 지킬지 정하고 어떻게 지킬지 고르는 것, 그것이 보안이다.

핵심 4가지를 차례로 눌러봐요
아래 핵심을 위에서부터 차례로 눌러요

핵심을 차례로 눌러 되짚어 보자. (믿을 수 없는 길 → 목표는 기밀성·무결성·가용성 → 수단 하나는 인증 → 목표와 수단 구분)

이제 보안이 무엇을 묻는지 알았다. 무엇을 지킬까, 어떻게 지킬까. 이 두 물음이 모든 보안의 뼈대예요. 세 목표는 앞으로 계속 다시 나오고, 인증은 그 목표를 지키는 여러 수단 가운데 첫 번째일 뿐이다.
다음 레슨에서는 비밀번호를 그대로 저장하지 않고 되돌릴 수 없는 지문으로 바꿔 두는 해시를 다룬다. 해시는 내용이 바뀌었는지 확인하는 데에도 쓰인다. 앞으로의 레슨도 무엇을 지키고 어떻게 지키는지 두 물음을 들고 읽으면 된다.

한 줄 정리네트워크에서 메시지는 낯선 길을 지나므로 누가 엿보거나 바꾸거나 가로챌지 알 수 없다. 그래서 보안은 세 가지 목표를 세운다. 정해진 사람만 읽게 하는 기밀성, 허락 없이 바뀌지 않게 하는 무결성, 필요할 때 늘 쓸 수 있게 하는 가용성이다. 머리글자를 따서 CIA라고 불러요. 이 셋은 지키려는 목표이고, 지키는 방법은 따로 있다. 그중 하나가 상대가 정말 그 사람인지 확인하는 인증이며, 비밀번호처럼 본인만 아는 것을 보여 신원을 밝힌다. 보안은 믿을 수 없는 세상에서 목표를 정하고 알맞은 수단을 고르는 일이에요.
← 보안
이 페이지가 도움 됐다면 후원하기