• 4 Posts
  • 21 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2024

help-circle
  • when it comes to secure messaging, self-hosting is generally encouraged… while not quite self hosted, it would make it easier for the majority of users to get started.

    users can choose a git storage provider of their choice (GitHub, Gitlab, etc), or host their own git server.

    for self hosting it’s overkill but makes deployment easier. You can choose any git provider.

    I introduced git as an replacement for peerjs in my project. I describe my app as a “decentralised P2P messaging app”… Using peerjs introduces a centralisation in an otherwise decentralised architecture. It also has the additional advantage of allowing users to send messages when peers are offline. Previously not possible with the pure webrtc approach.


  • I’m genuinely curious. Can you elaborate?

    I’ve seen vibecoded slop too. To avoid it being mistaken for slop I created documentation, tests, etc.

    Perhaps individuals shouldn’t be allowed to make cybersecurity software. You may understandably want this done by a group of experts.

    Getting traction on any project can be hard and I’m curious what nuances I might be overlooking.


  • I’ve approached OSTIF.

    “Sadly at this time, OSTIF is unable to provide you with security work. We wish you and your project the best of luck and much success to come.”

    They suggested to take a look at opentech.fund … Similarly rejected.

    “We very much appreciate your submission to the Open Technology Fund (OTF) for consideration. Upon evaluation, we have decided that OTF is not able to provide financial support for your project at this time.”

    Going close source is a fairly recent change in direction for my project. I hope it’s more clear why Im not going to bet on support by open sourcing my project.

    It certainly isn’t enough for the cryptography alone to be secure. Cybersecurity is full of nuances when it comes to the supply chain. Concerns around apps like mine running on untrusted browsers sits in contrast to something like the Signal app running on untrusted hardware/OS/networks.

    When talking about the supply chain vulnerabilities, security can be easily undermined if you have screen sharing malware on your device. Neither browser or native app can protect against that. As a browser app, you have more flexibility in choice of browser and OS compared to something like Signal.

    The rust approach is intended to further break out of that limitation (albeit close-source, unaudited, etc).


  • I didn’t mean to confuse audits and funding. I meant grant funding could be used to get a security audit.

    Ive applied to several. I got an email the other day from NLNet to say they had a record breaking number of applications which is why they are taking so long to evaluate… It’s not my first time applying there. I expect they will reject the project (it’s for the signal protocol project).

    JavaScript has a lot of rhetoric against it being used for cryptography. I’ve tried to justify the approach, but it was an uphill battle from the onset. My approach is still unique in that it can run locally from index.html without a static server. It’s further explained here: https://www.reddit.com/r/CyberSecurityAdvice/comments/1ev5kqn/is_this_a_secure_messaging_app … That version of the project is deprecated.

    Glitr as seen in the main post above, is written in Rust. Not only avoids concerns around web crypto, but also being able to build for multiple platforms. I’m aiming for native build as well as a TUI. (I’m only promoting the webapp because I want to focus on that version first). The main reason for Rust is that there is more mature tooling around cryptography and formal verification.


  • (Sorry for this being so long… Feel free to reach out for clarity on the details. Long-story-short. Sure those orgs exist… But they aren’t rushing to fund projects that are simply open source)

    You’re over simplifying. So let’s add some context relative to this project.

    I have several open source projects. This project started off open source and I keep the version open source because it demonstrates a fairly unique concept around avoiding installation and registration.

    https://github.com/positive-intentions/chat

    I handcrafted that version. It’s open source with the commit history. It was before the days of agentic AI. I spent countless hours considering countless details. I could spend countless more on improving the quality there for things like unit tests.

    I had something reasonably unique and so I tried to apply for funding. I tried very hard, several places, several times. All rejections.

    Grant applications are a horrible experience. It’s not something I had experience in before and it carried a exhausting learning overhead… But if I could get funding, it would be worth it. As AI become more prominent, I’m sure these organisations are overwhelmed with how many submissions they have.

    My conclusion is clear; if it’s been this hard to only receive rejections, I’m no longer going to bet on open source. It’s clearly not a good business plan.

    I consider myself a seasoned developer. So as I’m working on my project, I’m taking on feedback and made improvements throughout.

    I still believe in things like kerkhoffs principles. So as part of the continued development, I created a version of the signal protocol.

    https://github.com/positive-intentions/signal-protocol

    I aim for it to be for production use, but without a third party audit, open source is worthless. When sharing it online, the conversation cannot move past that it’s created with AI. It undermines all the time and effort I put into it. I created things like formal proofs/verification and security audits. I kept all the documentation honest that it was created by myself with AI. I think the approach is honest and transparent.

    I see the project is well received in various subs, but the cryptography subs that can actually understand what I created, I just risk being banned for sharing AI slop… And thus this close source approach.

    Going close source is particularly ambitious because there is an element of “trust me” to it (I don’t like it either)… but it appears to be the only way to proceed at the moment.

    I don’t need it open source so people can debug my code. I open sourced it previously for discussion… I now realise my project is simply too complicated to discuss. It’s not for lack of trying.



  • You right. It’s slow and unoptimized for it. There is a clear reason this isn’t a popular approach.

    In the messaging app, I started off by making it so it worked with local-only data. It works over webrtc. I added bells and whistles like the signal protocol and multimedia messaging, but it lacks the ability to send messages offline (because webrtc).

    The git approach can allow to publish encrypted messages for peers so when they come and online and your aren’t there, it can decrypt a payload specific to them.

    With git, it’s hardly instant messaging, but I’m working on a feature where git can act as a peer-broker to establish a webrtc connection.

    The git approach also would mean that it could work over tor with the signal protocol encryption (albeit hardly instant messaging).

    It’s a fairly unique approach and there are countless details to consider like how group-messaging would work. So I’ll confirm it isn’t ready to replace signal or any other app/service.

    “Vibecoded” doesn’t quite have the bite these days. I’ve clearly used AI, so let’s get that out of the way. In my open source projects I tried to provide code, documentation, live examples. You can find out more about the open source projects at: https://positive-intentions.com/

    Feel free to reach out for specifics. While this project is not open source (yet?), I am still trying to make some comprehensive docs.








  • That’s right. Git as an offline cache. When you read a peers message, you can also update you own git repo to say you read it, and so when the peer comes online they can update their side to delete the messages (keeping the size small)… Going further against the grain, the app doesn’t care about the history of messages deleted, so I expect to add things for purging history.

    I considered the Blockchain, but i think the git approach is better. It’s hard to describe what I’m imagining. I’d like to put together a demo when I get time.

    I have a full-ish description of the protocol.

    https://positive-intentions.com/docs/technical/whitepaper/complete-protocol-spec

    Instead of reading that, if you really want to know more, I would suggest you ask me for clarity. (Nothing about this git approach is mentioned there.)


  • In my app I’m aiming for minimal steps to get started. The frontend is a pwa which works out the box as a webapp.

    There is a focus on local-first storage. When connected over webrtc, no backend storage is needed.

    This approach with git would be optional. Users have frequently asked about the ability to send messages offline (a completely normal expectation for messaging app). It seemed like a hard limit until this idea with git. My app works without this feature, but with nuanced tradeoffs.

    If I host a git-sever myself, but that would be centralising my project.


  • In any case it wouldn’t be on my account. It would be great for users to self-host. Things like GitHub would only make it easier to get started to test things out.

    Why would they ban my account? That would be unsettling. I’m a developer. The code itself is fairly basic git stuff.

    My project is hardly popular, but if it gets there, I’m sure it would impact githubs performance. Would the concern be that my app ddos GitHub? I can explicitly prevent remotes like GitHub if necessary.


  • I’m happy to advise people to self-host a git server. That would be ideal. The ability to do it on GitHub or codeberg would only make it easier to get started. I can put logic there to prevent using a remote with from GitHub if necessary.

    In any case, it wouldn’t be on my git account.

    This is all ultimately for my project which is a fairly unique approach to secure messaging. I’m trying things out.





  • in my project there is a focus on client-side storage. i hope it doesnt ever get to 10GB. as messages are published/read, the git DB is cleared as appropriate. i dont need the git history so i’ll do what is needed to reduce the data consumed. i dont expect it to get to that 10GB capacity, that isnt its purpose and thats a bridge i dont exprect to cross any time soon.

    your absolute right about there being alternative ways to do this. i specifically want some thing a user can manage. my app right now doesnt have offline-capabilities and this is an approach to introducing that capability. using a http server would be centralizing an otherwise decentralised architecture.

    i have given it some thought and i think this is the only way it makes sense for me to introduce offline messaging without centralizing.

    the project is pretty complicated and its difficult to describe how it would work without an exampler so id like to share the initial idea here before i try things out to demo.