비밀번호 안전하게 관리하기

Table of Contents

  • 2021년 3월 6일 최초 발행

지금과 같은 인터넷 시대에 비밀번호를 잘 관리하는 것은 경쟁력이 아니라 최소한의 안전판이다. 동일한 비밀번호를 여러 사이트에 사용하지 않는 것은 너무나 당연한 일이고, 가능하다면 OTP (One Time Password)와 같은 이중 보안을 사용하는 것이 좋다.

비밀번호 정책 정하기

비밀번호 정책 1: 규칙 만들기

비밀번호를 만드는 나만의 원칙을 정한다. 예를 들어, 사이트의 주소와 특정 숫자, 특수기호 등을 섞어서 10글자의 암호를 만드는 방식을 생각할 수 있다. 10자 중에서 3글자는 사이트의 도메인 이름에서 따오고 (도메인이 영문 2자인 경우는 거의 없다) 첫 글자는 대문자로 하며, 여섯개의 숫자와 한 개의 특수문자를 사용하는 식이다. 네이버에 이런 방식을 적용해 본다면, Nav123456* 같은 비밀번호를 만들 수 있다. 물론 문자와 숫자 그리고 특수기호의 위치를 적절하게 조절하거나 숫자 여섯자리를 12+34-5처럼 만들 수도 있다. 어쨌든 이렇게 내 비밀번호를 만드는 방식을 정해 놓으면, 굳이 비밀번호를 힘들게 외우지 않아도 사이트의 도메인만 보면 비밀번호를 유추할 수 있으니, 사이트마다 서로 다른 비밀번호를 사용할 수 있는 것이다. 경우에 따라 일정 기간마다 비밀번호를 바꾸도록 하는 사이트들이 있는데, 이런 경우에 대응하려면 숫자 부분에 현재 날짜 정보를 넣을 수도 있다. 예를 들면 2021년 1분기에 사용하는 비밀번호에는 '211q'를 포함시키는 식이다. 

이 방법의 장점은 비밀번호들이 오직 내 머리 속에만 존재한다는 점이다. 그래서 물리적으로 비밀번호가 유출될 걱정은 하지 않아도 된다.

다만 한 두개의 비밀번호가 유출되면 이런 간단한 조합 방식은 쉽게 드러나게 될 수도 있다는 위험성이 있다. 또한 비밀번호 만드는 원칙을 만들 때 다양한 상황을 미리 고려하지 않으면 비밀번호를 재사용하는 경우가 생길 수도 있다.

비밀번호를 만드는 원칙이라는 것이 보통 비밀번호의 길이를 정해놓기 마련인데, 사이트마다 비밀번호 정책이 다른 경우에는 이걸 다 기억하고 관리하는 것은 실질적으로 거의 불가능한 일이 된다. 비밀번호에 반드시 대소문자, 숫자, 특수문자를 섞어야 하는 경우가 많은데 어떤 사이트에서는 몇몇 특수 문자는 사용을 못하는 경우도 있고, 비밀번호의 길이는 보통 8자로 만들면 안전하지만 반드시 12자 또는 10자 이상으로 하도록 강제하는 경우도 있다. 이런 다양한 경우를 만나다보면 다양한 예외가 생기게 되고, 결국은 이런 예외를 기억해야 하는 문제가 되어 버린다.

비밀번호 정책 2: 비밀번호 리스트 금고에 넣기

내가 비밀번호를 만드는 원칙을 기억하지 않으려면, 비밀번호를 만드는 규칙이 아예 없이 완전히 random한 비밀번호를 사용하는 것이 필요하다. 그리고 이렇게 하려면 결국 어딘가에는 이렇게 만든 random한 비밀번호를 잘 적어 놓아야 한다. 물론 비밀번호를 어딘가에 적어 놓으면 그 어딘가가 뚫리는 순간 모든 정보를 다 노출하게 되는 위험성이 존재하니, 그 비밀번호를 적어놓은 리스트를 가장 안전한 금고에 보관해야 하는 것이다.

문제는 로그인이라는 것이 내 컴퓨터, 모바일 등의 다양한 환경에서 해야 하는 것이고 때에 따라서는 내 기기가 아닌 곳에서 해야 하는 경우도 발생하기 때문에 이 금고는 안전해야 할 뿐만 아니라 접근성이 좋아야 한다는 점이다. 그리고 이런 조건을 가장 잘 만족하는 소프트웨어는 아마도 AxCrypt(와 같은 encryption 프로그램)일 것이다. 원래 이 프로그램은 오픈소스였고 Axantum Software AB에서 개발 및 배포하고 있었는데 개발 회사가 바뀌면서 지금은 무료 버전은 viewer로만 기능을 하고, 암호화를 포함한 전체 기능을 사용하기 위해서는 (개인용의 경우) 일년에 $45를 지불하는 Premium 서비스에 가입을 해야 한다. 만약 완전 무료 프로그램을 원한다면 VeraCrypt같은 것이 있다. 비밀번호를 저장하는 용도로만 사용하는 것은 아니니, 다른 용도 (공동인증서 파일, 각종 개인 정보 파일 등)로도 충분히 활용이 가능하다.

Dropbox와 같은 프로그램과 다른 점은, end-to-end encryption 즉 종단간 암호화를 지원한다는 점이다. 컴퓨터에 있는 어떤 파일이건 사용자만 알고 있는 암호(또는 키파일)로 암호화된 상태로만 저장되기 때문에 저장된 파일이 유출되더라도 암호(또는 키파일)가 안전하기만 하면 해당 파일은 복호화할 수 없다. 클라우드에 저장이 되더라도 실제 파일을 사용하는 디바이스에서만 암호가 풀리므로 보안에 있어서는 훨씬 안전한 것이다. 이름을 들어보지 못한 프로그램을 설치하여 사용하는 것이 어렵다면 NordLocker를 사용해 볼만 하다. (이 프로그램은 겉보기로는 Dropbox와 비슷한데 종단간 암호화를 지원하면서 무료 공간을 3GB 지원한다. 유료 플랜은 현재 500GB에 $7.99이다. (다양한 할인이 있으니 확인해 보기를 권한다.) 이 프로그램에서 아쉬운 점은 딱 한가지, 윈도우와 맥 컴퓨터만 지원하고 리눅스나 모바일은 지원하지 않는 점이다.)

이런 프로그램들은 보통 파일, 파일들, 디렉토리 등을 잘 암호화하는 것이 주요 기능이므로, 암호화된 파일을 관리하는 것은 사용자의 책임이 되는 경우가 많다. 또 이 방법은 결국 비밀번호가 적혀 있는 텍스트 파일을 관리하는 것이므로, 로그인을 할 때 해당 파일을 열고 비밀번호를 복사해서 붙여넣는, 이것도 안심이 안되면 눈으로 보고 손으로 하나 하나 입력하는 귀찮은 작업을 해야 하는 아쉬움이 있다. 원래 보안과 편리함은 함께 취하기 어려운 것이라 그 정도의 불편함은 감수할만하고 생각한다면 안될 것은 없다.

비밀번호 정책 3: 비밀번호 관리 프로그램 사용

보안도 챙기면서 앞서 말한 금고에 넣는 방식보다 편리한 방법이 바로 비밀번호 관리 프로그램들이다. 크게 보면 이런 프로그램들은 최소한 세 가지 추가적인 기능을 제공한다.

첫째는 안전한 비밀번호를 생성해 주는 일이다. 당연한 일이지만, 이 정책의 기본은 모든 사이트에 random하게 생성된 비밀번호를 따로 사용하는 것이니, 필요에 따라 random한 비밀번호를 만들어 주어야 한다. 사이트에 따라서 비밀번호의 길이, 사용 가능한 특수 기호의 종류, 비밀번호 강제 정책 등이 모두 다르기 때문에 이런 차이점을 감안하여 필요한 비밀번호를 생성해 주는 것이다. (최근에는 많은 한국 사이트들도 비밀번호에 특수문자를 사용할 수 있게 하고 길이도 길게 만들 수 있게 하는 추세이지만, 여전히 일부 특수문자만을 사용할 수 있다거나 길이에 제한을 둔다거나 하는 경우가 꽤 많이 있다.) 대부분의 비밀번호 관리 프로그램은 비밀번호의 강도를 알려주는 기능, 비밀번호가 유출된 적이 있는 것인지를 알려주는 기능, 비밀번호가 재사용되고 있는지를 알려주는 기능 등을 지원하고 있으니 적극적으로 이용하는 것이 좋다.

