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

SEAM 명령

Kerberos V5는 단일 사인온 시스템입니다. Kerberos는 기존의 각 네트워크 프로그램에 내장되어 있으므로 암호를 한 번만 입력하면 Kerberos V5 프로그램에서 인증(및 선택적 암호화)을 수행합니다. Kerberos V5 응용 프로그램은 기존의 UNIX 네트워크 프로그램에 Kerberos 기능이 추가된 버전입니다.

예를 들어, Kerberos 암호화를 지원하는 프로그램을 사용하여 원격 호스트에 연결하면 프로그램과 KDC, 원격 호스트에서 신속하게 협상을 수행합니다. 협상이 완료되면 프로그램에서 원격 호스트에 사용자 ID를 증명하고 원격 호스트에서 액세스를 부여합니다.

Kerberos 암호화를 지원하는 명령에서는 먼저 Kerberos로 인증하려 합니다. Kerberos 인증이 실패하면 명령에 사용된 옵션에 따라 오류가 발생하거나 UNIX 인증이 시도됩니다. 자세한 내용은 Kerberos 명령어 매뉴얼 페이지에서 Kerberos 보안 절을 참고하십시오.

Kerberos 암호화를 지원하는 명령의 개요

Kerberos 암호화를 지원하는 네트워크 서비스는 인터넷상의 다른 시스템에 연결하는 프로그램입니다. 이들 프로그램은 /usr/krb5/bin에 있습니다. 이 프로그램이 Kerberos 암호화를 지원하지 않는 버전보다 먼저 사용되도록 PATH 변수를 설정합니다. 여기에는 다음과 같은 프로그램이 포함됩니다.

이들 프로그램에는 Kerberos 암호화를 지원하지 않는 버전의 모든 기능이 포함되어 있으며, 원격 호스트와 인증(및 선택적 암호화)을 협상할 때 Kerberos 티켓을 투명하게 사용할 수 있는 추가 기능이 있습니다. 대부분의 경우 Kerberos에서 ID를 검사하므로 암호를 따로 입력하지 않아도 됩니다.

Kerberos V5 네트워크 프로그램에서는 다음과 같은 옵션을 사용할 수 있습니다.


주 -

이 절에서는 Kerberos 암호화를 지원하지 않는 버전에 익숙한 사용자를 대상으로, Kerberos V5 패키지의 새롭게 추가된 기능에 대해 설명합니다. 여기에 나온 명령에 대한 자세한 설명은 해당 매뉴얼 페이지를 참고하십시오.


다음과 같은 Kerberos 옵션이 ftp, rcp, rlogin, rsh, telnet에 추가되었습니다.

-a

기존 티켓을 사용하여 자동 로그인을 시도입니다. 현재 사용자 ID와 다르지 않을 경우 getlogin()에서 반환되는 사용자 이름을 사용합니다(자세한 내용은 telnet(1)(1) 매뉴얼 페이지를 참고하십시오).

-f

원격 호스트에 재전송할 수 없는 티켓을 전송합니다. 이 옵션은 -F 옵션과 상호 배타적이므로 같은 명령에 함께 사용할 수 없습니다(아래 참고).

제3의 호스트에서 다른 Kerberos 기반 서비스에 자신을 인증해야 할 경우 티켓을 전송해야 합니다. 예를 들어, 다른 시스템에 rlogin한 다음 여기서 또 다른 시스템에 rlogin하는 경우입니다.

Kerberos V5를 통해 원격 호스트의 홈 디렉토리에 NFS가 마운트되어 있으면 전송 가능 티켓을 사용해야 합니다. 그렇지 않으면 홈 디렉토리에 액세스할 수 없습니다. (즉, 먼저 시스템 1에 로그인하고, 시스템 1에서 홈 시스템인 시스템 2에 rlogin한다고 가정합니다. 시스템 2는 시스템 3으로부터 홈 디렉토리를 마운트합니다. 이런 경우 rlogin 명령에 -f-F 옵션을 사용하지 않으면 티켓을 시스템 3에 전송하지 못하므로 홈 디렉토리를 액세스할 수 없습니다.)

기본적으로 kinit를 사용하면 전송 가능 티켓 부여 티켓(TGT)을 얻게 되지만 사용자의 SEAM 구성이 이와 다를 수도 있습니다.

티켓 전송에 대한 자세한 내용은 "-f 및 -F를-사용한 티켓 전송-"을 참고하십시오.

-F

티켓 부여 티켓의 재전송이 가능한 복사본을 원격 시스템에 전송합니다. 이 옵션은 -f 옵션과 비슷하지만(위 내용 참고) 더 많은 시스템(제 4, 5의 시스템)에 액세스할 수 있습니다. 즉, -F 옵션은 -f 옵션의 대집합이라고 할 수 있습니다. -F 옵션은 -f 옵션과 상호 배타적이므로 같은 명령에서 함께 사용할 수 없습니다.

티켓 전송에 대한 자세한 내용은 "-f 및 -F를-사용한 티켓 전송-"을 참고하십시오.

-k 영역

krb5.conf 파일을 사용하여 영역을 결정하는 대신 지정된 영역에서 원격 호스트에 대한 티켓을 요청합니다.

-K

티켓을 사용하여 원격 호스트에 인증받지만 자동으로 로그인하지는 않습니다.

-m 메커니즘

사용할 GSS-API 보안 메커니즘을 /etc/gss/mech 파일에 표시된 목록에서 지정합니다. 기본값은 kerberos_v5입니다.

-x

현재 세션을 암호화합니다.

-X auth_type

auth_type 인증 유형을 비활성화합니다.

표 6-1은 각 명령에서 사용할 수 있는 옵션을 보여 줍니다("X" 표시가 있는 명령은 해당 옵션을 사용할 수 있음).

표 6-1 네트워크 명령의 Kerberos 옵션

 

ftp

rcp

rlogin

rsh

telnet

-a

 

 

 

 

-f

 

-F

 

 

 

 

-K

 

 

 

 

-m

 

 

 

 

-x

 

-X

 

 

 

 

또한, ftp 세션의 보호 수준을 해당 프롬프트에서 설정할 수 있습니다.

지우기

보호 수준을 "지우기"로 설정합니다(보호 없음). 이는 기본 설정입니다.

개인

보호 수준을 "개인"으로 설정하면 데이터 전송 시 암호화를 통해 데이터의 신뢰성 및 무결성이 보호됩니다. 단, 개인 정보 서비스의 경우 모든 SEAM 사용자가 사용할 수 있는 것은 아닙니다.

보안

보호 수준을 "보안"으로 설정하면 데이터 전송 시 암호 검사 합계를 통해 데이터의 무결성이 보호됩니다.

위의 보호 수준(지우기, 개인, 보안)을 ftp 프롬프트에서 protect 다음에 입력하여 보호 수준을 설정할 수도 있습니다.

-f 및 -F를-사용한 티켓 전송-

"Kerberos 암호화를 지원하는 명령의 개요"의 설명과 같이 -f-F 옵션을 사용하여 티켓을 전송할 수 있는 명령도 있습니다. 티켓을 전송하면 네트워크 트랜잭션을 "연결"할 수 있습니다. 예를 들어, 한 시스템에 rlogin한 다음 여기에서 다른 시스템으로 rlogin할 수 있습니다. -f 옵션을 사용하면 티켓을 전송할 수 있고, -F 옵션을 사용하면 전송된 티켓을 재전송할 수 있습니다.

그림 6-2에서 사용자 davidkinit를 사용하여 전송할 수 없는 티켓 부여 티켓(TGT)을 얻습니다. -f 옵션을 지정하지 않았기 때문에 티켓을 전송할 수 없습니다. 시나리오 1에서 그는 시스템 B에 rlogin할 수 있지만 더 이상 다른 시스템에 로그인할 수는 없습니다. 시나리오 2에서 그는 전송할 수 없는 티켓을 전송하려 하기 때문에 rlogin -f 명령이 실패합니다.

그림 6-2 전송할 수 없는 티켓 사용

Graphic

(실제로 SEAM 구성 파일은 kinit 명령을 실행할 때 전송 티켓을 얻을 수 있도록 기본 설정되어 있으나 사용자의 구성은 다를 수 있습니다. 설명을 위해 여기서는 kinitkinit -f 로 호출되지 않을 경우, 전송 가능한 티켓 부여 티켓을 얻지 못한다고 가정합니다. 또한 kinit에는 -F 옵션이 포함되어 있지 않음을 주의하십시오. TGT는 전송이 가능할 수도 있고 그렇지 않을 수도 있습니다.)

다음의 그림 6-3에서 davidkinit -f를 사용하여 전송 가능한 TGT를 얻습니다. 시나리오 3에서 그는 rlogin으로 전송 가능 티켓을 사용하므로 시스템 C에 액세스할 수 있습니다. 시나리오 4에서 티켓을 재전송할 수 없으므로 두 번째 rlogin 명령이 실패합니다. 시나리오 5와 같이 -F 옵션을 사용하면 두 번째 rlogin 명령이 성공하고 시스템 D로 티켓을 재전송할 수 있습니다.

