P
P
Pavel Golubev2013-11-14 00:22:29
Information Security
Pavel Golubev, 2013-11-14 00:22:29

How to implement P2P offline messaging on iOS/Android?

I'm working on an iOS/Android app that will allow secure and anonymous instant messaging. I am sure that secure and anonymous communication can only be achieved using a P2P architecture where there is no place for a server or central supernodes. After a recent discussion on Habré, I decided to stop using XMPP in favor of Torchat. I am currently porting Torchat and OTR to iOS and Android. You can follow the progress on Github. Torchat and OTR perfectly solve the tasks I set - the lack of a central link in the system, anonymity, masking the sender and recipient, speed, ease of use, encryption and authentication. But only if both users are online during the conversation. Neither Torchat nor OTR works if the recipient of the message is offline.
I assumed that messages sent offline should be buffered somewhere inside the P2P network by other participants in this network. While researching possible solutions, I came across Bitmessage. This protocol is based on the Bitcoin protocol and allows you to exchange messages without the participation of a server. Each client in the Bitmessage network receives all messages and tries to decrypt them with their private key. Scaling problems are solved by dividing clients into connected clusters (streams), which allows you to keep within reasonable limits the amount of traffic and processor time "eaten up" by the application.
Have I chosen the right protocol to implement sending messages "offline" on iOS / Android, taking into account the P2P architecture? Is it possible to calculate in advance how large the network and processor load will be? Will the iOS app receive messages from Bitmessage in the background?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
K
karass, 2013-11-21
@karass

Pasha, hello :) !

G
Gem, 2014-06-02
@Gem

As I understand it, the problem here is in the blockchain itself, for mobile coin clients they use special prepared and trimmed versions of it
. In view of this, I assume that client clusters will not be enough - you need nodes for stripping and storing the blockchain, obviously not mobile

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question