Play 앱 서명 사용하기

Google에서는 Play 앱 서명으로 앱의 서명 키를 관리하고 보호하며, App Bundle에서 생성된 최적화된 배포 APK에 서명하는 데 이 키를 사용합니다. Play 앱 서명은 Google의 보안 인프라에 앱 서명 키를 저장하고 보안 강화를 위한 업그레이드 옵션을 제공합니다.

Play 앱 서명을 사용하려면 프로덕션으로 출시, 기기 제외, Play 앱 서명 사용 권한이 있는 계정 소유자 또는 사용자여야 하며 Play 앱 서명 서비스 약관에 동의해야 합니다.

작동 원리

Play 앱 서명을 사용하면 Google에서 자체 키를 저장하는 데 사용하는 인프라와 동일한 보안 인프라에 앱 서명 키가 저장되며 Google 키 관리 서비스로 보호됩니다. Google 인프라에 관해 자세히 알아보려면 Google Cloud 보안 백서를 참고하세요.

Android 앱은 비공개 키로 서명됩니다. 앱 업데이트를 신뢰할 수 있도록 하기 위해 모든 비공개 키에는 기기 및 서비스에서 앱 업데이트가 동일한 소스로부터 게시되었는지 확인하는 데 사용하는 관련 공개 인증서가 있습니다. 기기는 업데이트의 서명이 설치된 앱의 서명과 일치할 때만 업데이트를 수락합니다. Google이 앱 서명 키를 관리하도록 허용함으로써 이 프로세스를 더욱 안전하게 만들 수 있습니다.

참고: 2021년 8월 이전에 만들어진 앱의 경우 Play 앱 서명을 사용하여 Android App Bundle로 게시하는 대신 계속 APK를 업로드하고 자체 키를 관리할 수 있습니다. 하지만 키 저장소를 분실하거나 도난당하면 새로운 패키지 이름으로 새 앱을 게시해야만 앱을 업데이트할 수 있습니다. 이러한 앱의 경우 Play에서는 Play 앱 서명을 사용하여 App Bundle로 전환할 것을 권장합니다.

키, 아티팩트, 도구 설명
용어 설명
앱 서명 키

Google Play에서 사용자 기기로 전달되는 APK 서명에 사용하는 키입니다. Play 앱 서명을 사용하면 기존 앱 서명 키를 업로드하거나 Google에서 자동 생성하도록 할 수 있습니다.

앱 서명 키는 비공개로 유지되지만 앱의 공개 인증서는 다른 사람과 공유할 수 있습니다.

업로드 키

Google Play에 업로드하기 전에 App Bundle에 서명하는 데 사용하는 키입니다. 업로드 키는 비공개로 유지되지만 앱의 공개 인증서는 다른 사람과 공유할 수 있습니다. 보안상의 이유로 서로 다른 앱 서명 키와 업로드 키를 사용하는 것이 좋습니다.

업로드 키를 생성하는 방법은 두 가지입니다.

  • 앱 서명 키 사용: Google에서 앱 서명 키를 생성하게 하면 첫 번째 버전에 사용하는 키가 업로드 키가 됩니다.
  • 별도의 업로드 키 사용: 자체 앱 서명 키를 제공하면 보안 강화를 위해 새로운 업로드 키를 생성하는 옵션이 표시됩니다. 새로운 업로드 키를 생성하지 않으면 앱 서명 키를 업로드 키로 사용하여 버전에 서명합니다.
인증서(.der 또는 .pem)

인증서에는 공개 키와 키 소유자에 관한 추가 식별 정보가 포함되어 있습니다. 공개 키 인증서를 사용하면 누구나 App Bundle이나 APK에 서명한 사람을 확인할 수 있으며 비공개 키가 포함되어 있지 않으므로 이를 다른 사람과 공유할 수 있습니다.

API 제공업체에 키를 등록하려면 Play Console의 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)에서 앱 서명 키와 업로드 키의 공개 인증서를 다운로드할 수 있습니다. 공개 키 인증서는 다른 사람과 공유할 수 있으며 비공개 키를 포함하지 않습니다.

인증서 지문

짧고 고유한 인증서 표현 형식으로 API 제공업체가 패키지 이름과 함께 요청하는 경우가 많습니다. 앱을 제공업체 서비스에 등록하는 데 사용됩니다.

업로드 및 앱 서명 인증서의 MD5, SHA-1, SHA-256 지문은 Play Console의 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)에서 찾을 수 있습니다. 같은 페이지에서 원래 인증서(.der)를 다운로드하여 다른 지문으로 변환할 수도 있습니다.

자바 키 저장소(.jks 또는 .keystore) 보안 인증서 및 비공개 키의 저장소입니다.
Play 암호화 비공개 키(PEPK) 도구

자바 키 저장소에서 비공개 키를 내보내고 암호화하여 Google Play로 전송하는 도구입니다.

Google에서 사용할 앱 서명 키를 제공할 때 키(필요한 경우 공개 인증서도 포함)를 내보내고 업로드하는 옵션을 선택하여 안내에 따라 도구를 다운로드하고 사용합니다. 원하는 경우 PEPK 도구의 오픈소스 코드를 다운로드, 검토 및 사용할 수 있습니다.

앱 서명 절차

절차는 다음과 같습니다.

  1. App Bundle에 서명하고 Play Console에 업로드합니다.
  2. Google에서는 App Bundle로부터 최적화된 APK를 생성하고 앱 서명 키로 이에 서명합니다.
  3. Google은 apksigner를 사용하여 앱 매니페스트에 스탬프 두 개(com.android.stamp.source, com.android.stamp.type)를 추가한 다음 앱 서명 키로 APK에 서명합니다. apksigner로 추가된 스탬프를 통해 APK에 서명한 사람을 추적할 수 있습니다.
  4. Google에서 서명된 APK를 통해 앱을 게시하고 사용자에게 표시합니다.

Play 앱 서명 구성

2021년 8월 이후에 만들어진 앱 안내

1단계: 업로드 키 만들기

  1. 안내에 따라 업로드 키를 만듭니다.
  2. 업로드 키로 App Bundle에 서명합니다.

2단계: 버전 준비하기

  1. 안내에 따라 버전을 준비하고 출시합니다.
  2. 출시 트랙을 선택한 후 '앱 무결성' 섹션에 앱의 Play 앱 서명 상태가 표시됩니다.
  3. Google에서 생성한 앱 서명 키로 계속 진행하려면 App Bundle을 업로드합니다. 또는 앱 서명 키 변경을 선택하여 다음 옵션에 액세스할 수 있습니다.
    • Google에서 생성한 앱 서명 키 사용: 신규 앱의 90% 이상이 Google에서 생성한 앱 서명 키를 사용합니다. Google에서 생성한 키를 사용하면 분실이나 유출이 방지됩니다(키를 다운로드할 수 없음). 이 옵션을 선택하면 다른 배포 채널에 관해 Google 생성 키로 서명된 App Bundle 탐색기에서 배포 APK를 다운로드하거나 다른 키를 사용할 수 있습니다.
    • 다른 앱 서명 키 사용: 앱 서명 키를 선택하면 개발자 계정의 다른 앱과 같은 키를 사용하거나 유연성 개선을 위해 앱 서명 키의 로컬 사본을 유지할 수 있습니다. 예를 들어 앱이 일부 기기에 사전 설치되어 있으므로 이미 키가 결정되었을 수 있습니다. Google 서버 외부에 키 사본이 있으면 로컬 사본이 손상될 경우 위험이 높아집니다. 다른 키를 사용하는 방법에 관한 옵션은 다음과 같습니다.
      • 이 개발자 계정의 다른 앱과 같은 앱 서명 키 사용
      • 자바 키 저장소의 키 내보내기 및 업로드
      • 키 내보내기 및 업로드(자바 키 저장소를 사용하지 않음)
  4. 나머지 안내를 따라 버전을 준비하고 출시합니다.

참고: 계속하려면 서비스 약관에 동의하고 앱 서명을 선택해야 합니다.

3단계: API 제공업체에 앱 서명 키 등록하기

앱에서 API를 사용하는 경우 일반적으로 인증서의 지문을 사용하여 인증 목적으로 앱 서명 키를 API에 등록해야 합니다. 인증서를 찾을 수 있는 위치는 다음과 같습니다.

  1. Play Console을 열고 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)로 이동합니다.
  2. '앱 서명 키 인증서' 섹션으로 스크롤하고 앱 서명 인증서의 지문(MD5, SHA-1, SHA-256)을 복사합니다.
    • API 제공업체가 다른 유형의 지문을 요구하면 .der 형식의 원래 인증서를 다운로드하고 API 제공업체가 요구하는 변환 도구를 사용하여 변환할 수 있습니다.
앱 서명 키 요구사항

Google 생성 키를 사용하면 Google에서 강력한 암호화가 적용된 RSA 키(4096비트)를 자동으로 생성합니다. 자체 앱 서명 키를 업로드하려는 경우 1024비트 이상의 RSA 키여야 합니다.

2021년 8월 이전에 만들어진 앱 안내

1단계: Play 앱 서명 구성

  1. Play Console을 열고 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)로 이동합니다.
  2. 아직 동의하지 않은 경우 Play 앱 서명 서비스 약관을 검토하고 동의를 선택합니다.

2단계: Google에 원래 키 사본 전송 및 업로드 키 만들기

  1. 원래 앱 서명 키를 찾습니다.
  2. Play Console을 열고 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)로 이동합니다.
  3. 출시 프로세스에 가장 적합한 내보내기 및 업로드 옵션을 선택하고 기존 앱 서명 키를 업로드합니다.

3단계: 업로드 키 만들기(선택사항 및 권장)

  1. 업로드 키를 만들고 인증서를 Google Play에 업로드합니다.
    • 앱 서명 키를 업로드 키로 계속 사용할 수도 있습니다.
  2. 앱 서명 인증서의 지문(MD5, SHA-1 및 SHA-256)을 복사합니다.
    • 테스트를 위해 인증서 지문 및 앱 서명 키를 사용하여 업로드 키 인증서를 API 제공업체에 등록해야 할 수 있습니다.

4단계: 업로드 키로 다음 앱 업데이트에 서명하기

앱 업데이트를 출시하면 업로드 키를 사용하여 서명해야 합니다.

  • 새로운 업로드 키를 생성하지 않은 경우: 원래 앱 서명 키를 계속 사용하여 Google Play에 업로드하기 전에 App Bundle에 서명합니다. 원래 앱 서명 키를 분실했다면 새 업로드 키를 생성하고 Google에 등록하여 계속 앱을 업데이트할 수 있습니다.
  • 새 업로드 키를 생성한 경우: 새 업로드 키를 사용하여 버전을 Google Play에 업로드하기 전에 App Bundle에 서명합니다. Google은 업로드 키를 사용하여 신원을 확인합니다. 업로드 키를 분실하면 지원팀에 문의하여 재설정할 수 있습니다.

업로드 키 만들기 및 키 저장소 업데이트하기

보안 강화를 위해 앱 서명 키 대신 새로운 업로드 키로 앱에 서명하는 것이 좋습니다.

Play 앱 서명을 선택할 때 업로드 키를 만들거나 나중에 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)를 방문하여 업로드 키를 만들 수 있습니다.

업로드 키를 만드는 방법은 다음과 같습니다.

  1. Android 개발자 사이트에서 안내를 따릅니다. 안전한 곳에 키를 저장하세요.
  2. 업로드 키의 인증서를 PEM 형식으로 내보냅니다. 밑줄 표시된 다음 인수를 바꿉니다.
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. 출시 프로세스에서 메시지가 나타나면 인증서를 업로드하여 Google에 등록합니다.

업로드 키를 사용하는 경우:

  • 업로드 키는 Google에만 등록되며 앱 제작자의 신원 인증에 사용됩니다.
  • 서명은 사용자에게 전송되기 전에 업로드된 모든 APK에서 삭제됩니다.
업로드 키 요구사항
  • 2048비트 이상의 RSA 키여야 합니다.
키 저장소 업데이트

업로드 키를 만든 후 확인하고 업데이트할 수 있는 몇 개의 위치는 다음과 같습니다.

  • 로컬 기기
  • 잠긴 온사이트 서버(다양한 ACL)
  • 클라우드 기기(다양한 ACL)
  • 전용 비밀 관리 서비스
  • (Git) 저장소

신규 설치에 적용되는 앱 서명 키 업그레이드

경우에 따라 앱 서명 키 업그레이드를 요청할 수 있습니다. 새 키를 사용하여 신규 설치 및 앱 업데이트에 서명합니다. 앞으로도 기존 앱 서명 키를 사용하여 키 업그레이드 이전에 앱을 설치한 사용자를 대상으로 한 업데이트에 서명할 수 있습니다.

각 앱은 전체 기간 동안 앱 서명 키를 한 번만 업그레이드할 수 있습니다. 드물게 여러 앱을 같은 프로세스로 실행하기 위해 같은 서명 키를 사용하는 경우, 이러한 앱에는 키 업그레이드를 사용할 수 없습니다.

앱 서명 키 업그레이드를 요청하는 몇 가지 이유는 다음과 같습니다.

  • 암호화 강도가 더 높은 키가 필요한 경우
  • 앱 서명 키가 해킹된 경우

참고: Play Console에서 앱 서명 키 업그레이드를 요청하는 것은 Android P 이상을 위한 APK 서명 스킴 v3에서 도입된 키 순환과는 관련이 없습니다. 현재 이러한 유형의 키 순환은 Google Play에서 지원되지 않습니다.

키 업그레이드를 요청하기 전의 주요 고려 사항

키 업그레이드를 요청하기 전에 업그레이드 완료 후 필요한 변경사항을 숙지해야 합니다.

  • 여러 앱에 같은 앱 서명 키를 사용하여 앱 간에 데이터/코드를 공유하려면 앱을 업데이트해야 새로운 앱 서명 키 인증서와 기존 앱 서명 키 인증서를 인식할 수 있습니다.
  • 앱이 API를 사용하는 경우, API 제공업체에 새 앱 서명 키와 기존 앱 서명 키의 인증서를 등록한 후 업데이트를 게시해야 API가 계속해서 정상적으로 작동합니다. 인증서는 Play Console의 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)에서 확인할 수 있습니다.  
  • 사용자가 P2P 공유를 통해 업데이트를 설치하는 경우 이미 설치한 앱 버전과 같은 키로 서명된 업데이트만 설치할 수 있습니다. 다른 키로 서명한 앱 버전이 설치되어 있어서 앱을 업데이트할 수 없는 경우 앱을 제거 후 재설치하면 업데이트를 받을 수 있습니다.
신규 설치를 위한 키 업그레이드 요청하기
  1. Play Console을 열고 Play 앱 서명 페이지(출시 > 설정 > 앱 무결성)로 이동합니다.
  2. '신규 설치에 적용되는 앱 서명 키 업그레이드' 카드에서 키 업그레이드 요청을 선택합니다.
  3. 옵션을 선택합니다.
    • 선택한 옵션에 따라 요청을 완료하기 위해 지원팀에 문의해야 할 수도 있습니다.
  4. Google에서 신규 앱 서명 키를 생성하도록 하거나(권장) 앱 서명 키를 업로드합니다.
    • 앱 서명 키와 업로드 키로 동일한 키를 사용했다면 앱 서명 키를 업그레이드한 후 기존 앱 서명 키를 업로드 키로 계속 사용하거나 업로드 키를 새로 생성할 수 있습니다.
  5. 필요하다면 API 제공업체에 새 앱 서명 키를 등록합니다.

