
hi folks guess what we're having another talk that deals with an ominous networking how did that happen our speaker is Kevin Roman he's a computer science college student he came all the way from st. Louis Missouri the show-me-state he has an interest in security and ethical technology he's experienced in web development and security and he has a fondness for cryptology and decentralization let's hear it for decentralization photography all right so as she said my name is Kevin and I'll be talking about I'll be talking about improving anonymous networking and so this uh I ever since I was about like 13 I discovered tour and I initially just used it to like you know bretons like
play on games at school and stuff and that that just felt so freeing to me to be to be able to anonymously you know relatively anonymously use the Internet and circumvent censorship and ever since then I've been playing with and researching on various other networks such as such as but not limited to tor ITP free net zero net and many others I've been and I also have like a strong InfoSec interest so there's been a good bit of security research that I've done into it and I personally believe that the term dark net is appropriate to describe these networks but it's been kind of ruined by media it's like negative media attention so I believe
that dark Nets can benefit everybody especially marginalized people or people that are at risk such as journalists and LGBT people so the main goal of a dark net is to maximize privacy and to me that there's like three main things that are involved in maximizing privacy in a dark net and that's obviously hiding message content the time the time of communication is sometimes necessary not all networks take that into account though and participating party lists so like who's involved in the communication and that that image right there really demonstrates how I think surveillance feels especially mass surveillance it constantly feels like somebody is looking in through the bathroom stall at you so I'm just kind of assuming that
most people here have used tor at least once and as you would know it's just a browser so the other than anonymously routing things everything is basically the same as a normal browser a little more secure though so I think we need more of a stack or kind of a platform to host anonymous stuff on because the way people tend to host it now is yeah kind of terrible honestly a lot of hidden services are brought down simply through issues with the stack also tor like is just a routing mechanism so it doesn't have any way to really store information unlike other networks such as Freenet so I think we need a mechanism to store
things as well so what would make a good anonymous platform well there's two really broad categories a lot of security and usability and scalability the most important part of security though is metadata minimization so that includes who is communicating when how big the communication is [Music] and real quick I believe that decentralization is important but not just in the technical sense I believe it's important in the social sense as well so it's important for there to not be any points of failure and a network or in a community or even in a project so like it wouldn't make sense if you just like if some authoritarian government were to just arrest a couple of people and then
the whole network were to go down that wouldn't actually be decentralized a good example that is DNS so it's not decent choice in a social sense and I quickly I just want to explain the different types of latency and their pros and cons and anonymous networks high latency tip leads to bad user experience in a network but it really does improve privacy quite a bit because it's typically used when you're mixing a lot of traffic together so prevents correlation attacks or at least makes them much more difficult low latency is basically how tall and i2p work it it's best for web browsing and other things that need to be really fast some examples of like high latency
networks are like bit message sort of free nough and like mail mixers although bit message in Freenet are more so storage networks sort of so that it's not really exactly appropriate to call them high latency it's really just a rule of thumb so not not everybody like needs like 100% security or privacy like it wouldn't make sense if everything took like five hours to work so we do want to be able to you found some things fast so it's really dependent on like your threat model and exactly what you're doing at any given time and for distributed storage which again like tor and i TP lack it has a lot of benefits it's it can be it can be used as a sort
of broadcast type communication so that has a good deal of benefits because you can't easily tell who is communicating with you it's high latency like I said it has censorship resistance so if you're storing data on across multiple machines it prevents any a single point of failure like unlike a tor hidden service which would typically just have like one server if you're using something like a messaging system you don't need always online so your friend could be offline to send them and you'd still be able to send them a message for them to receive later and in my research on a lot of existing networks I found that they have like strong web components involved like like
built-in web servers and I discovered that you could use a someone's browser and like you embed JavaScript you know like attacker could embed JavaScript on a site and attack their nodes or or I mean their clients so so some examples of that were like different XSS attacks DNS rebinding CSRF and timing analysis attacks I was able to dean autumn eyes users on ITP somewhat a zero net and especially free net there's a many different points of security this is definitely not all of them an anonymous network but these are some of the ones that are most important to me so you want simple attack resistance and for those who aren't really involved in the decentralized space that basically means
you don't want somebody to be able to easily spin up a bunch of nodes and start D anonymizing people kind of quite a lot like what the previous two talk was about something something else that no other network that I know of really has is no day no nominee in my opinion it would be best if you if it was difficult to tell who what exactly was running anode because you know exit nodes can get you in trouble and in any kind of node in some countries can get you in trouble just for running it obviously we don't want arbitrary code execution but like but it seems some projects don't really do a good job of writing secure code so we do
get quite a few of those it's important that we have update mechanisms or or notifications because if there's an exploit then we want to be able to quickly patch it we want quantum safety especially when we're using distributed storage because we we have to consider that things are going to be logged very long term who knows when we're gonna have quantum computers capable of cracking encryption at mass scale though for storage we also want possible deniability so we want to be able to say well I didn't make that it's just always there if anyone's used veracrypt it has like a hidden like container in it that's indistinguishable from random data so it would be helpful within a
distributed network we had some plausible deniability and then we want forward secrecy so if our keys are compromised then we want to we want past sessions to still be secure and then usability is a very big point there's a reason why people don't use tor all the time and there's a reason why people don't use all the other networks all the time and it's simply because they have pretty poor usability they've definitely improved in recent years but it's not ideal at all and in some senses senses it will never get as easy as plug-and-play like a normal browser but we can definitely make lots of improvements so I think one big thing we could do is improve the
install process with these projects and something that I would like to see is more of like an onboarding process as like marketing people would call it and by that I mean we should have like a kind of a tour of the software and kind of educate people better on how these on how these networks work and we obviously we want things to be pretty intuitive but again that's never gonna get 100% we want things to be cross-platform so like free net for example that has basically no mobile support I have noticed that these networks tend to lack good usability on slow or unreliable connections so that really hurts their usability and especially in like third
world countries and we want offline messaging and now what that means is for in the context of like a mail or instant messaging application we want to be able to send messages to people who aren't currently online or won't be online for quite a while for example if anyone's use bit message then you would know that you can't send mail to somebody who hasn't been online in quite a while like use up and you have to like wait for them to come back online and broadcast a key something another important point is was what I call consensual routing so tor for example does not enlist you to be a node by default so it has consent on if you want
to be a node or not and in the context of peer-to-peer applications this yeah a lot of peer-to-peer applications tend to expose your IP address and anybody can kind of connect to you and in like in theory could like perform a denial of service on you like in the past Skype used to use peer-to-peer for video calls and that and led to people getting denial of service and other nasty things so I believe that everybody should get your consent to be able to connect to you it should be like in real life you know you typically want a good reason to knock on somebody's door so and then I think transport agnosticism and statelessness is important so what that
means is like for example with the blockchain you know you have to be lately in sync with the network and in order to be secure well that's not very ideal if you have a slow connection or a highly censored connection so I I think that we shouldn't have any like components or consent or like strong consensus now it's it does have its trade-offs like definitely there are many applications such as like currency and whatnot the do that Doon require state so it's definitely not applicable to everything so this does mean that for my purposes like anything similar to a blockchain is completely terrible but blockchain is terrible for everything let's be honest well that's about all of
the requirements so that really bummed me out when I realized that there was no anonymity network that really joined the best of two worlds of having both good low latency connections for things that need to be fast and high latency connections for things that need to be ultra private and no storage that's available there's there's nothing that combines all that and so that makes me about as sad as Elliot in that picture well to address all this I decided I was gonna have to make my own because it didn't seem to make much sense to start completely basically completely reworking other networks so I called it onion err which means onion relay but it's kind of it's still open to
interpretation what what exactly that means or how to pronounce it it's a it's a really big work in progress I haven't released it yet I'm gonna start making like bundles available but it's not ready for like real world use yet so if I encourage everybody when you get some time to check it out but don't use it for anything in the real world other than just playing with it I've really tried to keep my design with the protocol and the interface fairly simple I definitely a ways to go on the interface but that is the design is very simple I have a very simple storage format that I use to distribute data across the network
I currently I'd use proof of work to prevent spam the the exact details are kind of don't have time for this talk but we're working on like other mechanisms as well like web web of trust and proof of memory as well my just my distribution algorithm and concept is very loosely based on bit message although I use use a significantly different cryptography now I've separated nodes from users so everybody is a node by default but I require conspire consent to store plaintext data and I have the network overlaid on top of tour and ITP so there's multiple layers of protections so if my distribution algorithm is too vulnerable then you'll at least have the fallback
to to learn ITP which as we learned from the previous speaker are not perfect either but at least this way we have multiple layers of protection so I've used my lessons learned from both using a little bit developing and pen testing other networks I've strongly improved my web securities based on vulnerabilities I found in other networks so DNS rebinding and general access to your your local software I take advantage of both latency types via the storage mechanism and be a tunnel tunnel system that we'll get to in a second and I have a well-defined user ID format so anybody can easily build well I say easily but I mean ease more easily than say like on
tour or something can easily build a a relatively safe service on top of it and either distribute it as a plugin or just or just as oversight now I have this ephemeral service tunnel concept where I use the distributed storage mechanism in my network to establish direct tunnels between two points so the best example like best use case example of this would be for like instant messaging so if anyone's heard of ricochet that was like a an instant messenger for tor it's similar to that but it supports multiple devices and it's very spam resistant so like if there was a site hosted via via this concept then it would be very hard to perform a denial of service on the site
and basically how it works is it creates anonymous tunnels of like using onion addresses and regenerates them after every connection is over and it uses the user IDs to authenticate these connections and like verify that there are the tunnels tunnel addresses are correct and I believe configuration should be easy so it's a it's a work in progress but this is a screenshot of my onboarding page so I kind of have a short survey that people can like enter in their questions and like at the top you know I have like sort of a threat model in question it's it's not complete I need to add more available options but you know somebody would finish the
survey you know but I automatically generate appropriate configuration that they of course could then manually manually modify or you could just skip the survey if you're like a power user we just has their config files here's a quick example of a screenshot of one of the included services which is a mail system so I it just uses a user's forward secrecy which and from what I've seen is kind rare and a distributed network it's not as strong forward secrecy as in as you would find in signal but it you have to make trade-offs when you're working with multiple devices and things don't always arrive in order as you can see at the top right there's a like a user ID and
that's what it looks like by default but you can add somebody as a friend that you can see on the menu bar and after you add somebody as a friend you then just see their name instead of that so you only have to work with that key format like ever once per person the key format is in edy 255 1 9 so it's I've been trying to use like pretty modern cryptography don't only have time to go into that here's a QR code and a link at the top the link and the QR code go to the same thing I post updates about my projects and other things on my - Twitter accounts my personal account and my account for the
project so I guess I think I have time for like one or two questions ok so I have time for more than two questions [Music]
well did you see the previous talk that was in this room well that's a really big topic and I'm actually not quite as educated about it as the previous researcher it was speaking but in an it involves either viewing large portions of the internet or running multiple nodes like such such as you know like dozens or like even hundreds or more and over time you can slowly like dean Onam eyes somebody yep yep
I'm not too sure that I understand your question
well the storage network by default already stores encrypted data so it's in order to make things publicly available there's also a plain text storage mode and that's the part that requires consent because it's a little more risky I guess and less accepted by people did that answer your question yep yeah every search type EFS a bit it's a pretty interesting but to me it's mainly a replacement for BitTorrent rather than as like an anonymity network it definitely has some applications that could be used for anonymity but in its state it's really not designed for privacy at all I've actually found a few privacy issues with it
[Music]