목 차 1. 개요 1 2. 구성및범위 1 3. 관련표준 국외표준및규격 국내표준및규격 기타 1 4. 정의 전자서명법용어정의 용어의정의 용어의효력 2 5. 약어 3 6. 간편인증인터페이스 간편인증인

Similar documents
목 차 1. 개요 1 2. 규격의구성및범위 1 3. 관련표준및규격 국외표준및규격 국내표준및규격 기타 2 4. 정의 전자서명법용어정의 용어의정의 용어의효력 2 5. 약어 3 6. 사용자인증 3 7. 전송채널

인증기관간상호연동을위한 CTL 기술규격 CTL Technical Specification for the Interoperability of Certification Authorities 년 월

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

게시판 스팸 실시간 차단 시스템

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

C# Programming Guide - Types

목 차 개요 규격의구성및범위 관련표준및규격 국외표준및규격 국내표준및규격 기타 정의 전자서명법용어정의 용어의정의 용어의효력 약어 인증경로구축 인증경로검증알고리즘 인증서경로기본검증 검증알고리즘 부록 규격연혁

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

TTA Journal No.157_서체변경.indd

KCAC.TS.CM v1.60 무선단말기에서의공인인증서저장및이용 기술규격 Certificate Management in Mobile Device v 년 11 월

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

SBR-100S User Manual

The Pocket Guide to TCP/IP Sockets: C Version

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Microsoft Word - src.doc

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

행자부 G4C

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

The Pocket Guide to TCP/IP Sockets: C Version

C H A P T E R 2

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

로거 자료실

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

MB525_M_1104_L.pdf

Windows Server 2012

RHEV 2.2 인증서 만료 확인 및 갱신

untitled

A Study on the efficient mutual authentication mechanism using the agent server

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

MB860_Q_0405_L-SKT.pdf

어댑터뷰

API 매뉴얼

MZ601_QG_0527_L-SKT.pdf

보안토큰 자동배포 가이드라인(안)

PowerPoint Template

슬라이드 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

thesis

- - yessign Version 3.5 (yessign)

PowerPoint Template

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

컴파일러

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

PowerPoint 프레젠테이션

12. OAuth 2.0 으로사용자관리하기 12.1 들어가며 대부분의회사나조직은직원과고객데이터베이스를가지고있습니다. 쓰리래빗츠를도입하면 일부데이터베이스를이중으로관리해야하는불편함에직면합니다. 이문제를해결하기위해서 쓰리래빗츠는 OAuth 2.0 으로사용자를관리하는기능을제공

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

yessign Version 3.1 (yessign). ccopyright 2009 yessign ALL RIGHTS RESERVED

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

JAVA PROGRAMMING 실습 08.다형성

MasoJava4_Dongbin.PDF

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

오핀 (OFIN) SDK Guide Fintech Mobile SDK Guide - Android V 1.0 OPPFLIB 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

특허청구의 범위 청구항 1 회선 아이디 접속 시스템에 있어서, 온라인을 통해 실제 사용자 고유정보의 발급이 가능한 아이디 발급 사이트를 제공하기 위한 아이디 발급 수단; 오프라인을 통한 사용자의 회선 아이디 청약에 따라 가상의 사용자 고유정보 및 가인증 정보를 생성하고

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Microsoft PowerPoint - 6.pptx

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

H3250_Wi-Fi_E.book

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

3장

Tomcat.hwp

BEA_WebLogic.hwp

PowerPoint 프레젠테이션

초기설정 WebtoB Web Server 에서인증서를사용하기위해 CSR 을생성하는방법입니다. 1. 초기설정 - CSR 을생성하기전에다음의몇가지사항을필히확인합니다. 부팅후 Path 나환경변수를일일이설정하지않게초기설정파일을사용하여로그인시자동으로실행되도록하고있습니다. 그러나

비식별화 기술 활용 안내서-최종수정.indd

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

대량문자API연동 (with directsend)

Facebook API

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

API 매뉴얼

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 웹 연동 기술.pptx

DBMS & SQL Server Installation Database Laboratory

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Windows 8에서 BioStar 1 설치하기

0. 들어가기 전

PowerPoint 프레젠테이션

Index Process Specification Data Dictionary

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

PowerPoint 프레젠테이션

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

LG전자 서비스 센터 안내 사용 중 문의/불편 사항은 서비스센터 방문 전에 전화로 문의하세요 , , (수신자 부담) 상담원과 원격으로 사용자 휴대전화를 진단 및 상담할 수 있는 LG전자 원격상담 서비스도 가능합니

System Recovery 사용자 매뉴얼

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

