반응형


 전자상거래의 보안기술 및 암호알고리즘


1 물리적 보안

전자상거래라 해서 기본적인 컴퓨터 네트웍의 보안과 다른 것은 아니다즉 일반적으로 쇼핑몰시스템에는 외부에서 인가받지 않은 사람의 침입을 방지하는 “침입차단 시스템” 많이 알려진 용어로는 방화벽(firewall)을 통한 보안을 확보 할수 있겠다방화벽은 그야말로 보안의 기본이 된다집을 지으면 담장을 만들고 대문을 만들고 쪽문도 만든다방화벽을 설치해 보안을 확보한다는 것은 바로 집에 담장을 쌓는것과 같은 이치이다그러나 집에 담장이 있다해도 대문을 만들지 않을수 없다왜냐하면 주인은 들어가고 나가고 해야하기때문이다또 필요하면 쪽문도 만들어야 한다이런 대문을 쉽게 이야기한다면 바로 WWW서버를 접근하도록 하기위한 TCP 80번포트와 같은 곳을 말한다전자상거래는 주로 WWW서버를 이용해 구축하고 일반에게 공개하는데 앞단에 방화벽을 두고 WWW마져도 막아버린다면 그건 정말 담장을 쌓고 주인조차도 나가거나 들어가지 못하는 꼴이 되고 마는것이다방화벽시스템에는 이런 문들이 많이 존재한다이런 것들이 바로 보안상 허점이 되고 있다또 방화벽이 설치되었다 하더라도 전자상거래시 네트웍을 통해 오가는 거래정보지불정보사용자 개인정보등이 보호되는 것이 아니므로 그야말로 시스템을 위한 침입차단정도의 보안만을 지원하기 때문에 방화벽을 설치했다고 전자상거래보안이 다 되었다고 안심할 수 있는 것은 아니다.

정보 보안

전자상거래 보안에 있어서 궁극적인 보안은 바로 정보의 보안 즉 컴퓨터 데이터베이스나 디스크에 저장된 정보나 네트웍을 타고 흘러다니는 정보를 어떻게 외부인들로부터 보거나 수정하는것으로부터 보호할 것인가에 대한 문제를 푸는 것이다정보의 보안을 위해서는 한마디로 암호기술을 사용해 정보를 암호화해서 통신하는 것만이 유일한 해결책이라고 할 수 있다전자상거래에서 거래정보개인정보개인의 금융정보금융거래나 상거래를 위한 비밀번호등 중요한 디지털 정보가 수없이 생성되고 또 저장되고 왔다 갔다 하게된다이런 중요한 정보를 암호화함으로써 도용이나 오용을 막을수 있고 위험으로부터 소비자나 상거래쇼핑몰을 보호 할 수 있다.

기밀성보증을 위한 자료의 암호화

