인터넷 전자상거래의 유형들
그러나 현재 인터넷상에서 일반적으로 사용되는 지불방식과 문제점은 다음과같다.
그러나 이방식에도 여전히 몇가지 고려할 점이 있다.
이 방식의 단점은
비대칭형 암호화방식으로는
RSA의 원리를 살펴보자.
Message Authetication은 메시지를 송수신하는 측외의 제 3자가 이를 수정하는
것을 방지하는 측에 촛점이 맞추어져 있으며
Authetication방식에는 다음 세가지 방식이 있다.
그러나 여기에는 몇가지 단점이 있다.
많이 사용하는 Hash알고리즘으로는
Digital Signature는 메시지를 송수신하는 당사자간에 상호 메시지의 신빙성여부
에 대한 보증을 하도록 하는데 촛점이 맞추어져 있으며,
전자서명(Digital Signature)은 일반적으로 Public키 암호화방식을 이용해서
이루어진다. 전송되는 메시지의 특정 데이타를 자신의 Private키로 암호화해서
(서명해서) 수신측에 보내면 수신측은 송신측의 Public키로 복호를 해서
정상적으로 메시지가 해독되면 정말 이 메시지는 송신자가 보냈다는 사실을
증명할 수도 있고, 또 송신자는 자신이 이 메시지를 보냈다는(서명했다는)
사실을 부인할 수 없게 된다.
실제로 서버에서 설치하는 것은
2. 인터넷 비즈니스의 걸림돌 - Payment
인터넷상의 비즈니스, 전자상거래가 활성화되기위해서는 선결해야 하는 여러가지 걸림돌들을 제거해야한다.
네트웍접속, 소프트웨어/하드웨어 플랫폼, 물품의 배달, 멀티미디어 정보, 지불방식, 법률적 제약등
해결해야 하는 문제가 많다.
그럼에도 불구하고 현재 인터넷상에는 비즈니스를 성공적으로 이끌어가는 기업들이 있다.
이런 여러가지 문제점들가운데 아킬레스 건과같은 문제는 바로 지불방식이다.
돈을 주고 받는 메커니즘이 명확히 제시되지 않으면 전자 상거래의 기본이 흔들리기때문이다.
현재 성공적으로 비즈니스를 이끌어가는 인터넷 전자상거래기업들은 이런 문제를 회피하고 있긴하지만
본격적인 인터넷 전자상거래가 활성화되면 지불문제가 중요한 문제로 부각될 것이다.
이외에도 공통적으로
이 방식은 넷스케이프서버와 클라인어트사이의 SSL 암호화기법을 통해 신용
카드번호를 전송하는 방식이다. 여기에도 두가지의 문제점이 있다. 이 경우에는
넷스케이프의 좌측하단의 열쇠키가 평소에는 부러진 모양을 하고있다가 부러지지않은
완전한 모양을 변해서 SSL통신을 한다는 것을 알려준다.
어떤 서버에는 등록한 사람만이 자신의 서버를 이용할수 있도록 정책을
세우고, 사용할 사람은 미리 자신의 정보(주소, 이름, id, 지불방식-신용카드번호)를
입력해서 id와 패스워드를 통해 정보를 제공하고 상거래를 하는 방식이다.
이 방식은 최근 규모가 큰 서버를을 중심으로 많이 이용된다.
3. WWW 보안(Security)
3.1 시스템보안(System Security)과 자료보안(Data Security)
특히 WWW서버에서는 (1) CGI프로그램과 관련된 부분과 (2) 디렉토리리스팅을
보여주는 것등이 주의를 요하는 부분이다. 특히 WWW서버를 Access한 로그파일에는
URL의 전부가 보여지므로 URL에 사용자명과 패스워드를 넣어서 사용할경우, 그대로
로그에 남으니까 주의를 해야한다.
3.2 암호화(Cryptography) 방법
대칭형 암호화방식은 자료를 암호화하는 키와 암호화된 자료를 복호화하는
키이가 동일한 암호화방식이다. 일반적으로 많이 사용되고 알려진 암호화방
식이다.
이 방식의 장점은
비 대칭형 암호화방식은 암호화정보를 네트웍상의 상대편에게 보낼때 키까지
보내야하는데, 그 키를 보호할 길이 없다는 문제의식에서 개발되기 시작했다.
1970년대부터 "Secure Communication over Insecure Channel"이라는 주제의
문제의식에서 연구가 활발히 진행되었고 그 결과 비대칭형(공개키)암호화
방법들이 나오게 되었다.
인터넷에서 공개키 암호화방식이 중요하게 대두되는 이유는
TCP/IP프로토콜을 사용하는 인터넷이 Secure한 Channel이라고
보지 않기때문이다.
등이 있다.
Diffie-Hellman 메커니즘은 1976년 Stanford대학의 Whitfield Diffid와
Martin Hellman가 발표한 논문에 의해 만들어졌다. 처음에 이 두사람은
Public Key암호화방식을 의도했으나 실제로 이 방식은 암호화방식이라기
보다는 키를 안전하게 전달하는 방법이었다.
이 방식은 고전적인 Public Key암호화방식으로 취급되지만, 아직까지도
임시키를 교환하는 메커니즘에 많이 사용되고 있다.
RSA는 1977년 MIT의 세 젊은 교수 Ronald Rivest, Adi Shamir, Len
Adleman 세 사람에 의해 만들어진 Public Key암호화 방식이다.
LUC는 1993년 뉴질랜드에서 만들어진 새로운 public Key암호화방식이다.
LUC는 lucas sequence가운데 큰 정수를 이용해 public키와 Private키를
생성하는 방식으로 RSA보다 효율이 더 좋은 암호화방식으로 알려졌다.
에 대한 보증을 하는 메커니즘이다.
메시지를 자신의 Private키로 암호화해서 수신측에 보내면 수신측에서는
보낸사람의 Public 키로 메시지를 복호한다. 상대편의 Public키로 메시지가
복호된다는 것은 이 메시지가 그 사람의 Private키이로 암호화가 된 것이라는
증명이되고 Private키를 아는 사람은 상대편이기때문에 이 메시지가 정말
내가 기대하던 그 상대편이 보낸것이라는 사실을 확인할 수 있는 것이다.
이것이 바로 전자서명(Digital Signature)의 기능을 하는 것이다.
이를 해결하기위해 자신의 private키로 암호화하고 수신자의 Public키로
다시 재 암호화해서 보냄으로 Authetication, Signature,
Confidetiality를 함께 보증하기도 한다.
메시지를 주고받는 두 측이 동일한 키들을 가지고 있다면, 송신측에서는
메시지의 Checksum을 구한후(MAC) 그 내용을 암호화해서 메시지에 붙여서
보내고 수신측은 그 값을 해독해서 메시지의 Chechsum을 새로이 계산해서
동일하면 메시지가 변경이 없었음을 증명하는 방식이다.
등이 있다.
기능이 있다.
3.3 일반적인 WWW보안 메커니즘
이 방식은 IP Address Authetication과 함께 섞어서 사용하기도 한다
이방법이 동작하는 메커니즘은 그림과 같다.
이 방법은 간단하다는 장점이 있다. 그러나 사용자에서 서버측으로 전달되는 사용자명과
패스워드는 암호화가 되지 않는다. 즉 처음에 논의된 가로채기등이 가능한 곳
에서는 보호받을 수 없다. 또한 서버가 거대하고 복잡한 디렉토리구조로 되어있고 거기에
따라 허용될 사용자의 그룹이 서로 다르고 복잡하게 연결되어있으면 운영히기가 여간 힘들
지 않다. 또한 결과로 넘어가는 url에 대응된 문서는 보호받지 못한다. 그러므로
Basic Authetication외에 좀더 강력한 보안프로토콜이 필요하다.
원하는 디렉토리에 ".htaccess"파일을 만들고 여기에 접근가능한 사용자들과 패스워드파일을
지정한다.
이런 약점을 보완하자는 생각에서 패스워드를 OneWay Hash(MD5)로
encoding해서 서버에게 전달함으로써 네트웍상에서 이 정보를 가로채더라도 이 정보를
가지고 패스워드를 해석할수 없도록 하는 매커니즘이다. 이방법이 동작하는 메커니즘은 그림과 같다.
서버측에서도 로긴명/패스워드등의 정보를 MD5로 인코딩해서 저장한다.
관련 드래프트는 ftp://ftp.ietf.cnri.reston.va.us/internet-drafts/draft-ietf-http-digest-aa-02.txt에 있다.
3.4 S-HTTP
S-HTTP는 EIT(Enterprise Integration Technologies)에서 제안한 HTTP의
Security확장판이다. 프로토콜은 HTTP세션으로 주고받는 자료를 암호화,전자서명
등을 지원하는 메커니즘이다. 현재 1.1버젼의 draft가
http://www.commerce.net/information/standards/drafts/shttp.txt에 나와있다.
S-HTTP는 HTTP를 캡슐화하면서도 HTTP와 같은 message base
프로토콜이다. 또한 HTTP처럼 요청(request)과 응답(response) 구조를
그대로 이용하고있다.
새로운 프로토콜 지시어로 "shttp"를 사용한다. 즉 S-HTTP로 통신을하는
Anchor의 URL은 shttp://.../형태로 새로이 제안되었다.
또한 요청(request)포멧은 "Secure url Secure-HTTP/1.1"형태로서 새로운 Method
"Secure"를 새로이 정의해서 사용한다.
New info in shttp anchors: DN, NONCE, CRYPTOPTS
HTML extensions: CERTS and CRYPTOPTS
S-HTTP는 HTTP처럼 Request-Response구조를 가지고 있다. 다만 HTTP와는 다른
S-HTTP용 헤더정보를 통해 암호화방식에 대한 파라메터들을 주고받으면서, 서로
어떤 암호화방식으로 어느정도 암호화해서 주고받을것인가를 사전조율한다.
예를들면
서버는 초기에 기본적으로 다음과 같이 지정한다.
3.5 SSL
SSL(Secured Socket Layer)은 테리사(Terrisa)가 개발해 Netscape사가 Netscape과 NetSite의 암
호화 중심프로토콜로 사용하는 프로토콜이다. SSL은 서버와 클라이언트간에 인증
(Certification)으로 RSA방식과 X.509 를 사용하고 실제 암호화된 정보는 새로운 암호화 소
켓채널을 통해 전송하는 방식이다. SSL은 특히 네트웍레이어의 암호화방식이기때문에
HTTP뿐아니라 NNTP, FTP등에도 사용할수 있는 장점이 있다. 그러나 또 한편으로는
일반적으로 네트웍레이어에서의 암호화 프로토콜은 이미 제안된 방식들
(IPSP, IPNG등이 IETF에서 논의중이고 Keberos가 암호화채널을 지원하는데 굳이
새로운 SSL이라는 네트웍레이어의 프로토콜을 추가 할 필요가 있겠느냐는 비판도 있다.
SSL은 현재 버젼 3.0으로 사양은 http://home.netscape.com/newsref/std/SSL.html에
나와있으며
등을 사용한다.
SSLRef는 시스팀개발자들이 쉽게 SSL프로토콜을 이용할수 있도록 API를 만들어 둔 것을 말한다.
SSLRef는 ANSI C코드로 만들어져있고 많은 플랫폼에 이식되어서 SSL프로토콜을 이용해 프로그램을
만들려는 사람들에게 소스코드까지 제공되고있다. 현재 넷스케이프에서 배포하는 SSLRef는
비상업용으로는 무료로 사용할수 있게 되어있으나 애석하게도 미국내에서만 얻을수 있다.
SSLRef에 대한 정보가 있는 페이지는 http://home.netscape.com/newsref/std/sslref.html에
있으며 자세한 정보는 ssl@netscape.com로 메일을 통해 얻을수 있다.
호주의 Eric Young(eay@mincom.oz.au)이 SSL 2.0을 구현한 라이브러리를 공개했다. 이 라이브러리는
상업적이든 비상업적이든 무료로 사용할 수있게 되어있고, 위치는 ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/에
있다.
재미있는 사실은 Eric Young이 만든 SSLeay를 이용해 Tim Hudson(tjh@mincom.oz.au)이 SSL을
응용한 응용 프로그램을 많이 만들었다. 예를들면 SSLtelnet, SSLftp, NCSA Mosaic 2.5, 2.6b1, 2.6b2,
NCSA httpd 1.3, 1.42등이다.
3.6 SEA(Security Extension Architecheture)
SEA는 W3C에서 최근에 만들고 있는 WWW Security프로토콜이다. 위에서 언급한 WWW보안 프로토콜들이
있음에도 불구하고 W3C에서는 SSL/S-HTTP두 프로토콜의 약점이 있다고 판단하고 HTTP프로토콜과 더
밀접하게 관계를 가지는 새로운 보안프로토콜을 제안했다. (새로운 보안프로토콜이라기보다도 HTTP의
Security확장이라고하는게 더 정확한 표현이다.) SSL은 Transport층의 보안프로토콜이고 S-HTTP는
HTTP와는 비슷한 구조이지만 별도의 새로운 프로토콜이어서 기존의 HTTP와의 호환성의 문제등을 W3C에서는
문제시하고 있다.
SEA는 S-HTTP의 기능을 수용하면서 구현은 W3C에서 최근 제안한 PEP을 이용하는 형태를 띄고 있다.
SEA를 이해하려면 PEP(Protocol Extension Protocol)의 구조를 이해해야한다. PEP은 HTTP프로토콜을
사용자레벨에서 정의해서 확정할수 있는 "프로토콜 확장 플랫폼"프로토콜이다. SEA는 이 PEP를 이용해
첫번째 구현으로 SEA구현을 시도하고있다.
PEP에 대한 정보는 http://www.w3.org/pub/WWW/TR/WD-http-pep.html에
있고, SEA에 대한 정보는 http://www.w3.org/pub/WWW/TR/WD-http-sea에
있다.
시나리오 : C는 현재 어떤 Public키도 가지고 있지않는데, Y(암호화)서버의 문서를 보려고 한다. 이때
해결책은 Y가 자신의 Public키를 C에게 전달하고 C는 세션키를 생성해 Y의 Public키로 암호화해서
Y에게 전달하면 (키교환), Y는 C로부터 받은 세션키와 C가 지정한 암호화방식으로 문서를 암호화해서
보여준다.
3.7 기타
4. WWW보안시스팀이 모든것을 다 해결하는가?
WWW보안시스팀이 많이 제안되었고, 또 활발히 개발되고 있다. 그러나 WWW보안시스팀이 일반적인 WWW보안에
적용할 수는 있겠으나 모든 응용시스팀을 다 해결한다고 볼수는 없다. 특히 전자지불, 전자현금 영역에 있어서는
중복되는 영역도 많지만 긍국적으로는 다른 영역의 응용시스팀이라고 할수 있다. 특히 전자지불/전자현금 시스팀은
WWW처럼 두개의 호스트(브라우져/서버)간의 관계가 아니라 고객-상점(-지불브로커)-은행등 3자/혹은 4자간의
관계로 만들어지는 메커니즘이며, 실제로 상거래를 이루는 프로토콜이므로 그 자체로 필요한 보안요소가 있다. 4.1 Payment Spesific Security
4.2 사용자들의 편의성
또한 보안의 요소뿐 아니라 전자상거래를 하는 사용자들의 편의성의 측면에서도 WWW보안시스팀만으로는
여러가지 단점을 가지고 있다.