그리드 보안: 인증 및 위임 시스템 조사

전체 글

(1)
(2)
(3)

- iii -

(2) 프록시 인증서 ... 16

(3) Use for Single Sign-on and Delegation ... 17

2.5 VOMS ... 18

(1) 가상조직 구조 ... 18

(2) 사용자 Attribute ... 19

(3) 시스템 ... 19

(4) PERMIS, CAS, Akenti 와의 비교 ... 20

3. 확장된 그리드 인증 및 위임 모델 ... 21 3.1 MyProxy ... 21 (1) Credential 저장소에 대한 필요성 ... 21 (2) MyProxy 시스템... 21 3.2 VO Services Project ... 23 (1) 개요... 23 (2) VOMS... 24 (3) VOMRS ... 24 (4) GUMS... 25 (5) SAZ ... 26 (6) gPLazma ... 26 (7) gLExec ... 27 3.3 GridShib... 28 (1) Shibboleth ... 28 (2) X.509 와 SAML 연동... 30 4. 그리드 위임 및 인증 시스템 분류 ... 31 (1) Push 모델 vs. Pull 모델 ... 31 (2) 자원제공자와 서비스제공자 사이의 신뢰 관계 [36] ... 31

(4)

- iv -

(4) 가상조직 개념 포함 여부 ... 32

(5) Credential 형식 ... 32

(6) Credential 에 Attribute 기술 여부 ... 32

(5)

- 1 -

1.

그리드 보안 분류 1.1 적용 대상에 따른 분류 그리드 (Grid) 보안 관련 문제는 그 적용 대상에 따라서 그림 1과 같이 분류할 수 있다. (1) 호스트 수준 보안 가. 데이터 보안 자원을 제공하는 호스트는 실행되는 그리드 사용자의 작업 (Job)이 자신의 데이터를 침해하지 않을지에 대한 보안 문제가 있다. 예를 들어, 그리드 작업이 바이러스 (Virus)이거나 웜 (Worm)인 경우 호스트 시스템에 심각한 문제를 야기시킬 수 있다. 이를 해결하기 위한 방법으로 다음과 같은 것들이 있다. Ÿ Application-level sandboxing : 실행하는 프로그램에 대한 위/변조 여부를 검사할 수 있는 Proof-carrying code (PCC) [2] 시스템을 사용하여 호스트가 신뢰하는 응용프로그램만을 수행 하도록 한다. Ÿ 가상화 (Virtualization) : 원격 그리드 사용자가 사용하는 VMWare와 같은 가상머쉰을 별도로 제공하여, 호스트의 메인 시스템에 영향이 없도록 한다. Ÿ User-space sandboxing : 사용자 프로그램에 대한 시스템 콜을 가로채어 각 프로세스에 대한 Sandbox를 제공한다. 나. Job starvation 그리드 작업에 의해서 호스트의 지역 사용자들의 작업이 지연될 수 있다. 이를 해결하기 위해서 다음과 같은 방법을 사용할 수 있다.

Ÿ 예약 (Advanced reservation) : 사용자의 작업을 QoS (Quality of Service), 보안 등 여러 가지를 고려하여 예약 기반 스케쥴링을 한다.

(6)

- 2 - Ÿ Priority reduction : 그리드 작업에 대한 시스템 우선순위를 일반 작업의 우선순위보다 제약적으로 할당함으로써 호스트의 지역 작업에 대한 우선순위를 고려할 수 있다. (2) 아키텍쳐 수준 보안 가. 정보 보안 (Information Security) 일반적인 정보 보안 관련된 여러 보안 문제 중에서도 그리드 정보 보안 관련해서 다음 세 가지 문제를 고려해야 한다. Ÿ 보안 통신 (Secure communication) : 그리드 시스템을 사용하는 모든 프로세스들 간의 통신에 대한 보안을 제공해야 한다. 예를 들어, Globus 툴킷 GSI에서는 Transport-level 보안을 위해서 SSL을 사용하며, Message-level 보안을 위해서 암호화, 인증, 무결성 검사 등을 한다. 그리고 최근의 그리드 보안 시스템은 Web Services 보안 기술들 (WS-Security, WS-SecureConversation 등)을 사용하여 기본적인 보안 통신을 제공한다.

Ÿ 인증 (Authentication) : 인증은 원격 사용자에 대한 접근 권한을 결정하는 문제로 그리드 보안의 기초적인 보안 문제이다. X.509 인증서나 Kerberos 등의 다양한 방법을 사용하여 그리드 인증 시스템이 제안되고 있다.

Ÿ Single sign-on과 위임 (Delegation) : Globus GSI는 사용자가 작업을 실행할 때마다 매번 인증을 받아야 하는 번거로움을 해결하기 위해서 프록시 인증서 (Proxy Certificate)를 생성하여 Single sign-on을 제공하며, 생성된 프록시 인증서로부터 또 다른 프록시 인증서를 생성하여 위임을 제고하고 있다.

나. 정책 관리

(7)

- 3 -

다. 서비스 거부 공격

그리드 시스템과 같이 서비스 기반 시스템에서는 서비스 거부 공격 (DoS: Denial of Service)에 대해서 취약하다. 이를 해결하기 위해서 침입탐지 시스템 (IDS: Intrusion Detection System) 등의 보안 관련 시스템과 연동이 되어야 한다.

(3) Credential 수준 보안

Credential 문제는 그리드 시스템과 같은 분산 시스템에서는 필수적인 요소로, 사용자의 개인 인증을 어떻게 관리, 생성, 삭제, 보관하느냐이다.

가. Credential 보관 시스템

Credential 보관소는 사용자의 개인 Credential을 보관하는 것으로, MyProxy [6, 7]는 개인 인증서를 보관 및 조회할 수 있는 기능을 제공한다.

나. Credential 상호 연동

