Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. 😡 So sieht die Agov Access App bei mir aus, die man in der Schweiz fĂŒr digitale BehördengĂ€nge braucht.

😡 So sieht die Agov Access App bei mir aus, die man in der Schweiz fĂŒr digitale BehördengĂ€nge braucht.

Scheduled Pinned Locked Moved Uncategorized
66 Posts 18 Posters 112 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

    @unaegeli @jonasgraphie @f @adfichter GrapheneOS is a privacy and security hardened OS greatly improving those compared to the Android Open Source Project. /e/ and iodéOS are not privacy or security hardened. Both reduce privacy and security compared to the Android Open Source Project. They both lag far behind on crucial standard privacy/security patches and don't fully ship them. They lack important standard protections. It's the opposite of GrapheneOS greatly improving patches and protections.

    grapheneos@grapheneos.socialG This user is from outside of this forum
    grapheneos@grapheneos.socialG This user is from outside of this forum
    grapheneos@grapheneos.social
    wrote last edited by
    #33

    @unaegeli @jonasgraphie @f @adfichter We take great care to preserve compatibility with our privacy and security features. Unfortunately, many apps have memory corruption bugs detected by improved memory protections so we provide toggles to work around it. Hardware memory tagging is mostly opt-in for user installed apps due to how many bugs it finds in them, but we recommend users enable the global toggle for it. Our dynamic code loading restrictions are similarly opt-in for user installed apps.

    grapheneos@grapheneos.socialG 1 Reply Last reply
    0
    • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

      @unaegeli @jonasgraphie @f @adfichter We take great care to preserve compatibility with our privacy and security features. Unfortunately, many apps have memory corruption bugs detected by improved memory protections so we provide toggles to work around it. Hardware memory tagging is mostly opt-in for user installed apps due to how many bugs it finds in them, but we recommend users enable the global toggle for it. Our dynamic code loading restrictions are similarly opt-in for user installed apps.

      grapheneos@grapheneos.socialG This user is from outside of this forum
      grapheneos@grapheneos.socialG This user is from outside of this forum
      grapheneos@grapheneos.social
      wrote last edited by
      #34

      @unaegeli @jonasgraphie @f @adfichter Banking and government apps have the unique issue of including misguided anti-tampering checks trying to detect a modified app or OS. It's an insecure approach and can be easily bypassed by attackers. These anti-tampering checks often wrongly detect added security protections as tampering. That's what's happening in this case. We have a way to work around it but it's not a per-app toggle since we didn't anticipate apps going out of the way to detect it.

      grapheneos@grapheneos.socialG 1 Reply Last reply
      0
      • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

        @unaegeli @jonasgraphie @f @adfichter Banking and government apps have the unique issue of including misguided anti-tampering checks trying to detect a modified app or OS. It's an insecure approach and can be easily bypassed by attackers. These anti-tampering checks often wrongly detect added security protections as tampering. That's what's happening in this case. We have a way to work around it but it's not a per-app toggle since we didn't anticipate apps going out of the way to detect it.

        grapheneos@grapheneos.socialG This user is from outside of this forum
        grapheneos@grapheneos.socialG This user is from outside of this forum
        grapheneos@grapheneos.social
        wrote last edited by
        #35

        @unaegeli @jonasgraphie @f @adfichter We already fixed most compatibility issues caused by anti-tampering checks for our secure spawning feature by making the call stack match the standard Android Zygote spawning approach. There are rare cases of apps still having a problem with it due to other differences they can detect and we plan to eliminate those compatibility issues too. We shouldn't have to do this and what these apps are doing is incorrect and incompatible with future Android releases.

        1 Reply Last reply
        0
        • datacyclist@swiss.socialD datacyclist@swiss.social

          @rolandlo @adfichter @GrapheneOS Das war bei mir dieselbe Erfahrung, FIDO2-Stick lief entgegen der Erwartung einwandfrei und ohne Zusatzaufwand unter Linux und wird nÀchstes Jahr zur SteuererklÀrung wieder rausgekramt. Es kann aber trotzdem nicht sein, dass eine Àltere AGOV-Version unter GrapheneOS funktioniert, aber neuere nicht mehr.

          grapheneos@grapheneos.socialG This user is from outside of this forum
          grapheneos@grapheneos.socialG This user is from outside of this forum
          grapheneos@grapheneos.social
          wrote last edited by
          #36

          @datacyclist @rolandlo @adfichter It's caused by incorrect anti-tampering checks and can be worked around by disabling an important security feature added by GrapheneOS (secure app spawning), which we don't recommend. It's possible to use this app on GrapheneOS already but we plan to come up with a built-in workaround which avoids needing to turn off secure spawning. See https://grapheneos.social/@GrapheneOS/116528377935838679.

          FIDO2 and passkeys work well on GrapheneOS so you should also be able to use that approach on it.

          1 Reply Last reply
          0
          • chrispy@chaos.socialC chrispy@chaos.social

            @adfichter @GrapheneOS die AGOV Access App mit LineageOS gar nicht erst versucht đŸ€·â€â™€ïž

            Aber zumindest mit Linux und einem FIDO2-SchlĂŒssel erfolgreich, mit viel Durchhaltewillen und Identifikation am Schalter (strikte Reihenfolge der Etappen zu beachten!)
            https://help.agov.ch/index.php?c=register&l=de

            -> diese Anleitung muss definitiv verstÀndlicher und mit den Anleitungen der Kantone harmonisiert werden!

            #agov #esteuern #fido2 #digitalesouverÀnitÀt

            grapheneos@grapheneos.socialG This user is from outside of this forum
            grapheneos@grapheneos.socialG This user is from outside of this forum
            grapheneos@grapheneos.social
            wrote last edited by
            #37

            @chrispy It's caused by incorrect anti-tampering checks and can be worked around by disabling an important security feature added by GrapheneOS (secure app spawning), which we don't recommend. It's possible to use this app on GrapheneOS already but we plan to come up with a built-in workaround which avoids needing to turn off secure spawning. See https://grapheneos.social/@GrapheneOS/116528377935838679.

            FIDO2 and passkeys work well on GrapheneOS so you should also be able to use that approach on it.

            1 Reply Last reply
            0
            • D daspom@mastodon.social

              @adfichter @GrapheneOS Bei der 2FA App Futurae die gleiche Meldung. Auf einem GrapheneOS Handy ohne Google Dienste kommt die Meldung das die Google Dienste nicht vorhanden sind, die App scheint aber zu funktionieren. Auf einem GrapheneOS Handy mit Google Dienste aktiviert kommt die Meldung dass das Handy gerootet ist scheint aber auch zu funktionieren. TWINT(prepaid) z.B. meldet auch bei jedem Start das die GDienste fehlen, funktioniert aber problemlos.

              grapheneos@grapheneos.socialG This user is from outside of this forum
              grapheneos@grapheneos.socialG This user is from outside of this forum
              grapheneos@grapheneos.social
              wrote last edited by
              #38

              @DasPom @adfichter GrapheneOS displays a notice if apps use the Play Integrity API and supports blocking using it to work around apps which ban a result showing it's not a stock Google Mobile Services OS but permit not successfully providing a result.

              AGOV app has an incorrect anti-tampering check which detects our secure spawning. It's possible to disable that but we don't recommend it. We're going to fix it by eliminating the differences it detects. See https://grapheneos.social/@GrapheneOS/116528377935838679 for details.

              1 Reply Last reply
              0
              • stgl@infosec.exchangeS stgl@infosec.exchange

                @unaegeli @jonasgraphie @f @adfichter @GrapheneOS

                Mich warnt die UBS-App, dass sie bald nicht mehr funktionieren wird auf meinem GrapheneOS mit gelocktem Bootloader.

                unaegeli@swiss.socialU This user is from outside of this forum
                unaegeli@swiss.socialU This user is from outside of this forum
                unaegeli@swiss.social
                wrote last edited by
                #39

                @stgl

                Ohjee. Habe selber noch nichts derartiges erlebt.

                1 Reply Last reply
                0
                • stgl@infosec.exchangeS stgl@infosec.exchange

                  @unaegeli @jonasgraphie @f @adfichter @GrapheneOS

                  Mich warnt die UBS-App, dass sie bald nicht mehr funktionieren wird auf meinem GrapheneOS mit gelocktem Bootloader.

                  grapheneos@grapheneos.socialG This user is from outside of this forum
                  grapheneos@grapheneos.socialG This user is from outside of this forum
                  grapheneos@grapheneos.social
                  wrote last edited by
                  #40

                  @stgl AGOV is detecting our secure spawning feature and can be used on GrapheneOS with it disabled. It's an important security feature and doesn't currently have a per-app toggle so we don't recommend disabling it. We've already shipped an improvement hiding the main difference between secure spawning and standard Android Zygote spawning by making the Java call stack match due to misguided anti-tampering checks. We have changes planned to address other cases.

                  See https://grapheneos.social/@GrapheneOS/116528377935838679.

                  1 Reply Last reply
                  0
                  • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                    @adfichter The anti-tampering checks done by these are inherently insecure and most are incorrect which leads to compatibility issues with future Android versions, GrapheneOS and even OEM Android forks. The reason we had to adjust the initial call stack for secure spawning to match the standard one is because some apps insecurely try to detect tampering via method hooking by checking the call stack. We can make a similar change for their low-level checks of the data in certain memory blocks too.

                    toke@social.kernel.orgT This user is from outside of this forum
                    toke@social.kernel.orgT This user is from outside of this forum
                    toke@social.kernel.org
                    wrote last edited by
                    #41
                    @GrapheneOS @adfichter that would be amazing. The Danish MobilePay app (dk.danskebank.mobilepay) also refuses to work on GrapheneOS, and it sounds like it's for the same reason. At least I don't get any notification about the app trying to use the Integrity API, it just says "device modified" after running for a while. I guess maybe it's just caching the state after initial launch and bugging out if it changes?
                    grapheneos@grapheneos.socialG 1 Reply Last reply
                    0
                    • toke@social.kernel.orgT toke@social.kernel.org
                      @GrapheneOS @adfichter that would be amazing. The Danish MobilePay app (dk.danskebank.mobilepay) also refuses to work on GrapheneOS, and it sounds like it's for the same reason. At least I don't get any notification about the app trying to use the Integrity API, it just says "device modified" after running for a while. I guess maybe it's just caching the state after initial launch and bugging out if it changes?
                      grapheneos@grapheneos.socialG This user is from outside of this forum
                      grapheneos@grapheneos.socialG This user is from outside of this forum
                      grapheneos@grapheneos.social
                      wrote last edited by
                      #42

                      @toke @adfichter Standard Android spawning uses fork from the Zygote with a bunch of stuff preloaded to share more memory. This breaks ASLR and other probabilistic protections since it's all shared between the Zygote process, system_server, user installed apps and many system components implemented with app_process. Android implements a large portion of userspace with app processes. It's most of the high level base OS. Some are in the regular app sandbox while others are more privileged.

                      grapheneos@grapheneos.socialG 1 Reply Last reply
                      0
                      • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                        @toke @adfichter Standard Android spawning uses fork from the Zygote with a bunch of stuff preloaded to share more memory. This breaks ASLR and other probabilistic protections since it's all shared between the Zygote process, system_server, user installed apps and many system components implemented with app_process. Android implements a large portion of userspace with app processes. It's most of the high level base OS. Some are in the regular app sandbox while others are more privileged.

                        grapheneos@grapheneos.socialG This user is from outside of this forum
                        grapheneos@grapheneos.socialG This user is from outside of this forum
                        grapheneos@grapheneos.social
                        wrote last edited by
                        #43

                        @toke @adfichter There's a bunch of stuff that's normally preloaded which gets loaded on demand with secure spawning instead. There are also things which simply aren't present in memory because it's only set up in the Zygote. None of this impacts correctly written apps not looking at internal implementation details. Unfortunately, these anti-tampering checks do very strange and incorrect things as part of their misguided goal of detecting tampering. It's completely insecure and has no benefit.

                        toke@social.kernel.orgT 1 Reply Last reply
                        0
                        • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                          @toke @adfichter There's a bunch of stuff that's normally preloaded which gets loaded on demand with secure spawning instead. There are also things which simply aren't present in memory because it's only set up in the Zygote. None of this impacts correctly written apps not looking at internal implementation details. Unfortunately, these anti-tampering checks do very strange and incorrect things as part of their misguided goal of detecting tampering. It's completely insecure and has no benefit.

                          toke@social.kernel.orgT This user is from outside of this forum
                          toke@social.kernel.orgT This user is from outside of this forum
                          toke@social.kernel.org
                          wrote last edited by
                          #44
                          @GrapheneOS @adfichter right, I'm not disputing that the app is broken. However, it's also the only available payment solution in many places in Denmark, so it would be kinda nice to have a workaround or a per-app toggle to make it work. I'd rather not turn off the security feature system-wide, for obvious reasons 🙂
                          grapheneos@grapheneos.socialG 1 Reply Last reply
                          0
                          • toke@social.kernel.orgT toke@social.kernel.org
                            @GrapheneOS @adfichter right, I'm not disputing that the app is broken. However, it's also the only available payment solution in many places in Denmark, so it would be kinda nice to have a workaround or a per-app toggle to make it work. I'd rather not turn off the security feature system-wide, for obvious reasons 🙂
                            grapheneos@grapheneos.socialG This user is from outside of this forum
                            grapheneos@grapheneos.socialG This user is from outside of this forum
                            grapheneos@grapheneos.social
                            wrote last edited by
                            #45

                            @toke @adfichter We could make a per-app toggle for secure spawning. However, the Zygote has all of our per-app hardening features enabled so ones requiring a fresh address space to disable can't be disabled without secure spawning. If an app has a memory corruption bug requiring disabling hardened_malloc or can't run with a 48-bit address space then it will require secure spawning unless we have a non-hardened Zygote which we don't want to. It would also mean leaking Zygote layout to the app.

                            grapheneos@grapheneos.socialG 1 Reply Last reply
                            0
                            • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                              @toke @adfichter We could make a per-app toggle for secure spawning. However, the Zygote has all of our per-app hardening features enabled so ones requiring a fresh address space to disable can't be disabled without secure spawning. If an app has a memory corruption bug requiring disabling hardened_malloc or can't run with a 48-bit address space then it will require secure spawning unless we have a non-hardened Zygote which we don't want to. It would also mean leaking Zygote layout to the app.

                              grapheneos@grapheneos.socialG This user is from outside of this forum
                              grapheneos@grapheneos.socialG This user is from outside of this forum
                              grapheneos@grapheneos.social
                              wrote last edited by
                              #46

                              @toke @adfichter Zygote doesn't have much attack surface but we don't really want to have a compatibility approach for this depending on leaking the layout to specific apps which would then also know each other's layout. It's different than exploit protections which only protect apps from attacks. We already resolved the issue of apps checking the call stack to try to detect hooking and we should be able to resolve any other compatibility issues from anti-tampering checks for secure spawning.

                              grapheneos@grapheneos.socialG 1 Reply Last reply
                              0
                              • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                @toke @adfichter Zygote doesn't have much attack surface but we don't really want to have a compatibility approach for this depending on leaking the layout to specific apps which would then also know each other's layout. It's different than exploit protections which only protect apps from attacks. We already resolved the issue of apps checking the call stack to try to detect hooking and we should be able to resolve any other compatibility issues from anti-tampering checks for secure spawning.

                                grapheneos@grapheneos.socialG This user is from outside of this forum
                                grapheneos@grapheneos.socialG This user is from outside of this forum
                                grapheneos@grapheneos.social
                                wrote last edited by
                                #47

                                @toke @adfichter It would be possible to apps to go out of the way to detect secure spawning in a way we couldn't prevent but they're not actually trying to detect it, they're just doing all kinds of cargo cult security checks by checking that things are the way they were on devices they tested which happen to be different when using exec after fork. We have a good idea about what the main remaining compatibility issue is and we should be able to fix it fairly easily. We just have a lot to do...

                                grapheneos@grapheneos.socialG 1 Reply Last reply
                                0
                                • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                  @toke @adfichter It would be possible to apps to go out of the way to detect secure spawning in a way we couldn't prevent but they're not actually trying to detect it, they're just doing all kinds of cargo cult security checks by checking that things are the way they were on devices they tested which happen to be different when using exec after fork. We have a good idea about what the main remaining compatibility issue is and we should be able to fix it fairly easily. We just have a lot to do...

                                  grapheneos@grapheneos.socialG This user is from outside of this forum
                                  grapheneos@grapheneos.socialG This user is from outside of this forum
                                  grapheneos@grapheneos.social
                                  wrote last edited by
                                  #48

                                  @toke @adfichter Our most recent release (2026050400) hasn't gone to the Stable channel due to incorrect anti-tampering checks which crash with this change:

                                  > bionic: clamp the minimum size of the random guard region we add between the stack and pthread_internal_t (thread-local storage and other sensitive data) for secondary stack randomization to the page size to guarantee we always add a guard page protecting pthread_internal_t from stack buffer overflows

                                  We fixed it for today's release.

                                  grapheneos@grapheneos.socialG 1 Reply Last reply
                                  0
                                  • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                    @toke @adfichter Our most recent release (2026050400) hasn't gone to the Stable channel due to incorrect anti-tampering checks which crash with this change:

                                    > bionic: clamp the minimum size of the random guard region we add between the stack and pthread_internal_t (thread-local storage and other sensitive data) for secondary stack randomization to the page size to guarantee we always add a guard page protecting pthread_internal_t from stack buffer overflows

                                    We fixed it for today's release.

                                    grapheneos@grapheneos.socialG This user is from outside of this forum
                                    grapheneos@grapheneos.socialG This user is from outside of this forum
                                    grapheneos@grapheneos.social
                                    wrote last edited by
                                    #49

                                    @toke @adfichter Banking apps often use third party SDKs which claim to detect tampering. They do all kinds of invasive checks depending on internal implementation details. It's highly insecure and serves no actual purpose. The latest example we ran into is that apps are scanning /proc/self/maps for the first anonymous mapping named stack_and_tls:main which is where Android puts the pthread_internal_t and other per-thread data for the main thread. Other threads have their stack there too.

                                    grapheneos@grapheneos.socialG 1 Reply Last reply
                                    0
                                    • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                      @toke @adfichter Banking apps often use third party SDKs which claim to detect tampering. They do all kinds of invasive checks depending on internal implementation details. It's highly insecure and serves no actual purpose. The latest example we ran into is that apps are scanning /proc/self/maps for the first anonymous mapping named stack_and_tls:main which is where Android puts the pthread_internal_t and other per-thread data for the main thread. Other threads have their stack there too.

                                      grapheneos@grapheneos.socialG This user is from outside of this forum
                                      grapheneos@grapheneos.socialG This user is from outside of this forum
                                      grapheneos@grapheneos.social
                                      wrote last edited by
                                      #50

                                      @toke @adfichter In Android, it's a mapping with a guard page at both ends with the stack, pthread_internal_t, static thread-local storage and libgen buffers in between the guard pages. We put a randomized guard region at the top of the stack to have secondary stack randomization and it also protects pthread_internal_t, etc. from stack buffer overflows. We were already rounding up to page size but the random size could be 0 which resulted in no guard. 2026050400 clamps minimum size to 1 page.

                                      grapheneos@grapheneos.socialG 1 Reply Last reply
                                      0
                                      • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                        @toke @adfichter In Android, it's a mapping with a guard page at both ends with the stack, pthread_internal_t, static thread-local storage and libgen buffers in between the guard pages. We put a randomized guard region at the top of the stack to have secondary stack randomization and it also protects pthread_internal_t, etc. from stack buffer overflows. We were already rounding up to page size but the random size could be 0 which resulted in no guard. 2026050400 clamps minimum size to 1 page.

                                        grapheneos@grapheneos.socialG This user is from outside of this forum
                                        grapheneos@grapheneos.socialG This user is from outside of this forum
                                        grapheneos@grapheneos.social
                                        wrote last edited by
                                        #51

                                        @toke @adfichter We also randomize the top of the stack for secondary threads by up to 1 page below the gap to have the lower bits randomized. It doesn't break anything because it's normally space used by pthread_internal_t and we added reserved space for it and the random gap.

                                        Clamping to 1 page minimum resulted in adding a redundant guard to the main thread stack's pthread_internal_t / TLS region since the stack there is 0 size which is also the case for self-allocated secondary stacks.

                                        grapheneos@grapheneos.socialG 1 Reply Last reply
                                        0
                                        • grapheneos@grapheneos.socialG grapheneos@grapheneos.social

                                          @toke @adfichter We also randomize the top of the stack for secondary threads by up to 1 page below the gap to have the lower bits randomized. It doesn't break anything because it's normally space used by pthread_internal_t and we added reserved space for it and the random gap.

                                          Clamping to 1 page minimum resulted in adding a redundant guard to the main thread stack's pthread_internal_t / TLS region since the stack there is 0 size which is also the case for self-allocated secondary stacks.

                                          grapheneos@grapheneos.socialG This user is from outside of this forum
                                          grapheneos@grapheneos.socialG This user is from outside of this forum
                                          grapheneos@grapheneos.social
                                          wrote last edited by
                                          #52

                                          @toke @adfichter That resulted in having a PROT_NONE page called anon:stack_and_tls:main page in /proc/self/maps followed by the area with pthread_internal_t, thread-local storage and libgen buffers. The anti-tampering checks and obfuscation done by these apps is doing something with that data and it crashes trying to access the guard. It's a nice example of how horrific these checks are. We've had a lot of problems caused by them which have certain security improvements into a hassle.

                                          grapheneos@grapheneos.socialG toke@social.kernel.orgT 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups