3 ms·
I rarely use IRC any more and I used to run some small IRC servers. Most moved to Discord but I refuse to use such platforms for their abuse of retaining both
by LinuxBender 4y ago
I rarely use IRC any more and I used to run some small IRC servers. Most moved to Discord but I refuse to use such platforms for their abuse of retaining both text and voice transcription chat history forever. Discord voice transcription can run silently in any public or private channel and nobody can prove otherwise. This was not impossible on IRC but far less likely. Public channels were recorded with publicly visible bots that had permission to be in the channel. Some IRCD's had modules that would allow a NetAdmin to monitor private chats but that can be mitigated with clients that support OTR.
Nowadays if I need to spin up a chat with people I know I just give them a shell function that utilizes a self-hosted instance of devzat.
# uncensored chat using self hosted https://github.com/quackduck/devzat.git
# add to .bashrc or /etc/profile.d/functions.sh on a VM somewhere
function chat()
{
# make us a temporary nickname
Name=$(base64 /dev/urandom | tr -d '/+' | dd bs=12 count=1 2>/dev/null)
# make us a temporary throw away ssh key. key is our ID.
ssh-keygen -q -t rsa -b 2048 -N "" -C "${Name}" -f ~/.ssh/.chat_"${Name}"
# add +ssh-rsa in the event client restricts weaker ciphers
ssh -i ~/.ssh/.chat_"${Name}" -p 22 -4 -o "HostkeyAlgorithms +ssh-rsa" -o "PubkeyAcceptedKeyTypes +ssh-rsa" "${Name}"@23.239.0.70
rm -vf ~/.ssh/.chat_"${Name}" ~/.ssh/.chat_"${Name}".pub
}
If things go sideways I just nuke that instance and what little chat history the daemon had is gone.
- ilyt 4y agoUh, IRC didn't even had encryption and anyone in IRC chat can still record everything just fine. That's so weird thing to have issue with.
- LinuxBender 4y agoIRC has had encryption for a very long time. IRCS is typically on port 6697 but some admins also have it listen on 443 for people behind fascist firewalls. anyone in IRC chat can still record everything just fine I addressed this. Yes, someone can invite a bot in a channel they control and the channel operators can kick/ban a bot. Also people can achieve E2EE encryption using OTR. So in fact there are two layers of encryption, one of which individuals control and the IRC admin has no visibility into. There is an unsupported OTR custom client for Discord but it is against the terms of service. Discord on the other hand has visibility into everything and no way for users to know this. Anything said on Discord in text or voice is a permanent transcription record. People are made to believe they can delete messages, but they are just flagged as deleted in Cassandra. If I want a private voice conversation with someone or a group, I invite them to my private uMurmur server. There are clients for workstations and cell phones. Some people won't use such things and those are not people I would likely ever talk to anyway.
- vasqw 4y ago>IRC has had encryption for a very long time. IRCS is typically on port 6697 but some admins also have it listen on 443 for people behind fascist firewalls. Transit encryption maybe, but admins can still read everything.
- LinuxBender 4y agoYup like I mentioned there are modules that allow snooping. This is why if people truly want privacy they need to use a client that supports OTR add-ons providing end-to-end encryption. Pidgin is one of them. Another option would be for each small circle of friends to run their own uMurmur or ngircd servers, then at worst the admin would spy on their friends. ngircd can be spun up in a few minutes, even faster if one already has some LetsEncrypt keys for a domain. uMurmur can also be spun up super fast on a linux home router.
- quackduck 4y agoHiii, I'm the person who made devzat. Devzat supports a "private" mode in which only some IDs you specify in the config file are allowed to join. In that mode, it disables the 16 message backlog on #main too. It seems like that would be a good option for you, but it looks like you're having the people you know gen new SSH keys every time (which is what IDs are based on). I'm curious why. Would you have liked a standalone preference for whether to have a backlog? What features would you like / what things could be improved? Always interesting to see how devzat is being used.
- LinuxBender 4y agobut it looks like you're having the people you know gen new SSH keys every time This is just an example of an ephemeral implementation of your chat system. Spin up a node, have some people play around with it, communicate whatever they wish then destroy the node in the sense of destroying a VM. One could certainly leave it running and people could use persistent ssh keys like you do on your instance. Using ephemeral ssh keys implies more aspect of anonymity assuming one connects from a short-lived VM. People could of course adjust my example shell function to not remove keys and to use a persistent nick-name. Would you have liked a standalone preference for whether to have a backlog? That sounds like a great feature/configuration option. Maybe even allow a admin-defined backlog size for people that want persistent instances. What features would you like / what things could be improved? I think it is great as-is but that is just my personal take. For me, simpler is better. I appreciate that you added a configuration to disable external integrations. Less specific to devzat but more specific to golang would be to have default compile-time hardening options. I am impressed with how nice you made it look with the color schemes. Perhaps others here will play around with it and offer suggestions. SSH based chat is not super popular which really surprises me. I could see devzat being an amazing fall-back for a private chat inside a company when Slack or Discord are having a moment or for those times when people want to say something that isn't recorded forever and especially not visible to their management. I think it would also be amazing for people in oppressive regimes that block access to all the mainstream chat platforms but allow SSH to specific VPS providers.
- quackduck 4y ago