서로 다른 인증 시스템을 사용하는 구성요소들 간에 통신을 할 경우, 두 시스템간의 Credential 형식에 대해서 상호 인증을 할 수 있어야 한다. 예를 들어, KX.509는 X.509와 Kerberos의 두 Credential 간의 호환성을 제공해주는 시스템이며, GridShib [8, 9] 프로젝트는 Globus 툴킷과 Shibboleth [10] 시스템 간의 호환성을 해결한다. 1.2 인증 및 위임 관련 보안 문제 그리드 위임 및 인증 시스템 관련 보안 문제는 다음과 같은 것이 있다. [11] (1) Naming 그리드에 참여하는 사용자 및 자원제공자 등의 각 개체의 고유한 이름을 어떻게 정하느냐에 대한 문제이다. 다음과 같은 방법들을 사용해서 Naming 문제를 해결할 수 있다. Ÿ Random number 사용 : 가장 단순한 방법으로 난수를 발생시켜 그것을 이름으로 사용하는 것으로, 서로 다른 기관 사이에도 고유의 이름이 될 수 있다. 예를 들어, PGP 공개키가 여기에 해당한다. Ÿ 사용자 고유의 Global 이름 사용 : X.500 Naming 구조를 사용하여 전체 시스템에서 유일한 이름을 사용한다. 예를 들어, X.509의 DN (Distinguished Name)은 X.500 형식을 따라서 생성한다.

(8)

- 4 -

Ÿ Identity Server 사용 : 사용자의 이름 및 성질을 대변하는 Identity를 사용하는 것으로, 예를 들어, Shibboleth, MS Passport 서버, Liberty Alliance 등이 있다.

(2) Authentication (개인 인증)

개인 인증은 상대방이 제시한 Credential에 대해서 그것이 정당한 것인지 아니면 위조된 것인지를 판별하는 것이다.

Ÿ Kerberos [12] : Kerberos Key Distribution Center (KDC)가 모든 사람의 패스워드를 알고 있어, 각 사용자들은 이 서버에 접속하여 암호화된 토큰 (Token)을 받는다. 이 토큰을 상대방에게 제시하여 개인 인증을 받게 된다. 단일 결함점 (Single point of failure) 등의 단점을 가지고 있다.

(9)

- 5 -

한 가상조직은 여러 서로 다른 도메인에 걸쳐서 정책을 설립 및 유지하는 Policy Domain Overlay이다. [14]

그림 2. 가상조직을 위한 정책 Overlay [14]

이러한 Policy Domain Overlay를 지원하기 위한 보안 기능으로는 다음 세 가지가 있다.

Ÿ 여러 보안 시스템 지원 (Multiple security mechanisms) : 가상조직에 속하는 여러 조직들은 서로 다른 보안 방법을 가지고 있다. 이렇게 여러 개의 서로 다른 보안 모델에도 문제없이 수행할 수 있는 호환성이 필요하다.

Ÿ 동적 서비스 생성 (Dynamic creation of services) : 사용자는 필요에 따라서 동적을 여러 가지 서비스를 생성할 수 있어야 하는데, 이렇게 생성된 서비스는 그리드 보안 서비스가 제공하는 여러 서비스를 쉽게 제공할 수 있어야 한다. Ÿ 동적 신뢰관계 형성 (Dynamic establishment of trust domains) : 가상조직은

(10)

- 6 -

2.

기본적인 그리드 인증 및 위임 모델 이 장에서는 그리드 시스템을 위한 기본적인 인증 및 위임 모델로, CAS, VOMS, PERMIS, Akenti 등에 대해서 살펴 본다. 2.1 CAS (1) 개요

(11)

- 7 -

그림 4. CAS 사용자 인증 [4]

CAS 방식은 사용자-CAS서버 간의 신뢰, CAS서버-자원 간의 신뢰를 바탕으로 자원은 사용자를 신뢰하게 된다. 자원제공자가 개개의 사용자에 대한 모든 정책을 관리하는 부담을 없애고, 정책 권한을 CAS서버에 위임하여 CAS서버로부터 정당한 위임장을 받은 사용자에 대해서는 허락한다. 단점은 CAS서버가 하나 존재해야 하므로, 병목현상이나 단일 결함점(Single point of failure) 등이 있다.

(12)

- 8 - 삭제되어야 하며, 더 이상 사용자의 인증서를 발급하면 안 된다. 현재 GSI 프록시 인증서에서는 취소 방법을 제공하고 있지 않으며, 단지 유효기간을 짧게 하여, 그 기간이 지난 것은 자동 폐지되도록 하고 있다. 라. Compromised 자원제공자 자원제공자가 잘못 되었을 경우, 사용자가 직접적으로 자원을 사용 못하는 피해를 볼 수는 있지만, 보안적으로 큰 문제는 없다. (3) GT2에서의 CAS 모델 GT2에서 1.3절에서 언급한 세 가지 그리드 보안 문제를 어떻게 해결했는지 간단히 살펴 본다. 가. 다양한 보안 방법 지원 GSI는 X.509 인증서와 Transport 수준의 보안(TLS, SSL)을 제공하고 있다. X.509 인증서 기반으로 사용자의 그리드 시스템에 대한 개인 인증을 구현하며, TLS-기반 프로토콜을 사용하여 메시지 보안을 제공하고 있다. 또한 보안 게이트웨이를 두어 GSI와 내부 보안 방법으로의 전환을 담당하게 하였다. 예를 들어, KCA (Kerberos Certificate Authority)와 SSLK5/PKINIT는 Kerberos와 GSI 간의 상호 전환을 제공한다.

(13)

- 9 -

(4) GT3에서의 CAS 모델

