Sun 엔터프라이즈 인증 메커니즘 안내서

암호 관리

SEAM을 설치하면 두 개의 암호를 갖게 되는데, 하나는 정규 Solaris 암호이고 다른 하나는 Kerberos 암호입니다. 이 두 가지 암호를 동일하게 지정할 수도 있습니다.

Kerberos 암호화를 지원하지 않는 login 등의 명령은 대개 PAM을 통해 Kerberos와 UNIX로 모두 인증받도록 설정됩니다. 이 때 암호가 각기 다르면 두 개의 암호를 모두 제공하여 해당 인증으로 로그온해야 합니다. 두 개의 암호가 동일할 경우 처음 입력한 UNIX 암호가 Kerberos에서도 승인됩니다.

두 개의 암호가 동일할 경우 보안 문제가 발생할 수 있습니다. 즉, Kerberos 암호가 노출되면 UNIX 암호도 알려진 것이나 마찬가지입니다. 단, Kerberos 환경의 암호는 네트워크에서 전송되지 않으므로 UNIX와 Kerberos에 동일한 암호를 사용하더라도 Kerberos를 사용하지 않는 사이트보다는 안전합니다. 일반적으로 사이트에는 옵션을 선택할 수 있는 정책이 있습니다.

Kerberos 암호는 Kerberos에서 ID를 확인하는 유일한 방법이므로, 암호가 노출되면 Kerberos 보안은 아무 의미가 없습니다. 암호 도용자는 아무도 눈치 채지 못하게 암호 소유자의 이름으로 전자 우편을 보내거나, 다른 호스트에 로그인하고, 암호 소유자의 파일을 읽거나 편집, 삭제할 수 있습니다. 따라서 암호는 신중하게 선택하고 보안을 유지해야 합니다. 타인에게 자신의 계정 사용 권한을 줘야 할 경우 암호를 알리지 않고 Kerberos를 통해 권한을 줄 수 있습니다("계정에 대한 액세스 부여" 참고). 암호는 시스템 관리자를 비롯한 모든 사람에게 비밀로 해야 합니다. 또한, 암호를 자주 변경하고 다른 사람에게 암호가 노출되었을 경우 즉시 변경하도록 합니다.

암호 선택 요령

암호에는 거의 모든 종류의 문자가 포함될 수 있습니다(<Ctrl> 키와 <Return> 키는 예외). 암호는 본인이 기억하기 쉽고 타인이 예측하기 어려운 암호를 설정하는 것이 좋습니다. 부적절한 암호의 예는 다음과 같습니다.

암호의 길이는 8자 이상이 적당하며 대문자, 소문자, 숫자, 구두점 등을 함께 사용하는 것이 좋습니다. 좋은 암호의 예는 다음과 같습니다.


주의 - 주의 -

위의 예는 사용하지 마십시오. 설명서에 나타나는 암호는 가장 먼저 도용이 될 수 있습니다.


암호 변경

다음과 같은 두 가지 방법으로 Kerberos 암호를 변경할 수 있습니다.

암호를 변경한 후 암호가 시스템 전체에 전파되려면 시간이 어느 정도 소요됩니다(특히, 대형 네트워크의 경우). 시스템의 설정 상태에 따라 몇 분에서 몇 시간이 걸릴 수도 있습니다. 암호를 변경한 직후 새로운 Kerberos 티켓을 얻어야 할 경우 먼저 새 암호를 사용해 보십시오. 새 암호가 적용되지 않으면 이전 암호를 다시 사용해 봅니다.

시스템 관리자는 Kerberos V5를 사용하여 각 사용자에게 허용 가능한 암호 기준을 설정할 수 있습니다. 이러한 기준은 각 사용자에 대한 정책 집합(기본 정책)에서 정의됩니다. 정책에 대한 자세한 내용은 "정책 관리"를 참고하십시오. 예를 들어, jennifer의 정책(jenpol)에서 암호는 8자 이상이고 두 종류 이상의 문자가 포함되도록 지정되어 있다고 합시다. 이런 경우 kpasswd 명령에서 "sloth"를 암호로 지정하면 거부됩니다.


% kpasswd
kpasswd: jennifer@ENG.ACME.COM.의 암호 변경  
이전 암호:   <jennifer가 기존의 암호를 입력합니다>
kpasswd: jennifer@ENG.ACME.COM의 암호는 jenpol 정책에 의해 
관리되며, 이 정책에서 암호는 8자 이상이고, 2개 이상의 클래스
(소문자, 대문자, 숫자, 문장 부호, 기타 다른 문자의 5개 클래스가 있음)가 
포함되도록 지정해야 합니다. 
새 암호: <jennifer가 'sloth'를 입력합니다>
새 암호(재입력):  <jennifer가 'sloth'를 다시 입력합니다>>
kpasswd: 새 암호가 너무 짧습니다. 
최소 4자의 암호를 선택하십시오.

여기서 jennifer는 암호로 "slothrop49"를 사용합니다. 'slothrop49'는 8자 이상이고 두 종류의 문자(숫자, 소문자)를 포함하므로 해당 기준을 충족시킵니다.


