DevOps/Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

암호화 처리를 위한 Encryption과 Decryption

:)jun 2023. 4. 3. 14:20

 
Encryption types
1. Symmetric Encrption (Shared)
 - Using the same key
2. Asymmetric Encryption (RSA Keypair)
 - Private and Public Key
 - Using Java keytool

 
 
자바 1.8 이하인 환경에서는 Java Cryptography Extension (JCE) 설치 필요.
=> 압축 해제 후, local_policy.jar, US_export_policy.jar 두 개의 파일 jre/lib/security 폴더로 복사
 
Symmetric Encryption 구현 방법
Config Server 'starter-bootstrap' Dependency 추가
bootstrap.yml 파일 encrypt.key 값 임의대로 설정
Users Microservice의 application.yml, bootstrap.yml 수정
Config Server의 user-service.yml 작성
 
실행 후 1234를 encrypt하는 과정에서 에러 발생.

아직 문제 해결 못함.
keystore를 직접적으로 주는 비대칭키부터 진행해보자.
keytool을 이용해서 키를 생성하고 yml 파일 설정

다시 HTTP요청을 보냈더니 같은 오류 발생.

원래 있던 파일을 대체해야하는데 그냥 밖에 덩그러니 놓여있음.
unlimited 다운받았으니 해당 파일 대체 해보자.
대체하고 재실행해도 같은 문제 발생.
컴퓨터 재부팅 후 다시 시도해보자.

같은 문제 발생.

 

결국 bootstrap.yml에 설정했던 값들을 application.yml에 넣어주니 해결.

starter-bootstrap 의존성 추가해줬는데 왜 못 읽어올까?

(보류)

 

대칭키는 해결됐는데 비대칭키에서 이슈 발생.

jks 파일을 새로 생성해줬지만 해결 안됨.

현재 로컬에 설치된 java 버전이 17버전인데 해당 버전에서 생성한 jks 파일을 자바 1.8버전에서 읽을 수 없다고 함.

1.8 버전 keytool 위치를 찾아서 생성하니 이슈 해결

 

'{cipher}암호화된문장' 을 config-repo에 작성해놓으니까 불러올 때 복호화해서 읽어줌.

 

궁금증1. starter-bootstrap 의존성 추가해줬는데 왜 못 읽어올까?

궁금증2. 읽어오면서 복호화 하는 과정을 상세히 알고싶다. yml파일에 key-store라는 개념까지