GT3에서는 Open Grid Services Architecture (OGSA) [15] 구조를 제안하면서 Web Services 기술과 접목하였다. Web Services에 없는 Stateful 서비스와 보안 관련 서비스를 추가하여 Grid Service라는 이름으로 제공한다. 따라서 보안 측면에서는 Web Services 기술에서 제공하는 보안 관련 기술을 그대로 이용할 수 있게 되었다. 예를 들어, WS-Policy [16], XACML, WS-Security, SAML, WS-SecureConversation, WS-Trust 등의 다양한 보안 Web Services 기술을 이용할 수 있다 가. 다양한 보안 서비스 제공 그리드 환경에서 보안 문제를 서비스 형태로 정의하여 다양한 종류의 그리드 보안 서비스를 제공한다. 2002년 OGSP 로드맵에 의해서 다음의 다양한 보안 서비스를 정의하고 있다. Ÿ Credential 처리 서비스 : 위임 받은 토큰을 처리하는 서비스 Ÿ 인증 서비스 : 정책에 따른 권한 인증 서비스 Ÿ Credential 변환 서비스 : 서로 다른 신뢰 관계에서 Credential을 변화하는 서비스 Ÿ Identity 맵핑 서비스 : 사용자 Identity를 지역의 것으로 매핑시키는 서비스 Ÿ 감사 : 보안 로그 생성하는 서비스 나. 호스팅 환경 (Hosting Environment)

그리드 서비스는 Web Services와 같이 J2EE나 .Net과 같은 호스팅 환경에서 지원된다. 이러한 호스팅 환경에서 여러 가지 보안 서비스를 제공함으로써 사용자가 쉽게 그리드 보안 서비스를 사용할 수 있게 된다.

다. 보안 정책 (Publishing of Security Policy)

가상조직에 참여하는 여러 개의 기관 및 사용자 사이에 신뢰관계를 구축해야 한다. WS-Policy [16]와 관련 기술들은 Web Services에서 보안 정책을 기술 할 수 있는데, 이 기술을 사용하여 서로 다른 요소들 간의 신뢰관계를 기술하고 인증하도록 한다.

라. GT3 보안 모델 예제

그림 5는 GT3의 OGSA 보안 모델에 대한 예제로, OGSA 클라이언트가 OGSA 서비스를 사용하기 위한 흐름을 보여준다. 클라이언트와 서비스 모두 호스팅 환경에서 수행 되어 다양한 서비스 기술을 사용할 수 있다. 클라이언트가 원하는 서비스를 사용하기 위해 보안 관련 단계는 다음과 같다.

(14)

- 10 -

(15)
(16)
(17)

- 13 - 2.3 PERMIS (1) 개요 가. X.509 PMI X.509 표준 인증서는 한 개인의 정보와 그의 공개키를 인증기관으로부터 인증을 받은 것으로 개인에 대한 인증에 널리 사용된다. 개인 인증 이외에 권한 위임을 위해서 PMI (Privilege Management Infrastructure)에 대한 논의가 계속 되고 있다. PERMIS [21, 22, 23]의 PMI에서 X.509 Attribute 인증서의 구조는 그림 7. Attribute 인증서 형식 [21]그림 7과 같다.

그림 7. Attribute 인증서 형식 [21]

Attribute 인증서는 사용자와 그의 여러 가지 Attribute를 하나의 인증서 형식으로 묶은 것으로, Attribute를 정의하고 해당 인증서를 발급한 기관을 AA (Attribute Authority)라고 한다. 이 Attribute 인증서는 PKI 구조에 의해서 AA에 의해서 전자서명된다.

PKI는 개인의 이름과 공개키를 묶은 것이며, PMI는 개인의 이름과 여러 가지 성질(Attribute)를 묶은 것이다. 두 모델의 비교는 그림 8과 같다.

(18)

- 14 - 나. PERMIS PMI 아키텍쳐 권한 위임 정책을 기술하기 위해서 어떤 언어를 선택하느냐는 중요한 문제이다. Ponder [24]나 Keynote [25] 등의 정책 기술언어는 분산 시스템 권한 위임 모델에 부족하며, X.509 인증서는 너무 일반적인 형식이어서 알맞지 않다. PERMIS는 정책 기술언어로 확장성과 많은 툴을 제공하는 XML을 사용하여 다양한 권한 위임 모델을 기술한다. 권한 할당 시스템은 그림 9에서 보듯이 PA (Privilege Allocator)를 통해서 사용자 별 정책을 기술한 Attributed 인증서를 발급하며 서명한다. LDAP 서버에 이 인증서들이 저장되어 빠르게 조회 및 확인 가능하도록 한다. PERMIS는 역할 기반 위임 모델 (RBAC)을 기반으로 하므로, 결국 각 사용자 별 역할을 Attribute 인증서에 포함되어 관리된다. 또한 PA는 권한 위임 정책을 기술한 Attribute 인증서도 발급하여 LDAP에 저장한다.

그림 9. PERMIS 인증 모델 [21]

(19)

- 15 -

그림 10. PERMIS 권한 검증 시스템 [21]

(2) Akenti와의 비교

PERMIS [21]와 Akenti [3]는 비슷한 아키텍쳐를 가지는 권한 위임 모델이다. Akenti와 PERMIS는 각각 Akenti 서버와 ADF를 두어 권한 위임을 검증하며, 게이트웨이를 두어 사용자의 자원 접근을 제어한다. 두 모델 모두 XML로 정책을 기술하며 그 기술을 Attribute 인증서에 저장하여 관리하며 LDAP 서버를 디렉토리 서버로 사용한다. 하지만, 다음과 같은 여러 측면에서 차이점이 있다.

가. 정책

Akenti 정책은 condition 인증서와 Policy 인증서로 구성이 된다. Use-condition은 해당 자원을 사용하기 위한 조건에 대해서 인증하며, Policy 인증서는 자원에 대한 권한 정책을 기술한다. 반면에 PERMIS는 하나의 Policy 인증서를 사용하여, 사용자 별 역할 및 권한을 기술하여 LDAP 서버에 저장한다.

나. 분산 신뢰 관리

PERMIS와 Akenti 모두 신뢰하는 기관 (SOA: Source of Authority)가 존재한다. PERMIS는 ADF가 권한 위임을 결정할 때, 우선 사용자 정책 인증서를 생성한 SOA가 자신이 신뢰하는 것 중에 하나인지를 확인한다. Akenti에서는 여러 기관에서 하나의 자원에 대해서 Use-condition 인증서를 발급하기 때문에 Use-condition 내용 중에 신뢰 기관의 리스트를 포함한다.

