Liberty: 비밀번호 암호화를 통한 보호의 한계
Liberty는 server.xml 파일에 저장된 비밀번호에 대해 고급 암호화 표준(AES) 암호화를 지원합니다. Liberty 구성에서 시스템 비밀번호의 보호를 위해 이 옵션을 사용할 때는 제공되는 보호에 대한 한계를 파악해야 합니다.
Liberty 구성에서 비밀번호 암호화는 비밀번호가 안전하거나 보호됨을 보증하지 않습니다. 이는 단지 암호화된 비밀번호를 볼 수 있지만 암호화 키를 모르는 사람이 손쉽게 비밀번호를 복구할 수 없음을 의미합니다. 애플리케이션 서버 프로세스에는 암호화된 비밀번호와 복호화 키 둘 다에 대한 액세스 권한이 필요하므로, 두 데이터 항목은 모두 서버 런타임 환경에 액세스할 수 있는 파일 시스템에 저장해야 합니다. 암호화 키는 또한 서버 구성에 배치된 비밀번호를 암호화하는 사용자에게도 필요합니다. 따라서 Liberty 서버 인스턴스와 정확히 동일한 파일 세트에 액세스할 수 있는 공격자에 대해 비밀번호에 AES 암호화 적용은 XOR("exclusive or") 인코딩을 넘어서는 추가 보안을 제공하지 않습니다.
- 비밀번호는 민감하지 않으므로, 비밀번호를 인코딩하면 작은 값이 제공됩니다.
- 비밀번호는 민감하므로, 비밀번호를 포함하는 구성 파일이 보안에 민감하여 액세스를 구성해야 하거나, 비밀번호가 암호화되고 인코딩 키가 보안에 민감하도록 보호 설정됩니다.
복호화에 사용되는 암호화 키는 wlp.password.encryption.key 특성을 설정하여 기본값에서 대체될 수 있습니다. 이 특성은 비밀번호를 저장하는 server.xml 파일에서 설정하면 안되고, server.xml 파일에 의해 포함되는 별도의 구성 파일에서 설정해야 합니다. 이 별도의 구성 파일에는 단일 특성 선언만 포함해야 하며, 서버에 대한 일반적인 구성 디렉토리 외부에 저장해야 합니다. 그러면 서버 덤프나 패키지 명령을 실행할 때 키를 포함하는 파일이 포함되지 않습니다. 암호화 키 특성은 부트스트랩 특성으로 지정할 수도 있습니다. 이 옵션을 선택하는 경우, 서버 bootstrap.properties 파일에 포함되는 별도의 특성 파일에 암호화 키를 두십시오.
XOR 또는 AES를 사용하여 비밀번호를 보호하는 방법에 대한 정보는 관련 링크(특히, securityUtility 명령)를 참조하십시오.