<p dir="ltr">Den 3 nov 2015 12:08 skrev "Ximin Luo" <<a href="mailto:infinity0@pwned.gg">infinity0@pwned.gg</a>>:<br>
><br>
> I hear that OpenWhisperSystems don't want to implement "read receipts" because<br>
> they consider this to be a security issue, and have closed several user tickets<br>
> requesting this feature as "wont fix". I don't think it's a security issue, at<br>
> least not in a significant sense, and in fact I think *not* having read<br>
> receipts is a worse security issue.<br>
><br>
> Firsty, let's clear up some definitions: [...]</p>
<p dir="ltr">My comments below are partly based on what has been discussed previously on multiparty communication.</p>
<p dir="ltr">Summary: users should be able to request acks for specific messages and flag for when ordering (consistency) matters and needs to be confirmed by the recipients. To be scalable, your device ignores consistency requirements for participants you don't consider important. </p>
<p dir="ltr">My approach to doing this is through per-user hash chains of received messages, and coloring/icons in the UX to show how many of the recipients you declared you need confirmation from that has made confirmations, and for when you're expected by others to make a confirmation. This can include your program reordering all messages temporarily to let you see the view as how the person making the request has seen it. </p>
<p dir="ltr">When all messages already are shown in the expected order, you get a checkmark. When manual ack is requested, there can be an icon like diagonally aligned numbers 1-2-3 in green, with a yellow exclamation mark sign. Clicking it let you confirm it. </p>
<p dir="ltr">When they aren't in order, you could get an icon like diagonally aligned numbers 1-2-3 in red, with a flag if an ack is manually requested. Tapping it allows you to choose to see it in the expected order, and then to confirm if requested. </p>
<p dir="ltr">> Benefits of auto-acks:<br>
><br>
> 1. As the author, your messaging program automatically verifies that the<br>
>    message was delivered successfully (reliability).<br>
><br>
> 2. As a reader, your messaging program automatically verifies that other<br>
>    readers also saw the messages (consistency).<br>
><br>
> Specifically, you defend against (certain classes of) transport-level drop<br>
> attacks and all attacks that depend on these, such as consistency attacks.</p>
<p dir="ltr">My approach above gives auto-acks for reliability, as well as chaining + requests to show another's order for consistency. </p>
<p dir="ltr">You may chose to more rarely ack others messages and instead doing it in batches, and only ack them sorted by hash value, not time, to not reveal your order of receipt. You'd still have the above mentioned options to manually request confirmation of order and to confirm such requests. </p>
<p dir="ltr">> Benefits of no auto-acks:<br>
><br>
> 1. (reasonable argument) To avoid some notion of "creep factor" which some<br>
>    people think is important. You don't want an author to know that you've<br>
>    already received the message, because it would be socially awkward to not<br>
>    reply quickly, or something like that. You want to be in control of when the<br>
>    author gains that knowledge.<br>
><br>
> 2. (fallacious argument) You leak timing information to an outside attacker,<br>
>    that might then use this information to deanonymise members of the group.<br>
><br>
> 3. (fallacious argument) Normal postal conversations don't have read receipts,<br>
>    so we shouldn't do this either. (Analogous to deniability argument in OTR.)</p>
<p dir="ltr">To match multiple conflicting default mental models (in which all mental models are understandable by everybody), my idea is to have multichannel communication matching the different models, forcing everybody to explicitly pick the channel that does what they want. </p>
<p dir="ltr">To do this, I'm imagining a Google Wave / Docs approach with IM and annotation, where the document is persistent and have a signed history of diffs (Git style), where annotations can be made deniable, and where the IM is simply deniable (comments made to be shared are put in annotations). Your program would have separate views for these, depending on your device they could be shown in parallel. There could for example be a timeline view showing everybody's perception of the order of messages and edits. I'll make a blog post on this later.</p>
<p dir="ltr">(There can be a separate view gathering pending requests for confirmation of view order, some kind of notification view.) </p>
<p dir="ltr">I also have a document model in mind, based on a database + defined views (the closest practical analogy to what I imagine is TiddlyWiki + a database in a single file, with separate CSS rules per screen type, including print). </p>
<p dir="ltr">>    Non-repudiability is indeed specifically wanted in some cases. But this is<br>
>    such a small minority of use cases of OTR, that it's reasonable to say "just<br>
>    sign your messages using some other program". If it was wanted more, it<br>
>    would be responsible to add this option to the protocol.</p>
<p dir="ltr">See above. Matching different expectations is best done by providing different means of communication that match each set of expectations. </p>
<p dir="ltr">>    OTOH, read receipts are wanted in a much greater proportion of cases. Yes,<br>
>    they are relevant in asynchronous messaging. In practise, I definitely worry<br>
>    that my emails haven't been received, more than I worry about being judged<br>
>    at not replying quickly enough. Yes, a user study about this would be nice.<br>
>    But please don't make fallacies like 1(e) in those studies.<br>
><br>
> Another proposal:<br>
><br>
> The UI could let readers specifically manually ack a message (or multiple at<br>
> once), and warn *them* if they don't do this after a timeout - the same timeout<br>
> as the "message maybe not delivered" warning on the author's side, that OWS<br>
> probably won't implement. The reader-side warning could read "Your peer isn't<br>
> sure if you've received the message, don't leave them hanging!" or something<br>
> like that. When the author receives the ack, instead of displaying it as a<br>
> whole new message (like how manual "I got this" acks would be displayed), just<br>
> mark a tick next to the appropriate acked messages.</p>
<p dir="ltr">See my UX comments above. <br>
</p>