다. 권한 위임 결정

(20)
(21)

- 17 -

발급한 곳이 CA 서버가 아니라 사용자 혹은 또 다른 프록시 인증서가 된다.

프록시 인증서의 소유자 정보인 Subject Name과 일련번호는 생성자가 유일하도록 관리를 하면서 생성을 한다. 그리고 프록시 인증서의 공개키는 사용자의 공개키와 다르게 생성되어야 한다. 또한 프록시 인증서에 대한 위임 정보 등을 기술하기 위해서 인증서 확장필드에 PCI (Proxy Certificate Information) 필드를 둔다.

PCI에 프록시 위임에 관한 정책을 기술하기 위해서 위임하는 정책 방법에 대한 ID와 정책 필드의 두 가지 데이터를 둔다. 예를 들어, 정책 방법 ID는 XACML에 대하 OID로 사용하고, 정책 기술은 XACML 정책 기술을 포함하도록 구현할 수 있을 것이다. 인증서 체인에 대한 검증 과정은 일반적인 인증서 체인에 대한 검증 과정과 동일한 단계를 거치면서 확인하며, 동시에 프록시 인증서에 대해서 다음의 사항을 검사해야 한다. Ÿ PCI 정보가 제대로 기술되어 있는지 확인한다. Ÿ Subject Name이 발행자의 이름에서 생성되었는지 확인한다. Ÿ 프록시 인증서 체인의 개수가 PCI 정보에 포함된 것보다 적은지 확인한다. Ÿ 프록시 인증서에 기술된 위임 정책을 저장하여 그 정책에 맞게 사용하는지 추후 확인한다.

(3) Use for Single Sign-on and Delegation

(22)

- 18 - 그림 11. Single sign-on을 위한 프록시 인증서 생성 [27] 그림 11은 Single Sign-on이 가능하도록 프록시 인증서를 생성하는 과정을 보여 준다. 1. 프록시 인증서용 새로운 공개키/비밀키 쌍을 생성한다. 2. 사용자의 비밀키를 사용해서 새로 생성한 프록시 인증서를 전자서명한다. 3. 이렇게 생성된 프록시 인증서의 비밀키는 파일에 저장이 되며, 이 파일은 사용자에게만 접근 권한이 주어진다. 2.5 VOMS

(23)

- 19 -

(2) 사용자 Attribute

한 가상조직의 사용자의 Attribute는 그룹, Role, Capability의 세 가지 Credential로 정의가 된다. 그룹은 사용자가 속한 가상조직 내에서의 부분조직을 말하며, Role은 사용자가 속한 그룹에서의 역할 혹은 성질을 기술하고, Capability는 사용자는 특수한 성질을 기술하는데 사용된다. 따라서 사용자는 Attribute는 그 사용자가 속한 가상조직에서 한 그룹의 멤버쉽, Role, Capability를 나타내는 문자열이다.

사용자의 Attribute인 그룹, Role, Capability는 FQAN (Fully Qualified Attribute Names)으로 정의 되며 그 형식은 아래와 같다.

/VO[/Role = role][/Capability = cap]

(24)

- 20 -

자원제공자는 사용자가 제시한 사용자 Attribute 인증서에서 관련 정보 (그룹, 역할, 능력)를 추출하고, 자신의 지역 정책에 맞는지 확인하여 해당하는 권한을 사용자에게 부여한다.

(4) PERMIS, CAS, Akenti 와의 비교 가. PERMIS

Ÿ VOMS는 사용자의 Attribute가 그룹, 역할, 능력으로 구성되며, PERMIS는 역할만을 정의하고 있다. Ÿ VOMS는 Attribute 인증서를 사용자에게 보내고, 사용자가 그것을 자원제공자에게 제시할 지 책임을 지고 있으나, PERMIS는 미리 생성한 Attribute 인증서를 정해진 데이터베이스데 넣고 조회를 한다. 이는 사용자가 자신의 권한의 일부만을 요구하는 것이 힘들게 된다. Ÿ PERMIS는 정책 결정하는 정책 엔진까지 포함하는 시스템이며, VOMS는 그 부분에 대해서는 구현에 따라 다르게 할 수 있도록 정의하지 않고 있다. 나. CAS

Ÿ CAS는 Attribute 인증서를 발급하지 않고 CAS 서버의 이름이 포함된 프록시 인증서를 발급한다. VOMS는 프록시 인증서의 확장 필드를 사용하므로 CAS 프록시 인증서를 사용 가능하다.

(25)

- 21 -

3.

확장된 그리드 인증 및 위임 모델 3.1 MyProxy (1) Credential 저장소에 대한 필요성 대부분의 그리드 서비스를 제공하는 기관에서는 여러 사용자가 쉽게 사용할 수 있는 포탈 (Portal) 서비스를 운영한다. 이러한 그리드 포탈의 보안 관련 요구사항으로는 i) 사용자가 표준 웹 브라우저를 통해서 포탈 사이트에 접속할 수 있어야 하며, ii) 그리드 Credential이 없는 곳에서도 웹 브라우저를 사용해서 서비스 받을 수 있어야 하고, iii) 자신의 Credential리 등록된 곳의 여러 그리드 서비스를 이용할 수 있어야 한다. 일반적인 포탈 소프트웨어를 사용해서 그리드 포탈을 구현할 경우, 우선 파일 형태로 저장되어 있는 공개키/비밀키를 사용하기 위해 정해진 장소에서만 사용해야 한다. 혹은 해당 Credential을 들고 다니면서 원하는 보안 서비스를 사용할 수 있다. 두 번째 문제로는 그리드 포탈에서 Credential 위임 서비스를 제공하지 않으면 그리드 서비스를 사용하는데 제한을 받을 수 있다. MyProxy [6, 7] 시스템은 그리드 Credential을 저장할 수 있는 시스템으로 다음과 같은 목적을 두고 있다. Ÿ 사용자가 위치에 상관없이 자신의 그리드 Credential을 접근할 수 있어야 한다. Ÿ 사용자가 얻어온 자신의 Credential로부터 다시 위임한 Credential을 생성할 수 있어야 한다. Ÿ 여러 개의 서로 다른 포탈이 사용할 수 있도록 확장가능 해야 한다. Ÿ 사용자가 자신의 Credential과 프록시 Credential을 직접 관리할 수 있도록 하고, 포탈은 그렇게 관리된 Credential을 사용자가 원할 경우 사용할 수 있도록 해야 한다. (2) MyProxy 시스템 가. 저장소에 위임

