[messaging] "Appear offline" mode for Ricochet
desnacked at riseup.net
Mon Oct 12 07:43:34 PDT 2015
I use Ricochet and I quite like it.
Unfortunately, I use it with a workflow of "log in ricochet, check if
the person I want to talk to is online, talk to them, exit ricochet".
That's because I don't like my real-time presense information being
leaked to all the random contacts I might have.
In all the various crappy messaging protocols I've used in the past
(MSN, Skype, etc.) there is this "appear offline" functionality that
some people enjoy. The usual end result is that your buddies don't
know if you are actually online or offline, but you can message people
and usually people can message you and you can yourself choose whether
to answer (and leak presense) or stay mute.
Of course, all the above protocols are server-based and they usually
achieve the "appear offline" functionality with the help of a server
that caches messages. OTOH, Ricochet is serverless and IIUC is not
interested in running any sort of services (yet).
However, even with the current model of Ricochet you can have some
sort of "appear offline" functionality. This could be done if you
don't enable your hidden service, but you still connect to your
friend's hidden services to speak to them if you want to (since
connecting to a friend's hidden service establishes a duplex channel).
I guess the next question is "if you are 'appear offline', how do you
know which of your friend's are online"? In theory you could do that
by just connecting unauthenticated to their onion address and ricochet
port and checking if it's open. Of course, this way your friends would
know that some sketchy "appear offline" person is probing them, which
makes it weirder security-wise.
Alternatively, when in "appear offline" mode you don't probe all your
buddies, but you can select a buddy of yours and check if you can
message him. If their hidden service is online, you message him,
Otherwise, bad luck. This approach should leak no information but it's
the crappiest UX ever.
What else could we do here?
FWIW, in both approaches above, your buddies would not be able to
message you while you are "appear offline". This is sad, because MSN
and Skype make this possible through their completely broken design,
and that's what users would expect from Ricochet as well.
To achieve that in Ricochet, some sort of server will need to be
introduced that can handle state for offline user and "appear offline"
users. This server would store encrypted messages for offline users or
run an actually secure presense protocol (e.g. DP5). However, I
understand that the Ricochet development group is not interested in
server-based architectures so I'm not going to focus on that for now.
Or we should just make a combo package of pond and Ricochet, where
pond is used when your buddies are offline........
In any case, I'm interested in more solutions to the presense problem
for Ricochet because it's really annoying me!
More information about the Messaging