최근 발견한 비밀번호를 안전하게 저장하고 자동입력까지 지원하는 오픈소스 비밀번호 관리 프로그램을 소개한다. 안전한 비밀번호 만드는 방법과 함께 사용하면 더 이상 완벽하지 않을 수 없지 않을까?
[KeePass 유틸리티 ]
— 2020년 9월 2일 추가 —
인터넷 환경이 점점 복잡해지면서 한사람이 관리해야 하는 비밀번호가 기하급수적으로 늘어났다. 그러다보니 여러 웹사이트는 물론 공인인증서의 비밀번호까지 통일해서 사용하던 시절도 있었다. 하지만 여러가지 이유로 비밀번호를 길고 복잡하게 요구하는 경우가 늘어갔고 더 이상 비밀번호를 통일시켜 하나로 사용할 수 없게 되었다.
그 이유 중 하나가 바로 웹사이트를 운영하며 많은 사람들의 개인정보를 보유하게 된 기업이나 조직에 강제적으로 비밀번호에 대한 규칙을 만들고 지키도록 법적으로 요구하기 때문이다. (비밀번호 관련 법적 요구사항을 분석한 글)
이용자 입장에서 비밀번호를 관리하는 방법은 크게 두가지로 분류할 수 있다. 첫번째는 안전한 비밀번호를 만드는 방법이고 두번째는 안전하게 비밀번호를 보관하는 방법이다. 하지만 비밀번호를 너무 쉽게 만들면 아무리 안전하게 보관해도 소용없다. 반대로 비밀번호를 아무도 유추하지 못하도록 복잡하고 길게 만들어도 쉽게 유출되게 보관하면 안된다. 비밀번호의 관리에 있어 안전한 비밀번호의 생성과 안전한 보관 두가지 모두 중요하다.
안전한 비밀번호 만들기
안전한 비밀번호를 만들기 위해 보안전문가들이 일반적으로 요구하는 규칙은 두가지다.
1. 영문자, 숫자, 특수문자를 1개 이상씩 포함하여 8자리 이상으로 만들기
2. 영문자, 숫자, 특수문자 중 2가지 종류를 1개 이상 포함하여 10자리 이상
이런 규칙 중 “영문자, 숫자, 특수문자가 각각 몇개 이상 포함되어야 한다”는 규칙을 “비밀번호 복잡도”라고 하며 “몇 자 이상 되어야 한다”를 비밀번호 길이라고 부른다. 이렇게 정의되는 비밀번호의 복잡도와 길이는 비밀번호 자체가 유출되지 않는다는 전제하에 비밀번호의 안전성을 담보하는 중요한 요소가 된다.
해커가 누군가의 아이디를 알고 있다고 할 때 비밀번호를 무작위로 a에서부터 zzzzzz…까지 하나씩 반복적으로 입력하거나 많이 사용되는 비밀번호를 사전처럼 갖고 있으며 하나씩 대입해 로그인을 시도해보는 공격기법을 무차별대입공격(Brute force attack)이라 부른다.
해커들은 무차별대입공격을 할 때 사회공학적기법이라고 할 수 있는 사람들이 방심하고 쉽게 설정하는 비밀번호를 가장 먼저 대입해본다. 이런 비밀번호로는 다음과 같은 비밀번호들이 있다.
물론 우리나라에서 조사된 데이터는 아니지만 우리나라도 이정도의 수준을 벗어나지는 않을 것이라고 생각된다.
하지만 요즘 대부분의 응용프로그램(앱:App)이나 웹사이트는 일정 횟수 비밀번호 입력 오류가 나면 아이디(계정)이 잠기도록 하는 경우가 많다. 무차별대입공격을 차단하기 위한 보호대책이다. 이런 보호대책이 적용된 응용프로그램이나 웹사이트는 궂이 비밀번호를 길고 복잡하게 만들 필요가 있는가? 라는 질문을 받은 경우가 있는데… 그래도 길고 복잡하게 만드는 것이 좋다.
비밀번호의 유출이 이용자의 PC에서 일어나는 경우(메모해 놓거나 악성 키로거(Key Logger)에의해 유출)도 있지만 서비스를 수행하는 앱이나 웹사이트의 비밀번호가 저장되어 있는 데이터베이스가 해커에게 털리는 경우도 있기 때문이다. 이 데이터베이스가 털리면 일단 무차별대입공격이 가능하기 때문이다. 이 때는 길고 복잡한 비밀번호만이 안전을 보장받을 수 있다.
안전한 비밀번호를 만드는 방법
1. 최대한 길게 만든다. (최소 10자리 이상 권고)
2. 쉬운 비밀번호를 사용하지 않는다.
– 유추가능한 생일, 주민번호, 이름, 키보드의 일련된 위치, 알려진 단어들, 전화번호 등
– 대문자, 숫자, 특수문자 등을 비밀번호 중간에 한개나 두개 이상 포함한다. (앞과 뒤는 지양한다.)
대부분의 사람들이 알고 있는 평범한 방법이다. 이 정도면 안전한 비밀번호라 하겠다.
문제는 이렇게 만든 비밀번호를 모든 앱과 웹사이트에 동일하게 사용하지 않는 것이 중요하다. 그럼 어떻게 하면 모든 앱과 웹사이트에 서로 다른 비밀번호를 사용할 수 있을까? 그것은 이미 많은 분들이 활용하듯 나만의 규칙을 만드는 방법을 사용해야 한다.
예를 들면…
먼저 비밀번호의 앞 혹은 뒤 혹은 앞과 뒤에 사용할 문자열을 만든다. 이 문자열은 랜덤하게 하는 것이 좋다. 예로 “qpzm”를 앞에 사용하고 “woxn”을 뒤에 사용하기로 한다. 그리고 중간에 사용할 문자열은 앱의 이름에서 앞 두글자를 영문으로 입력하기로 한다. 네이버를 예로 들면 “네이”를 영문으로 입력하면 “spdl”이 된다. 그리고 특수문자나 숫자 중 하나를 넣기 위해 “2@”를 추가한다.
즉 네이버의 비밀번호는 “qpzmspdl2@woxn”이 된다. 이런 식으로 티스토리의 비밀번호를 만들면 “qpzmxltm2@woxn”이 된다.
이정도의 비밀번호 복잡도와 길이라면 현재의 CPU파워로는 무차별대입공격에 의해 해킹이 불가능하며 누군가가 이 비밀번호를 본다해도 다른 사이트의 비밀번호를 유추하는 것도 어렵다. (단 한글을 영문으로 입력하는 방법은 위험하므로 다른 패턴을 사용하는 것이 좋다.)
비밀번호의 안전한 보관
만약 이런 규칙에 의한 비밀번호마저도 안심할 수 없다면…. 앱이나 사이트마다 랜덤하게 비밀번호를 생성하고 그 비밀번호를 안전하게 보관하는 방법도 있다. (하지만 비밀번호를 100% 안전하게 보관하는 방법은 없다)
가장 대표적인 비밀번호 보관법은 비밀번호를 엑셀에 저장하고 엑셀파일에 비밀번호를 설정하는 방법이다. 이 방법은 기업이나 기관에서도 종종 사용하는 방법이다.
엑셀에서 엑셀파일을 열 때(읽을 때) 비밀번호를 설정하는 방법이다.
비밀번호를 설정할 엑셀파일을 저장할 때 “다른 이름으로 저장” 메뉴를 선택하고 “찾아보기”를 클릭한다.
엑셀비밀번호설정
“다른 이름으로 저장” 창이 실행되면 아래쪽의 “도구” 메뉴에 있는 “일반 옵션…” 메뉴를 클릭한다.
엑셀비밀번호설정
“열기 암호” 입력창에 엑셀파일을 열 때 입력해야 하는 비밀번호를 설정한다.
엑셀비밀번호설정
이 엑셀파일에 설정되는 암호파일은 단순히 비밀번호의 역할 뿐만 아니라 엑셀파일이 저장될 때 엑셀파일 자체를 암호화하는데도 사용된다. 즉 이 엑셀파일에 저장되는 비밀번호가 암호화되고 파일을 열 때 복호화하기 위해 이 비밀번호를 입력하도록 하는 것이다. 즉 이 비밀번호를 잊으면 파일 자체가 무용지물이 되므로 잊지 않도록 해야 한다.
이 비밀번호는 모든 앱과 웹사이트의 비밀번호를 관리하는 마스터 비밀번호인 셈이다.
만약 이 엑셀파일로 비밀번호를 관리하는 방법이 불편하다면 별도의 전용 비밀번호 관리 앱을 사용하는 방법도 있다. 비밀번호를 관리할 수 있도록 도와주는 앱이나 서비스가 생각보다 많이 앱스토어나 플레이스토어에 제공되고 있으며 로컬PC에 저장하는 방식과 클라우드에 저장하는 방식 등 서비스 방식도 다양하다.
추천할 만한 비밀번호 관리 앱을 이름만 소개해보면… 1Password와 LastPass가 있다.
이 앱들은 기본적으로 크로스플랫폼을 지원한다. 즉 Windows나 Mac PC에 앱을 설치하여 사용할 수 있으며 Android나 iPhone에도 앱을 설치해 사용할 수 있다. 저장한 앱이나 웹사이트의 비밀번호는 클라우드에 저장하여 PC나 스마트폰에서 모두 함께 사용할 수 있다는 의미다.
다만 모든 기능을 사용하기 위해서는 유료결제를 해야 한다는 부담이 있기도 하며 해당 앱이나 클라우드가 해킹될 경우 혹은 마스터 비밀번호가 유출될 경우 저장된 모든 사이트의 비밀번호가 한꺼번에 유출된다는 치명적인 위험이 있기도 하다.
어떤 방법으로 비밀번호를 보관할 것인지를 선택하는 것은 이용자의 책임이다.
#비밀번호규칙 #비밀번호관리