본문으로 바로가기

암호 관리 - Keepass

category 윈도우즈/Windows 일반 2015. 5. 28. 16:30

사이트 가입하는 곳도 많아지고 ID나 패스워드 기억하기도 쉽지 않은 시대입니다. 모두 똑같은 것을 사용하다보면 한번 유출되면 난리가 나죠. 그래서 암호관리하는 프로그램을 찾다가 로컬상에서 관리할 수 있는 것을 찾아 공유합니다.

Keepass 소개

Keepass는 안전한 방법으로 암호를 관리하는데 도움이 되는 무료 오픈 소스 암호 관리자이다. 하나의 데이터베이스에 모든 패스워드를 넣어두고, 하나의 마스터 키 혹은 키 파일로 잠궈두는 시스템이다.

단지 하나의 마스터 키 파일의 암호만 기억하거나 전체 데이터베이스의 잠금을 해제하는 키 파일을 선택하면 된다. 데이터베이스는 현재까지 알려진 최고의 가장 안전한 암호화 알고리즘(AES와 Twofish)을 사용하여 암호화된다.

  • 로컬머신에 데이터베이스를 생성할 수 있어 인터넷 보안의 대체제로 사용할 수 있다.
  • Classic Edition과 Professional Edition 두 가지 버전으로 나누어 제공되며, 최근버전인 Professional Edition은 .Net Framework의 설치가 필요하지만 더욱 다양한 옵션과 기능을 제공한다.
  • keepass는 시스템에 어떠한 것도 설치하지 않기 때문에 설치 버전과 포터블 버전의 차이가 없다.

자세한 설명은 Keepass 기능설명을 참고하라.

Keepass 설치

홈페이지에서 최신의 버전으로 다운로드하자.

  1. 설치파일을 실행하면 언어선택을 할 수 있는데, 한국어는 설치단계에서 제공하지 않으니 그냥 English로 설치하자.
  2. 딱히 건드릴 설정없이 기본값으로 설치한다.
  3. 설치가 완료되고 Keepass가 실행되면 이를 우선 종료한다.
  4. 번역을 제공하니, 한글 번역파일을 다운로드 한후, 설치 폴더 C:\Program Files (x86)\KeePass Password Safe 2에 복사한다.
  5. Keepass를 다시 실행시키고, View > Change Language를 선택해서 Korean을 선택해주면 프로그램이 재시작되며 한국어로 변경된다.

Keepass 사용법

데이터베이스 만들기

  1. 파일 > 새로 > 데이터베이스 이름 및 저장위치 선택
  2. 복합 마스터 키 만들기 : 마스터 비밀번호 설정 > 확인

  3. 새 비밀번호 데이터베이스 만들기 - 단계 2 :
    • 일반탭에 데이터베이스의 정보를 입력할 수 있다. (입력하지 않아도 된다.)
    • 다른 탭의 값들은 기본값을 두고 사용하면 된다.

항목 추가하기

  1. 마우스 우클릭 > 항목 추가

  2. 항목 정보 입력 : 중요한 것은 [제목]필드에 임의적인 이름을 입력할 것이 아니라, 인터넷 브라우저의 제목표시줄에 표시된 글자가 입력한 [제목]필드와 일치해야 동일한 사이트로 인식하기 때문에 정해진 제목을 입력해 주는 것이 좋다.

항목 추가시 새로운 필드 추가 방법

사이트에 따라 때로는 아이디, 비밀번호뿐만 아니라 주민등록 번호, 이름 등 여러 항목을 입력해야 하는 경우가 있다. 대부분의 비밀번호 관리 프로그램들은 단순히 “아이디/비밀번호”의 저장만 지원하는 반면, KeePass는 원하는 만큼 필드를 추가해 여러개의 항목을 한꺼번에 입력해두고, 관리할 수 있다.

  1. 항목 추가 혹은 수정 > [고급]탭 - [추가]버튼 선택

  2. 항목 문자열 입력창이 열리면 “필드명”과 “값”을 입력해 준다(ex. 주민등록번호를 입력하더라도 앞자리, 뒷자리 따로 입력해야 하므로 필드도 두 개로 나눠 따로 입력).

  3. 두 개의 필드를 모두 입력하면 ‘문자열 필드’에 입력한 두 개의 필드가 보인다.

  4. 다시 [자동-입력]탭으로 가서 순서열을 재정의 해줘야 한다. “기본 순서열 재정의”를 클릭하고 우측의 “수정”을 누른다.

  5. 키입력 순서열 설정창이 열리면, ‘사용자 지정 키입력 순서열 사용’을 체크하고 입력되는 순서를 설정해 준다. 입력 시 명령어는 하단에 모두 표시되므로, 사용할 명령어를 클릭해주면 자동으로 입력된다.
    만약 주민등록번호를 입력하고 비밀번호를 입력한 후 로그인하는 사이트라면 :
    {주민번호 앞자리}{TAB}{주민번호 뒷자리}{TAB}{Password}{ENTER}
    라는 식으로 입력하면, 자동로그인 단축키를 눌렀을 때, 자동으로 모든 항목을 입력하고 로그인까지 실행한다.

Keepass 옵션

아래는 필자의 옵션 설정 내용이다. 도구 > 옵션으로 이동

  • 인터페이스 탭 :
    • 닫기 버튼[x]로 응용 프로그램 종료 대신 메인 창 최소화하기 체크
    • 작업표시줄 대신 트레이로 최소화 체크
  • 통합 탭 : 전역 자동-입력의 단축키를 지정해 두고, 원하는 사이트의 로그인 폼을 클릭한 후 단축키를 누르면 자동으로 아이디와 비밀번호를 입력하고 로그인한다.
    • 윈도우즈 시작시 KeePass 실행 (현재 사용자) 체크

Keepass 플러그인

공식 플러그인중에 사용할 것을 선택한다. 필자는 아래의 것들을 사용한다.

KeePass Favicon Downloader

추가한 목록들의 제목에 파비콘을 추가할 수 있는 플러그인이다.

다운 받은KeePassFaviconDownloader.plgx 플러그인을 KeePass 디렉토리에 plugins라는 디렉토리를 생성후 이동시킨후, Keepass를 재시작한다.

keepasshttp

구글 크롬의 chromeIPass 확장기능과 연계하여 사용한다.

다운 받은 KeePassHttp.plgx 플러그인을 KeePass 디렉토리에 plugins 라는 디렉토리를 생성후 이동시킨다. KeePass를 재시작한다.

  • 입력된 URL에 대한 일치하는 모든 항목을 반환
  • 업데이트 항목
  • 항목의 안전한 교환
  • 항목이 전달된 경우 사용자에게 알림
  • 사용자는 하나의 항목에 대한 액세스를 허용/거부할 수 있음
  • 데이터베이스의 잠금모드가 해제 되어 있을때에만 작동
  • 연결하는 동안 잠금모드이면 데이터베이스를 잠금해제를 요청함
  • 열려있는 모든 데이터베이스의 검색(사용자가 이기능을 활성화 했을시)
  • 이벤트가 발생할 때마다, 사용자는 트레이 알림 또는 상호작용을 요청받게 된다.

ChromeIPass

전역 자동-입력의 단축키를 사용해서 웹브라우저를 다루기에는 모자람이 있다. 한/영 전환으로 인한 로그인 실패도 그중에 하나다. 자동으로 복사/붙여넣기가 가능하게 도와주는 확장기능이다.

확장기능 주소 : https://chrome.google.com/webstore/detail/ompiailgknfdndiefoaoiligalphfdae

확장기능 설치후에는 항목의 URL 주소를 이용하여 정보를 구하게 된다.

로그인 페이지를 방문해보면 크롬의 주소 창에 ChromeIPass 아이콘이 생기며 x표시가 되어 있다. 아이콘을 클릭하여 암호를 확인하면 x 표시가 사라진다.

키이름을 정해주면 연동이 시작된다.

이후 로그인할 페이지에 처음 접속하면 알림창이 뜨고 이를 허용해주면 된다.

KeePass Google Sync Plugin

Keepass 데이터베이스를 구글드라이브와 동기화하는 플러그인이다. 구글을 믿는자만 이용하자.

  • 도구 메뉴에서 수동 동기화
  • 저장시 동기화 활성화/비활성화
  • Download, Upload, and Bi-directional Sync
설치법

설치가이드 : http://kaa-ching.blogspot.nl/2012/12/improved-manual-for-keepass-google-sync.html

Google Sync plugin을 KeePass에서 사용하기 위해서 3가지로 나눠서 설명한다.

  1. KeePass 와 Google Drive의 통신연결
  2. KeePass 에 Google 계정을 설정
  3. KeePass 설정파일 편집

세가지 단계를 자세히 살펴보자.

Step 1: KeePass 와 Google Drive의 통신연결

구글 드라이브에서 "OAuth 2.0"이라고 불리는 것을 활성화 해줘야한다.

https://code.google.com/apis/console 로 접속해서 왼쪽메뉴중에 API Access를 선택한다. (이 메뉴가 보이는 화면으로 접속되지 않는다면 몇번 반복해보자)

  • 만일 API Access로 접속했을때 아래와 같이 OAuth 2.0 client ID를 생성하는 메뉴가 나타나지 않고 client ID 가 보여진다면 이미 생성된 상태이니 생성하는 과정은 패스해도 된다.
  • Create an OAuth 2.0 client ID 클릭

  • Product name: KeePass 입력, Next 클릭

  • Application type: Installed application을 선택, Installed application type: Other 선택하고 Create client ID 클릭

Client ID와 Client secret값이 화면에 보여진다. 이 값은 KeePass 설정값에 이용된다.

다음으로 구글 드라이브 API를 활성화해야 한다.

  • 왼쪽 메뉴에서 Service 선택
  • Drive API를 찾은후 OFF 되어 있는 값을 On 시켜준다.

Step 2: KeePass에 Google 계정 설정

KeePass에 이미 구글 계정을 등록해 놓았을 경우는 패스해도 된다.

  • 항목을 추가하고 구글 계정을 추가한다.
  • 속성탭으로 이동해서 UUID값이 보여지는지 확인한다.
  • 이 값은 KeePass 설정값에 이용된다.

Step 3: KeePass 설정파일 편집

  • http://sourceforge.net/projects/kp-googlesync/files/Plugin%20for%20KeePass%202.20.1/ 에서 다운로드 받은 플러그인 파일을 압축해제 하자.

  • GoogleSyncPlugin.plgx 파일을 KeePass 디렉토리에 plugins 라는 디렉토리를 생성후 이동시킨다.

  • Sample-KeePass.config.xml 파일을 열고 <Custom> ~ </Custom> 부분을 복사한다.
    <Custom>
            <Item>
                <Key>EnableAutoSync</Key>
                <Value>false</Value>
            </Item>
            <Item>
                <Key>GoogleSyncClientID</Key>
                <Value>{google api client id}</Value>
            </Item>
            <Item>
                <Key>GoogleSyncClientSecret</Key>
                <Value>{google api client secret}</Value>
            </Item>
            <Item>
                <Key>GoogleSyncKeePassUID</Key>
                <Value>{keepass google account UID}</Value>
            </Item>
            <Item>
                <Key>GoogleSyncShowAuthenticationForm</Key>
                <Value>false</Value>
            </Item>
        </Custom>
    
  • KeePass에서는 "KeePass.config.xml"이라는 설정파일을 사용한다. 인스톨버전을 사용하고 있다면 C:\Users\User Name\AppData\Roaming\KeePass\KeePass.config.xml 와 같은 위치에 파일이 존재할테고 포터블 버전을 사용하고 있다면 KeePass.exe(실행파일) 파일과 같은 위치에 존재할 것이다.
    KeePass.config.xml 파일을 열고 위에서 복사한 부분을 붙여넣는데 만약 다른 플러그인들을 설치했었다면 이미 <custom> 부분이 존재하할테니 <itme> 부분만 복사해서 붙여넣는다.
        <Custom>
            <Item>
                <Key>KeePassHttp_ReceiveCredentialNotification</Key>
                <Value>true</Value>
            </Item>
    
            ...(생략)
    
            <Item>
                <Key>EnableAutoSync</Key>
                <Value>true</Value>
            </Item>
            <Item>
                <Key>GoogleSyncClientID</Key>
                <Value>xxxxx482019.apps.googleusercontent.com</Value>
            </Item>
            <Item>
                <Key>GoogleSyncClientSecret</Key>
                <Value>xxxxxxxxxx4dbRMCql2EA3ql</Value>
            </Item>
            <Item>
                <Key>GoogleSyncKeePassUID</Key>
                <Value>xxxxxxxFA44CAC478FC951F53916</Value>
            </Item>
            <Item>
                <Key>GoogleSyncShowAuthenticationForm</Key>
                <Value>false</Value>
            </Item>
        </Custom>
    </Configuration>
    
  • 위와 같이 붙여넣고 가각의 Key에 맞는 Value 값을 넣어주면된다.
    • EnableAutoSync : DB 변경시 자동 동기화 true/false
    • GoogleSyncClientID : Step 1단계에서 얻은 Client ID 값을 넣어준다.
    • GoogleSyncClientSecret : Step 1단계에서 얻은 Client Secret 값을 넣어준다.
    • GoogleSyncKeePassUID : Step 2단계에서 얻은 구글 계정의 UUID 값을 넣어준다.
    • GoogleSyncShowAuthenticationForm : 구글 인증폼을 보이게하려면 true, 2단계인증(factor)이 필요하다. 기본적으로 false에 두고 많이 사용한다.

    상단메뉴바에서 도구 > GoogleSyncPlugin > Upload to Google Drive 를 선택하면 구글드라이브에 DB파일이 저장된다. 위에서 EnableAutoSync 값을 true로 설정해 두었다면 이후 DB내용이 수정될때마다 자동으로 구글드라이브에 연결해서 파일을 갱신한다.

    문제 해결

    KeePass 설정파일을 메모장으로 열고 수정하고 저장하는데 있어 문제가 발생했었다. 저장한 내용이 반영이 안되거나 다시 수정전 내용으로 돌아가는 일이 발생해서 KeePass를 종료하고 다시 저장하고 확인하고 등을 반복했다.

    클라이언트 버전이 아닌 풀버전의 .NET Framework 4가 필요하다.

    Keepass 모바일과 연동

    안드로이드기기 + Google Drive = Keepass2 Android Password Safe

    KeePassDroid and Google Drive work Perfectly = https://plus.google.com/+JudeHansen/posts/Yp99hWQdKwh