Skip to content

Update Wallet SSL Policies #7089

@vtnerd

Description

@vtnerd

The current default SSL security policy of the monero-wallet-cli and monero-wallet-rpc is to autodetect whether the daemon RPC has SSL enabled. A root-CA check against the domain is attempted, but only a warning is logged if it fails. The root-CA validation is not mandatory with autodect because an attacker can mitm the connection to downgrade to cleartext. A connection must be SSL mandatory for peer authentication; DANE/TLSA was created to solve the opportunistic encryption failures of SMTP.

@Gingeropolous @binaryFate @Snipa22

Proposal 1: If a wallet user enters a domain (i.e. not an IP) without additional security options, upgrade autodetect to mandatory SSL with root-CA check. Its better than the current (no check), but will generate errors to users unless popular domains get a signed SSL certificate.

Propsal 2: Add DANE/TLSA support to the wallet autodetect mode. Its basically completed, for better or worse. Domains can "opt-in" by putting SHA256 or SHA512 fingerprints of their self-signed certificates in DNSSEC records. Domains that do not have this DNSSEC record have no change. The fingerprint could also be cached locally in the wallet data for an improved trust-on-first-use mode. The domain can set an expiry longer than 3 months for $0. The security is based on the TLD, registrar, and ICANN. So not nation-state proof, but average miscreant proof. Hopefully more difficult than root-CA shenanigans, but subjective.

Proposal 3: Same as (2) but make TLSA DNSSEC record opt-out. User must specify fingerprint or request skipped verification if domain has no valid TLSA record.

Proposal 4: I close another issue no one cares about.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions