No Branch/Tag Specified
feed-list
main
exponential-backoff-feed-fetch
twt_hash_v2
xuu-patch-1
variable_hash_encoding
logout_under_settings
profile_ui
lists_ui
fix_vlun_enumerate_users
footer_overflow
authheadergroups
new_reply_fork_icons
sandstorm_support
Fix_missing_id_for_Poderator
css_icon_Amoled
uiux_darch_backup
uiux_darch
fix_register_spam
ullarah-newtextarea
disable_daily_stats
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.1
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
Labels
Clear labels
Activity Pub integration
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Further information is requested
This will not be worked on
Apply labels
activitypub
Activity Pub integration
area/backend
area/ci
area/cli
area/desktop
area/hosting
area/mobile
area/packaging
area/ui
browser/chrome
browser/edge
browser/firefox
browser/safari
bug
Something isn't working
dependencies
discussion
documentation
Improvements or additions to documentation
duplicate
This issue or pull request already exists
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
on hold
question
Further information is requested
security
stale
tests
wontfix
This will not be worked on
No Label
activitypub
area/backend
area/ci
area/cli
area/desktop
area/hosting
area/mobile
area/packaging
area/ui
browser/chrome
browser/edge
browser/firefox
browser/safari
bug
dependencies
discussion
documentation
duplicate
enhancement
good first issue
help wanted
invalid
on hold
question
security
stale
tests
wontfix
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
5 Participants
Assign users
Clear assignees
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: yarnsocial/yarn#770
Reference in New Issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Problem:
Supporting the notion of "Private Feeds" is something I've wanted to explore for a while now (as mentioned in Future of Yarn.social) -- And over the course of this project @xuu has always wanted at least to be able to Sign and Verify Twts.
A discussion took place on our IRC channel #yarn.social on Libera Chat between @xuu and I and the following is a draft proposal.
Proposal:
# pubkey = ...
Flows:
Encrypt:
Example:
Decrypt:
BEGIN SALTPACK ENCRYPTED MESSAGE
and attempts to decrypt it with its Private KeyVerify:
# signature ...
and attempt to validate those signatures against the Feed's Public Key (as specified in the Feed's Metadata Preamble)Questions:
Keeping the timestamp in clear makes this somehow compatible with the twtxt format, however leaks meta information of course. Not sure whether this is a concern to you.
Other than that one could think about whether twtxt is the right vehicle for that.
True, but this has the same argument as Delta.Chat that leaks the RFC 2822 ehaders
Again, same argument can be applied to Encrypted Email using GPG
@xuu Feel free to chime in 😅
One thing to keep in mind however is; this is an "extension" and 100% opt-in.
One thing I did not make very clear, which came to light in discussions between @lyse and I on IRC on #Yarn.social on Libera Chat:
To be super clear here; This means the Private Key is stored with (for example):
yarnc
command-line client in say ~$HOME/.yarn/`twtr
,tt
orjenny
decides sensitive material/keys goes.Under no circumstances would a Yarn.social pod ever see, know about or have posession of a Pricate Key.
I think encrypted twts is a great idea, especially as opt-in. The way I personally would find this useful is if this is opt-in within the twt while composing it, rather than a blanket opt-in per account (maybe both so people can encrypt all of their twts without having to mark them individually?).
Use cases that this would be very handy for:
I don't see any downsides to this as it would be opt-in and the end-user wouldn't know encrypted twts even exist.
I’d be very much in favor of TOFU here. All the other models have always caused headaches.
I’d say that it’s important to not include the subject hash in cleartext.
If the hash was out in the open, an observer might end up seeing two people exchanging messages in a thread. Those messages would all be encrypted, yes, but the observer could still know who’s talking to whom.
I usually handle secrets by asking my password manager. So, for example, the config file of
jenny
would include a line likesecret_key = "pass show twtxt-privkey"
.jenny
invokes this command and uses its output on stdout as the secret key.By offering a generic bridge, you can basically support whichever password manager you like and you never have to care about store those delicate secrets.
This doesn’t have to be added to the spec, I just want to spread the idea. 😅
My personal take on this:
At the moment, I think I wouldn’t implement encryption in my client. While this feature would be very useful for Yarn.social (because I suspect that users expect a “send a private message” feature), it is out of scope for my use cases. For me, twtxt is a public platform – if you want to send private messages, then just send me a GPG encrypted e-mail. Or even an unencrypted one, which might be good enough if you’re not sharing stuff like your bank account.
Signing my feed is a bit more interesting to me. I did that using GPG for a while, you probably remember. 😅 I’m not sure if it’s really necessary, though. If someone hacks my server, they have better things to do than to fiddle with my twtxt file. Basically, my twtxt file has the same level of “trust” as my blog posts, which aren’t signed, either (maybe they should be?).
(Would I prefer GPG over Saltpack? At least as an additional option just for signing feeds? Hmm. Dunno. I like that I have already set up GPG and, honestly, it’s not that hard to use, especially when you’re just verifying signatures. But I wouldn’t want to implement GPG key handling in a twtxt client, hell no – that would have to be an individual component, which would work fine for
jenny
, but that’s probably not an option for Yarn.social.)Agreed, wasn't aware it was called
TOFU
.Thd downside of this is we lose (_I think I mentioned this somewhere-) the capability to group Twts together into a collection (we call a Yarn).
If we decide everything must be encrypted, including even say the timestamp, then perhaps a per-Twt encryption model isn't suitable here and instead a whole-Feed.
@movq I agree re the management of Private Keys. Defer this to the User and/or the User's Key Management software.
@movq Some final thoughts on this form me based on yor own final thoughts 😅
And finally -- I agree Twtxt/Yarn was and is meant for public consmption. That being said though I see no reason Yarn.social specifically can't have encrypted feeds as long as we a) do it correctly and b) it doesn't get in the way of others that don't use or don't spport encryption.
Signing on the OTOH I see as a "good thing" and this is probably something we can do as a "first step".
You are right abot the "Just send me a GPG encrypted email. Do I ever have your GPG key? Hmm 🤔" or "Just send me a normal email", however there are lots of good/valid reasons to try to bidl this, even if it's only a feature of
yarnd
.@xuu / @lyse / @movq Shall we park this and move it to 0.17? What do we want to do here? Get signed Twts going at least? 🤔
I don't have any need for either of them, so all decisions are okay. :-)
Oof. 😅 I pretty much forgot about this topic. I'm with lyse on this one. 🥴
I'd like it as Proof of Concept or something to play with, but I don't think we'll use it that much.
Then let's close this. Salty IM exists anyweay and is better suited to "private chats".