Project

General

Profile

Actions

New Function #546

open

[INFRA] DB 암호화

Added by Jisoo Choi about 1 month ago. Updated 3 days ago.

Status:
New
Priority:
Normal
Assignee:
Start date:
08/13/2024
Due date:
% Done:

0%

Estimated time:

Description

 

 

코레일유통 DB암호화 DAMO DA-MYQ 사용자 설명서 전달드립니다

 

설치된 DA 제품은 DBMS에 암호화,복호화 함수를 생성하여 쿼리에 함수로 데이터를 직접 암호화하는 기능을 제공합니다

Scp database를 생성하여 함수를 만들어 두었습니다

암호화, 복호화 함수는 총 2개의 인자값을 가지며 첫번째는 암호화 정책명으로 KEY1 으로 설정해두었습니다

두번째 값은 암호화,복호화 대상 데이터입니다

 

암호화 함수 예시는 아래와 같습니다.

사용 예시)

암호화 : select scp.enc_b64('KEY1','test');

복호화 : select scp.dec_b64('KEY1',scp.enc_b64('KEY1','test'));

 

또한 암호화 후 데이터 길이가 길어지므로 암호화 적용 전에 미리 컬럼 길이를 변경해두어야 합니다

암호화 후 변경되는 컬럼 길이 확인은 아래 내용과 첨부파일을 참고 바랍니다

 

 

 

n 암호화 후 컬럼 길이 확인 방법

*사진 첨부

 

 

 

n 암호화/복호화 상세 방법

D'Amo_DA-MYQ_v5.0.52_사용자_설명서(SL4) (1).pdf 의 77~80p 

 

 

 

n DB 암호화 대상

1) 주문 정보(st_order)
: 주문자연락처(orderer_phone), 수령자명(receiver_name), 수령자연락처(receiver_phone), 배송지우편번호(delivery_zipcode), 배송지주소(delivery_address), 배송지보조주소(delivery_sub_address)

2) 결제 정보(st_order_payment)
: 예금주명(holder_name), 환불계좌번호(refund_account_number), 환불예금주명(refund_holder_name)

3) 사용자(st_user)
: 이름(username), 휴대전화번호(hp), 이메일(email), 우편번호(zipcode), 주소(address), 보조주소(subaddress), 사내메일(company_email)

4) 탈퇴회원 정보(st_withdraw_user)
: 이름(username), 휴대전화번호(hp), 이메일(email), 우편번호(zipcode), 주소(address), 보조주소(subaddress), 사내메일(company_email)

 

 

 

 


Files

Actions #1

Updated by Jisoo Choi 9 days ago

 

 

 

기존에 korail_store 계정이 mysql Database에 권한이 없어 쿼리 조회가 불가했는데(root로만 가능), 

현재 select 권한을 부여하여 암호화 함수 조회 가능하도록 수정되었다고 합니다.

 

 

 

Actions #2

Updated by Jisoo Choi 7 days ago

 

 

 

DB 암호화 테스트를 위해서 운영 DB의 scp에 koral_store의 데이터 이전을 부탁드립니다.

*scp의 데이터로 테스트해서 확인 진행하려고 합니다.

 

 

 

Actions #3

Updated by Deca Park 3 days ago

  • Assignee changed from Deca Park to Toby Pham

[ADMIN] / [API] 

1.config.properties
  1) dev
    #db encryption flag
    db.encrypt.proc=N
  2) prod
    #db encryption flag
    db.encrypt.proc=Y

2.Target DB (table/column)

  - apply DB encrypt/decrypt into target DB

  1) st_order (6 colmns)
    - orderer_phone / receiver_name / receiver_phone / delivery_zipcode / delivery_address / delivery_sub_address
  2) st_order_payment (3 colmns)
    - holder_name / refund_account_number / refund_holder_name
  3) st_user (7 colmns)
    - username / hp / email / zipcode / address / sub_address / company_email
  4) st_withdraw_user (7 colmns)
    - username / hp / email / zipcode / address / sub_address / company_email

3.TO-DO : apply logic (Mapper.xml)

  1) INSERT / UPDATE Target DB (table/column)
    - when INSERT INTO VALUES
    a) if db.encrypt.proc is 'Y'
      - scp.enc_b64('KEY1',{value})
    b) else
      - same as current
  2) SELECT Target DB (table/column)
    - when SELECT 
    a) if db.encrypt.proc is 'Y'
      - scp.dec_b64('KEY1',{encryptValue})
    b) else
      - same as current

Actions

Also available in: Atom PDF