[CS] 전자상거래 보안

PM077·2022년 11월 18일
0

CS Study

목록 보기
6/27

전자상거래 정의

온라인 상에서 물품을 사고 파는 사업. 우리가 흔히 아는 홈쇼핑, 온라인 홈뱅킹, 인터넷 쇼핑 등이 이에 해당된다

전자상거래 보안

전자상거래의 보안 요건

  1. 인증에 대한 공격
    다른 사람으로 위장해서 공격하는 분류로 본인인증에 대한 보안강화가 필요
  2. 송/수신 부인 공격
    온라인상 인증 및 결제를 부인하는 공격으로 결제를 함에도 불구하고 안되었다고 하는 것. 해결하기 위해 중개인이 돈을 홀딩하거나 택배 사진을 찍어 인증하는 방법을 사용하고 있음
  3. 기밀성에 대한 공격
    거래 내역 및 인증 정보가 유출되는 공격으로 부정하게 사용이 될 수 있음
  4. 무결성에 대한 공격
    온라인 거래 도중 거래 내역이 변경되어 피해를 주는 행위

이러한 보안 규정을 지키며 신분 확인, 신뢰할 만한 제3자의 중재, 온라인 거래의 과정의 보안성을 지켜야만 된다.

HOW??

공개키 기반 구조(Public Key Infrastructure, PKI)

전자상거래에서 사용하는 방법 중 하나이며, 인터넷 상에서 신분을 증명할 수 있는 구조를 설명한다. 여기서 CA(기관)을 통해 신분을 증명하며 도구로는 "공인인증서"를 사용한다

CA(기관)

  • PAA(Policy Approval Authorities, 정책승인기관)
    공인인증서에 대한 정책을 결정하고 하위 기관의 정책을 승인하는 기관이다. 제일 상단에 있는 기관이며 현재는 과학기술정보통신부이다.
  • PCA(Policy Certification Authorities, 정책인증기관)
    RootCA를 발급하고 기본 정책을 수립하는 기관이며 현재는 인터넷진흥원이 관리담당하고 있다. 인증서의 기초가 되는 인증서를 가지고 있다고 보면 된다.
  • CA(Certification Authority, 인증기관)
    인증서 발급과 취소 등의 실질적인 업무를 하는 기관으로 금융결제원, 한국전산원이 여기에 해당한다
  • RA(Registration Authority, 등록기관)
    사용자의 신분을 확인하고 CA 간 인터페이스를 제공하는 기관이다.
  • 공인인증서 사용자
    공인인증서를 사용하는 고객이라고 생각하면 된다

공인인증서

공개키와 소유자를 연결하는 전자문서(파일)이며 CA에서 전자서명하여 생성이 가능하다. 이는 버전, 일렬번호, 서명 알고리즘, 발급자, 유효기간, 주체, 공개키로 구성되어있다. 이는 누구나 사용자의 인증서를 획득하고, 공개키를 획득할 수 있으며 인증기관 외에는 수정/발급이 불가능하다. 즉, 사용자에게 공개키를 주고 인증기관은 개인, 사설키를 가지고 있다. 이를 통해 변조가 되었는지 확인이 가능하다.

전자 서명

공인인증서 기반으로 만들어진 방법으로 갑과 을이 서로 동의했다는 것을 증명하는 방법이다.

A가 B에게 전자서명을 통해 문서를 보낸다고 생각해보겠다.
1. 문서의 해시값을 구함
2. A의 사설(개인)키로 문서의 해시값을 암호화함
3. 암호화된 해시값 + 문서를 B에게 보냄
4. B는 문서를 수령함
5. B는 문서의 해시값을 구한다
6. A의 공개키를 가지고 암호화된 해시값을 복호화한다
7. 문서의 해시값과 복호화한 해시값이 같으면 변조없이 A으로부터 왔다는게 증명됨

전자서명를 통해 위조, 재사용, 변경, 부인을 방지하며 서로 인증을 할 수 있다.

전자 결제