기밀성 즉 내용을 다른 사람이 볼수 없도록 암호화하는 기술은 바로 암호화의 기본이라 할수 있겠다자료의 암호화에 필요한 암호기술은 일반적으로 대칭형 암호기술비대칭형 암호기술 둘로 나누어진다. 70년대와 80년대에는 주로 대칭형암호기술만으로 보안시스템을 구축했었으나 최근에는 비대칭형암호기술 즉 RSA, ECC와같은 암호기술을 이용해 네트웍환경에서도 자연스럽게 적응할수 있는 보안시스템을 구축하는 것이 일반화되었다전자상거래에 있어서 중요한 정보들을 암호화함으로써 거래의 기밀을 기할수 있게된다최근 (98년 2월 11일자 전자신문 1국내 정부가 발표한 전자상거래 종합대책을 보면 그가운데 민간상업분야의 암호기술을 양성화하기위한 법제도의 정비가 들어있다.

암호기술에서 가장 논란이 되고 있는 것은 바로 암호기술의 강함과 약함에 대한 이야기이다암호기술의 안전함은 주로 암호화를 할 때 사용하는 암호알고리즘의 키의 길이를 가지고 이야기한다즉 40bit키를 가지는 암호기술(RC4-40)이 과연 안전한가? 56bit키를 가지는 DES암호알고리즘은 안전한가? 128bit키를 가지는 IDEA알고리즘은 과연 얼마나 안전한가하는 질문을 던질수 있다여기서 중요한 포인트하나를 짚고 넘어가자암호알고리즘의 키의 길이와 안전도에 대해서는 절대로 미국사람들의 말을 믿지 말라는 것이다왜냐하면 미국정부의 규제로 미국에서 특별한 처리없이 그냥 수출이 되는 암호제품은 40bit 혹은 56bit로 제한되어 있기 때문에 미국기업가들은 외국에 나와서 56bit암호기술이 절대로 안전하다고 말할 수 밖에 없게된다그래야 자신들의 제품을 외국에 팔 수가 있으니까전세계적으로 암호학의 대가들이 모여서 96년에 쓴 “암호키의 길이와 보안성정도”에 대한 논문(http://theory.lcs.mit.edu/~rivest/bsa-final-report.ascii)으로는 40bit암호정보를 현재 ASIC기술로 보드를 만들면 0.0002초만에 전부 깰수 있다는 계산이 나왔다동일한 기술로 56bit암호화기술은 12초면 모든 암호를 풀수 있다는 계산이 나왔다대칭형암호기술의 경우 적어도 100bit이상의 키의 길이를 갖는 암호기술을 사용해야한다

1 자료의 무결성 보증을 위한 해쉬함수

자료가 암호화되어 있다고 보안이 다 해결되는 것이 아니다. 중간에 누군가 자료를 수정했거나 자료를 받은 수신자가 해당자료를 임의로 고쳐서 이익을 취하려고 할때를 대비해야 한다. 여기서 말하는 자료란 바로 디지털 정보이기 때문에 고친다고 흔적이 남는 것도 아니고 완벽하게 수정/복제할 수 있기 때문에 자료가 변조되지 않았는지도 증명하는 방식이 필요하게 된다. 이런것을 알아내는 암호적 방식이 바로 단방향해쉬함수들이다.

2 거래 당사자의 신분확인을 위한 전자인증기술

앞에서 언급했듯이 인터넷전자상거래는 네트웍저편에서 컴퓨터를 통해 거래하는 것이므로 정말 저편에 있는 사람이 바로 그사람인가를 확인할수 있는 방법이 필요하게 된다. 얼굴을 마주보고서도 사기를 당하는 시대인데 네트웍환경에서 속이는 방법은 더욱 다양해 질 것이기때문이다.

그러므로 네트웍상 즉 사이버스페이스상에서의 각각의 사람의 신분을 확인 할 수 있는 인프라가 바로 전자상거래의 기반 인프라가운데 하나라 할 수 있겠다. 이것이 바로 전자인증기술이다.

전자인증기술은 여러가지 암호의 방식을 사용해 구현할 수 있다. 그러나 80년대 후반부터는 공개키 암호기술을 이용해 ITU-T X.509기술을 기반으로 CA(Certificate Authority)서버를 중심으로 한 전자인증기술이 국제적으로 표준으로 사용되고 있고 또 앞으로도 많이 확산될 것이다.

단적인 예로서 WWW프로토콜의 보안 프로토콜로 널리 사용되고 있는 SSL(Secure Socket Layer), RSA사가 제안한 보안전자우편프로토콜인 S/MIME, 국제표준 보안전자우편프로토콜인 PEM(Privacy Enhanced Mail)들도 전부 X.509기술을 인증방법으로 채택하고 있다.

심지어 그룹웨어인 로터스 노츠역시 인증기술은 X.509기술을 기반으로 한다. 전자인증기술과 서비스인프라는 크게 두가지로 나누어 볼수 있다.

공공성을 띠는 인증서비스인프라와 민간분야의 인증서비스 인프라이다.

공공인증서비스인프라는 금융망, 행정전산망, 교육망등 공공성을 띠는 인증업무에 적용하는 인증서비스를 말하며 이는 국가적으로 인증체계와 구조를 형성해 공신력을 가져야 한다.

민간인증서비스인프라는 예를들면 어떤회사가 회사내에서 싱글사인온(Sigle Sign On, 자신이 사용하는 많은 컴퓨터를 접속하기위해 복수개의 사용자명과 패스워드를 관리하는 불편을 덜기위해, 회사에서 하나의 X.509전자인증서를 발급받고 그 인증서 하나로 모든 시스템에 자신의 신분을 확인받고 접속사용하도록 함으로써 관리비용이나 편리성을 도모하는 시스템)을 위해 직원을 대상으로 인증서를 발급하는 경우는 오로지 회사내에서의 네트웍과 컴퓨터시스템에서만 적용되므로 굳이 정부기관의 공인받지 않더라도 회사자체적으로 신분증을 발급할 수 있게된다.

예를 들면 주민등록증의 발급은 동사무소등 국가기관의 통제를 받는 신분확인 절차를 받아서 발급받지만 회사의 사원증을 발급받는데는 회사 자체의 판단으로 발급할 수 있는 것과 같은 이치이다.

Digest

비대칭키 알고리즘

비대칭키 암호화 알고리즘은 서로 다른 두개의 키를 이용하여 하나의 키는 Encryption에

다른 하나의 키는 Decryption에 사용한다.

1.RSA (Rivest Shamir Adleman) : RSA는 1978년 Rivest, Shamir, Adleman이 발표한 논문인 "A Method for Obtaining Digital Signatures and Public Key Cryptosystems"에 제안된 암호 시스템을 말하며, 발표자의 머리 문자를 연결한 것이다.

1) 시스템 설명 : RSA 암호 시스템은 매우 큰 정수의 소인수 분해가 어렵다는 가정하에서 설계된 것이다.

시스템 구성은 다음과 같다.

① 두개의 큰 소수 p와 q를 랜덤하게 생성하여 n=pq를 계산한다.

② Euler 함수값 oslash(n)=(p-1)(q-1)과 서로 소가 되는 e를 계산한다. (gcd(e,oslash(n))=1)

③ oslash(n)과 e로부터 유클리드 알고리즘을 사용하여 ed≡1(mod oslash(n))가 되는 d를 계산한다.

이로부터 다음과 같은 공개키 암호 시스템을 구성한다.

공개키 : n, e

비밀키 : p, q, d

Message Space = M∈Z | 0≤M≤n-1

암호화 : C = E(M) ≡ Me (mod n)

복호화 : M = D(C) = D(E(M)) ≡ Cd mod n ≡ Med mod n

위에서 서술한 내용은 다음 몇 가지 정리에 근거하고 있다.

[정리] (Euler의 정리) 만약 a와 n이 서로 소이면 aoslash(n) ≡ 1 (mod n)이다.

p, q가 소수이고 n=pq라 하자.

만약 gcd(e, oslash(n)) = 1 이고, ed ≡ 1 (mod oslash(n)) 이면

Med ≡ M (mod n) (0≤M≤n)

<증명> oslash(n) = oslash(p)oslash(q)이다.

그러므로 Med = Mkoslash(n)+1 ≡(Moslash(p))koslash(q)middotM(mod q)≡M(mod p)

마찬가지로 Med ≡ M (mod q)

따라서 중국인의 나머지 정리를 이용하면

Med ≡ M (mod n) 임을 알 수 있다.

[예] p=47, q=59, n=pmiddotq=2773이라 하자.

그러면 oslash(2773)=(47-1)middot(59-1)=2668

비밀키를 d=157이라 하면, 유클리드 알고리즘을 이용하여 공개키 e=17을 구할 수 있다.

만약 A=01, B=02, ……, Z=26을 대응시키고 blank=00을 대응 시키자.

"Its all greek to me"라는 message에 대응하는 숫자열은

0920 1900 0112 1200 0718 0505 1100 2015 0013 0500 이 된다.

이때 (0920)e = (0920)17 ≡ (0948) (mod 2773)이고, 전체 message를 암호화 하면,

0948 2342 1084 1444 2663 2390 0778 0774 0219 1655가 된다.

2) RSA 암호 시스템의 안전성

