암호는 Red Hat Enterprise Linux에서 사용자의 신원을 확인하는데 사용하는 주요 수단입니다. 따라서 암호 보안은 사용자와 워크스테이션 및 네트워크를 보호하는데 무엇보다 중요합니다.
보안을 위하여 설치 프로그램은 시스템이 MD5 (Message-Digest Algorithm)와 섀도우 암호를 사용하도록 설정합니다. 이 설정을 변경하지 마시길 적극 권장합니다.
만일 설치 과정에서 MD5 암호를 선택하지 않으시면 이전 DES (Data Encryption Standard) 형식이 사용됩니다. 이 형식은 암호가 문자와 숫자를 조합하여 (구두점과 그외 특수 문자를 제외하고) 8 글자까지만 허용하며 낮은 56 비트 수준의 암호화만 제공합니다.
설치 과정에서 섀도우 암호를 선택 해제하시면 모든 암호는 누구나 읽기 가능한 /etc/passwd 파일에서 단방향 해시(one-way hash)로 저장됩니다. 이러한 경우 시스템은 오프라인 암호 크래킹 공격에 취약하게 됩니다. 만일 침입자가 일반 사용자로서 컴퓨터에 접근할 수 있게 된다면 /etc/passwd 파일을 자신의 컴퓨터에 복사한 후 이 파일에 다양한 암호 크래킹 프로그램을 실행하여 암호를 알아내는 것이 가능합니다. 파일에 비보안 암호가 저장되어 있는 경우 암호 크래킹 프로그램은 금방 그 암호를 알아낼 수 있습니다.
섀도우 암호를 사용하면 암호 해시를 루트 사용자만 읽을 수 있는 /etc/shadow 파일에 저장함으로서 이러한 유형의 침입을 방지할 수 있습니다.
섀도우 암호를 사용하면 침입자가 원격적으로 SSH나 FTP를 사용하여 시스템 상 네트워크 서비스에 로그인하는 것을 방지할 수 있습니다. 이러한 brute-force (억지) 공격은 매우 느리며 수백번에 걸친 로그인 실패 시도가 시스템 파일에 기록되므로 명백한 증거를 남깁니다. 물론 만일 크래커가 한밤중에 약한 암호를 사용하여 시스템에 공격을 시작한다면 새벽 전에 접근에 성공하여 증거를 감추기 위해 로그 파일을 수정할 수 있는 가능성도 존재합니다.
암호의 형식과 저장 방식을 벗어나서 가장 중요한 것은 암호의 내용입니다. 사용자가 자신의 계정을 암호 크래킹 침입으로부터 보호할 수 있는 한가지 가장 중요한 방법은 알아내기 힘든 암호를 생성하는 것입니다.
보안 암호를 생성하시려면 다음과 같은 사항을 따르시기 바랍니다:
단어나 번호만 사용하시면 안됩니다 — 암호를 생성시 번호나 숫자만 사용하시면 안됩니다.
안전하지 못한 암호의 예시:
8675309
juan
hackme
알아내기 쉬운 단어를 사용하지 마십시오 — 고유 명사, 사전에 나온 단어나 심지어는 TV 프로그램이나 소설책 이름은 번호가 포함되더라도 암호로 사용하지 마십시오.
안전하지 못한 암호의 예시:
john1
DS-9
mentat123
외국어로된 단어를 사용하지 마십시오 — 암호 크래킹 프로그램은 종종 외국어 사전을 포함한 단어 목록을 사용하여 암호를 찾아냅니다. 따라서 외국어를 보안 암호로 사용하시는 것은 소용이 없습니다.
안전하지 못한 암호의 예시:
cheguevara
bienvenido1
1dumbKopf
해커 용어를 사용하지 마십시오 — 해커 용어 — l337 (LEET) 용어 — 를 암호로 사용하니까 자신이 수준 높은 해커라고 생각하십니까? 결코 그렇지 않습니다. 많은 용어집에 LEET 용어가 포함되어 있어 암호를 알아내기 쉽습니다.
안전하지 못한 암호의 예시:
H4X0R
1337
개인 정보를 사용하지 마십시오 — 개인 정보를 사용하는 것을 피하십시오. 만일 침입자가 여러분의 신상 정보를 알고 있다면 어렵지 않게 암호를 추측해낼 수 있습니다. 다음은 암호를 생성시 피하셔야할 정보 유형 목록입니다:
안전하지 못한 암호의 예시:
이름
애완 동물 이름
가족 이름
생년월일
전화번호 또는 우편번호
알아내기 쉬운 단어를 역순으로 사용하지 마십시오 — 잘 고안된 암호 추측 프로그램은 항상 일반 단어를 역순으로 확인해 봅니다. 따라서 알아내기 쉬운 단어를 역순으로 한다고 해서 더 안전해지는 것은 아닙니다.
안전하지 못한 암호의 예시:
R0X4H
nauj
9-DS
암호를 적어두지 마십시오 — 암호를 종이에 적어두지 마십시오. 머리속으로 외우시는 것이 훨씬 안전합니다.
모든 기계에 똑같은 암호를 사용하지 마십시오 — 각 기계마다 별개의 암호를 만드시는 것이 중요합니다. 이렇게 하심으로서 만일 한 시스템에서 보안 침입이 발생할 경우 모든 시스템이 즉시 위험에 처할 가능성이 낮아집니다.
최소한 8자 이상으로 암호를 만드십시오 — 암호가 길면 길수록 좋습니다. MD5 암호를 사용하시려면 암호는 15자 이상이어야 합니다. DES 암호를 사용하시는 경우 최대 길이 (3 글자)를 사용하십시오.
대문자와 소문자를 함께 사용하십시오 — Red Hat Enterprise Linux는 대/소문자를 구별합니다. 따라서 대문자와 소문자를 함께 사용하시면 암호를 추측하기 더욱 힘들어져 보안을 강화합니다.
글자와 숫자 조합을 사용하십시오 — 암호에 숫자를 추가하시면, 특히 암호 첫부분이나 마지막이 아닌 중간에 추가하시면 암호 보안을 강화할 수 있습니다.
글자와 숫자가 아닌 문자를 포함하여 암호를 생성하십시오 — &, $, 및 > 와 같은 특수 문자를 사용하시면 암호 보안을 보다 강화할 수 있습니다 (DES 암호를 사용하시는 경우 특수 문자를 사용할 수 없습니다).
기억할 수 있는 암호를 선택하십시오 — 가장 좋은 암호를 생성하신다고 해도 만일 여러분이 기억하지 못하신다면 무슨 소용입니까?; 암호를 기억하기 위해 머리 글자를 사용하거나 기억을 돕는 장치를 사용하시기 바랍니다.
앞서 설명된 모든 규칙을 사용하여 나쁜 암호의 약점을 사용하지 않고 좋은 암호를 만드는 작업이 힘들게 느껴질 수도 있습니다. 다행히 기억하기 쉽고 안전한 암호를 쉽게 생성할 수 있는 방법이 있습니다.
여러가지 방법을 사용하여 보안 암호를 생성할 수 있습니다. 가장 자주 사용되는 방법은 다음과 같이 긴 이름이나 구문의 각 단어의 머리글자를 합성하여 만든 약어를 사용하는 방법입니다:
기억할 수 있는 문장을 생각해 내십시오. 예를 들면:
"over the river and through the woods, to grandmother's house we go."
다음으로 이 문장의 각 단어의 머리글자 (구두점 포함)를 합성하여 약어로 만드십시오.
otrattw,tghwg.
만들어진 약어에서 글자를 숫자나 기호로 바꾸어 보다 복잡한 암호로 만드십시오. 예를 들면 t를 7로, a 대신 at (골뱅이) 기호 (@)로 바꾸십시오.
o7r@77w,7ghwg.
H와 같이 최소한 한 글자를 대문자로 바꾸어 더욱 추측하기 힘들게 만드시기 바랍니다.
o7r@77w,7gHwg.
마지막으로 이 책에서 나온 예시 암호를 절대 여러분의 시스템에 사용하시면 안됩니다.
보안 암호를 만드는 것이 매우 중요하지만 만들어진 암호를 적절하게 관리하는 것 또한 중요합니다. 특히 대기업 시스템 관리자의 경우 더욱 그러합니다. 다음 부분에서는 기업체에서 사용자 암호를 생성하여 관리하는 방법에 대하여 설명해 보겠습니다.
만일 기업내 사용자 수가 매우 많다면, 시스템 관리자는 사용자에게 좋은 암호를 사용하도록 다음과 같은 두가지 방법을 사용할 수 있습니다. 첫번째 방법은 관리자가 직접 사용자 암호를 생성하는 것이며, 다른 방법은 사용자가 스스로 자신의 암호를 생성하도록 하지만 관리자가 그 암호가 안전한지 확인한 후 사용을 허가하는 방법입니다.
사용자를 위해 암호를 생성하시면 보안 암호를 보증할 수 있지만, 회사가 커지면서 너무 많은 시간과 노력이 낭비될 수 있습니다. 또한 사용자가 자신의 암호를 적어서 기억할 위험도 커집니다.
이러한 이유로 시스템 관리자는 사용자가 스스로 자신의 암호를 생성하게 하지만, 그 암호가 사용해도 좋은지 계속적으로 확인하고 어떠한 경우에는 사용자가 주기적으로 암호를 변경하도록 암호 만기 시간을 설정하시는 것도 좋습니다.
네트워크에 보안 침입이 발생하는 것을 방지하기 위해서 시스템 관리자는 기업체 내에서 추측하기 쉬운 좋은 암호가 사용되는지 확인하시는 것이 좋습니다. 사용자가 암호를 생성하거나 변경시 명령행 프로그램인 passwd를 사용할 수 있습니다. 이 프로그램은 PAM (Pluggable Authentication Manager)을 사용하기 때문에 pam_cracklib.so PAM 모듈을 통하여 암호가 추측하기 쉬운지 길이가 너무 짧은지 확인해서 알려줍니다. PAM은 사용자 설정 가능하므로 pam_passwdqc (http://www.openwall.com/passwdqc/)와 같은 추가 암호 확인 기능을 더하거나 새로운 모듈을 작성하실 수 있습니다. 사용 가능한 PAM 모듈 목록을 보시려면 http://www.kernel.org/pub/linux/libs/pam/modules.html을 참조하시기 바랍니다. PAM에 대하여 보다 알고 싶으시다면 Red Hat Enterprise Linux 참조 가이드의 PAM (Pluggable Authentication Modules) 장을 참조하시기 바랍니다.
그러나 암호를 생성시 사용되는 암호 확인 기능은 암호 크래킹 프로그램을 실행하여 암호를 알아내는 것만큼 효율적이지 못하다는 사실을 염두하시기 바랍니다.
비록 운영 체제에 포함되어 있지는 않지만, 많은 암호 크래킹 프로그램을 Red Hat Enterprise Linux에서 실행 가능합니다. 다음은 가장 자주 사용되는 암호 크래킹 프로그램 목록입니다:
![]() | 알림 |
|---|---|
다음 도구들은 Red Hat Enterprise Linux에 포함되지 않으며 따라서 Red Hat, Inc.에서는 어떠한 지원도 제공하지 않습니다. |
John The Ripper — 빠르고 유연한 암호 크래킹 프로그램. 여러 단어 목록을 사용 가능하며 brute-force (가능한 모든 조합을 계속 테스트 해보는) 암호 크래킹이 가능합니다. http://www.openwall.com/john/에서 다운로드 받으실 수 있습니다.
Crack — 가장 잘 알려진 암호 크래킹 소프트웨어로서 Crack도 매우 빠르지만 John The Ripper 만큼 사용이 쉽지는 않습니다. http://www.crypticide.org/users/alecm/에서 찾으실 수 있습니다.
Slurpie — Slurpie는 John The Ripper와 Crack과 유사하지만, 이 프로그램은 여러 컴퓨터에서 동시에 실행되어 분산 암호 크래팅 공격을 할 수 있도록 설계되었습니다. 이 프로그램과 다른 분산 공격 보안 평가 도구를 http://www.ussrback.com/distributed.htm에서 찾으실 수 있습니다.
![]() | 경고 |
|---|---|
회사에서 암호 크래킹 프로그램을 사용하시기 전에 항상 먼저 서면으로 허가를 받으셔야 합니다. |
시스템 관리자가 기업 내에서 나쁜 암호가 사용되는 것을 방지하기 위하여 사용하는 또 다른 기술에는 암호에 유효 기간을 설정하는 방법이 있습니다. 암호에 유효 기간을 설정한다(password aging)는 것은 사용자가 정해진 기간 (보통 90 일) 내에 새로운 암호를 생성해야 한다는 것을 의미합니다. 만이 사용자가 주기적으로 암호를 변경한다면 침입자가 암호를 알아낸다고 해도 제한된 시간 동안만 사용 가능합니다. 그러나 암호에 유효 기간을 설정하는 작업이 단점은 사용자가 암호를 적어놓게될 가능성이 높아지는 것입니다.
Red Hat Enterprise Linux에서 암호 유효 기간을 설정하는데 사용되는 두가지 주요 프로그램이 있습니다: chage 명령과 그래픽 사용자 관리 도구 (redhat-config-users) 프로그램.
chage 명령에 사용되는 -M 옵션은 암호가 유효한 최대 날짜수를 지정합니다. 따라서 예를 들어 사용자의 암호가 90 일 후에 만기되도록 설정하시려면 다음 명령을 입력하십시오:
chage -M 90 <username> |
위의 명령에서 <username>를 사용자명으로 대체하십시오. 암호 유효 기간 설정을 해제하시려면 보통 -M 옵션 다음에 99999 (273년 정도)의 값을 사용하시면 됩니다.
그래픽 사용자 관리 도구 프로그램을 사용하여 암호 유효 기간을 설정하는 것도 가능합니다. 이 응용 프로그램을 사용하시려면 패널에서 주 메뉴 버튼 => 시스템 설정 => 사용자와 그룹을 선택하시거나 쉘 프롬프트 (예, XTerm이나 GNOME 터미널)에서 redhat-config-users 명령을 입력하시면 됩니다. 사용자 탭에 클릭하신 후 사용자 목록에서 사용자를 선택하신 후 버튼 메뉴에서 등록정보를 클릭하십시오 (또는 풀다운 메뉴에서 파일 => 등록정보를 선택하시면 됩니다).
그림 4-1에서 보여지듯이 암호 정보 탭을 클릭하신 후 암호 만기 날짜수를 입력하시기 바랍니다.
첫 암호를 생성시 강제할 지시 사항을 비롯한 사용자와 그룹 설정에 대한 보다 많은 정보를 원하신다면, Red Hat Enterprise Linux 시스템 관리 가이드에서 사용자와 그룹 설정 장을 참조하시기 바랍니다. 사용자와 자원 관리에 대한 개요는 Red Hat Enterprise Linux 시스템 관리 안내서의 사용자 계정과 자원 액세스 관리하기 장을 참조하시면 됩니다.