(26)
(27)

- 23 - 3.2 VO Services Project (1) 개요 VO Services Project [28]는 가상조직의 사용자 등록 및 그리드 자원에 대한 권한 위임 서비스를 제공한다. 권한 인증은 각 사용자 별 가상조직에서의 그룹과 역할을 매핑시켜 이루어지며, 동적 가상조직 관리에 유리하도록 설계되어 있다. 이 프로젝트는 US CMS, US ATLAS, Open Science Grid에 지원을 받고 있으며, EGEE, INFN, Globus 등의 그리드 미들웨어 그룹과도 공동연구를 하고 있다.

사용자가 그리드 자원을 사용하기 위해서는 우선 자신의 인증서를 CA로부터 발급을 받는다. 사용자 인증서를 자신이 속한 가상조직에 등록하고 가상조직에서 정의된 그룹과 역할에 대한 멤버쉽을 요청한다. 그리드 자원제공자 사이트에 접속하기 전에 VOMS (Virtual Organization Management Service)에 접속하여 자신의 인증서에 그룹과 역할 필드를 추가한 새로운 인증서를 발급받는다. VOMS로부터 받은 확장된 인증서를 그리드 자원제공자에 제공하여 자원 접근 권한을 인증 받게 된다.

자원제공자 사이트의 게이트웨이는 사용자로부터 받은 확장된 인증서를 검정하기 위해서 사용자의 Attribute를 추출하고 이를 인증하는 Call-out 모듈에게 넘기게 된다. 인증을 담당하는 Call-out 모듈은 계산 노드인 경우에는 PRIMA나 PRIMA-WS를 사용하고, 스토리지 노드인 경우에는 gPLazma를 사용하며, Worker 노드인 경우에는 gLExec를 사용한다. 이렇게 서로 다른 인증 모듈과 자원제공자의 인증 정책 모듈 (PDP: Policy Decision Point)와의 통신을 위해서 정의된 프로토콜을 구현하고 있다.

(28)
(29)

- 25 - 개인 인증서가 있어야 한다. 사용자는 개인 정보를 입력하고 자신이 속한 그룹 및 그룹 역할을 선택한다. 가상조직 관리자가 이 과정을 담당하거나 혹은 승인된 이후에 등록해야 한다. VOMRS는 이러한 여러 관리 기능을 웹 서버 형식으로 제공하며, VOMS 등의 다른 가상조직 정책 관리 서버와 연동하여 사용된다. (4) GUMS GUMS는 X.509 인증서나 프록시 인증서 등의 그리드 Identity를 지역 계정으로 매핑시켜주는 프로그램이다. Globus 툴킷에 포함된 gridmap 파일은 하나의 머신 내에서만 유효하게 동작을 하게 되어, 여러 개의 자원 노드가 있으면 모든 노드에 gridmap 파일을 생성해서 일관성을 유지하면서 관리해야 하는 단점이 있다. GUMS는 gridmap 파일이 하는 기능을 좀더 일반화 하여 웹 서비스 형태로 구현하여 어려 개의 자원 노드에 대해서 서비스를 해준다.

현재까지 구현된 GUMS Call-out 인터페이스는 OSGA OpenSAML 1.1 AuthZ와 OSGA OpenSAML-XACML 2.1 AuthZ 형식이다. 그리고 이전 버전인 GT2/Prima, GT4, gLExec 클라이언트도 구현되어 있다.

GUMS는 여러 모듈과 연동이 되어 다양한 형태로 사용될 수 있다. 예를 들어, 그림 16처럼GUMS가 VOMS와 Gatekeeper 사이에 존재하여 단순히 gridmap 파일의 일관성을 유지하는 역할로 사용될 수 있다. Gatekeeper가 직접적으로 GUMS를 호출하지는 않고, GUMS가 VOMS 서버에 주기적으로 연결하여 사용자의 정보를 갱신하여, grid-map 파일을 계속 일관성 있게 유지시켜 준다.

(30)

또는 그림 15처럼 VOMS 가상조직의 정책에 따라 Identity

(5) SAZ

SAZ (Site AuthoriZation) 하는 하나의 모듈이다. 사용자가 추출하여 이를 기반으로 인증 아래와 같다.

Ÿ DN: user_name, enabled, trusted, changedAt Ÿ VO: vo_name, enabled, trusted, changedAt Ÿ Role: role_name, enabled, trusted, changedAt Ÿ CA: ca_name, enabled, trusted, changedAt SAZ 서버는 사용자 프록시

테이블에서 조회를 하여 하나라도 Gatekeeper에 돌려 준다. (그림 Gatekeeper, gLExec, gPlazma

(6) gPLazma

dCache/SRM [30]은 대용량의 gPLazma [30]는 이 dCache/SRM 기반 인증을 담당하는 모듈이

- 26 -

VOMS와 PRIMA와 같이 연동하여 gridmap 파일 Identity를 매핑시켜주는 구조로 사용될 수도

SAZ (Site AuthoriZation)는 Fermilab의 Globus Gatekeeper와 연동하여 사용자가 제시한 프록시 인증서에서 DN, VO, Role, CA

인증 결정을 한다. SAZ 데이터베이스의 각 DN: user_name, enabled, trusted, changedAt

VO: vo_name, enabled, trusted, changedAt Role: role_name, enabled, trusted, changedAt CA: ca_name, enabled, trusted, changedAt

프록시 인증서에서 DN, VO, Role, CA 정보를 하나라도 권한이 거부 되어 있으면 권한

그림 17 참조) SAZ는 다른 모듈과의 연동을 Gatekeeper, gLExec, gPlazma 등을 위한 클라이언트가 구현되어 있다.

