A3Security 뉴스레터

  • 고객의소리
  • 보안문의
  • A3Security In News
  • 이달의정보보호세미나
  • Mar. 2012 | Main
  • A3보안권고
  • 솔루션연구
  • 이달의보안이야기
  •  

A3Security Newsletter > 이달의 보안솔루션

개인정보보호법을 만족시키는 유닉스 시스템 비밀번호 설정


 

1. 개요

개인정보보호법이 시행되면서 많은 기업들이 법에 대한 컴플라이언스를 만족시키고, 개인정보를 안전하게 처리하기 위하여 내부 정책/지침 제개정, 기술적 관리적 보호조치 수행, 개인정보보호 교육체계 마련 등 다양한 준비를 하고 있다. 그 중 본 기고에서는 개인정보 취급자의 비밀번호 관리에 초점을 맞추어 유닉스 시스템 비밀번호를 개인정보보호법에 준수할 수 있도록 설정하는 방법에 대해 알아보도록 하겠다.

 

개인정보를 보유하고 있는 많은 기업들이 안정성 등의 이유로 개인정보처리시스템의 OS로 유닉스를 선택하고 있다. 하지만 유닉스 시스템은 기본적으로 비밀번호 암호화를 위해 자체 해쉬 알고리즘을 사용한 crypt함수(DES를 기반으로 한 해쉬함수)를 사용하여 패스워드를 암호화 하고 있으며 이 함수는 MD5보다 보안강도가 약하고 패스워드 자리 수를 8자리 보다 길게 설정하지 못하는 등의 문제를 가지고 있어 개인정보보호법(정확하게는 개인정보의 안정성 확보조치 기준 고시)에서 말하고 있는 『비밀번호 작성규칙』과 『안전한 알고리즘으로 암호화』를 만족시키기 어렵다.

 

2. 컴플라이언스 요구사항

먼저 개인정보보호법 내에 비밀번호 관련 요구 사항들은 어떠한 것들이 있는지 알아보자.
[표 1]과 같이 『개인정보보호법』에는 안전성 확보에 필요한 기술적•관리적•물리적 조치를 해야 한다고 명시되어 있다. 다시 『시행령』을 살펴보면 개인정보의 안전한 처리를 위한 내부 관리계획을 수립하고 시행해야 하며, 개인정보를 안전하게 저장할 수 있는 암호화 기술을 적용 하거나 또는 이에 상응하는 조치를 시행 하라고 되어 있다. 또한 안정성 확보조치에 대한 세부 기준은 행정안전부 장관이 정하여 고시한다고 되어있다. 다시『개인정보의 안정성 확보조치 기준 고시』를 살펴보면, 비밀번호 관련하여 크게 두 가지가 언급되어 있는데, 첫 번째는 안전한 비밀번호를 설정할 수 있도록 비밀번호 작성규칙을 수립하여 적용하라는 것이고, 두 번째는 비밀번호를 안전한 해쉬 알고리즘을 사용하여 암호화 하라는 것이다. 해설서에는 조금 더 구체적으로 아래와 같이 명시하고 있다.

 

  • ∙ 최소 10자리 이상: 영대문자(A~Z, 26개), 영소문자(a~z, 26개), 숫자(0~9, 10개) 및 특수문자(32개) 중 2종류 이상으로 구성한 경우
  • ∙ 최소 8자리 이상: 영대문자(A~Z, 26개), 영소문자(a~z, 26개), 숫자(0~9, 10개) 및 특수문자(32개) 중 3종류 이상으로 구성한 경우
  • ∙ 비밀번호의 주기적인 변경: 비밀번호에 유효기간을 설정하고, 적어도 6개월마다 변경함으로써 동일한 비밀번호를 장기간 사용하지 않는다.
  • ∙ 동일한 비밀번호 사용 제한: 2개의 비밀번호를 교대로 사용하지 않는다.
개인정보보호법(제정 2011. 3.29 제10464호)
제4장 개인정보의 안전한 관리

 

제29조(안전조치의무) 개인정보처리자는 개인정보가 분실•도난•유출•변조 또는 훼손되지 아니하도록 내부 관리계획 수립, 접속기록 보관 등 대통령령으로 정하는 바에 따라 안전성 확보에 필요한 기술적•관리적 및 물리적 조치를 하여야 한다.

 

제73조(벌칙) 다음 각 호의 어느 하나에 해당하는 자는 2년 이하의 징역 또는 1천만원 이하의 벌금에 처한다.
1. 제24조제3항, 제25조제6항 또는 제29조를 위반하여 안전성 확보에 필요한 조치를 하지 아니하여 개인정보를 분실•도난•유출•변조 또는 훼손당한 자

 

제75조(과태료) ① 다음 각 호의 어느 하나에 해당하는 자에게는 5천만원 이하의 과태료를 부과한다
6. 제24조제3항, 제25조제6항 또는 제29조를 위반하여 안전성 확보에 필요한 조치를 하지 아니한 자

 

시행령(제정 2011. 9.29 제23169호)
제5장 개인정보의 안전한 관리

 

제30조(개인정보의 안전성 확보 조치)
① 개인정보처리자는 법 제29조에 따라 다음 각 호의 안전성 확보 조치를 하여야 한다.
1. 개인정보의 안전한 처리를 위한 내부 관리계획의 수립•시행
3. 개인정보를 안전하게 저장•전송할 수 있는 암호화 기술의 적용 또는 이에 상응하는 조치
③ 제1항에 따른 안전성 확보 조치에 관한 세부 기준은 행정안전부장관이 정하여 고시한다.

 

개인정보의 안전성 확보조치 기준 고시(행정안전부고시제2011-43호)
 
 
제5조(비밀번호 관리)

개인정보처리자는 개인정보취급자 또는 정보주체가 안전한 비밀번호를 설정하여 이행할 수 있도록 비밀번호 작성규칙을 수립하여 적용하여야 한다.

 
제7조(개인정보의 암호화)

① 영 제21조 및 영 제30조제1항제3호에 따라 암호화하여야 하는 개인정보는 고유식별정보, 비밀번호 및 바이오정보를 말한다.
③ 개인정보처리자는 비밀번호 및 바이오정보는 암호화하여 저장하여야 한다. 단 비밀번호를 저장하는 경우에는 복호화되지 아니하도록 일방향 암호화하여 저장하여야 한다.
⑥ 개인정보처리자는 제1항에 따른 개인정보를 암호화하는 경우 안전한 암호알고리즘으로 암호화하여 저장하여야 한다.

 

 

개인정보의 안전성 확보조치 기준 고시 및 해설서(행정안전부고시제2011-43호)
  • ∙ 최소 10자리 이상: 영대문자(A~Z, 26개), 영소문자(a~z, 26개), 숫자(0~9, 10개) 및 특수문자(32개) 중 2종류 이상으로 구성한 경우
  • ∙ 최소 8자리 이상: 영대문자(A~Z, 26개), 영소문자(a~z, 26개), 숫자(0~9, 10개) 및 특수문자(32개) 중 3종류 이상으로 구성한 경우
  • ∙ 비밀번호의 주기적인 변경: 비밀번호에 유효기간을 설정하고 적어도 6개월마다 변경함으로써 동일한 비밀번호를 장기간 사용하지 않는다.
  • ∙ 동일한 비밀번호 사용 제한: 2개의 비밀번호를 교대로 사용하지 않는다.
  • ∙ 개인정보처리자는 비밀번호, 바이오정보(지문, 홍채 등)가 노출 또는 위•변조되지 않도록 암호화 하여 저장하여야 하며, 특히 비밀번호의 경우에는 복호화되지 않도록 일방향 (해쉬함수) 암호화 하여야한다.
    “안전한 암호 알고리즘”이란 미국 NIST, 일본 CRYPTREC, 유럽 ECRYPT 등의 외국 및 국내외 암호 연구기관에서 권고하는 알고리즘을 의미한다.
 
보안강도에 따른 단순해쉬/전자서명용 해쉬함수 분류
보안강도에 따른 단순해쉬/전자서명용 해쉬함수 분류

 

요약해서 정리하자면 아래와 같다.

 

  • 1. 대문자, 소문자, 숫자, 특수문자 중 2가지 이상으로 구성하면 비밀번호 10자리 이상 사용하고 3가지 이상으로 구성하면 비밀번호 8자리 이상 사용할 것
  • 2. 비밀번호를 6개월에 1번이상 변경하며, 비밀번호 교대사용 금지할 것
  • 3. 비밀번호는 안전한 해쉬 알고리즘(SHA-256이상)을 사용할 것

 

3. 유닉스 시스템 패스워드 문제점 확인

기본 설정 값 상태에서 유닉스 시스템 비밀번호가 8자리 이상 설정이 되지 않음을 확인해 보자.
먼저 유닉스 시스템의 비밀번호 저장 방식을 알아야 하는데, 초기 유닉스 시스템에서는 passwd 파일에 사용자 계정과 비밀번호를 같이 저장해서 사용하였다. 하지만, 계정을 확인하기 위해서 모든 사용자에게 접근권한이 부여된 passwd 파일에 비밀번호를 같이 넣어두면, 암호화된 비밀번호 문자열이 노출되는 위험이 존재하였다. 이를 해결하기 위해 shadow 파일을 만들어서 계정은 passwd 파일에 넣어두고, 모두에게 공개하여 shadow파일은 타인의 접근권한을 없애버렸다. 그래서 비밀번호의 암호화된 문자열을 확인하려면 shadow파일을 봐야 한다.
유닉스에서 기본으로 사용되는 crypt함수는 사용자의 비밀번호를 입력 받아 salt키로 랜덤한 문자 2개를 생성하여 비밀번호를 암호화하고 shadow 파일에 저장한다.

테스트는 아래와 같은 순서로 진행하였다.

 

  • 1.먼저 패스워드를 image554로 변경(8자리)
  • 2. shadow파일에서 암호화된 문자열 확인 => 『9N』을 salt로 하는 13자리 문자열 생성 확인
  • 3. 다시 패스워드를 image554!로 변경(9자리)
  • 4. shadow파일에서 암호화된 문자열 확인 => 『Yy』를 salt로 하는 13자리 문자열 생성 확인
  • 5. openssl을 사용하여 salt값과 암호화된 문자열을 사용하여 비밀번호 확인

유닉스 시스템 패스워드 문제점 확인 테스트

 

테스트결과 9자리 비밀번호(image554!)를 넣고 생성한 암호화된 스트링은 뒤에 한자리가 삭제되고 8자리 비밀번호(image554)를 넣은 암호화된 스트링이 생성된 것을 알 수 있다.

 

4. 안전한 패스워드를 사용하기 위한 설정

비밀번호를 암호화하는데 사용하는 알고리즘을 변경하기 위해서 『/etc/security/crypt.conf』파일을 확인하여 지원하는 알고리즘을 살펴보자.

컴플라이언스(개인정보보호법)을 만족하기 위해서는 sha256이나 sha512를 사용해야 한다.
패스워드 암호화 알고리즘은 /etc/security/policy.conf에서 변경한다.

전통적인 유닉스 알고리즘을 사용하지 않기 위해 CRYPT_ALGORITHMS_DEPRECATE=__unix__에 주석을 해제하고, CRYPT_DEFAULT값을 5(sha256)으로 변경한다.비밀번호를 9자리(image554!)로 설정한 후 shadow파일을 확인해 보면 아래와 같이 암호화된 문자열이 복잡하게 변경된 것을 볼 수 있다. 첫 번째 $5$는 암호화 알고리즘을 sha256으로 변경되었다는 것이고, 두번째 $cqptP5nz$는 암호화에 사용된 salt값을 의미한다. 암호화된 스트링도 43자리로 길어진 것을 확인할 수 있다.

※ 암호화 알고리즘을 변경한다고 해서 저장된 비밀번호의 암호화된 스트링이 저절로 바뀌는 것은 아니다. 알고리즘 변경 후 변경되는 패스워드에 대해서만 적용되니 참고하도록 하자.

마지막으로 패스워드의 복잡도와 사용주기를 설정하기 위해서 /etc/default/passwd 파일을 변경하자. 아래와 같이 다양한 옵션이 준비되어 있으니, 조합해서 사용하면 될 것이다. 다만 비밀번호 최대사용기간을 설정 할 때는 컴플라이언스에서 권고하는 6개월(24주)미만으로 설정하고, 루트패스워드가 기간만료 되는 것을 막기 위해서 『# passwd -x -1 root』명령어를 실행하여 주도록 하자.

 

  • MINALPHA=2 (포함되어야 할 최소 문자의 수)
  • MINNONALPHA=1 (포함되어야 할 최소 알파벳문자를 제외한 숫자, 특수문자의 수)
  • MINUPPER=0 (포함되어야 할 최소 알파벳 대문자의 수)
  • MINLOWER=0 (포함되어야 할 최소 알파벳 소문자의 수)
  • MAXREPEATS=2 (최대 허용되는 반복문자/숫자의 수)
  • MINSPECIAL=0 (포함되어야 할 최소 특수문자의 수)
  • MINDIGIT=1 (포함되어야 할 최소 숫자의 수)
  • WHITESPACE=YES (공백 허용)
  • MAXWEEKS=24 (비밀번호 최대사용기간 단위:주)
  • HISTORY=2 (최근 패스워드 기억)

 

5. 맺음말

개인정보보호법이 시행됨에 따라 개인정보를 안전하게 처리하기 위하여 기업들이 많은 준비하고 있다. 특히 암호화 관련 부분이 제일 다루기 어려운 부분일 것이다. OS시스템 비밀번호의 경우는 운영자들도 어떠한 알고리즘으로 암호화 되는지 잘 알지 못하고 그대로 방치하고 있는 곳도 있을 것이다. 실제로 정보보호 컨설팅을 수행하며 시스템 취약점을 진단하다 보면, 기본 알고리즘을 사용하고 있는 기업이 대다수였다. 이 기회에 유닉스 시스템 패스워드에 대한 알고리즘 및 설정방법을 익혀두고, 업무에 적용하여 기업이 가지고 있는 개인정보보호에 만전을 기하도록 하자.

※ 암호화 알고리즘을 변경한다고 해서 비밀번호 크랙툴(John The Ripper 등)에 의한 공격시간이 길어지는 것은 아니다. 해쉬 함수의 특성상 비밀번호 크랙은 사전파일(혹은 무차별 대입)을 이용한 해쉬 및 비교 작업이므로 비밀번호 크랙툴의 공격에 걸리는 시간을 지연시킬 수는 없다. 크랙툴에 의한 공격시간은 오직 비밀번호의 복잡도와 길이에 의존한다.

 

* 심상윤 책임컨설턴트 | (주)에이쓰리시큐리티 컨설팅사업본부

* 본 정보의 저작권은 (주)에이쓰리시큐리티에 있으며 무단 도용 및 배포를 금한다.

정보보호컨설팅 통합보안관제 통합보안관제 통합보안관제 통합보안관제