2014/03/15

how to make the secure password

나는 사이트마다 사용하는 비밀번호가 모두 다르다. (사실 계정들도 다르다.) 그리고, 항상 들고다니는 작은 수첩에 나만 알아볼 수 있는 암호로 해당 정보들을 적어놓고 로그인할때마다 펴서 살펴보고 있다. 하지만 수첩을 분실해도, 아마 다른 사람들은 이게 뭔 문자인지 전혀 파악이 안될것이고, 대부분 규칙을 기반으로 생성하기 때문에 외울 수 있다.
(수첩에 적는 문자 암호화 방식은 한참 비밀이 많던 중학교때 비밀내용을 일기에 적으려고 내가 개발했는데, 그 이후 엄청 오랜 시간동안 사용해 와서 나는 이제 해당 기호들을 보면 그게 무엇을 의미하는지 실시간으로 알 수 있게 되었다.)

그런데 주변에 보면, 보안이 중요해지면서 3개월에 한번씩 비밀번호를 바꾸게 하면서, 숫자와 특수문자까지 섞어서 비밀번호를 만들라고 하니 비밀번호 만들기가 너무 힘들다는 사람들이 많아서, 대략 내가 한 7~8년쯤 전에 사용했던 (현재는 이 방식을 사용하지 않기 때문에 공개함) 비밀번호 생성 방식에 대해서 공개하려고 한다.

아래 비밀번호 생성 방식은
1) 비밀번호 생성은 쉽고,
2) 사이트마다, 비밀번호 생성시마다 비밀번호를 다 다르게 만들 수 있으며
3) 나중에 기억하기는 쉽게 구성되어 있다

즉, 비밀번호의 생성 알고리즘과 기본 비밀문구만 잘 기억하고 있으면,
시간정보나 사이트정보, 내가 소유하고 있는 물건을 통한 정보 등의 알고있는 변수를 seed 값으로 대입해 비밀번호를 생성/기억할 수 있는 방식이다.


[비밀번호 생성 노하우 #1]

1) 기본 비밀문구를 만든다(고정값)
예를들어 비밀문구는 '비밀문구'에 해당하는 qlalfansrn

2) 추가로 숫자 생성을 해준다 (변하는 값)
 예를들어 지금이 3월이니 mar에 해당하는 키들에 대응하는 숫자는 714

3) 추가로 대문자, 특수문자를 생성시킨다 (변하는 값)
예를들어 지금이 3월이니 비밀문구 중 3번째 문자와 숫자 중 3번째 숫자는 shift키를 눌러 대문자, 특수문자로 만든다.

이렇게 생성된 비밀번호는 qlAlfansrn71$


[비밀번호 생성 노하우 #2]

1) 해당 사이트에만 고유로 넣어줄 문자를 만든다 (변하는값)
예를들어 네이버 사이트만의 고유 문구는 네이버의 '네' 키에 해당하는 sp

2) 추가로 넣을 기본 비밀문구를 만든다. (고정값)
 예를들어 '비번'을 기본 base pass phrase로 잡는다면,
qlqjs 가 기본 비밀문구.

3) 기본 숫자를 생각해 둔다. (고정값)
예를들어 1111

3) 추가로 넣어줄 숫자를 만든다.(변하는값)
예를들어 오늘 2014년 3월 15일을 이용한다고 치고 2014년을 기본숫자에 더해 3125

4) 추가로 넣어줄 특수문자를 만든다.(변하는값)
예를들어 오늘 2014년 3월 15일에 월일에 해당하는 0315를 기본 숫자에 더한 1426에 해당하는 !$@^를 추가

이렇게 생성된 비밀번호는 spqlqjs3125!$@^




이런식으로 뭔가 연관이 있게 비밀번호를 만들면, 사이트마다, 생성시마다 비밀번호가 모두 다르지만 기억하기 쉽다. 기본비밀문구, 기본 숫자는 나에게 의미가 있어서 외우기 쉬운 것으로 하고, 추가할 문자는 해당 사이트만 연상하면 기억이 나는 데다가 언제 비밀번호를 만들었는지 떠올리면(나만 아는 정보) 숫자와 특수문자도 기억이 나기 때문.

이것 외에도, 예를 들어 해커는 잘 모르는 나만 기억하기 쉬운 숫자로는 다음의 것들이 있을 수 있다. (나만 *아는* 정보를 이용하는게 좋다)

1) 내 본적 주소 번지수
2) 엄마/아빠나 애인 핸드폰번호 중간 4자리
3) 스타벅스에서 내가 제일 좋아하는 메뉴 가격 앞 3자리
4) 우리집에 올라가는 계단 갯수
5) 책상위 필통꽂이에 꽂혀있는 펜의 갯수
6) 책상 첫번째 책장에 꼽혀있는 책의 갯수
7) 책장 두번째 책 제목에 mapping된 숫자키
  (예를 들어 '정글만리'인 경우 '정'자만 따와서 273)
8) 책상에서 즐겨쓰는 펜의 바코드 숫자 앞 4자리
9) 책상 앞 즐겨보는 책 ISBN 숫자 뒤 4자리

... 등등 무긍무진함.


대부분은 '나만이 알 수 있는 정보'를 통해 추출해 내거나, '내가 소유한 물건'을 통해 변수를 추출해 내기 때문에, 비밀번호 자체에 대해서 나는 기억하기가 쉽지만, 내가 아닌 사람은 쉽게 유추할 수 없는 특징을 가진다.

..