Session(Formerly Loki) | Decentralized Messengers #296
-
Session Messenger is missing under Real-Time Communication - Decentralized. |
Beta Was this translation helpful? Give feedback.
Replies: 0 comments 42 replies
-
I disagree that Session should be included as I don't think it's been battle-tested enough. I also have concerns with both the Jurisdiction that Session is under (Australia) and the fact that the organization that Session is under (Oxen) develops Session (Messenger), Oxen (Cryptocurrency), and Lokinet (Self-contained Network), which is an insane undertaking for any organization. The fact that Signal got a lot of backlash was also because they planned on implementing Cryptocurrency into Signal which would fall under IRS jurisdiction. Although I am not fully familiar with Australian law so please inform me on whether this actually matters. The fact that Session implements all these into the application which creates questions and problems SHOULD make you hesitant on including them into PrivacyGuides. I believe that until we can get full and total confirmation on Session's implementations and laws surrounding the application should we include them into PrivacyGuides and even then I still do not see why having a Cryptocurrency and Self-contained Network that isn't Tor which has been battle-tested for years, included into a messaging platform is at all necessary. The Session application has also been buggy for both me and a lot of others that I have seen talk about Session, although it has gotten a lot better over the years and of course your mileage may vary. Currently the Android GitHub Repository has 136 open issues and 186 closed and 47 open issues and 91 closed for the iOS Repository. Something as important as a Chat application should be scrutinized this harshly and until most if not all of these issues have been ironed out will I MAYBE agree that Session should be included into PrivacyGuides, although there are still some infrastructure issues that very likely won't be changed like Lokinet over Tor and the Oxen implementation. TL;DR I think we should stay conservative and wait until Session irons out most of it's issues. Edit: Read the response comment by @KeeJef and my own response to his. |
Beta Was this translation helpful? Give feedback.
-
After several emails with Oxen Project and reading through their docs, there are some important aspects that I would like to address, so as to drop Session Messenger from PrivacyGuides. According to their TOS, which itself is a bit concerning,
Session assumes no liability for any losses or damages resulting from any matter (such as privacy breaches?) relating to their service and any liability on behalf of the service is only limited to $10 ? I would like to have a conversation regarding these terms, especially the first point. If enough people agree to the first issue, it would be good to end this discussion. |
Beta Was this translation helpful? Give feedback.
-
Hey guys, I'm the CTO at Oxen and Session. I've only just noticed this thread and the archival of the privacytools.io repository, so I haven't been able to participate in this discussion until now. There's quite a bit to respond to here, but I’ll try and address each of the points being raised. Battle-Testedness Session (Originally Loki messenger) has been publicly available since late 2018, giving it 3 years of battle-testing in the public domain. We’ve got approximately 200,000 monthly active users across all platforms as of the time of this post. Session has also had its code audited by Quarkslab, the report can be here. Considering the size of our user base, the amount of time Session has been available publicly, and the fact that its code has been audited more recently than any other recommended messenger, I think it’s fair to say Session has been somewhat battle-tested. Jurisdiction concerns It’s true that Australia’s attitude towards encryption is both concerning and disheartening. Our foundation does a lot of advocacy work around this issue, and I can assure you that this attitude is in no way unique to Australia. As we’ve seen very recently via ProtonMail, authorities will apply pressure to tech companies no matter where you are, even the so-called ‘best’ or ‘safest’ jurisdictions. However our view is that Session is not affected by the Identify and disrupt nor the assistance and access bills that have been passed in Australia.This view has been formed by working with our lawyers in Australia who have analysed the relevant legislation, and via our own technical analysis of the the Session protocol and understanding of our influence. You can read more about that here https://loki.network/2018/12/10/lokis-response-to-the-assistance-and-access-bill-2018/ . The TL:DR is that both the law and decentralised technology we have built mean it would be near impossible for us to be compelled to introduce intentional backdoors or flaws into Session. Scope of work Some comments focused on the scope of the team's work being too large. It's true that we’re tackling lots of big issues at once, including a private cryptocurrency, anonymous routing network, and anonymous messaging platform. However, we are a very well funded and large organisation full of passionate people who want to improve privacy. It's hard for us just to focus on one domain, but that's actually been one of our advantages — our development projects are all interconnected. While all of our projects benefit from having their own dedicated teams, those teams are able to share knowledge and expertise with each other. and our programmers all have each other’s goals in mind. Because of that, we’re able to offer privacy in a multitude of ways: E2EE; network obfuscation; and application level pseudo-anonymity. Buggy code It’s true this is something that we have consistently struggled with. Our releases of Loki Messenger and early versions of Session had often debilitating message reliability issues (Messages failing to send, issues with receiving messages etc.). This has gotten much better over time as we’ve improved our protocols and network stability, and although we still have lots of bugs to solve, message reliability is in a good state. If you haven't used Session in 6 months, I’d encourage you to regenerate a new Session ID and have another go — I think you might be surprised about just how much we’ve progressed. Issues open vs closed and progress on issues With all due respect measuring Session's progress on fixing bugs by looking at issues open versus closed (or how many total issues we have open, for that matter) is not going to give an accurate measurement of the state of the application. For comparison, Signal has 1.3k issues open right now. The better measure is probably to look at ratings of the application over time or compared to other applications, Session currently achieves a 4.2 stars on the Google play Store and 4.4 stars on the iOS App Store compared to Signals 4.4 stars and 4.7 stars on those same platforms. This indicates that users are currently rating both apps similarly, with Signal slightly preferred. Session’s ratings are currently trending upwards, and recent feedback has been positive, so I’d expect us to close in on Signal’s store ratings over time. Cryptocurrency Session is connected with the Oxen cryptocurrency through the Oxen Service Node Network. Oxen Service Nodes are responsible for routing and storing Session messages, among other responsibilities, and they are incentivised using OXEN rewards. Regardless of your opinions on cryptocurrencies, OXEN provides Session with a decentralised, high-performing, Sybil-resistant network. However, OXEN is not included in the Session application, and we have made a conscious effort to separate the cryptocurrency from the Session messaging application. This makes Session’s on-boarding experience simple and easy. There is potential to implement OXEN payments using Session IDs in the future, but currently we’re focusing on other aspects of the application. Integrating cryptocurrency into a messenger is not a process which should be rushed, and we would exercise extreme caution if we went ahead with a wallet integration. Should we choose to implement it, it’s worth noting that OXEN does offer advantages over Signals MobileCoin, because it is a properly decentralized cryptocurrency. Oxen is based on Monero (XMR) and it does not rely on a centralized network of proprietary Intel SGX CPU's to process transactions. Terms of Service The app terms of service are largely a formality which are required by the app stores for inclusion. By design we as the Session developers have almost no ability to enforce the ToS because we have no control over the Service Node Network and we cannot identify individual users of the Session application because of the pseudonymous nature of Session IDs. I encourage you to come up with a hypothetical issue where we could actually use our ToS to do something malicious to a Session user. I'm happy to answer any further questions you have |
Beta Was this translation helpful? Give feedback.
-
Looking over this, and the previous thread I don't see any reason why session shouldn't be added. We were formulating a criteria, for inclusion but loosely it was going to be:
From what I can tell, Session does actually fit both of these particular points. I've used the desktop client a little but, not really used it a lot though. |
Beta Was this translation helpful? Give feedback.
-
Looking at this particular PR from our old repos privacytools/privacytools.io#2293 I think we want to make some adjustments to the page, so we can include things like this. From previous discussion, Session isn't really "federated" but it isn't really P2P either. I didn't particularly like the term "nodal" as it doesn't really fit any CS description. I think we should replace the P2P section with a decentralized section, and roll the "peer-to-peer" into it. In time it's likely that Matrix will also be included in that category. This will mean we won't really have a federated section anymore. These programs do work quite differently, so we may need to re-work the pros/cons portion for that. |
Beta Was this translation helpful? Give feedback.
-
Just a quick note: I think the cryptocurrency Oxen is a minor detail in terms of assessing the threat model. Initially, I found Session because I was looking for blockchain based telecommunications, but I came to realize that this is not the foundation of this network, which is good and is how they can keep telecommunications free. Session uses a 3-hops onion-like TCP routing for now. In the future, this will be replaced by the much faster UDP Lokinet. The nodes are the validators of the Oxen blockchain. In other words, Oxen just serves as a financial incentive for providers to support the Session network infrastructure, whereas Tor relies on goodwill. This is clever, as indeed blockchains' main flaw, the Sybil attack, is the same limitation as for Tor. So if cryptocurrencies regulations become unfavorable, the major issue I guess would be that Oxen nodes may lose the financial incentive to provide nodes to service the network, hence reducing the security of the network. But 1) Oxen nodes are already distributed worldwide, so let's say a ban on cryptocurrencies in Australia won't bring down all nodes, only a subset, 2) this can be monitored in real-time in a decentralized and objective way since it's a blockchain (in the previous PR, there is a link to such a dashboard -- note the dashboard can go down if the Oxen foundation goes down, but not the blockchain). Disclaimer: this is my own analysis based on my own understanding of how this very complex interlinked suite of tools work, there may be some inaccuracies. |
Beta Was this translation helpful? Give feedback.
-
I think this issue is ready to proceed to a pull request. In conclusion, we should modify the page accordingly, as discussed and require:
|
Beta Was this translation helpful? Give feedback.
-
Session doesn't have perfect forward secrecy though? |
Beta Was this translation helpful? Give feedback.
-
I think Kee knows what a bruteforce search is, but I think the question was
how it can apply (what attack scenarios) to an already encrypted and
anonymously routed communication protocol. And to me it was not obvious
either but I think I now have some idea how it could be conducted. Bear in
mind I am not a professional cryptographist, just a hobbyist.
I used this resource for my reasoning :
https://cryptologie.net/article/174/forward-secrecy/
Ok so let's assume that a malicious actor could find a way to record all
the encrypted messages emitted by a user, along with the time and day of
sending, and that the attacker knows the user's language. It is reasonable
to assume that we can filter the first message of each communication
session (ie, when there is a big time gap between two streams of messages,
probably a day has passed, we keep the first message of each stream). This
way we now have a list of "first message in the day" that the user sent.
Since we know the user's language, it's reasonable to assume that we have
good chances to assume that at least one of these messages, but likely a
lot of them, would simply be an encryption of a simple "hello" message in
the user's language. Now that we know the likely ciphered text, we can
perform a bruteforce attack on this subset of messages, which aren't that
many since we get 1 message per communication session = about 1 per day for
a very active user.
So in summary, if my understanding is correct, the messages history
increases the attack surface over time, and perfect forward secrecy is
essentially a way to completely destroy this cumulative effect of time. So
PFS is not about device access but to reduce the attack surface when an
attacker can record the whole messages history of a user, remotely or not.
See also: https://cryptologie.net/article/174/forward-secrecy/
Now it's worth keeping in mind that the nature of anonymous routing makes
it very difficult for a malicious third party to record the whole history
of a specific user, so IMHO session is much less affected than say Matrix.
Btw I think Briar also does not implement PFS? Should add a warning too
then.
I think it would be a very welcome additional security to have PFS in
Session, but IMHO this is not a critical flaw thanks to anonymous routing
which is already a barrier (but not a bulletproof guarantee) against
network graph data mining.
/EDIT: Also ph00lt0 edited their message on github to clarify it's a theoretical
risk of quantum computing, so implementation of PFS would make Session more
future-proof. I agree, since quantum computing is now a real thing, it will
certainly continue to progress over time to a point where such attacks can
be conducted.
|
Beta Was this translation helpful? Give feedback.
-
Arg typos, read "anonymous routing" instead of "anonymous recording" at the
end of my previous message.
Also ph00lt0 edited their message on github to clarify it's a theoretical
risk of quantum computing, so implementation of PFS would make Session more
future-proof. I agree, since quantum computing is now a real thing, it will
certainly continue to progress over time to a point where such attacks can
be conducted.
Le mar. 30 nov. 2021 à 17:53, Stephen LARROQUE ***@***.***> a écrit :
… I think Kee knows what a bruteforce search is, but I think the question
was how it can apply (what attack scenarios) to an already encrypted and
anonymously routed communication protocol. And to me it was not obvious
either but I think I now have some idea how it could be conducted. Bear in
mind I am not a professional cryptographist, just a hobbyist.
I used this resource for my reasoning :
https://cryptologie.net/article/174/forward-secrecy/
Ok so let's assume that a malicious actor could find a way to record all
the encrypted messages emitted by a user, along with the time and day of
sending, and that the attacker knows the user's language. It is reasonable
to assume that we can filter the first message of each communication
session (ie, when there is a big time gap between two streams of messages,
probably a day has passed, we keep the first message of each stream). This
way we now have a list of "first message in the day" that the user sent.
Since we know the user's language, it's reasonable to assume that we have
good chances to assume that at least one of these messages, but likely a
lot of them, would simply be an encryption of a simple "hello" message in
the user's language. Now that we know the likely ciphered text, we can
perform a bruteforce attack on this subset of messages, which aren't that
many since we get 1 message per communication session = about 1 per day for
a very active user.
So in summary, if my understanding is correct, the messages history
increases the attack surface over time, and perfect forward secrecy is
essentially a way to completely destroy this cumulative effect of time. So
PFS is not about device access but to reduce the attack surface when an
attacker can record the whole messages history of a user, remotely or not.
See also: https://cryptologie.net/article/174/forward-secrecy/
Now it's worth keeping in mind that the nature of anonymous routing makes
it very difficult for a malicious third party to record the whole history
of a specific user, so IMHO session is much less affected than say Matrix.
Btw I think Briar also does not implement PFS? Should add a warning too
then.
I think it would be a very welcome additional security to have PFS in
Session, but IMHO this is not a critical flaw thanks to anonymous recording
which is already a barrier (but not a bulletproof guarantee) against
network graph data mining.
Le mar. 30 nov. 2021 à 16:46, ph00lt0 ***@***.***> a écrit :
> @KeeJef <https://github.com/KeeJef> shocked you don't know, but:
> https://wikiless.org/wiki/Brute-force_search
> Obviously PFS does offer protection against physical access but PFS is
> her for different reasons. Key rotation is essential for secure
> communication if you want to be prepared for future leaks caused by
> interception.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/privacyguides/privacyguides.org/discussions/57#discussioncomment-1723045>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAIRFXXK4RQCIM56HTFC46TUOTWU7ANCNFSM5EAYL47A>
> .
> Triage notifications on the go with GitHub Mobile for iOS
> <https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
> or Android
> <https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
>
>
|
Beta Was this translation helpful? Give feedback.
-
Includes proprietary Google dependencies: Whereas other apps make it a compile time option: |
Beta Was this translation helpful? Give feedback.
Done in privacyguides/privacyguides.org#192