Re: Why I don't like GNOME Software's rating system

rugk <[email protected]> Tue, 27 Jun 2017 21:17:09 +0200
Newsgroups gmane.comp.gnome.usability,gmane.comp.gnome.general
Message-ID <[email protected]>
Hi,
okay, thanks for your reply, so I am adding this other mailing list.
As said, I've already opened a bug report and structured the issues 
there.
However, they all belong to the same topic and can hardly be solved
individually. It is a general privacy problem of the ratings in
GNOME software.

So I rather wanted to discuss the whole issue here than just some
specifics.

Best regards,
rugk

Am 26.06.2017 12:06 schrieb [email protected]:
> Hi there,
> 
> This mailing list isn't really used any more. My suggestion would be
> to create a short bug report for each of the issues you've identified,
> against gnome-software:
> 
> https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-software
> 
> Allan
> 
> On Sat, 24 Jun, 2017 at 10:28 PM, rugk <[email protected]> wrote:
>> Hi,
>> I am writing to this mailing list, explaining my issue(s) I have with
>> how ODRS is designed, as my original bug request in
>> https://bugzilla.gnome.org/show_bug.cgi?id=783252 apparently did not 
>> got
>> enough attention. Propbably mailing lists are more suitable for this
>> kind of discussions.
>> 
>> FYI I've also tried to subscribe to this list on 
>> https://mail.gnome.org,
>> but it always claims my captcha is wrong. So if you could subscribe me
>> or just add my mail here when replying to this mail, please do so.
>> If you think I wrote to the wrong list (could not find one about 
>> privacy
>> or GNOME Software), please repost it in the correct one.
>> 
>> ---
>> 
>> First let me say that I am speaking out of the perspective of a 
>> (nooby)
>> privacy-conscious GNOME software user. I'll noticed many privacy 
>> issues
>> when using it and some more when reading the description on
>> https://odrs.gnome.org/. I see your decisions were well-intentioned, 
>> but
>> some are just bad for the privacy of your users.
>> I'll describe my personal experience here, to make more understandable
>> what issues I encountered. Doing so I will use some ****** words just 
>> to
>> make it more vivid, so please don't freak out because of them. All I
>> want to be is constructive, I would not create this issue otherwise. 
>> (I
>> would rather rant in a blog or in social media in that case…)
>> 
>> In short: This is a German/nooby/privacy-aware/first-time experience
>> using GNOME software. Version 3.22.7 BTW.
>> Attention: This is a long read. Take some time.
>> 
>> == Problems ==
>> 1. The unknowing user…
>> 
>> – The problem:
>> A new user does not know what's submitted. As a new user of GNOME
>> software I see that I can evaluate apps. That's nice, but as a new 
>> user
>> I also like to know what will be submitted. And the interface just 
>> gives
>> mo *no* clues about this. I can only speculate
>> And, of course, users should not have to look online how the mechanism
>> works. That must be clear in the software.
>> 
>> First of all **there is no link to any privacy policy**. And there are
>> many other things I wondered about and did not know before (& 
>> sometimes
>> even after submitting a rating):
>> 1. Which username will be used? The "usual" one (/home/<username>), 
>> the
>> full name I give when creating an account? Or will I be able to choose
>> the username? (I would prefer the latter, BTW.)
>> 2. What other identifiers are submitted? My country? My OS/distro? My
>> language?
>> 3. Will I be able to edit my review?
>> 4. Will I be able to delete it, in case I regret my review later?
>> 5. Some may even ask: Will this published? (i.e. it is a good idea to
>> just note there: "This will be made public."
>> 
>> As I should notice later, also on https://odrs.gnome.org/ there is no
>> link to your software ratings.
>> 
>> – How to solve:
>> Either when first making a review or in the review window generally, 
>> add
>> a small text with a summary, such as: "Note that this review will be
>> made public including your username and some information about your
>> machine. For more information click here. <link to privacy policy>"
>> 
>> 2. User names
>> – The problem:
>> So after the first review the user may realize,: "Oh f***, they
>> submitted the full name of my Linux account." Seriously, that's not 
>> only
>> unexpected, but bad. I would have expected you to submit the usual 
>> linux
>> user name, but to submit the whole name is not so nice, especially as
>> many, many users are used to use their real first name (and some maybe
>> also second name) as their user account. (You can confirm this by
>> looking at the reviews…)
>> 
>> So, do you want to know what I thought?
>> I thought: "Okay, the GNOME guys are good people, so maybe they don't
>> show it public, only uploaded my short user name (or an ID or so) and
>> now they only parse it locally and show the local user name, they
>> found." I thought this might be useful, as local users using the same
>> system could then notice I was the one, who made the review.
>> 
>> But as I should find out, I was wrong.
>> 
>> – How to solve:
>> Usernames are a difficult topic. I, however, cannot accept that my 
>> local
>> username is used there without at least asking me before. You have to
>> know that's also quite contrary to the system that users are used to 
>> in
>> all other review systems and similar "web services" are used to. 
>> Usually
>> they always have to sign up and can at least determinate their user 
>> name
>> by themselves.They may use different user names to separate different
>> identities. They may never mention their real name online. They may of
>> course also mention their full name if they like.
>> The point is: The user has to decide, what he/she wants to share. In
>> Germany, we call this informational self-determination. (Just search 
>> for
>> it…)
>> 
>> That's why I propose to let the user decide it. Have a way for the 
>> user
>> to change their user name, which should be reflected in all their
>> reviews. When doing their first review, you can e.g. ask them what 
>> user
>> name they like to have. You can pre-fill the input field with the full
>> user name, you currently use and users may choose to use that name. If
>> so, that is their choice!
>> In any case, you'll save that and just re-use that name until the user
>> changes it. When doing so it should be updated in all existing 
>> reviews,
>> IMHO.
>> 
>> 3. The "hidden" information & the backend system
>> – The problem:
>> What I did not know was, that much more information was submitted than
>> just my user name. Okay, my distro and my language setting are okay 
>> for
>> me, and I would have expected these. (Although it should have been
>> mentioned in a privacy policy, at least, see #1).
>> But I did not expect to submit a SHA-1 hash…
>> When I read up on this feature (After I found the site
>> https://odrs.gnome.org/, which was more accidental and not easy to
>> find.) I could finally see what is submitted:
>> -> "we're using a SHA1 hash of the machine-id and the UNIX username
>> along with a salt"
>> 
>> Okay, at least a salt. The problem is I cannot see it anywhere in the
>> ratings, so is this one static salt for all of the ratings or – as it
>> would be correct – one for each rating?
>> In the end, it does not matter, because you can likely brute-force it
>> anyway. (see below)
>> So let's look at the content. Now, in addition to the full name, we 
>> have
>> the "short username" included here. This means with some brute-forcing
>> one can connect these names, which may be bad as some users might 
>> choose
>> "pseudonym" as their short name and (because they think this name is
>> only showed in some specific places, locally) use their real name as a
>> full name. When an attacker does so, this might essentially completely
>> destroy a user's privacy as the pseudonym could be used on other
>> websites too.
>> 
>> I don't know whether the machine ID could be useful, maybe it is when
>> other software uses it to publish more information in a similar way, 
>> but
>> in any case one can at least find out how many users are using one
>> device or are, at least, rating there.
>> 
>> – How to solve:
>> The best would be to not use this data. This is however not practical,
>> so you may follow the advice below.
>> 
>> 4. A special note about SHA-1
>> – The problem:
>> You should not use SHA-1 anymore. You may have seen
>> https://shattered.it/, you may have noticed it has been depreciated by
>> NIST in 2011, you may have heard theoretical attacks already appeared 
>> in
>> 2005.
>> You may still say, for this use it is okay. Yes, it may be, if the
>> machine ID is really random (which I don't know if that is the case) 
>> and
>> it may be even harder to brute-force if the user name is also quite 
>> long
>> (which you, however, cannot assume). When an attacker however e.g. 
>> knows
>> the machine ID it may be easy to brute-force.
>> 
>> Also for the user_key it "should be impossible to generate a user_key
>> from a user_id without first requesting the reviews from the server".
>> Well, with shattered (& future attacks on SHA-1) it may be possible.
>> 
>> – How to solve:
>> In general the algorithm should just not be used anymore. Switch to
>> SHA-256, at least.
>> 
>> However, the best idea would be to switch to a proper algorithm 
>> designed
>> for your use case. Because basically this machine ID and username is a
>> "password". A thing, only one user "knows" (or "has", in this case) 
>> and,
>> which should be slow to brute-force and some milliseconds to wait 
>> while
>> hashing it is not bad. For these there are specially designed hashes,
>> such as bcrypt, scrypt or – the new winner
>> (https://en.wikipedia.org/wiki/Password_Hashing_Competition) – ARGON2.
>> These hashes are very slow (in contrast to SHA-256, which is optimized
>> for speed) and thus difficult to brute-force, making sure no one can
>> ever access the machine ID or username in the ID. In general see
>> https://crackstation.net/hashing-security.htm for that. It is exactly
>> what you need.
>> 
>> Of course you need to stay backward-compatible, so for some time you 
>> can
>> accept the old hashes, but switch to the new hashes in the 
>> application.
>> Later you can then disallow the old hashes to be used, so that now 
>> only
>> the "secure reviews" can be written.
>> 
>> 5. A general word on "anonymous"
>> – The problem:
>> Now, on https://odrs.gnome.org/, I read: "Designing an anonymous 
>> service
>> is hard". Wait, wait…
>> As we learned, you submit full usernames and some obfuscated machine 
>> IDs
>> and short user names. This is not anonymous, at all. That's
>> pseudonymity.
>> See https://internet-anonymity.com/internet-anonymity-vs-pseudonymity/
>> for a quick explanation.
>> 
>> Even without the full user name it would be pseudonymous as each user
>> has an ID (the SHA-1 hash shown public).
>> 
>> – How to solve:
>> Never lie to the user. Thankfully, this was only a doc page, so it is
>> not in your privacy policy (which is not there, anyway…), but it is
>> still not good. Especially when writing this under the headline
>> "privacy".
>> 
>> So change the wording and call it "pseudonymous".
>> 
>> 5. The deletion system is a farce.
>> – The problem:
>> After seeing this all, I decided to delete my reviews I already made. 
>> I
>> was reassured when I saw this is possible (and finding them in this
>> great list online was easy), so I could delete all of them. Now,
>> everything is all right? Right? No.
>> 
>> Because they are still there, online. Anyone can still access them. 
>> Once
>> reviewed, once made a mistake of not changing your username (because 
>> one
>> did not know the impact, see #1) and your done. Irreversible.
>> That's crazy. Only a small "deleted at" date is added to the entry. It
>> is still accessible online. If the user was not me (who checked that 
>> on
>> the website), he/she would not even have known that. They would have a
>> false sense of security, or, here, privacy, and may think all data is
>> gone. But wrong.
>> 
>> – How to solve:
>> Please, please, allow users to really remove their own reviews. Why do
>> you still need to store them after they decided to delete them? If you
>> want to have some "restore functionality", then maybe store them a few
>> days and then automatically delete them, but do not leave them there.
>> This exploits the trust, your users out into your service (or this 
>> exact
>> one button, there). "Delete" means "delete". In this case that's very
>> clear and also other review platforms such as AMO (addons.mozilla.org)
>> allow this.
>> 
>> Speaking about AMO another nice way to help users to stay in control 
>> of
>> their data (aka reviews) would be to have a page, where they can see 
>> all
>> of their reviews. That's also a standard feature of all review
>> platforms.
>> This allows them to review their reviews (pun not intended) and delete
>> or edit them if necessary. (Editing is not yet possible, but basically
>> one could also just delete and add a new review, so I don't know 
>> whether
>> you'll implement this in the future.)
>> It's also good to see in case you want to change a rating.
>> 
>> == But why? ==
>> Before you say this would not matter ("You have nothing to 
>> hide-like"),
>> let me make a fictional example. If there would be some porn apps in 
>> the
>> app store (don't know whether this is allowed or so, this does not
>> matter here anyway), then a user will likely not like it to be exposed
>> when creating a review there. The user would not want his/her user 
>> name
>> to be published without consent, neither any additional information,
>> which could identify them. At least they should know about the latter.
>> You claim to have an anonymous rate system. This is false. And this 
>> user
>> would regret it. But even when doing so, deleting the review would not
>> help.
>> That's bad, very bad…
>> Or, maybe, in some countries, a software review of a "hacking tool"
>> maybe can get you killed?
>> 
>> All in all: The current state is really a no-go. These are five big
>> points you should tackle. Personally I would have rather signed up for 
>> a
>> real user account there*, where I can choose, which information I
>> provide. Personally I am a guy, who would rather have not such a "fake
>> anonymous" review system than just a usual evaluation system, where I
>> have everything under my control. And the big promise of FLOSS 
>> software
>> is that the user can have everything under their own control. Don't
>> destroy this promise!
>> 
>> * Also using "real" account, would help when users are distro-hoppers 
>> or
>> so and frequently install new distros or just set their system up
>> another time. Currently, they loose "access" to all their previous
>> reviews with this system.
>> 
>> Best regards,
>> rugk
>> 
>> ----
>> I am temporarily testing PGP for this mail address.
>> 
>> Fingerprint: 7046 C1B2 8644 9EAF 9F3F F5C1 8F16 2AE4 4088 F1BE
>> Key:
>> https://keys.mailvelope.com/pks/lookup?op=get&search=0x8F162AE44088F1BE
>> _______________________________________________
>> usability mailing list
>> [email protected]
>> https://mail.gnome.org/mailman/listinfo/usability
_______________________________________________
usability mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/usability