(31)

- 27 - 서버와 GridFTP 서버와 연동할 수 있는 모듈을 제공한다. 사용자가 SRM 서버나 GridFTP 서버를 통해 데이터 전송을 원하면, gPLAZMA 모듈을 호출하면서 필요한 인증서를 같이 넘겨 준다. gPLAZMA는 사용자의 인증서로부터 ID, 및 권한 관련 정보를 추출하여 해당하는 모듈의 플러그인 (Plug-In)을 사용해서 검증한다. 현재 구현되어 있는 위임 관련 플러그인은 dCache/SRM 자체 일대일 매핑 인증 모듈, Globus gridmap-file을 이용한 인증 모듈, 역할 기반 매핑을 하는 grid-vorolemapfile 기반 인증 모듈, GUMS와 통신해서 인증을 하는 SAS 웹 서비스 모듈이 있다.

(32)

- 28 -

gLExec는 그리드 Identity를 Unix/Linux Identity로 매핑시켜 Job의 uid와 gid를 설정하는 프로그램으로, Pilot 작업의 이러한 보안적 문제점을 해결하기 위해서 VO Services Project에서 Worker 노드에 대한 권한 위임 모듈로 구현하였다. 그림 19처럼 Pilot 작업이 작업을 생성할 때 중간에 gLExec를 거쳐서 생성함으로써 Pilot 작업에 의해 동적으로 생성되는 Worker 작업의 권한 위임 및 인증을 제어할 수 있다. [32] 그림 19. Pilot 작업에 의한 사용자 작업 인증 [32] 3.3 GridShib GridShib [8, 9] 프로젝트는 대표적인 그리드 시스템인 Globus 툴킷과 자원 공유 미들웨어인 Shibboleth를 합쳐서 그리드 사용자로 하여금 여러 시스템 자원을 사용할 수 있도록 해준다. 이 두 시스템을 연동하기 위해서 GridShib은 SAML 형식의 인증 모델 기반으로 권한 인증을 할 수 있도록 두 시스템에 플러그인을 제공한다. (1) Shibboleth Shibboleth [10]는 사용자의 Attribute를 여러 기관 사이에서 사용될 수 있도록 해주는 시스템이다. 즉, 한 사용자가 속한 기관과 자원을 제공하는 여러 기관 사이에서 Attribute를 인증할 수 있도록 한다. Shibboleth는 다음과 같은 세 개의 구성요소로 구성이 된다. Ÿ Handle Service : 이 서비스는 사용자들의 자신이 속한 지역 인증 서비스를 통해서 사용자를 인증하고 handle token을 발급해준다. Handle token은 SAML [33] 형식으로 되어 있어 사용자의 Identity인 handle을 가지고 있다.

(33)

- 29 -

사용자의 handle token을 자원제공자에게 제시한다. 자원제공자는 이 handle token을 Attribute Authority에 사용자의 token에 대한 개인 정보를 보호하면서 어떤 자원을 사용할 수 있는지를 SAML assertion 형식으로 제공해준다.

Ÿ Target Resource : 자원제공자로서 Shibboleth 형식의 사용자 인증 및 Attribute Authority 접속하여 인증을 받아오는 기능을 가지고 있다. 그림 20. Shibboleth 자원 접근 단계 [9] 사용자가 자원제공자의 자원을 접근하는 단계는 다음과 같다. 1. 사용자는 Handle Service에 연결하여 인증을 받는다. 2. Handle Service는 사용자를 인증하기 위해서 사용자 기관의 인증 서비스를 사용한다.

3. Handle Service는 사용자에 대한 새로운 handle 을 생성하고, 이를 Attribute Authority에 저장하여 이후에 자원제공자가 요청했을 때 사용하도록 한다. 4. 이렇게 얻은 handle은 handle token 안에 넣어서 사용자에게 전달된다. 5. 사용자는 handle token을 자원제공자에게 보내면서 자원 사용을 요청한다. 6. 자원제공자는 사용자에 대해서 어떤 Shibboleth 서비스가 사용자의 handle

token을 인증할 수 있는지 조회하고, 그 서버에게 token을 넘긴다.

7. 사용자의 Attribute에 대해서 그 자원에 대한 접근 권한을 검사한다. 만약 권한이 있으면 해당하는 Attribute 값을 얻는다.

(34)

- 30 -

(2) X.509와 SAML 연동

GridShib은 Globus 툴킷과 Shibboleth를 서로 연동하게 하는 소프트웨어로, Globus 툴킷을 위한 플러그인과 Shibboleth를 위한 플러그인을 제공한다. Globus 툴킷을 위한 플러그인은 사용자에 대한 Attribute를 Shibboleth Attribute Authority로부터 얻어와서 인증할 수 있는 역할을 한다. 반대로 Shibboleth 플러그인은 Globus의 사용자 인증서에 있는 DN을 바탕으로 해당하는 Attribute를 조회하도록 한다. GT4에서 웹 서비스로 여러 서비스를 제공하지만 사용자 인증은 여전히 그림 21(a)처럼 X.509 인증서에 기반하고 있다. 사용자 개인 인증을 gridmap-file을 사용해서 확인이 가능하지만 정책 기반의 다양한 권한 위임을 하기 위해서는 다른 인증 모델 (VO Services Project [28] 등)과 연동해서 구현해야 한다. 그림 21. GSI와 GridShib 연동 모델 [34]

GridShib에서 Globus 툴킷에 Attribute 기반 인증을 구현하도록 SAML 관련 소프트웨어 모듈을 구현하였다. OASIS 웹 서비스 보안 관련 표준 중의 하나로 그림 22의 WS-Security X.509 Token Profile을 Globus GSI에 구현하였다. 따라서 GridShib에서 GT4의 Attribute 기반 인증 시 GSI 모델은 그림 21(b)와 같다. [34, 35]

(35)

4.

