Beim Lesen des zugehörigen Issues zur Signaturproblematik bei F-Droid habe ich den Eindruck, dass das Problem dort entweder nicht verstanden oder heruntergespielt wird. Das ist besorgniserregend. :think_bread:

https://gitlab.com/fdroid/fdroidserver/-/merge_requests/1466

#fdroid #android #security #sicherheit #poc

  • Mike Kuketz 🛡@social.tchncs.deOP
    link
    fedilink
    arrow-up
    1
    ·
    5 days ago

    Die Lösung des Problems kurz skizziert: Eine gründliche Überarbeitung der Zertifikatsprüfung bei F-Droid, einschließlich der Einführung von Standards zur Prüfung aller Signaturblöcke (auch unbekannter) und einer korrekten Validierung von v1-Zertifikaten.

  • Mike Kuketz 🛡@social.tchncs.deOP
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 days ago

    Zitat: […] Especially it does not affect the repository on f-droid.org to our knowledge.

    Natürlich tut es das. F-Droid signiert zwar selbst, übernimmt aber bei reproduzierbaren Builds die APKs inkl. Signatur der Entwickler. Fehlerhafte Signaturprüfungen können dazu führen, dass manipulierte oder unsichere APKs akzeptiert werden.

    Edit: “bei reproduzierbaren Builds” hinzugefügt.

    • Marcel Klehr@fosstodon.org
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      @kuketzblog@social.tchncs.de mmh, ich dachte immer F-Droid hat einen eigenen build step für die apps im f-droid.org repository und übernimmt gerade nicht die APKs der Entwickler

      • Stefan@freiburg.social
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        5 days ago

        @marcelklehr @kuketzblog So war mein Verständnis auch. Ich dachte der Entwickler kann nur Code hochladen. Anderseits wieviele Buildsysteme muss dann F-Droid anbieten? Gibt ja zig Möglichkeiten mit was man für Android Apps entwickelt.

        • pixelschubsi@troet.cafe
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          5 days ago

          @stefanjahn @marcelklehr @kuketzblog

          In den Metadaten zu einem F-Droid-Repository kann ein öffentlicher Schlüssel hinterlegt werden, sodass auf dem Server nur noch .apk für eine bestimmte App akzeptiert werden, die mit diesem Schlüssel signiert sind.

          Diese Signaturprüfung hat aktuell Fehler, die unter Umständen dazu führen könnte, dass in einem F-Droid repository .apk mit Signaturen sind, die dort laut Metadaten nicht sein dürfen.

          • pixelschubsi@troet.cafe
            link
            fedilink
            arrow-up
            0
            ·
            5 days ago

            @stefanjahn @marcelklehr @kuketzblog

            Das offizielle F-Droid repository benutzt diese Funktion auch in ihren Metadaten um bei reproduzierbar gebauten .apk die Signatur des ursprünglichen Entwicklers zu erzwingen. Allerdings werden wie bereits erwähnt, alle .apk die im F-Droid repository sind, auf dem Server von F-Droid gebaut und dann entweder eine eigene Signatur, oder im Falle reproduzierbaren .apk die Signatur der Original-App angehängt.

            • pixelschubsi@troet.cafe
              link
              fedilink
              arrow-up
              0
              ·
              5 days ago

              @stefanjahn @marcelklehr @kuketzblog

              Der schlimmstmögliche Angriff auf dem offiziellen F-Droid-Repository ist also nicht, wie von @kuketzblog behauptet, dass eine “manipulierte oder unsichere” .apk im offiziellen F-Droid repository landet, sondern nur, dass eine kaputte oder falsche Signatur an die reproduzierbar gebaute .apk angehängt wird.

              • pixelschubsi@troet.cafe
                link
                fedilink
                arrow-up
                0
                ·
                5 days ago

                @stefanjahn @marcelklehr @kuketzblog

                Das führt im schlimmsten Fall dazu, dass der Publisher einer App (der erst eine entsprechend präparierte .apk mit kaputter Signatur veröffentlichen muss) damit erreichen kann, dass Updates seiner eigenen App im F-Droid kaputte Signaturen haben und diese durch den Nutzer nicht mehr installierbar sind.

                Und ich bin mir nicht mal sicher, ob dieser Angriff überhaupt möglich ist, gegeben wie der Buildserver die Signatur kopiert.

                • pixelschubsi@troet.cafe
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  5 days ago

                  @stefanjahn @marcelklehr @kuketzblog

                  Theoretisch könnte man sich auch noch ein Szenario ausdenken, wo der Publisher einer App in der kaputten Signatur Schadcode einbettet und in dem reproduzierbar gebauten open source code seiner app Logik hat, die den Schadcode aus der Signatur sucht und ausführt. Da gibt es aber verschiedene Gründe die diesen “Angriff” nahezu unmöglich machen (Länge der Signatur, Einschränkungen in Android welcher Code ausführbar ist, usw.)