Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wrong and misleading use of the word "friend" in the meaning "contact peer" #16

Closed
x368 opened this issue Oct 19, 2015 · 10 comments
Closed

Comments

@x368
Copy link

x368 commented Oct 19, 2015

Despite the general consensus that contacts are not by definition one's friends the word "friend" is still being used in the standard, in the following files:

This ultimately misleads the users. As the proof that this is indeed misleading see the multiple arguments in discussions about security, similar to "choose your friends better so that you can trust them", "these are your friends after all" and so on.

This aside, the term is by its definition incorrect and is to be fixed.

Of the 5+ meanings of "friend" in the Merriam-Webster dictionary I do not see a single one which can be assumed to be true about all of one's contacts. The nearest might be

1 b :  acquaintance
2 a :  one that is not hostile 

but even these are not guaranteed for a new contact and sometimes guaranteed to be false (a disgruntled customer insulting you, who is working in customer support over tox, is neither of the above).

@x368 x368 mentioned this issue Oct 19, 2015
@Zer0-One
Copy link
Member

The core library actually uses the term "friend". Tox was not designed for safe communication with an adversary. If you've accepted a friend request from someone, you must have some level of trust in them (even if only a little).

That having been said, we could consider using "contact" instead. We don't have to use the core's terminology in the standard. We'll consider your suggestion, thanks.

@x368
Copy link
Author

x368 commented Oct 19, 2015

Thanks for your reply.

Yes, I am aware of the naming in the library.

That's why there is the issue irungentoo/toxcore#1434 for toxcore which is meant to correct the wording there as well, hopefully.

@x368
Copy link
Author

x368 commented Oct 19, 2015

As for the situations where Tox is assumed to be safe.

Nothing in the core design prevents (or should prevent!) secure communication with an adversary, either real or potential.

Such usage is unavoidable in reality even if not all of the developers/contributors realize this.

I gave already multiple examples, one more: think spouses getting a divorce, now hating each other but having to talk about the money for the common child? Do you mean they should not use tox? Why?

To make tox really safe (like in case when your friend or spouse would like to watch or modify your letters to your girlfriend, or when your colleague wants you to be fired to take your place) and also useful (you want to talk to your "ex" to discuss your common child's problems) this must be dealt with properly!

Where comes the need "to have trust" while accepting a contact request from? Even when I know this is a dangerous person, I still can be motivated to talk to him - e.g. to say "stop beating your wife!". Isn't this reasonable?

@JFreegman
Copy link
Member

@x368

Think spouses getting a divorce, now hating each other but having to talk about the money for the common child? Do you mean they should not use tox? Why?

This standard does not impose any naming conventions on clients, and the naming conventions used in this document have no effect whatsoever on the user. As of right now, a client can call them friends, contacts, comrades, or anything else. This is part of the creative freedom that developers should maintain; we do not wish to force naming conventions on clients unless there is a clear and obvious client compatibility or security concern.

Which term the standard should use is a potentially valid issue, and it will be considered. But what you've just described is a UX concern, and should be left up to the clients to figure out.

@x368
Copy link
Author

x368 commented Oct 19, 2015

we do not wish to force naming conventions on clients unless there is a clear and obvious client compatibility or security concern.

Mistakenly believing that contact entries are by default ("somewhat") trusted as Zer0-One also mentioned looks for me like a quite obvious and serious security concern.

This is an important detail for users but a crucial one for developers, who are the supposed readers of the standard.

@JFreegman
Copy link
Member

Mistakenly believing that contact entries are by default ("somewhat") trusted as Zer0-One also mentioned looks for me like a quite obvious and serious security concern.

It's silly to suggest that someone might consider a complete stranger or an enemy trustworthy because the client calls them a friend instead of contact. Again, this is something that will be discussed, but I'm quite certain that we will not be enforcing a naming convention in this case.

@x368
Copy link
Author

x368 commented Oct 20, 2015

Mistakenly believing that contact entries are by default ("somewhat") trusted as Zer0-One also mentioned looks for me like a quite obvious and serious security concern.

It's silly to suggest that someone might consider a complete stranger or an enemy trustworthy because the client calls them a friend instead of contact. Again, this is something that will be discussed, but I'm quite certain that we will not be enforcing a naming convention in this case.

You seem to have missed my point and criticize an idea which I never suggested.

To hopefully clear the matter:

  1. it is your idea not mine but yes someone will consider a complete stranger trustworthy just because the program says "friend"
  2. there are lots of situations where one does not know how friendly or evil one's contact is

The reality shows that both the developers and users are mislead to believe that there is some implied trust inside the contact list.

Then the users sooner or later unavoidably talk to a "complete stranger or some enemy" who exploits the misses which the developers did (which the developers actually already did, and this is reflected in several reports/issues).

@subliun
Copy link
Contributor

subliun commented Oct 20, 2015

The TCS is not user-facing and as such the terminology used to refer to contacts within it has no impact on the end user. As for developers, I have never seen any developer express confusion over the use of the word 'friend' in describing peers in your contacts list. It is common in several other IMs, and I for one immediately understood what was meant by the term. If you had any evidence for this point there would be much more reason to take it into consideration.

I would suggest closing this issue and opening issues on clients where you feel that 'contact' (or whatever other alternative) should be used instead of 'friend'.

@x368
Copy link
Author

x368 commented Oct 20, 2015

Given that the document aims to be "Tox-Client-Standard" it sends very strong signals to the client developers, among others sets the common language/terms. The user should be able to switch clients without switching terminology!

The reference to other IMs is not really correct as Tox is (unfortunately!) very alone for having a good basic design, with reasonable protection and without trust in third parties. No other IM technology comes close to Tox in this matter and it is very unfortunate to loan bad habits from the previous art (there the bad habits possibly did not look as bad compared to the rest of the insecure design).

I would not come here had I not seen apparent security-related misunderstanding on the Tox client developers side. Hope these notes will help raise some awareness, now I am done with what I could.

Good luck with the project, I hope indeed that it will not become a "Skype/Younameit replacement" implementing similar features and misfeatures but a better and safe communication means.

May be the next communication project will learn from Tox and do better :) but why not do the right thing from the beginning when we have a chance?

@alexeysvrv
Copy link

I believe that the clients themselves to decide what terminology to use. Do not include this standard (specification). It is not necessary to put strict limits. There must be freedom. Otherwise, it would have created only one official client

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants