금융권 보안

Jinjin·2023년 11월 14일
0
post-thumbnail

100% 완벽한 보안은 존재하지 않는다.

그럼 왜 보안에 신경쓰는가? ⇒ 보안이 뚫리는 시간의 지연을 주기 위해
ex) 2014년 국민 - 5300만, 롯데 - 2500만, 농협카드 - 2500만, 2014년 KT 1200만건 유출


🔴금융권 Domain

  1. 계정계 : 금융업무처리 시스템 그 자체
  2. 정보계 : 계정계 데이터를 기반으로 영업점 및 각 부서의 업무처리를 위해 필요한 거래데이터의 기록 및 기록의 통계를 관리하는 시스템
  3. 대외계 : 은행 외부기간과 연계되는 업무용 금융 공동망 등 연결 시스템
  4. 채널계 : End User에 따른 다양한 접속채널에서 발생하는 데이터들을 관리하는 시스템
  5. 운영계 : 시스템의 안정적인 운영을 위한 통합관제, Net 모니터링, 유ㅜ지보수 등을 담당
  6. 기간계 : Legacy. 신규 시스템 도입 시점에서 기존에 사용하던 시스템.

🟠금융권 보안의 핵심

데이터를 (설계한 케이스 외에는, 절대로) 주지 않는 것
사고발생시 조치될 시간을 버는 것

[암호화 처리를 한 정보]
user_nm_enc : 사용자 정보, mobile_no_enc : 핸드폰 번호
account_no_enc : 계좌번호, amount_enc : 금액

인코딩이 되어있는 코드에서 별도의 인증된 API를 거치면 사용자의 정보가 나온다.

⇒ 금융권 내부에서 이름, 전화번호, 주민등록번호 등등을 DB에 그대로 가지고 있지 않고 모두 암호화해서 넣어둔다.



🟡Legacy의 암호화 설계

MSA를 쓸 때 서버와 서버 간의 내부 시스템에도 https를 사용하자
LetsEncrypt도 MSA 때문에 나온 것이다.

Q. Legacy와 Trendy의 차이? accessToken과 jwt


accessToken만 사용했다면(JWT 사용하지 않은 경우) server와 db간에 있어서 굉장이 불필요한 부하이다.(인증됨? 아님?)

JWT는 인증이 가용한 시간 내에서는 서버에서 모든 인증을 파악하여(DB까지 가지 않음) 인증을 마침 ⇒ DB쪽의 부하를 줄임

jwt의 header, payload, hash에서 가장 중요한 건 payload이다.

accessToken이 만료되었을 때 refreshToken으로 인증을 연장시킨다? ⇒ 모바일에서는 개인이 사용하고 개인이 인증하는 것이기 때문에 가능하다. (사실 좋은 방법이 아님)

하지만, 웹 페이지에서는 내가 늘 들고 다니는 것이 아니기 때문에 (즉, 내가 자리를 비웠을 때) 정보가 방치됨

따라서, accessToken이 만료되었을때 refreshToken으로 연장시키는 것이 아니라 refreshToken으로 accessToken, refreshToken을 다시 재발급 받아야한다.

만약, 웹과 앱 모두 구현하는 플랫폼이면 인증처리를 다르게 해야한다. request에서 웹인지? 앱인지? 같이 넘어와서 처리를 다르게 하기

profile
BE Developer

0개의 댓글