둘째는 암호가 담긴 파일을 클라우드에 안전하게 보관하는 일이다. 어디에서나 편하게 로그인을 할 수 있으려면 저장된 비밀번호를 어딘가에 저장하고 이걸 열어서 전달해야 하므로 클라우드에 암호화된 파일들을 넣어두는 것이 당연하다. Dropbox나 OneDrive, Google Drive같은 클라우드 서비스를 사용할 수도 있을 것이고, 자체적인 클라우드 서비스를 제공할 수도 있다. 어느 쪽이 더 신뢰도가 높은지에 대해서는 의견이 많이 다를 수 있는데, 내 경우에는 어느 쪽이든 크게 다르지는 않으리라 생각하고 있다.

셋째는 브라우저와 연동하여 새로 만드는 아이디와 비밀번호를 자동으로 저정하고, 로그인할 때는 아이디와 비밀번호를 자동으로 채워넣어 주는 일이다. 일단 어떤 사이트에 가입을 해서 아이디와 비밀번호를 만들 때는, 앞에서 언급한대로 안전한 비밀번호를 생성해 주어야 하고 이렇게 생성된 비밀번호를 사이트 주소 및 아이디와 함께 잘 저장해 두어야 한다. 그리고 다음에 해당 사이트에 로그인을 하게 되면 저장된 내용을 불러와서 자동으로 로그인을 해 주는 것이다. 이런 일을 하기 위해서는 브라우저와 연동이 되어야 하므로, 주요한 브라우저에 대해 확장 프로그램이나 플러그인 같은 형태로 지원을 하고 있어야 한다. (브라우저는 계속 업데이트가 되고 확장 프로그램이나 플러그인도 기술적인 부분이 계속 변하고 있기 때문에 구독형 서비스여야 이런 변화에 대처할 수 있는 지원이 가능할 것이라고 생각한다)

이외에 있으면 좋은 기능은 이 글의 처음 부분에서 언급한 OTP 지원이 있다. Google AuthenticatorAuthy 같은 프로그램의 기능을 말하는 것인데, 이런 OTP 기능을 가지고 있으면 이 프로그램 안에서 로그인을 모두 처리할 수 있기 때문에 당연히 편의성이 높아진다.

모바일 버전의 경우에는 앱에서 사용하는 아이디와 암호도 자동으로 넣어주는 기능이 있는 경우가 많이 있고, 그래야 편하다. 아예 웹 암호와 앱 암호를 분리해서 관리하는 소프트웨어도 있다.

비밀번호 정책 4: 브라우저에 의존하기

최근에 사용되는 주요한 브라우저들인 크롬, 파이어폭스, 에지, 사파리 등은 모두 비밀번호(를 포함한 여러 정보)를 저장하고 여러 컴퓨터에서 동기화하여 사용하는 기능을 제공한다. 모든 운영체제를 지원하는 크롬이나 파이어폭스만을 사용하고 있다면 브라우저의 기본 기능을 사용하는 것도 좋은 방법이다. 맥의 사파리는 다른 운영체제에서는 지원이 안되고 있고 마이크로소프트의 에지는 사실 크로미움 기반이기 때문에 크롬을 사용하는 것과 별다르지 않다. 만약 아이폰이나 아이패드와 같은 애플 기기만 사용 중이라면 모바일 사파리에서 모든 암호를 확인할 수 있기 때문에 사파리의 키체인에 의존하는 것도 좋은 방법이 될 수 있다. 

나는 사실 여러 운영체제를 사용하고 있고 브라우저도 경우에 따라 이것저것 쓰고 있기 때문에 한 개의 브라우저에 의존하는 방식은 좀 쉽지가 않다고 느끼고 있다. 사실 애플 제품들에서는 사파리가 편하고, 윈도우에서는 크롬이, 리눅스에서는 파이어폭스가 편하기 때문이다.

비밀번호 관리 프로그램 정하기

고려할 점들

비밀번호 전용 프로그램이 어떤 일을 하는지는 위에서 간단하게 설명을 했다. 나처럼 다양한 운영체제와 브라우저를 쓰는 경우, 높은 보안성도 중요하지만 편의성도 포기하기 힘들다고 생각하는 경우라면 비밀번호 관리 프로그램을 쓰는 것이 좋다. 물론 굉장히 다양한 프로그램들이 있기 때문에 어떤 것을 선택하느냐도 중요한 문제이다.