<4D F736F F D20BAB8BEC8BCADB9F620BCD2BDBA20BCF6C1A420BBE7BFEBC0DA20B8DEB4BABEF32E646F63>

최종_백서 표지

[Brochure] KOR_TunA

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

Transcription:

간편공인인증서인터페이스가이드라인 Interface Guideline for HTML5 Based PKI Implementation v1.00 2016 년 08 월

목 차 1. 개요 1 2. 구성및범위 1 3. 관련표준 1 3.1 국외표준및규격 1 3.2 국내표준및규격 1 3.3 기타 1 4. 정의 2 4.1 전자서명법용어정의 2 4.2 용어의정의 2 4.3 용어의효력 2 5. 약어 3 6. 간편인증인터페이스 3 6.1 간편인증인터페이스모델 4 6.2 간편인증사용자인터페이스 5 7. 기본요구사항 7 7.1 간편인증서비스호출 7 7.2 다중간편인증서비스간연계처리 8 7.3 간편인증앱서비스앱과서비스서버연계 9 7.4 간편인증서비스앱구현요구사항 9 8. 보안고려사항 10 [ 부록1] 간편인증사용자인터페이스와서비스서버연계 Flow 및 javascript API 2 1 [ 부록2] 간편인증앱과서비스서버연동 javascript API 6 1

간편공인인증서인터페이스가이드라인 Interface Guideline for HTML5 Based PKI Implementation 1. 개요스마트폰과같은모바일기기의 USIM, ICCard, MicroSD, 트러스트존등보안토큰을모바일통신을통해 PC와같은타기기에연결하여전자서명하는경우가입자 PC에각보안토큰과통신하는데필요한별도의전용구동프로그램 (PKCS#11) 들을필수적으로설치해야하는제약이있다. 이러한제약으로인해가입자소프트웨어등이순수웹표준기술로구현되어있는경우에도모바일기기를활용하여전자서명을할경우가입자가해당구동프로그램을 PC에설치를해야하는불편함이있다. 따라서, 데스크톱환경에서각각의보안토큰전용구동프로그램을설치하지아니하고유저인터페이스측면에서보안토큰이용방식특성에따라상이할수있는사용자경험이되지않는일관되고범용적인경험을할수있도록한것이간편공인인증서인터페이스가이드라인의목적이다. 본가이드라인에서는브라우저를이용하는사용자측면에서 PC내에별도의전용프로그램설치없이모바일디바이스를활용하여공인인증서를안전하고편리하게이용할수있도록순수웹환경하에서전자서명이요구되는가입자소프트웨어등과간편공인인증서서비스제공자가갖추어야할인터페이스관련요구사항을기술한다. 2. 구성및범위본가이드라인에서는간편공인인증서 ( 이하간편인증 ) 모델을제시하고가입자측면에서일관되고범용적인사용자경험을보장하기위해가입자소프트웨어및서비스제공자에게요구되는최소한의기능및인터페이스에대해아래와같이명시하고있다. -. 가입자소프트웨어내간편인증저장매체추가요구사항 -. 간편인증 UI/UX 인터페이스최소요구사항 -. 이종 유사간편인증서비스도메인간상호연계를위한인터페이스요구사항 -. 모바일디바이스에서전자서명을위한인터페이스요구사항 -. 기타보안요구사항 (Security Consideration)

3. 관련표준 3.1 국외표준및규격 [PKCS11] RSA Laboratories PKCS#11, Cryptographic Token Interface Standard v2.11, 2001 3.2 국내표준및규격 [KCAC.TS.HSMUI] KISA, 스마트인증인터페이스가이드라인 v2.00, 2013.11 [KCAC.TS.HSMU] KISA, 보안토큰기반의공인인증서이용기술규격 v2.10, 2012.11 [KCAC.TS.CM] KISA, 무선단말기에서의공인인증서저장및이용기술규격 v1.30, 2012.11 [KCAC.TG.DGH] KISA, 보안토큰구동프로그램배포가이드라인 v1.0, 2012 3.3 기타 [PC/SC] PC/SC Workgroup, PC/SC Workgroup Specifications 2.01.3, http://www.pcscworkgroup.com/specifications/overview.php [USB 2.0] [ISO7816] USB Implementers Forum, Inc., Universal Serial Bus Revision 2.0 Specifications, http://www.usb.org/developers/docs/ ISO/IEC 7816, Identification Cards - Integrated Circuit(s) cards with contacts Part 1 to 10 4. 정의 4.1 전자서명법용어정의본가이드라인에서사용된다음의용어들은법률제6585호및동법시행령에정의되어있다. 가 ) 공인인증서나 ) 가입자다 ) 가입자소프트웨어

4.2 용어의정의가 ) 간편인증 : PC와같은기기에서전자서명이요구될때해당기기에별도의구동프로그램설치없이, 모바일기기와연동하여키생성및전자서명생성을처리하는기술의총칭나 ) 다중간편인증서비스연계 : 간편인증서비스호출후타간편인증사용자일경우해당서비스제공자의간편인증서비스로연계하는방식의총칭 4.3 용어의효력본규격에서사용된다음의용어들은 [RFC2119] 를준용하며다음과같은의미를지닌다. 가 ) 해야한다, 필수이다, 강제한다 ( 기호 : M) 반드시준수해야한다. 나 ) 권고한다 ( 기호 : R) 보안성및상호연동을고려하여준수할것을권장한다. 다 ) 할수있다, 쓸수있다 ( 기호 : O) 주어진상황을고려하여필요한경우에한해선택적으로사용할수있다. 라 ) 권고하지않는다 ( 기호 : NR) 보안성및상호연동을고려하여사용하지말것을권장한다. 마 ) 금지한다, 허용하지않는다 ( 기호 : X) 반드시사용하지않아야한다. 바 ) 언급하지않는다, 정의하지않는다 ( 기호 : -) 준수여부에대해기술하지않는다. 5. 약어본가이드라인에서는다음의약어가이용된다. 가 ) IC Card : Integrated Circuit Card, 집적회로카드나 ) microsd : Micro Secure Digital Card 다 ) PIN : Personal Identification Number, 개인식별번호

라 ) USIM : Universal Subscriber Identity Module, 범용사용자식별모듈 6. 간편인증인터페이스 6.1 인터페이스모델데스크톱환경의가입자소프트웨어에서간편인증처리를위한간편인증연계, 모바일기기에서전자서명을위한간편인증앱과서버스서버제공자간의일반적인인터페이스모델은 [ 그림 1] 과같다. [ 그림 1] 간편인증인터페이스모델 모바일기기에전자서명을요청하기위해서가입자소프트웨어는간편인증사용자인터페이스를간편인증중계서버를통해제공받을수있으며, 이때모든간편인증중계서버는별도의설치가요구되지않고순수웹표준기술로구현된사용자인터페이스를제공하여야한다. 가입자소프트웨어와간편인증중계서버는웹프로토콜 (HTTPS) 을이용하기때문에데스크톱PC와간편인증앱간의종단 (End-To-End) 보안에취약할수있다. 따라서사용자인터페이스를통해사용자가요청한모바일기기의간편인증앱을호출한이후간편인증앱은전자서명을위한원문정보수신및제출을데스크톱브라우저의가입자소프트웨어, 간편인증중계서버를통해송수신하지않고

서비스서버와직접통신을하여처리할것을권고한다. 6.2 간편인증이용 모바일기기의간편인증앱과의연결을위해서는 [ 그림 2] 과같이전자서명이필요한웹페이지내에 [ 간편인증 ] 버튼메뉴를추가하거나, 가입자소프트웨어내에저장매체-[ 간편인증 ] 메뉴를아래 [ 그림 3] 과같이추가하여이용할수있다. [ 그림 2] 간편인증서비스직접호출예시 [ 그림 3] 순수웹기반 (HTML) 가입자소프트웨어예시

모바일기기내의간편인증앱을통해전자서명을위해서간편인증사용자인터페이스를 [ 그림 4] 과같이가입자에게제공되도록해야하며, 위제시된 2가지방식의 [ 간편인증 ] 메뉴선택시간편인증중계서버를통해간편인증사용자인터페이스를요청하여가입자에게제공하는것을권고한다. USIM, ICCard, 트러스트존등의매체를이용하여간편인증서비스를제공하는각각의간편인증중계서버는 [ 그림 4] 과같이일관된사용자인터페이스로구현하여가입자에게동일한사용자경험과다양한해상도를가진디바이스에서동작될수있는반응형으로제공할것을권고한다. 간편인증사용자인터페이스에는각각의간편인증앱에서제공하는보안매체를 추가해야하며, 매체별연결방식에따라모바일기기와연결을위한휴대폰번호와 같은추가적인정보를요구할수있다. [ 그림 4] 순수웹기반 (HTML) 간편인증사용자인터페이스예시