공개키 e와 n을 가지고 비밀키 d를 구할 수 있다면 RSA는 해독 되게 된다.

그런데 n으로부터 oslash(n)을 구현한다면 유클리드 알고리즘을 사용하여 d를 쉽게 계산 할 수 있으므로 전체적인 비도는 oslash(n)의 계산에 달려 있다.

그런데 n을 소인수 분해할 수 있다면 oslash(n)은 자동적으로 계산된다. 따라서 n의 소 인수 분해는 곧 RSA 암호 시스템의 해독을 의미한다.

한편 n의 소인수 분해를 모르고 oslash(n)의 값을 결정하는 방법은 알려지지 않고 있다.

RSA 암호 시스템을 구성하기 위한 소수 p와 q는 다음 조건을 만족해야 한다.

①p와 q는 거의 같은 크기의 수이다.

②p-1과 q-1은 큰 소인수를 갖는다.

③gcd(p-1, q-1)은 작은 수이다.

위와 같은 조건에 의해 선택된 n=pq는 인수 분해하기 어려운 형태중의 하나이다.

현재까지 알려진 인수분해 알고리즘 중 가장 좋은 것의 복잡도는

exp((O(1) + 1 )lognfrac12 log lognfrac12)이고, 특수한 형태의 정수에 대한 인수분해

알고리즘은 exp(O(1)+1)logn⅓ log logn⅔ )임이 알려져 있고 아직 다항식 시간 알고리즘은 없다.

* RANDOM NUMBER GENERATOR

1) LFSR Random : Linear Feedback Shift Registers를 사용한 Random number generator로써 수행속도가 빠르다.

2) Real Random : LFSR Random과 algorithm M을 사용하여 Random number를 생성시킨 후에 MessageDigest로 Hash하여 사용하게 된다.

대칭키 알고리즘

대칭키 암호화 알고리즘은 Encryption과 Decryption에 하나의 키를 사용하며,

대칭키 암호화 알고리즘의 종류는 DES, RC2, RC4, RC5, IDEA, Blowfish 등이 있다.

1. RC2 : RC2는 secret key를 사용하는 block encryption algorithm으로써, DES를 대체하고자 하는 목적으로

개발되었다. Input Block과 Output Block의 크기는 8byte이며, key의 길이는 1 ~ 128 bytes 에 이르기까지 다양하게 사용될 수 있다. 보통은 8 byte의 키를 사용한다.

2. RC4 : RC4는 다양한 길이의 key size를 가지는 stream cipher이다.

algorithm은 OFB mode의 형태로 작동하게 되며, keystream은 plaintext와 독립적이다.

3. RC5 : RC5는 word에 기초한 BlockCipher로써 다양한 Parameter들을 가진다. ( BlockSize, KeySize, WordSize, number of Rounds.) 이때 BlockSize는 WordSize의 두배이며, 일반적으로는 16, 32, 64...등과 같이 사용된다. Round는 최소 6 이상이 되어야 보안적인 의미를 지니게 되며, 최소 12이상, 가능하다면 16정도가 권장된다.

4. IDEA : IDEA는 8bytes의 block과 16bytes의 secret key를 지닌다.

cipher IDEA는 output의 변화에 따라 8 round로 구성되는 iterated cipher이다.

5. DES : DES는 8bytes의 plaintext/ciphertext와 8bytes의 key를 지니는 BlockCipher Algorithm으로써 decryption algorithm은 incryption algorithm을 역으로 적용하게 된다. 8bytes key중에서 실제로 사용되는 key length는 56bits이며, 각 byte의 least significant bit은 parity check에 사용된다.

6. DES3 : DES3(tripleDES, DES_EDE3)는 DES의 보안적 효과를 증가시키기 위해서 사용되며, 각 8bytes의 key를 사용하여 encryption- decryption-encryption을 행한다. 따라서 key size는 24bytes가 되며, plaintext/ciphertext의 크기는 DES와 같이 8bytes이다.

