포럼
코어1.8.0v 암호화 호환성에 대해서
2015.03.09 11:51
암호화 호환성에 대해서
코어1.8.0v 베타버전 에서 암호화가 강력하게 보완된것 같은데요.
pbkdf2 방식은 php에서 사용하는 암호체계인가 궁금하구
기존 가입한 회원들의 비번 md5 체계를 pbkdf2 체계로 변경시킬수 있는 좋은방법이 있는지도 궁금하고
pbkdf2 체계는 php5.3x 이상에서 설치해야 하는건지 그럴려면 호스팅에 ioncube 가 설치해야 하는것인지.
코어1.8.0v 이상의 버전부터는 php5.2.9 v 이하에서는 설치하면 안되는 것인지 ..
앞으로 출시되는 코어1.8.0v 버전이 여러모로 궁금해지네요.기능성능보다 설치환경이 더 궁금함.
php5.3x 부터는 기존 php5.2.9v 이하 버전하고는 엉청나게 다른것 같더라구요.
php5.3x 부터는 쿼리할때 pdo 를 써야 하며..mysql패치 방식은 인식못한다는 말도 있고
그래서 php5.3x 으로 업그레이드를 못하고 있거든요.
댓글 12
-
BJ람보
2015.03.09 11:52
-
XE.md
2015.03.09 11:53
자동 변환됩니다. -
또별
2015.03.09 12:03
코어1.7.11v에 코어1.8.0 으로 뒤집어 쒸우고 나서 관리자가 pbkdf2 로 선택하는 것만으로 자동으로 변경되나요?
회원들이 스스로 변경안해도 되나요? 그러면 걱정할일 없겠네요. 본문내용을 php버전관련 추가했는데요.이왕 궁금증 해소하면 좋겠어요.
-
XE.md
2015.03.09 12:28
로그인하는 시점에 비밀번호를 다시 변환해 저장합니다. -
BJ람보
2015.03.09 12:28
혹시 XE를 1.8에서 1.7으로 다운그레이드 한 상황이라면.. 로그인에 문제가 생길수 잇겟지요?
-
XE.md
2015.03.09 13:57
기존 로그인으로 로그인할 수 없는 상황이 생길 수 있지만, 비밀번호 재발급을 이용하면 됩니다. -
기진곰
2015.03.09 20:48
해당패치 작성자가 드리는 "거의 공식적인" 대답입니다.
> pbkdf2 방식은 php에서 사용하는 암호체계인가
PBKDF2는 RFC 2898에서 정의된 국제 표준 암호화 알고리듬입니다. PHP뿐만 아니라 자바, 닷넷, 루비 등 어떤 언어에서도 이 국제 표준을 구현해놓은 함수를 구해다 쓰기만 하면 100% 호환됩니다. 널리 알려진 SHA256 알고리듬을 기반으로 하고 있지만, 단순 SHA256과 달리 해쉬값을 미리 계산해 둘 수 없기 때문에 회원정보 유출시 훨씬 강력한 보안을 제공합니다. (우리나라 정부 권고에도 SHA256이 포함되어 있으므로, 정부 권고를 따라야 하는 환경이라면 안심하고 PBKDF2를 쓰시면 됩니다.)
> 기존 가입한 회원들의 비번 md5 체계를 pbkdf2 체계로 변경시킬수 있는 좋은방법
기존의 MD5 비번도 쉽게 복호화할 수는 없으므로, 기존 DB를 일괄 변환하는 것은 불가능합니다. 그러나 관리모듈에서 알고리듬을 변경하고 "알고리듬 자동 업그레이드"를 선택해 두면 그 때 이후 각 회원이 처음 로그인하거나 비번을 변경할 때 새 알고리듬으로 자동 변환됩니다. (로그인하는 순간에는 XE가 평문 비번을 알 수 있으므로, 그 기회를 사용해서 변환합니다.) 대부분의 회원들이 자주 로그인하는 사이트라면 늦어도 한두 달 안에 변환이 완료되겠지요.
> pbkdf2 체계는 php5.3x 이상에서 설치해야 하는건지
PBKDF2 알고리듬은 PHP 5.1.2 이상 모든 버전에서 사용 가능합니다. 즉, XE를 사용할 수 있는 서버라면 PBKDF2 사용에도 아무 지장이 없습니다. (PHP 5.3 이상이 필요한 것은 bcrypt 옵션입니다. 5.3.7 미만에서는 아예 화면에 bcrypt 옵션이 표시되지도 않습니다.)
> 그럴려면 호스팅에 ioncube 가 설치해야 하는것인지.
ioncube와는 무관합니다.
> php5.3x 부터는 쿼리할때 pdo 를 써야 하며..mysql패치 방식은 인식못한다는
그건 PHP 5.5부터입니다. 5.3은 안심하고 설치하셔도 됩니다. (5.5에서도 특정 에러를 꺼놓으면 문제 없이 사용 가능합니다. 저는 5.5에서 XE를 잘 쓰고 있습니다 ^^)
> 기타
관리 모듈에서 알고리듬을 변경하더라도 기존 회원들이 로그인하는 데는 아무 문제가 없습니다. 이랬다 저랬다 마구 바꿔대도 상관없다는 뜻이죠. 저장된 암호가 MD5 포맷인 경우 MD5로 비교하고, PBKDF2 포맷인 경우 PBKDF2로 비교하고... 그 밖에 MySQL PASSWORD, bcrypt, md5+sha1+md5 ($useSha1 방식) 등 다양한 포맷을 자동으로 인식하여 처리합니다.
단, 알고리듬 변경 후 XE 1.7로 다운그레이드할 경우 1.7은 새 알고리듬을 인식하지 못해서 로그인이 되지 않으므로 비번 재발급을 받으셔야 합니다.
XE 1.8 설치환경은 XE 1.7과 100% 동일한 것으로 알고 있습니다. 즉, 기존에 1.7을 잘 쓰고 계셨다면 서버 환경을 변경할 필요는 전혀 없습니다.알고리듬 비교 자료: http://helloworld.naver.com/helloworld/textyle/318732
-
또별
2015.03.10 06:12
와하..기진곰님..똑소리 똑부러지게 잘 하시네요.감탄..해요..^*^.. 갈증해소..된것 같아요.감사합니다.
이왕 한가지 기진곰님께. php.5.5v 부터는
mysql 쿼리사용방법 예전방식은 에러나는가요? pdo방식으로만 사용해야 하나요?
xe페이지에 외부 php파일(예전 방식 쿼리) 을 iframe으로 삽입해서 사용하는거 있는데,고민이네요.왜냐면 개발자님들 개발모듈중에는 php 5.3v 이상에서 사용하는 모듈들이 나오기 시작해서
php5.3으로 업데이트 해야 할것 같은데 php업그레이드 하자니 외부php파일의 예전쿼리 때문에 에러날것 같고php5.3 업그레이드 안하자니. 새로운 모듈들 사용할수 없을것 같고.그러네요.
-
기진곰
2015.03.10 09:12
PHP 5.5에서 mysql 관련 함수를 사용하면 E_DEPRECATED 에러가 납니다.
단, error_reporting 설정에서 E_DEPRECATED를 제외하면 괜찮습니다.
(XE의 config.inc.php 참고)
mysql 모듈이 당장 없어진 것은 아니고, 차세대 버전(PHP 7)에서 없어질 예정이므로
이제부터 차차 mysqli 또는 pdo 방식으로 전환하라고
미리 공지하는 차원에서 에러를 뿜는 거고요...
E_DEPRECATED는 치명적인 에러가 아니기 때문에
실제 작동에는 문제가 없어요.
-
또별
2015.03.16 13:07
@기진곰 님 "~이제부터 차차 mysqli 또는 pdo 방식 으로 전환하라고~" 에 대해서
pdo 방식은 mysql에서 사용 못하는 개념인가요?
그리고 기존 mysql connect 쿼리 방식은 php 5.3까지만 쓸수 있고 php 5.4 부터 못쓰고 pdo 방식만 써야 되는지요?
별도로 만들어 쓰는 php파일안에 기존 mysql connect 쿼리 방식과 pdo 방식을 혼합해서 사용하고 있는데
에러날까봐 php 업그레이드를 못하고 있네요.
-
기진곰
2015.03.16 13:10
1) PDO 방식으로도 당연히 MySQL 사용 가능합니다.
2) 위에 여러 번 적었듯이, 모든 PHP 5.X 버전에서는 mysql connect 사용 가능합니다.
3) 여러 방식을 혼합 사용하는 것은 좋지 않습니다. 불필요한 DB 커넥션이 발생합니다.
-
dididi
2015.03.16 10:18
- 최근의 웹 서비스들의 암호화 환경에 대해서 아래의 글도 참고하시면 이번 XE의 암호화 향상이 매우 환영할만한 일인것을 다시한번 확인할 수 있습니다. 작성자분의 좋은 패치 감사합니다.
- [패스워드 보안의 기술]( http://www.codeok.net/%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C%20%EB%B3%B4%EC%95%88%EC%9D%98%20%EA%B8%B0%EC%88%A0 )
@kijin