모바일기기와연결을위한추가적인정보입력시휴대폰번호와같은개인정보 는타인이재사용하지않도록보안을고려하여입력을요구한정보전체를임시 저장 (Cache) 하지않는방식으로제공할것을권고한다. 7 기본요구사항 7.1 간편인증서비스호출간편인증서비스이용을위해서는스마트폰내간편인증앱과연결을위한간편인증사용자인터페이스가사용자에게제공되어야하며, 이인터페이스는서비스서버또는간편인증중계서버에서제공받을수있다. 간편인증중계서버로부터제공받는경우, 최초접속한 CP 서비스도메인과간편인증중계서버도메인이다를수있으며, [ 그림 5] 과같이간편인증중계서버는크로스도메인환경에서서비스이용될수있도록관련기능을서비스서버에제공해야한다. 간편인증중계서버로전송하는정보중서비스서버에서생성하는정보 ( 세션, 인증번호등 ) 는간편인증사용자인터페이스에서사용자정보입력이완료된이후서비스서버로부터전달받아간편인증중계서버로전달하는방식으로구성하여서비스서버의자원이낭비되지않도록효율적으로구성할것을권고한다. [ 그림 5] 의예시는간편인증사용자인터페이스를호출하기위한웹페이지내에 iframe을구성하고, iframe 내에간편인증사용자인터페이스를출력시키며, 사용자에게요구된입력이완료된이후서비스서버로부터동적정보 ( 세션ID 등 ) 를얻기위해웹스크립트인터페이스를통해정보를획득하는과정이다.[ 부록 1] 참조

[ 그림 5] 순수웹기반 (HTML) 간편인증사용자인터페이스예시 간편인증사용자인터페이스에서간편인증중계서버로전송하는파라미터는 [ 표 1] 와같이서비스개시와간편인증앱간의연결을위한필수정보와선택정보로구성하며, 정의된파라미터이외에서비스서버가추가한파라미터정보가있을경우각중계서버는확장된파라미터를간편인증앱으로전달하여야한다. 파라미터구분설명 cp_info M " " 를구분자로표현한서비스서버정보 - "domain cp_code name" callbackurl M 간편인증앱에서 CP 서버로접속하기위한정보 server_data M 서비스서버가생성한암호화된 callback 파라미터정보 base64 인코딩 ( 대칭키암호화 (txid=xxx&data1=xxx&data2&...)) telco O 이용통신사정보 (SKT:0, KT:1, LGU:2) phone_number O 휴대폰번호 confirm_code O 서비스서버에서생성한사용자확인코드 [ 표 1] 간편인증중계서버서비스호출파라미터 7.2 다중간편인증서비스간연계처리 간편인증중계서버는동일매체별로여러서비스제공자가있을수있다. 이경 우최초에간편인증중계서버가수신한사용자정보를타서비스제공자로연계하 여 [ 그림 6] 과같이사용자가연계된간편인증서비스를이용할때재입력하지

않도록입력정보를타서비스제공자에게연계시킬수있어야한다.[ 부록 1 참조 ] [ 그림 6] 간편인증중계서버서비스연계 7.3 간편인증서비스앱과서비스서버연계 간편인증중계서버는 [ 표 1] 와같이간편인증앱과연계하기위한정보를수신하게된다. 간편인증중계서버는이정보중간편인증앱이서비스서버에접속하기위한정보를푸쉬등과같은전송방법을통해간편인증앱에전달할수있다. 푸쉬와같은방법으로구동된간편인증앱은서비스서버에접속할정보중접속대상서비스서버를 callbackurl로하고, session_id 및서비스서버가추가한파라미터들을포함하여아래와같이서비스서버에서비스요청을해야한다. https://callbackurl?server_data=xxxx& 서버확장파라미터 s=xxxx 7.4 간편인증서비스앱구현요구사항 간편인증앱은서비스서버와연계하여데스크톱환경에서필요한전자서명및 키생성기능을수행할수있으며, 발급되는인증서는 USIM, ICCard, 트러스트존 등안전한저장매체로저장및이용하는것을권고한다.

[ 그림 7] 과같이서비스서버는전자서명을위해사용자에게동의, 입력등을요구할수있으며, 간편인증앱은입력, 화면전환과같은다양한형태의서비스구성에대응할수있는구현과서비스서버에관련기능처리를위한정보를제공하는것을권고한다.[ 부록2] 참조 [ 그림 7] 간편인증앱논리구성과서비스서버간연계예시 8. 보안고려사항 본가이드라인에서제시하는간편인증서비스는데스크톱등웹브라우저에서별도설치가없는무설치기반으로스마트폰간편인증앱과연계후서비스제공자가요구하는전자서명을간편인증앱을통해제출하여데스크톱에서필요한인증처리를대신해주는순수웹환경으로공격자로부터송수신구간트래픽탈취와사용자미인증연결허용등의보안위협들에노출될수있다. 따라서안전한간편인증서비스제공을위해서아래보안위협을고려하여구현할것을권고한다. l 구간암호화 간편인증중계서버는 https 프로토콜을이용하여송수신하는모든데이터를암호화해야하며, SSL/TLS를위한이외의포트는서버에서사용하지않아야한다. 간편인증앱이서비스서버에접속하기위한 callbackurl의프로토콜은 "https" 로정의하여야한다. l HTTP Request Method

