비밀번호 자릿수와 보안강도의 상관관계

k1d0bus3의 이미지

컴퓨터보안수업을 하시는 어떤교수님은 본인 비밀번호를 20자리로 쓴다고 하시더군요.
저는 과거 8자리를 쓰다가 10자리 이상으로 늘려볼까 생각중입니다.
(시스템 비밀번호및 각 사이트 비밀번호)
하지만 그게 얼마나 효과가 있을지 의문입니다.

키로그나 네트워크스니핑 당한다면 비번자릿수 늘려봤자구,
결국 고려해야할것은 bruteforce공격이나, shadow파일이 크랙되는 경우입니다.(또 신경써야 할 공격이 있나요?)

요즘 cpu속도를 고려했을때 초당 1Giga 번의 대입이 가능하다고 가정한다면,
계산해보니...
pw가 10자리라면 1,016시간이 걸리고,(영문자+숫자의 조합)
8자리라면 0.78시간이 걸리네요.
하지만 실제로는 크랙결과를 서버에 로긴을 해봐야 하기때문에, 초당 1Giga번의 대입은 불가능할것 같습니다.

그래서 네트워크전송속도와 서버의 로그인 속도를 고려해서 초당10번의 대입이 가능하다고 가정하면,
pw 8자리를 100%확률로 뚫는데 걸리는 시간은
78,364,164시간이 걸립니다.

결론은...
패스워드 길게하면 귀찮은데 그냥 8자리로 해도되지 않을까요?(대부분의 사이트에서 가입시 8자리이상의 pw를 요구하네요)

cleansugar의 이미지

예전에 패스워드 강도 과학적으로 계산해주는 라이브러리 본 적 있어요.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

dgkim의 이미지

DebPolaris의 이미지

좋은 웹툰이군요. 감사합니다.

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

viper9의 이미지

저도 감사합니다.

입력 받은 암호를 MD5로 바꿔서 저장하고 있었는데 방식을 좀 개선해야겠네요.

오늘부터 당장 작업해야겠네요.

raymundo의 이미지

비밀번호가 길 때 문제는 타이핑이 귀찮은 건 둘째치고... 외우기 힘들어진다는 것 아닐까 싶은데요.

이와 관련해서 흥미로운 글이 있더군요.