그리드 위임 및 인증 시스템 그리드 위임 및 인증 시스템을 (1) Push 모델 vs. Pull 사용자의 자원 접근 관련 제공하느냐 여부에 따라서 Push 23(a)처럼 사용자가 자신의 모델은 그림 23(b)처럼 자원제공자가 정보를 조회하여 검증하게 된다

Ÿ Push 모델 : VOMS, VO Services Project Ÿ Pull 모델 : PERMIS, Akenti, GridShib

(2) 자원제공자와 서비스제공자 서비스제공자 (SP: Service Provider) 분리하여 인증 모델을 고려하면 제공자 사이의 신뢰 정도에 Ÿ Complete Trust : 자원제공자가 Ÿ Medium Trust : 서비스제공자는 자원제공자가 가 자신의 Ÿ No Trust : 자원제공자가 - 31 - 시스템 분류 시스템을 다음과 같이 여러 가지 분류 방법으로 vs. Pull 모델 관련 정책 (예: Attribute 인증서)을 자원제공자에게 Push 모델과 Pull 모델로 나눌 수 있다. Push Attribute 정보를 직접 자원제공자에게 제시를 자원제공자가 해당하는 인증기관으로부터

된다.

: VOMS, VO Services Project : PERMIS, Akenti, GridShib

그림 23. Push 모델과 Pull 모델

서비스제공자 사이의 신뢰 관계 [36]

(36)

- 32 -

그림 24. 서비스제공자와 자원제공자 관점 인증 모델 [36]

(3) Policy Decision Engine 포함 여부

위임 모델에서 정책 결정을 담당하는 모듈 (PDE: Policy Decision Engine)을 포함하여 제안된 모델과 위임 모델만을 제안하고 내부적인 정책 모듈 구현은 자원제공자의 선택을 남겨두는 모델로 나뉠 수 있다.

Ÿ 정책 결정 엔진 포함하는 모델 : CAS, Akenti, PERMIS, SAZ

Ÿ 정책 결정 엔진 포함하지 않는 모델 : VOMS, GUMS, gPLazma, GridShib

(4) 가상조직 개념 포함 여부

인증 모델에서 그리드 기본 단위인 가상조직 개념을 포함하는 모델과 그렇지 않고 일반적인 분산시스템을 대상으로 제안한 모델로 나뉠 수 있다.

Ÿ 가상조직 개념을 포함한 모델 : CAS, VOMS, VO Services Project, Ÿ 일반적인 분산시스템 대상 모델 : Akenti, PERMIS, GUMS, GridShib (5) Credential 형식

사용자 및 Attribute Credential의 형식에 따라 다음과 같이 분류할 수 있다. Ÿ X.509 인증서 기반 Credential : CAS, MyProxy

Ÿ Attribute 인증서 : VOMS, Akenti, Ÿ XML 기반 Credential : PERMIS, GridShib (6) Credential에 Attribute 기술 여부

(37)

- 33 -

Ÿ 개인 인증 정보만 전송 : CAS, MyProxy

Ÿ Attribute 정보 전송 : VOMS, Akenti, PERMIS, GridShib

5.

정리

본 보고서는 그리드 시스템의 인증 및 위임 시스템에 관하여 정리하여 살펴 보았다. 그리드 시스템에 관한 연구 개발이 시작되면서 가상조직 개념이 포함된 CAS를 기반으로 인증 및 위임 서비스가 제공되었다. 자원제공자는 자신이 신뢰하는 CAS 서버로부터 받은 인증서를 제시하는 사용자에게 자원을 제공하며, 지역 Identity는 gridmap 파일을 사용하여 지역 사용자 계정을 할당한다. 또한 Globus GSI의 프록시 인증서와 MyProxy를 통해서 Single sign-on을 지원한다.

(38)

- 34 -

[참고자료]

[1] A. Chakrabarti, A. Damodaran, and S. Sengupta, "Grid Computing Security: A Taxonomy," IEEE Security & Privacy, July 2007.

[2] G. C. Necula and P. Lee, "Research on Proof-Carrying Code for Untrusted-Code Security," in Proc. of IEEE Symposium on Security and Privacy, 1997. [3] W. Johnston, S. Mudumbai, and M. Thompson, "Authorization and Attribute

Certificates for Widely Distributed Access Control," in Proc. of IEEE 7th International Workshops on Enabling Technologies: Infrastructure for

Collatobrative Enterprises, 1998.

[4] L. Pearlman, V. Welch, I. Foster, C. Kesselman, and S. Tuecke, "A Community Authorization Service for Group Collaboration," in Proc. of IEEE 3rd

International Workshop on Policies for Distributed Systems and Networks,

2002.

[5] R. Alfieri, et al., "From gridmap-file to VOMS: Managing Authorization in a Grid Environment," Future Generation Computer Systems, vol. 21, pp. 549-558, 2005.

[6] MyProxy. Available: http://grid.ncsa.illinois.edu/myproxy/

[7] J. Novotny, S. Tuecke, and V. Welch, "An Online Credential Preository for the Grid: MyProxy," in Proc. of 10th International Symposium on High

Performance Distributed Computing (HPDC-10), 2001.

[8] GridShip Project. Available: http://gridshib.globus.org

[9] V. Welch, T. Barton, K. Keahey, and F. Siebenlist, "Attributes, Anonymity, and Access: Shibboleth and Globus Integration to Facilitate Grid Collaboration," in Proc. of the 4th Annual PKI R&D Workshop, 2005.

[10] Shibboleth Project, Internet2. Available: http://shibboleth.internet2.edu/ [11] M. Humphrey, M. R. Thompson, and K. R. Jackson, "Security for Grids,"

Proceedings of the IEEE, vol. 93, March 2005.

[12] B. C. Neumann and T. Ts'o, "Kerberos: An Authentication Service for Computer Networks," IEEE Communications Magazines, vol. 32, pp. 33-38, 1994. [13] B. Tung, et al., "Public Key Cryptography for Initial Authentication in

Kerberos," RFC 1510bis, 2004.

[14] V. Welch, et al., "Security for Grid Services," in Proc. of Twelfth

