계기

나는 중학교때까지는 하나의 비밀번호를 돌려서 사용하다가, 한번 해킹을 당한 이후 경각심을 갖게 되어 비밀번호에 약간의 변주를 추가했다.
예컨대, 사이트 URL이 abc로 시작하면 $abc$(공통비밀번호) 이런식으로 특수문자를 사용한다던지 하는 방식.
딱히 큰 문제는 없었는데, 비밀번호를 주기적으로 바꿔줘야 한다는 문구가 반복해서 뜨다보니 좀 귀찮아졌다. 한번은 특수문자만 바꿔서 사용해봤는데, 결과적으로 이 사이트에 어떤 특수문자를 썼는지가 기억이 안나서 매번 비밀번호 찾기를 해야했다. 사이트마다 비밀번호 조건이 다른 것도 문제다.
다행히 최근에는 자동으로 랜덤하고 강력한 비밀번호를 생성하고 이를 저장해주는 프로그램, 서비스가 많이 생겨나다보니 자연스레 이 기능을 사용하게 됐다. 자동으로 비밀번호를 입력해주는 기능은 꽤 편리하기도 했다. 실제로 사이트마다 완전히 다른 비밀번호를 사용하기 때문에 보안의 측면에서도 훨씬 좋은 선택지니까, 아무래도 적극적으로 사용하게 됐다.
근데 휴대폰을 바꾸고, 다양한 os에서 (특히 컴퓨터랑 휴대폰 사이에) 이를 무분별하게 사용하다보니 너무 많은 곳에 내 비밀번호 데이터가 흩어져 있고, 때로는 특정 사이트 비밀번호가 어디에 저장되어 있는지 기억이 안나는 현상이 발생했다.
예를 들어, 일전에 스타벅스 사이트에 로그인을 시도하다가 휴대폰에 저장이 안 되어있어서 뭔가 싶어서 봤더니 엣지 브라우저에 저장되어 있다던지, 엣지에는 저장되어 있는데 크롬에는 저장이 안 되어 있다던지 등.
결국 나는 결심했다. 아, 이거 하나로 통일해야겠다.

조건

어떤 문제든 간에, 문제를 해결하기 전 문제를 제대로 정의하는게 가장 중요하다.
내가 생각한 조건은 다음과 같았다.

  1. 크로스 플랫폼 지원할 것 (모바일, window, Mac,iOS, etc.)
  2. 자동 비밀번호 생성, 자동 입력 (Auto-fill) 기능 지원
  3. 기기 간 동기화
  4. 가급적 무료일 것

선택지

비밀번호 관리자 프로그램 등으로 검색해보면 상위에 노출되는 솔루션은 보통 1PasswordBitwarden 정도 인것 같다. Lastpass 는 보안사고가 많았다고 하니 제외다. 다른 솔루션이 뻔히 있는데 굳이 고를 필요가 없다.

둘 다 좋은 솔루션임은 분명하지만, 1Password의 경우 구독제인데다가 가격이 1년에 36달러 정도고, Bitwarden의 경우 1년에 10달러이다. 보안을 위해서 이정도라면 투자할 수 있지! 싶다가도 솔직히 36달러는 비밀번호 관리 만으로 지출하기에는 좀 아깝다. (무료가 버젓이 있는데!)

1Password 의 경우 2021년 정도까지만 해도 윈도우 사용성이 떨어진다는 평이 보이는데 최근 글에는 그런건 보이지 않는 것 같다. 참고로 Autofill 기능이 윈도우에서는 2024년 말이 되어서야 적용이 된 것 같다. (1password 공식 Reddit 참고)

Bitwarden의 경우 평을 살펴보면 서버 속도 문제로 너무 느리다는 평이 종종 보인다.(US, EU 서버)
개인용 서버를 통해 사용하는 (Vaultwarden) 사람도 있는 것 같은데, 이건 솔직히 투머치다. 물론 NAS 있는 사람이야 문제 없다. 하지만 난 NAS 따위 없기 때문에 다른 선택지를 더 찾아보았다.

KeepassXC

여기서 찾은 답이 바로 KeepassXC 다. 기존의 Keepass에다가 크로스플랫폼이 적용된 버전이라고 보면 된다. 오픈소스 소프트웨어이고, 무료이다. UI도 크게 나쁘지 않고, 알아야 할게 조금 있지만 브라우저 확장 프로그램도 지원하고 데이터베이스를 직접 관리할 수 있다는 측면에서 굉장히 좋게 다가왔다. (브라우저 확장이 없어도 자동 입력 등에는 문제 없다. 조금 더 편해질 뿐)

선택 이유, 장점

