Improve Security Boundary for TOFU URLs

オープン
#474 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
swift

調査の方向性

まず HubHostTrustValidator から始め、trustedHubAuthorities が authEndpoint と apiBaseUrl についてどのように保存・チェックされるかを追跡します。次に、信頼確認プロンプトと "Trusted Hub Hosts" 設定画面を調べ、既存のエントリの扱いも確認します。完了条件は、信頼する URL の組み合わせを混在させられず、保存形式、プロンプト、設定画面、既存の信頼済みエントリについて合意された動作になっていることです。

索引モデルが issue の本文から書いたものです。

説明

misc:hub
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 iOS 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.

主要言語
Swift
スター
295
フォーク
42
平均マージ
1時間 43分
マージ済み PR(30日)
1

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cryptomator/ios のほかの issue

cryptomator/ios の issue をすべて見る

似ている issue

Swift の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。