簡體   English   中英

Google Play App簽名和簽名級別權​​限

[英]Google Play App Signing and signature level permission

我嘗試使用簽名級別權​​限以安全的方式在兩個應用程序之間共享數據。 不幸的是,即使我使用相同的upload key登錄這兩個應用,Google Play也會在上傳到商店后更改其簽名。 因此,我的應用程序無法通信。 如果我們使用谷歌播放應用程序簽名,如何使用相同的密鑰/證書登錄兩個應用程序?

如您所知,共享相同的上傳密鑰並不意味着也會共享應用程序簽名密鑰。 但是,當您首次注冊App Signing by Play時,有一種方法可以執行此操作:在注冊卡的“高級”部分下,可以選擇重新使用已在App Signing中注冊的另一個應用程序的應用程序簽名密鑰。

您需要創建一個新的應用程序,因為今天無法更改應用程序簽名密鑰。

頁面記錄在“選擇通過Google Play登錄應用”>“新應用”下。

希望有所幫助,

我做了一些研究,我想在這里解釋一下Google Play App Signing的工作原理以及如何使用簽名級別權​​限。

首先,如果我們使用Google Play App Signing,我們實際上會使用兩個鍵來登錄我們的應用。 首先是上傳密鑰 ,第二個是App簽名密鑰 兩者都以相同的方式從Android Studio生成,我們可以使用一個應用程序中的上傳鍵作為另一個應用程序的App唱歌鍵。

應用程序簽名密鑰存儲在Google Play中,上傳后我們無法訪問它。 我們有可能在我們為現有應用注冊Google Play App Signing時上傳它,或者Google Play可以為新應用生成該應用,然后我們根本無法訪問它。 我們可以說App簽名密鑰實際上是我們用於為用戶分發應用程序的真正密鑰。

整個機制看起來像這樣:

Google Play應用簽名機制

圖片來源(官方應用程序簽名文檔)

正如您在圖片上看到的,我們使用上傳密鑰將我們的應用上傳到Google Play,然后Google Play刪除了我們的簽名,並使用不同的密鑰登錄我們的應用。 這很有用,因為如果我們放棄上傳密鑰,我們就無法上傳我們的應用程序(我們可以要求Google使用新的上傳密鑰)。 此外,Google Play現在可以將我們的應用分成更小的部分並獨立分發,每個部分都將使用我們的App Signing Key( Android App Bundles )登錄。 此解決方案的缺點是我們上傳到商店的應用程序具有與從Google Play下載的應用程序不同的簽名。 如果我們在應用程序中使用簽名級別權​​限,則會出現問題。 此外,當我們想將我們的應用程序上傳到Google Play以外的其他商店時也會出現問題。

通過使用簽名級別權​​限,我們可以以安全的方式在兩個應用程序之間共享數據( 用例示例 ),但有一個主要條件 - 兩個應用程序必須具有相同的簽名。 即使我們使用相同的上傳密鑰 ,也不代表我們的應用具有相同的簽名,因為Google Play使用的密鑰可能會有所不同。 在實踐中,這意味着當您測試應用程序的發布版本時,一切看起來都很棒,但在將其上傳到Google Play后它無效(此問題會影響依賴於應用程序簽名的每個功能 - Facebook登錄,篡改檢測)。

那么,當我們使用Google Play App Signing時,如何在兩個應用中使用相同的密鑰? 當我們在Google Play中創建新應用並嘗試創建第一個版本到生產時,Google Play會詢問:

在此輸入圖像描述 然后在高級選項下我們可以找到:

在此輸入圖像描述

之后,這兩個應用程序將為我們的用戶提供相同的簽名。 不幸的是,如果我們嘗試為已經為我們的用戶發布的應用程序執行此操作(我們可以稍后注冊Google Play App Signing),我們就沒有此選項,我們也無法使用相同的密鑰。

如果我們不能這樣做但我們想在兩個應用程序之間使用安全數據共享怎么辦? 我們可以手動驗證不同的簽名,並嘗試防止來自提供數據的應用程序內部的攻擊。 它不像第一個解決方案那樣安全,但比無所事事更安全:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM