[Google Play] 앱 서명 이해하기

류명운

·

2021. 8. 23. 17:41

반응형

[Google Play] 앱 서명 이해하기 

  • 모든 앱(APK)은 동일한 보안 암호화 키를 사용하여 디지털 방식으로 서명된 후 출시 사용자 보호 목적
  • 앱의 원래 제공자만 앱을 업데이트할 수 있도록 검증하는데 사용
  • Android 기기가 앱 업데이트를 받으면 업데이트 전에 플랫폼의 디지털 서명이 기기 설치 앱 버전과 일치하는지 검증

 

앱 서명 키

  • 개요
    • 모든 앱 버전을 보안 키(공개키/비공개키 쌍)로 디지털 서명 됨
      • 앱 서명 키는 기밀
      • 앱 서명 키를 사용하여 생성한 인증서는 공유 가능
  • 공개 키 인증서(디지털 인증서 또는 ID인증서라고 불림)
    • 공개 키 + 비공개 키 소유자의 식별 메타 데이터(이름,위치)가 포함
    • 앱에 서명할 때 서명 도구가 앱에 인증서를 첨부하면 인증서는 개발자와 해당 비공개 키에 APK 또는 AAB를 연결
      • Android 기기에서 원래 게시자가 제공한 신뢰할 수 있는 앱 업데이트인지 확인 가능
  • 업데이트
    • 기기의 업데이트 인증서가 설치된 앱의 인증서와 일치하는 경우에만 기기에서 업데이트 수락
    • 모든 앱은 사용자가 새 버전을 앱의 업데이트처럼 설치할 수 있도록 전체 기간에 같은 인증서를 사용해야 함

 

앱 서명 서비스

  • Google은 Google Play에서 배포한 앱의 앱 서명 키를 개발자가 보유하고 관리할 수 있는 앱 서명 서비스를 제공
    • 앱 서명 서비스를 이용하지 않을 경우 (선택 사항)
      • 개발자가 직접 앱에 서명하고 키를 안전하게 보호 및 관리할 수도 있음
      • 키를 분실했거나 해킹 및 손상 당한 경우 앱을 업데이트할 수 없음. 별도의 패키지 이름을 가진 새 앱을 생성하여 다시 시작하여야 함 
    • 앱 서명 서비스를 이용할 경우
      • 앱 서명을 등록할 경우 App Bundle 및 Dynamic Delivery 기능과 같은 혜택 활용 가능
      • Google Play에서 비밀 앱 서명 키를 만들고 관리하기 때문에 키를 분실하거나 해킹 당할 위험이 적음
  • 2021-08 이후 출시되는 신게임은 AAB(Andorid App Bundle)로 앱 서명 통합 관리 필수
  • 기존 게임의 경우 앱 게시 형식(APK or AAB) 규제 없으나 2021-11 이후 Android API Level 30 이상 필수 

 

앱 서명 작동 과정

  • Google이 개발자 대신 앱의 서명 키를 관리하고 보호하면서 이 키를 사용하여 배포할 APK에 서명 함
    • Play Console 계정 소유자 혹은 전체 '프로덕션 버전 관리' 권한 있는 사용자 사용 가능
  • 업로드 키를 사용하여 개발자 신원 확인
    • Android Studio에서 업로드 키 및 키 저장소 생성
    • 업로드 키의 공개 인증서를 Google Play에 등록
    • 업로드 키로 앱 서명 (APK 또는 AAB)
    • 앱을 Play Console에 업로드
    • Play COnsole이 앱을 기기에 배포하기 전에 보호된 앱 서명키로 앱에 다시 한번 서명 (공개 / 비공개 키 쌍)
  • 업로드 키를 분실하거나 도난당했을 때 업로드 키 재설정을 요청
  • 앱 서명에 등록하면 앱을 삭제하지 않는 이상 Google Play 서버에서 앱 서명 키를 무기한 보관
    • 앱이 삭제될 경우 30일이 지나면 자동 삭제
반응형