[Android] jks 파일 분실 해서는 안되는 이유

[Android] jks 파일 분실 해서는 안되는 이유

확장자 jks 파일은 인증서 파일이다. 안드로이드 앱을 묶을 때 jks 파일을 사용한다.

전임 모바일 담당자로부터 jks 파일을 분실하면 그냥 새로 만들면 된다고 인수인계 받았다.

새로 만들어서 앱을 묶나, 기존에 있는 파일을 사용해서 앱을 묶나 차이가 없다는 것이다.

나중에 알고 보니 전혀 그렇지 않았다.

기존 앱을 묶을 때 사용했던 jks 파일을 사용해야, 새로 묶은 앱이 이상 없이 잘 설치된다.

일종의 업데이트 행위가 이루어진다.

만약 기존 앱과 다른 jks 파일을 사용해서 앱을 묶는다면, 분명 동일한 앱임에도 불구하고 패키지가 충돌난다. (패키지가 이름이 같은 기존 패키지와 충돌합니다)

새 버전의 앱을 깔기 위해서 이전 앱을 삭제해야만 하는 것이다.

내용이 여기서 끝나면 섭하니, 검색을 통해 들어오신 분들에게 도움이 될만한 링크를 남겨둔다.

[문제해결] 

1. jks 파일 분실했을 경우

1-1. Google Play 지원팀에 문의

마켓에 배포한 앱의 경우, 미리 Google Play App Signing 을 설정해두었다면 복구할 수 있다.

Keystore파일(PEM 파일)을 새로 생성하고 Google Play 지원팀에 문의를 작성하면 된다고 한다.

관련 링크 : https://zeallat.wordpress.com/2018/02/21/android-keystore-%EB%B6%84%EC%8B%A4%EC%8B%9C-%ED%95%B4%EA%B2%B0-%EC%82%AC%EB%A1%80/comment-page-1/

1-2. apk 파일로부터 jks 파일을 복구 (불가능)
apk 파일로부터 jks 파일을 복구하는 방법을 열심히 찾아보았지만… 아직까지 확인된 바로는 없다.
(아시는 분 댓글 달아주시길)
지금 막 떠오른 방법으로는 기존 apk 파일의 압축을 풀어서, 소스에 관련된 파일들만 새로운 apk 파일 내에서 가져다가 엎어치고, apk를 다시 묶으면 어떨까 싶은데 될지 잘 모르겠다.
2, jks 파일의 비밀번호를 분실했을 경우
2-1. 로그를 통해 jks 패스워드 찾기
안드로이드는 빌드를 할 때마다 로그를 남겨놓는다. AndroidStudio 폴더 내의 idea.log, idea.log.1, idea.log.2 … 등 파일을 열어본 이후 password, alias, key, store 등의 키워드를 검색해보면 찾을 수 있다고 한다.
2-2. Bruteforce(모든 값 대입)를 통해 jks 패스워드 찾기
정말 엄청난 프로그램인데… 가용한 모든 경우의 수를 대입해서 패스워드를 찾아내는 프로그램인 <Android-keystore-password-recover>가 있다.