KeePassXC: 가장 안전한 비밀번호 앱. 사용법과 장점 리뷰
Contents
왜 KeePass?
KeePass는 일반인들에게 많이 알려져있진 않지만 골수 유저들이 상당히 많은 비밀번호 관리자 입니다. 역사도 상당히 오래되었어요. 2003년부터 지금까지 전세계인의 로그인 정보를 보호해주고 있죠. 종단간 암호화로 보호되긴 하지만 남의 컴퓨터나 다름없는 클라우드 서버에 업로드되는 것이 불안한 사람들에게는 KeePass 시리즈가 최고의 선택입니다.
KeePass 생태계 장점
생태계라고 말 한 이유는 포크 버전들이 있기 때문이고, 그 포크 버전의 영향력이 오리지널 버전 못지않게 크기 때문입니다.
- 독립성
- 오프라인 사용
- 나의 암호 데이터베이스를 나만이 소유할 수 있음
- 중앙 서버에 의존하지 않음
.kdbx파일만 있으면 어디에서든 사용 가능. (클라우드, USB 등 각종 저장장치에 백업도 용이)- 백업 및 동기화를 위한 클라우드 내가 선택 가능.
- 서비스 망할 걱정없음 (커뮤니티도 워낙 강력)
- 오픈 포맷이라 클라이언트가 마음에 안들면 쉽게 바꿀 수 있음. (단 Yubikey 설정은 다른 클라이언트로 옮길때 다시 설정해야 할 수 있습니다.)
- 오픈소스
- 완전 무료
- 20년이 넘는 기간동안 지속적으로 업데이트
- 훌륭한 평판
- 다양한 기관으로부터 코드 분석, 외부 감사 받음
- 암호화 강도를 내가 결정할 수 있음
편의성만 조금 희생하면 흠잡을 곳이 거의 없다고 볼 수 있습니다.
KeePassXC 선택 이유
KeePass(https://keepass.info/) 가 원조입니다. 그런데 Fork 버전인 KeePassXC 사용자도 상당히 많아요. 비교표를 보면 쉽게 이해할 수 있습니다.
| KeePass | KeePassXC | |
| 사용 가능 운영체제 | 윈도우 전용 | 윈도우, 맥, 리눅스 |
| 플러그인(기능) | 엄청 많음 (가장 큰 장점) | 필요한 것들 기본 내장 |
| 인터페이스 | 클래식 | 좀 더 현대적 |
| 상호 호환 | 가능 | 가능 |
어차피 둘다 KeePass라 동일한 데이터베이스를 사용할 수 있습니다.
- KeePass: 윈도우 전용이지만, 어마어마한 플러그인(https://keepass.info/plugins.html)을 활용할 수 있음
- KeePassXC: 많이 사용하는 핵심 기능들 내장되어있고, 크로스플랫폼 지원, 대부분의 사용자들에게 적합
키패스 플러그인 리스트를보면 최신 버전인 2.x에서 사용할 수 있는 것만 100개가 넘습니다. KeePass를 괘 덕후스럽게 사용하실 분들에게는 좋지만 일반적으로 활용도가 높은 플러그인은 많지 않고, 핵심적인 기능들은 XC에 내장 기능으로 들어가있어서 충분하다고 생각합니다.
“.kdbx 파일만 있으면 둘다 쓸 수 있는거 아닌가?“라고 생각하실수 있어요. 맞는 말이지만 플러그인, 물리키 설정 등은 호환이 되지 않기 때문에, 여러 운영체제에서 하나로 통일해서 사용하려면 KeePassXC가 더 낫다고 판단했습니다. 그리고 제가 플러그인 덕지덕지 설치하는 것을 좋아하지 않는 성격도 한 몫 했습니다.
운영체제별 앱
아래 앱 이름을 누르면 Github으로 이동합니다. Play스토어, AppStore에서 설치도 가능해요. (모바일까지 통합 앱이 없다는 것이 아쉬운 부분이나, 하나의 데이터베이스로 호환 가능하니 문제는 없습니다.)
- Android: KeePassDX(1순위), KeePass2Android(2순위)
- iOS: KeePassium(1순위), Strongbox(2순위)
- macOS: KeePassXC, KeePassium 둘 중 선택
- Linux: KeePassXC

다운로드 후 실행 파일을 열 때 파이어폭스 사용자는 “실행 파일에는 컴퓨터를 손상시킬 수 있는 바이러스 또는 기타 악성 코드가 포함되어 있을 수 있습니다.”가 뜨는데 신경쓰지 않으셔도 됩니다. 파이어폭스가 인터넷에서 받은 실행 파일을 처음 실행할 때 뜨는 알림이예요.
암호화 설정

우리의 로그인 정보를 저장할 데이터베이스를 만들어봅시다.
기본 설정 그대로 사용하셔도 충분히 안전합니다. 하지만 옵션 항목들에 대해 궁금하신 분들도 계실듯해서 아래 간단한 설명을 첨부합니다.

암호화 설정 기본에서 설정할 수 있는 것은 ‘복호화 시간’ 하나밖에 없습니다. 공식 문서에서도 1초를 권장합니다. 더 길게하면 해커가 훨씬 많은 노력을 들이게 만들수있지만 현실적인 가능성을 봤을때 우리의 데이터베이스를 가져다 많은 시간과 리소스를 투입할정도의 존재가 아니기 때문에 기본 설정만으로 충분하다고 생각합니다.
아래는 고급 설정으로 들어가면 보이는 항목입니다.

암호화 알고리즘
AES256, TwoFish256, ChaCha20 256 이렇게 3개가 있습니다. 특별한 이유가 없다면 AES256을 선택하면 됩니다. ChaCha20이 좀 더 뒤에 나온 암호화이긴 하지만 안전성, 기밀성 차이는 누가 더 좋다고 평가하기 어려우며, 호환성에선 AES256이 앞서요. 둘 중 아무거나 하셔도 괜찮습니다.
키 유도 함수
Argon2id이 Timing attack 방지를 위해 더 좋지만, 기본적으로 Argon2d가 추천, 기본 옵션으로 되어있는 것은 충분히 안전하고, 호환성도 더 좋기 때문이라는 의견입니다.
한마디로 “기본 설정 = 지금까지 알려진 모든 공격에 대해 충분한 보호 기능 제공” 입니다.
오리지널 KeePass 등 다른 KDBX 호환 앱과 함께 사용할게 아니라 KeePassXC만 사용하실거라면 개인적으로는 조금이라도 더 안전한 Argon2id를 선택하는 것이 좋다고 생각합니다. – Argon2id 쉬운 설명 보기
변환 횟수, 메모리, 스레드
결론부터 말씀드리면 설정 값보다, 마스터 패스워드를 강력하게 사용하는게 더 중요.
그런데 짜증납니다. 명확하게 이 값이 최고다. 라고 추천드리기가 애매해요. 그래서 조금 알아봤어요. 일반적인 유저분들은 그냥 넘어가셔도 됩니다.
- 변환 횟수: 자동 값 (*기기마다 다릅니다. 메인 컴퓨터에서 78이 나오는데 사양이 낮은 컴퓨터에서는 58이 나왔습니다. 아래문서를 보면 4로 바꾸는게 나아 보입니다.)
- 메모리 사용량: 64MiB
- 스레드 수: 4
이렇게 나오는데, 리소스를 더 사용하더라도 현실적으로 안전성을 높게 하려면 어떤 값이 좋을지 찾아보았습니다. https://keepassxc.org/assets/pdf/KeePassXC-Review-V1-Molotnikov.pdf 이 보안 평가 보고서에서는 아래와 같이 설명합니다.
For higher security, when creating the database and selecting the parameters for the key derivation function, select Argon2id and then select at least 2048 MiB memory usage, at least 2 threads, and 4 transformation rounds (1 is sufficient, but 4 is better). Increase the parameters, if a little wait before the database file unlocks and at saves of the database is acceptable, it improves your security against passphrase attacks. Consider also that too high memory requirements might not work well if you use the database on weaker spec-ed old mobile devices. Note, this is less important than selecting a strong passphrase.
*번역*
더 높은 수준의 보안을 원한다면, 데이터베이스를 생성할 때 키 유도 함수(Key Derivation Function)의 매개변수를 설정하면서 Argon2id를 선택한 다음, 메모리 사용량은 최소 2048 MiB, 스레드 수는 최소 2개, 변환 횟수는 4회로 설정하십시오.
(변환 횟수는 1회만으로도 충분하지만, 4회가 더 좋습니다.)데이터베이스 파일을 잠금 해제하거나 데이터베이스를 저장할 때 약간의 대기 시간이 발생해도 괜찮다면, 이러한 매개변수 값을 더 높이십시오. 이렇게 하면 패스프레이즈 추측 공격(passphrase attacks)에 대한 보안이 향상됩니다.
다만 메모리 요구량을 너무 높게 설정하면, 사양이 낮거나 오래된 모바일 기기에서 데이터베이스를 사용하는 경우 제대로 작동하지 않을 수 있다는 점을 고려해야 합니다.
참고로, 이러한 설정값보다 강력한 패스프레이즈를 선택하는 것이 더 중요합니다.
메모리 사용 옵션을 더 크게 올리면 해커가 공격할때 훨씬 더 많은 비용을 지불하게 만들겠지만 아까도 이야기했듯 우리의 데이터베이스를 가져가기도 어렵고, 훔쳤다 하더라도 많은 시간과 돈을 들여야할 이유가 전혀 없기 때문에 스마트폰에서도 데이터베이스를 복호화 하실거면 기본 설정 혹은 조금 더 올리는 수준이 적절해 보입니다.
그런데 보안 평가 보고서에는 왜 1회에서 4회가 나오고, 내 컴퓨터의 기본값은 78회가 나온걸까요? 매우 높은 수준의 보안 권장 값에도 4회면 충분하다고 나오는 것을 봤을때 굳이 기기마다 다른 기본값을 그대로 사용할 필요는 없어 보입니다.
Reddit 해외 유저들의 값을 찾아보면 모두 제각각입니다. 어떤 사람은 ChaCha20 256 + Argon2d + 변환 라운드 100, 메모리 사용량 16MiB, 병렬 처리 2개 스레드를 사용했고 어떤 유저는 메모리 사용량은 32MiB, 반복 횟수 128, 병렬 4개 스레드로 쓰기도 했습니다.
이렇게 메모리 값을 다르게 한 이유는 iOS(아이폰) 환경에서 메모리 부족 오류가 생기는 현상이 있기 때문이라고도 합니다. 혹시 모바일에서 메모리 문제가 생기는 경우에 이 옵션을 수정해보세요.
결론을 말씀드리면
- 현실적으로 충분한 수준: 기본 옵션 + 매우 길고 강력한 패스워드 (*굳이 특수문자, 대소문자, 숫자 섞지 않아도 30자에서 40자 이상 긴게 최고 – 패스워드 만들기 팁)
- 높은 보안 수준
- 변환 횟수:4
- 스레드:4
- 메모리 사용량:256~2048MiB 본인이 감당할 수 있는 수준에서 선택
데이터베이스 자격 증명

암호화 선택이 끝났다면 이제 Master Password를 설정합니다. ‘추가’ 버튼을 누르면 위의 화면처럼 <키 파일>, <Challenge-Response> 2개가 더 나오는데요.
패스워드로 KeePass를 Unlock 할지, 패스워드 하나만으로는 불안하다 하시는 분은 ‘키 파일’을 추가하시면 됩니다. 그 아래 첼린지 리스폰스는 Yubikey와 같은 물리 키 사용자들을 위한 옵션이예요.
KeePass 사용법
공식 문서: https://keepassxc.org/docs/KeePassXC_UserGuide 이 페이지를 번역기를 사용해 보시는 것도 추천드립니다. 길긴 하지만 KeePassXC 팀에서 만든 문서라 필요한 모든 설명이 포함되어있습니다.

이제 안전한 나만의 공간이 생성되었습니다. 여기에 항목별로 채워넣기만 하면 됩니다.

상단 메뉴는 몇 개 없습니다. 마우스 커서를 위로 올리면 툴팁으로 설명이 나옵니다.

공식 사이트에 이렇게 설명이 잘 되어있어서 캡쳐해왔습니다.

사실 KeePass 사용법은 특별할게 없이 단순합니다. 저장하고, 불러오고.
저는 1Password에 노트 등 정리해놓은 것들이 많아서 키패스를 메인으로 사용하지 못하는 몸이 되었습니다. KeePass는 딱 필요한 항목들만 있습니다.
그런데 TOTP 입력칸이 안보이죠?

항목에서 우클릭 후 TOTP 설정으로 들어가신 후에 추가해야합니다. 이건 좀 불편해요. 나중에라도 업데이트 되길..

계정 항목에서 우클릭하신 후에 암호, URL, 속성, TOTP 등을 복사할 수 있고, 글 마지막 부분에 있는 단축키를 외워두시면 더 편리하게 사용하실 수 있습니다.

데이터베이스 메뉴에서 보고서 누르면 이렇게 내가 사용하는 암호들에 대한 간략한 정보들도 알려줍니다. ‘중복된 암호’ 이게 가장 문제예요. 이렇게 많았나?;; 아주 오래전에 생성해둔 계정들을 정리하지 않아서이기도 합니다.
짧은 암호, 약한 암호, 중복된 암호를 0개로 만드는 것을 목표로 해봅시다.
설정
설정 항목이 좀 많은 편인데, 기본으로 사용하셔도 문제없으니 겁먹지 마시고 하나씩 하나씩 나에게 필요한게 있는지만 보세요.

일반 설정에서는 윈도우 시작시 어떻게 실행할건지 정도만 보시면 되겠네요.

보안 설정 또한 ‘다음 시간 이후 클립보드 비우기’, ‘다음 시간 동안 활동이 없을 때 데이터베이스 잠금’의 시간 정도만 본인 사용 패턴이나 취향에따라 수정하시면 되겠습니다.

브라우저 통합은 너무 편리해서 하지 않을 수 없죠.

SSH 에이전트는 사용하실 분들이 거의 없을거예요. 이걸 사용하시는 분들에게는 설명이 필요없고요.
데이터베이스 가져오기
저는 1Password을 메인으로 사용하고, KeePassXC에 주기적으로 백업하고자 합니다. (* PassKey는 백업, 불러오기가 되지 않기 때문에 사이트별로 새로 생성해야 합니다.)

1Password 백업은 1PUX를 더 추천하더군요.

가져올 파일을 선택하시면 됩니다. Bitwarden, Proton Pass도 보이네요. 보통 CSV, JSON 파일이라 다른 앱의 백업 파일도 다 불러올 수 있을거예요.
파비콘
모든 사이트 아이콘이 열쇠로 되어있어서 심심하고 잘 구분되지 않습니다. 다행히도 한 번에 KeePass에는 파비콘을 한 방에 다운로드 받을 수 있는 기능이 있습니다.
그냥 다운로드 받지마시고 아래 방법을 따라하세요.

설정 – 보안 – 개인 정보에 들어가면 “웹 사이트 아이콘을 다운로드할 때 DuckDuckGo 서비스 사용”이 있습니다. 보안성도 아주 살짝 더 낫겠지만 이렇게 해야 제대로 다운로드 됩니다. 저도 처음에 그냥 했다가 유명한 일부 사이트만 다운로드되어서 당황했어요.

그 다음 그룹(G) 메뉴에서 ‘모든 파비콘 다운로드(F)’를 누릅니다.

KeePass 파비콘 다운로드 시 (응답 없음)이 떠도 그냥 놔두세요.

“데이터베이스에 기록할 수 없음. 엑세스가 거부되었습니다.” 이것도 그냥 놔뒀습니다.

저는 두 번 다 99%, 1개 남겨두고 더 진행이 안되더라고요. 여기서 껐습니다.

유명 사이트 뿐 아니라 Netxhack 파비콘 또한 잘 적용되었습니다.
단축키
웹 브라우저 URL 창에 file:///C:/Program%20Files/KeePassXC/share/docs/KeePassXC_KeyboardShortcuts.html 복사 붙여넣기 해보세요. 안되면 컨트롤 + / 누르시면 단축키 리스트를 볼 수 있습니다. (설치된
아래의 단축키를 가장 많이 사용할 것 같아요.
| Copy Username | Ctrl+B |
| Copy Password | Ctrl+C |
| Copy URL | Ctrl+U |
| Open URL | Ctrl+Shift+U |
| Copy TOTP | Ctrl+T |
| Copy Password and TOTP | Ctrl+Y |
| Show TOTP | Ctrl+Shift+T |
다른 패스워드 관리자는?
저는 유료 서비스인 1Password를 사용하고 있습니다. 기능, 디자인, 활용성이 저의 취향에 맞기 때문이지 아래 소개해드릴 다른 앱들도 모두 종단간 암호화, 영지식 아키텍처로 매우 안전하게 보호되기 때문에 뭘 사용하셔도 좋습니다. (아래 서비스 이름 누르면 리뷰를 보실 수 있어요.)
무료 서비스로는 Bitwarden 그리고 ProtonPass 둘을 가장 추천드리고 싶습니다. 그리고 제가 사용중인 1패스워드도 구경해보세요.
아직 댓글이 없습니다