7. DESX : DESX는 DES_EDE3수준의 암호화 Strength를 지니면서 DES_EDE3의 단점인 속도를 극복하고자 개발되었다. DESX는 DES_EDE3와 마찬가지로 24bytes의 key size를 가지는데, plaintext는 첫 번째 8bytes key와 xor operation을 하며, 이 결과를 두 번째 8bytes key로 encryption/decryption하고 다시 이 결과와 세 번째 8bytes 키로 xor operation을 한다.

8. Blowfish : BLOWFISH는 DES를 대체하기위한 새로운 대칭키 블록 암호화 알고리즘으로서 1993년 BRUCE SCHNEIER에의해 만들어진 알고리즘이다.

[ 특 징 ]

1) 블록 사이즈 : 64 비트

2) KEY LENGTH : 32비트 ~ 448비트

3) 암호화 속도는 DES나 IDEA보다 빠르다. ( 과거 15년 동안 내구력이 있었던 DES는 이제는 수명이 끝나가고 있다. 56 비트 키 사이즈는 BRUTE-FORCE 공격에 공격받기 쉽다. DIFFERENTIAL CRYPTANALYSIS(미분암호해독)와 LINEAR - CRYPTANALYSIS에서의 최근 발표는 DES가 다른 공격에서도 공격 받기 쉽다는 것을 지적하고 있다. )

4) UNPATENTED AND ROYALTY-FREE

2. Diffie-Hellman

Diffie-Hellman은 1976년에 개발된 최초의 public-key algorithm이다. 이것은 제한된 영역에서 멱의 계산에 비하여 이산 대수의 계산이 어렵다는 것에 그 보안적인 기초를 둔다.

iffie-Hellman은 key distribution에는 사용될 수 있으나 message를 암호화하거나 복호화 하는데에는 사용될 수 없다. 연산 과정은 간단하다.

key를 교환하고자 하는 양 party(A, B)가 prime n 과 g의 사용에 동의하였다고 할 때, protocol은 다음과 같이 동작한다.

A : X = g**x mod n ( x는 large random integer )

B : Y = g**y mod n ( y는 large random integer )

=> 이때 A, B는 각각 X와 Y를 상대방으로 전달한다.

A : k = Y**x mod n

B : kp = X**y mod n

=> 이때 k와 kp는 g**(xy) mod n과 동일하다.

Diffie-Hellman implementation은 PKCS#3 Diffie-Hellman Key Agreement Standard

(An RSA Laboratories Technical Note Version 1.4)에 따른다.

3. ElGamal

ElGamal 알고리즘은 제한된 영역에서의 이산대수의 계산이 어렵다는 것에 그 소수 p와

random number g, x를 생성하고, y = g**x mod p가 된다.

이때 y, g, p는 public-key를 이루고 x는 private-key를 이루는데,

이 key pair를 사용하여 Encryption과 Decryption이 수행된다.

4. 타원곡선 알고리즘

요즘 보안에 관심있는 사람들은 타원곡선(Elliptic Curve) 알고리즘에 푹 빠져있다.

이유는 하나. 공개키 암호화 기술의 대명사로 널리 쓰이는 RSA보다 키의 크기가 작으면서도 비슷한 수준의 보안 기능을 자랑하기 때문.

사실 타원곡선 알고리즘은 최근에 등장한 기술이 아니다. 이미 100여년 전부터 연구되기 시작한 이론으로 지난 85년 닐 코블리츠(Neal Koblitz)와 빅터 밀러(Victor Miller)가 발표했다.

이 알고리즘의 원리는 타원곡선 한 점 Q와 P의 관계가 'Q = dP'라고 할 때, d를 알아내 기가 어렵다는 데서 출발한다.

RSA가 인수분해(Factorization) 문제에 기반을 두고 있다면, 타원곡선 알고리즘은 이산로그 문제(Discrete log problem)에 초점을 두고 있다.

그러나 무엇보다도 타원곡선 알고리즘이 많은 반향을 불러일으키고 있는 것은 기존 RSA, Diffie-Hellman, DSA, ElGamal 등의 보다 작은 크기의 키를 사용하면서 거의 비슷한 수준의 보안을 보장해준다는 것이다.

게다가 하드웨어 이식이 쉬워 휴대 전화나 호출기와 같이 휴대형 시스템에 적용하기 쉽다.

RSA에서 보통의 보안도를 제공하는 1,024비트가 갖는 보안도를 타원곡선 알고리즘에서는 160비트로 구현하고 있다.

또한 단지 600비트만을 사용해서 RSA에서 21,000비트가 갖는 보안도를 제공한다는 놀라운 사실을 알 수 있다.

RSA에서 사용하는 주요 연산은 곱하기이다.

곱하기가 연속으로 사용되는 만큼 수행 시간이 길어진다.

그러나 타원곡선 알고리즘에서는 주요 연산이 더하기이기 때문에 수행 시간에서도 많은 절약을 할 수 있다.

수행 속도의 차이를 보면 타원곡선 알고리즘이 RSA에 비해 약 10배 정도 빠르다.

메시지를 암호화할 때는 메시지 크기에 따라 결과가 달라진다.

