Skip to content

Server Token in Keychain statt UserDefaults speichern #42

Description

@iret77

Problem

Server-Tokens werden aktuell im App-Group UserDefaults gespeichert (SharedConfig.sharedDefaults). Das ist unsicher — jeder Prozess mit App-Group-Zugriff (Share Extension, FinderSync) kann die Tokens lesen, und sie liegen unverschlüsselt auf der Platte.

Lösung

  • HostProfile.serverToken bei Persistierung in die macOS Keychain migrieren (kSecClassGenericPassword)
  • Keychain-Item mit kSecAttrAccessGroup für App-Group-Zugriff (Share Extension)
  • Einmalige Migration: bestehende Tokens aus UserDefaults → Keychain, danach aus UserDefaults löschen
  • HostProfile Decoder/Encoder anpassen: Token nicht mehr in JSON, sondern per id aus Keychain laden
  • Keychain-Wrapper als KeychainManager in ClawsyShared

Betroffene Dateien

  • Sources/ClawsyShared/HostProfile.swift — Encoder/Decoder
  • Sources/ClawsyShared/HostManager.swift — addHost/updateHost/removeHost
  • Sources/ClawsyShared/SharedConfig.swift — Migration
  • Neu: Sources/ClawsyShared/KeychainManager.swift

Hinweise

  • Share Extension braucht kSecAttrAccessGroup mit Team-ID-Prefix
  • SecItemAdd / SecItemCopyMatching / SecItemUpdate / SecItemDelete
  • Beim Löschen eines Hosts: Keychain-Eintrag mitlöschen

Aus Codebase-Review Finding #6 (HIGH)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:highHigh prioritysecuritySecurity-related issuestriagedIssue has been triaged

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions