26
2010. 07. 응용프로그램 방식 보안서버 구축방법 김재중 팀장 ([email protected]) sstrust.net

sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

2010. 07.

응용프로그램 방식보안서버 구축방법

김재중 팀장

([email protected])

sstrust.net

Page 2: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

1www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved

목차

PKI 개념

응용프로그램 방식 보안서버 구축

구축방식 비교

Page 3: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

1. PKI 개념

Page 4: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

3

Page 5: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

Page 6: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

5

전자서명의 필요성

산업사회

onlineOffline (대면획인)

정보화 사회

송신자의 신원을 속이는 위험인증

(Authentication)

전자서명

(Digital Signature)

전송되는 정보의 변경의 위험무결성

(Integrity)

전자서명

(Digital Signature)

정보전송사실에 대한 부인의 위험부인방지

(Non-repudiation)

전자서명

(Digital Signature)

전송되는 정보의 노출의 위험기밀성

(Confidentiality)

암호화

(Encryption)

솔루션문제

Page 7: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

Page 8: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

7

인증서의 종류

사설인증서

사설 인증서는 정부에 의해 인증되지 않은 기관에서 발급된 것으로 특정용도에 특정 응용서비스에 사용된다.

공인인증서

공인인증서는 전자서명법에 의하여 지정된 인증기관에 의하여 철저한 대면신원확인을 통하여 발급되는 것으로 다양한 응용서비스에 사용되어 진다.

구분 공인인증서 사설인증서

보안 및 기술 레벨 법에 의하여 규정된 기술규격을 준수

검증 불가

법적 효력 전자서명법에 의한 법적 효력을 가짐

당사자 간의 계약관계

보상 쉽움 어려움

응용서비스 이용범위 다양함 적음

Page 9: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

실 세계 인터넷 환경

Page 10: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

공인인증서 응용서비스

Page 11: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

2. 응용프로그램 방식보안서버 구축

Page 12: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

11www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved

보안서버 기능

• 적은 비용으로 SSL 구현이 가능함

• 피싱(phishing) 공격을 방지

• 웹사이트의 도메인이나 IP에 대한 체크를 통한

확인 검증을 제공함

• 고객의 신뢰성 제공을 위한 보안씰을 제공

• 개인정보보호를 위한 기업이미지 향상

피싱 사이트의 방지

전송정보의 노출 방지(sniffing)

기관의 신뢰성 향상

• SSL/TLS은 국제표준으로 상호호환을 제공함

• 사용자의 개인정보가 암호화되어 서버로 안전하게

전송되어 개인정보보호가 됨

Page 13: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

응용프로그램 방식

Page 14: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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 툴킷의 기본 구성

Page 15: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

전자서명과 암호화 절차

Page 16: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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 모듈 설치

Page 17: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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)

Page 18: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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 모듈 설치

Page 19: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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)

Page 20: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

3. 구축 방식 비교

Page 21: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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 방식

Page 22: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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

응용프로그램 방식

Page 23: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

22www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved

내용

장점

웹 서버와 웹 브라우저의 모듈을 사용하므로 별도의 개발이 필요없음

단대단 보안을 전용으로 쉽게 제공하는 국제표준 프로토콜

단점

SP 서버 SSL Client대해서 구현에 대한 별도 비용이 소요되며 적용이 매우 복잡하고 공개된 S/W 이용시 신뢰성확보가 어려움

정해진 프로토콜이므로 제공하는 기능 외의 다양한 요구사항 반영이 힘듦

서비스 제공자(SP)의 인증이 취약(Client 인증은 optional)

HTML 전체를 암호화함

초기 키를 교환(Handshake)하는 시간이 많이 걸림

웹 서버가 제공하는 최소한의 인증서 검증만 수행함

국내 암호 알고리즘을 제공하지 않음(SEED, KCDSA)

SSL을 통한 보안적용의 장단점

Page 24: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

23www.sgco.kr Copyright 1999-2009@SG Inc. All rights reserved

내용

장점

요구사항에 따라서 필요한 보안기능을 개발이 가능함.

공인인증을 사용함으로 서버와 CP에 대한 인증이 가능하고표준인증서 검증수행(RFC 3280 준용)

HTML내의 필요한 요소만 암호화 적용이 가능

국내표준 알고리즘 제공(SEED, KCDSA)

XML 표준 단에서 전자서명 및 암호화를 제공

단점

별도의 프로그램을 통해 보안을 적용함으로 개발 필요

서버와 SP에 별도의 Toolkit을 설치하여야 함으로 구매비용소요

응용프로그램 방식을 통한 보안적용의 장단점

Page 25: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

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방식과 응용프로그램 방식 비교

Page 26: sstrust.net 응용프로그램방식 보안서버 구축방법 · 인증방법. 이름. 주민등록번호 ... 작성 4.보안라이브러리 링크 및 컴파일 수행 ... 표준인증서

Service+System+Solution+Software+Signature+Global leader