메시지 크기가 커지면 커질수록 RSA와의 차이가 줄어든다.

하지만 공개키 암호 방식이 사용되는 주요 분야 중 하나가 사용된 관용키를 암호화하는 것이라는 것을 상기하면 이것도 큰 장점이 될 수 있다.

관용키 크기는 대체적으로 약 62비트에서부터 200비트 사이의 크기가 대부분이기 때문이다.

타원곡선 알고리즘의 장점을 정리하면 다음과 같다.

middot기존의 공개키 암호 방식에 비해 단위 비트당 안전도가 높다.

middot키 크기가 작으며 구현시 암호화와 서명이 빠르다.

middot스마트 카드나 휴대 통신기처럼 작은 하드웨어에서 적용하기 쉽다.

middot수출입 문제를 피하기 위해 암호화와 서명 단계를 분리할 수 있다.

middot계산량이 작고 저장이 유리하다.

하지만 타원곡선 알고리즘은 아직 기술적으로나 학문적으로 검증받아야 할 부분이 많다.

위에서 언급한 장점에도 불구하고 아직 실용화되지 못하고 있는 것은 타원곡선 알고리즘의 약점과 문제점이 완벽하게 검증받지 못했기 때문이다.

또한 이 알고리즘이 관심을 받기 시작하면서 다양한 해킹 방법들이 연구될 것으로 예상된다.

해쉬함수

해쉬함수는 임의의 길이를 가지고 있는 메세지를 입력으로 받아 일정한 길이의 bit으로 표현하는 함수이다. 원래의 메세지 X를 해쉬함수 f를 사용하여 나온 결과를 x라 하는 경우를 식으로 나타내면 f(X) = x 이 된다. 안전한 해쉬함수가 되기 위해서는 다음의 조건을 만족해야 한다.

조건 1 : 임의의 길이의 메세지를 입력으로 받을 수 있어야 한다.

조건 2 : 고정된 길이의 출력을 만들어야 한다.

조건 3 : 모든 X에 대해서, f(X)의 계산이 쉬워야 한다.

조건 4 : 주어진 x에 대해서 원래의 X를 구할 수 없어야 한다.

조건 5 : f(X) = f(Y)인 X,Y를 구하기가 어려워야 한다.

해쉬함수는 메세지 인증이나 전자서명 등에 사용된다.

메세지 인증과 전자서명은 메세지를 송신자의 비밀키로 암호화함으로써 이루어지는 데 공개키 암호방식은 관용 암호방식에 비해 시간이 오래 걸리게 된다.

그래서 메세지를 해쉬함수를 이용하여 원래보 다 짧은 길이로 바꾸어 놓은 다음에 비밀키로 암호화하게 된다.

해쉬함수의 종류로 MD4, MD5는 각각 128-bit의 결과를 내놓고 SHA(Secure Hash Algorithm)는 160-bit의 결과를 내놓는다.

◎ 메시지 다이제스트 ( Message Digest )

1. 메시지 다이제스트 인증

단방향 함수(One-Way Function)의 특성을 지닌다.

수신자와 송신자는 단방향 함수를 이용하여 데이터의 Modify 여부를 확인할 수 있는데,

이 방법의 가장 큰 장점은 아무런 여과 없이 사용자의 Password가 망상에 그대로 유출되는

기본 인증 기법의 단점을 극복한 것이다.

또한 기본 인증 방법에서 문제시 되었던 재연 공격(Replay Attack)에 대한 대비책으로,

시간 정보를 함께 전송하는 것이 일반적이다.

그러나 이 방법도 가장 공격 (Masquerade Attack)에 대한 위협 요소는 존재한다.

다음에는 메시지 다이제스트 알고리즘에 대하여 간략히 알아보기로 하자.


2. 메시지 다이제스트 알고리즘 ( Mesage Digest Algorithms )

메시지 다이제스트 알고리즘의 보안 효과는 실지로 그 알고리즘이 적용되는 메시지의

사이즈 크기에 달려있다.

전형적인 메시지 다이제스트 사이즈는 128 비트에서 160 비트까지이다.

전형적으로 2가지의 알고리즘이 사용되고 있는데, 첫번째는 Rivest Message Digest 2

( MD2 라고 흔히 부른다 ) 이고, 차후 효율성을 높인 Mesage Digest 4 ( MD4 ), Message

Digest 5 ( MD5 ) algorithm이 소개되었다. 각각의 알고리즘들은 임의의 메시지 사이즈,

그리고 128 bit 메시지 다이제스트를 생성할 수 있도록 구성되었다.

메시지 다이제스트는 수신자와 발신자가 각각 비밀 키를 나누어 가지도록 구성되었고,

이런 구성법을 이용하여 발신자는 수신자의 신분 확인(authentication)을 할 수 있다.

하지만 이런 구조도 단점은 지적되고 있는데, 예를 들면 제 3자로(A Third Party)

인한 수신자와 발신자의 보호 방법이 채택되기는 하지만, 실지로 강력한 보안 방법으로는

인식되지 않는다.

 

3. 해쉬를 이용한 전자서명 방법과 x.509에 기초한 인증서의 역할과 내용

 

2 전자서명기술

전자상거래는 하나의 거래이자 계약활동이므로 계약 당사자간에 분쟁의 소지를 없애기위해 상호 확인하는 절차가 필요하다.

서로 만나서 계약을 하는 경우 녹음을 한다던가 펜으로 서명을 하거나 도장을 찍거나 하지만 네트웍상에서는 그럴수 없다.

그러므로 네트웍환경에 적합한 서명기술이 필요한데 그것이 바로 전자서명기술이다.

전자서명기술은 암호학적 처리를 통해 다음 세가지를 검증할 수 있는 기술을 말한다.

 

1 서명자의 신분을 확인 할 수 있어야한다.

즉 누가 서명했는지 검증되어야 한다.

2 서명한 문서(자료)의 수정/삭제등을 검출할 수 있어야 한다.

3 서명자가 후에 서명이나 문서(자료)의 작성을 부인하는 것을 방지하고,

그 진위를 확인할 수 있어야 한다.

오늘날 사용되는 여러가지 전자서명기술은 수학적 근거를 기반으로해서 증명이 가능한 서명기술이기 때문에 실세계의 서명보다도 훨씬 더 정확하다고 할수 있다.

실세계의 서명은 필적감정을 통해 진위를 확인하지만 상당히 주관적이고 비과학적인 요소가 들어있지만 전자서명의 경우는 진위의 정확성이 분명하기 때문에 오히려 더 확실한 방식이라고 할수 있겠다.

전자상거래를 구축하거나 또 이용하기 전에 정말 이 시스템이 안전한가를 확인하는 기본적인 정보를 제공했다.

많은 쇼핑몰들이 우리는 정말 안전하다고 말하지만 실질적으로 안전한가는 소비자가 직접 판단해야 한다. 그러기위한 기본적인 판단 기준을 제시하였다.

 

[ 암호의 역사 ]

사이테일 : 기원전 5세기 무렵 고대 그리스인들이 쓰던 최초의 암호문.

둥근 막대기에 기다란 양피지를 둘둘 말아 가로로 글을 써넣은 뒤

다시 펴면 세로로 쓰인 글자 순서가 뒤죽박죽이 된다.

똑같은 굵기의 막대기에 양피지를 감으면 원래의 통신문이 나타난다.


시저 암호문
 : 기원전 1세기 로마 제국의 시저 황제가 고안한 글자 바꾸기 암호법.

알파벳을 일정하게 건너뛰어 쓰는 방법이다.

예를 들어 HOME을 3칸씩 건너뛰면 KRPH가 된다.


비지넬
 : 16세기 프랑스인 비지넬이 만든 최초의 근대 암호.

복잡한 표를 미리 만들어두고 이에 따라 암호를 조립하거나 푼다.

예를 들어,암호 열쇠가 'HOME’일 경우 '…HmiddotOmiddotMmiddot EmiddotHmiddotO…’의

순서에따라 'enemy’라는 원문의 암호문을 찾으면 'lbqqf’가 된다.

 

난수표 : 가장 많이 알려진 암호법. 0부터 9까지의 수를 완전히 무질 서하게 배열했다.

예를 들어 5,7이란 난수 암호를 받으면 난수표에 따라 이는 3,9로 풀이되는데

만일 3이 내일,9가 공격이란 뜻으로 미리 약속돼 있다면 5,7은 ‘내일 공격 한다’

는 뜻이 된다.


DES
 : 77년 개발된 글자 바꾸기식 전산암호법. 다단계의 글자 바꾸 기 과정을 거쳐

암호문을 만들어낸다. 암호를 만드는 열쇠와 이를 푸는 열쇠가 같다.

 

RSA : 78년 개발된 전산암호법.

인간과 컴퓨터가 가장 계산하기 힘들다는 소인수분해를 이용했다.

공개열쇠와 비밀열쇠를 따로 두어 ,공개열쇠는 한사람 또는 다수의 사람에게 공개하며

비밀열쇠는 자신만이 갖는다.

다른 사람이 공개열쇠로 암호문을 보내면 이를 비밀열쇠로 따서 볼 수 있다.

 

1. 전자상거래에서 보안측면의 요구사항을 서술하고 이를 만족시키기 위한 보안기술과 활용에 대해 다음과 같은 관점에서 서술하시오.

 

1 전자상거래 보안기술체계

2 암호시스템의 유형과 용도 및 대푶적 암호알고리즘

3 해쉬를 이용한 전자서명 방법과 x.509에 기초한 인증서의 역할과 내용

4 SET의 특성 및 사용된 암호기술

 

2. 전자상거래와 관련된 법률의 종류와 내용을 간략히 기술하고 문제점과 대응방안을 기술하시오

 

3. 사이버 쇼핑몰 구축을 위한 기술요소와 그내용을 간략히 기술해 주십시오

 

 4. SET의 특성 및 사용된 암호기술

 

SET (Secure Electronic Transaction) [4]

 

SET은 신용카드 회사인 VISA와 Master Card 사가 신용카드들 기반으로 한 인터넷 상의 전자결제를 안전하게 이룰 수 있도록 마련한 전자결제과정 표준안이다. 이것은 아직 시험 단계이며 SET을 바탕으로 실용화된 전자결제시스템은 아직 나오지 않은 상태이다. 그리고, SET은 어디까지나 일개 신용카드 회사에서 제안한 안에 불과하며 이것이 표준으로 자리잡기 위해서는 업계에서 얼마나 많이 사용해 주느냐에 달려있다.

