보안 기초 개념

‘계정과 인증’ 묶음의 한 편 · 4 / 6 — 처음부터 읽기 →

'암호화해서 보관합니다'라는 말, 어디까지 믿으면 될까요: 암호화·해시·마스킹의 차이

'되돌릴 수 있느냐'는 기준 하나로 암호화·해시·마스킹을 가르고, 어떤 정보에 무엇이 쓰이는지, 유출 소식을 들었을 때 무엇을 볼지 정리합니다.

짧은 답

세 가지를 가르는 기준은 되돌릴 수 있느냐예요. 암호화는 열쇠가 있으면 되돌아오고, 해시는 되돌리지 못하게 만든 것, 마스킹은 지운 채로 보여 주는 방식이에요. 그래서 비밀번호는 해시로 보관하는 쪽이 맞아요.

책상 위에 끈으로 여미는 봉투, 동전이 놓인 문서, 일부 줄이 진한 띠로 가려진 문서가 나란히 놓인 삽화
이 글의 차례 7

'암호화되어 보관됩니다'를 읽고도 안심이 안 되셨나요

회원가입 화면 맨 아래, 유출 사고 안내문 가운데쯤에 '고객님의 정보는 암호화되어 안전하게 보관됩니다'라는 문장이 꼭 한 줄 들어가 있죠. 읽고 나서도 딱히 안심이 되지는 않으셨을 거예요. 그 문장이 정확히 무엇을 해 준다는 뜻인지 알려 주지 않으니까요. 이 글은 그 한 줄 뒤에 숨어 있는 서로 다른 세 가지 처리 방식을 갈라서, 안내 문구를 읽을 때 무엇을 보면 되는지까지 정리해 드릴게요.

먼저 이름부터 짚을게요. 저장된 정보를 그대로 두지 않고 손보는 방법은 크게 세 갈래예요. 암호화, 해시, 마스킹. 셋 다 '원래 값을 알아보지 못하게 만든다'는 점은 같아 보이지만, 목적이 다르고 쓰임새가 다르고 유출됐을 때의 의미도 달라요. 이게 왜 중요하냐면요, 셋 중 무엇이 쓰였느냐에 따라 '유출됐다'는 같은 소식이 전혀 다른 무게로 다가오거든요.

참고로 이 글은 어떤 알고리즘을 골라야 하는지, 어떻게 설정하는지를 다루지 않아요. 권고 기준은 시기에 따라 바뀌고 그건 구현하는 사람의 몫이라서요. 여기서는 비전문가도 안내 문구와 유출 통지문을 읽어 낼 수 있는 사고 틀만 챙겨 가시면 충분해요.

가르는 기준은 하나예요: 되돌릴 수 있느냐

원래 값이 다시 필요한가로 암호화(되돌림)·해시(되돌리지 못함)·마스킹(일부 가림)을 가르고, 저장은 암호화·확인은 해시·표시는 마스킹

세 가지를 외우려 하지 마시고 질문 하나만 기억하세요. '나중에 원래 값이 다시 필요한가?' 이 질문의 답에 따라 무엇을 써야 하는지가 거의 정해져요.

암호화는 열쇠가 있으면 원래 값으로 되돌아오는 방식이에요. 금고에 넣고 잠그는 것에 가깝죠. 금고를 통째로 훔쳐가도 열쇠가 없으면 안을 못 보지만, 열쇠가 함께 새어 나가면 금고는 그냥 열린 상자가 돼요. 그래서 암호화 이야기에서 진짜 핵심은 알고리즘이 아니라 열쇠를 어디에 어떻게 두느냐예요. 이건 뒤에서 한 번 더 다룰게요.

해시는 반대예요. 되돌리지 못하도록 일부러 만든 방식이에요. 같은 값을 넣으면 늘 같은 결과가 나오지만, 결과만 보고 원래 값을 계산해 내지는 못하게 설계돼 있어요. 고기를 갈아 다진 고기로 만드는 것에 비유하면 이해가 쉬워요. 같은 고기를 갈면 늘 같은 다진 고기가 나오지만, 다진 고기를 되돌려 원래 덩어리로 만들 수는 없죠. 그래서 '값이 맞는지 확인만 하면 되고 원래 값을 다시 읽을 일은 없는' 정보에 써요.