International Symposium on High Performance Distributed Computing (HPDC-12),

2003.

(39)

- 35 -

the Grid: An Open Grid Services Architecture for Distributed Systems

Integration. Available: http://www.globus.org/research/papers/ogsa.pdf

[16] BEA, IBM, Microsoft, and SAP, "Web Services Policy Language (WS-Policy)," ed, 2002.

[17] O. Kornievskaia, P. Honeyman, B. Doster, and K. Coffman, "Kerberized Credential Translation: A Solution to Web Access Control," presented at the 10th Usenix Security Symposium, 2001.

[18] D. W. Chadwick and A. Otenko, "The PERMIS X.509 Role Based Privilege Management Infrastructure," in Proc. of 7th ACM Symposium on Access Control

Models and Technologies, 2002.

[19] M. Thompson, W. Johnston, S. Mudumbai, G. Hoo, K. Jackson, and A. Essiari, "Certificate-based Access Control for Widely Distributed Resources," in

Proc. of 8th Usenix Security Symposium, 1999.

[20] V. Welch, F. Siebenlist, and I. Foster, "Security for Grid Services," in

Proc. of Twelfth International Symposium on High Performance Distributed

Computing (HPDC-12), 2003.

[21] D. W. Chadwick and A. Otenko, "The PERMIS X.509 Role Based Privilege Management Infrastructure," Future Generation Computer Systems, vol. 19, pp. 277-289, 2003.

[22] D. W. Chadwick, A. Novikov, and A. Otenko, "GridShib and PERMIS Integration," Campus-Wide Information Systems, vol. 23, pp. 297-308, 2006. [23] D. W. Chadwick, G. Zhao, S. Otenko, R. Laborde, L. Su, and T. A. Nguyen,

"PERMIS: A Modular Authorization Infrastructure," Concurrency and

Computation: Practice and Experience, vol. 20, pp. 1341-1357, 2008.

[24] N. Damianou, N. Dulay, E. Lupu, and M. Sloman, "The Ponder Policy Specification Lanaguage," in Proc. of Workshop on Policies for Distributed

Systems and Networks, 2001, pp. 18-39.

[25] M. Blaze, J. Feigenbaum, and J. Ioannidis, "The KeyNote Trust-Management System," RFC 2704, 1999.

[26] D. Chadwick and S. Otenko, "A Comparision of the Akenti and PERMIS Authorization Infrastructures in Ensuring Security in IT Infrastructures,"

in Proc. of ITI First International Conference on Information and

Communications Technology, 2003.

[27] V. Welch, et al., "X.509 Proxy Certificates for Dynamic Delegation," in

Proc. of 3rd Annual PKI R&D Workshop, 2004.

(40)

- 36 -

http://computing.fnal.gov/docs/products/voprivilege/index.html

[29] L. Bauerdick, et al., "The Virtual Organization Management Registration Service," in Proc. of Conference on Computing in High Energy and Nuclear

Physics (CHEP'06), Mumbai, India, 2006.

[30] The dCache Collaboration. Available: http://www.dcache.org

[31] A. S. Rana, et al., "Introducing Advanced Fine-grained Security in dCache-SRM for PetaByte-scale Storage Systems on Global Data Grids: gPLAZMA 'grid-aware PLuggable AuthoriZation MAnagement System'," in Proc. of 2006 IEEE

Nuclear Science Symposium Conference, 2006.

[32] I. Sfiligoi, O. Koeroo, G. Venekamp, D. Yocum, D. Groep, and D. Petravick, "Addressing the Pilot Security Problem with gLExec," in Proc. of International Conference on Computing in High Energy and Nuclear Phycis

(CHEP'07), 2007.

[33] "Security Assertion Markup Language (SAML) 1.1 Specification," OASIS,

November 2003.

[34] T. Scavo and V. Welch, "A Grid Authorization Model for Science Gateways,"

in Proc. of International Workshop on Grid Computing Environments, 2007.

[35] J. Gemmill, J.-P. Robinson, T. Scavo, and P. Bangalore, "Cross-Domain Authorization for Federated Virtual Organization Using the myVocs Collaboration Environment," Concurrency and Computation: Practice and

Experience, 2008.

[36] A. C. Squicciarini, E. Bertino, and S. Goasguen, "Access Control Strategies for Virtualized Environments in Grid Computing Systems," in Proc. of IEEE

수치

그림 1. 적용 대상에 따른 그리드 보안 분류 [1]

그림 1.

적용 대상에 따른 그리드 보안 분류 [1] p.5
그림 2. 가상조직을 위한 정책 Overlay [14]

그림 2.

가상조직을 위한 정책 Overlay [14] p.9
그림 4. CAS 사용자 인증 [4]

그림 4.

CAS 사용자 인증 [4] p.11
그림 7. Attribute 인증서 형식 [21]

그림 7.

Attribute 인증서 형식 [21] p.17
그림 9. PERMIS 인증 모델 [21]

그림 9.

PERMIS 인증 모델 [21] p.18
그림 10. PERMIS 권한 검증 시스템 [21]

그림 10.

PERMIS 권한 검증 시스템 [21] p.19
그림 16. GUMS의 단순 Identity 매핑 기능 모델

그림 16.

GUMS의 단순 Identity 매핑 기능 모델 p.29
그림  17  참조)  SAZ는  다른  모듈과의  연동을 Gatekeeper, gLExec, gPlazma 등을 위한 클라이언트가 구현되어 있다.

그림 17

참조) SAZ는 다른 모듈과의 연동을 Gatekeeper, gLExec, gPlazma 등을 위한 클라이언트가 구현되어 있다. p.30
그림 22. X.509 Token Profile 형식 [34]

그림 22.

X.509 Token Profile 형식 [34] p.34
그림 23. Push 모델과 Pull 모델

그림 23.

Push 모델과 Pull 모델 p.35
그림 24. 서비스제공자와 자원제공자 관점 인증 모델 [36]

그림 24.

서비스제공자와 자원제공자 관점 인증 모델 [36] p.36

참조

Updating...

관련 주제 :