무선단말기에서의공인인증서저장및이용 기술규격 Certificate Management in Mobile Device v1.60 2017 년 11 월
목 차 1. 개요 1 2. 규격의구성및범위 1 3. 관련표준및규격 1 3.1 국외표준및규격 1 3.2 국내표준및규격 2 3.3 기타 2 4. 정의 2 4.1 전자서명법용어정의 2 4.2 용어의정의 3 4.3 용어의효력 3 5. 약어 3 6. 무선단말기내공인인증서저장 4 6.1 저장매체 4 6.2 내 외장메모리 4 6.3 IC칩 5 7. 전자서명생성 6 8. 전자서명전송 6 8.1 전자서명요청및생성주체인증 6 8.2 전자서명전송 6 9. 무선단말기에서의공인인증서사용자인터페이스 7 부록 1. ios 운영체제무선단말기에서의공인인증서저장방법 8 부록 2. 윈도우운영체제무선단말기에서의공인인증서저장방법 11 부록 3. 규격연혁 20
무선단말기에서의공인인증서저장및이용기술규격 Certificate Management in Mobile Device 1. 개요 본규격은무선단말기에서의공인인증서비스상호연동성확보및이용편의성을 고려하여무선단말기내공인인증서관리소프트웨어의요구사항을정의한다. 2. 규격의구성및범위본규격은무선단말기에공인인증서저장및이를활용한공인인증서비스제공시사용자편의성및상호연동성을고려한기술적요구사항을명시하고있다. 첫번째로본문에서는무선단말기에서의공인인증서저장매체, 저장방법및이용, 사용자인터페이스요구사항을명시하고있으며두번째로부록에서는구현에필요한상세내용을정의하고있다. 3. 관련표준및규격 3.1 국외표준및규격 [WMLSCrypto] WAP Forum Approved Version 20-June-2001, WMLScript Crypto Library, June 2001 [RFC2119] IETF, RFC2119, Key words for use in RFCs to Indicate Requirement Levels, March 1997 [RFC2630] IETF RFC 2630, Cryptographic Message Syntax, June 1999 [PKCS5] [PKCS7] [PKCS8] [PKCS11] RSA, PKCS#5 v1.5 & v2.0, Password-Based Cryptography Standard, 1993 RSA Laboratories, PKCS#7 v1.5, Cryptographic Message Syntax, November 1993 RSA, PKCS#8 v1.2, Private Key Information Syntax Standard, 1993 RSA Laboratories PKCS#11, Cryptographic Token Interface Standard v2.11, 2001
[PKCS12] RSA, PKCS#12 v1.0, Personal Information Exchange Syntax Standard, 1999 3.2 국내표준및규격 [KCAC.TS.UI] KISA, KCAC.TS.UI v2.11, 공인인증기관간상호연동을 위한사용자인터페이스기술규격, 2015 [KCAC.TS.HSMU] KISA, KCAC.TS.HSMU v2.40, 보안토큰기반의공인인증서이용기술규격, 2016 [KCAC.TS.HSMS] KISA, KCAC.TS.HSMS v1.3, 보안토큰기반의공인인증서저장형식기술규격, 2016 [KCAC.TS.SIVID] KISA, KCAC.TS.SIVID, v1.21, 식별번호를이용한본인확인기술규격, 2009 [KCAC.TS.DSIG] KISA, KCAC.TS.DSIG, v1.30, 전자서명알고리즘규격, 2009 [KCAC.TS.HASH] KISA, KCAC.TS.HASH, v1.20, 해쉬알고리즘규격, 2009 [KCAC.TS.ENC] KISA, KCAC.TS.ENC, v1.21, 암호알고리즘규격, 2009 3.3 기타 해당사항없음 4. 정의 4.1 전자서명법용어정의본규격에서사용된다음의용어들은전자서명법및동법시행령, 공인인증기관의시설및장비등에관한규정 ( 과학기술정보통신부고시 ) 에정의되어있다. 가 ) 가입자나 ) 공인인증서다 ) 전자서명생성키라 ) 전자서명
4.2 용어의정의가 ) 내장메모리 : 무선단말기에내장되어있는메모리로사용자데이터저장이가능한저장소영역나 ) 외장메모리 : 무선단말기에장착하여사용하는분리가능한메모리 4.3 용어의효력본규격에서사용된다음의용어들은무선단말기에서공인인증서를저장하고이용하는프로그램의구현정도를의미하는것으로 [RFC2119] 를준용하며다음과같은의미를지닌다. 가 ) 해야한다, 필수이다, 강제한다. ( 기호 : M) 반드시준수해야한다. 나 ) 권고한다. ( 기호 : R) 보안성및상호연동을고려하여준수할것을권장한다. 다 ) 할수있다, 쓸수있다. ( 기호 : O) 주어진상황을고려하여필요한경우에한해선택적으로사용할수있다. 라 ) 권고하지않는다. ( 기호 : NR) 보안성및상호연동을고려하여사용하지말것을권장한다. 마 ) 금지한다, 허용하지않는다. ( 기호 : X) 반드시사용하지않아야한다. 바 ) 언급하지않는다, 정의하지않는다. ( 기호 : -) 준수여부에대해기술하지않는다. 5. 약어본규격에서는다음의약어가이용된다. 가 ) App : Mobile Application, 모바일응용프로그램나 ) ese : Embedded Secure Element, 내장형보안모듈다 ) IC칩 : Integrated Circuit Chip, 집적회로칩라 ) SD카드 : Secure Digital Card 마 ) USIM : Universal Subscriber Identity Module, 범용사용자식별모듈
바 ) TEE : Trusted Execution Environment 사 ) AP : Application Processor 6. 공인인증서의저장 6.1 저장공간및위치최상위인증기관및인증기관인증서는기본적으로무선단말기의운영체제에서제공하는소프트웨어 (SW) 기반방식을통해저장공간에저장한다. 가입자인증서는 < 표 1> 과같이무선단말기의운영체제등에서제공하는 SW 기반방식을통해저장공간에저장하거나, IC칩, AP 등의하드웨어 (HW) 가지원하는저장공간에저장할수있다. < 표 1> 공인인증서저장위치 구분 저장위치 SW 기반방식 앱데이터무선단말기용앱데이터경로인증서저장소해당운영체제등에서제공되는규격준용기타해당저장위치및방법규격준용 HW 지원방식 저장토큰 보안토큰 기타 [KCAC.TS.UI] 의 [ 부록 3. 스마트카드파일구성도및메모리맵 ] 참조 [KCAC.TS.HSMU] 와 [KCAC.TS.HSMS] 준용 해당하드웨어저장매체의규격준용 기타방식으로공인인증서및전자서명생성키를저장하는경우에는한국인터 넷진흥원이인정하는보안평가인증을받아야한다. 6.2 SW 기반방식공인인증서및전자서명생성키를무선단말기용앱의데이터경로에저장할수있으며, 기본적으로무선단말기운영체제에서제공하는인증서저장방법을따르며, 저장방법이제공되지않는경우앱데이터경로의./NPKI/( 인증기관식별자 ) 하위에전자서명생성키는 [PKCS5] 를준용하여암호화하고, [PKCS8] 저장형식을준용하여저장할수있다. Google 사의 Android 를사용하는무선단말기의경우, 공인인증서및전자서
명생성키를 Android에서제공하는인증서저장소 (KeyStore 등 ) 에저장할수있다. Apple사의 ios를사용하는무선단말기의경우, 공인인증서및전자서명생성키를 ios에서제공하는인증서저장소 (KeyChain 등 ) 에저장할수있다. 공인인증서및전자서명생성키는인증서저장소의저장규격을준용하여저장할수있다. 전자서명생성키유출방지기능을갖춘 SW 기반의저장매체를이용하고자 하는경우각저장매체의규격을준용하여저장할수있다. Apple사의 ios를사용하는무선단말기의경우, 응용프로그램간상호호환이필요할경우 App ID를갖는공인인증서 App 호출을통해가입자의공인인증서와전자서명생성키를획득한다. App ID는 id368493398이며, 응용프로그램과공인인증서 App간메시지처리및기능구현은 [ 부록 4. ios 운영체제무선단말기에서의공인인증서저장방법 ] 을준용한다. MS사의윈도우운영체제 1) 를사용하는무선단말기의경우, 공인인증서이용 App만이접근할수있도록공인인증서와전자서명생성키를안전하게저장하여야한다. 응용 App 간상호호환이필요한경우공인인증서 App 호출을통해가입자의공인인증서와전자서명생성키를획득할수있다. 공인인증서 App과응용 App간메시지처리및기능구현은 [ 부록 5. 윈도우운영체제무선단말기에서의공인인증서호환성확보 ] 를준용한다. 6.3 HW 지원방식무선단말기의 USIM, ese, microsd 카드등 IC칩을저장토큰과보안토큰으로이용하여공인인증서와전자서명생성키를저장하는경우, 각각 [KCAC.TS.UI], [KCAC.TS.HSMU] 와 [KCAC.TS.HSMS] 를준용하여저장한다. TPM, TrustZone, TEE 등전자서명생성키유출방지기능을갖춘하드웨어저장매체를보안토큰및저장토큰이외의방법으로이용하고자하는경우각 1) 윈도우폰을포함하여타일형태의새로운 UI 스타일을사용하는윈도우운영체제환경을무선 단말기환경으로규정
저장매체의규격을준용하여저장할수있다. 7. 전자서명생성무선단말기내의공인인증서저장매체에저장된전자서명생성키를이용하여전자서명을생성하는경우, 전자서명은 [PKCS7], [RFC2630] 등의전자서명문형식을이용할수있다. 사용자가전자서명원문을확인해야하는경우, 원문확인기능을제공하여야한다. 8. 전자서명전송 8.1 전자서명요청및생성주체인증데스크톱환경또는무선단말기에서타무선단말기로전자서명을요청하여전자서명결과를전송받는경우, 전자서명요청주체 ( 예, 데스크톱 PC) 와전자서명생성주체 ( 예, 스마트폰 ) 간의인증을수행하여야한다. 전자서명요청주체와전자서명생성주체사이에중계서비스가이용되는경우, 전자서명요청주체및전자서명생성주체는중계서버인증서등을사용하여중계서버의신뢰성을검증할수있는방법을제공하여야한다. 8.2 전자서명전송전자서명요청주체와전자서명생성주체간전송채널은반드시암호화되어야한다. 전송채널의암호화는 RSA 1024비트이상의안전성에준하여야하며, 전자서명의전송시마다매번새로운암호화키를사용하여야한다. 이때알고리즘은 [KCAC.TS.DSIG], [KCAC.TS.HASH], [KCAC.TS.ENC] 에규정된암호알고리즘을사용한다. 암호화된전송채널은안전한난수생성함수의이용, 키분배용인증서이용등을통해안전하게생성되어야한다. 전자서명전송서비스제공을위한중계서버는출입통제, 물리적침입감시, 시스템및네트워크보호등의사항에대해보호설비를갖추어야한다. 또한중계서버는전자서명문전달후기억장치및임시파일에서즉시해당내용을삭제하여야한다.
9. 무선단말기에서의공인인증서사용자인터페이스무선단말기내공인인증서가입자소프트웨어는사용자가 < 표 1> 의저장매체를선택할수있는기능을제공하여야한다. 또한, 저장매체선택시해당저장매체에저장되어있는모든인증서를화면에보여주고인증서를선택할수있는기능을제공하여야한다. 다만, 무선단말기에서외장메모리, IC칩등저장매체를지원하지않을경우에는해당저장매체를표시하지않을수있다. 저장위치표시를위한명칭은저장매체명칭과저장매체분류명칭을조합하여사용할수있다. 예로, USIM 내의보안토큰을이용하는경우, 저장매체표시를 USIM 보안토큰 으로표시한다. < 표 2> 무선단말기내공인증서저장매체표시명칭예시 저장매체 표시명칭 저장매체 표시명칭 내장메모리 내장메모리 외장메모리 외장메모리 USIM 저장토큰 USIM 저장토큰저장토큰 microsd 저장토큰 microsd 보안토큰 USIM 보안토큰보안토큰 microsd 보안토큰 또한, 가입자소프트웨어는가입자가인증서의정보를알수있도록인증서소유자명, 인증서유효기간, 발급기관명, 인증서용도등을표시할수있다. 다만, 무선단말기화면의제약으로모든정보를한화면에보여주기어려운경우에는초기화면에서인증서소유자만을표시하고문자열의횡스크롤이나인증서보기메뉴를통한별도화면을통해기타정보를표시할수있다. 구분 내용 인증서상태 o 인증서검증결과 ( 유효, 폐지등 ) 표시 소유자명 o 사용자의인증서 CN( 인증서정보이용 ) o 기관인경우기관의실명 ( 또는인증기관식별자 ) 으로표시 발급기관 o 공인인증기관의실명 ( 인증서정보이용 ) 으로표시 만료일 o 인증서만료일 ( 또는유효기간 ) 표시 인증서용도 o 공인인증서의용도 ( 범용, 용도제한용 )
부록 1. ios 운영체제무선단말기에서의공인인증서저장방법 1. 개요 Apple사의 ios 운영체제를갖는무선단말기에서의응용 App간공인인증서저장위치호환성확보를위해공인인증서 App은공인인증서저장과공인인증서획득기능을갖춰야한다. 또한, 응용 App은공인인증서 App을통해가입자의공인인증서를내보내고가져올수있는기능을구현해야한다. 2. 공인인증서 App URL Scheme 공인인증서 App 의 URL Scheme 은다음과같다. o URL Scheme : "kisa-cert-exchange" o itunes link : http://itunes.apple.com/kr/app/id368493398?mt=8 3. 공인인증서전송메시지형식응용 App과공인인증서 App간전송되는공인인증서및전자서명생성키의형태는 [PKCS12] 의방법을이용하여전송메시지의무결성을보장해야한다. 가입자가전자서명용과키분배용공인인증서를함께소유한경우에는반드시전자서명용과키분배용인증서를함께전송해야한다. 또한, 필요한경우에는공인인증기관인증서를함께전송할수있다. 4. 공인인증서 App의인증서저장기능가입자가타응용 App에서공인인증서를사용하기위해응용 App의내보내기기능을활성화할경우공인인증서 App이처리해야하는공인인증서저장기능요구사항을정의한다. 응용 App은가입자가내보내기할공인인증서를선택할수있는기능을제공해야한다. 4.1 메시지파라미터 응용 APP 이공인인증서 App 을호출할때전송되는파라미터는명령어 (cmd,
필수정보 ) 인 CertPush, 응용 App 의 URL Scheme(caller_url_scheme, 선택정보 ), 응용 App 의현재상태정보문자열 (callback, 선택정보 ), 전송하고자하는인증서 (cert, 필수정보 ) 정보인 Base64 인코딩된 [PKCS12] 문자열이다. o 공인인증서 APP 저장예시 kisa-cert-exchange://?cmd=certpush&caller_url_scheme=kbapp&callback=01&c ert=(base64 String) 4.2 반환값공인인증서 App은공인인증서저장기능완료후자신을호출한응용 App을호출한다. 이때전송하는호출파라미터는결과문자열 (00 : 성공, 11 : 실패 ) 과응용 App로전송받은현재상태정보문자열이다. o 공인인증서 APP 저장반환예시 kbapp://?cmd=certpush&callback=01&result=00 5. 공인인증서 App의인증서획득기능가입자가타응용 App에서공인인증서를사용하기위해응용 App의가져오기기능을활성화할경우공인인증서 App이처리해야하는공인인증서획득기능요구사항을정의한다. 공인인증서 App은가입자가내보내기할공인인증서를선택할수있는기능을제공해야한다. 5.1 메시지파라미터응용 App이공인인증서 App를호출할때전송하는파라미터는명령어 (cmd, 필수정보 ) 인 CertGet, 응용 App의 URL Scheme(caller_url_scheme, 선택정보 ), 응용 App의현재상태정보문자열 (callback, 선택정보 ) 이다. o 공인인증서 APP 저장반환예시 kisa-cert-exchange://?cmd=certget&caller_url_scheme=kbapp&callback=01 5.2 반환값
공인인증서 App은공인인증서획득기능완료후자신을호출한응용 App을호출한다. 이때전송하는호출파라미터는결과문자열 (00 : 성공, 11 : 실패 ), Base64 Encoding된 [PKCS12] 문자열 ( 필수정보 ), 응용 App로전송받은현재상태정보문자열이다. o 공인인증서반환예시 kisa-cert-exchange://?cmd=certget&callback=01&result=00&cert=base64(pfx)
부록 2. 윈도우운영체제무선단말기에서의공인인증서저장방법 1. 개요 MS 사의윈도우운영체제를탑재한무선단말기에서의공인인증서저장방법과 공인인증서를이용하는응용 App( 이하 응용 App ) 에서의연동방법을설명한다. 2. 공인인증서 App MS 윈도우운영체제를갖는무선단말기에서의응용 App간공인인증서저장위치호환성확보를위해윈도우공인인증서관리 App( 이하 공인인증서 App ) 은공인인증서저장과공인인증서획득기능을갖춰야한다. 또한응용 App은공인인증서 App을통해가입자의공인인증서를내보내고가져올수있는기능을구현해야한다. 공인인증서 App은가입자가내보내기할공인인증서를선택할수있는기능을제공해야한다. 가입자가전자서명용과키분배용인증서를함께소유한경우에는반드시전자서명용과키분배용인증서를함께전송해야한다. 또한, 필요한경우에는공인인증기관인증서를함께전송할수있다. 응용 App과공인인증서 App간전송되는공인인증서와전자서명생성키에대한무결성을보장해야한다. 3. 공인인증서 App 연동방법공인인증서 App과응용 App 간의연동은 URL 프로토콜을이용하여해당 App을호출하고공인인증서와전자서명생성키는별도의데이터전송방법에의해전달한다. 공인인증서 App의 URL 프로토콜은다음과같다. o URL 프로토콜 : "kisa-cert-exchange" 공인인증서 App 과응용 App 간에전송되는파라미터는다음의 [ 표 5] 와같다. 4. 공인인증서 App 의인증서저장기능 4.1 공인인증서 App 호출
파라미터명파라미터값기본값처리 cmd o 인증서와개인키의내보내기및가져오기요청 - certpush( 내보내기 ), certget( 가져오기 ) 응용 App 이공인인증서 App 에공인인증서를저장 ( 내보내기 ) 하는경우 cmd 파라미터의값이 CertPush, 응용 App 이공인인증서 App 으로부터공인인증서를 획득 ( 가져오기 ) 하는경우 CertGet 를이용한다. 따라서, 응용 APP 이공인인증서 App 을호출할때전송되는파라미터는명령어 (cmd, 필수정보 ) 인 CertPush 또는 CertGet, 응용 App 의 URL 프로토콜 (caller_protocol, 선택정보 ), 응용 App 의현재상태정보문자열 (callback, 선택정보 ), 인증서전송방식 (cert, 필수정보 ), 전송데이터형식 (type, 선택사항 ) 이다. 전송데이터형식 (type) 은 [PKCS12] 형식 (pfx) 과 DER 인코딩된인증서및 전자서명생성키형식 (der) 선택가능하다. - M caller_protocol o 호출 App 의프로토콜 - O callback o 호출 App 의콜백아이디 - O cert type o 인증서및개인키의전송방식 - share( 공유기능 ), clip( 클립보드 ) o 전송데이터형식 - pfx : PKCS#12 형식, der : DER 인코딩형식 pki o NPKI, GPKI, MPKI, EPKI 중 1 개선택 NPKI O result o 처리결과 - 00( 성공 ), 11( 실패 ) clip der M O - M reason o 처리결과에따른오류메시지 - O [ 표 5] URL 프로토콜파라미터정의 < 공인인증서 APP 호출예시 > 1. 응용 App(msapp) 은공인인증서 App(kisa-cert-exchange) 에윈도우 8의클립보드를이용하여 PKCS#12 형식으로인증서를전송하기위해호출한다. kisa-cert-exchange://?cmd=certpush&caller_protocol=msapp&callback=01&cer t=clip&type=pfx 2. 응용 App(msapp) 은공인인증서 App(kisa-cert-exchange) 에윈도우 8의클립보드를이용하여 DER형식으로인증서를전송하기위해호출한다. kisa-cert-exchange://?cmd=certpush&caller_protocol=msapp&callback=01&cer t=clip&type=der
4.2 데이터전송 전송형식 파라미터명 파라미터값 cert 전자서명용공인인증서 DER key 전자서명용전자서명생성키 kmsign 키분배용공인인증서 kmkey 키분배용전자서명생성키 [PKCS12] pfx Base64 형식으로인코딩된 [PKCS12] 문자열 [ 표 7] 데이터전송파라미터정의 URL 프로토콜을통한공인인증서 App 호출후데이터전송방법에따른데이터전송을하여야한다. 인증서전송방식 (cert) 이 clip인경우, 클립보드를이용하여데이터를전송하며, 인증서전송방식 (cert) 이 share인경우, 공유기능을활용하여데이터를전송한다. 전송데이터형식 (type) 을 pfx로호출한경우공인인증서와전자서명생성키를 [PKCS12] 형식으로변경하여야하며, der로호출한경우는공인인증서와전자서명생성키의형식변경없이전송한다. 클립보드를활용하여 [PKCS12] 형식으로인증서를전송하고자하는경우, 응용 App은클립보드초기화후 pfx=[base64 형식으로인코딩된 PKCS#12 문자열 ] 을클립보드에복사하고, 공인인증서 App은클립보드에서해당데이터를획득한후바로클립보드를초기화한다. der 형식으로인증서를전송하고자하는경우 cert=[base64 형식으로인코딩된인증서파일 (SignCert.der) 문자열 ]&key=[base64 형식으로인코딩된개인키파일 (SignCert.key) 문자열 ] 을사용한다. 키분배용인증서를함께전송하고자하는경우에는 kmsign, kmkey 파라미터를함께사용한다. 공유기능을활용하여인증서를전송하는경우, 클립보드방식과동일한데이터형식을공유기능을통해공인인증서 App에인증서를전송한다. 공유기능에대한자세한구현내용은 MS사의윈도우운영체제관련개발문서를참고한다. 4.3 반환값공인인증서 App은공인인증서저장기능완료후자신을호출한응용 App을호출한다. 이때전송하는호출파라미터는결과명령어 (cmd, 필수정보 ) 인 CertPush, 전송결과 (result, 필수정보 ) 문자열 (00 : 성공, 11 : 실패 ), 응용 App로전송받은
현재상태정보문자열 (callback, 선택정보 ) 및오류메시지 (reason, 선택정보 ) 이다. < 공인인증서 APP 반환예시 > 1. 공인인증서 App(kisa-cert-exchange) 은인증서저장후응용 App(msapp) 을호출하여전송결과 ( 성공 ) 를전달한다. msapp://?cmd=certpush&callback=01&result=00 2. 공인인증서 App(kisa-cert-exchange) 은인증서저장후응용 App(msapp) 을호출하여전송결과 ( 실패 ) 와오류메시지를전달한다. msapp://?cmd=certpush&callback=01&result=11&reason= 오류메시지 5. 예시 5.1 공인인증서 App에서응용 App으로인증서가져오기공인인증서 App에서응용 App으로공인인증서와전자서명생성키를클립보드및윈도우공유기능을이용하여 DER 형식으로가져오기하는예시는다음과같다. o 공인인증서 App 호출 string strprotocol = kisa-cert-exchange:cmd=certget&caller_protocol=msapp&callback=01&cert =clip&type=der ; // 또는 cert=share var uri = new Uri(strProtocol); var success = await Windows.System.Launcher.LaunchUriAsync(uri); o 공인인증서및전자서명생성키수신 (URL 프로토콜방식 ) // App,xaml.cs // 프로토콜로호출된경우진입점 protected override void OnActivated(IActivatedEventArgs args) if (args.kind == ActivationKind.Protocol) ProtocolActivatedEventArgs protocolargs = args as ProtocolActivatedEventArgs; String strprotocol = ""; strprotocol = protocolargs.uri.pathandquery; // cmd=certget&caller_ protocol=kisa-cert-exchange&callback=1&cert=clip &type=der&pki=npk
I GerReceivedData(strProtocol); Window.Current.Activate(); private void GetReceivedData(string protocol) //protocol 파싱처리 //cmd 가 clip인경우 var datapackageview = Clipboard.GetContent(); // 클립보드이용 if (datapackageview.contains(standarddataformats.text)) var text = await datapackageview.gettextasync(); // 데이터는 signcert=data1&sigkey=data2&kmcert=data3&kmkey=data4 형식으로수신됨 // 암호용인증서 (kmcert,kmkey) 가없을경에는 null 로수신 Clipboard.Clear(); o 공인인증서및전자서명생성키수신 ( 윈도우공유방식 ) // App,xaml.cs // 공유로호출된경우진입점 protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args) // 공유로 (share) 로수신시별도의공유페이지필요 var rootframe = new Frame(); rootframe.navigate(typeof(sharedpage), args.shareoperation); Window.Current.Content = rootframe; Window.Current.Activate(); // sharedpage.xaml.cs ShareOperation shareoperation; private IReadOnlyList<IStorageItem> sharedstorageitems; // 공유된항목 ( 파일리스트형식 ) async protected override void OnNavigatedTo(NavigationEventArgs e)
this.shareoperation = (ShareOperation)e.Parameter; await Task.Factory.StartNew(async () => if (this.shareoperation.data.contains(standarddataformats.storageitems)) try this.sharedstorageitems = await this.shareoperation.data.getstorageitemsas ync(); catch (Exception ex) await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => if (this.sharedstorageitems!= null) // Display the name of the files being shared. StorageFolder localfolder = ApplicationData.Current.LocalFolder; String filename = ""; byte[] tmpder = null; byte[] tmpkey = null; for (int index = 0; index < this.sharedstorageitems.count; index++) StorageFile file = this.sharedstorageitems[index] as StorageFile; filename = file.name.tolower(); Windows.Storage.Streams.IBuffer buffer = null; buffer = await Windows.Storage.FileIO.ReadBufferAsync(file); if (buffer!= null) var datareader = Windows.Storage.Streams.DataReader.FromBuffer(bu ffer); int fsize = (int)buffer.length; if (filename.indexof("signcert.der") >= 0)
); ); tmpder = new byte[fsize]; datareader.readbytes(tmpder); else if (filename.indexof("signpri.key") >= 0) tmpkey = new byte[fsize]; datareader.readbytes(tmpkey); else if (filename.indexof("kmcert.der") >= 0) tmpder = new byte[fsize]; datareader.readbytes(tmpkmder); else if (filename.indexof("kmpri.key") >= 0) tmpkey = new byte[fsize]; datareader.readbytes(tmpkmkey); String strto = ApplicationData.Current.LocalFolder.Path; if (tmpder!= null && tmpkey!= null) // 인증서저장 5.2 공인인증서 App으로인증서내보내기응용 App에서공인인증서 App으로공인인증서와전자서명생성키를클립보드및윈도우공유기능을이용하여 DER 형식으로내보내기하는예시는다음과같다. o 공인인증서및전자서명생성키송신 ( 클립보드방식 )
byte[] cert = certdata; byte[] pkey = keydata string certb64 = Convert.ToBase64String(cert); string keyb64 = Convert.ToBase64String(pKey); // 클립보드에데이터저장 DataPackage datapackage = new DataPackage(); datapackage.settext(string.format("signcert=0&signkey=1", certb64, keyb64)); Clipboard.SetContent(dataPackage); // 프로토콜생성 string strprotocol = kisa-cert-exchange:cmd=certpush&caller_ protocol=msapp&callback=01&cert=clip&type=der ; var uri = new Uri(strProtocol); // 인증서관리앱호출 var success = await Windows.System.Launcher.LaunchUriAsync(uri); o 공인인증서및전자서명생성키송신 ( 윈도우공유방식 ) private static IReadOnlyList<StorageFile> storageitems; private static DataTransferManager datatransfermanager; async public void ExportCertification() datatransfermanager = DataTransferManager.GetForCurrentView(); datatransfermanager.datarequested += new TypedEventHandler<DataTransferManager, DataReq uestedeventargs>(ondatarequested); StorageFolder f = ApplicationData.Current.LocalFolder; storageitems = // 내보낼인증서파일리스트설정 DataTransferManager.ShowShareUI(); // 공유창호출 /// 공유시데이터전송 private static void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e) DataRequest request = e.request;
if (storageitems!= null) if (storageitems.count == 0) return; DataPackage requestdata = request.data; requestdata.properties.title = "Title"; requestdata.properties.description = "Description."; //The description is optional. requestdata.setstorageitems(storageitems); // Unregister the current page as a share source. if (datatransfermanager!= null) datatransfermanager.datarequested -= new TypedEventHandler<DataTransferManage r, DataRequestedEventArgs>(OnDataRequested); else request.failwithdisplaytext("select the files you would like to share and try agai n."); if (datatransfermanager!= null) datatransfermanager.datarequested -= new TypedEventHandler<DataTransferManager, Dat arequestedeventargs>(ondatarequested); datatransfermanager = null; storageitems = null;
부록 3. 규격연혁 버전제 개정일제 개정내역 v1.00 2007년 4월 v1.10 2008년 10월 v1.11 2009년 9월 v1.12 2010년 3월 v1.20 2010년 10월 v1.30 2012년 11월 v1.40 2013년 10월 v1.50 2015년 4월 v1.60 2017년 11월 o 무선단말기내공인인증서저장및이용기술규격 으로제정 o 무선단말기에서의공인인증서저장매체를기존의내장형 외장형메모리에 USIM 을추가하고저장매체별저장위치및저장형식을표준화 o USIM 추가에따른저장방법변경및공인인증서관리프로그램의저장매체표시방법변경 o 공인전자서명인증체계기술규격개정에따라본문내용중관련기술규격참조변경사항개정 o 스마트폰환경에서의공인인증서저장위치및형식표준화 o 바다폰등내장형메모리에표준인터페이스함수 (PKCS#11) 를구현하기힘든스마트폰에대한공인인증서저장위치마련 o 윈도우 8 UI 환경에서의공인인증서이용방법 o 무선단말기에서의전자서명생성및전송표준화 o 무선단말기앱데이터경로내저장등공인인증서저장위치및방법변경 o 무선단말기내 외장메모리에서의공인인증서저장위치및방법변경 o 무선단말기에서공인인증서저장공간, 위치및방법변경