마스킹은 앞의 둘과 결이 달라요. 되돌리고 말고를 따지기 전에, 보여 줄 때 일부를 아예 가려 버리는 처리예요. 영수증의 카드번호가 앞뒤 몇 자리만 남고 가운데가 별표로 찍혀 나오는 것, 상담원 화면에 이름이 '김O수'로 뜨는 것이 마스킹이에요. 가려진 자리의 값은 그 화면에 아예 전달되지 않기 때문에, 화면을 어깨너머로 보거나 화면을 캡처해도 가려진 부분은 얻을 수 없어요.

되돌릴 수 있느냐로 가른 네 가지 처리
처리되돌릴 수 있나어디에 쓰나유출되면
암호화있음 (열쇠 필요)다시 읽어야 하는 정보열쇠가 함께 새지 않았다면 바로 읽히지는 않는다
해시되돌리지 못하게 설계맞는지 확인만 하면 되는 정보원문이 곧바로 드러나지는 않지만 흔하고 짧은 값일수록 맞춰 볼 여지가 남는다
마스킹되돌림 여부와 무관, 보여 줄 때 가림화면·출력물·상담 기록가려진 자리는 애초에 전달되지 않아 화면 유출 피해가 줄어든다
가명·익명 처리누구인지 알기 어렵게 바꾸는 처리통계·분석용 데이터위 셋과 목적이 달라 같은 말로 묶지 않는 편이 정확하다

정보 종류마다 답이 달라요: 비밀번호·주민번호·화면 표시

이제 실제 정보에 대입해 볼게요. 여기서 많이들 헷갈리시는데, 세 갈래로 나눠 보면 의외로 깔끔해요.

첫째, 비밀번호예요. 서비스 입장에서 비밀번호는 '맞는지만 확인하면 되는 값'이에요. 로그인할 때 사용자가 입력한 값을 같은 방식으로 처리해서 저장된 결과와 같은지 비교하면 끝나니까, 원래 값을 다시 읽어야 할 일이 없어요. 그래서 비밀번호는 해시로 보관하는 것이 원칙이에요. 뒤집어 말하면, 어떤 서비스가 내 비밀번호를 그대로 알려 줄 수 있다면 그건 되돌릴 수 있는 형태로 갖고 있다는 뜻이 돼요. 비밀번호를 잊었을 때 재설정 링크를 보내 주는 방식이 표준이 된 데에는 이런 배경이 있어요.

덧붙이면, 해시에도 손이 더 갑니다. 같은 값은 같은 결과가 나오는 성질 때문에, 사람들이 많이 쓰는 뻔한 비밀번호는 미리 계산해 둔 목록과 대조해 맞춰 볼 여지가 남아요. 그래서 사용자마다 다른 값을 섞어 넣어 결과를 달라지게 하고(솔트라고 불러요), 일부러 계산이 느린 방식을 써서 대량으로 맞춰 보기 어렵게 만들어요. 우리가 긴 비밀번호를 권유받는 이유, 그리고 여러 사이트에 같은 비밀번호를 쓰지 말라는 조언이 이 지점에서 만나요.

둘째, 주민등록번호나 계좌·카드번호처럼 '업무상 다시 읽어야 하는' 정보예요. 환불을 하려면 계좌번호를 다시 꺼내 봐야 하니 해시로 두면 일이 안 되죠. 이런 정보는 암호화해서 보관하고, 열쇠는 데이터와 떨어진 곳에서 따로 관리하는 방식이 일반적이에요. 우리나라 개인정보보호법 체계에도 민감한 정보를 저장할 때 안전한 조치를 하도록 하는 요구가 들어 있는데, 어떤 정보에 어떤 조치가 요구되는지는 고시와 해설서가 개정되며 달라져 왔어요. 실제 적용 범위가 궁금하시면 개인정보보호위원회에서 배포하는 최신 해설 자료로 확인하시는 편이 정확해요.

셋째, 화면에 잠깐 보여 주기만 하면 되는 정보예요. 상담원이 본인 확인을 하려고 연락처 뒷자리만 보면 되는 상황에서 전체 번호를 다 띄울 이유는 없죠. 이럴 때 마스킹이 일해요. 암호화·해시와 경쟁하는 관계가 아니라 같이 쓰이는 관계라서, 잘 만든 시스템은 저장은 암호화로, 확인은 해시로, 표시는 마스킹으로 층을 나눠서 씁니다.

다른 데서 잘 안 짚어 주는 것: 암호화는 '저장'만 지키지 않아요

정보가 놓이는 세 가지 상태인 저장(잠긴 채)·전송(통신 구간 보호)·사용(계산하려면 잠금이 풀림)을 잇고, 권한 나누기·조회 기록도 중요

여기까지가 보통의 설명이라면, 실무에서 진짜 갈리는 지점은 따로 있어요. 암호화를 이야기할 때는 '언제'를 같이 물어야 한다는 거예요. 정보가 놓이는 상태는 크게 셋인데, 각 상태마다 지켜 주는 장치가 달라요.

저장돼 있을 때는 디스크나 데이터베이스 안에 잠긴 채로 있어요. 서버 장비를 통째로 들어내거나 백업 파일이 새어 나가는 상황을 막아 주는 층이죠. 오가는 중일 때는 통신 구간이 감싸져요. 주소창 자물쇠 이야기에서 다룬 그 구간이고, 카페 와이파이에서 옆 사람이 내용을 읽지 못하는 이유이기도 해요. 그리고 쓰이는 중일 때가 남아요. 프로그램이 실제로 값을 계산하려면 어느 순간에는 원래 값이 필요하니까, 이 순간만큼은 잠금이 풀려요.

그래서 '암호화했는데 왜 유출됐나요?'라는 질문이 생겨요. 답은 대체로 세 번째 상태에 있어요. 권한 있는 계정으로 정상적인 조회 화면을 통해 빠져나간 정보는, 저장이 암호화돼 있었는지와 상관없이 읽을 수 있는 모습으로 나가요. 계정과 권한을 나누고 조회 기록을 남기는 일이 암호화만큼 중요하다고 말하는 이유가 여기 있어요. 자물쇠를 좋은 걸로 달아도 열쇠를 여러 사람이 갖고 있으면 잠금의 의미가 옅어지는 것과 같아요.

열쇠 관리도 같은 맥락이에요. 암호화된 데이터와 그 열쇠가 같은 서버, 심하면 같은 폴더에 있으면 금고와 열쇠를 나란히 두는 셈이 돼요. 그래서 열쇠는 별도 저장소에 두고, 접근할 수 있는 사람을 좁히고, 주기적으로 바꾸는 절차까지가 한 묶음이에요. 안내 문구가 '암호화한다'까지만 말하고 열쇠를 어떻게 다루는지 말하지 않는 건, 못 미더워서가 아니라 그 부분은 원래 외부에 자세히 밝히지 않는 영역이기 때문이에요.

그럼 이용자 입장에서는 뭘 볼 수 있을까요. 다행히 볼 수 있는 게 있어요. 유출 통지문에 '무엇이' 유출됐고 '어떤 형태로' 보관돼 있었는지가 구체적으로 적혀 있다면 그 자체로 좋은 신호예요. 항목별로 나눠서 설명하는 곳일수록 자기 시스템을 파악하고 있다는 뜻이거든요.

정리: 안내 문구를 읽는 세 가지 눈

이제 이렇게 보시면 돼요. 첫째, '암호화'라는 단어를 만나면 되돌릴 수 있는 처리라는 뜻으로 읽고, 그러면 열쇠 이야기가 따라붙는다는 것까지 떠올리세요. 둘째, 비밀번호에 대해 '암호화해서 보관한다'고만 적혀 있으면 표현이 헐거운 것일 수 있으니, 비밀번호 찾기를 눌렀을 때 원래 비밀번호를 알려 주는지 재설정을 시키는지로 가늠해 보세요. 재설정을 시킨다면 되돌릴 수 없는 형태로 갖고 있다는 뜻이라 안심해도 좋아요. 셋째, 화면에 가려져 보인다고 해서 저장까지 안전한 건 아니라는 점, 반대로 저장이 잠겨 있다고 화면 유출이 막히는 건 아니라는 점을 따로 기억해 두세요.

유출 통지를 받았을 때도 같은 눈이 쓸모 있어요. 비밀번호가 해시로 보관돼 있었다는 설명이 있으면 당장 계정이 열리는 상황은 아닐 가능성이 높지만, 다른 사이트에 같은 비밀번호를 쓰고 있다면 그건 별개의 문제라서 그 사이트들부터 바꾸는 게 좋아요. 반대로 연락처·주소처럼 되돌릴 수 있는 형태로 보관되던 정보가 나갔다면, 그 정보를 이용한 그럴듯한 사칭 연락을 한동안 조심하시면 돼요. 실제 침해가 의심되는 상황이라면 한국인터넷진흥원 118 상담이 가장 빠른 창구예요.

솔직히 말하면 이 세 단어를 구분하는 일은 전문가만의 영역처럼 보였지만, 기준이 '되돌릴 수 있느냐' 하나뿐이라는 걸 알고 나면 생각보다 간단해요. 안내 문구를 읽을 때 무엇을 묻고 무엇을 넘겨도 되는지 알게 되니까, 같은 문장을 봐도 불안이 아니라 판단이 남아요. 그 차분함이 오늘 가져가실 가장 큰 이점이에요.

자주 묻는 질문

비밀번호를 잊었을 때 원래 비밀번호를 그대로 알려 주는 사이트는 위험한 건가요?

원래 값을 알려 줄 수 있다는 건 되돌릴 수 있는 형태로 보관 중이라는 뜻이라, 해시 보관이라는 원칙과는 거리가 있어요. 그 사이트를 못 쓴다는 뜻은 아니지만, 그런 곳에는 다른 서비스와 겹치지 않는 비밀번호를 쓰고 2단계 인증을 켜 두시면 마음이 놓입니다.

해시는 되돌릴 수 없다는데, 그럼 비밀번호가 해시로 보관됐으면 유출돼도 완전히 안전한가요?

원문이 곧바로 드러나지는 않지만 '완전히'라고 말하기는 어려워요. 짧고 흔한 비밀번호일수록 맞춰 볼 여지가 남아 있어서요. 그래서 유출 소식을 들으면 길고 겹치지 않는 비밀번호로 바꾸고, 같은 비밀번호를 쓰던 다른 사이트도 함께 정리하는 순서가 안전해요.

가명처리도 암호화의 한 종류인가요?

목적이 달라서 같은 말로 묶지 않는 편이 정확해요. 암호화는 원래 값을 감췄다가 필요할 때 되살리는 것이 목적이고, 가명처리는 분석에는 쓰되 누구의 정보인지 알아보기 어렵게 만드는 것이 목적이에요. 제도상 어디까지를 가명처리로 보는지는 기준이 정비되어 온 영역이라, 구체적인 범위는 개인정보보호위원회의 안내 자료로 확인하시는 게 좋아요.

직접 확인해 보실 곳

확인할 곳

이 글에서 다루는 주제를 맡는 공식 기관입니다. 신고·상담 창구도 여기에 있으니, 실제 상황에서는 아래로 바로 이어 가시면 됩니다.

참고한 자료

이 글은 입문자 기준으로 이해하기 쉽게 정리한 일반 정보이며, 내용은 운영 과정에서 순차적으로 점검·보완될 수 있습니다. 구체적인 절차나 수치는 해당 기관의 공식 안내를 기준으로 확인해주세요.

이 글의 용어

보안 용어 사전에서 한 줄 정의와 쉬운 비유로 다시 볼 수 있어요.