첫 번째 방법은 비밀 번호를 분리 된 파일로 배포하고 런타임에 Properties
API를 통해 읽는 것입니다. 쉽고 간단합니다. base64 인코딩을 추가하면 스크립트 키즈로부터 보호됩니다. 게시 소스 코드는 암호 저장 방법 만 보여줍니다. 물론 코드와 파일의 누출은 여전히 문제입니다.
두 번째 방법은 매우 유사합니다. 암호를 환경 변수로 저장하고 System.env
을 통해 읽습니다. 이 경우 암호를 알고 공격자가 OS에 액세스하여 암호를 읽어야합니다. 그러면 조금 더 복잡해집니다.
세 번째 방법은 2 단계 암호입니다. 두 번째 방법을 사용하여 저장하는 첫 번째 비밀번호는 기본 비밀번호가 포함 된 AES 암호화 된 파일의 비밀번호입니다.
우리 프로젝트에서는 두 번째 방법을 사용합니다. 그것은 코드 유출 (어떻게 든)이 누출되면 암호를 노출시키는 우리를 보호합니다. 그러나 누군가가 서버 보안을 깨면 ... 그러면 유출 된 암호보다 훨씬 심각한 문제가 발생할 것입니다.
ps. 조금 더 세게 만들기 위해 Honey Encription으로 게임을 시도 할 수 있습니다. 공격자는 자신이 유효한 암호를 가지고 있는지 또는 단지 보이는 것만 알 수 없습니다.
맞습니다. 비밀번호를 입력 할 수있는 유일한 안전한 장소는 사람의 뇌입니다. 그러나 비트 단위로 16 진수로 변환하거나 base64 인코딩 (또는 그 조합)으로 변환하면 읽기가 더 어려워 질 수 있습니다. 특정 파일 생성 날짜에 대한 bytewise XOR은 또 다른 아이디어이지만, 이것은 깨지기 쉬운 것일 수 있습니다. –