Chapter 08 전자 상거래 보안
01 전자 상거래의 이해
1. 전자 상거래의 보안 공격 유형
- 인증 공격: 네트워크를 통해 접근한 사용자가 적절하지 않은 인증을 통해 다른 사용자로 위장하는 것이다.
ex) 가짜 은행 사이트를 만들어 은행 이용자의 공인 인증서 정보를 획득한 후 악용하는 사례
- 송수신 부인 공격: 네트워크를 통해 수행한 인증 및 거래 내역을 부인하는 것이다.
ex) 전자결제를 할 때 신용카드 번호 정보가 유출되는 경우
- 기밀성 공격: 네트워크로 전달되는 인증 정보 및 주요 거래 정보가 유출되는 것이다.
ex) 전자결제를 할 때 신용카드 번호 정보가 유출되는 경우
- 무결성에 대한 공격: 네트워크 도중에 거래 정보 등이 변조되는 것이다.
ex) 온라인 계좌이체 등을 이용한 전자결제 시 수신 계좌나 금액 등을 변조하는 경우
2. 전자 상거래의 보안 요건
- 신분 확인 수단 제공: 원격의 거래 상대를 신뢰할 수 없기 때문에 네트워크에서 상대방이나 자신에 대한 신분 확인 수단이 필요하다.
- 제삼자의 중재: 거래 사실(거래 내역)을 공증할 수 있는 신뢰할 만한 제삼자의 중재가 필요하다.
- 지불 방식의 안전성: 전자 지불 방식(과정)의 안전성을 보장하는 방법이 확보되어야 한다.
* 전자 상거래의 보안 오건은 모두 암호화 해시를 통해 이루어짐.
* 블록체인을 활용하는 비트코인과 같은 거래 체계가 활성화된다면 전자 상거래의 세 가지 보안 요건 중 '제삼자의 중재'는 앞으로 완전히 사라질 수 있음
02 공개 키 기반 구조
공개 키 기반 구조(Public Key Infrastructure, PKI)
: 메시지의 암호화 및 전자 서명을 제공하는 복합적인 보안 시스템 환경
: 공개 키 기반 구조는 '인터넷에서 신분증을 검증해주는 관청'의 역할
1. 트리형 공개 키 기반 구조
- PAA(Policy Approval Authorities): 정책 승인 기관으로 공인 인증서에 대한 정책을 결정하고 하위 기관의 정책을 승인한다. 우리나라는 과학기술정보통신부가 이런 일을 담당한다.
- PCA(Polocy Certification Authorities): 정책 인증 기관으로 Root CA 인증서를 발급하고 기본 정책을 수립한다. 우리나라는 한국인터넷진흥원이 이를 맡고 있다. Root CA 인증서는 모든 인증서의 기초가 되는 것으로 인증서에 포함된 공개 키에 대응하는 개인 키로 생성한 자체 서명 인증서이다.
- CA(Certification Authority): PCA의 하위 기관인 인증 기관으로 인증서 발급과 취소 등의 실질적인 업무를 한다. 금융결제원, 한국 전산원 등이 이에 속하며 서로 신뢰하는 관계이다.
- PR(Registration Authority): 등록 기관으로 공인 인증서 인증 요청을 확인하고 CA 간 인터페이스를 제공한다.
2. 상호 인증으로 연결된 공개 키 기반 구조
: 인증 기관이 상호 인증을 통해 연결되어 있는 모델도 존재
두 인증 기관이 상대의 공개 키를 서로 인증하는 인증서, 즉 상호 인증서를 발급하여 사용
3. 공인인증서의 기본 영역
- 공인 인증서는 공개 키와 공개 키의 소유자를 연결해주는 전자 문서
- 버전/일련 번호/서명 알고리즘/발급자/유효기간/주체/공개 키
4. 공인 인증서의 폐기
- 인증 기관이 주기적으로 발급하는 폐기된 공인 인증서 목록을 인증서 폐기 목록(Certification Revocation List, CRL)이라고 하며 이 목록은 X.509 표준에 정의되어 있다.
- 공인 인증서 사용자는 해당 CRL을 주기적으로 참조하여 공인 인증서의 유효성을 확인할 수 있다.
03 전자 서명과 전자 봉투
1. 전자서명(digital signature)
: 서명자가 해당 전자 문서에 서명하였음을 나타내기 위해, 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보: : 원본의 해시 값을 구한 뒤 부인 방지 기능을 부여하기 위해 공개 키 방법을 사용한다.
전자 서명은 원본의 해시 값을 구한 뒤 부인 방지 기능을 부여하기 위해 공개 키 방법을 사용한다.
ex)
철수가 영희에게 편지를 보낼 때 편지의 해시 값을 구한 뒤 그 값을 자신의 개인 키로 암호화하여 보내는 것이다.
-> 영희는 철수의 공개 키를 이용하여 암호화된 해시 값을 복호화하고 편지를 해시한 값과 비교한다.
복호화된 해시 값과 구한 해시 값이 일치하면 철수 가 보낸 편지가 맞고 위조되지 않았다고 확신.
*특징
- 기밀성이 보장되지 않는다. 전자서명이 암호화되어 있지 않다.
- 위조 불가: 서명자만 서명문을 생성할 수 있다.
- 인증: 서명문의 서명자를 확인할 수 있다.
- 재사용 불가: 서명 문의 해시 값을 전자서명에 이용하므로 한 번 생성된 서명을 다른 문서의 서명으로 사용불가
- 변경 불가: 서명된 문서는 내용을 변경할 수 없기 때문에 데이터가 변조되지 않았음을 보장하는 무결성을 만족한다.
- 부인 방지: 서명자가 서명한 사실을 나중에 부인할 수 없다.
2. 전자봉투
: 전달하려는 메시지를 암호화하여 한 사람을 통해 보내고 암호화 키는 다른 사람이 가져가도록 암호학적으로 구현한 것
ex) 철수가 영희에게 메시지를 보낼 때
암호화
철수는 전자봉투를 사용하기 위해 먼저 전자서명을 생성하고 전자서명과 원문, 자신의 공개 키가 들어있는 인증서를 비밀 키(DES알고리즘 등에 사용되는 대칭 키)로 암호화한다. 그러면 전자서명 세트와 인증서, 암호화한 비밀 키가 영희의 공개키로 암호화 되는데 이것이 바로 전자 봉투이다.
최종적으로 철수는 비밀 키로 암호화한 결과와 비밀 키가 암호화된 전자봉투를 영희에게 보낸다.
복호화
영희는 전자봉투를 자신의 개인 키로 복화화하여 비밀 키를 획득한 뒤 이를 이용하여 전자서명과 편지, 철수의 인증서를 복호화한다. 그리고 복호화한 인증서에서 철수 의 공개 키를 얻어 전자서명을 복호화하고 이를 편지의 해시 결과와 비교. 같으면 정상
* 특징
- 기밀성, 무결성, 부인방지 지원
04 전자 결제와 가상 화폐
1. SET(Secure Electronic Transaction)
: 1996년 비자와 마스터카드의 합의로 만들어진 프로토콜이다.
- SET 구성
1) 신용카드 사용자: 신용카드를 소진한 사람으로 SET에 이용하는 공인인증서를 소유
2) 상점: 인터넷 쇼핑몰을 운영하며 SET를 이용하여 상품을 판매
3) 지불 게이트웨이: 기존의 신용카드 지불 방식으로 은행과 거래 내역을 주고받는다.
4) 신용카드 회사: 사용자에게 신용카드를 발급하고 CA를 운영하여 사용자에게 공인인증서를 발급
5) 은행: 상점의 계좌가 있는 곳으로 지불 게이트웨이를 운영하고 CA를 운영하여 상점에 공인인증서를 발급
6) 인증 기관: SET에 참여하는 모든 구성원의 정당성을 보장하는 루트(Root) CA다.
2. 간편 결제: 모바일 앱이나 웹 서비스 제공자에게 신용카드 정보 등을 입력해두고 결제 시 신용카드 정보 입력과 공인인증서 등록 없이 패스워드 입력과 같은 간단한 인증만으로 결제를 하는 서비스이다.
- 지불과정
1) 인터넷 상점에서 물건을 사려는 신용카드 사용자가 SET을 이용하여 상점에 결제를 의뢰하는 것.
2) 고객이 상점으로 주문서를 전송하면 판매자는 고객의 신용카드 회사를 통해 신용카드의 유효성 여부를 확인
3) 신용카드가 정상이면 판매자는 주문 확인 메시지를 고객에게 전송하고 고객은 자신의 신용카드 정보를 판매자에게 전송
4) 판매자는 고객에게 받은 정보를 결제에 이용
* 중요한 2가지 기술: 전자 봉투와 이중 서명
- 이중서명의 목적은 상점이 신용카드 사용자의 계좌번호 같은 지불 정보를 모르게 하는 동시에 상점에 대금을 지불하는 은행은 신용카드 사용자가 구입한 물건을 모르지만 상점이 요구하는 결제 대금이 정확한지 확인 가능
+이중 서명(dual signature) 동작
1) 신용카드 사용자의 구매 정보와 지불 정보를 각각 해시한 후 두 값을 함하여 다시 해시한다.
2) 최종 해시 값을 신용카드 사용자의 개인 키로 암호화(서명)하면 이중 서명 값이 생성된다.
+신용카드 사용자의 개인키로 암호화 과정
1) 고객은 하나의 비밀키(대칭키)를 생성하고 / 비밀키를 사용하여 지불 정보를 암호화하고 / 비밀 키는 은행이 운영하는 지불 게이트웨이의 공개 키로 암호화한다. [고객은 결제를 위한 데이터를 모두 생성함]
2) 고객으로부터 위와 같은 정보를 받은 상점은 고객이 구매한 물건에 대한 구매 정보의 해시를 구한다.
3) 고객이 보낸 한쌍의 해시 값을 새로 구한 해시로 대치한 뒤 새로운 이중 해시를 구한다.
4) 고객의 개인키로 암호화된 해시 값을 복호화하여 새로 구한 이중 해시 값과 비교
5) 고객이 보내 구매 정보가 본인 것이 맞는지 변조되지 않았는지 확인
6) 구매 정보를 확인한 상점은 다시 데이터 세트를 만들어 지불 게이트웨이로 보낸다.
7) 데이터를 받은 지불 게이트웨이는 자신의 개인 키로 비밀키를 복호화하여 지불 정보를 확인
그리고 상점이 한 것처럼(2,3,4,5번 똑같이 함) 변조 여부 확인 뒤 대금을 지불한다.
->결론
지불 게이트웨이는 사용자가 보낸 지불 정보임과 변조된 것 아님을 확신
상점은 고객의 계좌번호, 지불 정보를 모름
은행은 고객이 상점에서 뭘 샀는지 모르고 서로 필요한 정보를 모두 확인
3. 전자화폐: 이전 가능한 금전적 가치가 전자적 방법으로 저장되어 발행된 증표 또는 그 증표에 관한 정보다. 현재 우리나라는 전자화폐에 대한 법적 재재가 상당히 강한 편이어서 전자 화폐로 큰 금액을 결제 할 수도 없고 전자 화폐를 현금으로 전환할 수도 없다.
4. 스마트 카드: 신용카드, 현금 카드, 교통 카드로 사용하기 시작한 스마트 카드는 전자 화폐, 신분증, 출입 카드 등으로 그 역할이 확대되고 있다. 스마트 카드의 진위 여부를 확인하기 위한 인증 과정으로 동적 데이터 인증 방식과 정적 데이터 인증 방식이 있다.
- 정적 데이터 인증: 인증할 때마다 같은 데이터를 사용한다.
- 동적 데이터 인증: 인증할 때마다 다른 데이터를 사용한다.
* 종류
-접촉, 비접촉, 하이브리드, 콤비, sim카드..
* 인증
:스마트카드를 사용할 때 일차적으로 진위여부를 확인하기 위해 거치는 과정
-정적 데이터 인증(SDA: Static Data Authentication) : 인증할 때마다 같은 데이터를 사용하는 방식
1) 정적 응용 프로그램 데이터 - 카드번호, 이름, 주소 등 설정
2) 정적 응용 프로그램 데이터 암호화 - 발행 기관의 개인키로 설정한 데이터를 암호화
3) 인증 기관(CA)의 개인 키로 발행자의 공개 키 암호화
4) 인증 데이터 저장 - 2)와 3)을 스마트카드에 저장
5) CA의 공개 키를 스마트카드 리더기에 배포
발행된 카드는 카드 리더기로 진위 여부 확인
1) CA의 개인 키로 암호화된 발행 기관의 공개키가 전달된다. 전달된 발행 기관의 공개키는 카드 리더기에 저장된 인증 기관의 공개 키로 복호화된다
2) 복호화된 인증 기관의 공개 키로 카드에 저장된 '서명된 정적 응용 프로그램 데이터'를 복호화하여 리더기가 확인
-동적 데이터 인증(DDA: Dynamic Data Authentication) : 인증할 때마다 다른 데이터를 사용하는 방식
보안 수준이 높고 IC카드 측에 암호 계산을 위한 암호화 프로세서가 탑재되어 있다.
5. 비트코인: 2008년 10월 사토시 나가모토가 <비트코인-P2P 전자화폐 시스템>이라는 제목의 논문을 발표하면서 세상에 알려졌다. 2009년 1월 3일 사토시가 첫 채굴을 통해 50비트 코인을 획득하면서 시작된 암호화 화폐이다.
- 가상화폐는 금전적 가치가 있어야 하는데 없기 때문에 가짜 화폐에 가깝다.
- 지갑
: 코인을 거래하려면 비트코인 지갑 필요(=은행의 계좌번호)
: 지갑 프로그램을 통해 공개 주소를 만들면 개인 키가 함께 생성됨
- 블록체인
: 최초의 블록부터 바로 앞 블록의 링크를 가지고 있는, 연결된 리스트로 분산되어 저장 및 관리된다. 불록에는 거래 정보가 포함되어 있으며, 블록의 집합체인 블록체인은 비트코인의 모든 거래 정보를 담고 있는 거대한 분산 장부라고 할 수 있다.
- 블록헤더의 구성
: version버전/previousblockhash이전 블록의 기타 정보를 제외한 값의 해시 값/merklehash현재 블록의 거래 내역에 대한 해시 값/time블록이 생성된 시간/bits난이도 조절용 수치/nonce 0에서 시작해 조건을 만족하는 값을 찾아낼 때까지 1씩 증가하는 계산 횟수
- 블록 해시
:블록의 식별자 역할을 하며 블록 헤더의 여섯 가지 정보를 묶어 SHA256 해시 함수를 두 번 적용해서 계산한 값으로 32바이트 숫자다
- 채굴
: 채굴과정은 끊임없는 해싱 작업을 통해 목표 값(target value)이하의 해시 값을 찾는 과정이라 할 수 있다.
- 거래(transaction)
1) 이용자는 거래 상대방의 지갑 주소와 이체할 비트코인 액수를 결정하여 자신의 개인 키로 서명하고 이체를 신청
2) 이체 신청에 대한 고유한 해시 값이 발행
3) 이체 신청 내역을 채굴자가 자신의 개인 거래 풀(transaction pool)에 넣어 보관
4) 블록에 넣을 이체 신청 내역의 우선순위를 정한 뒤 이를 기준으로 채굴 과정인 목푯 값 해싱을 진행(목푯 값 해싱에 성공하면 블록 발행)
5) 이체 내역을 담은 블록이 네트워크로 전파
6) 이체 내역의 이체 확인(confirmation)이 1이 됨
7) 네트워크로 해당 블록을 전파받은 다음 채굴자가 블록을 생성하면 다음 블록도 네트워크로 전파되고 이체 내역의 이체 확인이 2가 된다
8) 반복
9) 이체받는 주체가 이체 내역을 인정하면 이체 확정(settlement)
05 암호화 통신
1. 네트워크 암호화
* 암호화 프로토콜은 VPI(Virtual Private Network)에 이용되기도 하고, 그중 SSL은 웹 서비스에도 이용된다.
[2계층]
- PPTP: 마이크로소프트가 제안한 VPN 프로토콜로 PPP 기반
- L2TP: 시스코가 제안한 L2F와 PPTP가 결합된 프로토콜
* 두 개의 공통점
두 프로토콜 모두 PPP 트래픽을 암호화하기 때문데 IP, IPX, NetBEUI, AppleTalk 등의 상위 로컬 네트워크 프로토콜을 사용할 수 있다는 것.
PPP에서 제공하는 사용자 인증이나 데이터 암호화 및 압축의 보안 기능을 사용할 수 있다.
[3계층]
- IPSec: 데이터가 전송 도중에 변조되었는지 확인할 수 있도록 데이터 무결성을 검사하는 기능(AH), 메시지 암호화를 제공하는 기능(ESP), ISAKMP, SKEME, OaKLEY 알고리즘 조합으로 두 컴퓨터 간의 보안 연결을 설정하는 기능을 제공
[4계층]
- SSL(Secure Socket Layer): 서버인증(클라이언트가 자신이 신뢰할 만한 서버에 접속을 시도하고 있는지 확인하는 것 -> 클라이언트가 공개 키를 이용해 서버의 인증서가 신뢰된 건지 확인), 클라이언트 인증(클라이언트의 인증서를 확인해 서버에 접속할 자격이 있는지 확인하는 작업), 암호화 세견 기능 제공
2. 전자우편 암호화
- PGP(Pretty Good Privacy): PGP를 사용하는 사람들 간의 신뢰 관계를 통해 인증되고 이런 상호 인증을 통해 많은 사용자가 그물망 같은 구조를 이룸. 세션 키를 암호화하기 위해 IDEA 알고리즘을 이용하고 사용자 인증을 위한 전자서명에 RSA 알고리즘을 이용한다.
- S/MIME: 인증서를 통해 암호화한 이메일 서비스를 제공
- PEM(Privacy Enhanced Mail): 보안성이 높지만 구현이 복잡해 사용되지 않음
06 콘텐츠 보안
1. 저작권 보호 방법
- 스테가노그래피: 저작권 보호보다는 정보를 숨겨 은밀하게 전달하려는 목적이 크다. 미리 정한 약속에 따라 특정 데이터를 원래의 것과 전혀 관련이 없는 데이터로 해석하는 것.
- 워터마크: 저작권을 보호하기 위해 소유권을 표시하는 방식이다. 페이지 전면에 옅은 색으로 무늬를 나타내는 것으로 문서에 표시되는 회사 로고나 인터넷에서 발급한 주민등록본에 표시된 무궁화 문양 같은 것
연습문제
1. 다음 중 전자상거래 보안을 위협하는 공격 유형이 아닌 것은? 3 접근성 공격 X -> 기밀성 공격 O
2. 루트 CA를 발급하고 기본적인 정책을 수립하는 기관은 무엇인가? 2 PCA
3. 인증서 발급과 취소 등의 실질적인 업무를 하는 기관은 무엇인가? 3 CA
4. 다음 중 공인인증서의 기본 영역에 속하지 않는 것은? 1 CRL
5. 전자서명에 대해 설명하시오.
: 서명자가 해당 전자 문서에 서명하였음을 나타내기 위해 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의
정보로 원본의 해시 값을 구한 뒤 부인 방지 기능을 부여하기 위해 공개 키 방법을 사용한다.
6. 전자서명이 제공하는 기능에 대한 설명을 바르게 연결하시오
재사용 불가 : 서명 문의 해시 값을 전자서명에 이용하므로 한 번 생성된 서명을 다른 문서의 서명으로 사용 불가
위조 불가 : 서명자만이 서명문을 생성할 수 있다
변경 불가 : 서명된 문서는 내용을 변경할 수 없기 때문에 데이터가 변조되지 않았음을 보장하는 무결성을 만족한다
인증 : 서명 문의 서명자를 확인할 수 있다
부인방지 : 서명자가 서명한 사실을 나중에 부인할 수 없다
7. SET의 기본 결제 방법은 다음과 같다. 여기서 SET가 사용하는 가장 중요한 두 가지 기술은 무엇인가?
전자 봉투와 이중 서명
8. 스마트카드의 진위 여부를 확인하는 인증 방법은 암호화 키의 종류와 고정된 데이터의 이용 유무에 따라 (정적) 데이터 인증 방식과 (동적) 데이터 인증 방식이 있다.
9. 다음 중 비트코인의 블록을 이루는 블록 헤더의 구성 항목이 아닌 것은? 2 owner
10. 블록의 집합체인 (블록체인)은 비트코인의 모든 거래 정보를 담고 있는 거대한 분산 장부라고 할 수 있다.
11. 다음 중 암호화 프로토콜별로 동작하는 계층이 잘못 연결된 것은? 3 PPTP는 2 계층
12. 많은 인터넷 사용자가 상호 인증을 통해 서로를 인증하여 그물망과 같은 인증 구조를 이루게 되는 전자우편 암호화 방식은 무엇인가? 1 PGP
'알아두면쓸데있는신기한잡학사전 > 정보처리기사' 카테고리의 다른 글
[정보보안개론] 07 암호의 이해 (0) | 2022.06.10 |
---|---|
2022 정보처리기사 실기 Chapter 12 제품 소프트웨어 패키징 (0) | 2022.05.07 |
2022 정보처리기사 실기 Chapter 11 응용 SW 기초 기술 활용 (0) | 2022.05.07 |
2022 정보처리기사 실기 Chapter 10 애플리케이션 테스트 관리 (0) | 2022.05.06 |
2022 정보처리기사 실기 Chapter 09 소프트웨어 개발 보안 구축 (0) | 2022.05.06 |