SAML 기반의사용자와 OSS 간안전한정보교환을위한관리시스템 (An SAML Based Management System for Secure Data Exchange between User and OSS) 구희정 *, 홍충선 *, 강명수 *, 이길행 ** 경희대학교컴퓨터공학과 *, 한국전자통신연구원 ** heejeong@networking.khu.ac.kr, cshong@khu.ac.kr, mskang@networking.khu.ac.kr, ghlee@etri.re.kr 요 약 인터넷을통한네트워크운용및전자상거래등의규모가커짐에따라, 정보보호의문제가중요한이슈로제기되고있다. 기존의정보보호기술들에반해 XML 기반기술은데이터의일부분또는전체를암호화하여최종수신자에게전달할수있도록하면서복잡한 PKI 방식에비해단순한구조로이루어져시스템간손쉽게데이터를교환할수있다. 본논문에서는 XML 기반의보안표준언어인 SAML 을사용해사용자와 OSS 간안전하게인증정보를주고받을수있는인증시스템을제시하였다. SAML 은기업간 SSO 기능을제공하여기존의인증시스템에비해보안이향상된 SSO 서비스를제공할수있다. 1. 서론 인터넷을통한네트워크운용및전자상거래등의규모가커짐에따라, 트랜잭션의안정성, 네트워크자원의보호, 사용자의금융정보보호등정보보안및보호의문제가중요한이슈로제기되고있다. 네트워크보안및전자거래보안으로주로연구되고있는정보보호기술로는 password 기반, PKI(Public Key Infrastructure) 기반 [1], SSL(Secure Sockets Layer) 기반의보안서비스로부터 XML(eXtensible Markup Language) 에서출발한 ebxml(e-business XML), Web Service 기반으로하는 XML 정보보호기술기반의전자상거래지원보안서비스로까지발전하고있다. 이러한기술개발동향에서도알수있듯이인터넷전자문서가차츰 XML 기반으로표준화되어전자결제, 전자계약등전자상거래서비스의 XML 화가급속히진행되고있으며 ebxml, 웹서비스등국제전자상거래표준이 XML 기반으로이루어지고있다. 기존의 SSL 기반으로데이터를전송할때는데이터전체에대해암호화를수행하기때문에데이터자체에대한기밀성을보장할순있었으나데이터의일부분만암호화할경우엔부적절하였다. 또한 PKI 기반의인증보안서비스는구조및코드가복잡하여구현할때많은비용과노력이요구되는문 제점을안고있었다. 이에반해 XML Encryption 은이진데이터를암호화하는연산과 XML 데이터를암호화하는연산으로나뉘어 XML 데이터를암호화하는연산은데이터중일부분또는전체를암호화하여, 중간에경유하게되는제 3 자에게특정정보를노출시키지않으면서최종수신자에게전달할수있다. 또한 XML 기반기술은데이터의일부분또는전체를암호화하여최종수신자에게전달할수있도록하면서복잡한 PKI 방식에비해단순한구조로이루어져시스템간손쉽게데이터를교환할수있다. 본논문에서는이러한장점을가진 SAML 을 VPN 에적용시켜사용자와관리자간안전하게인증정보를주고받을수있는인증시스템을설계하였다. 본논문의구성은다음과같다. 2 장에서는관련연구로서 SAML 의구조및인증시나리오중심으로기술하고 Single Sign On (SSO), LDAP 등의개념중심으로정리한다. 3 장에서는 SSO 인증시스템모델에대해서정의한다. 또한 VPN 에서의 SSO 과정과 SAML assertion, artifact 를이용해 SSO 서비스가제공되는과정을제시한다. 4 장에서는구현및성능분석을논하며 5 장에서는결론및향후연구방향에대하여기술한다. 2. 관련연구 This work was supported by University ITRC Project of MIC. 1
2.1 SAML 2.1.1 SAML 개요및구조 SAML[2] 은 OASIS(Organization for the Advancement of Structured Information Standards) 에서개발된 XML(eXtensible Markup Language) 프레임워크로, 그림 1 에서와같이플랫폼의거래파트너들이인증정보, 권한부여정보, 그리고프로파일정보를안전하게교환할수있도록설계된것이다. 이것은기업내부또는기업간의 Single Sign- On 을제공하고, 기반보안 infrastructure 에종속되지않는다. SAML 은이전의두보안기술, 즉 S2ML(Security Services Markup Language) 과 AuthXML (Authorization XML) 에서파생된기술로, SAML 이출현하기전에는기업은독자적인인터페이스, 특정한 Single Sign-On 제품또는디렉터리기반제품중하나를사용해 Single Sign-On 을해결해야했다. SAML 의장점은 XML 기반으로 XML 에서제공하는장점을사용가능하다. SAML 을사용해서한번인증정보를입력하면다른다양한영역에서도인증을받을수있는 Single Sign- On 이가능 SOAP(Simple Object Access Protocol) 이나 ebxml 등의프로토콜과함께사용가능하다는점등을들수있다. Profile Security Assertion Markup Language (SAML) 인증 (Authentication), 속성 (Attribute) 등세가지유형이있다. Protocol SAML Protocol 은요청과응답의포맷을결정한다. Binding Binding 은 SAML 요청과응답을전송하는방식이다. SAML 에대해가장널리사용되는전송프로토콜은 HTTP 를통한 SOAP 이지만, OASIS 에서는 SAML 용으로순수한 HTTP 전송수단에대한작업을진행중에있다. Profile SAML assertion 이메시지안에서발견될수있는장소와같은것들을설명하고있다. 2.1.2 SAML 을사용한인증시나리오 SAML 생성은사용자가최초의인증을받을때소스사이트를통하여만들어지며이는토큰과같은형식으로생성된다. SAML 인증모델은크게두가지로나뉘어조금다르게동작된다. Pull 모델과 Push 모델이그것이다. Authentication based password Send artifact to the destination site Browser Step 1 Step 2 Step 3 Source site Assertion/ Artifact Send response and Redirect path to the destination With artifact Step 4 Destination site request SAML Assertion Protocol SAML response Step 5 Step 6 Response to the browser Binding 그림 1. SAML 구조 플랫폼독립적인 SAML 은 Assertion, Profile, Binding, Protocol 로구성되어있다 ( 그림 1). Assertion Assertion 은아이덴티티기관에서최종사용자 ( 사람이나기계 ) 에대해만든구문 (Statement) 을말한다. Assertion 은 특정사용자가해당애플리케이션웹사이트에대한접근을허가받았는가 와같은요청에응답한다. Assertion 에는권한부여 (authorization) 와 그림 2. Artifact 기반의 SAML Pull 모델 SAML 인증 Pull 모델 ( 그림 2) 에서 end host 는소스사이트에 assertion 을요청한다. 소스사이트는인증 / 승인과정을거쳐 artifact 를생성하고사용자에게전송한다. Artifact 는 assertion 의특별한형태이다. Artifact 는소스사이트에저장되어있는 assertion 을참조하는포인터와같다. 웹사용자가목적지웹사이트에자원을요청하면소스웹사이트는사용자에게 artifact 를전달함과동시에목적지웹사이트로경로재설정을수행한다. 목적지웹사이트는수신한 artifact 를소스웹사이트에전달하고해당 assertion 을전달받는다. 마지막으로목적지웹사이트에서는수신한 assertion 을분석하고적합 2
한요청일경우 SOAP 이나 HTTP 같은전송프로토콜을사용해웹사용자에게요청자원을전달한다 [2]. Authentication based password Send assertion to the destination Browser Step 1 Step 2 Step 3 Assertion Source site Send response and Redirect path to the destination with artifact Step 4 Destination site Response to The browser +<saml:attribute AttributeName="E-mail" AttributeNamespace="http://www.oasisopen.org/RSA2004/attributes"> </saml:attribute> +<saml:attribute AttributeName="MemberLevel" AttributeNamespace="http://www.oasisopen.org/RSA2004/attributes"> </saml:attribute> +<saml:attribute AttributeName="commonName" AttributeNamespace="http://www.oasisopen.org/RSA2004/attributes"> </saml:attribute> </saml:attributestatement> </saml:assertion> 그림 3 Assertion 기반의 SAML Push 모델 SAML Push 모델에서는 ( 그림 3) 사용자가소스웹사이트에 ID/Password 기반으로인증요청을하고소스웹사이트에서인증 / 승인후인증사용자에해당하는 Assertion 을생성한다. Pull 모델에서와같이사용자는후에소스사이트에목적지웹사이트의자원을요청하고소스사이트는요청자에게 assertion 을전달함과동시에목적지웹사이트로경로재설정을수행하게된다. 목적지웹사이트는요청자로부터 assertion 을전달받은후에소스웹사이트와의별도의프로토콜통신인증없이사용자를인증하게된다. -<saml:assertion xmlns:saml="urn:oasis:names:tc:saml:1.0:assertion" AssertionID="cT_S_T-vKMwidT8_Pzkke8UkC68." IssueInstant="2004-02-25T16:31:03Z" Issuer="http://aaremote.entegrity.com" MajorVersion="1" MinorVersion="1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <saml:conditions NotBefore="2004-02-25T16:26:03Z" NotOnOrAfter="2004-02-25T16:36:03Z" /> -<saml:authenticationstatement AuthenticationInstant="2004-02-25T16:30:58Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:pa ssword"> +<saml:subject> -<saml:subjectconfirmation> <saml:confirmationmethod> urn:oasis:names:tc:saml:1.0:cm:bearer </saml:confirmationmethod> </saml:subjectconfirmation> </saml:subject> <saml:subjectlocality IPAddress="192.168.4.1" /> </saml:authenticationstatement> -<saml:attributestatement> +<saml:subject> +<saml:subjectconfirmation> </saml:subjectconfirmation> </saml:subject> +<saml:attribute AttributeName="AssuranceLevel" AttributeNamespace="http://www.oasisopen.org/RSA2004/attributes"> </saml:attribute> 위는 SAML 기반의인증과정을거쳐생성된 Assertion 의형식을나타낸것으로이와같이 XML 기반의 Assertion 은사용자요청을인증 / 승인할수있는충분한정보를담고있다. 2.2 Single Sign On Scenario 하나의아이디로여러사이트를이용할수있는시스템으로여러개의사이트를운영하는대기업이나인터넷관련기업들이각각의 ID 를하나로통합할필요성이대두됨에따라개발된방식이다 [3]. 1997 년 IBM 이개발하였고우리나라에는 2000 년코리아닷컴이처음도입한이후삼성전자와 SK 가도입하며활성화되어애니패스와롯데타운등다양한사이트와많은솔루션공급업체등에서도사용하기시작했다. 개인은사이트에접속하기위해아이디와패스워드는물론개인신상정보도일일이입력해야하는불편함을한번의작업으로해소시켜주고, 기업은회원을통합적으로관리할수있어마케팅효과를극대화시킬수있는장점이있다. 그림 4 과그림 5 는 single sign on(sso) 의기본적인동작과정을나타낸것이다. 그림에서 SP 는 service provider 를나타내고 IdP 는 Id provider, 즉인증을담당하는기관이다. 인증되는순서는다음과같이이루어진다 [4]. User ➀ Access ➅ Permissio Auth. Req. ➁ Login Req. ➂ ➃ User info. submit IdP SP1 Resp. ➄ 그림 4 Single Sign On 인증모델 (1) SP2 3
사용자가 sp1 에 URL 로접속한다. sp1 은 IdP 에게사용자의정보를인증해줄것을요청한다. IdP 는사용자에게로그인화면으로 redirect 하여인증을요구한다. 사용자는아이디와패스워드를입력한다. IdP 는사용자정보를토대로인증을하고 sp1 에인증서를보내준다. sp1 은받은인증서를토대로요청받은사용자인증이유효함을확인한다. sp1 은사용자가인증된사용자로판명되면인증이완료된브라우저를넘겨준다. server 에서 Single Sign On 을제공하는모듈을제시한다. 3.1 SAML 기반의데이터전송내부모듈 VPN 간 single sign on 을제공하기위해 SAML 기반으로인증을수행하는시스템에서 VPN server 와 VPN client, VPN 관리시스템간정보가전달되는내부구조는다음과같다 [7]. 그림 6 을보면각시스템마다가지는모듈의형태가다르고사용자 (user), VPN 관리시스템, VPN server 는서로정보를교환한다. 사용자 URL, 아이디 / 패스워드, assertion/cookie 등의값을주고받는다. URL 은처음 VPN server 에접속할때, 그리고아이디 / 패스워드는추후에 VPN 관리시스템으로부터로그인요청을받았을때사용된다. 마지막으로 assertion/cookie 는타 server 들과연동시생기는정보들이다. Access ➀ SP1 User Permission ➃ Auth Req. ➁ Resp. ➂ SP2 IdP 그림 5 Single Sign On 인증모델 (2) 다시사용자는이번에는 sp2 의서비스를이용하려한다. 이때는다음과같은순서로인증이이루어진다 [5]. 사용자가 sp2 에접속을요청한다. sp2 는사용자의정보를 IdP 에요청한다. IdP 는 sp2 로부터요청을받고세션값을바탕으로인증서를검사하고사용자가이전에 sp1 에로그인했었던사용자임을알아낸다. IdP 는 sp2 에유효한인증자임을알려준다. sp2 는 IdP 로부터유효한인증 response 를받고사용자가이전 sp1 에서로그인했었던인증된사용자임을확인한다. sp2 는사용자에게인증이완료된브라우저는넘겨주고사용자는서비스를이용하게된다. 3. 제안구조본장에서는 VPN 에서사용자와 OSS 간안전하게정보를교환하기위해서 SAML 을사용해 Single Sign On 을제공하는인증시스템의구조와각모듈의역할에대해서제안사항을중심으로설명한다. VPN 터널링을통해사용자와 OSS 간정보를교환한다고가정하고 VPN 관리시스템의 login server 에서전송받은데이터를 SAML 로변환시켜인증을수행하고 assertion 을생성하는모듈과이후 VPN 그림 6 SAML 기반의데이터전송내부구조 VPN manager 는사용자가 VPN 에등록되어있는사용자인지를검사하는모듈로써 VPN 에등록된사용자라면 VPN 매니저는 SSO 요청모듈로 SSO 요청메시지를보낸다. SSO 인증관리자 (Authentication Manager) 는 Login server 와 LDAP 서버를가진다. Login server 는 SAML 변환모듈, SAML parsing 모듈, SSO 모듈, assertion 생성모듈로구성되어있다. SAML 변환모듈은외부로부터들어온 XML 기반의데이터를 SAML 으로변환시켜주는역할을담당한다. SAML 파싱 (parsing) 모듈은변환된 SAML 을일반프로그램언어를사용하여인증할수있도록문법검사를수행한다. SSO 모듈은쿠키 (cookie) 검사모듈과인증모듈로나뉘는데쿠키검사모듈은쿠키를통해파싱된데이터 ( 즉, 사용자정보 ) 가검증된사용자인 4
지를가려내는역할을담당한다. 또는사용자가이전에로그인과정을거쳐세션을가지고있는지검사한다. 인증모듈은최종적으로사용자정보를가지고인증을수행하는부분이다. VPN server 는 SSO 모듈과 LDAP 서버, assertion 전송모듈을가지고있다 [8][9][10]. SSO 모듈은 VPN 관리시스템의 SSO 모듈과같이쿠키검사모듈과인증모듈로나뉜다. 쿠키검사모듈은세션검사를통해접속을요청한사용자가이전에로그인했었던사용자인지가려낼수있다. assertion 전송모듈은 VPN 관리시스템에서생성된 assertion 을받아서사용자에게전송하는역할을담당한다. 그림 6 의구조를토대로사용자인증이이루어지는순서는다음과같다. 먼저사용자가처음시스템에로그인할때순서는아래와같다. 접속요청 - 사용자가이전에로그인했었는지여부를알리기위해처음으로 VPN server 에접속을요청한다. 인증요청 - VPN server 가 login server 에게사용자를인증해줄것을요청한다. login server 는사용자에게아이디와패스워드정보를요구한다. 인증 - 사용자가전송한정보를토대로 login server 와 LDAP 간연동을통해인증을수행하고 assertion 을생성한다. 인증서전달 - 생성된 assertion 을 VPN server 에게전송한다. 인증성공 - VPN server 가생성된 assertion 과로그인성공 browser 를함께사용자에게전송한다. 사용자는성공메시지를받고 OSS 와통신이가능하다. 로그인후다른시스템에인증과정없이로그인할때순서는아래와같다. 접속요청 - 사용자가다른 VPN server 에접속한다. 이전에로그인하였으므로로그인세션을갖고있다. 인증 - VPN server 는세션을검사하고 assertion 을요청하고 login server 와공유하는키와 assertion 을이용해서인증을수행한다. 인증성공 - 사용자정보가인증되면사용자에게인증되었음을알리고사용자는 OSS 와통신하게된다. 3.2 SAML 기반의 VPN 관리시스템그림 7 은 VPN 이있는네트워크에서사용자인증구조를나타낸것이다. 서로다른네트워크가백본망을거쳐연결되어있고사용자 (user) 와 OSS 사이는 VPN 터널링을통해인증을거쳐정보를주고받는다. 사용자가특정 OSS 에접속하려면 VPN server 에서인증을거치고각 VPN server 는 VPN 관리시스템 (VPN Management System) 에서통합적으로관리된다. VPN 관리시스템은공개키관리, VPN server 관리등사용자가 VPN 망에서원격 OSS 에접근하고자할때인증에대한통합적인관리를주관한다 [9]. 본연구에서제안된인증시스템 ( 그림 7) 은 VPN 이있는네트워크에서사용자와 OSS 간 VPN 인증을통해정보를주고받고자할때하나의아이디로여러다른 VPN server 에별도의로그인없이도인증을가능하도록하였다. 그림 7 VPN 에서인증시스템구조 3.2.1 VPN 에서 Single Sign On 과정본연구의시나리오는사용자가다른망의 OSS 와정보교환을하기위해접속을요청하는것으로시작된다. VPN 에서 single sign on 인증시스템의시나리오는그림 8 과같다. 그림 8 VPN 에서 Single Sign On 과정 (1) 사용자가특정 OSS 에접근하기위해 VPN server 에인증을하려한다. 이때사용자는 VPN tunneling 을통해서망에접근하고 VPN server 에접속한다. VPN server 는접근을요청한사용자가유효한사용자인지를알기위해 VPN 관리시스템의 5
login server 에사용자인증을요청한다. login server 는인증을요청받고해당사용자에게로그인폼을전송하여인증을요구한다. 사용자는아이디와패스워드를입력한폼을 login server 에게전송한다. login server 는사용자로부터아이디와패스워드정보를전송받아데이터베이스검색을통해유효한사용자인지여부를검사한다. 이때데이터베이스는 LDAP 기반으로 LDAP 에는아이디와패스워드같은사용자의기본정보와기타인적사항이저장되어있다. 사용자가유효하다면 login server 는인증이되었음을 VPN server 에게알린다. VPN server 는 login server 로부터유효한사용자임이확인된응답을받고사용자에게인증이되었음을알리는페이지를전송한다. 사용자는 VPN server 인증에성공하였으므로 VPN 터널링을통해 OSS 에접근하여정보를교환할수있다. 그림 8 의과정을바탕으로사용자는 VPN server 에인증권한을받아 OSS 에접근하는데성공하였다. 이제추후에사용자가이전의인증받았던 VPN server 와는다른서버가위치한네트워크에접근하여또다른 OSS 와정보를교환하려고한다. 이때사용자는별도의인증을거치지않고도 VPN server 에게서인증권한을받을수있다. 그림 9 에서사용자가다른망의 OSS 와정보를교환할때 VPN server 에인증받는순서를볼수있다. VPN server 는접근을요청한사용자가유효한사용자인지를알기위해 VPN 관리시스템의 login server 에사용자인증을요청한다. 그림 9 에서 login server 는 VPN server 로부터사용자인증요청만을받아사용자에게로그인폼을전송했었다. 그러나사용자가 assertion 을실어접속을요청하였기때문에 login server 는 assertion 을토대로사용자가이전에로그인과정을이미거쳤다는것을알수있다. login server 는별도의인증과정없이 VPN server 에게인증되었음을알린다. VPN server 는 login server 로부터유효한사용자임이확인된응답을받고사용자에게인증이되었음을알리는페이지를전송한다. 사용자는 VPN server 인증에성공하였으므로 VPN 터널링을통해 OSS 에접근하여정보를교환할수있다. VPN server 와 client 간에일반적인 single sign on 과정은그림 10 와같은순서로이루어진다. 본연구에서는제안된 VPN server/client 간에 single sign on 인증이이루어질때 SAML 기반으로생성된 assertion 을인증서로사용하여정보교환이이루어지도록하였다. server 와 client 간 SAML 데이터전송시에는 SOAP 를사용하여주고받는다 [5]. SOAP Server SAML SOAP Client SAML HTTP SOAP SAML HTTP SOAP SAML 그림 10 Server 와 Client 간 SAML 정보전달방식 그림 9 VPN 에서 Single Sign On 과정 (2) 사용자가또다른특정 OSS 에접근하기위해 VPN server 에접속한다. 이때사용자는 VPN tunneling 을통해서망에접근하고 VPN server 에접속한다. 그림 9 에서사용자는이미인증에성공하였고 VPN server 로부터사용자임을알려주는인증서 (assertion) 를받았다. 때문에 VPN server 로 assertion 과함께접속을요청한다. 3.2.2 VPN 에서 assertion 을이용한 Single Sign On 과정 SAML assertion 을사용해 server 와 client 간 single sign on 이이루어지는절차가다음의그림들에서설명될수있다. server 와 client 사이에인증서가오고가는형태는두가지로나뉜다. 한가지는 assertion 을생성하여도큐먼트형태로주고받는것이고다른한가지는 artifact 라는작은데이터를생성해서포인터처럼넘겨주는방식이다. 우선첫번째로, assertion 의형태로데이터전송이이루어지는과정이그림 11 과 12 에서볼수있다. 그림 11 은사용자가 OSS 와정보교환을위해 VPN server 에처음으로인증을하는부분이다. 사용자가다른망에있는특정 OSS 에접근하기위해최초로해당망내 VPN server 에접속한다. 이때접속형태는 URL 이다. VPN server 는 VPN 관리시스템에사용자유효성여부를요청하고 VPN 관리시스템내 login 6
server 는사용자에게로그인을요청한다. 로그인정보를넘겨받은 login server 는인증을거쳐 SAML assertion 을생성한다. 이때생성된 assertion 은 XML 형태의도큐먼트이다. login server 는이를데이터베이스에저장하거나사용자에게넘겨준다. 사용자는인증에성공하고 OSS 와터널링을통해안전하게정보를교환할수있다. 인증에성공한후사용자는다시또다른망의 OSS 에접근하기위해해당망내 VPN server 에접속을시도한다. 그림 11 을보면, 왼쪽에있는부분이새롭게접근하려는네트워크이고오른쪽의네트워크가이전에로그인했었던망이다. 사용자가다른 OSS 에접근하기위해해당망내에있는 VPN server 에접속을요청한다. 이때접속형태는 URL 이다. VPN server 는동일한 VPN 관리시스템의통제를받는 VPN server 들의리스트를사용자에게보여준다. 그림 11 SAML assertion 기반의인증시스템 (1) 사용자는이중이전에로그인에성공했던 VPN server 를 select 한다. VPN server 는 select 된폼정보를사용자로부터받는다. 왼쪽네트워크내 VPN server 는사용자에게 select 된 VPN server 로 redirect 메시지를보낸다. 사용자에게보이는브라우저는이전에로그인과정을거쳤던 VPN server 의그것이다. 오른쪽네트워크내 VPN server 가사용자의 assertion 을왼쪽의 VPN server 에게전달해주도록페이지를요청한다. 사용자는응답함으로써이전에생성된사용자의 assertion 을전송받는다. 사용자가오른쪽의 VPN server 로부터전송받은 assertion 을왼쪽의 VPN server 에게넘겨준다. VPN server 가사용자로부터전송받은 assertion 을토대로인증을거쳐사용자에게인증성공여부를브라우저를통해서알려준다. 이와같이사용자는 VPN 관리시스템내 login server 를거쳐인증하는절차없이단한번로그인함으로써다른망의 VPN server 에인증이가능하다. 그림 12 SAML assertion 기반의인증시스템 (2) 3.2.3 VPN 에서 artifact 를이용한 Single Sign On 과정 SAML artifact 를사용해서 single sign on 을제공하는인증시스템의인증과정은 assertion 이아닌 artifact 의형태로정보가교환된다는점이이전의인증절차와다른점이다. 일단 VPN client( 여기서는사용자에해당한다.) 와 VPN server 간로그인이성공적으로이루어지면 client 와 server 간에는동일한세션 (session) 을가진다. 동일하게생성된세션을토대로 server 는이미로그인을한 client 가자신에게접속을요청할때 client 가이전의 server 에서인증을받았으며자신의 server 에두번째로인증을요구한다는것을알고있다. 또한 artifact 전송방식에서두번째 VPN server 가사용자가선택한 server 로 artifact 를전송받기위해 redirection 하는부분에서도, 이전 VPN server 와사용자그리고두번째 server 간동일한세션을가지므로이전 server 는 artifact 를자동으로 URL 에실어두번째 server 로전송할수있게된다. 4. 구현및성능분석 4.1 환경설정및구현 본연구에서제안된 SAML 기반의 VPN server/client 간인증시스템을다음과같은컴퓨팅환경에서설치과정을거쳐테스트하였다. Computer environment Compaq server 1.7GHz 256MB Redhat 9.0, Hancom Linux Language : C Web Server : Apache-1.3.32 처음사용자가특정 OSS 의정보를얻고자접속하고 URL 은 https://163.180.116.238/testapp 이다. 인증이필요하므로 OSS 에접근하기이전에 VPN server 에접근한다. VPN server 는세션을보고사용자가이전에로그인했던기록이없으므로 login server 에로그인을요청한다. login server 는로그인입력 browser 를 7
사용자에게전송한다. 그림 13 와 14 는그과정을나타낸다. 그림 13 에서접속을하면그림 14 에서보는바와같이 https://163.180.116.234 로 redirection 되는것을볼수있다. VPN server 와 VPN 관리시스템내의 login server 간관계가유효함이판명되면 login server 는사용자에게로그인요청을하고사용자는아이디와패스워드정보를전송한다. 이때사용자가보는 URL https://163.180.116.234 는 VPN server 의 browser 가아니라 VPN 관리시스템내 login server 의 browser 이다. 인증을거쳐로그인에성공하면 login server 에서 assertion 을생성하고 VPN server 로전달한다. assertion 을전송받은후 VPN server 는사용자에게인증성공메시지를보낸다. 사용자가받은인증성공 browser 는그림 15 와같다. 그림 15 에서 https://163.180.116.238/testapp 는 login server 에서 VPN server 로 redirect 되었음을보여준다. 그림 14 VPN 관리시스템에서의로그인요청 Browser 그림 13 VPN server 접속 browser 후에사용자가다른 OSS 에접근하고자또다른 VPN server 에접속한다. 그림 15 에서 browser 상에다른 VPN server 의 URL 이링크되어있고사용자는원하는사이트로이동이가능하다. 예를들어원하는사이트의 URL 이 https://163.180.116.239 라고한다. VPN server 는사용자세션을검사하여이전에이미로그인했었던사용자임을알아내고 VPN 관리시스템내 login server 와공유하는키 (key) 를사용해인증과정을거친다. 그림 16 는인증과정을통해로그인이성공적으로이루어졌음을보여준다. 인증성공후 VPN server 가 https://163.180.116.239 로 redirect 하였음을확인할수있다. 4.2 성능분석 그림 15 인증성공 Browser 성능을분석하기위해설정한환경은다음과같다. OPNET 10.5 Server - HTTP Server - Received buffer : 8760 bytes - Max ACK delay : 0.2 seconds - Queuing : multi-server queue 사용자가처음로그인후세션과 assertion 을가지고다른 OSS 에접속한후최종적으로로그인허가를받기까지를인증시간이라고정의했을때 SAML 기반이아닐때의 single sign on 인증시간과 SAML 기반으로 assertion, artifact 를사용하여 single sign on 이이루어지는인증시간을각각측정하여그결과를표 1 에서비교해보았다. 8
그림 16 Single sign on 을통한인증성공 Browser 한 VPN server 에접속하는동시접속자수를 200 명, 400 명, 600 명, 800, 1,000 명으로나누고각각 VPN server 에접속할때 3 가지인증방식에따라측정한동시접속자중 1 인의인증시간을표 1 로나타내었다. 표 1 에서 SAML 기반의 SSO 인증시간은소수단위이지만 Non-SAML 기반의 SSO 인증시간보다오래걸리는것을볼수있다. 표 1 인증방법에따른 SSO 인증시간비교 (second) 인증방식접속자수 ( 명 ) Non-SAML Artifact Assertion 200 0.737412 1.209412 1.322412 400 0.737951 1.209951 1.322951 600 0.744989 1.216989 1.329989 800 0.753007 1.225007 1.338007 1,000 0.761819 1.233819 1.346819 최근전자문서들은차츰 XML 정보보호기술기반으로표준화되어전자상거래가이루어지고있다. XML 기반의 SAML 은비즈니스거래파트너들이인증정보, 권한부여정보, 프로파일정보를안전하게교환할수있도록설계된것으로새로운보안언어를만든것이아닌 XML 기반으로만들어져 XML 에서제공하는장점들을사용할수있다. XML 디지털서명을이용해메시지가중간에변경되는일이없고, 전송한쪽의정체를명확하게하고있어인증정보전달시보안을한층강화시켰다. 본논문에서는기존의인증시스템에대한연구동향을분석하고자료를바탕으로위의장점을가진 SAML 을실제시스템에적용시켜 VPN server 들간 Single Sign On 을제공할수있는모델을제시함으로써사용자와관리자간안전하게인증정보를주고받을수있는인증시스템을설계하였고이를구현하기위한방법론을제시하였다. 이를테스트하기위해서 Linux 기반의 Compaq 서버에서각 login server 와 application server 를설치하였다. 그리고 SAML 을기반으로 assertion 과 artifact 를사용한 Single Sign On 인증시스템을각각구현하고성능을비교분석하였다. Respons Time 1.4 1.3 1.2 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 Response Time according to Users normal artifact assertion 0.2 이는일반 XML 데이터를 SAML 로변환하고파싱하는과정때문이다. SAML 기반 SSO 인증시간을측정한결과중에서도 SAML artifact 기반의인증시간이 assertion 을주고받으며인증을수행한시간보다짧은인증시간이요구되는것을볼수있다. 이것은 assertion 은 XML 기반의텍스트문서의일종으로포인터개념인 artifact 보다데이터의양이많기때문이다. 각인증방식별 SSO 인증시간을비교한그래프가그림 17 에나타나있어그차이를비교해볼수있다. 5. 결론 인터넷에서정보전달에있어서데이터자체의안정성및사용자의정보보호의문제가중요해짐에따라정보보호기술이주요관심사로떠오르게되었다. 0.1 0 200 400 600 800 1000 Users 그림 17 인증방식에따른 SSO 인증시간비교그래프 SAML assertion 구조는공백을허용하지않기때문에공격자가이를악용하여공백문자를무차별적으로보내면해당시스템에서에러로인지하고에러메시지를계속보낸다. 그러므로트래픽부하가걸릴위험이있다. 향후에 SAML assertion 을생성하여데이터를전송할때위와같은 SAML 의취약점으로인해일어날수있는문제점을해결할수방안에대한연구가필요하다. 9
6. 참고문헌 [1] Berket, K., Essiari, A., Muratas, A.: PKI-based security for peer-to-peer information sharing, Peer-to- Peer Computing, 2004. Proceedings. Fourth International Conference on, Pages:45 52, Aug. 2004 [2] Gross, T, "Security analysis of the SAML single signon browser/artifact profile", Computer Security Applications Conference 2003, Proceedings. 19th Annual, Pages:298-307, 2003 [3] Gary Ellison, Jeff Hodges, Susan Landau, Security and Privacy Concerns of Internet Single Sign-On, Liberty v1.6, September 2002 [4] Jan De Clercq, Single Sign-On Architectures, Proceedings of the International Conference on Infrastructure Security table of contents, Pages:40-58, 2002 [5] Michael Fleming Grubb and Rob Carter: Single Sign- On and the System Administrator, Proceedings of the Twelfth Systems Administration Conference(LISA'98), 1998 [6] Nayef Abu-Ghazaleh, Michael J. Lewis, "Differential Serialization for Optimized SOAP Performance", In proceedings of 13th International Symposium on High Performance Distributed Computing (HPDC), Honolulu, Hawaii, pp: 55-64, June 2004 [7] Miyoshi, J.; Ishii, H., "Network-based single sign-on architecture for IP-VPN", Communications, Computers and signal Processing, 2003. PACRIM. 2003 IEEE Pacific Rim Conference on, Pages:458-461 vol.1, Volume:1, 28-30 Aug. 2003 [8] Takeda, T., Kojima, H, Inoue, I., "Optical VPN architecture and mechanisms", Communications, 2003. APCC 2003. The 9th Asia-Pacific Conference on, Pages:751-755 Vol.2, Volume:2, 21-24 Sept. 2003 [9] Qiu Xuesong; Xiong Ao; Meng Luoming, "The study and implementation the VPN service management system", Computers and Communications, 2000. Proceedings. ISCC 2000. Fifth IEEE Symposium on, Pages:66-71, 3-6 July 2000 [10] Cohen, R., "On the establishment of an access VPN in broadband access networks", Communications Magazine, IEEE, Pages:156-163, Volume:41, Issue:2, Feb. 2003 홍충선 1983. 2 : 경희대학교전자공학과학사 1985. 8 : 경희대학교전자공학과석사 1997 년 3 월 : Dept. of Information and Computer Science, Keio University ( 공학박사 ) 1988. 3-1999. 8: 한국통신통신망연구소네트워킹연구실장 1999 년 9 월 ~ 현재 : 경희대학교전자정보학부부교수 < 관심분야 > 차세대인터넷, 센서네트워크, 네트워크보안, 네트워크 QoS < 관심분야 > 네트워크보안 강명수 2004. 2 : 경희대학교컴퓨터공학과학사 2006. 2 : 경희대학교컴퓨터공학과석사졸업예정 이길행 1986. 2 : KAIST 전산학과석사 1996. 2 : KAIST 전산학과박사 1986.2 - 현재한국전자통신연구원광대역통합망연구단 SL 기술팀장 / 책임연구원 < 관심분야 > Distributed Processing, Load Balancing, Network/Service Management, SLA, DBMS 구희정 2003. 2 : 경희대학교컴퓨터공학과학사 2005. 2 : 경희대학교컴퓨터공학과석사 < 관심분야 > 네트워크보안 10