Skip to content

Improve Security Boundary for TOFU URLs #657

Description

@SailReal

Summary

Before Cryptomator connects to unknown URLs (i.e. when unlocking a Hub vault), users have to review and trust these URLs. Currently, such URLs are trusted independently. This means once trusted, these URLs can be mixed (i.e. in a Hub vault config). To increase security, we should extend the trust concept to sets of URLs. If two already-trusted URLs belong to two different sets, they are not trusted in combination.

This is the Android counterpart of cryptomator/cryptomator#4309.

Motivation

The Hub vault config contains two endpoints: authEndpoint and apiBaseUrl. Cryptomator follows the TOFU principle to trust these URLs.

The app-internal trust check (HubHostTrustValidator) validates both against a flat, app-wide trusted-hosts set (trustedHubAuthorities) independently, without confirming that they belong to the same trusted Hub instance. This means a vault config is still accepted when it is edited such that authEndpoint/tokenEndpoint point to an already-trusted Hub host A, but apiBaseUrl points to a different, also already-trusted host B.

Such edits should be made visible to the user, and trust should be requested again for that specific combination.

Considered Alternatives

No response

Anything else?

This affects the stored shape of trustedHubAuthorities, the trust prompt, and the "Trusted Hub Hosts" settings screen. We also have to decide what happens to entries that users already trusted.

This issue was found by Aakarshit Bargotra and they responsibly disclosed it to us.

Note that this is not a vulnerability, because the TOFU principle still holds: Both URLs have to be trusted.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions