무슨 일이 있었나
레노버가 판매한 지문인식 보안 USB 저장장치를 분해해 보니, 케이스 안에 평범한 SD 카드가 들어 있었고 데이터도 암호화 없이 저장돼 있었다는 분해 결과가 커뮤니티에 올라왔어요. 제품은 ‘지문 인증’과 ‘암호화’를 내세웠어요. 그런데 분해 결과대로라면 지문 인증을 거칠 필요도 없이, 카드만 빼서 일반 카드 리더기에 꽂으면 파일을 그대로 읽을 수 있다는 얘기예요.
이게 왜 큰일이냐면, 이런 제품을 사는 이유가 바로 ‘잃어버려도 안전하다’는 데 있거든요. 회사 기밀 문서, 고객 개인정보, 개인 금융 자료처럼 새어 나가면 안 되는 걸 담으려고 일부러 비싼 보안 USB를 사는 거잖아요. 그런데 정작 잃어버렸을 때 아무것도 지켜주지 못한다면, 제품이 존재할 이유가 없어지는 셈이죠.
핵심 개념: 인증과 암호화는 다르다
이번 일을 이해하려면 두 개념을 구분해야 해요.
인증(authentication)은 “당신이 누구인지 확인하는 것”이에요. 지문을 대면 ‘주인이 맞네, 들어오세요’ 하고 문을 열어주는 거죠.
저장 데이터 암호화(encryption at rest)는 “데이터 자체를 알아볼 수 없게 바꿔서 저장하는 것”이에요. 키가 없으면 데이터를 손에 넣어도 의미 없는 숫자 덩어리일 뿐이죠.
비유하자면 인증만 있는 제품은 현관에 경비원을 세워둔 종이 상자고, 제대로 된 암호화 제품은 금고예요. 경비원을 거치지 않고 상자 옆면을 찢으면(=SD 카드를 빼면) 내용물이 다 보여요. 반면 금고는 통째로 들고 가도 열 수가 없죠.
제대로 만든 하드웨어 암호화 USB는 대략 이렇게 동작해요.
1. 내부 컨트롤러가 데이터를 쓸 때마다 AES-256 같은 알고리즘으로 암호화해서 플래시 메모리에 저장해요.
2. 암호화 키는 컨트롤러 안의 보호된 영역에 있고, 지문이나 PIN 인증에 성공해야만 키가 풀려요.
3. 그래서 누가 메모리 칩을 떼어내서 직접 읽어도 암호문만 보여요.
이번 사례는 1번과 3번이 빠지고 2번의 ‘문지기’ 역할만 남은 구조로 보여요. 인증은 있는데, 그 인증이 데이터 보호와 연결돼 있지 않은 거죠.
처음 있는 일이 아니에요
하드웨어 보안 제품에서 광고와 실제가 다른 문제는 꾸준히 반복돼 왔어요.
- 2015년, 연구자들이 웨스턴디지털의 자체 암호화 외장 드라이브 일부 모델에서 키 생성이 허술하거나 보호를 우회할 수 있는 문제를 발표했어요.
- 2018년, 네덜란드 라드바우드 대학 연구팀이 삼성과 크루셜의 일부 SSD 하드웨어 암호화에서 결함을 공개했어요. 사용자 비밀번호와 실제 암호화 키가 제대로 연결돼 있지 않아서, 비밀번호 없이도 데이터를 복구할 수 있었죠. 이 여파로 마이크로소프트는 BitLocker가 SSD 자체 암호화를 무조건 믿지 않도록 기본 동작을 바꿨어요.
- 2022년에는 독일 보안업체 SySS가 버바팀(Verbatim)의 키패드·지문인식 보안 드라이브에서 여러 취약점을 공개했어요.
한국 개발자에게 주는 시사점
1. 하드웨어 암호화는 믿되 검증하세요. 정말 민감한 데이터라면 USB 자체 기능만 믿지 말고 소프트웨어 암호화를 한 겹 더 씌우는 게 안전해요. BitLocker To Go, macOS의 암호화된 APFS 볼륨, VeraCrypt 같은 도구를 쓰면 저장장치가 뭐든 데이터는 보호돼요. 회사에서 보안 USB를 산다면 FIPS 등급이나 국내 검증을 받았는지 꼭 확인하세요.
2. 내가 만드는 서비스의 ‘암호화’도 다시 보세요. 이건 USB만의 문제가 아니에요. “우리 서비스는 암호화돼 있어요”라고 할 때, 그게 전송 구간(HTTPS)인지, 디스크 전체인지, DB의 특정 컬럼인지, 그리고 키는 어디에 누가 보관하는지 바로 답할 수 있나요? 데이터와 키가 같은 서버에 나란히 있다면 이번 USB처럼 ‘경비원만 있는 상자’일 수도 있어요. 국내 개인정보 보호 규정이 비밀번호나 고유식별정보 같은 정보에 암호화를 요구하는 것도 같은 맥락이에요.
3. ‘체크박스 보안’을 조심하세요. 기능 목록에 ‘암호화 ✔’, ‘생체 인증 ✔’를 채우는 것과, 실제 위협(누가, 어떤 방법으로 데이터를 노릴까?)을 막는 건 완전히 다른 일이에요. 설계할 때 “공격자가 이걸 통째로 훔쳐가면?”이라는 질문 하나만 던져봐도 허점이 많이 보여요.
마무리
한 줄 정리: 지문 인증은 문을 지키는 거고, 암호화는 내용물을 지키는 거예요. 둘이 연결되지 않으면 보안 제품이 아니라 보안처럼 보이는 제품일 뿐이죠.
여러분은 회사나 개인적으로 보안 USB를 써본 적 있나요? 그리고 여러분이 만드는 서비스에서 ‘암호화했다’는 말이 정확히 무슨 뜻인지, 한번 점검해 보면 어떨까요?
🔗 출처: Hacker News