그림 6-3 전송 가능 티켓 사용

Graphic

예 - Kerberos 암호화를 지원하는 명령 사용

다음 예에서는 Kerberos 암호화를 지원하는 명령의 옵션 사용 방법에 대해 설명합니다.

예 - -a, -f, 그리고 -x 옵션들을 telnet과 사용하기

다음 예에서 사용자 david는 이미 로그인했고 denver.acme.com 시스템에 telnet을 하려고 합니다. 그는 -f 옵션으로 기존의 티켓을 전송하고, -x 옵션으로 세션을 암호화하고, -a 옵션으로 로그인을 자동으로 수행합니다. 세 번째 호스트의 서비스는 사용하지 않을 계획이므로-F 대신 -f를 사용합니다.


% telnet -a -f -x denver.acme.com  
128.0.0.5 시도 중... 
denver.acme.com.에 연결됨. 이스케이프 문자는 '^]'입니다. 
[ Kerberos V5는 다음과 같이 받아 들입니다. "david@eng.acme.com" ]  
[ Kerberos V5가 전송된 증명서를 받아 들였습니다. ]  
SunOS 5.7: 1998년 5월 21일 화요일 00:31:42 EDT SunOS에 오신 것을 환영합니다.  
%

사용자 david의 시스템은 Kerberos를 사용하여 그를 denver.acme.com에 인증하고 david 자신으로 자동 로그인했습니다. 이미 대기 중인 티켓 복사본인 암호화 세션이 있으므로 그는 암호를 입력할 필요가 없습니다. Kerberos 암호화를 지원하지 않는 telnet 버전을 사용했다면 암호를 입력하라는 메시지가 나타나며 이는 암호화되지 않고 네트워크에서 전송됩니다. 이 때 네트워크 트래픽을 주시하는 침입자가 있다면 david의 암호를 금방 알 수 있습니다.

Kerberos 티켓을 전송하면 telnet 종료 시 티켓이 폐기되며, 이것은 여기에 언급된 다른 명령의 경우도 마찬가지입니다.

예 - rlogin-F옵션과 함께 사용

사용자 jennifer는 자신의 시스템인 boston.acme.com에 로그인하려 합니다. 그녀는 기존의 티켓을 -F 옵션으로 전송하고 -x 옵션으로 세션을 암호화합니다. 그녀는 -f 대신 -F 옵션을 사용하는데 이는 boston에 로그인한 후 다른 네트워크 트랜잭션을 수행하기 위해 티켓을 재전송해야 할 수도 있기 때문입니다. 기존 티켓을 전송하므로 암호를 입력할 필요가 없습니다.


% rlogin boston.acme.com -F -x
이 rlogin 세션은 모든 데이터 전송에 DES 암호화를 사용합니다. 
마지막 로그인 5월 19일 월요일 15:19:49, daffodil  
SunOS 버전 5.7 (일반) #2 1998년 11월 14일 화요일 18:09:3 EST   
%

예 - ftp에서 보호 수준 설정

다음 예에서는 joeftp를 사용하여 denver.acme.com 시스템의 ~joe/MAIL 디렉토리에서 메일을 가져오기 위해 세션을 암호화합니다. 다음과 같은 교환이 이루어집니다.


% ftp -f denver.acme.com
denver.acme.com에 연결됨. 
220 denver.acme.org FTP 서버(버전 6.0)가 준비됨. 
334  GSSAPI; ADAT 인증 유형 사용 
GSSAPI이(가) 인증 유형으로 사용되었습니다.  
GSSAPI 인증이 성공했습니다. (daffodil.acme.org:joe)  
232 GSSAPI 사용자 joe@MELPOMENE.ACME.COM가 joe로 인증되었습니다. 
230 사용자 joe가 로그인했습니다. 
원격 시스템 유형이 UNIX입니다. 
이진 모드를 사용하여 파일을 전송합니다.
ftp>protect private
200 보호 수준이 개인으로 설정되었습니다. 
ftp>cd ~joe/MAIL
250 CWD 명령이 성공했습니다. 
ftp>get RMAIL
227 수동 모드를 입력 중(128,0,0,5,16,49). 
150 RMAIL을 위해 이진 모드 데이터 연결을 여는 중(158336바이트). 
226 전송이 완료되었습니다. 1.9초 동안 158336바이트가 수신되었습니다(1.4e+02 Kbytes/s). 
ftp>quit
%

세션을 암호화하기 위해 joe는 보호 수준을 개인으로 설정합니다.