이 장에서는 SunTM 엔터프라이즈 인증 메커니즘(SEAM) 제품의 전체적인 개요를 살펴봅니다. 이 장은 다음과 같은 내용으로 구성되어 있습니다.
SEAM 릴리스는 Kerberos V5 인증, 프라이버시, 무결성 등을 지원하여 시스템 보안을 향상시키도록 설계되었습니다. 또한 Kerberos 암호화를 지원하는 로그인 메커니즘 사용 시 단일 네트워크 사인온을 허용하고, Kerberos 암호화를 지원하는 NFSTM 서비스를 제공함으로써 보안을 강화합니다.
이 릴리스에는 다음과 같은 항목이 포함됩니다.
Key Distribution Center (KDC)
KDC 서비스
kadmind 및 krb5kdc
KDC 관리 유틸리티
kadmin, kadmin.local, gkadmin
kpropd
Kerberos 유틸리티
kdestroy, kinit, klist, kpasswd
Kerberos 암호화를 지원하는 유틸리티와 데몬
ftp, rcp, rlogin, rsh, telnet
ftpd, rlogind, rshd, telnetd
설명서포함:
SEAM 설치 및 제품 출시 정보(본 설명서)
매뉴얼 페이지
이 제품이 작동하기 위해서는 Solaris 2.6 또는 2.7 릴리스가 설치되어 있어야 합니다. XFN과 JDKTM 1.1도 설치되어 있어야 합니다.
SEAM은 개발중인 상태이므로 계속 변경됩니다.
SEAM은 MIT Kerberos V5 1.0과 NT 5.0 설치 모두에 대한 상호 운영성 테스트를 거쳤습니다.
SEAM은 MIT 설치와 상호 운영됩니다. 단 다음 사항에 유의하십시오.
gkadmin과 kadmin은 MIT KDC에 대해 작동하지 않습니다. 이것은 gkadmin과 kadmin이 RPCSEC_GSS 프로토콜을 사용하여 KDC에 대한 연결을 보호하기 때문입니다. MIT Kerberos V5 1.0 설치에서는 비표준 AUTH_GSSAPI 프로토콜을 사용하여 보안을 제공합니다. 이 두 프로토콜이 다르기 때문에, MIT KDC에는 gkadmin과 kadmin을 사용할 수 없습니다.
SEAM은 ksu 명령을 포함하지 않습니다. 대신, PAM을 사용하여 su가 ksu의 역할 대부분을 수행하도록 합니다. 큰 차이점은 ksu가 .k5login 파일로 su를 사용중인 사용자가 암호 없이 사용할 수 있는지, 해당 사용자가 Kerberos V5 증명서를 갖고 있는지를 확인하는 것입니다. SEAM에서는 이것이 확인되지 않습니다.
SEAM과 MIT Kerberos V5 코드는 동일 호스트에 공존하도록 설계되지 않았습니다. 이론적으로는 가능하나 실제로는 지원되지 않습니다.
SEAM에서는 rpcbind가 실행되어야 합니다. 이것은 MIT Kerberos V5 설치의 요구 사항은 아닙니다.
SEAM과 NT의 상호 운영성에 대한 자세한 정보는 http://www.connectathon.org/seam1.0에 나와 있습니다. 이 사이트에는 SEAM이 NT와 상호 운영하도록 설정하는 데 사용할 수 있는 테스트 결과와 프로시저에 대한 최신 정보가 포함되어 있습니다.
다음은 SEAM 1.0의 알려진 버그 목록입니다. 각 항목은 버그 번호와 버그 개요 그리고 버그에 대한 간략한 설명으로 이루어져 있습니다.
4084755: dtlockscreen은 암호 확인 방법으로 PAM이 아닌 기존의 방법을 사용합니다.
dtlockscreen은 PAM이 아닌 기존 확인 방법을 사용하여 사용자 암호의 유효성을 확인합니다. 이것이 실패하는 경우에만 PAM을 호출합니다. 사용자가 UNIXTM 인증을 위한 이름 서비스에 정의된 암호만을 사용하여 화면 잠금을 표시하는 시스템에 액세스할 수 있으므로 보안 문제가 발생할 수 있습니다.
4189642: Kerberos 암호화를 지원하는 rsh 사용 메시지에 부정확한 데이터가 출력됩니다
rsh, rlogin, rcp는 잘못된 옵션에 대한 옵션 문자열을 출력합니다. 이 명령들은 프로그램 이름을 출력해야 합니다.
4211978: gkadmin: 암호 만기일: 필드에 잘못된 정보가 표시됩니다
암호 변경에 gkadmin이 사용되면, 주체에 할당된 정책에서 만기 시간을 가져오기 때문에 암호 만기 시간이 변경됩니다. GUI에서는 정책에서 만기 시간을 가져오는 것을 확인하지 않습니다. 암호 만기의 효과는 암호가 kadmin, kadmin.local, gkadmin, kpasswd, passwd 중 어느 것으로 변경되는지에 관계 없이 유효합니다.
암호 변경 시 사용자는 다음과 같은 두 가지 방법을 사용할 수 있습니다. 암호 만기 필드를 비우고 서버가 정책을 참조하여 해당 필드에 값을 입력하도록 하거나, 필드에 날짜를 그대로 두어 만기 날짜를 명시적으로 설정합니다.
4143644: Kerberos 암호화를 지원하는 rsh -f가 제대로 작동하지 않았습니다
사용자가 명시적으로 전송 가능한 증명서를 요청하는 경우, 전송 가능한 증명서가 없으면 rsh가 실패합니다.
4159036: "telnet> encrypt enable DES_OFB64"에서 세션이 보류됩니다
암호화 유형 DES_OFB64는 telnet의 데이터 암호화에 사용할 수 없습니다. 사용할 수 있는 유일한 암호화 유형은 역시 기본 암호화 유형인 DES_CFB64입니다.
4159419: gkadmin은 임의 암호 생성 시 가능하면 정책을 참조해야 합니다
사용자가 gkadmin을 사용하여 주체에 대한 임의 암호를 생성하는 경우, 도구는 적용된 정책을 참조하여 사용될 문자와 문자 클래스 수를 결정해야 합니다. 이렇게 하면 대부분의 경우 처음 생성된 암호가 kadmin API에서 허용됩니다.
4170403: 잘못된 암호를 사용해도 영역 간 Kerberos 암호화를 지원하는 rlogin이 실패하지 않습니다
Kerberos 암호화를 지원하는 rlogin이 inetd.conf에서 활성화되고 pam.conf에서 활성화되지 않으면(rlogin 서버를 실행하는 호스트에서), 사용자는 영역 간에 rlogin을 사용할 때 Kerberos V5를 통해 제대로 인증됩니다. 그러나 암호를 입력하라는 메시지가 나타나면, 어떤 암호든 허용됩니다. 사용자가 Kerberos V5를 사용하여 인증되었기 때문에 이것은 보안 상의 문제는 아닙니다. netd.conf에서 활성화한 경우에는 pam.conf에서 Kerberos 암호화를 지원하는 rlogin을 비활성화하지 마십시오.
4172240: telnet에 -r 옵션이 사용되면, telnet에서 ^]를 이스케이프 문자로 보고합니다
이스케이프 문자는 매뉴얼 페이지에 설명되어 있는 것처럼 ~입니다.
4177603: kprop 명령은 kpropd.acl이 마스터에 대해 누락된 항목인 경우 "Broken Pipe"를 반환합니다
/etc/krb5/kpropd.acl이 슬레이브 KDC에 제대로 설치되지 않으면, 클라이언트의 kprop 명령이 "Broken Pipe"에 대해 실패합니다.
4178210: gkadmin: 티켓이 만기되면 재인증을 위해 로그인 창으로 돌아가야 합니다
현재 gkadmin에서 로그인한 관리자의 증명서가 만기되면, gkadmin이 티켓/증명서가 만기되었다는 메시지가 나타납니다. 관리자가 "확인" 버튼을 클릭하면 gkadmin이 현재 "SEAM 관리 도구" 창을 닫고 관리 사용자를 "SEAM 관리 로그인" 창으로 되돌려야 합니다 "SEAM 관리 로그인" 창에는 "암호:" 필드에 프롬프트가 활성화되어 나타납니다. 즉, 재인증을 위해 이 필드에 암호를 입력해야 합니다.
4179331: gkadmin: 주체/정책 이름을 변경할 수 없습니다
gkadmin은 주체 이름이나 정책을 변경하는 기능을 지원하지 않습니다. 동일한 효과를 위해서는 주체나 정책을 "복제" 버튼을 사용하여 새 이름으로 복사한 다음 이전 항목을 삭제해야 합니다.
4184145: gkadmin: "등록 정보" 창 내 일부 GUI 항목의 모서리가 부분적으로 빠져 있습니다
"목록 캐시 시간 제한"의 "..." 버튼 오른쪽 부분이 없습니다. 또한 "목록 보기"나 "영구적으로 목록 캐시"를 선택하면 이 선택 가능한 버튼들을 둘러싸는 강조 표시된 사각형의 왼쪽 모서리가 사라집니다.
4188923: gkadmin: SEAM 인쇄 보조 프로그램에 경미한 문제가 있습니다
SEAM 인쇄 보조 프로그램은 "취소"를 클릭하기 전에 입력된 데이터를 표시할 수 있습니다. 취소하면 변경 내용을 무시하고 원래대로 복원해야 합니다. 또한 SEAM 인쇄 보조 프로그램 창에 있는 "파일 이름" 텍스트 필드가 제대로 지워지지 않습니다.
4188935: gkadmin: "없애기" 버튼이 일부 "도움말" 창에서 제대로 작동하지 않습니다
SEAM GUI 관리 도구에 대해 xhost를 실행할 때, "없애기" 버튼이 일부 "도움말" 화면에서 제대로 작동하지 않습니다.
4189590: 유효 기간이 2^31-1일 때 kadmin과 gkadmin은 대체 문자열을 인쇄해야 합니다
사용자가 새 주체를 만들 때 티켓 유효 기간이 KDC 측에 설정되게 하면, 2147483647 = 2^31-1 값은 주체 데이터베이스에 저장됩니다. 주체를 볼 때, CLI와 GUI는 값 2147483647(GUI)이나 24855일 03:14:07(CLI)을 표시하지 않고 대신 좀더 사용자에게 친숙한 문자열을 표시해야 합니다. 이것은 날짜 0이 "안함"으로 출력되는 경우에서 이미 확인하였습니다.
4191906: 증명서가 만기된 경우의 경고 메시지에 시간이 잘못되었습니다
초기 티켓 만기가 /etc/krb5/warn.conf의 경고 임계값보다 작으면 전송되는 경고 메시지에는 티켓 만기 시간이 아닌 warn.conf 파일에서 지정한 시간 내에 티켓이 만기되는 것으로 표시됩니다.
4191933: 유효 기간이 30분 미만인 kinit가 사용되면 서비스 티켓은 티켓 캐시에 저장되지 않습니다
사용자가 유효 기간이 30분 미만인 kinit -l을 사용하여 증명서(티켓 부여 티켓)를 얻으면, 증명서에서 파생된 서비스 티켓은 티켓 캐시에 나타나지 않습니다. 갱신 증명서의 유효 기간이 30분 미만이면, SEAM이 자동으로 증명서를 갱신하여 최대한 사용하기 편하게 만들기 때문입니다. 증명서를 갱신하면 이전 증명서와 그로부터 파생된 서비스 티켓은 제거됩니다. 이전 서비스 티켓을 사용하여 작성된 세션은 티켓 유효 기간동안 지속되기 때문에 다른 영향은 없습니다. kinit를 티켓 유효 기간을 30분 미만으로 지정하는 -l 옵션과 함께 호출하지 마십시오.
4193608: kinit -s에 문제가 있습니다
사용자는 kinit를 사용하여 시작 시간이 오늘 날짜에서 19일을 초과하도록 날짜를 늦춰 적은 티켓을 얻을 수 없습니다.
4193925: gkadmin: 새 정책을 작성할 때 <Enter> 키 작동이 일치하지 않습니다
현재는 기본 매개변수 값이 설정된 "정책 세부 사항" 대화 상자에 정책 이름을 입력한 후 <Enter>나 <Return> 키를 쳐도 정책이 자동으로 작성되지 않습니다. <Enter>나 <Return> 키는 "완료" 버튼을 클릭하는 것과 동일한 결과를 가져와야 합니다.
4194001: gkadmin: "마지막 변경한 사람:" 필드에 이름 전체가 표시되지 않습니다
"마지막 변경한 사람" 필드에 인스턴스 이름이 표시되지 않으므로 관리 주체가 제대로 식별되지 않습니다.
4206443: kinit man 페이지에 유효 기간과 갱신 유효 기간 협상이 설명되어 있습니다
사용자가 명령행에 유효 기간을 지정하면, 가져오는 티켓의 실제 유효 기간은 다음의 최소값입니다.
명령행에서 지정한 값
KDC 구성 파일에서 지정한 값
Kerberos 데이터베이스에서 서버 주체에 대해 지정한 값. kinit의 경우 krbtgt/<realmname>.
Kerberos 데이터베이스에서 사용자 주체에 대해 지정한 값
4210970: gkadmin: 연도가 바뀌어도 날짜/시간 보조 프로그램에서 2월 29일을 2월 28일로 변경하지 않습니다
날짜/시간 보조 프로그램에서 연도를 변경해도 해당 월의 허용 가능한 최대 날짜를 다시 계산하지 않습니다.
4218214: gkadmin: 강조 표시된 GUI 버튼에 대해 <Return> 키가 작동하지 않습니다
GUI 버튼에서 마우스 클릭은 작동되었지만, 강조 표시된 버튼에서 <Enter>나 <Return> 키를 눌러도 키가 작동하지 않습니다.
4220042: "kadmin: add_principal -expire "1/1/2000 7:00am" xhu"는 작동하지 않습니다
a.m. 시간이 지정되어 있으면 kadmin 명령의 add_principal에 대한 -expire 옵션은 작동하지 않습니다. 예를 들면 다음과 같습니다.
kadmin: add_principal -expire "9/1/1999 7:00am" xhu Invalid date specification "9/1/1999 7:00am". |
"오후" 사용은 가능합니다. a.m. 시간을 지정하려면 정오 이전 시간에 대해 시간 사양에 "오전"를 포함하지 마십시오. 이 주체를 추가하는 방법은 다음과 같습니다.
kadmin: add_principal -expire "9/1/1999 7:00" |
4245090: DNS를 사용하고 있지 않을 때 주체를 추가하는 방법을 설명합니다
SEAM 설명서에 DNS 사용에 기반한 프로시저가 설명되어 있으므로 모든 호스트와 서비스 주체들은 전체 도메인 이름을 사용합니다. DNS를 사용하지 않는 경우에는 주체를 작성할 때 도메인 이름을 포함하지 마십시오. 예를 들어, kdc1.acme.com은 kdc1이 됩니다.