From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Groover Date: Fri, 31 Mar 2023 14:30:21 -0500 Subject: [PATCH] Limit the number of supported v1 and v2 signers The v1 and v2 APK Signature Schemes support multiple signers; this was intended to allow multiple entities to sign an APK. Previously, there were no limits placed on the number of signers that could sign an APK, but this commit sets a hard limit of 10 supported signers for these signature schemes to ensure a large number of signers does not place undue burden on the platform. Bug: 266580022 Test: gradlew test (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ea0632935646f2f6bf5822a5e9c97885269780bd) Merged-In: I77f4218599511ff4f9f3790e4942a329d5a18da4 Change-Id: I77f4218599511ff4f9f3790e4942a329d5a18da4 --- .../java/com/android/apksig/ApkVerifier.java | 29 +++++ .../java/com/android/apksig/Constants.java | 30 ++++++ .../internal/apk/ApkSigningBlockUtils.java | 18 ++++ .../internal/apk/v1/V1SchemeSigner.java | 7 ++ .../internal/apk/v1/V1SchemeVerifier.java | 7 ++ .../internal/apk/v2/V2SchemeSigner.java | 8 ++ .../internal/apk/v2/V2SchemeVerifier.java | 5 + .../com/android/apksig/ApkSignerTest.java | 100 ++++++++++++++++++ .../com/android/apksig/ApkVerifierTest.java | 31 ++++++ .../com/android/apksig/v1-only-10-signers.apk | Bin 0 -> 18389 bytes .../com/android/apksig/v1-only-11-signers.apk | Bin 0 -> 22297 bytes .../com/android/apksig/v2-only-10-signers.apk | Bin 0 -> 20688 bytes .../com/android/apksig/v2-only-11-signers.apk | Bin 0 -> 24784 bytes 13 files changed, 235 insertions(+) create mode 100644 src/main/java/com/android/apksig/Constants.java create mode 100644 src/test/resources/com/android/apksig/v1-only-10-signers.apk create mode 100644 src/test/resources/com/android/apksig/v1-only-11-signers.apk create mode 100644 src/test/resources/com/android/apksig/v2-only-10-signers.apk create mode 100644 src/test/resources/com/android/apksig/v2-only-11-signers.apk diff --git a/src/main/java/com/android/apksig/ApkVerifier.java b/src/main/java/com/android/apksig/ApkVerifier.java index 3e1e7da..cfbc8d2 100644 --- a/src/main/java/com/android/apksig/ApkVerifier.java +++ b/src/main/java/com/android/apksig/ApkVerifier.java @@ -644,6 +644,15 @@ public class ApkVerifier { } private void mergeFrom(ApkSigningBlockUtils.Result source) { + if (source == null) { + return; + } + if (source.containsErrors()) { + mErrors.addAll(source.getErrors()); + } + if (source.containsWarnings()) { + mWarnings.addAll(source.getWarnings()); + } switch (source.signatureSchemeVersion) { case ApkSigningBlockUtils.VERSION_APK_SIGNATURE_SCHEME_V2: mVerifiedUsingV2Scheme = source.verified; @@ -921,6 +930,16 @@ public class ApkVerifier { */ JAR_SIG_NO_SIGNATURES("No JAR signatures"), + /** + * APK signature scheme v1 has exceeded the maximum number of jar signers. + * + */ + JAR_SIG_MAX_SIGNATURES_EXCEEDED( + "APK Signature Scheme v1 only supports a maximum of %1$d signers, found %2$d"), + /** * APK does not contain any entries covered by JAR signatures. */ @@ -1349,6 +1368,16 @@ public class ApkVerifier { "APK Signature Scheme v2 signature %1$s indicates the APK is signed using %2$s but " + "no such signature was found. Signature stripped?"), + /** + * APK signature scheme v2 has exceeded the maximum number of signers. + * + */ + V2_SIG_MAX_SIGNATURES_EXCEEDED( + "APK Signature Scheme V2 only supports a maximum of %1$d signers, found %2$d"), + /** * APK Signature Scheme v2 signature contains no signers. */ diff --git a/src/main/java/com/android/apksig/Constants.java b/src/main/java/com/android/apksig/Constants.java new file mode 100644 index 0000000..b0d1e76 --- /dev/null +++ b/src/main/java/com/android/apksig/Constants.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.apksig; + +/** + * Exports internally defined constants to allow clients to reference these values without relying + * on internal code. + */ +public class Constants { + private Constants() {} + + /** + * The maximum number of signers supported by the v1 and v2 APK Signature Schemes. + */ + public static final int MAX_APK_SIGNERS = 10; +} diff --git a/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java b/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java index cc69af3..3867b47 100644 --- a/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java +++ b/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java @@ -1240,6 +1240,20 @@ public class ApkSigningBlockUtils { mErrors.add(new ApkVerifier.IssueWithParams(msg, parameters)); } + public boolean containsWarnings() { + if (!mWarnings.isEmpty()) { + return true; + } + if (!signers.isEmpty()) { + for (Result.SignerInfo signer : signers) { + if (signer.containsWarnings()) { + return true; + } + } + } + return false; + } + public void addWarning(ApkVerifier.Issue msg, Object... parameters) { mWarnings.add(new ApkVerifier.IssueWithParams(msg, parameters)); } @@ -1280,6 +1294,10 @@ public class ApkSigningBlockUtils { return !mErrors.isEmpty(); } + public boolean containsWarnings() { + return !mWarnings.isEmpty(); + } + public List getErrors() { return mErrors; } diff --git a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java index f900211..6422af0 100644 --- a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java +++ b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java @@ -16,6 +16,8 @@ package com.android.apksig.internal.apk.v1; +import static com.android.apksig.Constants.MAX_APK_SIGNERS; + import com.android.apksig.apk.ApkFormatException; import com.android.apksig.internal.asn1.Asn1DerEncoder; import com.android.apksig.internal.asn1.Asn1EncodingException; @@ -249,6 +251,11 @@ public abstract class V1SchemeSigner { if (signerConfigs.isEmpty()) { throw new IllegalArgumentException("At least one signer config must be provided"); } + if (signerConfigs.size() > MAX_APK_SIGNERS) { + throw new IllegalArgumentException( + "APK Signature Scheme v1 only supports a maximum of " + MAX_APK_SIGNERS + ", " + + signerConfigs.size() + " provided"); + } OutputManifestFile manifest = generateManifestFile( jarEntryDigestAlgorithm, jarEntryDigests, sourceManifestBytes); diff --git a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java index 47d5b01..615215c 100644 --- a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java +++ b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java @@ -16,6 +16,8 @@ package com.android.apksig.internal.apk.v1; +import static com.android.apksig.Constants.MAX_APK_SIGNERS; + import com.android.apksig.ApkVerifier.Issue; import com.android.apksig.ApkVerifier.IssueWithParams; import com.android.apksig.apk.ApkFormatException; @@ -303,6 +305,11 @@ public abstract class V1SchemeVerifier { result.addError(Issue.JAR_SIG_NO_SIGNATURES); return; } + if (signers.size() > MAX_APK_SIGNERS) { + result.addError(Issue.JAR_SIG_MAX_SIGNATURES_EXCEEDED, MAX_APK_SIGNERS, + signers.size()); + return; + } // Verify each signer's signature block file .(RSA|DSA|EC) against the corresponding // signature file .SF. Any error encountered for any signer terminates verification, to diff --git a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java index d8e4723..03a0311 100644 --- a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java +++ b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java @@ -16,6 +16,7 @@ package com.android.apksig.internal.apk.v2; +import static com.android.apksig.Constants.MAX_APK_SIGNERS; import static com.android.apksig.internal.apk.ApkSigningBlockUtils.encodeAsSequenceOfLengthPrefixedElements; import static com.android.apksig.internal.apk.ApkSigningBlockUtils.encodeAsSequenceOfLengthPrefixedPairsOfIntAndLengthPrefixedBytes; import static com.android.apksig.internal.apk.ApkSigningBlockUtils.encodeCertificates; @@ -28,6 +29,7 @@ import com.android.apksig.internal.apk.SignatureAlgorithm; import com.android.apksig.internal.util.Pair; import com.android.apksig.util.DataSource; import com.android.apksig.util.RunnablesExecutor; + import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -163,6 +165,12 @@ public abstract class V2SchemeSigner { // FORMAT: // * length-prefixed sequence of length-prefixed signer blocks. + if (signerConfigs.size() > MAX_APK_SIGNERS) { + throw new IllegalArgumentException( + "APK Signature Scheme v2 only supports a maximum of " + MAX_APK_SIGNERS + ", " + + signerConfigs.size() + " provided"); + } + List signerBlocks = new ArrayList<>(signerConfigs.size()); int signerNumber = 0; for (SignerConfig signerConfig : signerConfigs) { diff --git a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java index 51c40bd..651ed5d 100644 --- a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java +++ b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java @@ -16,6 +16,8 @@ package com.android.apksig.internal.apk.v2; +import static com.android.apksig.Constants.MAX_APK_SIGNERS; + import com.android.apksig.ApkVerifier.Issue; import com.android.apksig.apk.ApkFormatException; import com.android.apksig.apk.ApkUtils; @@ -225,6 +227,9 @@ public abstract class V2SchemeVerifier { return; } } + if (signerCount > MAX_APK_SIGNERS) { + result.addError(Issue.V2_SIG_MAX_SIGNATURES_EXCEEDED, MAX_APK_SIGNERS, signerCount); + } } /** diff --git a/src/test/java/com/android/apksig/ApkSignerTest.java b/src/test/java/com/android/apksig/ApkSignerTest.java index 1434017..729d96f 100644 --- a/src/test/java/com/android/apksig/ApkSignerTest.java +++ b/src/test/java/com/android/apksig/ApkSignerTest.java @@ -635,6 +635,106 @@ public class ApkSignerTest { } catch (ApkFormatException expected) {} } + @Test + public void testV1SigningAllowedWithMaximumNumberOfSigners() throws Exception { + // The APK Signature Scheme v1 supports a maximum of 10 signers; this test verifies a + // signing config with the maximum number of signers is allowed to sign the APK. + List signers = List.of( + getDefaultSignerConfigFromResources("dsa-1024"), + getDefaultSignerConfigFromResources("dsa-2048"), + getDefaultSignerConfigFromResources("dsa-3072"), + getDefaultSignerConfigFromResources("rsa-1024"), + getDefaultSignerConfigFromResources("rsa-2048"), + getDefaultSignerConfigFromResources("rsa-3072"), + getDefaultSignerConfigFromResources("rsa-4096"), + getDefaultSignerConfigFromResources("rsa-8192"), + getDefaultSignerConfigFromResources("ec-p256"), + getDefaultSignerConfigFromResources("ec-p384") + ); + sign("original.apk", + new ApkSigner.Builder(signers) + .setV1SigningEnabled(true) + .setV2SigningEnabled(false) + .setV3SigningEnabled(false) + .setV4SigningEnabled(false)); + } + + @Test + public void testV1SigningRejectedWithMoreThanMaximumNumberOfSigners() throws Exception { + // This test ensures a v1 signing config with more than the maximum supported number + // of signers will fail to sign. + List signers = List.of( + getDefaultSignerConfigFromResources("dsa-1024"), + getDefaultSignerConfigFromResources("dsa-2048"), + getDefaultSignerConfigFromResources("dsa-3072"), + getDefaultSignerConfigFromResources("rsa-1024"), + getDefaultSignerConfigFromResources("rsa-2048"), + getDefaultSignerConfigFromResources("rsa-3072"), + getDefaultSignerConfigFromResources("rsa-4096"), + getDefaultSignerConfigFromResources("rsa-8192"), + getDefaultSignerConfigFromResources("ec-p256"), + getDefaultSignerConfigFromResources("ec-p384"), + getDefaultSignerConfigFromResources("ec-p521") + ); + assertThrows(IllegalArgumentException.class, () -> + sign("original.apk", + new ApkSigner.Builder(signers) + .setV1SigningEnabled(true) + .setV2SigningEnabled(false) + .setV3SigningEnabled(false) + .setV4SigningEnabled(false))); + } + + @Test + public void testV2SigningAllowedWithMaximumNumberOfSigners() throws Exception { + // The APK Signature Scheme v2 supports a maximum of 10 signers; this test verifies a + // signing config with the maximum number of signers is allowed to sign the APK. + List signers = List.of( + getDefaultSignerConfigFromResources("dsa-1024"), + getDefaultSignerConfigFromResources("dsa-2048"), + getDefaultSignerConfigFromResources("dsa-3072"), + getDefaultSignerConfigFromResources("rsa-1024"), + getDefaultSignerConfigFromResources("rsa-2048"), + getDefaultSignerConfigFromResources("rsa-3072"), + getDefaultSignerConfigFromResources("rsa-4096"), + getDefaultSignerConfigFromResources("rsa-8192"), + getDefaultSignerConfigFromResources("ec-p256"), + getDefaultSignerConfigFromResources("ec-p384") + ); + sign("original.apk", + new ApkSigner.Builder(signers) + .setV1SigningEnabled(false) + .setV2SigningEnabled(true) + .setV3SigningEnabled(false) + .setV4SigningEnabled(false)); + } + + @Test + public void testV2SigningRejectedWithMoreThanMaximumNumberOfSigners() throws Exception { + // This test ensures a v2 signing config with more than the maximum supported number + // of signers will fail to sign. + List signers = List.of( + getDefaultSignerConfigFromResources("dsa-1024"), + getDefaultSignerConfigFromResources("dsa-2048"), + getDefaultSignerConfigFromResources("dsa-3072"), + getDefaultSignerConfigFromResources("rsa-1024"), + getDefaultSignerConfigFromResources("rsa-2048"), + getDefaultSignerConfigFromResources("rsa-3072"), + getDefaultSignerConfigFromResources("rsa-4096"), + getDefaultSignerConfigFromResources("rsa-8192"), + getDefaultSignerConfigFromResources("ec-p256"), + getDefaultSignerConfigFromResources("ec-p384"), + getDefaultSignerConfigFromResources("ec-p521") + ); + assertThrows(IllegalArgumentException.class, () -> + sign("original.apk", + new ApkSigner.Builder(signers) + .setV1SigningEnabled(false) + .setV2SigningEnabled(true) + .setV3SigningEnabled(false) + .setV4SigningEnabled(false))); + } + @Test public void testWeirdZipCompressionMethod() throws Exception { // Any ZIP compression method other than STORED is treated as DEFLATED by Android. diff --git a/src/test/java/com/android/apksig/ApkVerifierTest.java b/src/test/java/com/android/apksig/ApkVerifierTest.java index 351d0a8..2392b88 100644 --- a/src/test/java/com/android/apksig/ApkVerifierTest.java +++ b/src/test/java/com/android/apksig/ApkVerifierTest.java @@ -239,6 +239,20 @@ public class ApkVerifierTest { "v1-only-with-dsa-sha256-2.16.840.1.101.3.4.3.2-%s.apk", DSA_KEY_NAMES); } + @Test + public void testV1MaxSupportedSignersAccepted() throws Exception { + // The APK Signature Scheme V1 supports a maximum of 10 signers; this test ensures an + // APK signed with that many signers successfully verifies. + assertVerified(verify("v1-only-10-signers.apk")); + } + + @Test + public void testV1MoreThanMaxSupportedSignersRejected() throws Exception { + // This test ensure an APK signed with more than the supported number of signers fails + // to verify. + assertVerificationFailure("v1-only-11-signers.apk", Issue.JAR_SIG_MAX_SIGNATURES_EXCEEDED); + } + @Test public void testV2StrippedRejected() throws Exception { // APK signed with v1 and v2 schemes, but v2 signature was stripped from the file (by using @@ -630,6 +644,23 @@ public class ApkVerifierTest { Issue.V2_SIG_NO_SUPPORTED_SIGNATURES); } + @Test + public void testV2MaxSupportedSignersAccepted() throws Exception { + // The APK Signature Scheme v2 supports a maximum of 10 signers; this test ensures an + // APK signed with that many signers successfully verifies. + assertVerified(verifyForMinSdkVersion("v2-only-10-signers.apk", AndroidSdkVersion.N)); + } + + @Test + public void testV2MoreThanMaxSupportedSignersRejected() throws Exception { + // This test ensure an APK signed with more than the supported number of signers fails + // to verify. + assertVerificationFailure( + verifyForMinSdkVersion("v2-only-11-signers.apk", AndroidSdkVersion.N), + Issue.V2_SIG_MAX_SIGNATURES_EXCEEDED); + } + + @Test public void testCorrectCertUsedFromPkcs7SignedDataCertsSet() throws Exception { // Obtained by prepending the rsa-1024 certificate to the PKCS#7 SignedData certificates set diff --git a/src/test/resources/com/android/apksig/v1-only-10-signers.apk b/src/test/resources/com/android/apksig/v1-only-10-signers.apk new file mode 100644 index 0000000000000000000000000000000000000000..198beeb651079d24338984de7f32e8e0c7b4ff78 GIT binary patch literal 18389 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 T+qWrmRsh#uzxV&Y;DP)YO8`I-% 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

usBO(Kpj**^$-lla~_RW=?_EcIk(+d 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 WSq|>ELvbMh1ZcQvb#rVy@P7b@M_;D^ literal 0 HcmV?d00001