포럼
XE 암호와방식 MD5의 문제점
2011.11.27 02:40
안녕하세요 저는 도라미입니다. 오늘 심심 삼아 XE의 디비를 건드려보았습니다.
즉 회원가입을 할떄 가입의 정보를 저장하는 디비를 말합니다.
대부분이 xe_member 로 되있을듯 한데요.
XE는 MD5 암호와를 사용합니다.
개인서버입니다.오해없길 바랍니다.
사용하는 사람마다 다르겠지만 주로 PHPMYADMIN을 사용하죠?
로그인 합니다.
2.디비에 접근합니다.
3.디비의 저의경우는 in 를써써 in-member 입니다.보통 xe_member 입니다.
가입한 사람들이 리스트가보입니다. 보안상 다 삭제하였습니다.
영어랑 썩어쓴 암호화된 비번도 1-5분정도의 시간이 걸렸습니다.
프로그램 이름은 밝히지않겠습니다만, MD5 는 2008년에 알고리즘이 완전히 알려지게 되면서
보안암호화용으로는 적합하지않다고 발표된 자료도 많습니다.
실제로 단순성을 강조하다 S사의 N서비스 해킹사건때 S사의 N서비스의 비밀번호 암호화는
MD5로 암호화되있었기때문에 암호가 풀렸을 가능성은 큽니다.
XE게발자님들 개인정보 암호화를 더 강화시키는것이 더 괜찮은 방법아닐까요?
실제로 MD5는 파일 무결성 검사 정도에 사용 됩니다. 요즘들어서는 무결성 검사에 SHA1을 쓰는 추세죠.
SHA1, 256, 512 같은 암호화를 이용하는것은 어떨까요???
xe 1.6.0에서는 MD5보다 강력한 암호화방식을 적용했으면 좋겠습니다.
댓글 111
-
코리스™
2011.11.27 05:05
-
모조키
2011.11.27 08:32
md5는 이미 공공재 ㅎㅎ
-
snows96
2011.11.27 08:42
사실...... f408a83349bec9bd5a3b33071e00d4c9, 671cfbc51ad742408fc1b871f04eddb5 이키를 알고있어서 푸는게 아닌, 이미 해당 프로그램이 사용자들이 자주쓰거나 http://www.md5encryption.com/ 이런사이트 들에서 내 비번을 암호화 시킬 때 바로바로 D/B에 f408a83349bec9bd5a3b33071e00d4c9, 671cfbc51ad742408fc1b871f04eddb5 이 비번에 대한 값을 142332, jec1004 이라고 이미 알고있다가 매칭해서 풀기때문에 암호화를 푼 것 처럼 보입니다. 물론 decryption 사이트에서 MD5의 특성상 한번 암호화되면 다시 복호화하는게 위의 처럼 이미 알고있는 키가 아닐 경우 모르기 때문에 이 때에는 이미 알려진 비번이 아닐 경우 풀어버리지 못합니다.
제 사이트의 회원님들도 검색 결과 쉬운비번은 다 나오더군요..... 하지만 저처럼 수퍼비번 (16~17자리....ㅋ) 쓰는 사람은 아직 못당해냅니다. 회원들이 너무 잘 알려진 비번쓰는것도 그렇지만 나온지 오래되어서 원만한 비번은 저런식으로 사이트에 저장해서 보여주기 때문에 조금 더 여려운.... 독창적이고 나만 알 수 있게 해야 비번이 풀리지 않습니다...... 왜냐... 대중성이 있으면 누구나 알고있는거고 어느 멍청이가 저 사이트에 암호화시켜보면서 등록시켜버리거든요. (물론 복호화는 이미 알고있는걸 푸는거고 모르는거는 손도못댑니다)
이런식으로 이미 암호화된 결과가 f408a83349bec9bd5a3b33071e00d4c9, 671cfbc51ad742408fc1b871f04eddb5 = 142332, jec1004 이렇게 알아둔 뒤에 풀으라 하면 당연히 풉니다.... 아마 세계 1위 암호화 알고리즘이라 하더라도 단순하게 암호화를 하는 경우에 암호화 전 상태랑 암호화 후의 상태 알고있다면 그 누구라도 풀겁니다.
일단, 서버(관리자)측에서는 사용자마다 서로 다른 방식으로, 혹은 서로 다른 키값으로 암호화 시키는 것이 지금으로선 차선책입니다. 하지만 그렇게 하려면 XE는 CMS툴이 아니라 아마 개발팀 중 하나가 암호화 전문가가 오셔셔 그 기능을 담당하셔야지 될겁니다..... 그리고 그 부분은 복잡해셔 유료료 적용되겠죠..... 그래서 아마 암호화는 쉽지만 그에 비해서 비교적 푸는게 어려운 MD5를 선택한 듯 합니다.
제일 중요한건 지금은 암호를 길게, 그리고 남들은 모르는 것들로 구성되어진 암호를 만드시는 것이 가장 현명한 방법입니다.
참고로 저도 XE가 좋아서 XE로 사이트 2~3개 만들어 운영하고 컴에 관심있는 얘한테 전도까지 한 중학생이고요.... 좀있음 고등학생(디미고) 입니다ㅋ
-
ㅠ도라에몽ㅠ
2011.11.27 10:54
저는 부분적으로 알고리즘을 설정하여 대입하여 풀었습니다 즉.프로그램이 이 암호화된 비밀번호를 모르고있었다는거죠. 1~9까지 설정하고 a에서z까지 설정해하였다는 뜻입니다.그리고 한개는 테스트용이였지만 다른두번째비밀번호는 모르는사람 즉 회원의 비밀번호를 푼것잇이였습니다.그래서 저는 비밀번호를 몰랐지요.관리자비번이 풀리는날엔 상당이 포털같은 싸이트에 위험할것 같다는 생각이 들어서 올려본것입니다. 해킹은 우리가 설마하는 부분으로 공격하니깐요
-
zero28
2012.01.11 04:08
무슨 암호를 알고 풀어 어이 없네요
쉬운 패턴이든 랜덤한 패턴이든 암호 푸는 프로그램이 곳곳에 나돌고
일반 중고딩도 암호를 풀 정도라는 것은 사실 매우 심각한 문제인데?
비교적 푸는 게 어려운? 아무 데다 대충 갖다 쓰고 공격법에 해독프로그램 까지 천지에 나도는 걸 두고 뭐?
그냥 sha1만 해도 보완이 될 걸 웬 궤변을 ㅎㅎ 참나
-
무한탐구
2011.11.27 08:49
암호넣을때 일정길이이상.대문자 소문자. 숫자 기호 섞고 연속된문자는 입력안되게하면 ㅎㅎㅎ -
snows96
2011.11.27 09:02
그나저나 회원수 많은신가봐요... 분명 in_member에 2명이랬는데 LIST는 풀로.... 우와..... 부럽습니다ㅠㅠ 나도 언제 저런 사이트 운영해볼까ㅠㅠ
-
모조키
2011.11.27 09:20
비밀번호는 못풀게 하는게 목적이 아니고 귀찮게 하는게 목적이니까요.. (못푸는 비밀번호는 사실상 없잖아요..)
되도록이면 더 꼬고 꼬아 놓는게 맞다고 생각합니다.
사이트 생성할때 발생하는 특정한 문자열을 암호생성할때 삽입한다던가 하는 방식으로
(도메인과 날짜와 아이피와 맥어드레스 등으로 뭔가를 만들어 낼수 있겠죠?ㅎ)
적어도 기존에 공개된 데이터시트에 존재하는 방법으로는 접근하기 힘들게 만들어 주었으면 좋겠습니다.
md5는 아무래도 좀.. ㅎㅎ ;;;
자물쇠옆에 열쇠도 있는 느낌이랄까...
-
ㅠ도라에몽ㅠ
2011.11.27 10:56
아직까지 완전희 안풀리는 암호화방식도 많습니다 근데 Xe가 완전희 알고리즘이 풀린 암호화방식을 사용하는게 문제라고 생각합니다.
-
tobor
2011.11.27 11:33
mcrypt 가 좋습니다. 물론 서버에서 mcrypt 모듈이 지원되어야하지만..
<?php
/* 개인키를 모르면 복호화 불가능 */function password_crypt($value) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $value, $value, MCRYPT_MODE_ECB, $iv);
return trim(base64_encode($crypt));
}// 테스트
echo password_crypt('1234');
?> -
ㅠ도라에몽ㅠ
2011.11.27 11:44
개인서버라서 만들수는 있다만 xe에 적용가능 한가요?
-
銀童
2011.11.27 12:15
mcrypt 는 결국 소스나 관리자가 알고있다면 복호화가 가능해서 의미가 없을꺼같습니다. 패스워드 저장하는데 복호화가 가능한 알고리즘을 쓸수는 없지요.
-
tobor
2011.11.27 12:24
복호화가 가능한 알고리즘이라도 개인키를 모르니 복호화가 불가능합니다.
-
銀童
2011.11.27 12:42
아하? 패스워드를 패스워드로 암호화하는거군요
그래 -_-;; 이걸 아무생각없이 단순히 생각하고 있었다니 뇌가 굳어가나 봅니다.
-
데벨
2011.11.27 12:07
저도 같은 생각이엿습니다.
난다날아님이 만드신 주민등록번호 저장하는것도 MD5 해시로 저장하고 비밀번호도 MD5 해시로하고
최근저도 같은생각을하고있엇는데.. DB 털리면 끝일꺼같다고...
-
ㅠ도라에몽ㅠ
2011.11.27 12:23
숫자는 1분안에 풀립니다 ㅎㅎ
-
데벨
2011.11.27 12:31
심각하네요...
-
ㅠ도라에몽ㅠ
2011.11.27 12:43
회원가입확장모듈 MD5해시를 풀고있습니다.되는지 결과를 지켜보겠습니다.
노트북이라서 그래픽드라이버상 속도가 제한되어있어 27.2M의 저질의 속도를 보여줍니다...
대탑이라면 270M의 속도를 냅니다,,ㄷㄷ
-
데벨
2011.11.27 13:36
주민등록번호까지 뚫리면 ... ㄷㄷ..
-
독도2005
2011.11.27 13:28
MD5 암호화방식 문제가 심각한데요...
XE 개발팀에서 굳이 보안에 취약한 MD5 방식을 채택 할 이유가 없었을텐데?? 왜 MD5 방식을 채택한걸까요?
-
ㅠ도라에몽ㅠ
2011.11.27 13:43
이유는 1가지로 보여집니다.
일단 MD5해시방식은 적용이 쉽습니다.즉 암호화하기 쉽다는 것입니다.암호화를 불러올떄도 편하구요.
그장점을 네이트가 이용하다가 봉변을 보았지요.
-
데벨
2011.11.27 13:40
이런 .. 텍스트큐브도 관리자의 비밀번호를 MD5 해시로 저장하는군요 ... 이.럴.수.가
-
ㅠ도라에몽ㅠ
2011.11.27 13:46
워드프레스는 왠지 암호화방식이 달라보이더군요..기호와 숫자와 영어가 썩여있는것을보니...
XE는 든든한지원군 nhn Corp이 있어서 네이버개발자들을 이용해서 디비암호화정도는 바꿔주실수있을것 같기도한데...
(단지 저생각.....)
-
데벨
2011.11.27 13:48
설마 네이버도 MD5로...? (농담입니다 ㅋㅋ 죄송합니다 ㅠ.ㅠ)
-
criuce
2011.11.27 13:56
이 글을 보고 많은 분들이 오해하실까봐 전공자 입장에서 답변을 답니다.
MD5는 복호화가 불가능한 대표적인 공개키 암호화 알고리즘 입니다. 즉 암호화된 해쉬값을 가지고 원래의 암호를 추출해 내는게 아니라 암호를 하나하나 일일히 대입해 가면서 알아내야 하죠.
이 때문에 하나의 암호를 풀어내는데 상당한 시간을 요하는데 이 글에서 테스트는 문자와 숫자 조합으로 진행을 하였지만 실제로 해커가 복호를 하기 위해선 대문자, 특수기호까지 추가 되기 때문에 위 테스트보다 수십배 많은 시간이 필요합니다. 그리고 복호된 키도 더 다양해 지구요.(위에선 두가지)
MD5는 이미 많이 사용하고 있는 암호화 알고리즘이기 때문에 정말로 MD5가 문제가 있다면 이미 난리가 났었을겁니다. 다만 사용자 입장에선 보다 안전한 암호화를 위해 국정원에서 권장하는 방식인 영대문자+영소문자+숫자+특문 조합으로 암호를 생성하시는게 좋습니다.
-
ㅠ도라에몽ㅠ
2011.11.27 14:03
네....오해를 하게한듯한것 죄송하지만...그래도 비전문가가 풀정도면 암호화가 약하다는 생각을 해보았습니다.
은근희 회원가입할때 간단한 비번쓰시는분이 많거든요....
-
criuce
2011.11.27 14:04
네 그래서 사이트 관리자들은 회원들이 보다 안전한 비밀번호를 사용하도록 권장하고 회원정보가 유출되지 않도록 최선을 다해야겠죠.
-
ㅠ도라에몽ㅠ
2011.11.27 14:07
회원분이 안지켜주시니 문제지요 ㅡㅡ^
좀 지켜줬으면 좋을텐데...
-
tobor
2011.11.27 14:24
MD5는 보통 파일의 무결성 검사등을할때 많이쓰이고있죠.. 비밀번호에 MD5를 사용하는건 좋지 않습니다. 이미 MD5 결함도 발견되었구요.. 요즘은 컴퓨터 성능이 좋아서 대입해서 찾아내는건 쉽죠..
-
ㅠ도라에몽ㅠ
2011.11.27 14:29
cpu의 발달보단 gpu의 발달의 힘이 큰듯합니다.
대입하는데 많이안걸리더라구요 그래픽코어를 쓰니
-
criuce
2011.11.27 14:46
시스템 성능이 좋아짐에 따라서 암호화 알고리즘 또한 발전하고 있는데요 sha-2 그리고 현재 작업중이라는 sha-3가 있겠네요. 하지만 이런 암호화 알고리즘의 경우 해쉬값을 생성하는데 많은 리소스가 필요하기 때문에 아직도 md5나 sha-1이 많이 사용되고 있습니다. 아마 이런 문제 때문에 XE에서도 위의 알고리즘을 적용하지 않았나 생각되네요.
-
ㅠ도라에몽ㅠ
2011.11.27 15:18
아무래도 장점은 단점을 불러오죠......
-
sol
2011.11.27 16:02
암호화 방법이 어떻게 되든 XE는 오픈소스입니다. 즉 암호하 하는 방법도 노출됩니다.
휴래스틱한 방법으로 사용자 비밀번호를 암호화해서 매칭하는 방법에는 답이 되지 않는 것 같습니다.
또한 키방식의 암호화는 어딘가에 키가 저장되어야 하는데요.
이 키와 함께 암호화된 사용자 비밀번호가 노출된다면, (아무래도 같이 노출되는 경우가 많겠죠)
이 경우 100% 복호화가 가능하게 됩니다.
사용자 분들이 비밀번호를 길고 복잡하게 쓰시는 것이 현실적인 대안일 것 같습니다.
-
ㅠ도라에몽ㅠ
2011.11.27 16:13
그러긴하죠...
하지만...
암호화에 영어,숫자로 암호와 되고있습니다.요기에 기호 즉(.!$) 이런것도 썩어 암호화는 어떤가요?
-
tobor
2011.11.27 18:38
위 댓글에 예문을 만들어놨지만.. 키는 저장할필요가없습니다.^^
-
ㅠ도라에몽ㅠ
2011.11.27 19:21
그뜻이였군요 -
K.Soma
2011.11.27 23:20
키가 없으면 암호화해서 비교할때는 어떻게 하나요 다른 값이 나올것같은데?? 궁금...
-
tobor
2011.11.27 23:29
키는 있습니다. 위 제가쓴 댓글 예문을 참고하세요.^^
-
K.Soma
2011.11.27 23:35
랜덤키가 아니라면;;; 저장된 고정키일텐데;;; 그러면 소스에 포함되지 않나요? 램덤키면 어딘가 저장을 해둬야 다음에 로그인할때 쓸테구;;;
-
독도2005
2011.11.28 12:41
오픈소스인지라 암호화 방식이 노출되는건 어쩔 수 없습니다만..
최소한 MD5는 피해야 되지 않을까요???
-
ToFinder
2011.11.27 23:33
여러가지 방식이 좋을 듯 하지만 개인적으로는 아직 다른 방식이 필요로 할지 의문이 드네요.
저 역시 개인 포럼을 계획중에 있지만 필요에 의한것이라면 XE의 코드수정으로 해당 암호화코드를 구매를 하여서
보안에 신중할 듯 합니다.
하지만 XE는 오픈소스이고 가령 nhn에서 사용하는 암/복호화 알고리즘을 사용하여 준다면
해커들이 가장 좋다고 생각할 듯 하네요. 기본적인 기술을 얻을 수 있으니.
마음만 먹는다면 어떠한 공개 알고리즘에 관여되어서는 다 풀수 있다고 생각을 합니다.
하지만 제가 생각하는것은 앞으로도의 진행되어져야 할 부분이지만. 개인서버에서 받아야 하는부분에 대해서
극 소수만을 얻을 수 있고 관리만이 생명이라고 생각합니다.
이메일 / 암호 / 닉네임 ( 주요 받는것 )
나머지는 아이핀등을 활용 뭐 이런것이지요.
또 다른것은 트위터 등등의 연결등으로 활용하는 방안등이 있을 것 같습니다.
XE의 알고리즘을 변경하는것보다는 다른 활용방안을 찾아보는것이 보안에 좋을 듯 하여보입니다.
뭐 자기전에 글쩍이는거이는것이라서 두서없지만.. 앞으로 XE가 풀어가야 할 문제점인듯하여보이고.
현제로 다른방안을 많이 찾아봐야할 문제점이고 조금만 조심하면 될 문제인듯합니다.
-
K.Soma
2011.11.28 00:31
라지엘님이 ≒ 다구리(물량, 쪽수)에 장사없다 는 군요 ㅎ
-
misol
2011.11.28 00:31
이런 대화에 끼는 것이 민망하지만, 서버 설정을 다룰 수 있는 부분에 접근하는 부분을 IP 보안이나 여러가지 이용해서 ㅠㅎㅎ(서버보안은 알아서 잘!) 뚫리지 않도록 가능한 조치를 잘 해주시는게 좋을 것 같아요. (md5 해시된 값도 가능한 공개되지 않도록)
그리고 일반 사용자 부분은 비밀번호를 가능한 어렵게 하도록 유도 하시는게 좋고, 일정 횟수이상 비밀번호가 틀리면, 로그인에 패널티를 주는 방식 (특수 기호를 입력하게 이미지를 준다든지, 로그인을 일정시간 못하게 한다든지, 본인 인증을 하게 한다든지 등등. 상당히 허술하지만, http://www.xpressengine.com/index.php?&mid=download&package_srl=18982205 같은 방식도 그 일부)을 사용하는 것이 좋을 것 같습니다.
무엇보다 문제는, XE의 기본 회원 모듈에는 일정 횟수 비밀번호가 틀려도 그에 대해서 어떤 방비책이 없다는거 아닐까요?.. (무한 대입 가능..)
-
순수의시절
2011.11.28 10:31
저아는 해외 친구중에 홍콩에서 해킹하는 녀석이 있는데, 크레딧 카드부터 md5 해킹은 걍 하는것 같더라구요..
db부터 해킹하면 나머진 다 가능한듯 보입니다. -
혜향
2012.01.12 00:01
MD5가 대칭 암호화 방식이잖아요. RSA 같은 비대칭 암호화방식을 적용하는것이 어떨까요?
-
쿨키드
2012.01.12 05:17
아무래도 오픈 소스다 보니 어떤 알고리즘을 선택해도 마찬가지 일꺼군요
번거롭지만 자기가 암호화 방식을 바꾸는 방법 밖에는... 뭐 서버 자체가 해킹 당하면 이조차도 소용없지만 암호화 알고리즘 부분 소스를 봐야 하니 그나마 해커에게 조금이나마 시간을 더 걸리게 하는 방법이겟죠
XE를 잘 사용하고는 있지만 날고 기는 해커들이 요즘은 너무 많아서 항상 암호화 알고리즘 떄문에 XE 홈페이지를 만들고도 중요한 정보는 못올리겠더라구요
-
zero28
2012.01.12 06:45
왜 쌍팔년도 암호화방식을 쓰는지
넥슨 개털린 걸 보고도 사용자의 패턴이 단순한 게 문제라느니 하는 궤변이나 하고
수시로 암호 바꾸라는 말과 다를 게 뭔지?
당최 이해할래야 할 수가 없는 XE
속도 느린 단점 때문에 너덜너덜한 md5를 끝까지 안고 가려는지?
-
무한탐구
2012.01.12 11:49
암호를 쪼개서 암호화한 다음 여러서버에 분산 저장. -ㅅ-
-
무한탐구
2012.01.12 11:55
MD5 대신 AES !!!
-
도라미
2012.01.12 13:28
암호화 방식을 개인이바꾸어 패치법 내놔도 삭제한다고 하는데 어찌할방법이 없는듯.
xe 정말 오픈소스 인가요???
대단하네요... 정말 중학생인지...?? ^^;;;