RSA 비공개 키를 저장하려고합니다. 앱이 서버에 보내기 전에 데이터에 서명하여 안전한 곳에 보관하고 싶습니다. 키를 훔치는 것이 앱 폴더에서 복사하는 것보다 훨씬 어렵습니다.Java 응용 프로그램에서 RSA 비공개 키를 안전하게 저장하는 방법은 무엇입니까?
KeyStore
은 런타임시 키를 저장하고로드하는 데 사용할 수 있지만, 부호가있는 jar의 비밀번호없이 KeyStore
에서 키를로드하려면 어떻게해야합니까?
예를 들어 KeyStore에 "mykey"키를로드하고 App.jar에 서명했습니다. 암호를 지정하지 않고 KeyStore
에서 런타임에 키를 자동으로로드하려면 KeyStore
을 요청한 응용 프로그램에 서명하고 싶습니다.
아마, KeyStore
의 원리를 제대로 이해하지 못했습니다. 그러나 작업은 서버에 전송 된 데이터에 서명하고 키를 안전하게 저장하는 것입니다. (응용 프로그램은 POS 응용 프로그램이므로 시동시 암호없이 자동으로로드되어야합니다.)
수 없습니다. 비밀번호를 어디에 저장 하시겠습니까? 코드에서? 디 컴파일! 파일 시스템에서? 그런 다음 암호화되지 않은 개인 키를 동일한 장소에 쉽게 저장할 수 있습니다. 이건 불가능 해. –
KeyStore는 지정된 인증서로 서명 된 앱에만 개인 키를 제공하도록 구성 할 수 있지만 따라서 필자가 작성하고 서명 한 응용 프로그램 만 암호없이 KeyStore에서 키를 가져올 수 있습니다. 앱 데이터를 보내기 전에 서명하는 작업을 수행 할 수있는 다른 방법이 있습니까? – 12sd
그것이 featre 인 경우 : 저는 단순히 앱의 인증서를 가져옵니다 (암호화되지 않았기 때문에 앱의 공개 정보이기 때문에). 키 스토어로 넘겨주고 키를 추출하도록합니다. Keystore는 인증서가 어디서 왔는지 나 그 인증서로 서명 된 일부 앱을 알 수 없었습니다. IRL은 암호로 키 스토어를 보호 할 수 있지만이 암호는 놓을 수없는 새로운 암호입니다. – zapl