1www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
목차
PKI 개념
응용프로그램 방식 보안서버 구축
구축방식 비교
1. PKI 개념
3
4
PKI (Public Key Infrastructure)?
ClientCert
ServerCert
certificate
Directory Server
repository PKI Server
Server-side software
Client-side softwareCertificate Authority
Registration Authority
(PC/Phone/PDA)PKI Client
Digital
Signature
5
전자서명의 필요성
산업사회
onlineOffline (대면획인)
정보화 사회
송신자의 신원을 속이는 위험인증
(Authentication)
전자서명
(Digital Signature)
전송되는 정보의 변경의 위험무결성
(Integrity)
전자서명
(Digital Signature)
정보전송사실에 대한 부인의 위험부인방지
(Non-repudiation)
전자서명
(Digital Signature)
전송되는 정보의 노출의 위험기밀성
(Confidentiality)
암호화
(Encryption)
솔루션문제
6
신원확인과 전자서명
인증방법
이름주민등록번호주소발급일지문
: 김재중: XX0921-152XXXX: SG, Seoul, Kr: 2002/6/1:
주민등록증
재사용 가능
실생활
이름일련번호
유효기간
공개키
: 김재중: 883XXX8377: SG, Seoul, Kr: 2008/6/1~2009/5/31
:
공인인증서
인증기관서명
재사용 불가
Digital signature using asymmetric encryption /
decryption method
암호화된개인키
+
전자서명
인터넷 환경
Signature or Signature-seal
7
인증서의 종류
사설인증서
사설 인증서는 정부에 의해 인증되지 않은 기관에서 발급된 것으로 특정용도에 특정 응용서비스에 사용된다.
공인인증서
공인인증서는 전자서명법에 의하여 지정된 인증기관에 의하여 철저한 대면신원확인을 통하여 발급되는 것으로 다양한 응용서비스에 사용되어 진다.
구분 공인인증서 사설인증서
보안 및 기술 레벨 법에 의하여 규정된 기술규격을 준수
검증 불가
법적 효력 전자서명법에 의한 법적 효력을 가짐
당사자 간의 계약관계
보상 쉽움 어려움
응용서비스 이용범위 다양함 적음
8
응용 서비스의 비교
Internet mall
InternationalLaw
E-networkLaw
IntellectualProperty Law
Basic e-trade Law E-SignatureLaw
Reserve Agent
E-pay
security
E-Auth
High-speed Internet
e-edu
E-govern
Cyber S1
Virtual-bank
Sales NW
E-procurementResearch NWVirtual CoProduct NW
Supply NW
Netizen
E-parkentertainmentE-missionary
E-health
Cyber insure
E-trade
Societyrules
BasicInfra
B-to-G
B-to-B
B-to-C
InstitutionsCommercial Law
Civil Law
CriminalLaw
City Cost..Law Building Law
road
energy
water
Communication
Lawsystem
BasicInfra
PublicInfra
IndustryInfra
EnvironmentEstablish-ment
policePublic office
Bank schoolland
Public site
Sales CoPhysical Co
instituteMajor Cofactory
Small CoTrade Co
The stores
House
theaterchurch
court restaurant
gym
실 세계 인터넷 환경
9
전자상거래분야
• 전자상거래• 티켓팅 및 예약• 온라인 지불• B2B 마켓플레이스
공공분야
• 전자조달• 홈택스• 전자민원• 전자세금계산서• 이러링• 전자관세
금융분야
• 인터넷 뱅킹• 사이버 증권• 인터넷 보험• 전자거래• 전자환전
기타
• 의료서비스• 사이버대학• 주주총회• 전자문서 보관소• 시점확인 서비스
InternetShopping
Civil Petition
Time StampingService
InternetIssuance
InternetBanking
InternetBidding
EDICyberTrading
InternetGeneralHolder’smeeting
Certificate
PaymentGateway
VPN
SecureEmail
CodeSigning
CyberMedics
Biometrics
M-Commerce
E-Receipt
G
B C
공인인증서 응용서비스
2. 응용프로그램 방식보안서버 구축
11www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
보안서버 기능
• 적은 비용으로 SSL 구현이 가능함
• 피싱(phishing) 공격을 방지
• 웹사이트의 도메인이나 IP에 대한 체크를 통한
확인 검증을 제공함
• 고객의 신뢰성 제공을 위한 보안씰을 제공
• 개인정보보호를 위한 기업이미지 향상
피싱 사이트의 방지
전송정보의 노출 방지(sniffing)
기관의 신뢰성 향상
• SSL/TLS은 국제표준으로 상호호환을 제공함
• 사용자의 개인정보가 암호화되어 서버로 안전하게
전송되어 개인정보보호가 됨
12www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
▣ 응용프로그램 방식 정의
◈응용레벨에서 암/복호화를 수행할 목적으로 개발된 것으로 Client와Server 모듈로 구성됨
▣ 응용프로그램 방식의 구성요소
◈ Client 툴킷: 사용자 단에 설치되는 보안모듈로 사용자의 데이터를 서버의인증서를 이용하여 암호화하여 서버로 전달하는 역할을 수행
◈ Server 툴킷: 서비스 서버에 설치되는 보안모듈로 암호화된 데이터를복호화를 수행함
CipherModule
CertificateModule
SignatureModule
Dynamic Link Library
COM
javascript
VisualBasic
PowerBuilder
C/C++
HTML Client Application
CipherModule
CertificateModule
SignatureModule
Shared Object/Archive Java Class Library
Crypto APIStandardJCE / JCAInterface
PHP CGI JSP Servlet
Server Application
Client Toolkit Server Toolkit
Data Encryption
응용프로그램 방식
13www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
USER TCP/IP
INTERNET
Application Server
Internet Browser WEB Server
HTML HTML
Client Crypto Toolkit
Server Crypto Toolkit
Client Server
Client Crypto Toolkit
Server Crypto Toolkit
HTTP
Digital Signature
데이터
데이터
Data Encryption
Authentication
Integrity
Confidentiality
Non-Repudiation
Certificate
Certificate Certificate
Certificate
PKI 툴킷의 기본 구성
14www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
Encryption ?
Each Business Unit
Digital Signature ? Digital Signature ?
Data
Digital Signature+
EncryptionEncryption Digital Signature Plain Data
Reflecting to DB Reflecting to DB
Yes No
NoNoYes Yes
전자서명과 암호화 절차
15www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
1. Cab 파일 생성 및 코드서명(Code Signing)2. Client 툴킷의 보안 API를 이용하여 HTML에 추가3. 사용자가 사이트에 접속시 자동으로 다운로드되어 설치를 진행
<OBJECT ID = "SG_ATL"CLASSID="CLSID: BF693DA6-ADD8-4DA2-B2B7-51F736B51D72"CODEBASE=“http://www.signgate.com/cab/AxSignGATE.cab" ></OBJECT>
I. 자동설치(ActiveX)
II. 수동 설치
1. 자동설치가 잘 이루어 지지 않을 경우 수동설치 버튼을 클릭하여 설치(http://www.signgate.com/cab/Setup.exe)
1. 설치 절차에 따라 설치를 수행
Client 모듈 설치
16www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
..function GenerateSignature(){
var strOriginalMessage = "Este es el mensaje original.0123456789~~;-) ";
var strUserDN = SG_ATL. SG_init_user(“0”,””);if ( ret != 1 ) {
return “”;}
var strSignature = SG_ATL. PKeySignData(strOriginalMessage , “SHA1”, strUserDN, “”);if (strSignature == "") {
return “”;}
return strSignature ;}..<OBJECT id=SG_ATL classid=CLSID:B33FEBDC-FF38-4D0F-9C76-58C4733947AD></OBJECT>.
Client 적용예제(HTML+Javascript)
17www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
1. 개발언어 및 서버 환경에 맞는 툴킷 구매2. 서버 보안모듈을 시스템 라이브러리 경로에 복사를 수행3. 응용서비스의 비즈니스 로직에 따라 툴킷의 함수를 호출하여 프로그램
작성4. 보안라이브러리 링크 및 컴파일 수행
$(LD_LIBRARY_PATH)/libcrypto.a, libcrypto.so, libcrypto.sl (서버응용프로그램 개발환경에 따라 상의)
I. Library Install (C, PHP, Perl, ...)
II. Jar Install (JAVA)
1. 보안 API Jar 파일을 시스템 클래스 경로에 복사수행2. 응용서비스에서 보안API를 호출하여 프로그램하여 컴파일 수행
$(CLASSPATH)/signgate.jar
Server 모듈 설치
18www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
Import <signgate.crypto.util.PKCS7Util>.
String certFilePath = "c:\\testcert\\signCert.der";String keyFilePath = "c:\\testcert\\signPri.key";String passwd = "whekfcjd";
byte[] cert = FileUtil.readBytesFromFileName(certFilePath);byte[] pkey = FileUtil.readBytesFromFileName(keyFilePath);
String testData = "1234567890 !@#$%^&*() this is test string!";
PKCS7Util p7 = new PKCS7Util();
/* pkcs7 generate signature and enveloped message */
String signedAndEnveloped = p7.genSignedAndEnvelopedData(pkey, passwd, cert,cert, testData.getBytes());
System.out.println(signedAndEnveloped);..
Server 적용예제(JAVA)
3. 구축 방식 비교
20www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
Internet
WEB Browser
WEB Server
Server
Application
Application DB
WEB Browser
Cipher Text
Cipher Text
Plain Text
Plain Text
Plain Text
User A
User B
SSL/TLS
SSL/TLS
SSL/TLS
• SSL/TLS may NOT cover End-to-End Security
• SSL/TLS do NOT provide Non-Repudiation Service
SSL 방식
21www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
Internet
WEB Browser
WEB Server
Server
Application
Application DB
WEB Browser
Cipher Text
Cipher Text
Cipher Text
Cipher Text
Cipher Text
with
E-Signature
User A
User B
Crypto
Library
Crypto
Library
Crypto
Library
E-Signature
E-Signature
E-Signature
E-Signature
• Developers MUST know proper usage of Cryptographic Library
응용프로그램 방식
22www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
내용
장점
웹 서버와 웹 브라우저의 모듈을 사용하므로 별도의 개발이 필요없음
단대단 보안을 전용으로 쉽게 제공하는 국제표준 프로토콜
단점
SP 서버 SSL Client대해서 구현에 대한 별도 비용이 소요되며 적용이 매우 복잡하고 공개된 S/W 이용시 신뢰성확보가 어려움
정해진 프로토콜이므로 제공하는 기능 외의 다양한 요구사항 반영이 힘듦
서비스 제공자(SP)의 인증이 취약(Client 인증은 optional)
HTML 전체를 암호화함
초기 키를 교환(Handshake)하는 시간이 많이 걸림
웹 서버가 제공하는 최소한의 인증서 검증만 수행함
국내 암호 알고리즘을 제공하지 않음(SEED, KCDSA)
SSL을 통한 보안적용의 장단점
23www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
내용
장점
요구사항에 따라서 필요한 보안기능을 개발이 가능함.
공인인증을 사용함으로 서버와 CP에 대한 인증이 가능하고표준인증서 검증수행(RFC 3280 준용)
HTML내의 필요한 요소만 암호화 적용이 가능
국내표준 알고리즘 제공(SEED, KCDSA)
XML 표준 단에서 전자서명 및 암호화를 제공
단점
별도의 프로그램을 통해 보안을 적용함으로 개발 필요
서버와 SP에 별도의 Toolkit을 설치하여야 함으로 구매비용소요
응용프로그램 방식을 통한 보안적용의 장단점
24www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved
응용프로그램 방식 SSL 방식
사용자 인증공인인증을 이용하여 전자서명을 사용
사설인증으로 Client 인증은 optional이므로ID/Password를 사용함.
암호화Application Layer단의Encryption을 사용
Transport Layer단의 암호화 제공
지원 플랫폼 및
개발 언어
Java 툴킷 사용시 플랫폼에 독립적임
서버에서 openSSL이용시는 개발언어는 C로 되어 있고 해당 플랫폼에직접 Porting작업이 필요
확장성변경된 표준에 맞게 수정이 용이함
End to End 보안만 지원
SSL방식과 응용프로그램 방식 비교
Service+System+Solution+Software+Signature+Global leader