그럼에도 불구하고, VISA와 Master Card 사는 전세계 신용카드 거래의 거의 대부분을 도맡고 있는 회사들이고, 또 SET이 암호학의 방법론의 잘 결합한 안전한 전자결제방안이기 때문에 많은 사람들이 관심을 갖고 있고, 또 이를 구현하려고 노력하는 중이다. 또, SET이 신용카드 기반 전자결제를 위한 표준안이기는 하지만 계좌이체나 직불카드 등의 결제수단에도 확대될 수 있는 구조이고, 실제로 VISA와 Master Card 사는 그렇게 확대할 계획을 갖고 있다. 본 절에서는 SET의 목표 및 SET의 내용을 일부 살펴봄으로써 8절까지 설명한 암호화 방법이 SET에서 어떻게 구현되었는지를 알아보고자 한다.

 

(1) SET의 목표 : SET의 목적은 다음의 세가지를 제공하는데 있다.

▶ 정보의 기밀성 제공

▶ 지불정보의 무결성 확보

▶ 상인과 고객 쌍방의 확인

 

SET에서는 위 세가지 목적을 이루기 위하여 앞에서 설명한 암호화 알고리즘, 전자서명, 전자인증서 등의 암호학 방법론들을 사용한다.

 

(2) 전자지불 시스템 참여자의 종류

1 절의 목적을 달성하기 위하여 SET에서는 신용카드를 이용한 전자지불 참여자 간의 각 거래(Transaction)의 과정들을 정의하고 있으며, 이 과정들은 보안이 유지되도록 암호학 방법론을 사용하고 있다. 예를 들어, 고객과 상인 간에는 구매요구(Purchase Request) 거래가 있고, 상인과 금융기관 간에는 지불승인(Payment Authorization) 거래가 있다.

이러한 거래를 정의하기 전에 SET에서는 이러한 거래 당사자의 종류를 먼저 정의하고

있다. 이들은 다음과 같다.

 

고객(카드 소지자, Cardholder) : 소지한 카드를 이용하여 구매대금을 결제하려는 사람

발행사(Issuer) : 신용카드를 발행한 회사

상인(Merchant) : 상품을 판매하고 그 대금을 카드를 이용하여 받으려는 사람

매입사(Acquirer) :상인이 요구한 신용카드 결제를 승인하고 그 대금의 지불을 처리하는 회사

Payment Gateway : 매입사 또는 매입사를 대신하는 제 3자가 상인과의 결제 처리를 수행하기 위해 사용하는 시스템

상표(Brand) : 신용카드의 상표권을 갖고 있는 카드회사 (예: VISA, Master)

제 3 자(Third Parties) : 발행사나 매입사의 카드결제거래를 대신하는 제 3 자  

(3) 거래의 종류

 

SET의 (1)절의 목적을 달성하기 위하여 (2)절에 나열한 각 거래 참가자들 간의 가능한 모든 거래 과정을 암호학에 기초하여 정의하고 있다. 예를 들어 고객과 상인 간의 구매요구(Purchase Request) 과정에서는 주문정보와 지불정보가 기밀이 유지된 채로 상인 및 매입사에게 전달되어야 하며 또, 인증, 무결성, 부인방지도 확보되어야 한다. 또, 상거래의 특성상 상인은 주문정보만을 알 수 있고 지불정보는 알 수 없어야 하며, 매입사는 그 반대이어야 한다. 이것을 이루기 위하여 고객인 상인에게 정보를 보낼 때 어떻게 암호화를 하고 어떻게 전자서명을 하고 전자인증서는 어떻게 이용해야 하는가 등을 자세히 기술하고 있다. SET이 기술하고 있는 거래의 종류는 다음과 같은 것들이 있다.

 

고객 등록(Cardholder Registration)

상인 등록(Merchant Registration)

구매 요구(Purchase Request)

지불 승인(Payment Authorization)

지불 캡쳐(Payment Capture)

인증서 검색(Certificate Query)

구매 조회(Purchase Inquiry)

구매 통보(Purchase Notification)

승인 취소(Authorization Reversal)

캡쳐 취소(Capture Reversal)

환불(Credit)

환불 취소(Credit Reversal)

 

위의 목록에서 나오는 캡쳐란 상인이 갖고 있는 매입전표를 말한다. 상인이 매입사로부터 지불승인을 받을 때 매입사로부터 캡쳐토큰(Capture Token)도 함께 받는다. 이 캡쳐토큰을 후에 (예를 들어 일일 결산 시) 매입사에 제시하면 (대부분 Batch 처리를 한다) 캡쳐를 받는다. 상인은 이 캡쳐를 모아 두었다가 결제일에 가서 이 캡쳐를 매입사에 제시하고 캡쳐에 표시된 금액 중 매입사의 수수료를 감한 금액을 받음으로써 최종적으로 고객이 지불한 대금을 받게 되는 것이다.

 

(4) 인증서의 발행

 

8절에서 설명한 바와 같이 전자인증을 위한 기간구조로 CA 계층구조가 있어야 한다. 이것은 SET에서도 예외가 아니다. SET에서 정의한 각 거래 당사자들은 자신의 CA로부터 전자인증서를 받아야 한다. 이들은 고객, 상인, Payment Gateway, 매입사, 발행사들인데 그들에게 전자인증서를 발행하는 기관은 각각 다음과 같다.

 