전자 결제를 진행 할 때 불필요한 개인정보가 유출될 수 도 있다. 전자결제에서 보안이 없다면 쇼핑몰 같은 경우는 카드 결제를 위해 카드정보를 열람할 수 도 있을 것이며, 은행사 같은 경우는 불필요한 개인정보에 해당하는 구매 내역까지 볼 수 도 있을 것이다. 이를 방지하기 위해서 SET(Secure Electronic Transaction) 이 개발되었다.

SET(Secure Electronic Transaction)

사용자가 물품을 구매했다고 예를 들어보겠다
1. 사용자는 상점에게 "구매정보" + "카드정보"를 보낸다
2. 이때 이대로 그냥 보내면 상점이 열람할 수 있기 때문에 카드정보를 개인키로 암호화한다(이때 개인키로 암호화는 그냥 사용자가 본인만 아는 암호로 암호화한다는 의미이다.)
3. 그리고 이 암호화된 암호를 PG사의 공개키로 한 번 더 암호화한다 (구매정보 + PG사키[개인키[카드정보]]
4. 구매정보의 해시값과 암호화된 카드 정보의 해시값을 구해서 합친다.
5. 이 두 해시값을 고객의 개인키로 암호화해서 보내는 것이다

이 과정으로 카드정보를 안전하게 보내며, 해시값 대조로 인해 변조 또한 방지할 수 있다.

간편 결제

신용카드 정보를 모바일에 입력하고 간편하게 바로 결제시스템을 사용하는 기능. 흔히 사용되는 것은 삼성페이, 애플페이, 구글페이, 위챗, 알리페이가 있다. VAN이라는 기업이 카드사의 결제 대행을 해주고 수수료를 받고 있었는데 이러한 기업의 간편결제 시스템 때문에 논쟁이 있었던 적이 있다.

전자 화폐

금전적 가치를 전자적으로 저장해 사용하는 방법으로 이전에 많이 사용하던 티머니를 생각하면 된다.

스마트 카드

접촉식

접촉식 카드는 우리가 흔히 하는 신용카드를 생각하면 된다. 기존의 신용카드는 마그네틱에 정보가 담겨져 있어 암호화가 되어있지않아 위험했지만 요즘 접촉식 카드는 칩에 보안화 시스템을 만들어 보안이 필요한 전자결제와 같은 곳에 많이 쓰이고 있다.

비접촉식

구리선을 통한 전파를 만들어 결제하는 시스템으로 버스카드를 생각하면 된다. 이는 처리시간이 아주 빠르기에 3~4초 이상 걸리는 접촉식카드와는 다른 용도로 쓰인다. 이는 허나 분실 시 카드사와 매번 직접 연결을 안하고 3~4일에 한 번 씩 업데이트하기에 남용하는 것을 빨리 막을 수 가 없다.

정적 데이터 인증 카드


정적인 데이터를 안전하게 보내는 방법이 담긴 그림이다. 즉, 스마트카드와 카드단말기가 만나 어떤식으로 결제되는지 보여준다.

  • 스마트카드에 있는 “데이터 정보”를 꺼내기 위해서는 “발행자 개인키” 필요
  • 이는 “발행자 공개키”로 열 수 있음.
  • “발행자 공개키”는 “CA 개인키”로 잠겨있음
  • “CA개인키”를 얻기위해 단말기랑 접촉해 “CA공개키”를 받고
  • 이를 통해 인증기관의 CA개인키를 받음
  • 이렇게 “데이터 카드정보”를 얻으면 카드회사한테 보냄

이런식으로 진행이 되지만 정적인 카드 정보때문에 보안상 문제가 될 수 있다.

동적 데이터 인증

그렇기에 동적 데이터 인증으로 매번 카드 정보를 발급받는 방법도 있다. 인증 할 때 마다 새롭게 발급을 하며 삼성페이는 카드정보를 입력받지만 매번 새로운 정보를 발급해주며 보안 수준을 높이고 있다.

profile
PM/PO

0개의 댓글