중계서버, 서비스서버에 http request 시전송하는 method 는 "POST" 방식으로 전송할것을권고한다. l 브라우저 Cache 데이터 사용자가입력한정보 ( 휴대폰번호등 ) 를임시로보관하는경우제 3 자가유용하 지못하게전체정보를 cache 하지않기를권고한다. l 사용자본인확인 웹브라우저와스마트폰연결을위한이용자인증절차가없는경우, 누군가의도된목적으로간편인증사용자인터페이스에피해자의연결정보를입력하고, 피해자가무의식적으로연결을받아들였을경우공격자는피해자의계정정보등에접근할수있다. 따라서간편인증중계서버또는간편인증앱에서데스크톱웹브라우저이용자와스마트폰접속이동일인임을확인하는기능을구현하여야한다. l 서버데이터보안 서비스제공자의데이터는사용자웹브라우저세션과간편인증앱사용자의구분및연결등의목적으로서비스제공자서버에서임의의데이터를생성후간편인증중계서버를통해간편인증앱까지전달하게되므로, 생성된임의의데이터는경유되는모든서버와간편인증앱에서정보를알수없도록암호화하여전달하여야한다. l 트랜잭션 ID 고려사항 간편인증앱과의연결을위한트랜잭션ID는웹브라우저와연결된세션정보를그대로이용할수없으며, 안전한난수생성기를통해유일한트랜잭션ID를생성하여야한다. 서비스제공자는간편인증앱과의연결이이루어진이후재사용된트랜잭션ID 의요청을거부할수있도록구현하여야하며, 일정시간동안연결이없는트랜잭션은삭제하는기능을갖추어야한다. l 간편인증앱사용자입력보안 간편인증앱은서비스제공자로부터전자서명원문전체를수신받아전자서명 을할수도있지만, 서비스제공자는 PC 에서입력하는정보의보안을고려해서 데스크톱웹브라우저에서주요민감정보를입력하지않고간편인증앱을통해주

요정보를입력후안전하게전자서명하는과정이필요할수있다. 따라서, 간편 인증앱은후자의경우를고려하여민감정보입력보안을위해가상키패드와같은 입력보안기능을탑재할것을권고한다.

* 부록 1 간편인증사용자인터페이스와서비스서버연계 Flow 및 javascript API

void EA_init() void EA_open_user_interface (service_callback_function) void EA_close_user_interface() void EA_response_select_info(dataobj) void EA_open_vendor_process(forwardurl, dataobj) void EA_complete_user_interface() void EA_init(); 간편인증사용자인터페이스초기화 사용자화면에 iframe 생성 ( ifram element 생성예 ) var EA_iframe = '<div id="dscertcontainer"><iframe id="ea_frame" name="ea_frame" src="" width="0px" height="0px" frameborder="0" allowtransparency="true" style="position:fixed;z-index:100010;top:0px;left:0px;width:100%;height:100%;"></iframe></div>'; $(EA_iframe).appendTo('body'); void EA_open_user_interface(service_callback_function) iframe 에사용자인터페이스창열기. request get 방식으로사용자인터페이스창으로파라메타전달 ( ifram url 설정예 ) src= https://www.usimvender1.com?cpinfo=domain cp_code name&lgurl=www.service_server.com:8443" service_callback_function Remark 인증완료후서비스화면으로전달할결과데이터형식을정의한다. void EA_close_user_interface() 간편인증사용자인터페이스창 ( 인증대기화면 ) 을닫는다. iframe 내부에서부모창으로닫기요청을할경우, key를송신하여요청한다. PostMessage Key : closeuserinterface

void EA_response_select_info(dataobj) iframe 내부에사용자인터페이스창에서사용자가입력한정보를부모창에전달. 서비스서버로부터세션아이디등추가정보를획득하여사용자인터페이스창에서입력받은데이터와병합한후, 각사의서비스대기화면으로송신 ( 서비스서버와 ajax 통신데이터정의 ) Returns message 원문메세지 cpinfo cp 서버정보 ( 코드, 도메인, 명칭 ) sessionid confirmcode callbackurl PostMessage Key : response_info 간편인증앱과동기화를위한세션아이디 서비스서버에서생성한인증코드 간편인증앱에서웹으로접속하기위한정보 dataobj - JSON type data object cp_info 서비스서버정보 service_type 인증타입 (usim, ic, trustzone) telco 이용통신사정보 (SKT:0, KT:1, LGU:2) phone_number 휴대폰번호 void EA_open_vendor_process(forwardUrl, dataobj) iframe에서비스대기화면을열기. 사용자가선택한인증타입에따라서비스대기화면으로연결한다. 유사서비스가존재할경우가입여부에따라, 포워드요청을받아처리할수있다. PostMessage Key : forward_vendor forwardurl dataobj URL 문자열. 유사서비스간연계를위한 URL(null 일경우설정되어있는대표 도메인 URL로연결 ) JSON type data object cp_info 서비스서버정보 service_type 인증타입 (usim, ic, trustzone) telco 이용통신사정보 (SKT:0, KT:1, LGU:2) phone_number 휴대폰번호 session_id 서비스서버에서생성한휴대폰과인증동기화를위한세션아이디 confirm_code 서비스서버에서생성한인증코드 callbackurl 간편인증앱에서 CP서버로접속하기위한정보

void EA_complete_user_interface() 인증완료확인후, iframe에서비스대기화면을닫고 (EA_close_user_interface() 호출 ), 서비스화면의다음단계로진행한다. PostMessage Key : completeauth

부록 2. 간편인증앱과서비스서버연동 javascript API 필수여부 자바스크립트함수 함수설명 M String GetAppVersion () 간편인증앱버전을리턴한다. O String GetTokenInfo (tokeninfotype) 지정한매체정보를리턴한다. M void ExitApp() 간편인증앱을종료한다. M void GetVenderInfo(infoType) 앱제조사, 앱명을리턴한다. M void SetFilter (key, values) 전자서명시지정한속성에해당하는인증서만보이도록설정한다. O void AddUnSignedAttribute (oid, oidvaluebase64) 전자서명문내에주어진 oid로속성을추가한다. M String MakeToBeSignData(form) form을 QueryString 으로변경한다 ( 전자서명원문으로사용할경우 ) M void StartSignData (signtype, signoption, tobesigndata, base64time, ssn, ase64signattribute) 주어진타입, 데이터를입력으로전자서명을요청한다. M void OnSignedDataSubmit(errorCode) StartSignData() 결과로전자서명이완료시호출되는 callback 함수 M String GetSignedDataBase64 () base64 인코딩된전자서명값을획득한다. O String AddUnSignedAttributeWithSignedDataBase64 (signeddatabase64) SignedData 에특정속성을추가한다. M String GetVIDRandomBase64 () 전자서명한인증서의 base64인코딩된 VID값을리턴한다. M String GetSignerSubjectDN () 전자서명한인증서의주체식별정보 (DN) 를획득한다. M String GetSignerSubjectAltName () 전자서명한인증서의주체대체명을획득한다. O String GetSignerCertificateBase64 () 전자서명한인증서의 base64인코딩된인증서를획득한다. O String GetAuthNumber () 서비스서버에서생성한인증번호를획득한다.( 푸쉬내포함시 ) M String GetCertCount () 매체에저장된인증서개수를획득한다. O O O O O O O O void SmartMoveCert (movetype) void IssueCert (catype, ip, port, refnum, authcode) void UpdateCert (catype, ip, port) void RevokeCert (catype, ip, port) void HoldCert (catype, ip, port) void OnCMPSubmit (errorcode) void GetCMPCertInfo (infocertattributes) void StartSmartCert (serialnumber) PC 또는스마트폰 SD 에있는인증서를저장매체내에저장한다. 지정된발급정보로인증서를발급한다. 지정된갱신정보로인증서를갱신한다. 지정된폐지정보로인증서를폐지한다. 지정된효력정지정보로인증서를효력정지한다. 인증서발급 / 갱신 / 폐지 / 효력정지에대한수행이이루어진후자동호출된다. 성공일경우주체 DN, 발급자 DN, 유효기간시작, 유휴기간끝등을획득할수있다. 발급 / 갱신 / 폐지 / 효력정지를수행한인증서에대한정보를획득한다. 지정한일련번호에해당하는인증서로포커스이동해서간편인증앱메인화면을실행한다. M String void GetErrorCode () 에러코드를획득한다. M String GerErrorMessage (errorcode) 에러코드에해당하는메시지를가져온다.

String GetAppVersion(); 간편인증앱버전을리턴한다. Returns 간편인증앱버전 String GetTokenInfo(tokenInfoType) 지정한매체정보를리턴한다. tokeninfotype INFO_USIM_ICCID - Base64(ICCID Hash value) INFO_USIM_PHONENUMBER - 휴대폰번호 Returns 토큰정보타입에해당하는값 void ExitApp() 간편인증앱을종료한다. void GetVenderInfo(infoType) 앱제조사, 앱명을리턴한다. infotype INFO_VENDER_NAME - 앱제조사명 INFO_APP_NAME - 앱명 Returns 타입에해당하는값 void SetFilter(key, values) 전자서명시지정한속성에해당하는인증서만보이도록설정한다.

key values OID 인증서정책 OID 를구분자로사용 예 ).2.410.200005.1.1.4 1.2.410.200004.5.3.1.1 CA CA 인증서의 SubjectDN 를구분자로사용 예 ) CN=CrossCert Certificate Authority,OU=AccreditedCA,O=CrossCert,C=KR CN=yessignCA Class 1,OU=AccreditedCA,O=yessign,C=kr SPECIFIC SubjectDN, IssureDN, serialnumber 에해당하는인증서만보이도록설정 & 를구분자로사용 예 ) 1. subject= 테스트 - 개인 -2048&issuer=CrossCertTestCA2&serial=4453, 2. issuer=crosscerttestca2 EXPIRE 0= 만료된인증서표시, 1= 만료된인증서표시안함 key에해당하는값 void AddUnSignedAttribute(oid, oidvaluebase64); 전자서명문내에주어진 oid 로속성을추가한다. StartSignData(), AddUnSignedAttributeWithSignedDataBase64() 를호출하기전에미리속성을 add 해야한다. oid oidvaluebase64 Attribute OID base64로인코딩된 Attribute OID Value void MakeToBeSignData(form); form을 QueryString으로변경한다 ( 전자서명원문으로사용할경우 ) formhtml formreturns QueryString void StartSignData(form, signtype, signoption, tobesigndata, base64time, ssn, base64signattribute) 주어진타입, 데이터를입력으로전자서명을요청한다. 서명결과는 OnSignedDataSubmit() 을이용하여확인할수있다.

signtype signoption tobesigndata base64time ssn base64signatt ribute SIGNATURE - 서명값 SIGNEDDATA_PKCS7 - PKCS#7에서정의한전자서명형식 SIGNEDDATA_CMS - CMS에서정의한전자서명형식 SIGNEDDATA_KOSCOM - 코스콤에서정의한전자서명형식 OPTION_NONE - 옵션을지정하지않음 OPTION_NO_CONTENT_INFO - 원본메시지를포함하지않음전자서명하고자하는원문서명문내에입력된서명시간을설정한다 (Base64 인코딩된 time_t 값 ). 입력이 null, 일경우현재시간으로자동설정된다. 주민등록번호 ( 사업자등록번호 ) 입력값이 not null일경우본인확인검증성공일경우전자서명한다. signattribute를 base64로인코딩한값 (null or "" 이면서명원문과비교하지않는다.) void OnSignedDataSubmit(errorCode) SmartCert.js 를포함하는웹페이지에 overrding 해야하며, 전자서명이완료되면자동호출된다. 성공일경우전자서명값, VID, 주체 DN 등을획득할수있다. 예 ) <HTML> <script language="javascript" src="smartcert.js"></script> <script language=javascript> OnSignedDataSubmit(errorCode) { if (errorcode == 0) { form.signeddata.value = GetSignedDataBase64(); form.submit(); } else alert( GetErrorMessage(errorCode) ); } </script> </HTML> String GetSignedDataBase64(); base64 인코딩된전자서명결과를획득한다. OnSignedDataSubmit() 결과가성공한후사용되어야한다. Returns base64 로인코딩된전자서명값 String AddUnSignedAttributeWithSignedDataBase64(signedDataBase64); 이미생성된전자서명문내에특정속성을추가할경우에사용한다. 예 ) GetSignedDataBase64() -> AddUnSignedAttribute() -> AddUnSignedAttributeWithSignedDataBase64().

signeddatabase64 GetSignedDataBase64() API 호출하여받아온서명데이터 Returns Base64 로인코딩된 OID 와 OID Value 를추가한전자서명값 String GetVIDRandomBase64(); 전자서명한인증서의 base64 인코딩된 VID 값을리턴한다. OnSignedDataSubmit() 결과가성공한후사용되어야한다. Returns Base64 로인코딩된 VID Random String GetSignerSubjectDN(); 전자서명한인증서의주체식별정보를획득한다. OnSignedDataSubmit() 결과가성공한후사용되어야한다. Returns 주체식별정보 String GetSignerSubjectAltName(); 전자서명한인증서의주체대체명을획득한다. OnSignedDataSubmit() 결과가성공한후사용되어야한다. Returns 주체대체명 String GetSignerCertificateBase64(); 전자서명한인증서의 base64 인코딩된인증서를획득한다. OnSignedDataSubmit() 결과가성공한후사용되어야한다. Returns Base64 로인코딩된전자서명한인증서 String GetAuthNumber() 서비스서버에서생성한인증번호를획득한다.( 푸쉬내포함시 ) Returns 인증번호 int GetCertCount();

매체에저장된인증서개수를획득한다. SetFilter() 와같이사용하게되면필터링된인증서의개수를반환된다. 따라서인증서발급 / 갱신시 SetFilter() 와같이사용하게되면실저장된인증서의개수를반환하지않으므로유의해야한다. Returns 인증서개수 void SmartMoveCert(moveType); PC 또는스마트폰내 SD 에있는인증서를저장한다. movetype ALL - SD 또는 PC 에인증서를사용자가선택하여저장매체에저장 SD - SD 메모리에있는인증서를저장매체에저장 PC - PC 에있는인증서를저장매체에저장 void IssueCert(caType, ip, port, refnum, authcode); 인증서를발급한다. 발급결과는 OnCMPSubmit() 을이용하여확인할수있다. catype ip port refnum authcode CROSSCERT- 한국전자인증 CA, KICA 한국정보인증 CA, SIGNKOREA 코스콤 CA, TRADESIGN-한국무역정보통신CA,YESSIGN-금융결제원CA CA IP CA Port 참조번호인가코드 void UpdateCert(caType, ip, port); 인증서를갱신한다. 갱신결과는 OnCMPSubmit() 을이용하여확인할수있다. ip port CA IP CA Port void RevokeCert(caType, ip, port); 인증서를폐지한다. 폐지결과는 OnCMPSubmit() 을이용하여확인할수있다. ip port CA IP CA Port void HoldCert(caType, ip, port);

인증서를효력정지한다. 효력정지결과는 OnCMPSubmit() 을이용하여확인할수있다. ip port CA IP CA Port void OnCMPSubmit(errorCode) SmartCert.js 를포함하는웹페이지에 overriding 해야하며, 인증서발급 / 갱신 / 폐지 / 효력정지에대한수행이이루어진후자동호출된다. 성공일경우주체 DN, 발급자 DN, 유효기간시작, 유휴기간끝등을획득할수있다. 예 ) <HTML> <script language="javascript" src="smartcert.js"></script> <script language=javascript> OnCMPSubmit(errorCode) { if (errorcode == 0) { form.subjectdn.value = GetCMPCertInfo(CERT_ATTRIBUTES.SUBJECT_DN); form.issuerdn.value = GetCMPCertInfo(CERT_ATTRIBUTES.ISSUER_DN); form.validityfrom.value = GetCMPCertInfo(CERT_ATTRIBUTES.VALIDITY_FROM); form.validityto.value = GetCMPCertInfo(CERT_ATTRIBUTES.VALIDITY_TO); </script> </HTML> } } else form.submit(); alert( GetErrorMessage(errorCode) ); StringGetCMPCertInfo(infoCertAttributes); 발급 / 갱신 / 폐지 / 효력정지를수행한인증서에대한정보를획득한다. infocertattributes SUBJECT_DN - 주체 DN ISSUER_DN - 발급자 DN VALIDITY_FROM - 유효기간시작일자 VALIDITY_TO - 유효기간만료일자 SERIAL_NUMBER - 일련번호 Returns 인증서속성값 void StartSmartCert(serialNumber) 지정한일련번호에해당하는인증서로포커스를이동해서간편인증앱메인화면을실행한다.

serialnumber 인증서일련번호 (Hexa String) String GetErrorCode(); 에러코드를획득한다. Returns 에러코드 String GetErrorMessage(errorCode); 에러코드에해당하는메시지를가져온다. Returns 에러메시지 에러코드 메시지 0000 성공 1001 사용자취소 2001 검색된인증서가없음 3001 본인확인에실패 3002 개인키에 VID R값없음 3003 저장공간이부족 4001 이상징후감지로서명중단 4002 기타인증서발급실패 4003 기타인증서갱신실패 4004 효력정지실패 4005 폐지실패 5001 알수없는파라미터 ( 파라미터에지정한형태의속성과값을설정확인 ) 6001 PIN 잠김 9999 알수없는오류