고객 : 소지한 카드의 발행사

상인 : 상인이 거래하는 매입사

Payment Gateway : Payment Gateway가 연결된 매입사

매입사 : 카드 상표 회사(Brand)

발행사 : 카드 상표 회사(Brand)

 

또한, SET에서는 보안을 강화하기 위하여 서로 다른 두 쌍의 공개키, 개인키들을 갖도록 하고 있고, 따라서 각각에 대해 다른 전자인증서가 발행된다. 한 쌍은 키는 전자서명을 위해서 사용되므로 서명 쌍(Signature Pair)이라 불리고, 다른 한 쌍은 전자봉투를 위해서 사용되므로 키교환 쌍(Key Exchange Pair)이라고 불린다. SET에서 권고하는 CA 계층구조의 한 예를 그림으로 도시하면 아래와 같다.

 

위 그림에서 Geo-political Signature는 해당 국가의 서명용 인증서를 나타내고, Association Signature는 카드상표사(VISA, Master Card)의 서명용 인증서를 나타낸다.

 

(5) 이중서명(Dual Signature)

 

구매요구(Purchase Request) 거래에서 상인은 주문정보만을 알아야 하고, 매입사(Payment Gateway)는 지불정보만을 알아야 한다. 이를 위해서 고객이 결제정보를 상인에게 보낼 때 주문정보는 상인의 공개키를 이용하여 암호화하고, 지불정보는 매입사(Payment Gateway)의 공개키를 이용하여 암호화하여야 한다. 이 각각의 암호문에 고객의 전자서명이 붙어야 하는데 각각에 대해 따로 만들어 붙인다면 상대편 정보와의 연결성을 확보할 방법이 없어진다. 이를 위해서 SET에서는 이중서명(Dual Signature)을 제안하고 있다. 이중서명이란 주문정보의 메시지 다이제스트와 지불정보의 메시지 다이제스트를 합하여(Concatenate) 다시 이것의 메시지 다이제스트를 구한 후 고객의 서명용 개인키로 암호화한 것을 말한다.

주문정보와 지불정보 각각에는 이중서명과 함께 상대편 정보의 메시지 다이제스트가 포함되어 있다. 따라서, 이 정보를 받은 상인 또는 매입사(Payment Gateway)는 자신이 받은 정보의 메시지 다이제스트를 구한 것과 상대편 정보의 메시지 다이제스트를 합하여 메시지 다이제스트를 다시 구한 후 이중서명을 고객의 서명용 공개키로 푼 것을 비교함으로써 서명을 확인할 수 있다.

 

(6) 최상위 키(Root Key)의 관리

 

CA 계층구조를 따라 전자인증서를 확인하기 위한 기본 키는 최상위 키(Root Key)이다. 일반적으로 최상위 키는 미리 모두에게 알려져 있고, 누구나 믿고 있는 것이라고 말해지지만 컴퓨터 시스템의 입장에서는 결코 그러하지 못하다. 컴퓨터는 최상위 키를 필요시마다 최상위 인증기관(Root CA)에게 받거나, 또는 자신의 하드 디스크에 파일로 관리해야 하는데 두 가지 모두 보안상의 허점이 있다. 만약, 필요시마다 받는다면 최상위 인증기관의 확인(Authentication)이 어려워지며, 파일로 관리한다면 해커가 파일을 바꿔 치는 것을 고려해야 한다. 이러한 문제를 해결하기 위해 SET에서는 최상위 키의 분배, 확인, 대체 과정을 정의하고 있다.

 

10. 결론

 

이상으로 인터넷에 안전한 전자지불 시스템을 구현하기 위하여 암호화 방법론을 살펴보고, 이것을 응용한 SET 표준안을 알아보았다. 인터넷이 구조적으로 보안상의 허점이 있음을 알아 보았고, 이것을 해결하기 위하여 암호화 방법들을 어떻게 적용할 수 있는가를 살펴보았다. 그러나, 암호화가 모든 것을 해결해주지는 못한다. 흔히 말하듯이 보안은 95%의 알고리즘과 5%의 제도로써 이루어진다. 따라서, 보안을 볼 때는 암호화 방법의 관점에서의 해결 방법만 찾을 것이 아니라 제도적인 해결 방안도 살펴 보아야 할 것이다.

또한, SET이 전자지불거래의 표준안으로 자리잡을 것이라는 것은 거의 확실한 것으로 보여진다. 그러나, SET 표준안 자체가 최종 버전이 나온 상태가 아니고(97년 5월 말에 나올 예정이라고 한다.), 더욱이 완전한 표준으로 자리잡은 것도 아니다. 또, SET을 바탕으로 한 전자지불시스템이 아직 완성되어 출시되지도 않았다. 이것은 전자상거래 분야에 있어서 우리가 선진국에 뒤지지 않고 주도권을 잡을 수 있는 기회가 아직 남아있다는 뜻이다. 우리나라의 전자상거래 업계가 이 기회를 놓치지 않고 우리 실정에 맞으며 국제적 상관행과도 배치되지 않는 SET의 보완 표준안을 내놓고 이를 구현한 전자지불 시스템을 빠른 시일 내에 완성함으로써 앞으로의 전세계 전자상거래 시장을 주도해 나갔으면 하는 바람이다.


반응형
Posted by 따뜻한 세상
,