일단 카툰: (출처는 http://www.xkcd.com/936/ 제가 번역을 해봤는데 http://gypark.pe.kr/wiki/%EC%9C%A0%EC%9A%A9%ED%95%9C%EC%95%94%ED%98%B8 )

요컨데 대소문자,숫자,특수문자 섞어가면서 외우기 무진장 힘든 (모든 사이트에 동일하게 쓴다면야 뭐 상관없겠지만) 비밀번호를 사용하는 것보다
쉽고 외우기 쉬운 단어들 여러개를 사용해서 "긴" 비밀번호를 사용하는 게 외우기도 쉬울 뿐더라 더 강력하다는 거죠.

여기에 수긍을 못하는 사람들이 많은지 꽤 많은 반박이 있었나본데
(사실 저도, 맞는 것 같기도 하고 아닌 것 같기도 하고... 잘 모르겠습니다)
관련 글타래 몇 개 찾아둔 걸 적어보면

* http://forums.xkcd.com/viewtopic.php?f=7&t=73384 - 원본 카툰에 대한 포럼

* [http://www.baekdal.com/insights/password-security-usability The Usability of Passwords]
** baekdal이란 사람이 "복잡한 것과 안전한 것은 별개다"라는 요지로 쓴 글

* [http://www.baekdal.com/insights/the-usability-of-passwords-faq The Usability of Passwords - FAQ]
** 위 글에 엄청난 반발이 일자, 빈번하게 나오는 반론에 대한 답을 FAQ로 만들어 올림

* [http://www.baekdal.com/insights/usable-security-reply-to-security-now Usable Security - Reply to "Security Now"]
** "Security Now"라는, 보안 관련 팟캐스트 방송(자세히는 모르겠습니다)에서마저 반론이 나오자 다시 반박글을 올렸고, 이 글 서두에 있는 "Update" 단락을 보면 해당 방송에서도 나중에 이 baekdal의 주장이 맞다는 방송을 다시 했다고 함

다른 건 몰라도 "외우기 쉽다"는 점은 확실히 맞는게... 제가 PGP를 알고 메일에 일일이 PGP서명 달던 때가 있었는데 (저 말고 아무도 안 써서 결국 저도 안쓰고 있지만ㅋ) 그때 비밀키를 사용할 때 쓰는 비밀번호가 27자 자리였습니다. 문장 하나를 통채로 썼죠. "나는 초코파이를 먹고 싶어요" 뭐 이런 식으로ㅎ 이게 십여년 전 일인데, 이 암호는 여전히 기억하고 있습니다.

반면에 8~9자로 만든 암호들은 간만에 쓰려니 생각이 안나서 자꾸 틀려서 인증하고 비밀번호 리셋 절차 거치고 하기 일쑤고요.

그래서 한 번 날잡아서 자주 가는 사이트의 비번을 다 이렇게 바꿔볼까 했는데... 비밀번호의 "최대길이"를 제한하는 사이트들이 있고ㅠㅠ, 폰에서 입력하기 너무 힘들고ㅠㅠ 등등의 문제가 있더군요ㅋ

좋은 하루 되세요!

jmonaco88의 이미지

완전한 비밀번호는 없습니다.

단지!! 해독하기 어렵고, 해독하는데 오래걸리는 비밀번호는 존재합니다.

복호화의 시간을 오래걸리게 하는 가장 단순한 방법 2가지는

1.문자, 숫자, 특수문자 등등 여러 종류의 조합을 하는겁니다.
2.그리고 자릿수를 늘리는겁니다.

만약 문자와 숫자로만 이루어져 있다면 특수문자는 복호화하는데 배제되기 때문에 그만큼 비교대상이 줄어듭니다.

그리고 자릿수를 늘리면은 비교대상이 그만큼 늘어나겠죠??

그리고 패스워드 크래킹을 할 때 제 생각인데 네트워크상태에서 복호화를 할까요???;;;

원격접속 또는 암호화된 파일을 덤프해와서 복호화 하는게 정상적이지 않을까 생각이 됩니다 ㅎㅎ
그러므로 네트워크 속도는 고려대상이 아니라고 생각됩니다.

jmonaco88의 이미지

패스워드 길게하면 좋은점은,,,

최근에 네이트온 해킹사건 기억나시죠??? 고객들의 정보가 많이 빠져나갔는데요..

만약 그때 패스워드를 8자리로 간단하게 한 사람들의 정보는???

고객정보를 빼간 사람이 네트워크상에서 암호를 해독하지는 않았잖아요~

DB정보만 가져온다음에 여러가지 기법으로 복호화를하면,

8자리를 사용한 사람과 14자리를 사용한 사람의 차이는 분명히 존재했을겁니다.

이정도 예시를 들었으면 이해하시지 않았을까 싶네요 ㅋ

romeo01의 이미지

심심해서 소문자 대문자 특수문자 숫자 들을 랜덤으로 섞어서 14자리 패스워드로 만들어서 100개정도 뽑아주는 걸 만들었는데...패스워드 몇개 털리니까 이걸 쓰는걸 진지하게 고만하게 되더군요.

지금 숫자 메겨서 표로 뽑은 다음에 시범적으로 몇개 사용해보고 있습니다. 예를 들면 70. iV1kZ&xuk5rfP$ 이런식으로 나오고 전 그냥 몇번인지만 외워 놨다가 표보고 쳐넣고...

그런데 웃기는건 패스워드 강도를 검사해주는 곳에서는 저런걸 약~중 강도의 패스워드로 보기도 하더군요;;

많이 쓰는 단어 6천개중에 랜덤으로 4개 뽑아서 배열해주는것도 만들었는데, 너무 패스워드 길이가 길어지는 경우가 있어 포기...ㅋ

jmonaco88의 이미지

iV1kZ&xuk5rfP$ 이런식의 패스워드는 물론 강도가 낮은건아니죠

대문자 알파벳, 소문자알파벳, 특수문자, 숫자

가 들어갔으니 총 4가지종류의 경우의 수를 다 대입해봐야하니 강도가 낮지는않죠

하지만 abCD$%98 이런식으로 14자리 만드는거랑은 크게 다르지 않겠구나 라는 생각이듭니다...

어차피 DB를 털어가서 복호화하는 방식은 레인보우 테이블 이용하거나 브루트포스일텐데..

어찌됫든 경우의수를 무작정 대입하거나 비교해보는거의 차이일테고 ,

암호알고리즘을 풀어버리면?? 비밀번호를 아무리 쌩쇼를해봐야 금방 복호화되는거니 암호알고리즘 해독은 제외하고 이야기해보면..

결론은 암호를 어렵게 써봤자가 아닐까합니다.

방금 저런식으로의 암호는 사람이 기억하기가 쉽지 않습니다. 하지만 컴퓨터한테는 결국에는 4종류의 문자가들어간 문자열일 뿐입니다.

차라리 여러 종류는 포함하되 사람이 알아보기 쉬운걸로 하는게 더 좋을것 같습니다 ^^:

k1d0bus3의 이미지

*해커가 암호화파일가져와 로컬에서 대입하는건 생각도 못했네요.

*그리고 특수문자가 포함된 pw는 허용하지않는 곳이 의외로 많네요.(대/소문자는 안써봐서모르겠습니다.)
참고로 8자리초과 pw를 허용하지 않는 곳도 몇군데 있었습니다.

*향후 OTP가 대안이 되지 않을까요?
구글계정 2단계인증을 쓰고있는데, 좀 번거롭긴해도 아이디어가 참 좋은거 같더라고요.
http://support.google.com/accounts/bin/answer.py?hl=ko&answer=180744
그리고 얼마전 코엑스벤처박람회에서 임베디드제품(현관번호자물쇠)에 OTP적용한것도 있었습니다.
(OTP서버나 부가장비 없이 사용할수있는제품입니다.)

jmonaco88의 이미지

OTP도 결국에는 뚫릴만한 취약점이 있다고 얼핏 듣긴 했습니다...

확실하게는 답변을 못드리겠네요 ^^

OTP 사용하는 곳이 최근 늘고있는 추세지요

확실히 보안이 강화되는점은 맞습니다.

하지만 딜레마인게 보안이 강화되면 강화될수록 편의성이 떨어지는건 어쩔수 없나 봅니다 ㅠㅠ