위키백과의 List of password managers 페이지에는 수많은 프로그램들이 들어 있지만, 이 중에서 내가 사용해본 프로그램은 1Password, StickyPassword, 그리고 Enpass 정도이다. 사실 기능이 있는 것과 그게 내 패턴과 잘 맞는 것은 전혀 다른 문제이다보니 내게 좋은 프로그램이 다른 사람에게도 좋으리라고 생각하기는 어려운 측면이 있다. PCMag의 비밀번호 관리 프로그램 비교 또는 클리앙의 후기같은 글을 보면 많은 사람들이 중요하게 생각하는 점이 서로 다르다는 것을 알 수 있다. 내게 있어서 중요한 사항은 순서대로 다음과 같은 점들이다. 

  1. 개발사의 보안 역량 (한마디로 털린 적이 없어야 한다)
  2. Apple 생태계 지원이 좋을 것 (이왕이면 여러 운영체제와 모바일 환경을 지원하되 메인 환경은 맥과 아이폰)
  3. 다양한 브라우저 지원
  4. OTP 기능 지원: 없으면 은근히 불편하다.
  5. 가격 정책 (내 경우에는 패밀리 플랜의 경제성)
  6. 부가 기능들: 파일 저장, 소프트웨어 라이센스 저장, 신용카드 정보 저장 등
  7. 앱이 예쁘고 안정적인가 

나의 선택 : 1Password 

이 프로그램은 워낙 오래되기도 했고 애플 생태계에서는 가장 널리 쓰이고 있는 프로그램이다. 위키백과에 의하면 2006년에 첫 릴리즈가 나왔으니 벌써 15년이 넘은 셈이다. 처음에는 설치형 프로그램이었고, 파일들을 드롭박스에 저장해서 동기화할 수 있는 방식이었다. 여전히 설치형 프로그램을 구입할 수는 있지만, 구독형이 패밀리 플랜을 고려해 보면 비싼 편이 아니기 때문에 (한 명만 쓸 수 있는 개인용이 월 $ 2.99인데 5명까지 쓸 수 있는 패밀리용은 $4.99이다) 나는 구독형으로 바꾸고 온 가족이 사용하는 중이다.

애플 생테계에서는 사용 경험이 매우 좋은데, 윈도우의 경우에는 조금 다른 부분들이 있다. 예를 들어 맥에서는 사파리에서 1password를 잠금 해졔하면 앱에서도 바로 잠금이 풀리지만 윈도우에서는 브라우저에서 잠금 해제를 해도 앱은 따로 잠금 해제를 해야 한다. (아마도 브라우저 익스텐션은 앱과 연동하는 것이 아니라 웹 버전과 연동이 되어 있는 상태로 구현해서 그런 것 같다.) 그리고 애플 워치로 잠금을 해제하는 것도 가능하고, 특정 항목들을 애플 워치로 보내서 워치 앱으로 이용할 수도 있기 때문에 애플 워치를 사용하는 사람들에게는 더욱 좋다고 볼 수 있다. 맥 프로그램이라 그런지, 맥에서 사용하는 다양한 프로그램들의 라이센스를 관리하는데 아주 좋다. (물론 윈도우용 프로그램도 똑같이 관리 가능하다. 다만 맥의 경우 해당 맥에 그 소프트웨어가 설치되어 있으면 앱 아이콘을 자동으로 보여준다) 사실 이 부분은 내가 사용해 본 프로그램 중에서는 압도적으로 우수하다. 별도의 라이센스 파일을 쓰는 경우에도 그냥 파일을 던져 넣으면 되기 때문에 매우 편리하다.

최근에 추가된 좋은 기능은, 노트 부분에 markdown을 쓸 수 있게 되었다는 것이다. 물론 제한적이기는 하지만, 그래도 별도의 포맷팅 필요 없이 단순하게 노트를 작성할 수 있다는 점에서 매우 편리하고 좋은 기능이라 생각한다.

새로운 기기에 프로그램을 설치하고 써야 하는 경우에도 설정이 굉장히 편하다. 그냥 환경 설정 > 계정에서 '다른 기기 설정' 버튼을 누르면 QR코드가 생성되는데 새로운 기기에서 그걸 찍기만 하면 자동으로 설정이 된다.

신용카드를 저장하는 기능도 꽤 좋다. 해외 사이트에서 신용카드 정보를 넣어야 하는 경우에는 굉장히 편하다는 것을 알 수 있었다. (아쉽게도 국내의 경우 신용카드 정보를 넣을 때 제대로 된 form 정보를 사용하지 않는 경우, 텍스트 입력은 아예 불가능하고 마우스로만 입력을 하게 하는 경우 등이 대부분이어서 그렇게 유용하지는 않다.)

StickyPassword 

내가 한때 안드로이드폰을 주력으로 사용하던 때 쓰던 프로그램이다. 1password의 안드로이드 앱은 정말 별로였기 때문에 (지금은 좀 나아진 것 같기는 하지만) 다른 프로그램을 찾다가 평생 사용 가능한 계정을 $ 25 정도에 파는 것을 보고 구매해서 사용했었다. (정가는 연 $29.99이고 평생은 $199.99이다.)

기본적인 기능은 그냥 저냥인데 Wi-Fi sync를 지원한다는 특징이 있다. 즉, 클라우드에는 암호를 전혀 저장하지 않고 디바이스에만 암호를 저장해 놓고, 같은 Wi-Fi에 묶여 있는 장비끼리만 동기화를 할 수 있다는 것이다. 만약 클라우드 위에 자신의 비밀번호를 저장하는 것을 믿을 수 없다고 생각하는 사람들이라면 이 기능을 제일 중요하게 생각할 수도 있다.

이외에는 특별히 좋지도 나쁘지도 않은 정도의 기능을 한다. 내가 제일 불만이었던 점은 자체 계정에 접속할 때 2FA을 사용하는데, 오직 이메일밖에 안된다는 점이다. 그냥 OTP를 사용하는 것에 비해 더 안전해 보이지도 않는데 더 불편하기 때문이다. 그리고 전반적인 앱의 디자인이 그렇게 예쁘지는 않은 것도 단점이다. 이왕이면 예쁜게 좋은거니까.

Enpass

 나는 주로 맥과 아이폰, 아이패드를 쓰고 아이들의 스마트폰도 아이폰이지만, 집의 메인 컴퓨터는 윈도우 데스크탑이고, 아내는 안드로이드 폰을 쓰고 있다. 이런 상황에서 온 가족이 편안하게 패스워드 관리 프로그램을 쓰려면 뭘 쓰는게 좋을지를 고민하다가 정했던 프로그램이다.

가격 정책이 좀 복잡하기는 한데, 원래는 한 번 구매하면 계속 사용할 수 있는 정책이었는데 (대신에 플랫폼 별로 따로 구매 필요) 나는 언제였는지 모르지만 구매를 한 적이 있어서 프로 계정을 사용할 수 있는 상황이었다. 최근에 구독형 서비스가 발표되면서 (개인은 년 3만원, 패밀리는 6명까지 쓸 수 있고 년 6만원, 영구 구매는 거의 10만원) 프로와는 다른 프리미엄 계정이라는 것이 생겼고, 여기에는 2FA 기능과 비밀번호 유출을 알려주는 기능이 추가되었다.

자체적으로 지원하는 동기화 기능은 아예 없기 때문에 여러 개의 기기에서 사용하려면 Dropbox 같은 동기화 프로그램을 사용해야 한다. 이 목적만을 위해서라면 어떤 동기화 프로그램을 쓰던 용량에 문제가 생길 일은 없으니 장점이라거나 단점이라고 말할 수는 없을 것이다.

가족들에게 잘 알려주려면 내가 잘 써야 하는 것이니 잘 쓰던 1password에서 enpass로 데이터를 옮기고 사용을 해 보았다. 사용자 경험 면에서 그리 니쁘지 않았고, 서로 다른 여러 환경에서 큰 무리 없이 쓸 수 있었기 때문에 가족들에게 소개를 하고 쓰도록 권유를 했다.

문제는, 가족들이 자신의 계정으로 잘 쓰려면 어차피 구독이든 영구 구매든 해야 한다는 것이고 그렇게 필요한 플랫폼이 늘어나면 구매 비용도 늘어단다는 점이다. 지금은 가격 정책이 좀더 복잡해져서, 새롭게 시작하는 경우라면 아예 패밀리 플랜을 구독하는 것이 마음 편할 것이다. (다만 이전에 구매를 한 적이 있다면 지금같은 상황은 매우 복잡하고 짜증나는 상황일 수도 있다.)

Updated: