ricochet-im / ricochet

Anonymous peer-to-peer instant messaging
https://ricochet.im/
Other
3.72k stars 401 forks source link

Check whether updates are available and help users stay current #147

Open special opened 9 years ago

special commented 9 years ago

It's really important that users stay up to date with new versions.

We should figure out a simple, but secure and privacy-preserving way to check whether updates are available and encourage the user to (safely) get them.

For example, we could fetch something from a hardcoded hidden service once every X, on some randomized schedule. In the simplest version, that could just be a statement saying "the latest version is N".

It might be worth adding an offline signature, a changelog, an indicator of important the update is, a statement expiration, or other fancy things.

I think we should avoid offering an automatic download of the update in the first iteration of this, but it's probably worth adding eventually: we can verify signatures, whereas most users won't.

special commented 8 years ago

@taoeffect on #301:

For security critical programs an auto-update mechanism is critical.

If a vulnerability is found, then users must be able to find out about it and get the fix as soon as it's released.

On OS X this is accomplished via Sparkle.

Ricochet, unfortunately, is written in C++ (see #285). However, I know that YouTube to MP3 (which appears to be censored from Google search results...) is a C++ program with a built-in autoupdater similar to Sparkle, so perhaps that or something else can be used.

ghost commented 8 years ago

Do not check "Automatically". Instead, let the user to click "check update" button manually. This will prevent unwanted drinking-pond attack.

Also, the updater should update current ricochet to latest one, shoud the user select "Yes" to the "New version available. Update?" question.

strugee commented 7 years ago

Do not check "Automatically". Instead, let the user to click "check update" button manually. This will prevent unwanted drinking-pond attack.

No no no no no. This is a really bad idea. If you don't implement automatic updates, users simply won't update their clients. No amount of training or education will ever teach users to properly do this. Not only that, but even if it were possible to teach them, they'd have to be dedicated enough to check pretty frequently. Otherwise they'll be happily running vulnerable software for weeks or even months.

That being said I've never heard of a "drinking-pond attack" - @GitHubHatesTor, can you explain what this is?