본문 바로가기

MSA

23. Java Cryptography Extension(JCE) 암호화 적용(대칭키)

1. plain text의 노출을 하지 않기위해 대칭키 또는 비대칭키 방식을 선택하여 암호화

2. 암호화 할 부분을 config server에 위임하기 위해 bootstrap.yml에 교정

3. bootstrap.yml은 자동으로 반영되지 않으므로 config sever dependency에 spring-cloud-starter-bootstrap이 있어야 함

4. 대칭키를 이용한 암호화

bootstrap.yml을 추가하고 encrypt.key를 설정하고 config server 재기동

4-1. Postman을 통한 encrypt request와 response 확인

plain text를 encrypt-test로 request를 했을때의 response값 확인

4-2. encrypt의 response값을 decrypt request로 입력 후 response 확인

encrypt-test로 발생한 대칭키 암호화값의 decrypt를 했을때의 결과값

4-3. micro service에 대칭키 암호화 적용을 위해 application.yml에 이동할 부분 주석

데이터베이스의 비밀번호를 대칭키 암호화 예정

4-4. micro service에서 주석처리한 부분을 config server에서 사용하는 환경파일의 위치에 생성하고 plain text 비밀번호를 기재 후 

4-5. 해당 micro service에서 읽어올 config server의 읽어야 할 환경 파일 지정

바로 위 그림의 user-ms.yml을 읽어야 한다

4-6. Postman으로 plain text 1234를 encrypt한 내용을 확인

4-7. 암호화된 문자열을 config server에서 읽을 환경 파일에 {cipher}와 함께 기재 후 config server 재기동

4-8. config server 웹브라우져에서 복호화 값 확인

yml에는 cipher을 통해 암호화값이 들어갔으나 브라우져(client)에는 복호화값으로 보여준다

4-9. 암호화가 적용된 micro service에서 h2-console로 접근후 비밀번호 1234를 입력해야 로그인이 정상적임을 확인

1234를 비번에 입력후 테스트