% kpasswd
kpasswd: jennifer@ENG.ACME.COM.의 암호 변경
이전 암호:  <jennifer가 기존의 암호를 입력합니다>
kpasswd: jennifer@ENG.ACME.COM의 암호는 jenpol 정책에 의해 
관리되며, 이 정책에서 암호는 8자 이상이고, 2개 이상의 클래스
(소문자, 대문자, 숫자, 문장 부호, 기타 다른 문자의 5개 클래스가 있음)가 
포함되도록 지정해야 합니다. 
새 암호:  <jennifer가 'slothrop49'를 입력합니다> 
새 암호(재입력): <jennifer가 'slothrop49'를 다시 입력합니다>Kerberos 암호가 변경되었습니다.

예 - 암호 변경

다음 예는 davidpasswd를 사용하여 UNIX 및 Kerberos 암호를 모두 변경하는 과정을 보여 줍니다.


% passwd	
passwd: david의 암호 변경
로그인(NIS+) 암호 입력:             <현재 UNIX 암호를 입력합니다>
	새 암호:                           <새 UNIX 암호를 입력합니다> 
암호 재입력:                        <새 UNIX 암호를 확인합니다>
	이전 KRB5 암호:                    <현재 Kerberos 암호를 입력합니다>
	새 KRB5 암호:                      <새 Kerberos 암호를 입력합니다>
	새 KRB5 암호 재입력:                <새 Kerberos 암호를 확인합니다>

위의 예에서 passwd 명령은 UNIX와 Kerberos 암호를 모두 요구합니다. 그러나 try_first_pass가 PAM 모듈에 설정되어 있으면 Kerberos 암호는 자동으로 UNIX 암호와 동일하게 설정됩니다(기본 구성). 이 경우 david는 다음과 같이 kpasswd 명령을 사용하여 Kerberos 암호를 다르게 설정할 수 있습니다.

다음 예에서는 kpasswd를 사용하여 Kerberos 암호만 변경하는 과정을 보여 줍니다.


% kpasswd
kpasswd: david@ENG.ACME.COM.의 암호 변경 
이전 암호:              <현재 Kerberos 암호를 입력합니다>
새 암호:                <새 Kerberos 암호를 입력합니다>
새 암호(재입력):         <새 Kerberos 암호를 확인합니다>
Kerberos 암호가 변경되었습니다.
  

다음 예에서 david는 Kerberos 주체 david/admin(유효한 UNIX 사용자가 아님)의 암호를 변경합니다. 이 경우 kpasswd를 사용해야 합니다.


% kpasswd david/admin
kpasswd:  david/admin의 암호 변경
이전 암호:		   	   <현재 Kerberos 암호를 입력합니다>
새 암호:	               <새 Kerberos 암호를 입력합니다>
새 암호(재입력):	      <새 Kerberos 암호를 확인합니다>
Kerberos 암호가 변경되었습니다.
   

계정에 대한 액세스 부여

타인이 자신의 계정에 로그인할 수 있도록 액세스를 부여할 경우 홈 디렉토리에 .k5login 파일을 두면, 암호를 알리지 않고도 Kerberos를 통해 이 작업을 수행할 수 있습니다. .k5login 파일은 액세스를 부여할 각 사용자에 해당하는 여러 Kerberos 주체의 목록입니다 각 주체는 서로 다른 행에 있어야 합니다.

사용자 david가 홈 디렉토리에 다음과 같은 .k5login파일을 가지고 있다고 가정합시다.


jennifer@ENG.ACME.COM
joe@ACME.ORG  

이 파일에 의해 사용자 jenniferjoe는 각기 해당 영역에 Kerberos 티켓을 가지고 있을 경우 david의 ID를 사용할 수 있습니다. 예를 들어, jennifer는 david의 시스템(boston)에 암호를 몰라도rlogin할 수 있습니다.

그림 6-1 파일.k5login 사용

Graphic

(david의 홈 디렉토리에 Kerberos V5 프로토콜을 통해 다른 시스템(세 번째 시스템)의 NFS가 마운트되어 있을 경우, jennifer는 그의 홈 디렉토리에 액세스하기 위해 전송 가능 티켓이 있어야 합니다. 전송 가능 티켓 사용에 대한 예는 "티켓 작성 방법"을 참고하십시오).

네트워크에서 다른 시스템에 로그인하려면 해당 시스템의 .k5login 파일에 자신의 Kerberos 주체가 포함되어야 합니다.

.k5login 파일을 사용하는 방법이 암호를 알려 주는 것보다 훨씬 안전합니다.

.k5login 파일을 사용하는 방법 중 하나는 root의 홈 디렉토리에 이 파일을 두고, 목록에 있는 Kerberos 주체에게 해당 시스템에 대한 root 권한을 부여하는 것입니다. 이렇게 하면 타인에게 root 암호를 제공하거나 네트워크에서 root 암호를 입력하지 않아도 시스템 관리자가 로컬에서 관리자 계정으로 들어가거나 원격으로 root에 로그인할 수 있습니다.

예 - 사용 파일.k5loginFile

사용자 jenniferboston.acme.com 시스템에 root로 로그인한다고 가정합니다. 그녀는 boston.acme.com에서 root의 홈 디렉토리에 있는.k5login 파일에 그녀의 주체 이름 항목이 있으므로 암호를 다시 입력할 필요가 없습니다.


% rlogin boston.acme.com -l root -x
이 rlogin 세션은 모든 데이터 전송에 DES 암호화를 사용합니다. 
마지막 로그인: 6월 20일 목요일 16:20:50, daffodil   
SunOS 5.7 버전(일반) #2: 1998년 11월 14일 화요일 18:09:31 EST    
boston[root]%