별의 공부 블로그 🧑🏻‍💻
728x90
728x170

68. 전자상거래 보안

1. SET(Secure Electronic Transaction)

  • 인터넷에서 신용카드 사용 촉진을 위해 VISA와 MASTER CARD 사에서 공동으로 개발한 프로토콜
  • 전자상거래 인증의 상호 작용을 보장함.
  • SSL에 비해 상대적으로 느림.
  • 전자 서명과 인증서를 통한 안전한 거래가 가능함.
  • 신용카드의 지급 결제 처리 절차에 한해서 정의하고, 시스템 구축 및 인증 절차가 복잡함.
  • 기밀성, 무결성, 인증, 부인 봉쇄를 제공함.

(1) SET 구성 요소

  • 구매자(카드 소지자)
    • 전자 상거래를 수행하는 전자 지갑(사용자 신분을 확인하는 SET 인증서 포함)을 얻음.
  • 판매자(상점 소유자)
    • 웹 상의 상품 운영자
    • SET을 이용하여 상품 판매 제공
  • PG(Payment Gateway)
    • 기존의 카드 지불 네트워크의 통로
  • 발급 기관(Issuer)
    • 사용자 계좌가 있는 재정 기관으로 신용카드 발행
    • CA 운영하여 사용자아게 인증서 발행
  • 지불 처리 은행(Acquirer)
    • 상점의 계좌가 있는 재정 기관
    • 신용카드 인가 여부와 지불 처리
    • 지불 Gateway를 운영하고, CA를 운영하여 상인에게 인증서 발행
  • 인증 기관(Certification Authority)
    • SET에 참여하는 사용자, 상점, PG의 정당성을 보증하는 기관

(2) SET 사용 기술

  • 대칭키, 공개키, 전자 서명, 해시 함수, 전자 봉투, 공개키 인증(X.509), 이중 서명 기술
  • 알고리즘
    • DES
    • RSA
    • SHA-1

(3) SET 이중 서명 사용 이유

  • 사용자는 판매자에게 지불 정보(계좌 정보)를 숨기고 싶음.
  • 사용자는 PG(Payment Gateway)로부터 주문 정보(물품 명세서 등)을 숨기고 싶음.
  • PG(Payment Gateway)는 판매자가 전송한 결제 요청이 실제 고객이 의뢰한 정보인지 확인하고 싶음.
주문 정보 --- (해시) ---> Hash Digest ↘
                                      연접 --- (해시) ---> [Hash | Digest] --- (암호화) ---> [Hash | Digest]
지불 정보 --- (해시) ---> Hash Digest ↗                                           ↑
                                                                              개인키

(4) SET 장점과 단점

  • 장점
    • 전자 상거래의 사기 방지
    • 기존의 신용카드 기반을 그대로 활용
  • 단점
    • 암호 프로토콜이 너무 복잡함.
    • RSA 속도 저하
    • 카드 소지자에게 전자 지갑 소프트웨어 요구

SET의 이중 서명(Dual Signature)

  • SET은 카드 결제가 일어날 때, 지불 처리를 위해서 만들어진 보안 프로토콜임.
  • SET 신용카드 결제 시, 사용자 정보와 가맹점 정보르 활용해서 카드사로부터 결제를 처리하기 위해 Master사와 VISA사가 만듦.
  • 지불 처리를 수행할 때, 사용자 정보와 가맹점 정보를 분리해서 서명하는 이중 서명(Dual Signature) 의 특징을 가짐.
가맹점 --- (Hash) ---> [전자 서명]        [Dual Signature]    암호화         
                                 →        가맹점 서명      -------->    카드 회사 / Payment Gateway 사
구매자 --- (Hash) ---> [전자 서명]           구매자 서명 
  • 해시 함수
    • 일방향 함수
    • 임의의 길이의 문자열을 입력하면, 동일한 길이의 출력을 제공함.
    • 만들어진 결과를 Message Digest 라고 함.
      • Message Digest 로 입력 값을 다시 생성할 수 없음.

 

2. SSL(Secure Socket Layer)

  • 개인 정보를 전송하는 네트워크 구간
    • 보안 서버를 사용해서 송신과 수신되는 데이터를 암호화하는 것이 안전함.
      • 암호화를 하지 않으면 스니퍼(Sniffe) 라는 네트워크 패킷 모니터링 도구를 사용해서 송신되고, 수신되는 모든 데이터를 볼 수 있게 됨.
  • 보안 서버의 구축
    • SSL(Secure Socket Layer)
      • 공개용 인터넷에서 사용하는 방식
      • 송신되는 데이터를 암호화하고 송신 과정에서 변경되었는지 확인할 수 있게 무결성을 지원함.
      • 사용자 패스워드를 사용해서 인증을 수행할 수도 있음.
      • Netscape 사에서 개발
      • 인터넷과 같은 개방 환경에서 클라이언트와 서버 사이의 안전한 통신을 위해 개발함.
      • 암호문 전송을 위해 RSA 공개 키 알고리즘 사용
      • X.509 인증서 지원
      • 443번 포트 사용
      • 전송 계층(Transport Layer) ~ 응용 계층(Application Layer)에서 동작
        • http
        • ftp
        • telnet
        • mail
      • 3가지 보안 서비스 제공
        • 비밀성
        • 무결성
        • 인증
      • 웹 상에서의 거래 활동 보호
    • SSO

(1) SSL 보안 서비스

  • 인증(Authentification)
    • 거래하고자 하는 사이트가 신뢰되고 검증된 사이트인지 개인 정보를 송신하기 전에 먼저 상대 사이트를 인증하는 기능
  • 무결성(Integrity)
    • 송신자측의 PC에서(더 정확히는 웹 브라우저) 상대편 웹 서버까지의 송신 중, 공격자나 제3자에 의해 무단으로 데이터가 위·변조 되는 것을 방지하는 기능
  • 기밀성(Confidentiality)
    • DES, 3DES, IDEA 등 여러 가지 암호화 방식을 사용하여 데이터의 송수신 중에 인가되지 않은 사용자의 데이터에 대한 불법적인 접근을 통제하고, 만일의 경우 데이터가 공격에 의하여 유출되었다 하더라도 쉽게 읽혀질 수 없는 형태로 변환시키는 기능

(2) SSL Handshaking 과정

예) 네이버에 로그인하는 과정에서 SSL이 어떤 작업을 수행하는지 확인해보기

  • SSL Handshaking 과정에서 어떤 일이 발생하는지 알아보기 위함.
  • SSL로 요청 전에 웹 브라우저는 웹 서버 포트 443을 호출하여 3 Way Handshaking을 수행함.
    • TCP 연결을 수행하고, 연결이 완료되면 웹 서버에게 Client Hello라는 메시지를 전송함.
      • Client Hello는 웹 브라웢에서 지원하는 SSL 버전(예: TLS 1.0), 지원하는 암호화 알고리즘(예: AES 대칭키 및 CBC 블록 암호화 등) 등의 정보를 전송함.
  • SSL에서 Random
    • 재생 공격(Replay Attack)을 방지하기 위한 임의적 숫자
  • 웹 서버가 Client Hello 메시지를 수신 받으면 사용할 암호화 알고리즘을 결정해서 웹 브라우저에게 Server Hello 메시지를 전송함.
    • 웹 서버는 Client Hello 요청에 Server Hello 응답으로 회신함.
    • 웹 서버가 암호화 알고리즘을 결정해서 웹 브라우저에게 전송함.
  • 웹 브라우저는 최종적으로 Change Cipher Spec이라는 것을 웹 서버에 전송해서 웹 브라우저와 웹 서버 간의 협상을 마침.
  • 웹 브라우저와 웹 서버 간에 협상이 완료되면, 이제 실질적으로 데이터 암호화를 수행함.
    • 암호문에 사용자 ID와 패스워드가 있음.

