이것은 일반적인 질문이지만 특히 Android 사용에 관심이 있습니다. 키 스토어 파일이란 무엇이며 어떤 용도로 사용됩니까?
여러 Android 애플리케이션이 동일한 키 저장소를 사용하여 애플리케이션에 서명 할 수 있습니까 (.apk에 "서명"하는 것이 정확히 무엇을 의미합니까?), 이것의 의미는 무엇입니까?
이것은 일반적인 질문이지만 특히 Android 사용에 관심이 있습니다. 키 스토어 파일이란 무엇이며 어떤 용도로 사용됩니까?
여러 Android 애플리케이션이 동일한 키 저장소를 사용하여 애플리케이션에 서명 할 수 있습니까 (.apk에 "서명"하는 것이 정확히 무엇을 의미합니까?), 이것의 의미는 무엇입니까?
답변:
내가 제공하는 대답은 키 저장소 파일이 요청하는 사람에게 자신을 인증하는 것입니다. .apk 파일 서명에만 국한된 것이 아니라 개인 인증서, 전송할 서명 데이터 및 다양한 인증을 저장하는 데 사용할 수 있습니다.
apk로 서명 한 이후 Android에서 무엇을하고 무엇을 찾고 있는지에 관해서는 인증서입니다. 자격 증명을 사용하여 응용 프로그램을 브랜딩합니다. 동일한 키를 사용하여 여러 응용 프로그램을 브랜딩 할 수 있습니다. 실제로 하나의 인증서를 사용하여 작성하는 여러 응용 프로그램을 브랜딩하는 것이 좋습니다. 자신이 속한 응용 프로그램을 쉽게 추적 할 수 있습니다.
무슨 의미인지 잘 모르겠습니다. 인증서 소지자 외에는 아무도 응용 프로그램을 업데이트 할 수 없다는 것을 의미한다고 생각합니다. 즉, 응용 프로그램에 야생으로 릴리스하면 응용 프로그램에 서명하는 데 사용한 인증서를 잃어 버린 경우 업데이트를 릴리스 할 수 없으므로 해당 인증서를 안전하게 유지하고 필요한 경우 백업하십시오.
그러나 apk를 서명하여 와일드로 릴리스하는 것 외에도 원하는 경우 SSL을 통해 서버에서 장치를 인증 할 수 있습니다 (Android 관련).
Android 마켓에서는 공개 / 개인 키 메커니즘을 사용하여 인증서로 게시 한 모든 앱에 서명해야합니다 (인증서는 개인 키로 서명 됨). 이를 통해 무엇보다도 원격 공격자가 악의적 인 업데이트를 응용 프로그램에 시장에 내놓는 것을 방지 할 수있는 보안 계층을 제공합니다 (모든 업데이트는 동일한 키로 서명해야 함).
Android 개발자 사이트 의 앱 서명 안내서 에서 :
일반적으로 모든 개발자에게 권장되는 전략은 응용 프로그램의 예상 수명 동안 모든 응용 프로그램에 동일한 인증서로 서명하는 것입니다. 몇 가지 이유가 있습니다 ...
동일한 키를 사용하면 몇 가지 이점이 있습니다. 하나는 동일한 키로 서명 된 응용 프로그램간에 데이터를보다 쉽게 공유 할 수 있다는 것입니다. 다른 하나는 동일한 키로 서명 된 여러 앱이 동일한 프로세스에서 실행되도록하여 개발자가 더 많은 "모듈 식"애플리케이션을 구축 할 수 있다는 것입니다.
서명 프로세스에 대한 자세한 내용은 공식 Android 설명서 ( http://developer.android.com/guide/publishing/app-signing.html)에서 확인할 수 있습니다.
예, 동일한 키 저장소로 여러 애플리케이션에 서명 할 수 있습니다. 그러나 한 가지 중요한 점을 기억해야합니다. Play 스토어에 앱을 게시하는 경우 디버그가 아닌 인증서로 서명해야합니다. 언젠가이 앱에 대한 업데이트를 게시하려는 경우 apk 서명에 사용 된 키 저장소가 동일해야합니다. 그렇지 않으면 업데이트를 게시 할 수 없습니다.
keytool의 전체 아이디어는 해당 APK의 출처를 나타내는 고유 식별자로 APK에 서명하는 것입니다. 키 스토어 파일 (내가 이해 한 것)은 디버깅에 사용되므로 apk에는 프로덕션 용 apk에 서명하지 않고 keytool의 기능이 있습니다. 따라서 디버깅 목적으로 단일 키 저장소로 여러 APK에 서명 할 수 있어야합니다. 그러나 프로덕션 환경으로 나아가면 생성하는 각 APK의 식별자로 고유 한 키 도구가 필요하다는 것을 이해하십시오.
keytool
당신이 무슨 뜻인지 생각하지 않습니다 . keytool은 키 저장소를 생성하는 데 사용되는 Java 프로그램입니다.