'SHA-512'에 해당되는 글 1건

  1. 2012.08.11 [초보보안-20강] 리눅스 비밀번호 md5에서 SHA-512로 변경하기 (2)

안녕하세요., 엔시스입니다. 최근 개인정보보호에 대하여 다양한 연구를 하다보니 법,제도에서부터 기술적인 부분까지 공부하게 됩니다. 그래서 더욱 이 분야가 어렵고 포괄적이지 않은가 하는 생각을 해 봅니다.


1. 리눅스 시스템의 비밀번호 방식은 MD5 해쉬함수


작년에 모 포털사 개인정보 유출시 3500만건인데 비밀번호가 유출이 되었는데 암호화 부문이 관건이었습니다. 현재는 소송에서 1심에서 승소판결을 구미에 변호사분 한분이 이끌어 냈으며, 2심이 진행되고 있습니다. 이때 핵심은 비밀번호 암호화 방식일 것입니다. MD5는 과연 안전한가?



우리가 기본적으로 리눅스 시스템을 설치하게 되면 MD5로 된 알고리즘으로 비밀번호가 저장이 됩니다. 




                                        [그림 -1] 리눅스에서 사용하고 있는 알고리즘 알아보기



위 [그림-1]에서와 같이 패스워드 알고리즘은 MD5로 나타내고 있습니다. 하지만 MD5는 암호 알고리즘이기 보다는 해쉬함수입니다. 


그럼 해쉬함수가 무엇인지 알아 볼까요?



해쉬함수는 (Hash Function)는 암호기법과 키가 필요없는 암호기법이라 합니다. 즉, 메세지 다이제스트라고도 불리우는 해쉬함수는 키를 사용하지 않는 대신에 원본 메세지에 기반하여 고정된 길이의 해쉬 값을 생성하게 되지요.


그 해쉬값은 메세지가 변형이 되었을때 초기에 해쉬값고 비교해 보아 다르게 나오면 메세지가 변형이 되었다고 판단하게 되는 것입니다. 이러한 해쉬는 무결성은 제공하지만 기밀성은 제공하지 않습니다.  해쉬함수중에 대표적인 것이 바로 md5입니다. 그외에 SHA-256, SHA-512등이 있습니다. 



하지만 MD5는 컴퓨팅 파워의 증가로 인하여  꺠어진다는 것이 증명이 되었습니다. 위험하다는 것이죠. 

만약, 기본값인 MD5로 개인정보인 비밀번호를 그대로 놔 두었고 그것이 유출되었다면 과연 안전할까요? 아마도 크랙하면 충분히 비밀번호를 크랙 할 수있을 것입니다. 



2. MD5보다 더 강력한 SHA-512로 변경하려면 


그럼 기본값이 MD5를 간단하게 조금 강력한 SHA-512로 변경 할 수있을까요? 네..가능하기 떄문에 포스팅 하는 것이겠지요.




                                     [그림-2] SHA-512 함수로 변경 하는 방법



간단한 명령어 몇줄이면 변경 할수 있는 방법이 있습니다. 위 그림-2 의 방법대로 명령어를 치면 됩니다. 그리고나서 다시한번 패스워드 알고리즘을 살펴 보면 변경 된 것을 알수 있습니다. 가장 합리적인 방법으로 개인정보를 수집하는 방법은 타인의 아이디와 패스워드를 힉득하여 로그인 절차를 거쳐서 개인정보를 수집하는 것이겠지요.


따라서 , 리눅스에서 제공하는 기본적인 패스워드 알고리즘 방법으로는 안전하다 할수없으므로 관리자는 조금 더 신경을 기울여 위와 같은 작업을 해 주면 혹시나 모를 비밀번호 유출에도 안전하게 대처하는 방법이 될 것입니다. 개인정보보호하니까 무조건 솔루션 도입만 생각하기 보다는 우선 처리할 수 있는 다양한 계층적 방어막을 사용하는 것이 바람직한 보안이라 할 것입니다.  이중 삼중으로 철처한 보안을 하는 것이지요. 이는 추후 개인정보 유출시 개인정보처리자의 입증책임에도 관련이 될 것입니다.



3. 일반 계정 사용자는 어떻게 적용시킬까?


시스템 전반적인 것은 MD5 -> SHA-512로 변경을 해 놓았지만 현재 각 일반 유저들이 사용하는 패스워드는 여전히 MD5 형태로 저장이 되어 있습니다. 이러한 일반 사용자들 비밀번호를 사용자가 변경 하도록 유도를 하여야 합니다. 다음은 그 방법입니다. 





                              [그림 -3] 일반사용자에게 강제적인 비밀번호변경 하게 하는 방법


위 그림-3과 같이 명령어 한줄이면 아래 그림-4와 같이 다음 로그인 접속시에 강제적으로 패스워드를 변경하게끔 할수있습니다.  유용한 방법이겠지요..다만 계정 마다 일일이 명령을 내려 주어야 해서 수많은 계정을 관리할때에는 수작업이 필요하겠습니다. 아니면 스크립트를 만들어서 사용하면 조금 더 편리하게 작업 할 수있겠지요.




                    [그림-4] 일바 사용자 계정으로 로그인시 강제적인 패스워드 변경메세지




결론 


개인정보를 보호하는 연구를 지속적으로 하면서 운영체제와 시스템에서 하나씩 방법을 찾아 차곡차곡 쌓아간다면 굳이 많은 비용을 들이지 않더라도 보호조치가 되지 않을까 생각해 봅니다. 위 포스팅은 그 일부분에 지나지 않겠지만 우리가 모르는 또 다른 방법이 존재 한다면 그것을 연구하고 조직과 기업에 적용하여 고객의 정보를 안전하게 보호하는 것이 사회적책임을 다하는 길이라 생각이 듭니다. 중소기업이라고 무조건 우리는 돈도 없고 인력도 없고 안되는 방법만 부정적인 생각만 하는 것이 아닌 될수 있는 방법을 생각해 보면 하나두개씩 나오게 마련이겠지요. 혹자는 이런거 하나가지고 호들갑이냐고 이야기 하겠지만 아는 만큼 보인다라는 말이 있습니다. 지식은 쌓이고 쌓여서 바로 커다란 통찰력을 가져 오는 것이지요. 기술적 보호조치에서 돈 안들이고 할 수있는 방법이 있으면 찾아서 해야 하지 않을까요?  이상 엔시스였습니다. @엔시스.

2012-08-11 10:59


참고 사이트

http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-upgrading-password-hashing/ 




신고
Posted by 엔시스