(3) SSL 구성 요소

  • Change Cipher Spec Protocol
    • SSL 프로토콜 중 가장 단순한 프로토콜
    • Hand Shake Protocol에서 협의된 암호 알고리즘, 키 교환 알고리즘, MAC 암호화, HASH 알고리즘이 사용될 것을 클라이언트와 웹 서버에 공지함.
  • Alert Protocol
    • SSL 통신을 하는 도중, 클라이언트와 웹 서버 중 누군가의 에러나 세션의 종료, 비정상적인 동작이 발생할 시에 사용되는 프로토콜
    • 내부의 첫 번째 바이트에 위험도 수준을 결정하는 Level 필드가 있음.
      • 필드의 값이 1인 경우
        • Warning의 의미
        • 통신의 중단은 없음.
          • 필드의 값이 2인 경우
        • 필드값은 Fatal로 Alert
        • 즉시 클라이언트와 서버의 통신을 중단하게 됨.
    • 두 번째 바이트에는 어떠한 이유로 Alert Protocol이 발생하였느지 나타내는 Description 필드가 있음.
  • Record Protocol
    • 상위 계층에서 전달받은 데이터를 Hand Shake Protocol에서 협의된 암호 알고리즘, MAC 알고리즘, HASH 알고리즘을 사용해 데이터를 암호화 함.
    • 산출된 데이터를 SSL에서 처리가 가능한 크기의 블록으로 나누고, 압축한 후에 선택적으로 MAC(MessageAuthentication Code)을 덧붙여 전송함.
    • 반대로 수신한 데이터는 복호화, MAC 유효성 검사, 압축 해제, 재결합의 과정을 거쳐 상위 게층에 전달하는 역할을 함.

(4) SSL Handshaking Protocol 세부 과정

진행 과정 세부 내용
Client Hello - Hand Shake Protocol의 첫 단계
- 클라이언트의 브라우저에서 지원하는 암호 알고리즘, 키 교환 알고리즘, MAC 암호화, HASH 알고리즘을 서버에 전송함.
Server Hello - Client Hello 메시지 내용 중 서버가 지원할 수 있는 알고리즘들을 클라이언트에 전송함.
Server Hello Done - 클라이언트에게 서버의 요청이 완료되었음을 공지함.
Client 인증서 - 서버에서 클라이언트의 인증 요청 발생 시, 클라이언트의 인증서를 전달함.
Premaster Key 전송 - 전달받은 서버의 인증서를 통해 신뢰할 수 있는 서버인지 확인 후, 암호 통신에 사용할 세션 키를 생성함.
- 생성한 세션 키를 서버의 공개키로 암호화해 Premaster Key를 만들어 서버에 전송함.
Change Cipher Spec - 앞의 단계에서 협의된 암호 알고리즘들을 이후부터 사용한다는 것을 서버에 알림.
Finished - 서버에게 협의의 종료를 전달함.
Change Cipher Spec - 서버 또한 클라이언트의 응답에 동의하고, 협의된 알고리즘들의 적용을 공지함.
Finished - 클라이언트에게 협의에 대한 종료를 선언함.

 


 

내용 출처 : 이기적 네트워크관리사 1·2급 필기 (임호진, 황성하 공저, 영진닷컴)

728x90
그리드형(광고전용)

'Certificate > Network Manager' 카테고리의 다른 글

72. 침입 차단 시스템(Firewall)  (0) 2021.05.03
71. 파일 무결성 검사  (0) 2021.05.03
70. IP 기반의 접근 통제  (0) 2021.05.03
69. 전자 우편 보안  (0) 2021.05.03
67. 웹 서버 보안  (0) 2021.05.03
66. 비대칭키(공개키) 암호화  (0) 2021.05.02
65. 대칭키(비밀키) 암호화  (0) 2021.05.01
64. 암호화 개요  (0) 2021.05.01
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