키패스는 내가 이전에 제시했던 네가지 조건을 모두 만족하는 거의 유일한 옵션이다. 거기다 몇 가지 괄목할 만한 장점도 있다.

  1. 데이터베이스가 로컬에 저장되기 때문에 서버 속도나 서버 보안 문제가 없다.
    • 물론 데이터베이스를 클라우드로 동기화 할 경우 ‘동기화’에 대해서는 서버 문제가 생길 수 있지만, 대부분의 클라우드 저장소 제공 업체 (원드라이브, 드롭박스) 들은 아주 안정적인 서비스를 보급 중인데다가, 설사 동기화가 문제가 생겨도 어쨌든 로컬에 데이터베이스를 저장해 놓기 때문에 잠깐 동안은 문제가 되지 않는다. 참고로 1password는 로컬에 백업 db를 저장해두는 기능이 있지만 Bitwarden의 경우 로컬 저장 기능이 없다. 기본적으로 서버 기반으로 설계된 프로그램이기 때문이다. 관련 레딧.
  2. Keeshare 기능으로 원하는 비밀번호만 가족에게 비밀번호를 share 할 수 있다.가이드
    • 다른 솔루션들의 경우 가족 사용을 하려면 돈을 내야함을 생각해보면 아주 큰 장점이다.
  3. 마스터 비밀번호 대신 키 파일을 대용할 수 있다.
    • 긴 문자열을 직접 입력하는 게 아니라, 그냥 파일 하나를 비밀번호로 사용하는 기능이다. 마스터 비밀번호를 기억하기 싫은 경우, 또는 혹시 모를 변고로 사망한 후 가족이 비밀번호를 몰라도 정보에 접근할 수 있게끔 하기에 아주 좋다. 대신 이 파일은 절대로 수정되지 않게 해야 하는데, 그냥 속성에서 Read-only 딸깍 해두고 나중에 문제 생기면 클라우드 서비스 업체의 변경내용 추적 기능을 사용하면 된다.
    • 참고로 이런 기능은 적어도 1password나 Bitwarden에는 없는 기능이다.
  4. 마스터 비밀번호를 자주 변경할 필요가 없다.
    • 1password나 다른 서버를 사용하는 비밀번호 관리 소프트웨어는 마이너하다면 마이너한 모순이 있다. 더 나은 보안을 위해서 모든 사이트(서버와 맞닿는) 비밀번호는 주기적으로 변경하는 것이 좋은데, 이를 바꿀때마다 기억하기가 힘들다. 이걸 기록하려고 봤더니, 모든 비밀번호가 담긴 데이터베이스에 접근하기 위한 계정 비밀번호를 수정한 사항을, 그 수정된 계정 내의 데이터베이스에 작성해야 하는 문제가 생긴다. 예를들어, 서버 버전 Bitwarden을 사용하다가 갑자기 자동 로그인이 해지되었는데 변경된 비밀번호를 기억해내지 못하면 꼼짝없이 계정 비밀번호 찾기 서비스를 이용해야 한다. 물론 자동 로그인이 풀릴 일은 잘 없을테고, 어차피 별도의 2FA를 설정해야 할 것이므로 이 계정에 대해서 비밀번호를 자주 변경하지 않아도 큰 문제는 아니긴 하다. 아니면 그냥 로컬 백업을 사용해도 되고.
    • 만약 마스터 비밀번호가 변하지 않아서 걱정이라면 3번에서 언급한 키 파일과 병행 사용하거나 (동시에), 아니면 키 파일만 사용하면 된다. 비밀번호를 통째로 기억하는 것보다는 데이터베이스를 열수 있는 키 파일이 뭐였는지 기억하는 것이 훨씬 쉽다.

작동 방식

방식은 아주 단순하다. 마스터패스워드로 복호화가 가능한 데이터베이스 파일 내에 여러가지 정보들을 저장해둘 수 있다. 그냥 암호화된 메모장 쯤으로 생각하면 편하다. 기본적으로는 로컬에서 작동하는 (서버와 통신할 필요가 없는) 프로그램이다. 당연하다. 프로그램 자체는 그냥 로컬에 저장된 데이터베이스 파일을 정해진 방식으로 읽고 쓰는 것 뿐이기 때문이다. 그럼 기기 동기화는 어떻게 하냐고? 그냥 데이터베이스 파일을 클라우드 저장소에 저장해두면 된다.

말했듯 메모장과 유사한 개념이므로, 아이디와 비번 뿐 아니라 카드번호, CVV 코드 등도 저장해 둘 수 있고, TOTP 코드 출력도 지원한다. 아주 편하긴 하지만, 보안을 생각하면 TOTP만큼은 다른 (특히 바이오메트릭으로 열 수 있는) 앱으로 하는게 나을 것 같기도 하다. 하지만 통일이 편한걸?

오픈소스인 덕분에 모바일 스토어에 여러 개의 keepass-based 앱들이 무료, 혹은 유료로 출시되어 있다. 나는 모바일에서는 Strongbox(ios, 유료: 1회성, 66,000원)를 대충 1년 쯤 쓰고 있는 것 같다. 아주 만족한다. 만약 안드로이드 폰이었다면 Keepass2android 를 사용했지 싶다.

결론

인지도는 좀 떨어지는 것 같지만 내가 봤을때 처음 진입장벽만 넘고 나면 KeepasXC는 아주 좋은 비밀번호 관리자 프로그램이다. 영문권에선 그래도 꽤 유명한것 같은데 한국어 사용자는 별로 없는 것 같다. 물론 나이드신 분들이나, 유독 디지털 매체 사용에 어려움을 겪는 사람들에게는 이미 다 설치되어 있고 버튼 딸깍 하면 알아서 해주는 Apple keychain이나, 구글 비밀번호 관리자 등이 더 매력적일 수 있겠으나… 적어도 보안적인 측면에서는 KeepassXC가 훨씬 안전한 옵션이 아닌가 싶다. 더 많은 한국어 사용자들이 좋은 프로그램을 사용했으면 좋겠다.