New Function #546
open[INFRA] DB 암호화
0%
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
Updated by Jisoo Choi 10 days ago
기존에 korail_store 계정이 mysql Database에 권한이 없어 쿼리 조회가 불가했는데(root로만 가능),
현재 select 권한을 부여하여 암호화 함수 조회 가능하도록 수정되었다고 합니다.
Updated by Jisoo Choi 7 days ago
DB 암호화 테스트를 위해서 운영 DB의 scp에 koral_store의 데이터 이전을 부탁드립니다.
*scp의 데이터로 테스트해서 확인 진행하려고 합니다.
Updated by Deca Park 4 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