권장사항

  • 앱을 Google Play 외부에 배포하거나 향후 배포할 계획이 있으며 같은 서명 키를 사용하려는 경우 다음 두 가지 옵션이 있습니다. 
    • Google에서 키를 생성(권장)한 다음 App Bundle 탐색기에서 서명된 범용 APK를 다운로드하여 Google Play 외부에 배포합니다.
    • 또는 모든 앱 스토어에 사용할 앱 서명 키를 생성한 다음 Play 앱 서명을 구성할 때 Google에 앱 서명 키 사본을 전송할 수 있습니다.
  • 계정을 보호하려면 Play Console에 액세스할 수 있는 계정에 2단계 인증을 사용합니다.
  • App Bundle을 출시 트랙에 게시한 후 App Bundle 탐색기를 사용하여 Google이 App Bundle에서 생성하는 설치 가능한 APK에 액세스할 수 있습니다. 옵션은 다음과 같습니다.
    • 내부 앱 공유 링크를 복사하여 공유합니다. 이렇게 하면 탭 한 번으로 Google Play가 다른 기기의 App Bundle에서 설치할 항목을 테스트할 수 있습니다.
    • 서명된 범용 APK를 다운로드합니다. 이 단일 APK는 Google이 보유한 앱 서명 키로 서명되고 앱이 지원하는 모든 기기에 설치할 수 있습니다.
    • 특정 기기의 모든 APK가 포함된 ZIP 보관 파일을 다운로드합니다. 이러한 APK는 Google이 보유한 앱 서명 키로 서명되고, adb install-multiple *.apk 명령어를 사용하여 기기의 ZIP 보관 파일에 APK를 설치할 수 있습니다.
  • 보안 강화를 위해 앱 서명 키와 다른 새로운 업로드 키를 생성합니다.
  • Google API를 사용하는 경우 앱용 Google Cloud Console에 업로드 키와 앱 서명 키 인증서를 등록하는 것이 좋습니다.

업로드 키를 분실했거나 도난당했나요?

비공개 업로드 키를 분실했거나 도난당했다면 새 키를 만들고 계정 소유자에게 지원팀에 문의하여 키를 재설정해 달라고 요청할 수 있습니다. 지원팀에 문의하는 경우 계정 소유자는 upload_certificate.pem 파일을 첨부해야 합니다.

Google 지원팀이 새 업로드 키를 등록하고 나면 이메일을 받게 되며, 키 저장소를 업데이트하고 API 제공업체에 키를 등록할 수 있습니다.

중요: 업로드 키를 재설정해도 Google Play에서 APK를 사용자에게 전달하기 전에 다시 서명하는 데 사용하는 앱 서명 키는 영향을 받지 않습니다.

APK 서명 체계 v4

Android 11 이상을 실행하는 기기에서는 새로운 APK 서명 체계 v4를 지원합니다. Play 앱 서명의 경우 일부 기기를 대상으로 v4 서명이 출시되기 시작할 예정이며, 이는 새로운 기기에서 출시 예정인 성능 기능에 선택적으로 액세스할 수 있도록 하기 위함입니다. 개발자님께서 별도로 취하셔야 할 조치는 없으며 사용자에게도 아무런 영향이 없습니다.

 

도움이 되었나요?
어떻게 하면 개선할 수 있을까요?

도움이 더 필요하신가요?

로그인하여 추가 지원 옵션으로 문제를 빠르게 해결하세요.

검색
검색어 지우기
검색 닫기
Google 앱
기본 메뉴
도움말 센터 검색
true
92637
false