i-PIN 2.0 도입 안내서

제∙개정 이력
순번
제∙개정일
변경내용
발간팀
연락처
1
2009.7
제정
개인정보보호기술팀
02-405-5455
2
2009.12
개정
개인정보보호기술팀
02-405-5455
3
2010.6
개정
개인정보보호기술팀
02-405-5455
4
Contents*
Korea Internet & Security Agency
i-PIN 2.0 도입 안내서
1
개요
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
1. 개인정보침해 현황
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
2. 인터넷상 주민등록번호 이용 문제점
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
3. 인터넷상 주민등록번호 대체 수단(i -PIN)
i -PIN 도입 방법
8
9
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 10
4. 주민번호 외 회원가입 수단 제공 의무 대상사업자 공시 및 법적근거
2
7
‥‥‥ 12
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 15
1. i -PIN 적용범위 및 제공정보 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 16
2. i -PIN 도입 절차
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 18
3. 게시판 및 회원가입 i -PIN 적용 예시 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 19
4. 마일리지 등 서비스 연계방안
5. i -PIN 적용 시 유의사항
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 30
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 32
6. i -PIN 전환 프로세스 구축 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 36
3
i -PIN 툴킷 설치 방법
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 39
1. 한국신용정보 - 나이스 아이핀
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 40
2. 한국신용평가정보 - 가상주민번호
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 48
3. 서울신용평가정보 - Siren24 아이핀
4. 한국정보인증 - SG 아이핀
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 63
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 74
5. 코리아크레딧뷰로 - KCB 아이핀
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 97
Korea Internet & Security Agency
i-PIN 2.0 도입 안내서
i-PIN 2.0 도입 안내서
제1 장
개요
1. 개인정보침해 현황
2. 인터넷상 주민등록번호 이용 문제점
3. 인터넷상 주민등록번호 대체 수단(i-PIN)
4. 주민번호 외 회원가입 수단 제공 의무 대상사업자
공시 및 법적근거
i-PIN 2.0 도입 안내서
제1장 | 개 요
1. 개인정보침해 현황
● 인터넷 웹사이트가 개인 이용자로부터 수집되고 있는 주민등록번호가 유출 또는 노출되어
회원가입이나 게시판 글쓰기 등의 서비스 이용 시 본인확인과정에서 악의적 사용자에게
제1장
도용되는 개인정보침해 위험이 증가되고 있습니다.
- 특히 최근 국내 주요 포털, 인터넷 쇼핑몰 등 다양한 사업장에서 대량 개인정보 유출
사고가 발생함에 따라 인터넷상에서 주민등록번호 사용 안전성에 대하여 많은 국민들의
우려가 심해지고 있습니다.
[그림 1-1] 개인정보 유출 주요 뉴스
● 실제로 웹사이트에서 수집∙관리되는 주민등록번호가 관리자의 관리 소홀로 인하여 노출
되거나 악의적인 해커에 의한 유출로 발생하는 피해 역시 매년 증가하는 추세에 있습니다.
- 매년 한국인터넷진흥원 개인정보침해신고센터에 개인정보침해 피해로 인한 신고 및
상담이 지속적으로 증가하고 있으며, 이 중 주민등록번호 등 타인 정보의 훼손∙침해∙
도용으로 인한 신고 건수도 지속적으로 증가되고 있습니다.
8
제1장 개요
[그림 1-2] 개인정보침해 신고 상담현황
출처 : 한국인터넷진흥원 개인정보침해신고센터
2. 인터넷상 주민등록번호 이용 문제점
● 주민등록번호는 국가 행정업무의 효율을 제고하고 국민들에게 편리한 행정 서비스를 제공
하고자 도입되었습니다. 하지만 주민등록번호가 개인을 고유하게 식별할 수 있고 평생
변동이 없다는 특성으로 인하여 금융, 통신 등 다양한 민간분야에서 활용되어 왔으며,
특히 대면 신원확인이 어려운 인터넷상에서 회원가입, 결제, 게시판 등의 서비스 이용 시
실명확인, 성인인증의 수단으로 광범위하게 사용되고 있습니다.
● 하지만 주민등록번호가 가지는 특성으로 인하여 주민등록번호가 일단 노출될 경우, 변경
과 갱신이 어렵고 인터넷을 통해 무한 복제될 수 있어 계정 도용, 금융사기 등의 피해가
지속적이고 광범위하게 발생할 수 있습니다.
- 또한, 주민등록번호 등의 개인정보 침해사고가 다수 발생하여, 온라인상에서 주민등록
번호만으로는 안전한 본인확인이 완료되었다고 보기 어려운 현실입니다.
Korea Internet & Security Agency
9
i-PIN 2.0 도입 안내서
3. 인터넷상 주민등록번호 대체 수단(i-PIN)
● 방송통신위원회는 웹사이트를 운영하는 사업자가 주민등록번호를 수집하지 않고도 기존
의 중복가입, 본인식별, 성별 등을 확인할 수 있는 인터넷상의 개인식별번호(i-PIN, 이하
)를 마련하여 2005년 10월부터 민간 본인확인기관을 통해 서비스를 제공하고
‘i-PIN’
있습니다.
제1장
● 특히, 최근 i-PIN 2.0에서는 웹사이트간 또는 웹사이트와 오프라인 서비스간 동일인을
식별할 수 있는 연계 정보값이 추가로 마련되어 기존에 주민등록번호를 이용해야만 제공
될 수 있던 마일리지, 사이버머니 등의 서비스를 i-PIN을 통해 동일하게 제공할 수 있게
개선되었습니다.
● i-PIN 도입 비용은 웹사이트 규모에 따라 차이가 있지만 한국인터넷진흥원이 旣 도입한
포털, 게임 등의 업체를 조사한 바에 따르며,
- 기존 시스템 변경을 위한 분석과 개선에 중급기술자 4명이 1개월간 투입되어 약 2천만
원 정도 소요되었으며, i-PIN 도입 후 이용자 수에 따른 인증비용이 연 100만원 이내로
파악되었습니다.
● 본 안내서는 게시판, 회원가입 등에 i-PIN을 도입하는 경우의 절차를 소개하고, 현재
i-PIN 서비스를 제공하는 본인확인기관별 서비스 특징과 툴킷 설치 방법을 소개합니다.
- i-PIN 도입을 위한 세부 절차는 도입을 본인확인기관별로 다소 차이가 있으므로「제3장
i-PIN 툴킷 설치 방법」
을 참고하시기 바랍니다.
● 2010년 6월 현재 인터넷 웹사이트를 대상으로 i-PIN 서비스를 제공하고 있는 5개 본인
확인기관은 [그림 1-3]과 같습니다.
10
제1장 개요
[그림 1-3] 본인확인기관별 서비스명 및 로고
기관명
서비스명
발급 사이트 주소
연락처
한국신용정보
나이스 아이핀
www.idcheck.co.kr
1588-2486
한국신용평가정보
가상주민번호
www.vno.co.kr
1600-1522
서울신용평가정보
Siren24 아이핀
www.siren24.com
02-846-5000
한국정보인증
SG 아이핀
www.sgipin.com
1577-8787
코리아크레딧뷰로
KCB 아이핀
www.ok-name.co.kr
02-708-1000
● 이용자는 웹사이트가 도입한 i-PIN 발급기관과 상관없이 자신이 발급 받은 i-PIN을 이용
하여 웹사이트를 이용할 수 있습니다. i-PIN 발급 및 이용 절차에 관한 내용은 한국인터
넷진흥원 i-PIN 홈페이지(http://i-pin.kisa.or.kr)를 참고하시기 바랍니다. [표 1-1]은
i-PIN 서비스를 제공하는 본인확인기관별 인증방법 및 신원확인수단입니다.
[표 1-1] 본인확인기관별 인증방법 및 신원확인수단 (’
10년 6월 현재)
본인확인기관명
i-PIN 서비스명
인증방법
신원확인수단
한국신용정보
나이스 아이핀
식별ID / 비밀번호
휴대폰, 신용카드,
범용 공인인증서, 대면 확인
한국신용평가정보
가상주민번호
식별ID / 비밀번호
휴대폰, 신용카드,
범용 공인인증서, 대면 확인
서울신용평가정보
Siren24 아이핀
식별ID / 비밀번호
휴대폰, 신용카드,
범용 공인인증서, 대면 확인
한국정보인증
SG 아이핀
식별ID / 비밀번호
휴대폰, 신용카드,
범용 공인인증서, 대면 확인
코리아크레딧뷰로
KCB 아이핀
식별ID / 비밀번호
휴대폰, 신용카드,
범용 공인인증서, 대면 확인
● 5개 본인확인기관의 서비스 특징 및 제공 툴킷에 대한 소개는「제3장 i-PIN 툴킷 설치
방법」
을 참고하시기 바랍니다.
Korea Internet & Security Agency
11
i-PIN 2.0 도입 안내서
4. 주민등록번호 외 회원가입 수단 제공 의무 대상사업자 공시 및
법적근거
● i-PIN은 주민등록번호를 사용하지 않으면서 인터넷에서 개인을 식별할 수 있는 수단으로
회원가입 등을 위해 주민등록번호가 전혀 이용되지 않는 사이트라면 i-PIN을 도입할
필요는 없습니다.
제1장
● 그러나 현재 대부분의 서비스에서 주민등록번호를 사용하고 있는데, 정보통신망법 개정에
따라 ’
09년부터 일일평균 이용자수가 포털 5만명 이상, 게임∙전자상거래∙기타 1만명
이상인 웹사이트는 i-PIN 등 주민등록번호 외의 회원가입 방법을 의무적으로 제공해야
합니다.
● 다음은 최근 주민등록번호의 유출∙피해 예방을 위하여 주민등록번호 외의 회원가입 방법
을 의무적으로 제공토록 규정한 법령의 상세내용입니다.
12
제1장 개요
정보통신망 이용촉진 및 정보보호 등에 관한 법률
■ 제23조의2 (주민등록번호 외의 회원가입 방법) ①
정보통신서비스 제공자로서 제공하는 정보통신
서비스의 유형별 일일 평균 이용자 수가 대통령령으로 정하는 기준에 해당하는 자는 이용자가 정보
통신망을 통하여 회원으로 가입할 경우에 주민등록번호를 사용하지 아니하고도 회원으로 가입할 수
있는 방법을 제공하여야 한다.
②
제1항에 해당하는 정보통신서비스 제공자는 주민등록번호를 사용하는 회원가입 방법을 따로 제공
하여 이용자가 회원가입 방법을 선택하게 할 수 있다.
[본조신설 2008.6.13]
정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행령
■ 제9조의2 (주민등록번호 외의 회원가입 방법 제공 의무자 등) ①
법 제23조의2제1항에서“대통령령
으로 정하는 기준에 해당하는 자”
란 다음 각 호의 어느 하나에 해당하는 자를 말한다.
1. 포털서비스(다른 인터넷주소ㆍ정보 등의 검색과 전자우편ㆍ커뮤니티 등을 제공하는 서비스를 말한
다)의 경우는 전년도 말 기준 직전 3개월간의 일일평균 이용자수가 5만명 이상인 정보통신서비스
제공자
2. 게임서비스(「게임산업진흥에 관한 법률」제2조제1호 및 제1호의2에 따른 게임물과 사행성 게임물
을 정보통신망을 이용하여 제공하는 서비스를 말한다)의 경우는 전년도 말 기준 직전 3개월간의
일일평균 이용자수가 1만명 이상인 정보통신서비스 제공자
3. 전자상거래 서비스(「전자상거래 등에서의 소비자보호에 관한 법률」제2조제1호 및 제2호에 따른
전자상거래 및 통신판매를 정보통신망을 이용하여 제공하는 서비스를 말한다)의 경우는 전년도 말
기준 직전 3개월간의 일일평균 이용자수가 1만명 이상인 정보통신서비스 제공자
4. 그 밖의 정보통신서비스의 경우는 전년도 말 기준 직전 3개월간의 일일평균 이용자수가 1만명
이상인 정보통신서비스 제공자
②
방송통신위원회는 법 제23조의2에 따른 주민등록번호 외의 회원가입 방법 제공에 필요한 준비
기간, 적용기간 및 제1항 각 호에 해당하는 자 등을 인터넷 홈페이지에 게시하는 방법으로 공시하여
야 한다.
[본조신설 2009.1.28]
Korea Internet & Security Agency
13
Korea Internet & Security Agency
i-PIN 2.0 도입 안내서
i-PIN 2.0 도입 안내서
제 2장
i-PIN 도입 방법
1. i -PIN 적용범위 및 제공정보
2. i -PIN 도입 절차
3. 게시판 및 회원가입 i -PIN 적용 예시
4. 마일리지 등 서비스 연계방안
5. i -PIN 적용 시 유의사항
6. i -PIN 전환 프로세스 구축
i-PIN 2.0 도입 안내서
제2장 | i-PIN 도입 방법
1. i-PIN 적용범위 및 제공정보
● 인터넷사업자가 i-PIN을 적용하는 주요 목적은 주민등록번호를 수집하지 않고도 게시판
글쓰기 및 회원가입 등의 서비스 제공이 가능하기 때문입니다. 주민등록번호를 수집하지
않으므로 고객정보유출의 위험이 감소되어 기술적∙관리적인 비용 절감 효과가 발생
합니다.
제2장
● i-PIN은 회원가입, 게시판, 사이트간 서비스 연계(예: 마일리지 공유)에 이용될 수 있습니
다. [그림 2-1]은 i-PIN 도입 시 웹사이트에서 적용 가능한 서비스의 예를 나타낸 그림
입니다.
[그림 2-1] i-PIN 도입 시 적용 서비스의 예
● i-PIN 도입 웹사이트는 본인확인기관으로부터 i-PIN 번호 이 외에도 이용자의 성명, 생년
월일, 중복가입확인정보, 사이트간 동일인 식별을 위한 연계정보, 성별, 연령대, 내∙외국인
정보 등을 제공받을 수 있습니다.
16
제2장 i-PIN 도입 방법
● [표 2-1]은 본인확인기관이 제공하는 이용자 관련 제공정보의 종류, 내용 및 활용 방법을
나타냅니다.
[표 2-1] 본인확인기관이 제공하는 이용자 관련 정보
제공 정보
성 명
내 용
- 신원확인 수단을 이용한 본인확인을 수행하여 검증한
이용자의 실명
활용 방법
- 고객 응대 시 식별방법으로 이용
- 이용자의 본인확인을 수행한 이후에 본인확인기관이
i-PIN 번호
이용자에게 부여하는 13자리 정보 (발급기관정보 2자
- 불량 이용자 추적 시 활용
리 이 외는 난수값)
- 회원가입 또는 글쓰기 권한을 얻고자하는 웹사이트
중복가입확인정보
내에서만 유일하게 이용자를 식별할 수 있는 64byte
- 중복가입 확인 및 고객 식별 시 활용
정보
연계정보
생년월일
성별
- 서비스 연계를 위한 웹사이트간 공동 식별자로
88byte 암호화 된 정보
- 신원확인수단을 통한 본인확인을 수행하여 검증한
주민등록번호에서 추출한 8자리 정보 (YYYYMMDD)
- 신원확인수단을 통한 본인확인을 수행하여 검증한
주민등록번호에서 추출한 1자리 정보
- 신원확인수단을 통한 본인확인을 수행하여 검증한
연령대
주민등록번호에서 추출한 정보를 분류하여 제공하는
8단계의 법적연령대 1자리 정보
- 신원확인수단을 통한 본인확인을 수행하여 검증한
내∙외국인
주민등록번호(또는 외국인등록번호)에서 추출한 1자리
정보
i-PIN 발급 시
신원확인수단
- i-PIN 발급 시 신원확인수단
- 사이트간 제휴서비스 제공 시 고객 식별 용도로
활용
- 고객 서비스 제공 시 활용
(예: 생일 쿠폰 발송, 생일 메일 발송 등)
- 고객 마케팅 활용
(예: 패션∙미용 등 정보 제공)
- 연령대 별 제공 가능한 서비스 식별에 사용
(예: 영화 관람 등급, 게임이용가능 연령확인 등
- 내국인 가능 서비스와 외국인 가능 서비스
구분 시 활용
- i-PIN 발급 시 이용자가 이용한 신원확인 수단
(예: 카드, 휴대폰, 신원보증대리인 등)
Korea Internet & Security Agency
17
i-PIN 2.0 도입 안내서
2. i-PIN 도입 절차
[그림 2-2] i-PIN 도입절차
제2장
● i-PIN을 도입하고자 하는 경우에 웹사이트 운영자는 먼저 현재 운영하고 있는 또는 운영
예정인 서비스의 형태를 분석합니다.
- 예를 들어, 운영되고 있는 서비스 중에서 주민등록번호를 이용하는 부분 즉, i-PIN
도입 시 적용될 수 있는 부분과 i-PIN이 적용되어도 주민등록번호가 필요한 금융 관련
부분 등 업무를 분석하여 DB 구조를 변경하거나 정의합니다.
● i-PIN 툴킷 설치 및 적용이 완료되면 테스트 점검을 이행한 후 개선된 서비스를 이용자
에게 제공합니다. 사업자는 효율적인 i-PIN 적용을 위하여「제2장 5. i-PIN 적용 시
18
제2장 i-PIN 도입 방법
유의사항」
을 반드시 숙지하시기 바랍니다.
● 다음 단락에서는 게시판과 회원가입 서비스에 i-PIN을 적용하기 위한 상세 예시와 새롭
게 도입된 연계정보를 활용하는 방법에 대하여 알아보겠습니다.
3. 게시판 및 회원가입 i-PIN 적용 예시
가. 게시판
● 게시판에 i-PIN을 도입하는 경우에는 데이터베이스(이하‘DB’
)의 갱신 및 질의어 변경
의 절차가 거의 없습니다. 본인확인기관이 제공하는 i-PIN 툴킷을 설치하여 i-PIN 이용
자를 인증한 후에 게시판에 글을 쓸 수 있는 권한만 부여합니다.
1) 게시판 분석
● 민원상담 게시판의 경우 글을 쓰는 민원인에 대한 신원확인을 수행해야 합니다. 따라서
i-PIN 또는 실명인증과 같은 신원확인절차를 게시판 글쓰기 앞단에 연결해야 합니다.
● 본인확인기관이 제공하는 이용자의 i-PIN 제공 정보 중 성명, i-PIN 번호, 중복가입
확인정보를 추가하여 게시판 DB를 변경하거나 정의합니다.
● 만약 게시판의 내용이 성인들을 대상으로 하는 경우에는 생년월일 정보도 게시판 DB에
추가하여야 합니다.
Korea Internet & Security Agency
19
i-PIN 2.0 도입 안내서
2) 게시판 DB 스키마 결정
● 고객 민원상담 게시판의 경우 [표 2-2]와 같은 필드를 포함하는 테이블로 정의할 수 있으
며, i-PIN 제공 정보 중 성명, i-PIN 번호 및 중복가입확인정보를 포함하고 있습니다.
● [표 2-2]의 필드 중 글 번호, 제목, 내용, 성명, 전자메일 주소, 주민등록번호 또는 i-PIN
번호, 전화번호 및 중복가입확인정보(DI)는 반드시 보관되어야 하는 필드입니다. 글 번호
를 주키(Primary Key)로 설정합니다.
[표 2-2] 고객 민원상담 게시판 DB 스키마 예제
제2장
필드명
설 명
Data type
NUM
글 번호
unsigned int(10)
SUBJECT
글 제목
varchar(100)
CONTENT
글 내용
varchar(2000)
REG_DATA
글 등록일
datetime(8)
HITCOUNT
글 조회수
unsigned int(5)
WRITER
글쓴이의 성명
varchar(20)
CATEGORY
질문 분류
varchar(2)
WRITERMAIL
글쓴이의 전자메일 주소
varchar(50)
SOCIALID
글쓴이의 주민등록번호 또는 i-PIN 번호
varchar(13)
TELNO
글쓴이의 전화번호
varchar(11)
DI
글쓴이의 중복가입확인정보(DI)
varchar(64)
※ 제한적 본인확인제 대상기관은 본인확인 증빙, 추적성 확보 등을 위하여 성명과 함께 i-PIN이나 중복가입확인정보(DI)를 저장하고
있어야 합니다.
● 글쓴이의 전자메일 주소 및 전화번호는 민원상담에 대한 답변을 작성하여 고객에게 상담
내용에 대한 결과를 알려주기 위하여 반드시 입력하도록 정의합니다.
● 만약 게시판에 댓글달기 기능이 있을 경우에는 악성 댓글로 인한 명예훼손 등의 문제를 해결
하기 위해 댓글 작성자를 추적해야 할 때 주민등록번호 또는 i-PIN 번호를 이용합니다.
20
제2장 i-PIN 도입 방법
- i-PIN 도입으로 인해 주민등록번호를 보관하지 않는 경우 댓글 작성자 추적을 위하여
반드시 i-PIN 번호를 저장해야 합니다.
● i-PIN 번호 3~4번째 자리는 13 이상의 숫자로 구성되고 있으며, i-PIN을 발급한 본인
확인기관을 나타내므로 추적이 필요한 경우 영장 등을 해당 본인확인기관에 송부하여
이용자 주민등록번호를 확인할 수 있습니다.
● 글쓴이의 중복가입확인정보(DI)는 동일인이 작성한 내용을 검색할 경우에 활용할 수 있습
니다. 성명으로 검색을 할 수 있으나, 동명이인이 있을 수 있으므로 이용자를 유일하게
식별하는 중복가입확인정보(DI)를 활용합니다.
3) i-PIN 툴킷 설치
● 웹사이트 운영자는 i-PIN을 서비스하는 본인확인기관 중 하나의 i-PIN 서비스를 채택하
고 해당 본인확인기관과 서비스 이용계약을 체결합니다. i-PIN 서비스 이용 계약 후 본인
확인기관은 중복가입확인정보(DI)를 생성하는 데 필요한 웹사이트 식별정보를 웹사이트에
할당합니다.
● 서비스 이용계약을 체결한 본인확인기관은 i-PIN 이용자의 정보를 받을 수 있는 i-PIN
툴킷과 설치 매뉴얼을 제공할 것입니다. 웹사이트 운영자는 i-PIN 툴킷을 설치 매뉴얼에
따라 웹서버에 설치합니다.
● 본인확인기관별 i-PIN 툴킷 설치의 상세한 내용은 본 안내서의「제3장 i-PIN 툴킷 설치
방법」
을 참고하시면 됩니다.
● i-PIN 툴킷은 본인확인기관과 웹사이트간 전송정보를 암호화하여 송∙수신하고 복호화
하여 해당 정보를 이용할 수 있도록 만든 것입니다.
Korea Internet & Security Agency
21
i-PIN 2.0 도입 안내서
4) 게시판 페이지 설정
● i-PIN 툴킷을 설치하여 게시판 글쓰기 앞단에 연결해 놓으면 이용자는 i-PIN 팝업창을
통해 본인확인기관에 등록된 식별ID와 비밀번호 입력하여 인증을 요청합니다.
● 본인확인기관은 i-PIN 인증을 수행한 이용자의 정보(성명, i-PIN 번호, 중복가입확인
정보(DI) 등)를 웹사이트에 암호화하여 전달합니다. 웹사이트에 설치된 i-PIN 툴킷은
본인확인기관에서 암호화하여 전송한 정보를 복호화 하여 성명, i-PIN 번호, 중복가입
확인정보(DI) 등을 게시판 페이지로 보내줍니다.
● 이 때, 이용자에게는 글을 쓸 수 있는 게시판 페이지를 보여줍니다. 웹사이트 담당자는
제2장
i-PIN 툴킷으로부터 전달 받은 성명, i-PIN 번호, 중복가입확인정보(DI) 등을 별도의
쿠키 또는 세션으로 보관하고 이용자에게 보여주는 게시판 페이지에는 아무런 정보도
전달하지 않습니다.
● 웹사이트 담당자는 이용자에게 보이는 게시판 페이지에 임의의 번호를 할당하고, 해당
번호를 별도의 쿠키 또는 세션에 이용자 관련 i-PIN 제공 정보와 함께 보관합니다.
5) 게시판 내용 저장
● 이용자는 웹사이트 게시판 페이지에 상담하고 싶은 내용을 모두 작성한 후 확인버튼을
클릭하게 됩니다.
● 웹사이트 담당자는 작성이 완료된 게시판 페이지에 할당한 임의의 번호로 저장된 쿠키
또는 세션에 보관하고 있는 이용자의 성명, i-PIN 번호, 중복가입확인정보(DI)를 이용자
가 작성한 내용과 함께 게시판 DB에 저장합니다.
● 고객 상담 게시판에 i-PIN이 도입되어 있다면 [그림 2-3]과 같은 절차에 따라 이용자가
22
제2장 i-PIN 도입 방법
작성한 상담내용이 게시판 DB에 저장됩니다.
① 이용자는 고객 상담 게시판에서 글쓰기를 선택합니다. 이 때 신원확인 방법으로 [i-PIN 인증]을 선택
합니다.
② 이용자에게는 [i-PIN 인증]을 위한 팝업창이 나타나게 되며, 이용자는 자신의 i-PIN 발급 시 등록한
식별ID와 비밀번호를 팝업창에 입력합니다.
③ 본인확인기관은 이용자가 입력한 식별ID와 비밀번호가 등록된 i-PIN 이용자의 정보인지 확인한 후
이용자 관련 i-PIN 제공정보를 웹사이트에 암호화하여 전달합니다.
④ 웹사이트는 본인확인기관으로부터 전달 받은 이용자 관련 i-PIN 제공정보를 i-PIN 툴킷을 통해 복호
화하여 필요한 정보를 쿠키 또는 세션으로 별도 보관합니다. 이 때, 이용자에게 전달될 게시판 페이지
에 임의의 페이지번호를 생성하여 함께 보관합니다.
⑤ 웹사이트는 이용자에게 게시판 페이지를 보여주고 게시판 페이지번호도 함께 전달합니다.
⑥ 이용자는 게시판에 글 제목, 상담내용, 전자메일, 전화번호 등을 입력하고 확인버튼을 클릭합니다.
⑦ 웹사이트는 이용자가 작성하여 보내온 정보 중 게시판 페이지 번호에 해당하는 임시 보관정보를 쿠키
[그림 2-3] 게시판 i-PIN 도입 절차
Korea Internet & Security Agency
23
i-PIN 2.0 도입 안내서
또는 세션으로부터 가져옵니다.
⑧ 임시 보관하고 있는 이용자의 성명, 중복가입확인정보(DI), i-PIN 번호, 글 제목, 상담내용, 전자메일,
전화번호 등을 게시판 DB에 함께 저장합니다.
나. 회원가입
1) 회원관리 현황 분석
● 웹사이트는 i-PIN 도입 전에는 주민등록번호를 이용자를 식별하는 정보로 활용하였지만,
i-PIN이 도입되면 i-PIN 번호 자체가 언제든지 폐지 후 신규발급이 가능하기 때문에
동일 이용자를 유일하게 식별하는 정보로 활용할 수 없습니다.
제2장
● 그 대신, i-PIN 제공 정보 중 중복가입확인정보(DI)를 회원DB에 추가하여 이용자를 유일
하게 식별할 수 있게 됩니다. 신규로 회원DB를 구성하는 경우에는 중복가입확인정보(DI)
를 보관할 필드만을 추가하면 되지만, 기존에 웹사이트를 운영하고 있었다면 기존 이용자
에 대한 중복가입확인정보(DI)를 추가하는 것도 고려해야 합니다.
● 또한, i-PIN 제공정보 중 이용자의 생년월일 정보는 i-PIN 번호 안에 포함되어 있지 않기
때문에 기존 이용자의 주민등록번호에 있는 생년월일 정보를 보관하기 위해 생년월일
정보 필드를 별도로 추가해야 합니다.
● 본인확인기관이 제공하는 이용자의 i-PIN 제공 정보 중 성명, i-PIN 번호, 중복가입확인
정보(DI), 생년월일 정보, 성별, 연령대, 내∙외국인 정보를 추가하여 회원DB를 변경 또는
정의합니다.
● 만약 사업자간 제휴서비스 등 연계가 이루어져 있다면 이용자의 연계정보(CI, Connecting Information)정보도 저장해야 합니다.
24
제2장 i-PIN 도입 방법
2) 회원DB 스키마 결정
● 일반적인 회원가입의 경우 [표 2-3]과 같은 필드를 포함하는 테이블로 정의할 수 있으며,
i-PIN 제공 정보는 성명, i-PIN 번호 및 중복가입확인정보(DI) 등 모든 정보를 포함하고
있습니다.
[표 2-3] 회원가입에 i-PIN 도입 시 회원DB 스키마 예제
필드명
설명
Data type
UserNum
회원번호
unsigned int(10)
UserID
회원ID
varchar(12)
UserPass
회원 비밀번호
varchar(20)
SOCIALID
회원 주민등록번호 또는 i-PIN 번호
varchar(13)
UserName
회원 성명
varchar(20)
UserEmail
회원 전자메일주소
varchar(50)
UserPassQ
회원ID 비밀번호 찾기 질문
varchar(10)
UserPassA
회원ID 비밀번호 찾기 답
varchar(100)
UserZip
회원주소 우편번호
char(6)
UserAddr1
회원주소 앞부분
varchar(100)
UserAddr2
회원주소 뒷부분
varchar(100)
UserTel
회원 집 전화번호
varchar(20)
UserPhoneC
회원 휴대폰 서비스 제공업체
varchar(20)
UserPhone
회원 휴대폰 전화번호
varchar(20)
regDate
회원 가입일
datetime(8)
exitDate
회원 탈퇴일
datetime(8)
exit_flag
회원 탈퇴여부
bit
UserDI
회원 중복가입확인정보(DI)
varchar(64)
UserCI
회원 연계정보(CI)
varchar(88)
UserBirth
회원 생년월일
datetime(8)
UserSex
회원 성별
bit
For_bit
회원 외국인 여부
bit
UserAge
회원 연령대
varchar(8)
● [표 2-3]의 필드 중 회원번호, 회원ID, 비밀번호, 주민등록번호 또는 i-PIN 번호, 성명,
전자메일 주소, 전화번호 및 중복가입확인정보(DI) 등은 반드시 보관되어야 하는 필드
Korea Internet & Security Agency
25
i-PIN 2.0 도입 안내서
입니다. 또한 사업자간 제휴서비스가 이루어져 있다면 연계정보(CI)도 반드시 보관되어야
합니다.
● 회원DB의 주키(Primary Key)는 회원번호로 설정합니다. 회원번호를 주키로 설정하여
회원가입 시 계정의 개수를 제한하거나 중복가입을 허용할 수 있는 형태로 회원DB 스키마
를 정의할 수 있습니다. 계정의 개수를 제한하는 경우에는 동일한 중복가입확인정보(DI)를
갖는 계정의 개수를 더해서 제한할 수 있습니다.
● 전자메일 주소 및 휴대폰 전화번호 등은 웹사이트의 이용약관 변경 등을 이용자에게 고지
하기 위한 목적으로 반드시 입력하도록 정의합니다.
제2장
3) 회원DB 갱신 및 질의어 변경
● 신규로 회원DB를 구축하는 웹사이트의 경우는 회원DB 갱신 및 질의어 변경을 할 필요가
없습니다. 그러나 기존의 실명확인(성명과 주민등록번호 확인)을 통해 회원가입을 받고
있던 웹사이트라면 회원DB를 갱신해야 합니다.
● 기존 이용자의 주민등록번호에서 생년월일 및 성별에 해당하는 정보를 생년월일(User
Birth) 필드와 회원 성별(UserSex) 필드에 추가합니다. 만약 이용자가 외국인등록번호로
회원가입한 경우에는 회원DB의 외국인 여부(For_bit)필드를 1로 설정합니다.
● 또한, 기존 이용자의 주민등록번호와 웹사이트 식별정보1)를 해쉬한 값과 회원ID를 연결한
목록을 i-PIN 서비스 제공 계약을 맺은 본인확인기관에 전달합니다. 본인확인기관은
해쉬 값을 본인확인기관간 공유 비밀정보로 2차 해쉬하여 중복가입확인정보(DI) 목록을
웹사이트에 제공합니다.
1) i-PIN 서비스 이용 계약을 맺은 본인확인기관이 인터넷 사업자가 운영하는 웹사이트를 다른 웹사이트와 구별하기 위하여 부여하는 12자리 정보
26
제2장 i-PIN 도입 방법
● 본인확인기관으로부터 전달 받은 중복가입확인정보(DI) 목록을 회원ID에 해당하는 중복
가입확인정보(UserDI) 필드에 추가하여 회원DB 갱신작업을 마무리 합니다.
● 질의어의 경우 현재 주민등록번호를 질의어로 사용하고 있는 모든 질의어를 찾아 주민
등록번호 대신에 중복가입확인정보(DI)를 질의어로 변경합니다.
4) i-PIN 툴킷 설치
● 웹사이트 담당자는 i-PIN을 서비스하는 본인확인기관 중 하나의 i-PIN 서비스를 채택
하고 해당 본인확인기관과 서비스 이용계약을 체결합니다.
● 서비스 이용계약을 체결한 본인확인기관은 i-PIN 이용자의 정보를 받을 수 있을 수 있는
i-PIN 툴킷과 설치 매뉴얼을 제공할 것입니다. 웹사이트 담당자는 설치 매뉴얼에 따라
웹서버에 i-PIN 툴킷을 설치합니다.
● 본인확인기관별 i-PIN 툴킷 설치의 상세한 내용은 본 안내서의「제3장 i-PIN 툴킷 설치
방법」
을 참고하시면 됩니다.
● i-PIN 툴킷은 본인확인기관과 웹사이트간 전송정보를 암호화하여 송∙수신하고 복호화
하여 해당 정보를 이용할 수 있도록 만든 것입니다.
5) 회원가입 페이지 설정
● i-PIN 툴킷을 설치하여 회원가입 페이지 앞단에 연결 해 놓으면 이용자는 본인확인기관
에 등록했던 식별ID와 비밀번호를 i-PIN 팝업창에 입력하여 인증을 요청합니다.
● 본인확인기관은 i-PIN 인증을 수행한 이용자의 정보(성명, i-PIN 번호, 중복가입확인
정보(DI) 등)를 웹사이트에 암호화하여 전달합니다. 웹사이트에 설치된 i-PIN 툴킷은
Korea Internet & Security Agency
27
i-PIN 2.0 도입 안내서
본인확인기관에서 암호화하여 전송한 정보를 복호화하여 성명, i-PIN 번호, 중복가입
확인 정보(DI) 등을 회원가입 페이지로 보내줍니다.
● 이 때, 이용자에게는 회원가입에 필요한 정보를 입력할 수 있는 페이지를 보여줍니다.
웹사이트 담당자는 i-PIN 툴킷으로부터 전달 받은 성명, i-PIN 번호, 중복가입확인정보
(DI) 등을 별도의 쿠키 또는 세션으로 보관하고 이용자에게 보여주는 회원가입 페이지에는
성명 이 외에 아무런 정보도 전달하지 않습니다.
● 웹사이트 담당자는 이용자에게 보이는 회원가입 페이지에 임의의 번호를 할당하고, 해당
번호를 별도의 쿠키 또는 세션에 이용자 관련 i-PIN 제공정보와 함께 보관합니다.
제2장
6) 회원DB에 이용자 정보 저장
● 이용자는 회원가입 페이지에 회원가입에 필요한 ID, 비밀번호, 비밀번호 찾기 질문 및 답,
전자메일주소, 전화번호 등을 모두 입력한 후 회원가입 버튼을 클릭하게 됩니다.
● 웹사이트 담당자는 입력이 완료된 회원가입 페이지에 할당한 임의의 번호로 저장된 쿠키
또는 세션에 보관하고 있는 이용자의 성명, i-PIN 번호, 중복가입확인정보(DI) 등 이용자
관련 i-PIN 제공정보와 이용자가 입력한 회원가입정보를 함께 회원DB에 저장합니다.
● 웹사이트의 회원가입에 i-PIN이 도입되어 있다면 [그림 2-4]와 같은 절차에 따라 이용자
가 입력한 회원가입 정보가 회원정보 DB에 저장되게 됩니다.
① 이용자는 웹사이트에서 회원가입 버튼을 클릭합니다. 이 때 신원확인 방법으로 [i-PIN 인증]을 선택
합니다.
② 이용자에게는 [i-PIN 인증]을 위한 팝업창이 나타나게 되며, 이용자는 자신의 i-PIN 발급 시 등록한
식별ID와 비밀번호를 팝업창에 입력합니다.
③ 본인확인기관은 이용자가 입력한 식별ID와 비밀번호가 등록된 이용자의 정보인지 확인한 후 이용자
관련 i-PIN 제공정보를 웹사이트에 암호화하여 전달합니다.
28
제2장 i-PIN 도입 방법
④ 웹사이트는 본인확인기관으로부터 전달 받은 이용자 관련 i-PIN 제공정보를 i-PIN 툴킷을 통해 복호
화하여 필요한 정보를 쿠키 또는 세션으로 별도 보관합니다. 이 때, 이용자에게 전달될 회원가입 페이
지에 임의의 페이지번호를 생성하여 함께 보관합니다.
⑤ 웹사이트는 이용자에게 회원가입 페이지를 보여주고 회원가입 페이지번호도 함께 전달합니다.
⑥ 이용자는 회원가입에 필요한 회원ID, 비밀번호, 비밀번호 찾기 질문 및 답, 전자메일 주소, 전화번호
등을 입력하고 확인버튼을 클릭합니다.
⑦ 웹사이트는 이용자가 입력하여 보내온 정보 중 회원가입 페이지 번호에 해당하는 임시 보관정보를
쿠키 또는 세션으로부터 가져옵니다.
⑧ 임시 보관하고 있는 이용자 관련 i-PIN 제공정보(성명, 중복가입확인정보(DI), i-PIN 번호 등)와 회원
ID, 비밀번호, 비밀번호 찾기 질문 및 답, 전자메일주소 등을 함께 회원 DB에 저장합니다.
[그림 2-4] 회원가입 i-PIN 도입 절차
Korea Internet & Security Agency
29
i-PIN 2.0 도입 안내서
4. 마일리지 등 서비스 연계방안
● 기존 i-PIN 시스템에서는 특정 개인을 식별하기 위한 식별정보(중복가입확인정보(DI))를
웹사이트별로 다르게 제공하고 있어 같은 이용자임에도 불구하고 동일인임을 식별할 수
없었습니다.
● 현 체계에서는 사업자간 제휴서비스가 불가능하여 이러한 불편을 극복하고자 서로 다른
웹사이트간에도 동일 이용자를 구분할 수 있는 연계정보(CI, Connecting Information)를
새롭게 도입하였습니다.
제2장
● 연계정보(CI)가 도입된 i-PIN 2.0에서는 주민등록번호를 통해 가입한 경우에도 i-PIN과
연계될 수 있도록 지원하고 있으며 주민등록번호를 연계정보(CI)로 변환하는 행위는 사업
자 요청 시 본인확인기관에서 제공합니다.
※ 예: 이용자가 A사에는 i-PIN으로, B사에는 주민등록번호로 가입한 경우, 양 사업자간의 서비스 연계를 위해 사업자가
본인확인기관에 CI를 요청하면 본인확인기관이 CI 값을 생성하여 전달
[그림 2-5] i-PIN 시스템 변화
30
제2장 i-PIN 도입 방법
● 대부분의 오프라인 서비스는 본인확인을 위해 주민등록번호를 활용하므로 i-PIN으로
가입한 온라인 회원은 오프라인 상에서 본인여부 확인이 불가능하여 온∙오프라인 연계
서비스를 받기 어렵다는 단점이 존재하고 있습니다.
● 이러한 단점도 연계정보(CI)를 이용하면 오프라인에서 주민등록번호로 가입하더라도 동일
인 확인이 가능합니다.
※ 적용 예: 인터넷을 통해 영화∙항공권 등을 예매하고 오프라인에서 발급하는 경우 등
[그림 2-6] 연계정보(CI) 활용 예
Korea Internet & Security Agency
31
i-PIN 2.0 도입 안내서
● 타 사이트와 마일리지 공유에 대한 제휴 서비스 이용 시 일반적인 회원가입의 경우 [표 24]와 같은 필드를 포함하는 테이블로 정의할 수 있으며, i-PIN 번호, 성명, 연계정보(CI)
를 이용할 수 있습니다.
[표 2-4] 연계정보 이용 시 회원DB 스키마 예제
제2장
필드명
설 명
Data type
UserNum
회원번호
unsigned int(10)
UserID
회원ID
varchar(12)
UserPass
회원 비밀번호
varchar(20)
SOCIALID
회원 주민등록번호 또는 i-PIN 번호
varchar(13)
UserName
회원 성명
varchar(20)
UserPhone
회원 휴대폰 전화번호
varchar(20)
UserMilage
회원 마일리지(타 사이트 공유정보)
varchar(20)
CoopterInfo
제휴된 사이트 정보
varchar(100)
UserCI
회원 연계정보(CI)
varchar(88)
UserBirth
회원 생년월일
datetime(8)
UserSex
회원 성별
bit
For_bit
회원 외국인 여부
bit
UserAge
회원 연령대
varchar(8)
5. i-PIN 적용 시 유의사항
가. 효율적인 i-PIN 적용방안
1) 회원가입 페이지 i-PIN 적용 시 버튼 분류
● i-PIN은 주민등록번호를 이용하는 모든 서비스에 적용이 가능하지만 특히 회원가입 부분
의 적용비율이 가장 높습니다. i-PIN 계정이 없어 신규 발급을 받아야 하는 이용자의 경우
사이트에 대한 회원가입 중 i-PIN 계정을 받는 절차가 진행되므로 혼란을 주게 됩니다.
32
제2장 i-PIN 도입 방법
[그림 2-7] 가입 시 혼란을 주는 화면구성
�
�
�
● 그러므로 회원가입 부분에 i-PIN을 적용할 때에는 다음 [그림 2-8]과 같이 i-PIN 계정이
있는 이용자와 없는 이용자를 고려하여 각각 버튼 구성하여 안내 문구를 삽입하고 버튼에
해당 URL로 링크되도록 구성하시기 바랍니다.
Korea Internet & Security Agency
33
i-PIN 2.0 도입 안내서
[그림 2-8] 개선된 화면구성
↙
제2장
↘
2) 회원가입 시 i-PIN 인증정보를 통한 검증
● 본인확인기관에서 전송 받은 이름, 생년월일 등의 i-PIN 인증정보를 회원정보에 미리 적용
되도록 구성하시면 이용자가 정보를 다시 기재하지 않아도 되므로 편의성을 향상시킬 수
있습니다. 하지만 이러한 방식은 타인의 i-PIN을 도용하여 사용하는 악의적 해커 등에게
고객정보를 추가로 노출시켜 개인정보의 침해 위험이 높습니다.
● 따라서, 고객의 개인정보를 안전하게 보호하고 이용자의 인증을 강화하기 위해서는 회원
34
제2장 i-PIN 도입 방법
가입 시 별도로 성명을 입력하게 하고 i-PIN 인증정보로 제공된 성명과 비교하는 검증과정
을 추가는 것이 바람직합니다.
[그림 2-9] 회원정보가 자동으로 입력된 예
3) i-PIN 적용 후 취약점 점검
● i-PIN 적용이 완료된 뒤에 취약점은 없는지 다음 항목들을 꼼꼼히 살펴보시고 개인정보의
노출이 없도록 확인해 주시기 바랍니다.
① 회원가입 등 개인정보 전송 시 평문 전송
② i-PIN 인증 우회하고 회원가입 페이지에 URL로 직접 접근하여 회원가입
Korea Internet & Security Agency
35
i-PIN 2.0 도입 안내서
③ i-PIN 인증결과를 회원가입 페이지에 평문으로 전송
④ i-PIN 인증결과 필드(이름, 가상주민번호) 및 속성 값을 변조
⑤ 이미 가입된 회원이나 중복해서 가입 가능
⑥ Cookie에 담겨 있는 개인정보를 변조하여 회원가입에 이용
6. i-PIN 전환 프로세스 구축
● i-PIN을 도입을 완료했거나 i-PIN을 도입하고자 하는 인터넷사업자는 이용자의 편의성과
선택권 보장을 위하여 기존 주민등록번호로 가입한 회원이 i-PIN으로 전환할 수 있는 프로
세스를 구축해야 합니다.
제2장
가. i-PIN 전환 프로세스 구축 예시
1) 회원정보 수정 메뉴에 i-PIN 전환 버튼 삽입
● 기존 주민등록번호로 가입한 회원들이 탈퇴 및 재가입 절차 없이 손쉽게 주민등록번호를
삭제하고 i-PIN으로 전환이 가능하도록 [그림 2-10]과 같이 회원정보 수정 메뉴에 i-PIN
전환 버튼을 삽입합니다. i-PIN 전환 버튼은 이용자가 알아보기 쉽도록 색상 변경, 볼드체
표시 등으로 강조하여 표시합니다.
[그림 2-10] i-PIN 전환 버튼을 삽입한 회원정보 수정 메뉴 예시
36
제2장 i-PIN 도입 방법
2) i-PIN 인증
● 이용자가 i-PIN 전환 버튼을 클릭하면 [그림 2-11]과 같이 i-PIN 인증 팝업창을 연결하여,
이용자가 기존 주민등록번호를 i-PIN으로 바꿀 수 있도록 합니다.
[그림 2-11] i-PIN 인증 팝업창
3) i-PIN 전환 확인 및 주민등록번호 삭제
● i-PIN 인증이 정상적으로 완료되면 이용자에게 [그림 2-12]와 같이 전환완료 안내와 함께,
기존에 등록되어 있던 주민등록번호는 DB에서 삭제합니다.
[그림 2-12] i-PIN 전환 완료 안내 예시
Korea Internet & Security Agency
37
i-PIN 2.0 도입 안내서
4) 메인 홈페이지에 i-PIN 전환 안내 페이지 개설
● 이용자가 알아보기 쉽도록 메인 홈페이지의 배너, 공지사항 게시판 등을 통해 이용자에게
i-PIN 전환 방법을 상시 안내합니다.
제2장
38
i-PIN 2.0 도입 안내서
제 3장
i-PIN 툴킷 설치 방법
1. 한국신용정보 - 나이스 아이핀
2. 한국신용평가정보 - 가상주민번호
3. 서울신용평가정보 - Siren24 아이핀
4. 한국정보인증 - SG 아이핀
5. 코리아크레딧뷰로 - KCB 아이핀
i-PIN 2.0 도입 안내서
제3장 | i-PIN 툴킷 설치 방법
● i-PIN 툴킷 설치 시 테스트 환경을 마련하시어 별도로 서비스 확인을 하시는 것을 권장
하여 드립니다. 또한 실제 서비스 환경에 적용하시기 전 반드시 서비스 장비의 백업을 받아
놓으시기 바랍니다.
1. 한국신용정보 - 나이스 아이핀
가. 나이스 아이핀 소개
● 나이스 아이핀은 한국신용정보에서 운영하는 아이핀 서비스입니다. 나이스 아이핀은「인터
제3장
넷상의 주민등록번호 대체수단 가이드라인」
을 준수하여 설계된 차세대 주민등록번호 보호
수단으로 인터넷상에서 개인을 식별할 수 있는 i-PIN과 이를 이용하기 위한 별도의 식별
ID와 비밀번호를 부여하여 타인의 사용을 방지할 수 있는 보호 솔루션입니다.
● 나이스 아이핀 서비스를 통해 i-PIN을 발급 받은 사용자는 웹사이트 회원가입 또는 성인
인증을 하기 위해 주민등록번호를 입력하는 대신 미리 설정된 식별ID와 비밀번호를 입력
하게 되고, 이를 통해 본인임을 식별할 수 있는 가상의 식별번호가 해당 웹사이트로 전송됨
으로써 목적을 달성할 수 있습니다.
● 이용자 입장에서 나이스 아이핀 서비스를 사용하게 되면 본인임을 확인하는 과정에서 본인
의 주민등록번호를 직접 사용하지 않음으로써 정보의 유출을 막을 수 있습니다. 이용자는
나이스 아이핀 서비스를 이용하시기 위해서는 반드시 온라인 신원확인을 거쳐야 합니다.
40
제3장 i-PIN 툴킷 설치 방법
● 나이스 아이핀은 국내 8,000여 개의 금융/비금융기관과 신용정보 및 평가를 연동하고 있는
한국신용정보에서 EJB Component에 따른 J2EE 기반 시스템으로 개발하였으며, 2006년
에는 i-PIN 서비스와 관련한 특허를 취득, 현재 보유하고 있습니다.
나. 나이스 아이핀 서비스 절차
1) 개인사용자 사용 흐름도
● [그림 3-1]은 나이스 아이핀을 이용하는 개인 사용자의 i-PIN 사용 흐름도입니다.
[그림 3-1] 나이스 아이핀 서비스 흐름도
1) 사용자는 웹사이트에 접속하여 본인확인을 위해 i-PIN을 선택합니다.
2) 회원사 웹사이트에서 i-PIN 클라이언트를 실행시킵니다.
3) 사용자는 i-PIN 팝업창에서 식별ID와 비밀번호를 입력합니다. 이 때 미등록 사용자는 클라이언트
상에서 아이핀 신규발급을 진행할 수 있습니다.
4) 입력된 정보가 올바르면 즉시 웹사이트로 바로 전송되어 본인확인절차가 완료됩니다.
Korea Internet & Security Agency
41
i-PIN 2.0 도입 안내서
2) 웹사이트 서비스 신청 안내
● 서비스 신청은 [그림 3-2]와 같은 방식으로 진행되며, 계약과 개발 적용은 하루 만에 완료
됩니다.(단, 시스템 구성에 따라 시간이 더 소요될 수도 있습니다.)
[그림 3-2] 나이스 아이핀 서비스 계획 흐름도
다. 나이스 아이핀(i-PIN) 툴킷 설치 방법
제3장
1) 설치 개요
● 한국신용정보 나이스 아이핀 서비스는 웹서비스 형태로 제공되고 있으며, SSL 이 외에
Triple-DES 보안이 적용되어 어떤 형태의 위협에도 안전하며, 1) 최소한의 단순 명료한
[그림 3-3] 나이스 아이핀 관계도
42
제3장 i-PIN 툴킷 설치 방법
통신 구조, 2) 암호화 통신사용으로 개인정보 보호, 3) 네트워크 연결 부담 최소화를 통한
빠른 응답시간 확보, 4) 국제적인 표준 프로토콜 및 파일 포맷을 사용하여 신뢰성과 확장성
확보의 요건을 충족시키고 있습니다.
● 적용시에는 배포된 파일의 간단한 수정만으로도 바로 사이트 적용이 가능하며, [표 3-1]의
절차에 따라 설치합니다.
[표 3-1] 나이스 아이핀 설치 순서
설치 순서
절 차
계약사항 확인
설치 전 점검사항 확인
시스템 확인
샘플소스 수정 및 업로드
샘플소스 테스트
샘플소스 수정
내 용
한국신용정보와의 계약 시 전달받은 정보를 확인합니다.
- 회원사ID: N으로 시작하는 ID
- 사이트 식별정보
- 암호화 keyString
telnet secure.nuguya.com 80 명령어를 통해 Secure.nuguya.com
80포트와의 연결을 확인합니다.
배포 받은 샘플 소스에 회원사ID 및 사이트 식별정보, 암호화 keyStrng을
삽입하여 소스를 수정합니다.
샘플소스 업로드
서버의 특정 위치에 해당 샘플 소스를 업로드 합니다.
샘플소스 테스트
배포 받은 소스를 웹서버 상에서 실행하여 정상적인 결과가 리턴 됨을
확인합니다.
사이트 커스터마이징
샘플 소스의 암호화 부분 및 파라미터 전달부분을 복사하여, 기존 사이트에
적용합니다.
2) 툴킷 파일 및 단계별 상세 절차
가) NiceCheck.xxx
● 사용자의 정보를 암호화 하여 전달하는 역할을 하고, 입력소스 파일로서 회원사의 정보를
설정하여 개인인증정보를 처리하는 한국신용정보 나이스 아이핀 페이지를 호출합니다.
● 회원사 아이디(NiceId), 사이트 식별번호(SIKey), 결과 값 반환 페이지(Return URL)를
Korea Internet & Security Agency
43
i-PIN 2.0 도입 안내서
설정하고 조회사유(InqRsn)와 거래 일련번호(OrderNo)를 설정합니다.
● [표 3-2]는 조회사유(InqRsn) 코드입니다. 나이스 아이핀을 사용하는 목적을 구분하기
위한 코드로서 전달 받은 정보를 정확하게 활용하는 데 사용합니다.
[표 3-2] 나이스 아이핀 조회사유 코드
코 드
설 명
10
회원가입
20
기존 회원 확인
30
성인 인증
40
비회원 확인
90
기타 사유
나) NiceCheckPopup.xxx
● 전달된 사용자 정보를 이용하여 나이스 아이핀 결과를 받아와 복호화를 수행한 후 그 결과
제3장
를 전달합니다. i-PIN 인증 결과 페이지로서 전달 받은 키스트링을 입력합니다. 복호화
키스트링은 규칙에 따라 특정 부분이 추출되어 복호화에 사용됩니다.
● 정상적인 나이스 아이핀이 복호화 되면 TrCd, RetCd, RetDtlCd 등과 같은 정보를 확인
하실 수 있습니다. TrCd은 한국신용정보에서 발급한 거래인증번호로 향후 자료조회시에
필요할 수 있습니다
● RetCd은 서비스 처리 결과 코드(1: 성공, 2: 실패, 3: 불가 )이고, RetDtlCd은 서비스 처리
상세 결과 코드(응답코드 설명 참조)이며, Message는 정상적인 반환이 아닌 경우에 설명
을 위한 메시지(정상적인 경우는 없음)입니다.
● PAKey는 사용자의 주민등록번호를 대체할 수 있는 13자리 i-PIN 번호이고, NiceNm은
한국신용정보에서 본인확인 시 확인한 사용자의 실명이며, BirthDay와 Sex는 각각 생년
44
제3장 i-PIN 툴킷 설치 방법
월일과 사용자의 성별을 나타냅니다.
● DupeInfo는 중복가입확인정보(DI)로서 한국신용정보로 전달한 웹사이트 식별정보와
주민등록번호 및 본인확인기관간 공유 비밀정보를 해쉬하여 생성하며 이용자를 유일하게
식별할 수 있는 64bytes 정보의 값입니다.
● COInfo1는 연계정보로서 주민등록번호 및 비밀키를 해쉬하여 생성하며 이용자를 유일
하게 식별할 수 있는 88bytes 정보의 값입니다. 이는 주민번호만을 가지고 있는 타 사업장
과의 회원 연동 목적으로 이용이 가능합니다.
● COInfo2는 예비 연계정보로서 상기 CI1값이 해킹 등에 의해 로직이 공개될 경우 기존 CI1
값을 대체하는 연계정보입니다. 마찬가지로 88bytes로 구성되어 있습니다.
● CIupdate는 CI의 갱신횟수 정보로서 현재 사용할 CI값이 어느 것인지를 가리키는 정보
입니다. 갱신횟수정보가 홀수이면 CI1을, 짝수이면 CI2를 연계정보로 사용하면 됩니다.
다) Nice.nuguya.oivs.xxx
● 웹사이트와 한국신용정보의 나이스 아이핀 서버와 송∙수신하는 사용자 정보의 암호화 및
복호화를 전담하는 파일입니다. 소스를 수정할 필요는 없습니다.
[표 3-3] 나이스 아이핀 소스코드 1
//=====▣ 회원사 ID, 사이트식별정보 설정 : 계약시에 발급된 회원사 ID를 설정하십시오. ▣
$NiceId =“”
;
$SIKey =“”
;
//=====▣ 반환 결과를 수신할 URL을 설정하십시오. (단, 페이지는 그대로 사용하십시오)
//===== 한신정 서비스에 전달되어 사용되므로 반드시 절대URL 경로를 설정하셔야 합니다.
//EX) http://귀사의도메인/NiceCheckPopup.php
$ReturnURL =“”
;
$strOrderNo = date(
“Ymd”
) . rand(100000000000,999999999999);;
//주문번호 20자리 .. 매 요청마다 중복되지 않도록 유의
Korea Internet & Security Agency
45
i-PIN 2.0 도입 안내서
[표 3-3] 나이스 아이핀 소스코드 1
// 해킹방지를 위해 요청정보 세션에 저장
session_start();
$sess_OrderNo = $strOrderNo;
session_register(
“sess_OrderNo”
);
--------------------------------------<중략>-------------------------------<FORM id=
“pageForm”name=
“pageForm”method=
“POST”action=>
“”
<INPUT type=
“hidden”id=
“NiceId”name=
“NiceId”value=
“<%= NiceId %>”
>
<INPUT type=
“hidden”id=
“SIKey”name=
“SIKey”value=
“<%= SIKey %>”
>
<INPUT type=
“hidden”id=
“PingInfo”name=
“PingInfo”value=
“<%= pingInfo %>”
>
<INPUT type=
“hidden”id=
“ReturnURL”name=
“ReturnURL”value=
“<%= ReturnURL %>”>
<!--조회사유를 설정하십시오 (‘10’
-회원가입,‘20’
-기존회원 확인,‘30’
-성인인증,‘40’
-비회원 확인,‘50’
-기타 사유 )-->
<input type=
“hidden”id=
“InqRsn”name=
“InqRsn”value=
“10”
>
<!--주문번호를 설정하십시오. (최소 14자리, 20자리미만)-->
<input type=
“hidden”id=
“OrderNo”name=
“OrderNo”value=
“<%=strOrderNo%>”
>
<INPUT name=
“Confirm”type=
“button”id=
“Confirm”value=
“나이스 아이핀 인증”style=
“width:150px;”onclick=
“javascript:goIDCheck();”
>
</form>
제3장
[표 3-4] 나이스 아이핀 소스코드 2
<?php
require_once(“nice.nuguya.oivs.php”);
//========================================================================================
//=====▣ 키스트링 80자리 세팅 ▣
//========================================================================================
$athKeyStr =“”
;
$oivsObject = new OivsObject();
$oivsObject->athKeyStr = $athKeyStr;
$strRecvData = $_POST[“SendInfo”];
$blRcv = $oivsObject->resolveClientData( $strRecvData );
// 해킹방지를 위해 세션에 저장된 값과 비교 ..
session_start();
$ssOrderNo = $_SESSION[
“sess_OrderNo”
];
if( $ssOrderNo != $oivsObject->ordNo){
echo “세션정보가
(
존재하지 않습니다.”
);
exit;
}
?>
46
제3장 i-PIN 툴킷 설치 방법
[표 3-5] 나이스 아이핀 소스코드 3
<table width=
“100%”cellpadding=
“3”cellspacing=
“1”bgcolor=
“#999900”
>
<tr><td class=
“td_left”
>회원사 아이디</td>
<td class="td_content”
><? echo $oivsObject->niceId; ?></td></tr>
<tr><td class=
“td_left”
>주문번호</td>
<td class=
“td_content”
><? echo $oivsObject->ordNo.“(
“. $ssOrderNo .”
)”
; ?></td></tr>
<tr><td class=
“td_left”
>인증번호</td>
<td class=
“td_content”
><? echo $oivsObject->trNo; ?></td></tr>
<tr><td class=
“td_left”
>응답코드</td>
<td class=
“td_content”
><? echo $oivsObject->retCd; ?></td></tr>
<tr><td class=
“td_left”
>응답상세코드</td>
<td class=
“td_content”
><? echo $oivsObject->retDtlCd; ?></td></tr>
<tr><td class=
“td_left">응답메시지</td>
<td class=
“td_content”
><? echo $oivsObject->message; ?></td></tr>
<tr><td class=
“td_left”
>아이핀번호</td>
<td class=
“td_content”
><? echo $oivsObject->paKey; ?></td></tr>
<tr><td class=
“td_left”
>한국신용정보 등록성명</td>
<td class=
“td_content”
><? echo $oivsObject->niceNm; ?></td></tr>
<tr><td class=
“td_left”
>생년월일</td>
<td class=
“td_content”
><? echo $oivsObject->birthday; ?></td></tr>
<tr><td class=
“td_left”
>성별</td>
<td class=
“td_content”
><? echo $oivsObject->sex; ?>(1: 남, 2: 여)</td></tr>
<tr><td class=
“td_left”colspan=
“2”
>중복가입확인정보(DI)</td></tr>
<tr><td class=
“td_content”colspan=
“2”
><font style=
“font-size:10px”
><? echo $oivsObject->dupeInfo; ?></font> <BR>? 아이핀번호는
동일인에게 여러 개 부여될 수 있으니 회원정보의 PK는 중복가입확인정보(DI)를 이용하여 주시기 바랍니다.</td></tr>
<tr><td class=
“td_left”
>연계정보1</td>
<td class=
“td_content”
><? echo $oivsObject->COInfo1 ?></td></tr>
<tr><td class=
“td_left”
>연계정보2</td>
<td class=
“td_content”
><? echo $oivsObject->COInfo2 ?></td></tr>
<tr><td class=
“td_left”
>갱신횟수</td>
<td class=
“td_content”
><? echo $oivsObject->CIupdate ?></td></tr>
</table>
라) Nice.nuguya.oivs.css
● 나이스 아이핀 디자인 관련 스타일 시트 파일로서, 소스를 수정할 필요는 없습니다.
Korea Internet & Security Agency
47
i-PIN 2.0 도입 안내서
라. 설치 시 주의사항
● 나이스 아이핀은 간단한 소스의 수정만으로 즉시 적용 가능한 모듈이므로, 특별한 주의
사항이 없습니다. 다만 설치나 테스트 중에 이상이 발생한다면 아래사항을 확인해 주시기
바랍니다.
● JSP 사용업체 중 인클루드 되는 클래스 파일이 존재하지 않을 수 있습니다. 그럴 경우
별도로 첨부된 lib.zip파일을 압축해제 하신 후 그 안의 파일들을 클래스 경로에 넣어주시
면 됩니다.(보통 WEB-INF/lib) 해당 파일들은 AXIS를 기반으로 한 웹서비스를 위한
라이브러리입니다.
● PHP 4.30 이전 버전일 경우 iconv 함수가 기본적으로 제공되지 않습니다. http://kr.
php.net/ iconv 사이트를 참고하여 해당 서버에 맞는 dll을 설치하시기 바랍니다.
제3장
● 나이스 아이핀 서비스는 설치하는 서버에서 한국신용정보 서버로 80포트를 이용한 통신
이 이루어집니다. 방화벽에 secure.nuguya.com(반드시 DNS서비스여야 합니다.) 80
outer 포트가 열려 있는지 확인해 주시기 바랍니다.
2. 한국신용평가정보 - 가상주민번호
가. 가상주민번호 아이핀 소개
● 한국신용평가정보에서 제공하는 i-PIN 서비스인“가상주민번호 아이핀 서비스”
는 본인
신원확인을 마친 개인에게 기존 주민등록번호와 대응되는 13자리의 숫자로 이루어진 가상
주민번호(i-PIN 번호)를 부여하여 주민등록번호 대신 사용할 수 있도록 구현한 서비스
입니다.
48
제3장 i-PIN 툴킷 설치 방법
● 가상주민번호 아이핀 사용을 등록한 개인은 본인이 설정한 식별ID와 비밀번호를 통해 한국
신용평가정보에서 인증을 수행하고 이용자 관련 i-PIN 제공정보를 웹사이트에 전달하여
주민등록번호를 사용하지 않고 인터넷 활동을 할 수 있습니다.
● i-PIN 2.0으로 업그레이드 된 가상주민번호 아이핀은 아이핀을 도입한 사이트간의 회원
정보 교류와 구분을 위해 연계정보(CI 값: Connecting Information)를 추가적으로 제공
하여, 더 편리한 회원 관리가 가능합니다.
● 가상주민번호 아이핀을 발급받기 위해서는 [① 이용 약관 및 개인정보 전달 활용 동의 →
② 실명확인 → ③ 식별 아이디, 비밀번호, 이메일 등록 → ④ 신원확인]의 순서로 진행해야
합니다.(신원확인 수단: 본인명의 휴대전화, 신용카드, 범용공인인증서, 대면 확인)
● 13자리의 숫자로 이루어진 가상주민번호 자체에는 아무런 개인정보를 포함하지 않으며,
i-PIN 인증 정보가 웹사이트에 전달될 때는 성명, 생년월일, 성별, 중복가입확인정보(DI)
(64byte), 연계정보(88byte), 내∙외국인 정보, 연령대 정보 등 이용자 관련 개인정보가
암호화되어 전달됩니다.
● 모든 i-PIN 정보의 3, 4번째 자리는 각 i-PIN을 제공하는 본인확인 기관을 식별할 수 있는
코드이며, 한국신용평가정보는 16으로 고정되어 있습니다.(예: 181632-1234567)
● 한국신용평가정보의 가상주민번호 i-PIN은 2005년 7월 상용화를 시작한 이래 i-PIN
주관기관인 방송통신위원회(구, 정통부) 홈페이지와 국내 최대의 포털사이트 네이버를
포함한 네이트, 야후 등에 i-PIN 서비스를 적용하여 운영하고 있습니다. 또한, 한국 신용
평가정보는 아이핀 의무 도입 사이트 중 가장 많은 45% 이상의 인터넷 사이트들에 실명
확인 서비스를 제공하여 그 공신력을 인정 받고 있습니다.
Korea Internet & Security Agency
49
i-PIN 2.0 도입 안내서
나. 서비스 이용 절차
1) i-PIN 팝업 호출
● 기존에 발급 받은 가상주민번호 i-PIN이 있는 경우 [그림 3-4]와 같은 팝업창에 식별ID와 비
밀번호 입력 후 바로 인증합니다. 처음 사용하는 이용자의 경우 i-PIN 신규발급을 클릭합니다.
[그림 3-4] 팝업호출 화면
[그림 3-5] 약관 및 제공 등의 화면
제3장
2) 이용약관, 개인정보의 추가 제공 및 활용 동의, 실명확인
● [그림 3-5]와 같은 이용약관 및 개인정보의 추가 제공 및 활용 동의 화면의 체크박스를
클릭하여 동의하고, 본인의 성명과 주민등록번호를 입력하여 실명확인(한국신용평가정보
실명DB 이용)을 진행합니다.
3) 개인정보 입력
● 가상주민번호 i-PIN을 이용하기 위해서는 (1) 식별ID, 비밀번호, (2) 이메일 (3) 휴대 전화
번호(선택사항)를 입력합니다.
50
제3장 i-PIN 툴킷 설치 방법
4) 신원확인
● 본인 신원확인 동의 후 신원확인수단 총 4가지(공인인증서(범용), 신용카드, 휴대전화인증,
대면확인) 중 하나를 선택합니다. 신원확인수단별 팝업 화면은 [그림 3-8]과 같습니다.
[그림 3-8] 신원확인수단별 팝업창 화면
Korea Internet & Security Agency
51
i-PIN 2.0 도입 안내서
5) i-PIN 발급 확인 및 인증요청
● 신원확인이 완료되면 [그림 3-9]와 같이 발급된 가상주민번호 확인 및 인증요청 화면이
나타납니다. [가상주민번호 인증] 클릭 시 해당업체에 이용자의 성명, 가상주민번호, 중복
가입확인정보(DI), 성별, 생년월일 등의 정보를 전달합니다.
[그림 3-9] 확인 및 인증요청 화면
제3장
다. i-PIN 툴킷 설치 방법
1) 설치 개요
● 한국신용평가정보에서 제공하는 모듈은 i-PIN 서비스 연동 시 고객정보 및 부가정보를
안전하게 송∙수신하기 위한 암호화 모듈이며, 고객사 시스템 환경에 따라 ASP, JSP,
PHP, CGI 형태로 제공됩니다.
2) 툴킷 파일 및 파라미터
● 본 안내서에서는 ASP 환경과 JSP 환경에 대해서만 설명합니다.
52
제3장 i-PIN 툴킷 설치 방법
가) ASP 환경
● IPINCipher.dll 파일을 제공하며 윈도우즈의 관리도구 → 구성요소 서비스에 COM+를
등록합니다.
[그림 3-10] 구성요소 서비스에 COM+ 등록 절차 1
● Windows2003인 경우 응용프로그램 속성의 보안 탭으로 이동하여 권한부여의“이 응용
프로그램에 대한 액세스검사 수행”
의 체크를 해제해 주셔야 합니다.
나) JSP/SERVLET 환경
● IPINEnc.jar 파일을 제공하며 웹사이트에서는 Classpath에 IPINEnc.jar 파일의 경로를
추가하면 됩니다.
Korea Internet & Security Agency
53
i-PIN 2.0 도입 안내서
[그림 3-11] 구성요소 서비스에 COM+ 등록 절차 2
제3장
3) 단계별 상세 절차
● i-PIN 연동을 위하여 CP 웹사이트에서 추가 및 수정해야 할 웹페이지는 다음과 같습니다.
가) 가상주민번호 - 아이핀 호출 페이지(기존의 본인확인 페이지를 수정하여 구성)
● 회원가입 페이지와 같이 i-PIN 사용을 위해 가상주민번호-아이핀 페이지를 호출하기
위한 CP 메인 페이지입니다. [그림 3-12]와 같이 구성하실 수 있습니다.
● 인증받기 버튼(링크) 이미지는 CP 자체에서 제작하시거나 [그림 3-12]를 사용하실 수
있습니다. 해당 이미지는에서 다운 받을 수 있습니다. 가상주민번호-아이핀 페이지 URL
은 [표 3-6]과 같은 방법으로 호출하시면 됩니다.
54
제3장 i-PIN 툴킷 설치 방법
● 호출 시 인증결과를 수신할 Return 페이지의 URL 및 CP 구분코드를 지정해 주기 위하여
다음과 같이 해당정보를 암호화한 후 전달합니다.(암∙복호화 모듈은 한국신용평가정보
에서 별도 제공)
[그림 3-12] CP(네이버) 메인페이지 예시 및 인증받기 이미지
Korea Internet & Security Agency
55
i-PIN 2.0 도입 안내서
[표 3-6] 가상주민번호 아이핀 팝업창 호출 페이지
<script language=
“JavaScript”
>
window.name =
“Parent_window”
;
function fnPopup(){
window.open(
“,‘popup’
‘width=448,
,
height=500’
);
document.form_ipin.target =“popup”
;
document.form_ipin.action =“https://cert.vno.co.kr/ipin.cb”
;
document.form_ipin.submit();
}
</SCRIPT>
<ahref=
“JavaScript:fnPopup();”
>
<img src=http://image.creditbank.co.kr/static/img/vno/new_img/bt_17.gif
width=218 height=40 border=0> </a>
① JSP 샘플(Java Platform 공통, 암∙복호화 모듈은 JAVA Class로 제공)
[표 3-7] JSP 샘플
제3장
<%@ page language=
“java”import=
“Kisinfo.Check.* ”
%>
<%
IPINClient pIPIN
= new IPINClient();
String sIDPCODE
=“ANNNN”
;
String sIDPPASSWORD
=“XXXXXXXX”
;
String sCPREQUESTNUM
// CP 구분코드(한신평부여)
// CP 비밀번호(한신평부여)
= pIPIN. getRequestNO(sIDPCODE);
// CP 요청번호(CP에서 임의로 생성한 값으로 대체 가능)
String sRETURNURL
=“3.2 아이핀 인증결과 수신 페이지 URL”
;
// 인증 완료 시 인증 결과를 수신할 CP Return Page URL
String enc_data
=“”
;
session.setAttribute(
“REQUEST_NUM”
, sCPREQUESTNUM);
if( pIPIN.fnRequest(sIDPCODE, sIDPPASSWORD, sCPREQUESTNUM, sRETURNURL) == 0) {
enc_data = pIPIN.getCipherData();
}
%>
<form name=
“form_ipin”method=
“post”
>
<input type=
“hidden”name=
“m”value=
“pubmain”
>
<input type=
“hidden”name=
“enc_data”value=
“<%=enc_data%>”
>
<input type=
“hidden”name=
“param_r1”value=
“”
>
<input type=
“hidden”name=
“param_r2”value=
“”
>
<input type=
“hidden”name=
“param_r3”value=
“”
>
</form>
56
제3장 i-PIN 툴킷 설치 방법
② ASP 샘플(암∙복호화 모듈은 COM+ Component로 제공)
[표 3-8] ASP 샘플
<%
Dim IPIN_DLL, clsIPIN
Dim iReturnCode, sRequestData
Dim sIDPCODE, sIDPPWD, sCPREQUESTNUM, sRETURNURL
sIDPCODE
=“ANNN”
sIDPPWD
=“XXXXXXXX”
;
sRETURNURL
' CP 구분코드(한신평 부여)
' CP 비밀번호(한신평 부여)
=“3.2 아이핀 인증결과 수신 페이지 URL”
;
' 인증 완료 시 인증결과를 수신할 CP Return Page URL
sCPREQUESTNUM =“”
IPIN_DLL
' CP 요청 번호(CP에서 임의로 생성한 값)
=“IPINClient.Kisinfo”
SET clsIPIN = SERVER.CREATEOBJECT(IPIN_DLL)
clsIPIN.fnRequestSEQ(sIDPCODE)
sCPREQUESTNUM = clsIPIN.bstrRandomRequestSEQ
session(
“REQUEST_NUM") = sCPREQUESTNUM
' CP 요청 번호를 세션에 저장
iReturnCode = clsIPIN.fnRequest(sIDPCODE, sIDPPWD, sCPREQUESTNUM, sRETURNURL)
IF iReturnCode = 0 THEN
sRequestData = clsIPIN. bstrRequestCipherData
' 요청정보를 암호화한 값
ELSEIF (iReturnCode = -1) THEN
returnMsg =“암/복호화 시스템 오류”
enc_data =“”
ELSEIF (iReturnCode = -2) THEN
returnMsg =“암호화 처리 오류”
enc_data =“”
ELSEIF (iReturnCode = -3) THEN
returnMsg =“암호화 데이터 오류”
enc_data =“”
ELSEIF (iReturnCode = -9) THEN
returnMsg =“입력값 오류”
enc_data =“”
END IF
SET clsIPIN = NOTHING
%>
<form name=
“form_ipin”method=
“post”
>
<input type=
“hidden”name=
“m" value=
“pubmain”
>
<input type=
“hidden”name=
“enc_data”value=
“<%= sRequestData %>”
>
<input type=
“hidden”name=
“param_r1”value=
“”
>
<input type=
“hidden”name=
“param_r2”value=
“”
>
<input type=
“hidden”name=
“param_r3”value=
“”
>
</form>
Korea Internet & Security Agency
57
i-PIN 2.0 도입 안내서
나) 가상주민번호 - 아이핀 인증결과 수신 페이지(신규 페이지 추가)
● i-PIN 인증이 성공하여 고객이 [그림 3-12]의 가상주민번호 인증버튼을 클릭하면 인증
결과 및 부가정보를 지정된 CP Result 페이지로 전달합니다. 암호화된 인증결과 데이터
는 enc_data라는 이름의 파라미터로 전달됩니다.
① JSP 샘플
[표 3-9] JSP 샘플
<%
String strAuthResult = request.getParameter(
“enc_data”
); // 인증결과 및 부가정보를 암호화한 데이터
String strReservedParam1 = request.getParameter(
“param_r1”
); // CP 추가 전송 데이터
String strReservedParam2 = request.getParameter(
“param_r2”
);
String strReservedParam3 = request.getParameter(
“param_r3”
);
%>
- 인증결과 및 부가정보는 암호화된 형태로 전달되며, 해당 데이터를 인증 결과를
제3장
처리할 CP의 메인 화면으로 전달한 후 인증 팝업창을 닫는 기능을 추가합니다.
<html>
<head>
<script language=
“javascript”
>
function fnLoad() {
parent.opener.parent.document.vnoform.enc_data.value =“<%=strAuthResult%>”
;
parent.opener.parent.document.vnoform.param_r1.value =“<%= strReservedParam1%>”
;
parent.opener.parent.document.vnoform.param_r2.value =“<%= strReservedParam2%>”
;
parent.opener.parent.document.vnoform.param_r3.value =“<%= strReservedParam3%>”
;
parent.opener.parent.document.vnoform.target =“Parent_window”
;
parent.opener.parent.document.vnoform.action =“인증 결과를 처리할 페이지 URL”
;
parent.opener.parent.document.vnoform.submit();
self.close();
}
</script>
</head>
<body onLoad=
“javascript:fnLoad();”
>
</body>
</html>
58
제3장 i-PIN 툴킷 설치 방법
다) 가상주민번호 - 아이핀 인증결과 처리 페이지(기존 본인확인 결과 페이지를 수정하여 구성)
● 암호화되어 전달된 인증결과 및 부가정보를 복호화 한 후 각각의 정보를 획득한다.
[그림 3-13] 가상주민번호 아이핀 인증결과 처리(회원가입) 화면
Korea Internet & Security Agency
59
i-PIN 2.0 도입 안내서
① JSP 샘플
[표 3-10] JSP 샘플
<%@ page language=
“java”import=
“ Kisinfo.Check.*”
%>
“”
<%
String strAuthResult = request.getParameter(
“enc_data”
);
// 암호화된 인증결과 및 부가정보
int
iReturn
String strVNO
String strUserName
String strDupInfo
= 0;
// 인증결과
=“”
;
=“”
;
=“”
;
String strAgeCode
=“”
;
String strGenderCode =“”
;
String strBirthDate
=“”
;
String strNationalInfo =“”
;
String strAuthInfo
=“”
;
String strCoInfo1
=“”
;
String strCoInfo2
=“”
;
String strCIUpdate
=“”
;
String strCPRequestNO =“”
;
String strCipherDateTime =“”
;
String strCipherIPAddress =“”
;
// 가상주민번호
// 인증 고객 실명
// 중복가입 확인 정보
// 연령코드
// 성별코드
// 생년월일
// 국적정보
// 인증정보
// 연계정보 확인정보
// 연계정보 확인정보(갱신용)
// 연계정보 갱신정보
// CP 요청번호
// 암호화 데이터 생성 시간
// 암호화 데이터 생성 IP 주소
String sIDPCODE
=“ANNNN”
;
// CP 구분코드(한신평부여)
String sIDPPASSWORD =“XXXXXXXX”
; // CP 비밀번호(한신평부여)
제3장
strCPRequestNO
= String(session.getAttribute(
“REQUEST_NUM”
));
IPINClient pIPIN = new IPINClient();
iReturn = pIPIN.fnResponse(sIDPCODE, sIDPPASSWORD, enc_data, strCPRequestNO);
// 인증결과 및 부가정보 복호화
if( iReturn == 1 ) {
// 인증성공
strVNO
strUserName
strDupInfo
= pIPIN.getVNumber();
= pIPIN.getName();
= pIPIN.getDupInfo();
strAgeCode
strGenderCode
strBirthDate
strNationalInfo
strAuthInfo
strCoInfo1
strCoInfo2
strCIUpdate
strCPRequestNO
= pIPIN.getAge();
= pIPIN.getGender();
= pIPIN.getBirthDate();
= pIPIN.getNationalInfo();
= pIPIN.getAuthInfo();
= pIPIN.getCoInfo1();
= pIPIN.getCoInfo2();
= pIPIN.getCIUpdate();
= pIPIN.getCPRequestNO();
strCipherDateTime = pIPIN. getCipherDateTime();
strCipherIPAddress = pIPIN. getCipherIPAddress();
} else {
// 인증 결과 데이터 오류 - API Specification 참조
}
%>
60
제3장 i-PIN 툴킷 설치 방법
② ASP 샘플
[표 3-11] ASP 샘플
<%
DIM IPIN_DLL, clsIPIN
DIM iReturnCode, sResponseData
DIM sIDPCODE, sIDPPWD, sCPREQUESTNUM, sRETURNURL
DIM sVNumber, sName, sDupInfo, sAgeCode, sGenderCode, sBirthDate, sNationalInfo
DIM sAuthInfo, sCoInfo1, sCoInfo2, sCIUpdate
sIDPCODE
=“ANNN”
' CP 구분코드(한신평 부여)
sIDPPWD
=“XXXXXXXX”
;
' CP 비밀번호(한신평 부여)
sRETURNURL
=“3.2 아이핀 인증결과 수신 페이지 URL”
;
' 인증 완료 시 인증결과를 수신할 CP Return Page URL
sCPREQUESTNUM
=“”
' CP 요청 번호(세션에 저장된 값)
sResponseData
= REQUEST(
“enc_data”
)
IPIN_DLL
=“IPINClient.Kisinfo”
SET clsIPIN
= SERVER.CREATEOBJECT(IPIN_DLL)
sCPREQUESTNUM = session(
“REQUEST_NUM”
)
iReturnCode = clsIPIN.fnResponseExt(sIDPCODE, sIDPPWD, sResponseData, sCPREQUESTNUM)
IF (iReturnCode = 1 ) THEN
sVNumber
sName
sDupInfo
' 인증성공
= clsIPIN.bstrVNumber
' 가상주민번호
= clsIPIN.bstrName
= clsIPIN.bstrDupInfo
sAgeCode
' 이름
' 중복가입 확인 값(64Byte 고유 값)
= clsIPIN.bstrAgeCode
sGenderCode
' 연령대 코드
= clsIPIN.bstrGenderCode
' 성별 코드
sBirthDate
= clsIPIN.bstrBirthDate
' 생년월일(YYYYMMDD)
sNationalInfo
= clsIPIN.bstrNationalInfo
' 내외국인정보
sAuthInfo
= clsIPIN.bstrAuthInfo
' 인증정보
sCoInfo1
= clsIPIN.bstrCoInfo1
' 연계정보 확인정보
sCoInfo2
= clsIPIN.bstrCoInfo2
' 연계정보 확인정보(갱신용)
sCIUpdate
= clsIPIN.bstrCIUpdate
' 연계정보 갱신정보
ELSE
'인증 결과 데이터 오류 - API Specification 참조
END IF
SET clsIPIN = NOTHING
%>
Korea Internet & Security Agency
61
i-PIN 2.0 도입 안내서
라. 설치 시 주의 사항
● CP 요청번호는 CP에서 임의로 생성한 값으로서 최종 인증 완료 시 요청한 값 그대로 전달
해드리며, 해당 요청에 대한 유효한 결과임을 판단하는데 사용하실 수 있습니다.
● 획득한 인증 부가정보 중 이름을 제외한 정보는 노출을 막기 위해 SSL을 통해 다음 처리
페이지로 전달하거나, 세션이나 쿠키 등 노출되지 않은 저장공간에 보관해야 합니다.
● 세션이나 쿠키를 사용하지 않는 경우 가상주민번호, 중복가입 확인 값 등의 정보를 TEXT,
HIDDEN Value 등으로 남겨 Submit 하지 마시고, 암호화 된_응답_데이터를 Submit
하여 회원가입 처리 페이지에서 다시 복호화 한 후 사용하시기 바랍니다.(보안 권고 사항)
Method Name
제3장
Parameters
Parameter 내용
Returns
Desc.
응답 데이터 복호화
1 : 인증성공
-1 : 복호화 시스템 오류
fnResponse
String argSiteCode
CP 구분코드
String argPassWord
CP 비밀번호
String argCipherData
응답 데이터
-4 : 복호화 처리 오류
int
-5 : HASH 검증 불일치
-6 : 복호화 데이터 오류
-7 : INV CIPHER VERSION
-9 : 입력 정보 오류
-12: CP 비밀번호 불일치
응답 데이터 복호화 및
CP 요청번호 검증
1 : 인증성공
fnResponse
String argSiteCode
CP 구분코드
String argPassWord
CP 비밀번호
String argCipherData
응답 데이터
String argCPRequestNO
CP 요청번호
-1 : 복호화 시스템 오류
-4 : 복호화 처리 오류
int
-5 : HASH 검증 불일치
-6 : 복호화 데이터 오류
-7 : INV CIPHER VERSION
-9 : 입력 정보 오류
-12: CP 비밀번호 불일치
-13: CP 요청번호 불일치
62
제3장 i-PIN 툴킷 설치 방법
3. 서울신용평가정보 - Siren24 아이핀
가. Siren24 아이핀 소개
● 인터넷 웹사이트 이용 시 Siren24 아이핀을 발급 받은 이용자는 등록한 아이핀ID와 PW
인증을 통해 개인정보 유출방지 및 명의도용에 대한 피해를 사전에 예방할 수 있는
Siren24-아이핀 서비스를 제공합니다.
● Siren24-아이핀을 발급 받기 위해서는 공인인증서, 신용카드, 휴대폰 등의 신원확인수단
을 보유하고 있어야 하고, 신원확인수단을 보유하고 있지 않은 경우에는 Siren24-아이핀
등록대행기관(서울신용평가정보의 지점)을 방문하여 대면확인을 수행한 후에 Siren24아이핀을 발급 받을 수 있습니다.
● 이용자가 만 14세 미만의 경우에는 신원보증인의 신원확인을 거쳐 아이핀을 발급받을 수
있습니다.
나. 아이핀ID/PW와 Siren24 아이핀
1) 아이핀ID/PW
● 신원확인수단 또는 대면확인을 통해 본인확인을 완료한 이용자에게 성명/주민등록번호를
대신하여 사용할 수 있도록 Siren24-아이핀을 발급하고, 발급 시 등록한 아이핀ID/PW
인증을 통해 웹사이트의 회원가입, 성인인증 등에 이용합니다.
● Siren24-아이핀을 서비스하는 본인확인기관은 인터넷 웹사이트 회원가입, 성인인증 시
웹사이트에는 주민등록번호 대신에 성명, i-PIN(13자리), 생년월일, 중복가입확인정보
(DI) 등을 웹사이트에 제공합니다.
Korea Internet & Security Agency
63
i-PIN 2.0 도입 안내서
● 노출된 주민등록번호는 변경하기 어려우나, Siren24의 i-PIN 13자리 번호는 노출이 의심
되면 언제든지 폐지 후 재발급이 가능하여 노출에 따른 위험이 주민등록번호에 비하여
낮습니다.
2) Siren24-아이핀
● Siren24-아이핀을 서비스하는 본인확인기관은 이용자가 웹사이트 회원가입, 성인인증
시에 본인확인정보로써 아이핀ID/PW 등록 시 생성되는 13자리 난수 값을 웹사이트에
제공합니다.
● Siren24-아이핀 서비스를 제공하는 서울신용평가정보가 인터넷 웹사이트에 제공하는
이용자의 개인식별번호는 [그림 3-14]와 같이 3~4번째 위치에 13을 넣어 i-PIN 발급
기관을 표시합니다.
제3장
[그림 3-14] Siren24 아이핀 개인식별번호 체계
다. Siren24 아이핀 서비스 절차도
1) 서비스 개념도
● [그림 3-16]은 Siren24 아이핀의 서비스 개념도로서 인터넷 이용자가 가입하고자 하는
웹사이트 또는 성인인증을 받고자 하는 웹사이트와 Siren24 아이핀을 서비스하는 본인
확인기관간의 발급 및 이용절차를 표현한 것입니다.
64
제3장 i-PIN 툴킷 설치 방법
[그림 3-15] Siren24 아이핀 서비스 개념도
2) 이용자 입력사항
● i-PIN 발급 시 이용자가 입력하는 정보는 필수입력사항과 선택입력사항으로 구분되며,
필수입력사항은 성명, 주민등록번호, 이메일주소, 아이핀ID/PW이고, 아래의 3가지 신원
확인수단 중에서 하나를 선택하여 온라인 신원확인을 진행합니다.
① 공인인증서 : 공인인증서 및 공인인증서 비밀번호
② 신용 카드 : 신용카드 번호 16자리, 유효기간, 비밀번호 앞 2자리
③ 휴 대 폰 : 휴대폰 번호, 이동통신사, SMS 승인번호 6자리
● 서울신용평가정보는 신원확인수단으로 휴대폰 번호를 입력하는 것과 별도로 선택입력
사항으로 휴대폰번호를 입력 받아 i-PIN 발급 또는 폐지 시 SMS로 안내합니다.
● Siren24 아이핀 이용자의 인증은 발급 시 등록한 아이핀ID/PW로 확인하고, 이용자 관련
i-PIN 제공정보를 해당 웹사이트로 전송하기 전에 개인정보 제공에 대한 동의를 위해
확인버튼을 클릭하게 합니다.
Korea Internet & Security Agency
65
i-PIN 2.0 도입 안내서
3) 웹사이트 제공정보
● Siren24 아이핀 이용자가 아이핀ID/PW 인증 후 이용자의 정보를 웹사이트에 제공하는
것에 대해 동의하게 되면, Siren24-아이핀 서비스를 제공하는 서울신용평가정보는 이용
자 관련 i-PIN 제공정보(성명, 본인확인정보(i-PIN), 중복가입확인정보(DI), 결과값(인증
성공/실패), 생년월일, 성별, 연령대, 내∙외국인 구분 정보)를 웹사이트에 제공합니다.
4) Siren24-아이핀 발급 절차
● Siren24-아이핀 발급 방법에는 가) 본인발급, 나) 신원보증인을 통한 발급, 다) 만 14세
미만 미성년자의 발급 등이 있습니다.
가) 본인발급
● 이용자 명의의 공인인증서, 신용카드, 휴대폰 등의 신원확인수단을 보유하고 있는 경우에
가능하며, [① 실명확인 → ② 아이핀ID/PW 설정 → ③ 본인발급 선택 → ④ 신원확인수단
제3장
선택 → ⑤ 신원확인수단을 통한 본인확인 → ⑥ i-PIN 발급 완료]의 순서로 진행됩니다.
나) 만 14세 미만 미성년자의 발급
● 이용자가 만 14세 미만인 경우에는 신원보증인을 통한 발급 절차를 따라야 하며, [① 실명
확인 → ② 아이핀ID/PW 설정 → ③ 신원보증인 동의 및 실명확인 → ④ 신원보증인의
신원확인수단 선택 → ⑤ 신원확인수단을 통한 신원보증인 확인 → ⑥ i-PIN 발급 완료]
의 순서로 진행됩니다.
라. Siren24 - 서비스 적용준비
1) 서비스 등록
가) BIZSIREN 등록
66
제3장 i-PIN 툴킷 설치 방법
● Siren24-아이핀 서비스를 이용하기 위해서는 웹사이트에서 서비스하는 도메인을
BIZSIREN(관리자 접속 웹사이트)에 등록/승인 및 요청URL을 등록해야 합니다.
2) BIZSIREN 이용
가) 이용 전 확인사항
● i-PIN 도입 웹사이트의 네트워크(LAN)에서 내부방화벽을 사용하는지 확인합니다. 만약
방화벽을 운영하는 네트워크 환경이라면 [표 3-13]의 IP주소와 Port를 허용하도록 웹사이
트 방화벽 담당자에게 등록 요청합니다.
[표 3-13] 방화벽에 등록할 IP주소 및 Port
구 분
설 명
IP주소
210.207.91.248
1443
Port
1448
6307
나) 웹사이트 ID와 비밀번호 확인
● 서울신용평가정보에서 발급하는 웹사이트 ID와 비밀번호는 BIZSIREN 접속시에 사용
되는 정보로서 업무담당자만 관리해야 합니다.
다) BIZSIREN 접속 및 로그인
● BIZSIREN URL은 http://www.bizsiren.com이며, 웹브라우저를 이용하여 웹사이트 ID
와 비밀번호를 이용하여 접속합니다.
Korea Internet & Security Agency
67
i-PIN 2.0 도입 안내서
라) 사설인증서 로그인
● BIZSIREN 웹사이트에 접속한 상태에서 웹사이트 정보수정을 위해서 사설인증서로 로그
인을 추가로 진행합니다. 사설인증서는 1대의 PC에서만 설치∙사용이 가능하며, 사설
인증서 비밀번호는 업무담당자만 관리하여 주시기 바랍니다.
● 사설인증서가 없는 경우는 [인증서 발급] 메뉴를 통해 사설인증서를 발급 받습니다(최초
발급). 또한, 인증서 비밀번호 분실, PC포맷 및 유효기간이 만료된 경우에는 [인증서 폐기]
메뉴를 통해 인증서를 폐기한 후 [인증서 발급] 메뉴를 통해 새로운 사설인증서를 발급
받습니다.
마) 사설인증서 로그인 후 좌측의 [Siren24-아이핀] 메뉴를 선택
을 참고하여 도메인 및 요청URL을 등록한다.
● 아래의“3) 도메인 등록”
제3장
3) 도메인 등록
가) 도메인 등록 신청
● BIZSIREN [Siren24-아이핀] 메뉴에서 [도메인 관리] 메뉴를 선택합니다.[도메인 등록
신청] 버튼을 클릭한 뒤, 입력사항을 입력합니다.
나) 도메인 등록 확인
● 등록신청한 도메인은 [도메인 관리] 화면하단의 [승인 요청 도메인]에 표시됩니다.
다) 승인 완료
● 서울신용평가정보의 도메인승인 담당자는 웹사이트 담당자가 등록한 도메인을 확인한 후
승인결과를 웹사이트 담당자에게 메일로 발송하여 알려드립니다.
68
제3장 i-PIN 툴킷 설치 방법
4) 요청URL 등록
가) 요청URL 등록
● BIZSIREN [Siren24 아이핀] 메뉴에서 [도메인 관리] 메뉴를 선택합니다. [도메인 관리]
화면 내의 [승인 도메인] 리스트에서 해당 도메인 항목의 [요청경로 추가/삭제] 메뉴를
선택합니다.
● 팝업창이 뜨면“경로명”항목에 Siren24-아이핀 서비스 팝업창을 요청하는 페이지의
URL을 입력하고“이용목적”
을 선택한 후“경로추가”버튼을 눌러 등록을 완료합니다.
5) 암호화 모듈 설치
● 암호화 모듈은“Siren24-아이핀”서비스를 통해 이용자의 정보를 암호화하여 회원사에
전송합니다. 따라서 서울신용평가정보에서 제공하는 암호화 모듈을 설치하여 결과수신
페이지에 적용해야 암호화된 이용자의 정보를 복호화 하여 관리할 수 있습니다. 자세한
내용은 서울신용평가정보와 서비스 이용계약을 체결 시 제공하는
“Siren24-아이핀 암호
화 적용 안내서”
를 참고하시면 됩니다.
마. 서비스 적용 작업
1) Siren24 아이핀 요청 페이지 개발
가) 요청 페이지 샘플
● [표 3-14]는 Siren24-아이핀 서비스 요청페이지의 샘플 소스 코드입니다.
나) 연동방법
Korea Internet & Security Agency
69
i-PIN 2.0 도입 안내서
[표 3-14] 요청페이지 샘플 소스코드
<html>
<head>
<title> Siren24-아이핀서비스 요청 Sample Page </title>
<script language=javascript>
var CBA_window;
function openCBAWindow(){
// Siren24-아이핀서비스 팝업창 호출
CBA_window = window.open(
“,‘IPINWindow’
,‘width=450, height=500, resizable=0,
scrollbars=no, status=0, titlebar=0, toolbar=0’);
// Siren24-아이핀서비스 팝업 URL
document.reqCBAForm.action =‘https://ipin.siren24.com/i-PIN/jsp/ipin_j10.jsp’
document.reqCBAForm.target =‘IPINWindow’
}
</script>
</head>
<body>
<form name=
“reqCBAForm”method=
“post”action=
“”
>
<input type=
“hidden”name=
“id”
value =“회원사 아이디”
>
<input type=
“hidden”name=
“srvNo” value =“서비스번호”
>
제3장
<input type=
“hidden”name=
“reqNum” value =“요청번호”
>
<input type=
“hidden”name=
“retUrl” value =“http://.../팝업창 URL”
>
<input type=submit value=
“아이핀서비스요청”onclick=
“javascript:openCBAWindow();”
>
</form>
</form>
</body>
● Siren24-아이핀 서비스 요청URL은“http://ipin.siren24.com/i-PIN/jsp/ipin_j10.jsp”
입니다.
● 요청방식은 POST 방식을 이용하여 요청정보를 전송하며, 호출되는 화면은 (width=450,
height=500, scrollabars=no, status=0, titlebar=0, toolbar=0)으로 설정됩니다.
※ 팝업창의 윈도우명은 반드시“IPINWindow”
로 고정해야 합니다.
다) 파라미터 설명
● 파라미터에서 사용하는 이름은 대소문자를 구분하므로 정확하게 입력 및 사용해야 합니
다. [표 3-15]는 Siren24-아이핀에서 사용하는 요청페이지 파라미터입니다.
70
제3장 i-PIN 툴킷 설치 방법
[표 3-15] 요청 페이지 파라미터 속성
파라미터
설 명
최대길이
필 수
id
회원사ID
8
Y
reqNum
요청번호
30
Y
retUrl
팝업창의 URL
-
Y
srvNo
서비스번호
6
Y
● id는 서울신용평가정보에서 웹사이트에 발급한 회원사ID이고, reqNum은 결과수신 시
인증수단으로 사용되는 Unique한 값으로 매번 생성하여 결과수신 페이지에서 일치여부
를 확인하는 데 사용하는 요청번호입니다.
● 요청번호는 아래의 절차에 따라 활용해야 합니다.
① Siren24 아이핀 서비스 팝업창을 요청하기 직전 Unique한 값을 생성합니다.
② 생성된 요청번호를 결과수신 페이지에서 검증할 수 있도록 임시 저장합니다.(DB세션, 쿠키 등을 이용)
③ Siren24 아이핀 서비스 팝업창 요청 시 요청번호를 함께 전송합니다.
④ Siren24 아이핀 이용자의 식별ID/PW 인증을 진행합니다.
⑤ 식별ID/PW 인증결과를 수신하여 복호화 합니다.
⑥ 인증결과에 포함된 요청번호를 요청 이전에 생성한 값과 동일한 값을 갖고 있는지를 검사합니다.
만약 같은 값이면 올바른 값이고, 불일치하는 경우는 비정상적인 접근으로 판단하여 오류 처리하시
면 됩니다.
● retUrl은 팝업창의 URL로서“http://”
를 포함한 전체 URL을 입력합니다.
※ 예: http://www.siren24.com/ipin/ipin_sample_popup.asp
● srvNo는 각각의 요청페이지마다 부여되는 URL 일련번호로서, 일련번호를 확인하는
방법은 아래와 같습니다.
① BIZSIREN 접속 및 로그인
Korea Internet & Security Agency
71
i-PIN 2.0 도입 안내서
② [Siren24 아이핀] → [도메인 관리] → [요청경로 추가/삭제] 메뉴 선택
③ 팝업창의 URL 리스트에서 해당 요청URL의 서비스번호를 확인합니다.
● Siren24 아이핀 팝업창 요청 시 기본 파라미터 이외의 값을 되돌려 받아야 할 경우 URL
QueryString 이용 방식과 추가 파라미터 사전등록 방식 중 한 가지를 선택하여 처리하시
면 됩니다.
● URL QueryString 이용 방식은 결과수신URL 뒤에 QueryString을 붙여서 전송합니다.
예를 들면, retUrl(팝업창의 URL)이“http://www.siren24.com/ipin/ipin_sample_
popup.asp”
이고 추가 파라미터가 addparam1, addparam2 인 경우에 아래와 같이 처리
하시면 됩니다.
<input type=
“hidden”name=
“retUrl”
value=“http://www.siren24.com/ipin/ipin_sample_popup.asp?addparam1=값1
제3장
&addparam2=값2“>
● 추가 파라미터 사전등록(POST) 방식은 서비스 적용 전에 서울신용평가정보 도메인 관리
담당자에게 추가 파라미터 사용등록을 요청하여 POST 방식으로 추가 파라미터를 전송
합니다. 예를 들면, 추가 파라미터가 addparam1, addparam2인 경우 아래와 같이 처리
하시면 됩니다.
<form name=
“reqCBAForm”method=
“post”action=
“”
>
<input type=
“hidden”name=
“id”
value =“회원사 아이디”
>
<input type=
“hidden”name=
“srvNo” value =“서비스번호”
>
<input type=
“hidden”name=
“reqNum” value =“요청번호”
>
<input type=
“hidden”name=
“retUrl”value = "팝업창의 URL”
>
<input type=
“hidden”name=
“addparam1” value=
“값1”
> <!?추가 파라미터 -->
<input type=
“hidden”name=
“addparam2” value=
“값2”
> <!?추가 파라미터 -->
<input type=submit value=
“실명확인”onclick=
“javascript:openCBAWindow();”>
</form>
72
제3장 i-PIN 툴킷 설치 방법
2) 팝업창 페이지 수정
● 결과수신 페이지의 URL을 호출하도록 아래와 같이 수정합니다.
<script language=
“JavaScript”
>
function end() {
window.opener.location.href =
‘결과 수신 페이지의 URL’+‘<%=param%>’
;
self.close();
}
</script>
3) 결과수신 페이지 구성
● [표 3-18]은 결과수신 페이지의 파라미터 속성에 대한 설명입니다.
[표 3-18] 결과수신 페이지 파라미터 속성
파라미터
설 명
reqNum
요청번호
vDiscrNo
가상식별번호
name
성명
result
인증결과
msg
위/변조 검증을 위한 메시지
discrHash
중복가입확인정보 (DI)
age
연령대 구분
sex
성별
birth
생년월일
ip
접속IP 주소
비 고
최대길이
필수
- 식별검증 요청시마다 유일하게 생성
- 영문 (대소문자 구분), 숫자
30
Y
- 주민등록번호와 매칭되는 SCI에서 생성한 13자리
번호
- 성공 (가상식별번호 13자리)
- 실패 (FF13FFFFFFFFF)
13
Y
- 성공 (입력받은 성명), 실패 (NULL)
20
Y
- 성공 (1)
1
Y
- 전송된 정보의 위/변조 여부를 검증하는 메시지
-
Y
- 주민등록번호에 대한 Hash 값
(주민등록번호로 복호화 불가능)
64
Y
1
N
M: 남성, F: 여성
1
N
YYYYMMDD (예: 19800925)
8
N
최대 15
N
0~8세
12~13세
15~17세
19세
: 1,
: 3,
: 5,
: 7,
9~11세 : 2,
14세
: 4,
18세
: 6,
20세
:8
- IP정보 있을 경우 (xxx.xxx.xxx.xxx)
- IP정보 없을 경우 (NULL)
Korea Internet & Security Agency
73
i-PIN 2.0 도입 안내서
가) 결과수신 정보 복호화
● Siren24 아이핀 이용자의 식별ID/PW 인증 이후에 웹사이트에 전송되는 결과값은 암호
화된 값으로, 서울신용평가정보와 i-PIN 서비스 이용 계약을 체결 시 제공하는“서울
신용평가정보 가상 식별 검증 암호화 적용 안내서”
를 참고하여 복호화한 후 결과를 확인
합니다.
나) 위조/변조 여부 검증
● 전송받은 msg 값과 서울신용평가정보 암호화 모듈에서 제공하는 메소드를 이용하여 위조
/변조 여부를 검증한 후 정상일 경우만 제공된 정보를 이용합니다.
다) 결과수신 인증
● 요청 시 넘긴 reqNum(요청번호)과 결과에 포함된 reqNum(요청번호)의 일치 여부를
확인하여 정상인 경우 정상적인 회원가입 페이지 등으로 진행하여 회원가입 절차를 진행
제3장
하고, 오류인 경우에는 오류 메시지를 이용자에게 설명하는 페이지로 이동합니다.
4. 한국정보인증 - SG 아이핀
가. SG 아이핀 소개
● SG 아이핀은 국가지정 주요정보통신기반시설을 갖춘 공인인증서기관 한국정보인증에서
운영하는 서비스로 모든 시설과 운영은 정보통신기반보호법과 방송통신위원회고시
(제2008-11호)를 충족하여 이용자의 개인정보를 안전하게 관리합니다.
● SG 아이핀 발급은 이용자의 실명확인을 거친 후 4가지 신원확인수단인 공인인증서,
신용카드, 휴대폰, 대면확인 증 한가지 수단을 선택하여 안전하게 아이핀을 발급받을 수
74
제3장 i-PIN 툴킷 설치 방법
있습니다.
● SG 아이핀을 발급 받으신 이용자는 아이핀이 도입된 웹사이트에서 성명과 주민번호를
입력하는 대신 아이핀 발급 시 설정한 식별ID/비밀번호만으로 웹사이트에서 회원가입 및
성인인증 등 본인확인수단으로 이용하실 수 있습니다.
● 본인확인기관인 한국정보인증은 이용자가 웹사이트에서 본인확인수단으로 아이핀 서비스
를 이용 시 해당 웹사이트에 주민번호를 제외한 성명, 아이핀번호 13자리, 생년월일, 성별,
중복가입확인정보(DI) 등을 제공합니다.
● SG 아이핀을 서비스하는 한국정보인증은 정보보호관리체계인증(인증번호 ISMS 04004) 기업이며 모든 아이핀 서비스에 이용중인 PKI기반 보안인증 솔루션 등의 암∙복호
화 원천 기술력을 보유하여 신뢰된 서비스를 제공해 드립니다.
나. SG 아이핀 서비스 절차
1) SG 아이핀 신청을 위한 절차
● SG 아이핀 서비스를 이용하기 위해서는 다음 그림과 같은 절차를 통해 회원가입 및 서비
스 신청을 합니다.
가) 사이트 접속
● 한국정보인증 SG 아이핀 서비스 웹사이트에 접속을 합니다.(http://www.sgipin. com/)
Korea Internet & Security Agency
75
i-PIN 2.0 도입 안내서
[그림 3-17] SG 아이핀 서비스 신청 흐름도
나) 회원가입
● 서비스 신청하기 버튼을 클릭한 후 회원가입을 신청합니다. 회원가입에 필요한 정보는
제3장
사업자의 정보 이 외에 본인확인정보 및 중복가입 정보 등을 전달 받을 사이트의 전체
URL명 등이 필요합니다. 각 정보들이 어떻게 전달되고 사용되는지는 툴킷 설치 방법에
자세하게 기술되어 있습니다.
다) 매뉴얼 전달 및 기술지원
● 이 후 한국정보인증에서 서비스 적용에 필요한 매뉴얼을 제공해 드리고 유선 또는 오프라
인으로 기술지원을 해 드립니다.
라) 기업 관리자모드를 통한 지원
● 한국정보인증 SG 아이핀을 도입한 웹사이트 사업자에게는 관리자모드를 제공해 드립
니다. 해당 웹사이트 사업자는 관리자모드를 통해 아이핀 제도 관련 공지, 기간별 아이핀
인증 현황, 구분자별 통계현황, 온라인 담당자 문의 등을 통해 편리하게 아이핀 서비스를
관리하실 수 있습니다.
76
제3장 i-PIN 툴킷 설치 방법
다. i-PIN 툴킷 설치 방법
1) 웹사이트 분석
가) i-PIN 관련 정보 활용 범위 결정
① 웹사이트에서 중복가입을 허용하는 경우
- DB Table에 중복가입 확인 정보 field 추가
- 웹사이트에 i-PIN을 이용한 회원가입 방법 추가
② 웹사이트에서 중복가입을 허용하지 않는 경우
- DB Table에 중복가입 확인 정보 field 추가
- 기존 사용자에 대한 중복확인 정보 생성 요청
- 기존 사용자의 중복확인 정보 입력
▶ 기존 회원의 주민등록 번호를 SG 아이핀 서비스 담당자에서 송부하면 전달 받은 목록에 대한 중복확인정보를 일괄적
으로 생성하여 CSV 파일 형식으로 회신하여 드립니다. 회신 받은 중복확인정보를 기존 DB에 입력하여주시면 됩니다.
- 웹사이트에 주민번호를 이용한 회원가입 시 중복확인 정보 입력
- 웹사이트에 i-PIN을 이용한 회원가입 방법 추가
※ 중복가입확인정보란?
이용자가 가입하려고 하는 인터넷 사이트에 가입여부를 확인하기 위하여 본인확인기관에서
발급하는 32byte 길이의 난수화 된 정보입니다. 이용자의 중복가입확인정보(DI)는 주민등
록번호와 달리 가입하는 인터넷 사이트마다 상이한 값을 갖게 됩니다. 예를 들어 이용자의
중복가입 확인정보가 A 사이트에서“1234567890”
이라면, B 사이트에선“9876543210”
과
같이 서로 다른 값을 부여받게 됩니다.
③ 회원정보 필드의 수정
- 아래 그림을 참고하여 기존의 회원 필드를 i-PIN 서비스를 사용할 수 있도록 수정합니다.
Korea Internet & Security Agency
77
i-PIN 2.0 도입 안내서
- 아래 그림의 예제에서 주민번호가 들어가던 SSN 필드의 이름을 i-PIN으로 변경하여 사용합니다.
→ 기존의 주민번호와 본인확인정보는 13자리로 동일합니다.
- 사용자를 구별할 수 있는 중복확인 정보를 저장할 필드를 생성합니다.
[그림 3-18] i-PIN 도입 전의 회원가입 테이블 정보
제3장
[그림 3-19] i-PIN 도입 후의 회원가입 테이블 정보
78
제3장 i-PIN 툴킷 설치 방법
2) 툴킷 설치 개요
● HTTP(S) 통신을 이용하여 정보 전달을 합니다.
● 웹사이트에서 요청 시 아이핀 팝업창이 표시됩니다.
● 처리 결과는 팝업창을 호출한 화면으로 전송됩니다.
가) 요청 방법
● 자바스크립트 open_child function을 이용하여 호출합니다.
● windows.name =“ipin_opener”
를 설정하여 주셔야 팝업창에서 처리 후 호출한 윈도우
로 결과 값이 전송됩니다.
[표 3-19] open_child function (자바 스크립트)
2) 요청 URL
● <form>에 포함되어있는 요청 파라미터를 SG 아이핀으로 전달할 URL 주소는 다음
[표 3-21]과 같습니다.
Korea Internet & Security Agency
79
i-PIN 2.0 도입 안내서
[표 3-20] SG 아이핀 서버에 요청 예제
● 실제 서비스에 적용을 하기 전에 테스트 서버에서 미리 테스트를 해볼 수 있는 환경을
제공하고 있습니다.
제3장
[표 3-21] 요청 URL
분 류
URL
실제 서비스 서버
https://www.sgipin.com/OnPASS/cp_sel.jsp
테스트 서버
http://61.72.247.235:8080/OnPASS/cp_sel.jsp
다) 처리 결과
● 각 결과값은 암호화되어 전달됩니다.
● 암호화 된 결과값은 decryptToken function을 이용하여 복호화 합니다.[표 3-22]
● verifyChecksum function을 이용하여 전달값의 무결성을 검증할 수 있습니다.
● CP에게 전달되는 결과 파라미터는 [표 3-23]과 같습니다.
80
제3장 i-PIN 툴킷 설치 방법
[표 3-22] 결과값의 복호화 예제(개발언어 C#)
Korea Internet & Security Agency
81
i-PIN 2.0 도입 안내서
[표 3-23] 결과 파라메티
구 분
설 명
CP_CODE
SG 아이핀에서 부여하는 회원코드
비 고
※주의
→ 법정대리인 동의를 통한
NAME
공인인증서 안에 포함된 사용자 실명
본인확인 정보 발급시에는 실명
대신 사용자가 입력한 이름이
전달됩니다.
VIRTUAL_NO
주민번호 대체 수단의 식별번호
DUP_INFO
사용자 중복확인 정보
‘0’ 9세 미만
‘1’ 12세 미만
‘2’ 14세 미만
AGE
연령대
‘3’ 15세 미만
‘4’ 18세 미만
‘5’ 19세 미만
‘6’ 20세 미만
제3장
‘7’ 20세 이상
SEX
성별
AUTH_TOKEN
→ 해당 고객에 대하여 본인확인 및 인증서의 검증에 대하여
‘0’ 여성
‘1’ 남성
인증토큰
ASP 서버가 생성한 인증 정보
CHECK_SUM
SESSION_NO
인증토큰을 검증 시 체크하기 위한 값
CP에서 부여하는 고유의 값으로 결과 전송 시 동일한 값을
다시 전송하여 줌
BIRTHDATE
생년월일
AUTHINFO
사용자가 신원확인을 받을 때 이용한 수단
CI
사용자의 Connection Information 값
3) 개발 언어 별 툴킷 파일 설치 방법
● 한국정보인증에서는 개발 언어별 툴킷을 제공해 드리고 있습니다.
82
생년월일 (YYYYMMDD)
제3장 i-PIN 툴킷 설치 방법
● SG 아이핀 서비스에서 본인확인정보 및 중복가입정보 등은 암호화되어 전달되고 전달된
파라미터들을 복호화 하기 위한 툴킷을 제공해 드립니다.
가) JSP 툴킷
● JSP 툴킷은 jar 형태로 제공됩니다.
● SG 아이핀.jar 파일을 lib PATH 가 설정되어 있는 곳에 복사를 하시고 jsp에서 호출하여
사용하실 수 있습니다.
[그림 3-20] SG 아이핀 JSP용 툴킷 저장
① JSP에서의 복호화 함수 사용
- JSP 페이지에서 암호화되어 전달된 파라미터들을 복호화 하기 위해서는 decryptToken function을
이용하여 복호화 합니다.
- 전달 받은 파라미터들을 복호화하여 사용하는 방법은 [표 3-24]와 같습니다.
Korea Internet & Security Agency
83
i-PIN 2.0 도입 안내서
[표 3-24] cp_result.jsp에서의 결과 파라미터 복호화 방법
%@ page contentType=
“text/html; charset=euc-kr”%>
<%@ page import=
“java.util.*,java.text.*,java.lang.*, onepass.*”%>
<%
/*
아이핀을 이용한 회원가입 Sample
본 Sample을 수행하시기 전에 OnePASS 관리자 페이지에 등록되어 있는 비밀 코드를
onepass_secret_code.txt에 저장하여 주시기 바랍니다.
*/
// onepass_secret_code.txt 에 저장되어 있는 비밀코드 load
//String secret_code = onepass.getSecretCode(
“C:\Java\Tomcat 5.5\webapps\onepass”
);
String secret_code =“rOxZ6MZUah0L4BVshAEngAAA”
;
// 복호화 수행
/* 인증 토큰 */
String auth_token = onepass.decryptToken(request.getParameter(
“AUTH_TOKEN”
), secret_code);
/* 인증토큰을 검증 시 체크하기 위한 값 */
String check_sum = onepass.decryptToken(request.getParameter(
“CHECK_SUM”
), secret_code);
제3장
/* OnePASS 에서 부여하는 회원코드 */
String cp_code
= onepass.decryptToken(request.getParameter(
“CP_CODE”
), secret_code);
/* 사용자 실명 */
String name
= request.getParameter(
“NAME”
);
name = new String(name.getBytes(
“8859_1”
),
“euc_kr”
);
/* 주민번호 보호수단의 식별번호 */
String virtual_no = onepass.decryptToken(request.getParameter(
“VIRTUAL_NO”
), secret_code);
/* 중복가입 확인정보 */
String dup_info
/*
= onepass.decryptToken(request.getParameter(
“DUP_INFO”
), secret_code);
연령대
‘0’9세 미만
‘1’12세 미만
‘2’14세 미만
‘3’15세 미만
‘4’18세 미만
‘5’19세 미만
‘6’20세 미만
‘7’20세 이상 */
String age
/*
84
= onepass.decryptToken(request.getParameter(
“AGE”
), secret_code);
성별
‘0’여성
제3장 i-PIN 툴킷 설치 방법
‘1’남성 */
String sex
= onepass.decryptToken(request.getParameter(
“SEX”
), secret_code);
/* CP에서 부여하는 고유의 값 */
String session_no = onepass.decryptToken(request.getParameter(
“SESSION_NO”
), secret_code);
인증토큰의 무결성 검증
if ( onepass.verifyChecksum(secret_code, auth_token, check_sum ) == false)
{
out.println(“<SCRIPT LANGUAGE=JAVASCRIPT>alert(
‘인증토큰 검증에 실패하였습니다.’
);</SCRIPT>”);
}
%>
<html>
<head>
</head>
<body>
인증토큰 = [<%=auth_token%>]<br>
CHECK_SUM = [<%=check_sum%>]<br>
회원코드 = [<%=cp_code%>]<br>
실명 = [<%=name%>]<br>
식별번호 = [<%=virtual_no%>]<br>
중복가입 확인정보 = [<%=dup_info%>]<br>
연령대 = [<%=age%>]<br>
성별 = [<%=sex%>]<br>
SESSION_NO = [<%=session_no%>]<br>
</body>
</html>
[그림 3-21] JSP페이지에서의 결과 파라미터 복호화 결과
Korea Internet & Security Agency
85
i-PIN 2.0 도입 안내서
나) PHP 툴킷
● PHP 툴킷은 소스 형태로 decryptToken function과 verifyChecksum function을 제공
하여 드립니다.
[그림 3-22] PHP에서의 verifyChecksum 함수
제3장
[그림 3-23] PHP에서의 decryptToken function 함수
86
제3장 i-PIN 툴킷 설치 방법
① PHP에서의 복호화 함수 사용
- PHP 페이지에서 암호화되어 전달된 파라미터들을 복호화 하기 위해서는 decryptToken function
을 이용하여 복호화 합니다.
- 전달받은 파라미터들을 복호화하여 사용하는 방법은 [표 3-25]와 같습니다.
[표 3-25] cp_result.php에서의 결과 파라미터 복호화
//파라미터 검증 및 파싱
// OnePass 관리자 화면상 비밀 코드
$secret_code =“XXXXXXXXXXX~”
;
$AUTH_TOKEN = decryptToken( $AUTH_TOKEN, $secret_code );
$CHECK_SUM = decryptToken( $CHECK_SUM, $secret_code );
$VIRTUAL_NO = decryptToken( $VIRTUAL_NO, $secret_code );
$DUP_INFO = decryptToken( $DUP_INFO, $secret_code );
// 한글 NAME이 decode 되지 않기에 encode 처리 없이 보낸다.
//$NAME = decryptToken( $NAME, $secret_code );
$AGE
= decryptToken( $AGE, $secret_code );
$SEX
= decryptToken( $SEX, $secret_code );
if ($NAME != "")
$name = $NAME;
$verify_result = verifyChecksum( $secret_code, $AUTH_TOKEN, $CHECK_SUM );
//if (!$verify_result)
if (false)
{
?>
<html>
<head>
<script language=
“javascript”
>
alert(
“검증되지 않은 요청 입니다.\n처음부터 다시 신청하여 주시기 바랍니다.”
);
location.href =“/”
;
</script>
<meta http-equiv=
“Content-Type”content=
“text/html; charset=euckr”
>
</head>
</html>
<?
}
?>
<html>
<head>
</head>
<body>
AUTH_TOKEN = <?= $AUTH_TOKEN ?> <br>
CHECK_SUM, = <?= $CHECK_SUM ?> <br>
VIRTUAL_NO = <?= $VIRTUAL_NO ?> <br>
DUP_INFO = <?= $DUP_INFO ?> <br>
AGE = <?= $AGE ?> <br>
SEX = <?= $SEX ?> <br>
NAME = <?= $NAME ?>
</body>
</html>
Korea Internet & Security Agency
87
i-PIN 2.0 도입 안내서
[그림 3-24] PHP 페이지에서의 결과 파라미터 복호화 결과
다) ASP.net 툴킷
● ASP.net 툴킷은 DLL 형태로 제공됩니다.
● 결과 파라미터를 처리할 페이지 아래에 해당 툴킷을 복사하여 사용합니다.
[그림 3-25] SG 아이핀 ASP.net 용 툴킷 저장
제3장
88
제3장 i-PIN 툴킷 설치 방법
① ASP.net 에서의 복호화 함수 사용
- aspx 페이지에서 암호화되어 전달된 파라미터들을 복호화 하기 위해서는 decryptToken function
을 이용하여 복호화 합니다.
- 전달받은 파라미터들을 복호화하여 사용하는 방법은 [표 3-26]과 같습니다.
[표 3-26] cp_result.aspx에서의 결과 파라미터 복호화
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace onepass_asp_net
{
public partial class cp_result : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//onepass_secret_code.txt 에저장되어있는비밀코드
string secret_code = onepass.getSecretCode(
“C:\\inetpub\\onepass\\onepass_secret_code.txt”
);
if (Request[
“AUTH_TOKEN”
] == null)
{
lbsecret_code.Text =“전달파라미터가없습니다”
}
else
{
//Secret_code
lbsecret_code.Text = secret_code;
//인증토큰
string auth_token = onepass.decryptToken(Request[
“AUTH_TOKEN”
], secret_code);
lbauth_token.Text = auth_token;
/* 인증토큰을검증시체크하기위한값
Korea Internet & Security Agency
89
i-PIN 2.0 도입 안내서
[표 3-26] cp_result.aspx 에서의 결과 파라미터 복호화
string check_sum = onepass.decryptToken(Request[
“CHECK_SUM”
], secret_code)e);
lbcheck_sum.Text = check_sum;
/* OnePASS 에서부여하는회원코드
string cp_code = onepass.decryptToken(Request[
“CP_CODE”
], secret_code);
lbcp_code.Text = cp_code;
/* 사용자실명
string name = Server.UrlEncode(Request[
“NAME”
]);
lbname.Text = Server.UrlDecode(name);
/* 주민번호보호수단의식별번호
string virtual_no = onepass.decryptToken(Request[
“VIRTUAL_NO”
], secret_code);
lbvirtual_no.Text = virtual_no;
/* 중복가입확인정보(DI)
string dup_info = onepass.decryptToken(Request[
“DUP_INFO”
], secret_code);
lbdup_info.Text = dup_info;
/*
제3장
연령대
‘0’
세 미만
‘12’
세 미만
‘14’
세 미만
‘15’
세 미만
‘18’
세 미만
‘19’
세 미만
‘20’
세 미만
‘20’
세 이상
String age = onepass.decryptToken(Request[
“AGE”
], secret_code);
lbage.Text = age;
/*
성별
‘’
여성
‘’
남성
String sex = onepass.decryptToken(Request[
“SEX”
], secret_code);
lbsex.Text = sex;
/* CP에서부여하는고유의값
String session_no = onepass.decryptToken(Request[
“SESSION_NO”
], secret_code);
lbsession_no.Text = session_no;
}
}
}
}
90
제3장 i-PIN 툴킷 설치 방법
[그림 3-26] aspx 페이지에서의 결과 파라미터 복호화 결과
4) 서비스 별 요청 파라미터
가) i-PIN을 이용한 회원가입
● 아이핀을 이용한 회원가입 서비스를 이용할 때 한국정보인증 OnePASS 서비스 서버의
URL과 전달할 파라미터들을 정의합니다.
① 서비스 요청 URL
[표 3-27] 회원가입 서비스 요청 URL
분 류
URL
실제 서비스 서버
https://www.sgipin.com/OnePASS/cp_sel.jsp
테스트 서버
http://61.72.247.235:8080/OnePASS/cp_sel.jsp
Korea Internet & Security Agency
91
i-PIN 2.0 도입 안내서
② 요청 파라미터
[표 3-28] 회원가입 요청 파라미터
분 류
설 명
비 고
CP_CODE
SG 아이핀에서 부여하는 회원코드
필수
SEVICE
기능
필수‘3’
(고정)
SESSION_NO
CP에서 부여하는 고유의 값으로 결과 전송 시 동일한 값을 다시 전송하여 줌
필수
RETURNURL
SG 아이핀에서 생성한 정보를 받을 페이지
필수
③ 결과 파라미터
[표 3-29] 회원가입 결과 파라미터
제3장
92
구 분
설 명
CP_CODE
SG 아이핀에서 부여하는 회원코드
NAME
공인인증서 안에 포함된 사용자 실명
VIRTUAL_NO
주민번호 대체 수단의 식별번호
DUP_INFO
사용자 중복확인 정보
AGE
연령대
SEX
성별
AUTH_TOKEN
인증토큰
→ 해당 고객에 대하여 본인확인 및 인증서의 검증에 대하여
ASP 서버가 생성한 인증 정보
CHECK_SUM
인증토큰을 검증 시 체크하기 위한 값
SESSION_NO
CP에서 부여하는 고유의 값으로 결과 전송 시 동일한 값을
다시 전송하여 줌
BIRTHDATE
생년월일
AUTHINFO
사용자가 신원확인을 받을 때 이용한 수단
CI
사용자의 Connection Information 값
비 고
※주의
→ 법정대리인 동의를 통한 본인확인
정보 발급시에는 실명 대신 사용자가
입력한 이름이 전달됩니다.
‘0’9세 미만
‘1’12세 미만
‘2’14세 미만
‘3’15세 미만
‘4’18세 미만
‘5’19세 미만
‘6’20세 미만
‘7’20세 이상
‘0’여성
‘1’남성
생년월일 (YYYYMMDD)
제3장 i-PIN 툴킷 설치 방법
나) i-PIN을 이용한 회원정보 수정
● 아이핀을 이용한 회원정보 수정 서비스를 이용할 때 한국정보인증 SG 아이핀 서비스 서버
의 URL과 전달할 파라미터들을 정의합니다.
① 서비스 요청 URL
[표 3-30] 회원정보 수정 서비스 요청 URL
분 류
URL
서비스 서버
https://op.signgate.com/cgi-bin/cp_sel.cgi
테스트 서버
http://app.signgate.com/cgi-bin/cp_sel.cgi
② 요청 파라미터
[표 3-31] 회원정보 수정 요청 파라미터
분 류
설 명
비 고
CP_CODE
SG 아이핀에서 부여하는 회원코드
필수
OPERATION
기능
SESSION_NO
CP에서 부여하는 고유의 값으로 결과 전송 시 동일한 값을 다시 전송하여 줌
필수
RETURNURL
SG 아이핀에서 생성한 정보를 받을 페이지
필수
필수‘user_mod’
- 회원정보 수정
③ 결과 파라미터
[표 3-32] 회원정보 수정 결과 파라미터
구 분
설 명
CP_CODE
SG 아이핀에서 부여하는 회원코드
비 고
※주의
NAME
공인인증서 안에 포함된 사용자 실명
→ 법정대리인 동의를 통한 본인확인
정보 발급시에는 실명 대신 사용자가
입력한 이름이 전달됩니다.
VIRTUAL_NO
주민번호 대체 수단의 식별번호
DUP_INFO
사용자 중복확인 정보
Korea Internet & Security Agency
93
i-PIN 2.0 도입 안내서
[표 3-32] 회원정보 수정 결과 파라미터
구 분
제3장
설 명
비 고
AGE
연령대
‘0’ 9세 미만
‘1’ 12세 미만
‘2’ 14세 미만
‘3’ 15세 미만
‘4’ 18세 미만
‘5’ 19세 미만
‘6’ 20세 미만
‘7’ 20세 이상
SEX
성별
AUTH_TOKEN
인증토큰
→ 해당 고객에 대하여 본인확인 및 인증서의 검증에 대하여
ASP 서버가 생성한 인증 정보
CHECK_SUM
인증토큰을 검증 시 체크하기 위한 값
SESSION_NO
CP에서 부여하는 고유의 값으로 결과 전송 시
동일한 값을 다시 전송하여 줌
BIRTHDATE
생년월일
AUTHINFO
사용자가 신원확인을 받을 때 이용한 수단
CI
사용자의 Connection Information 값
‘0’ 여성
‘1’ 남성
생년월일 (YYYYMMDD)
다) i-PIN을 이용한 ID/PASSWORD 찾기
● SG 아이핀을 이용한 ID/PASSWORD 찾기 서비스를 이용할 때 한국정보인증 SG 아이핀
서비스 서버의 URL과 전달할 파라미터들을 정의합니다.
① 서비스 요청 URL
[표 3-33] ID/PASSWORD 찾기 서비스 요청 URL
94
분 류
URL
서비스 서버
https://op.signgate.com/cgi-bin/cp_sel.cgi
테스트 서버
http://app.signgate.com/cgi-bin/cp_sel.cgi
제3장 i-PIN 툴킷 설치 방법
② 요청 파라미터
[표 3-34] ID/PASSWORD 찾기 서비스 요청 파라미터
분 류
설 명
비 고
CP_CODE
SG 아이핀에서 부여하는 회원코드
필수
OPERATION
기능
‘find_id’- 아이디 찾기
필수
‘find_pw’- 비밀번호 찾기
SESSION_NO
RETURNURL
CP에서 부여하는 고유의 값으로 결과 전송 시
동일한 값을 다시 전송하여 줌
SG 아이핀에서 생성한 정보를 받을 페이지
필수
필수
③ 결과 파라미터
[표 3-35] ID/PASSWORD 찾기 서비스 결과 파라미터
구 분
설 명
CP_CODE
SG 아이핀에서 부여하는 회원코드
DUP_INFO
사용자 중복확인 정보
AUTH_TOKEN
→ 해당 고객에 대하여 본인확인 및 인증서의 검증에 대하여
비 고
인증토큰
ASP 서버가 생성한 인증 정보
CHECK_SUM
SESSION_NO
인증토큰을 검증 시 체크하기 위한 값
CP에서 부여하는 고유의 값으로 결과 전송 시 동일한 값을
다시 전송하여 줌
5) SG 아이핀 관리자 메뉴
가) 관리자 로그인
● http://www.sgipin.com 에 접속한 후 기업관리 메뉴에서 SG 아이핀 관리자용 인증서를
이용하여 로그인을 합니다.
Korea Internet & Security Agency
95
i-PIN 2.0 도입 안내서
[그림 3-27] SG 아이핀 관리자 로그인
나) 등록정보 수정 메뉴
● 등록정보 수정 메뉴에서는 회원가입 결과, 회원정보 수정 결과, ID/PASSWORD 찾기에
관한 결과를 리턴 받는 URL을 수정할 수 있습니다.
① 회원코드
제3장
- 각 요청 시 업체 구분코드
② 가입 결과 URL
- i-PIN을 이용한 회원가입 시 결과를 반환하는 주소
③ 수정 결과 URL
- i-PIN을 이용한 회원 정보 수정 시 결과를 반환하는 주소
④ ID 찾기 결과 URL
- i-PIN을 이용한 웹사이트 ID 찾기 시 결과를 반환하는 주소
⑤ PW 찾기 결과 URL
- i-PIN을 이용한 웹사이트 PASSWORD 찾기 시 결과를 반환하는 주소
⑥ 중복가입 조회 IP
- 중복가입정보를 조회할 수 있는 IP
⑦ 비밀코드
- 암호화된 결과를 복호화 할 때 사용하는 비밀코드
96
제3장 i-PIN 툴킷 설치 방법
5. 코리아크레딧뷰로 - KCB 아이핀
가. KCB 아이핀 소개
● KCB는 2009년 12월 방송통신위원회가 지정한 아이핀 본인확인기관입니다.
●‘KCB 아이핀’
은 인터넷상에서 주민등록번호를 대신하여 아이디와 패스워드를 이용하여
본인확인을 하는 수단으로 개인들에게는 아이핀 아이디와 패스워드를 발급하고, 인터넷
사업자에게는 아이핀을 이용한 본인확인서비스를 제공합니다.
- KCB 아이핀 서비스 개요
[그림 3-28] KCB 아이핀 서비스 개요
Korea Internet & Security Agency
97
i-PIN 2.0 도입 안내서
- 아이핀 발급(개인이용자)
[그림 3-29] 아이핀 발급 절차
㉮ 개인 이용자가 KCB 아이핀 발급 서비스를 통해서 신규발급을 선택
㉯ 아이핀 서비스 약관에 동의하고 개인 이용자의 실명확인
제3장
㉰ 아이핀으로 사용할 아이디와 패스워드, 연락처 등의 최소 정보를 입력
㉱ 휴대폰, 신용카드, 공인인증서, 대면확인을 통해서 본인임을 인증
㉲ 아이핀 아이디, 패스워드 정상 발급
- 아이핀 본인확인정보 인증(인터넷 사업자)
[그림 3-30] 아이핀 인증 절차
98
제3장 i-PIN 툴킷 설치 방법
㉮ 개인 이용자가 인터넷사업자의 웹사이트 회원가입 등을 위한 본인확인 수단으로 아이핀 선택
㉯ 인터넷사업자의 웹사이트에서 아이핀 클라이언트(팝업)를 실행
㉰ 개인 이용자가 아이핀 클라이언트(팝업)에서 본인의 아이핀 아이디와 패스워드를 입력
㉱ KCB가 아이핀 아이디와 패스워드를 검증(인증)하여 본인확인이 완료되면 본인확인이 정상적으로
이루어졌음과 아이핀 제공정보를 인터넷사업자의 웹사이트에 전달
※ 아이핀 제공정보: 성명, 생년월일, 성별, 중복가입확인정보(DI), 연계정보(CI) 등
㉲ 인터넷사업자의 웹사이트에서 정상적인 회원가입 등의 절차를 진행
나. KCB 아이핀 도입 신청
● KCB 아이핀을 도입하려는 인터넷사업자는 아래와 같은 절차로 신청하실 수 있습니다.
● 서비스 신청서 등 계약을 위한 서류는 사이트에서 아이핀 메뉴에서 다운로드 받으실 수
있습니다.
▶ 도입 상담 ☎ 708-6083, 6079
▶ 기술 상담 ☎ 708-6160
[그림 3-31] KCB 아이핀 도입 절차
Korea Internet & Security Agency
99
i-PIN 2.0 도입 안내서
다. i-PIN 툴킷 설치 방법
1) 아이핀/실명확인 서버 모듈 다운로드
● 관리자 페이지 로그인 > 모듈 다운로드를 수행하면 [그림 3-32]와 같은 화면을 볼 수 있습니다.
[그림 3-32] 모듈 다운로드 페이지
제3장
[그림 3-33] 모듈 다운로드 확인 창
100
제3장 i-PIN 툴킷 설치 방법
● 여기서“운영체계”
,“Machine Bit”
,“개발언어”
,“기타”
를 선택하고 표준 모듈 다운로드,
전부 다운로드 등을 클릭하면 설치에 필요한 파일들이 tar. gz로 압축되어 다운로드 창이
뜹니다.
● 운영체계 및 Machine Bit, 개발언어 등에 따라 선택 가능한 버전을 제공합니다.(자세한
내용은 상세 매뉴얼 참조
2) 모듈 설치
□ 윈도우
● okname.exe와 각종 okname_(XXX)_test.bat, 프로그래밍 언어별 sample을 특정 폴더
에 복사합니다. 복사한 특정 폴더는 실행 권한을 줍니다.
● 콘솔(cmd.exe)창에서“okname D”
를 입력하여 다음과 같은 결과가 나오는지 확인합니다.
[그림 3-34] 콘솔창 결과 화면(윈도우)
Korea Internet & Security Agency
101
i-PIN 2.0 도입 안내서
□ 유닉스/리눅스
● oknokname과 각종 okname_XXX_test.bat, 프로그래밍 언어별 sample을 특정 폴더에
복사합니다. 복사한 특정 폴더는 실행 권한을 줍니다. okname은 다음과 같은 명령을
통해 실행 권한을 줍니다.
>chmod 755 okname
● 콘솔(telnet 또는 ssh)창에서“okname D”
를 입력하여 다음과 같은 결과가 나오는지 확인
합니다.
[그림 3-35] 콘솔창 결과 화면(유닉스/리눅스)
제3장
□ 파라미터의 정의
● Windows Server 2000/2003/2008(이하:Win32)에서는 okname.exe, Unix/Linux(이
하: Unix)에서는 okname이라는 실행파일이 KCB 실명확인 서버와 직접 통신을 하는
core 모듈입니다. 각 웹 프로그램 언어에서는 외부 프로그램 호출 방식으로 okname.exe
를 호출하고 있으며, 파라미터는 okname.exe 실행파일의 파라미터로 넘겨준 다음
102
제3장 i-PIN 툴킷 설치 방법
return value를 받아서 응답을 처리합니다.
● 실명확인 함수가 호출되면 콘솔로 명령어와 파라미터가 전송이 됩니다. 최종 콘솔로 전송
되는 명령어의 형태는 다음과 같습니다. okname.asp/php/jsp 등의 소스 또는 디버그
모드로 하면 다음과 같은 최종 명령어를 볼 수 있습니다.
D:\oknameweb\okname.exe
“홍길동”1111111111111 TEST0116 x xu1234 1 01 x x
20090604 http://tallcredit.kcb4u.com:9090/KcbWebService/OkNameService
● 주의할 점은 외국인“JAMES PARKER”
와 같은 이름을 사용하기 위해서는 이름을 다음과
같이“JAMESPARKER”
로 감싸줘야 하나의 파라미터로 인식하여 정상적인 실명확인을
할 수 있습니다.
D:\oknameweb\okname.exe
“JAMESPARKER”1111111111111 TEST0116 x x u1234 2 01
x x 20090604 http://tallcredit.kcb4u.com:9090/KcbWebService/ OkNameService
□ 옵션의 정의
● 옵션은 okname이라는 모듈을 어떤 모드로 동작하느냐(실행모드 옵션)와 부가적인 기능
(부가기능 옵션) 중 어떤 것을 지원하느냐를 결정해 주는 실행파일 파라미터 중의 가장
마지막 파라미터입니다.
● 예를 들어 다음과 같은 okname의 명령문에는 okname 실행파일 포함 14개의 파라미터
가 있습니다. 가장 마지막 파라미터인 ODL이 옵션이 됩니다.
.\okname“홍길동”111111-1111111K0001111 x x u1234 1 01 211.234.100.144 www.okname.com 20091007http://www.allcredit.co.kr/KcbWebService/ OkNameService ODL
위의 옵션을 해석하면 (O : 실명확인, D : 디버그 모드, L : 로그 기록 모드)입니다.
Korea Internet & Security Agency
103
i-PIN 2.0 도입 안내서
● 다음과 같은 명령문은 4개의 파라미터가 있으며 옵션은 KDL입니다.
.\okname .\okname.key .\ KDL
위의 옵션을 해석하면(K : 아이핀 키생성모드, D : 디버그 모드, L : 로그 기록 모드) 입니
다.(실행 모드 옵션의 리스트는 상세 매뉴얼을 참조하십시오.)
□ 아이핀 웹사이트 연계 암호화
[그림 3-36] 아이핀 웹사이트 연계 암호화
제3장
□ 아이핀 실명확인(N모드)
● 정의
- 입력 받은 주민번호, 이름을 통해 실명 여부를 확인합니다. 아이핀용 실명확인 기능으로
실명확인 응답 외에 CI, DI 값이 제공됩니다.
104
제3장 i-PIN 툴킷 설치 방법
● 파라미터 리스트
[표 3-36] 피라미터의 정의 (아이핀 실명확인)
이 름
번 호
설 명
okname core 모듈의 절대 패스
ASP.NET, PHP, JSP일 경우에는 \를 입력 시 \\와 같이 2번 입력해야 한다.
exe
0
(Win32 플랫폼일 경우)
ASP는 \를 1번만 입력한다.
예) exe =“d:\\oknameweb\\okname.exe”
;
확인하려는 실명, 암호화 되지 않은 평문을 입력, 기본인코딩은 EUC-KR이며 UTF-8을 사용할 경우
name
1
에는 옵션에‘U’
를 추가
예) name =“홍길동”
;
ssn
2
memid
3
확인하려는 주민번호(- 생략 가능), 암호화 되지 않은 평문을 입력
예) ssn =“1111111111111”
; 또는 ssn =“111111-1111111”
;
회원사ID
KCB에서 아이디를 발급 받은 후 사용함
예) memid =“TEST0116”
;
qryBrcCd
4
qryBrcNm
5
qryId
6
회원사 지점 코드 (사용하지 않음, 고정값“x”
로 설정)
예) qryBrcCd =“x”
;
회원사 지점 이름
예) qryBrcNm =“x”
;
쿼리ID, 현재는 고정값
예) qryId =“u1234”
;
쿼리 요청구분
qryKndCd
7
개인: 1, 외국인: 2
외국인을 실명확인할 경우에는 반드시“2”
로 설정해야 한다.
예) qryKndCd =“1”
;
쿼리 조회사유
qryRsnCd
8
회원가입: 01, 회원정보수정: 02, 회원탈회: 03, 성인인증: 04, 기타실명인증: 05
예) qryRsnCd =“01”
;
회원사 해당 사이트의 IP
qryIP
9
KCB에 해당 IP를 등록 후 사용함
예) qryIP =“192.168.0.1”
;
회원사 해당 사이트 domain
qryDomain
10
KCB에 해당 domain을 등록 후 사용함
예) www.koreacb.com
Korea Internet & Security Agency
105
i-PIN 2.0 도입 안내서
[표 3-36] 피라미터의 정의(아이핀 실명확인)
이 름
번 호
설 명
쿼리 조회 날짜
qryDt
11
“YYYYMMDD”형태의 현재 날짜
수동입력보다는 DATE 함수를 통한 자동입력을 권장
예)“20090713”
실명확인 서버 접속 URL
EndPointURL
12
KCB에 해당 IP, domain을 등록 후에 받은 접속 URL을 사용함
예) EndPointURL =“http://tallcredit.kcb4u.com:9090/KcbWebService/OkNameService”
logpath
13
Option
14
옵션에서‘L’
이 추가되었을 경우 로그파일이 생성될 위치를 지정한다.
쓰기 권한이 있어야 정상적으로 파일이 생성된다.
‘N’
을 입력한다.
● 콘솔 테스트(okname_NDL_test.sh/bat)
- 다운 받은 압축파일의 okname_NDL_test.sh/bat를 통해 콘솔에서 테스트합니다. 테스
트하기 위해서는 KCB 담당자로부터 등록한 서버 IP와 도메인 URL이 필요합니다.
제3장
- okname_NDL_test.sh
#!/bin/sh
./okname“홍길동”111111-1111111 K0001811 x x u1234 1 01 211.234.100.144
www.tongid.com 20091007 http://www.allcredit.co.kr/KcbWebService/
OkNameService ./ NDL
- okname_NDL_test.bat
.\okname“홍길동”111111-1111111 K0001811 x x u1234 1 01 211.234.100.144
www.tongid.com 20091007 http://www.allcredit.co.kr/KcbWebService/
OkNameService .\NDL
106
제3장 i-PIN 툴킷 설치 방법
□ 아이핀 키생성(K모드)
● 정의
- 아이핀 서버와 통신을 위한 키를 생성하는 모드이다. 자동으로 한 달에 한 번씩 생성이
되며, 전월의 키가 자동으로 보관되어, 새로 생성한 키가 동작하지 않을 경우 전월 키를
사용합니다.
● 파라미터 리스트
[표 3-37] 피라미터의 정의(아이핀 키생성)
이 름
번 호
설 명
okname core 모듈의 절대 패스
ASP.NET, PHP, JSP일 경우에는‘\’
를 입력 시‘\\’
와 같이 2번 입력해야 한다.
exe
0
(Win32 플랫폼일 경우)
ASP는 \를 1번만 입력한다.
예) exe =“d:\\oknameweb\\okname.exe”
;
keypath
1
키파일이 생성한 위치(파일)
logpath
2
로그파일이 생성될 위치(폴더)
Option
3
‘K’
를 입력
● 결과값 리스트
- 서버에서 요청 결과값의 리스트
[표 3-38] 결과값 정의
이 름
LENGTH
설 명
Cpubkey
32
클라이언트 공개키
Csig
24
클라이언트 서명값
Curtime
20
키가 생성된 시간 20자리 (YYYYMMDDHH24MISS 14자리 + MilliSec 6자리)
Korea Internet & Security Agency
107
i-PIN 2.0 도입 안내서
● 키 파일 포맷
- 키 파일은 텍스트로 되어 있으며 다음과 같이 Title=Value 형태로 되어 있습니다. ;로
시작되는 문장은 주석처리 됩니다.
;현월
last_ym=[YYYYMM]
public_key=[공개키]
private_key=[개인키]
signature=[인증값]
;전월
last_ym1=[YYYYMM]
public_key1=[공개키]
private_key1=[개인키]
signature1=[인증값]
● 콘솔 테스트(okname_KDL_test.sh/bat)
제3장
- 다운 받은 압축파일의 okname_KDL_test.sh/bat를 통해 콘솔에서 테스트합니다.
- okname_KDL_test.sh
#!/bin/sh
./okname ./okname.key ./ KDL
- okname_KDL_test.bat
.\okname .\okname.key .\ KDL
□ 아이핀 암호화(E모드)
● 정의
- 아이핀 복호화(I모드) 테스트용으로 제공되는 아이핀 암호화 모드입니다. 암호화 후
암호화에 사용한 키와 평문을 암호화시킨 암호화문을 제공합니다. 암호화가 끝나면
108
제3장 i-PIN 툴킷 설치 방법
복호화 테스트를 할 수 있게 okname_IDL_test.sh/bat가 자동생성 됩니다.
● 파라미터 리스트
[표 3-39] 파라미터 정의 (아이핀 암호화)
이름
번호
설 명
okname core 모듈의 절대 패스
ASP.NET, PHP, JSP일 경우에는‘\’
를 입력 시‘\\’
와 같이 2번 입력해야 한다.
exe
0
(Win32 플랫폼일 경우)
ASP는 \를 1번만 입력한다.
예) exe =“d:\\oknameweb\\okname.exe”
;
keypath
1
키파일이 생성한 위치(파일)
logpath
2
로그파일이 생성될 위치(폴더)
Option
3
‘E’
를 입력
● 콘솔 테스트(okname_EDL_test.sh/bat)
- okname_EDL_test.sh
#!/bin/sh
./okname./okname.key“MC0GCCqGSIb3DQIJAyEA1Gopx/0UnYlKn76Dqmd
SxhtqgWMFrcvWGrZjEvzWg/U=|0SDaoo5IO9AM4hhNVu7ZlunVlCxe7kVTOnffAowxc
VrKu9473R3nZDMUkdXWhkK/KSRpwScUIBC7iUOtX3S44g==|null|1|6219667950278
|W11111111111|김성우|1193357001070|7|1|0|19760526|2”
./ EDL
- okname_EDL_test.bat
.\okname .\okname.key
“MC0GCCqGSIb3DQIJAyEA1Gopx/0UnYlKn76Dqmd
SxhtqgWMFrcvWGrZjEvzWg/U=|0SDaoo5IO9AM4hhNVu7ZlunVlCxe7kVTOnffAowxc
VrKu9473R3nZDMUkdXWhkK/KSRpwScUIBC7iUOtX3S44g==|null|1|6219667950278
|W11111111111|김성우|1193357001070|7|1|0|19760526|2”
.\ EDL
Korea Internet & Security Agency
109
i-PIN 2.0 도입 안내서
□ 아이핀 복호화(I모드)
● 정의
- 아이핀 웹사이트 연계 암호화 시 KCB 아이핀 서버에서 로그인 한 결과를 암호문으로
받아서 복호화하 하여 개인정보를 얻는 과정입니다. 이 복호화 과정에는 KCB 아이핀
서버에서 받은 공개키, 시그너처, 암호화 데이터가 필요하고, 웹사이트 측에서는 개인키
가 필요한데 이것은 입력 받은 키 패스(keypath)로부터 파일에서 읽습니다.
● 파라미터 리스트
[표 3-40] 파라미터 정의(아이핀 복호화)
이름
번호
설 명
okname core 모듈의 절대 패스
ASP.NET, PHP, JSP일 경우에는‘\’
를 입력 시‘\\’
와 같이 2번 입력해야 한다.
exe
0
(Win32 플랫폼일 경우)
ASP는 \를 1번만 입력한다.
제3장
예) exe =“d:\\oknameweb\\okname.exe”
;
keypath
1
키 파일이 생성한 위치(파일)
cpubkey
2
KCB 아이핀 서버에서 받은 공개키
csig
3
KCB 아이핀 서버에서 받은 시그너처
encdata
4
KCB 아이핀 서버에서 받은 암호화 데이터
logpath
5
로그파일이 생성될 위치(폴더)
Option
6
‘E’
를 입력
● 결과값 리스트
- 서버에서 요청 결과 값의 리스트
110
제3장 i-PIN 툴킷 설치 방법
[표 3-41] 결과값 정의(아이핀 복호화)
이름
LENGTH
설 명
DupInfo
중복가입 확인정보
Coinfo1
연계정보 확인정보 (PEM)
Coinfo2
연계정보 변경 시 사용 (PEM)
Ciupdate
CI 갱신 횟수를 기재
VirtualNo
13
본인확인정보 (가상주민번호)
CpCode
12
중복가입확인정보 (DI) 생성을 위한 사이트 식별번호
RealName
이용자의 실명
CpRequestNumber
17
Age
1
이용자의 정보를 전달할 인터넷 사이트 세션 정보
이용자의 연령대 부가서비스
(1: 만9세 미만, 2: 만12세 미만, 3: 만14세 미만, 4: 만15세 미만, 5: 만18세 미만,
6: 만19세 미만, 7: 만20세 미만, 8: 만20세 이상)
Sex
1
성별 부가서비스 (1: 남자, 2: 여자)
NationalInfo
1
내∙외국인 구별 (0: 내국인, 1: 외국인)
BirthDate
8
생년월일 정보
AuthInfo
1
PIN 발급 시 신원확인수단
(0: 공인인증서, 1: 카드, 2: 휴대폰, 3: 대면, 5: 신원보증인 공인인증서, 6: 신원보증인 카드,
7: 신원보증인 휴대폰)
● 콘솔 테스트(okname_IDL_test.sh/bat)
- okname_IDL_test.sh
#!/bin/sh
./okname ./okname.keyAwYxXkiL2i0G5lVV0uAOU1O1zlsRXg== IqjcTutZYsBz
YPpttmACBA==“AQ8avO7eJql93T4CiA5ETcwJTRKwqRAFyfMqHjJ99azn
DfOXvoV6YElUNo8w3buBhA4JvSpYfmidWscUzInNUfjrx+VodcQMjgAwy/L7Fn6p4H7
thgu3Lct6FOgdB5h2dUbEKuB1w7B66/nLTJoYzgfntq4CRP7UUAZ9uk+RGgqKJ+SiBM
bVQJDQZpxUSmqNEdhg3jVAhJLFDad1Ag31Ayvy78z6nRW1BQYYzYgyCPLAgqbEyN
Qc0cTtkBzdvaXi4r5ylfXy+lRA7dPAq6nLw4f/Ac2DCms+XM6iL75Eg8tG”
./ IDL
Korea Internet & Security Agency
111
i-PIN 2.0 도입 안내서
- okname_IDL_test.sh
.\okname .\okname.keyAwYxXkiL2i0G5lVV0uAOU1O1zlsRXg== IqjcTut
ZYsBzYPpttmACBA=="AQ8avO7eJql93T4CiA5ETcwJTRKwqRAFyfMqHjJ99aznDfOXv
oV6YElUNo8w3buBhA4JvSpYfmidWscUzInNUfjrx+VodcQMjgAwy/L7Fn6p4H7thgu3L
ct6FOgdB5h2dUbEKuB1w7B66/nLTJoYzgfntq4CRP7UUAZ9uk+RGgqKJ+SiBMbVQJD
QZpxUSmqNEdhg3jVAhJLFDad1Ag31Ayvy78z6nRW1BQYYzYgyCPLAgqbEyNQc0cTtk
BzdvaXi4r5ylfXy+lRA7dPAq6nLw4f/Ac2DCms+XM6iL75Eg8tG".\ IDL
3) 운영계(REAL) 서버 이관 절차
● ASP/ASP.NET/PHP/JSP 변수 memid는 KCB에서 발송하는 관리자 페이지 ID/PW
메일에서 제공되며, 모듈 설치가 끝난 후 실제 사용할 URL과 도메인을 KCB 담당자에게
등록한 후에 진행해야 한다. KCB 담당자에게 등록완료 메일 수신 후, memid, qryIP,
qryDomain, EndPointURL을 입력, 테스트 후 적용합니다.
제3장
4) 응답코드 정의서(별첨)
● okname_retcode.xls 참조
5) 아이핀 UI연동 파라미터
● KCB 아이핀 UI 호출 시
- 웹사이트가 KCB 아이핀 팝업 호출 시 넘겨주어야 할 파라미터 정의
- IDPCODE, IDPURL, CPCODE는 위의 표에 정의된 바와 같이 KCB로부터 부여 받은
값을 지정하고, 웹사이트 보유키(WEBPUBKEY, WEBSIGNATURE)와 CPREQUES
TNUM는 모듈의 K옵션으로 구하여 전송합니다.
- 웹사이트에서는 아이핀 발급자 정보가 암호화 되어 있는 PERSONALINFO를 받기
위한 RETURNURL을 정의하여 지정합니다.
112
제3장 i-PIN 툴킷 설치 방법
[표 3-42] 파라미터 정의(아이핀 UI연동)
이름
LENGTH
IDPCODE
1
설 명
웹사이트 선호 본인확인기관코드
- V (KCB 기관코드)
웹사이트 선호 본인확인기관 URL (타 본인확인기관 연동 시 사용)
IDPURL
- 운 영 : https://ipin.ok-name.co.kr/tis/ti/POTI90B_SendCertInfo.jsp
- 테스트 : https://ipin.ok-name.co.kr:9080/tis/ti/POTI90B_SendCertInfo.jsp
CPCODE
12
CPREQUESTNUM
20
본인확인기관이 부여한 사이트 식별번호
예) V11111111111
CP 요청번호
예) 2010년 01월 01일 12시 00분 00초인 경우
(20100101120000000000) Millisecond까지 포함된다.
PERSONALINFO가 전달될 인터넷 웹사이트 URL (웹사이트 지정)
RETURNURL
http://test.ok-name.co.kr:9080/tis/test/return_case.jsp
WEBPUBKEY
32
공개키
WEBSIGNATURE
24
서명값
● 본인인증 성공 시 결과값
- PERSONALINFO 정의: 아이핀 발급자가 인증 처리 후 웹사이트에 사용자정보를 저장
하기 위한 객체
[표 3-43] 결과값 정의(아이핀 UI연동)
이름
LENGTH
DupInfo
64
사용자 중복가입 확인정보
Coinfo1
88
연계정보 확인정보
Coinfo2
88
연계정보 변경 시 사용
Ciupdate
1
CI 갱신 횟수를 기재
VirtualNo
13
주민번호 대체수단의 식별번호
CpCode
12
KCB에서 부여하는 회원코드
RealName
CpRequestNumber
설 명
비 고
V11111111111
이용자의 실명
17
이용자의 정보를 전달할 인터넷 사이트 세션 정보
Korea Internet & Security Agency
113
i-PIN 2.0 도입 안내서
[표 3-43] 결과값 정의(아이핀 UI연동)
이름
LENGTH
설 명
비 고
‘1’ 만9세 미만
‘2’ 만12세 미만
‘3’ 만14세 미만
Age
1
이용자의 연령대
‘4’ 만15세 미만
‘5’ 만18세 미만
‘6’ 만19세 미만
‘7’ 만20세 미만
‘8’ 만20세 이상
Sex
1
성별
NationalInfo
1
내∙외국인 구별
BirthDate
8
생년월일 정보
‘1’ 남성
‘2’ 여성
‘0’ 내국인
‘1’ 외국인
‘0’ 공인인증서
‘1’ 카드
‘2’ 휴대폰
제3장
AuthInfo
1
PIN 발급 시 신원확인수단
‘3’ 대면확인
‘5’ 신원보증인 공인인증서
‘6’ 신원보증인 카드
‘7’ 신원보증인 휴대폰
6) UI연동 예제
□ KCB 아이핀 테스트 URL
● KCB 테스트 URL
- http://test.ok-name.co.kr:9080/tis/test/register_case5.jsp
- 아이핀 팝업에서 정상적으로 인증처리를 한 후 웹사이트에 다음과 같은 정보를 보여
줍니다.
114
제3장 i-PIN 툴킷 설치 방법
[그림 3-37] 아이핀 인증 처리 후 제공 정보
□ JSP 연동예제(KCB 웹사이트 테스트 페이지 샘플 소스)
아이핀 팝업에서 정상적으로 인증처리를 한 후 웹사이트에 다음과 같은 정보를 보여줍니다.
● register_case.jsp
- 웹사이트가 아이핀 팝업호출 시 테스트 페이지입니다.
[표 3-44] KCB 아이핀 소스코드 1
<%@ page language=
“java”contentType=
“text/html; charset=euc-kr”pageEncoding=
“EUC-KR”
%>
<%@ page import=
“java.io.*”
%>
<% String idpUrl
=“[표3-45] 참고”
;
String returnUrl =“http://xxxx............./return_case.jsp”
;
String idpCode
=“V”
;//웹사이트 선호본인확인기관(KCB기관)코드
String cpCode
=“V11111111111”
;//중복가입확인정보(DI) 생성을 위한 사이트 식별번호
이하 생략…………. %>
<html><head>
<script language=
“JavaScript”
>
Korea Internet & Security Agency
115
i-PIN 2.0 도입 안내서
[표 3-44] KCB 아이핀 소스코드 1
function certKCBIpin(){
var popupWindow = window.open(“”
,“kcbPop",“left=200, top=100, status=0, width=450, height=550”);
document.kcbInForm.target =“kcbPop”
;
document.kcbInForm.action =“[표 3-46] 참고”
;
document.kcbInForm.submit();
popupWindow.focus();
return;
}
</script></head>
<body>
이하생략…….
</body></html>
- return Url 정의
아이핀 팝업에서 웹사이트에 PERSONALINFO를 복호화 할 URL주소입니다.(웹사이트
에서 구현한 return_case.jsp의 url full name을 기입하면 됩니다.)
제3장
- 이용자확인기관에서 사이트선호기관에 PUBLICINFO를 전달 할 URL주소입니다.
[표 3-45] idpUrl 정의
분류
idpUrl
테스트 서버
https://tipin.ok-name.co.kr:8443/tis/ti/POTI90B_SendCertInfo.jsp
실제 서비스 서버
https://ipin.ok-name.co.kr/tis/ti/POTI90B_SendCertInfo.jsp
- 아이핀 팝업을 요청할 URL주소입니다.
[표 3-46] 요청 URL
116
분류
URL
테스트 서버
https://tipin.ok-name.co.kr:8443/tis/ti/POTI01A_LoginRP.jsp
실제 서비스 서버
https://ipin.ok-name.co.kr/tis/ti/POTI01A_LoginRP.jsp
제3장 i-PIN 툴킷 설치 방법
● return_case.jsp
- 아이핀 팝업 메인페이지에서 인증처리 후 웹사이트에서 PERSONALINFO를
RECEIVE하는 페이지입니다. 아이핀 팝업으로 띄운 페이지가 opener 객체를 이용해서
호출한 페이지(웹사이트 페이지)의 다른 엘리먼트를 접근하는 것은 보안상의 이유로
브라우저에서 접근을 거부하게 되므로 아이핀 팝업에서 사이트 팝업으로 전환을 하기
위한 페이지입니다.
[표 3-47] KCB 아이핀 소스코드 2
<%@ page language=
“java”contentType=
“text/html; charset=euc-kr”pageEncoding=
“EUC-KR”
%>
<%@ page import=
“java.io.*”
%>
<% 이하생략……….. %>
<html><head>
<script language=
“JavaScript”
>
function fncOpenerSubmit() {
opener.document.kcbOutForm.encPsnlInfo.value = document.dForm.encPsnlInfo.value;
opener.document.kcbOutForm.dupinfo.value = document.dForm.dupinfo.value;
opener.document.kcbOutForm.coinfo1.value = document.dForm.coinfo1.value;
/***
이하생략……….
***/
opener.document.kcbOutForm.action =“/…/…/result_case.jsp”
opener.document.kcbOutForm.submit();
self.close(); }
</script></head>
<body onload=
“javascript:fncOpenerSubmit();”
>
<form name=
“dForm”method=
“post”
>
이하생략…
</form>
</body></html>
Korea Internet & Security Agency
117
i-PIN 2.0 도입 안내서
● result_case.jsp
- 위의 return_case.jsp에서 PERSONALINFO를 복호화 한 사용자 정보를 display 페이
지입니다.
[표 3-48] KCB 아이핀 소스코드 3
<%@ page language=
“java”contentType=
“text/html; charset=euc-kr”pageEncoding=
“EUC-KR”
%>
<html>
<body>
Enc PersonalInfo : <%=request.getParameter(
“encPsnlInfo”
)%><br>
이하생략….
</body>
</html>
※ 각 개발 언어별 연동 예제는 상세 매뉴얼에서 제공합니다.
제3장
118
i-PIN 2.0 도입 안내서
2010년 6월 인쇄
2010년 6월 발행
발행처
방송통신위원회∙한국인터넷진흥원
서울특별시 종로구 세종로 20
방송통신위원회
Tel: (02) 750-1114
서울특별시 송파구 가락동 79-3번지 대동빌딩
한국인터넷진흥원
Tel: (02) 405-5118
인쇄처
호정씨앤피 (☎ 02-2277-4718)
<비매품>
■ 본 안내서 내용의 무단 전재를 금하며, 가공∙인용할 때에는 반드시
방송통신위원회∙한국인터넷진흥원『 i-PIN 2.0 도입 안내서』라고
출처를 밝혀야 합니다.
한국인터넷진흥원(KISA)『118 안내서∙해설서』시리즈
분류
안내서∙해설서
해당팀명
발간년월
대상
수준
시스템관리팀
’
09
IT시스템관리자
중급
도메인팀
’
10.3
일반
초급
모바일 RFID코드 및 OID기반 RFID코드 적용 안내서
무선인터넷팀
’
09.8
IT기업개발자
중급
13.56MHz대역의 OID적용을 위한 미들웨어 개발 안내서
무선인터넷팀
’
09.12
IT기업개발자
중급
IP팀
’
08.12
IT시스템관리자
중급
인터넷윤리팀
’
09.2
DNS 설정 안내서
인터넷
진흥
인터넷주소분쟁해결 안내서
공공기관 IPv6 적용 안내서
인터넷이용
활성화
본인확인제 안내서
본인확인제 만화 안내서
일반, 업무관계자 중급
인터넷윤리팀
’
09
일반
초급
정보보호 사전진단 수행안내서
인터넷서비스보호팀
’
10.4
IT시스템관리자
중급
정보보호수준평가 방법론 안내서
인터넷서비스보호팀
’
07.8/’
10.3
IT시스템관리자
중급
BcN주요장비별 정보보호 안내서
인터넷서비스보호팀
’
07/’
10.1
IT시스템관리자
중급
해킹대응팀
’
10.1
IT시스템관리자
고급
웹보안지원팀
’
10.1
IT시스템관리자
고급
침해사고 분석절차 안내서
웹서버구축 보안점검 안내서
정보보호
시스템
관리
웹어플리케이션 보안 안내서
홈페이지 개발보안 안내서
무선랜 보안 안내서
침해사고대응팀(CERT) 구축/운영 안내서
해킹대응팀
’
10.1
일반
중급
침해사고대응기획팀
’
07.9
업무관계자
중급
웹보안지원팀
’
09.6
IT시스템관리자
중급
IT시스템관리자
중급
WebKnight를 활용한 IIS 웹서버 보안 강화 안내서
WebKnight 로그 분석 안내서
ModSecurity를 활용한 아파치 웹서버 보안 강화 안내서
보안서버구축 안내서
정보보호인증
기업
정보보호
신규
서비스
정보보호
개인정보
스팸
인력양성
개인정보보호기술팀
’
08.7
공공서비스보호팀
’
09.12
정보보호 안전진단 해설서
기업보안관리팀
’
08.4/’
10.1
업무관계자
초급
정보보호 안전진단 업무 안내서
기업보안관리팀
’
10.1
업무관계자
초급
정보보호관리체계 안내서
기업보안관리팀
’
09.12
일반
초급
인터넷전화(VoIP) 침해사고 대응 안내서
융합보호R&D팀
’
10.5
업무관계자
초급
패스워드 선택 및 이용 안내서
융합보호R&D팀
’
10.1
일반
초급
암호이용 안내서
융합보호R&D팀
’
07.12/’
10.1
일반
중급
IPv6 운영보안 안내서
융합보호R&D팀
’
06.12
IT시스템관리자
중급
IPv6 보안기술 안내서
융합보호R&D팀
’
05
일반
초급
와이브로 보안기술 안내서
융합보호R&D팀
’
06.8
IT시스템관리자
중급
암호 알고리즘 및 키 길이 이용 안내서
융합보호R&D팀
’
07
IT시스템관리자
중급
(기업 및 기관의 IT 정보자산 보호를 위한) 암호정책 수립 기준 안내서
융합보호R&D팀
’
07
IT기업개발자
중급
(정보의 안전한 저장과 관리를 위한) 보조기억매체 이용 안내서
융합보호R&D팀
’
09
일반
초급
웹사이트 회원탈퇴 기능 구현 안내서
융합보호R&D팀
’
06
IT시스템관리자
중급
개인정보의 기술적∙관리적 보호조치 기준 해설서
개인정보보호기획팀
’
09.9
업무관계자
중급
위치정보의 보호 및 이용 등에 관한 법률 해설서
개인정보보호기획팀
’
08.12
업무관계자
중급
위치정보보호를 위한 관리적∙기술적 보호조치 권고 해설서
개인정보보호기획팀
’
08.11/’
10.1
업무관계자
중급
웹사이트 개발∙운영을 위한 개인정보 안내서
개인정보보호기술팀
’
09.11
i-PIN 2.0 도입 안내서
IT 보안성 평가∙인증 안내서
일반, 업무관계자 초급
IT기업개발자, 관리자 중급
개인정보보호기술팀
’
09.7/’
10.6
업무관계자
중급
김대리, 개인정보보호 달인되기
이용자권익보호팀
’
09.8
업무관계자
중급
기업의 개인정보영향평가 수행을 위한 안내서
이용자권익보호팀
’
09.1
업무관계자
중급
스팸대응팀
’
08.9
KISA아카데미팀
’
09
사업자를 위한 불법스팸 방지 안내서
지식정보보안 신규일자리 창출사업 세부시행 안내서
일반, 업무관계자 초급
업무관계자
초급
총43종
■ 본 118 안내서∙해설서는 한국인터넷진흥원 홈페이지(www.kisa.or.kr) 자료실에서 내려 받으실 수 있습니다.
110-777 서울특별시 종로구 세종로 100번지
Tel : 02-750-1114
www.kcc.go.kr
138-950 서울특별시 송파구 가락동 79-3번지 대동빌딩
Tel : 02-405-4118 Fax : 02-405-5119
www.kisa.or.kr