log☇︎
180100+ entries in 0.84s
mircea_popescu: no peers introduce themselves though. at all.
Framedragger: situation is different if the point is for peer A to newly introduce self to B. then (sina) "unpredictable lighthouse" is important because it sets a limit to how many auth strings can be used.
mircea_popescu: prolly should separate the re-discussing of that from the guy trying to comprehend the spec
mircea_popescu: you know, the lighthouse idea, while an idea, didn't actually get included.
Framedragger: mircea_popescu: i fucking can't reckon right now why output of lighthouse has to be unpredictable. damn it :D *if* all packets are signed with peer keys that receiving peer already has, timestamp with defined validity window would avoid replay... (http://trilema.com/2016/gossipd-design-document/#comment-119045)
a111: Logged on 2017-06-28 01:45 Framedragger: sina: fwiw (he can speak for himself but to save you time), asciilifeform does not like sessions [ever|anymore], and considers them ugly beasts which won't have a place in his gossipd bed
mircea_popescu: http://btcbase.org/log/2017-06-28#1675565 << the problem with the concept of a "session" is that it attempts to link machine state to world state. this is a very tenuous proposition, and the fundamental reason why sessionificatyion of (the correctly designed) stateless http protocol failed for 30 years straight and will continue to fail forever. ☝︎☟︎
a111: Logged on 2017-06-28 01:28 sina: asciilifeform: can you clarify, *all* comms? when I was implementing my first pass at encrypting comms yest, I found that at least the very first message when a peer connects as a client would be plaintext, i.e. "hi I'm A", otherwise the "server" would need to enumerate all its keys to find if it knows the peer?
mircea_popescu: http://btcbase.org/log/2017-06-28#1675543 << yes, server looks through its keys. ☝︎
a111: Logged on 2017-06-28 01:19 sina: in current model, operator can write a message and claim it is from anyone and "publish" it to their own message store. when peers connect, the messages since last seen are delivered, each encrypted with a peer-pair unique RSA key. so as the message "progresses" between peers it gets encrypted, then decrypted and stored in each peers message store in plaintext
Framedragger: sina: right, re future, i didn't make sense there
mircea_popescu: well now ima have to read this whole thang
sina: unless all responses are identical for all peers, which would make them plaintext
sina: also I can't see how the model can be *completely* stateless, there will always be some kind of minimal session which is "hi, I'm A" followed by a response tailored to A
Framedragger reading how asciilifeform described the packets, if at all, because forgot
sina: I'm not sure I understand how you can craft packets in advance if they need to be signed
Framedragger: i guess he'd say "read the article [implying read the comments, too]"
sina: Framedragger: really appreciate your patience, I get the feeling asciilifeform would be shouting at me again by now
Framedragger is "recall vs. just think about it" mode
Framedragger: let me recall why that is super important lol; but the unpredictability of the auth strings coming from lighthouse is important
Framedragger: because you can predict the future of such a lighthouse, hence craft any number of packets in advance
sina: you can't replay timestamps outside of a certain window +/- 0.5s or something? ☟︎
sina: why not just sign the current UTC timestamp
Framedragger: well i guess it's the same thing, kinda
Framedragger: yeah, so this avoid replay but also sets a limit to how much DoS exposure you have (one of the limits, at least)
Framedragger: i believe this relates to asciilifeform's "traditional challenge-response creates DoS vector". so with a lighthouse auth string, one more important point is that a particular auth string cannot be reused.
Framedragger: (btw the challenge strings may be in something else than plaintext, all depends on lighthouse and medium)
sina: but why can't A just sign any random bytes? why does it need to come from the lighthouse?
Framedragger: mircea_popescu had concerns re. "signed", but iirc the concept of "station key" (vs. "mega important owner key") helped there. not sure if entirely resolved, tho
Framedragger: A and B may then decide to enter some different "state" but the general gossipd design is stateless, i.e. there is no session
Framedragger: yes i think so, and note that there is a time window there re. how recent challenge string has to be, to avoid replay. i.e., those strings expire. and yes that's how you send a msg to B iirc
sina: if I'm operator of peer A and want to send a message to peer B, what do I do? pick one of my stored challenge strings, sign it, send it along with my message?
sina: and nodes are receiving and storing those challenge strings
sina: so we have a lighthouse thingo broadcasting some random bytes as challenge strings in plaintext
sina: Framedragger: can you bear with me for a few questions or were you going to bbl?
Framedragger: so in that sense it's not your traditional challenge-response. again, sorry if repeating
Framedragger: ("well ok, let me generate this one just for you, and this for just for you", vs. "i'll generate this many auth strings per time unit, and distribute them to this set of destinations (or "shit them out via radio"))
Framedragger: so there's no way to DoS peer B with "hi plox to send me an auth string, i'm totally legit non sybil node"
Framedragger: the point is that auth strings are sent regardless of whether the connecting peer (A) wants them
Framedragger: "in all directions" depends on medium. in radio, it's clear; in packet switched networks, could be a list of broadcast addresses to send auth strings to (constantly), etc
Framedragger: note the important aspect which lighthouse introduces: constant stream of auth strings, "in all directions"
sina: well, the next line is literally "This variant is not, incidentally, intrinsically incompatible with Mircea Popescu's - conceivably he might choose to hand out auth challenges to all-comers, while I operate lighthouse; while retaining the other basic mechanics."
Framedragger: yeah, though note that the lighthouse may for all intents be node C there
Framedragger: tl;dr asciilifeform described a way for peer A to provide a challenge-response to peer B in a way which would not require any communication from B, hence not creating a DoS vector
sina: "To craft a valid packet, a sender must collect a single auth string from the receiving node's lighthouse (via whatever means, can be a shortwave tuner), craft auth with it as described by Mircea Popescu earlier, encipher to receiver's RSA pubkey, and send." ?
Framedragger: did you read the part about lighthouse based challenge, though?
sina: I guess I'll wait for some clarification from mircea_popescu ? challenge/response is a session based concept even ignoring the older post
Framedragger: (i know it's a hella lot of comments under the newer article but iirc his "DoS magnet!!" points are addressed there)
Framedragger: sina: fwiw (he can speak for himself but to save you time), asciilifeform does not like sessions [ever|anymore], and considers them ugly beasts which won't have a place in his gossipd bed ☟︎
Framedragger: (but then, the newer article clearly states "This is an up-to-date draft specification for gossipd", so i'm not too sure about that, either)
Framedragger: sina: to clarify (hopefully lol), that ^ is for all intents and purposes outdated. asciilifeform did say "original mp algo". that said, i'll agree if you say "you guys have a documentation problem omg"
Framedragger: (ah in fact a bit up the stack, http://trilema.com/2016/gossipd-design-document/#comment-121602) ☟︎
sina: ok thanks all
asciilifeform: in other mircea_popescuine treats, http://lleo.me/kamasutra/index.htm .
Framedragger: afaict gossipd model assumes that some rsa keys had been exchanged out-of-band. traditional challenge-response has been constantly critiqued by asciilifeform via "it's a DoS vector" argument (sorry if too curt, am in bed)
Framedragger: i even raised a (nonsensical) "but-t-t time complexiti!" concern re this
Framedragger: in fact that's a question i asked in comments, sina
asciilifeform: ( this is not in mircea_popescu's article but is imho elementary. )
sina: then is there a need for a challenge at all?
asciilifeform: and in fact goes through ALL OF THEM, to avoid leaking timing.
sina: asciilifeform: can you clarify, *all* comms? when I was implementing my first pass at encrypting comms yest, I found that at least the very first message when a peer connects as a client would be plaintext, i.e. "hi I'm A", otherwise the "server" would need to enumerate all its keys to find if it knows the peer? ☟︎
Framedragger: god it's like quoting talmud at this point :D (i mean the long comments etc)
asciilifeform: if you think about it.
asciilifeform: Framedragger: you get this 'for free' from the normal relay mechanism
asciilifeform: 1) original mircea_popescu's algo: http://trilema.com/2015/artifexd-a-better-ircd-rfc 2) the newer: http://trilema.com/2016/gossipd-design-document
Framedragger: asciilifeform: sure, but (plz don't vomit from use of keyword) there should be a way to onion-rsa them, too (A encrypts to C's key, then encrypts to B's key and tells B to relay to C which is currently offline, or w/e)
Framedragger got confused from article, too (hence not opining re gossipd currently)
Framedragger: in fact i'd imagine that gossipd should ideally allow for arbitrary end to end encryption, would be up to operator?
asciilifeform: i thought this was pretty clear from the article.
asciilifeform: sina: if you're asking re mircea_popescu's algo -- then yes
sina: so the answer is "the program should allow for both behaviours"
asciilifeform: the former - as the 'stored, relayed'.
asciilifeform: Framedragger: in mircea_popescu's gossipd algo, there are 2 types of messages, ordinary and private. the latter behave as described above
sina: Framedragger: thanks, exactly what I meant
Framedragger: intermediary peers won't be able to decrypt message in the latter model, asciilifeform
asciilifeform: sina: how do the 2 models differ ?
sina: should the operator be encrypting the message for the final recipient and then publishing that ciphertext?
sina: what I'm asking is, does that behaviour match the intent? OR
sina: in current model, operator can write a message and claim it is from anyone and "publish" it to their own message store. when peers connect, the messages since last seen are delivered, each encrypted with a peer-pair unique RSA key. so as the message "progresses" between peers it gets encrypted, then decrypted and stored in each peers message store in plaintext ☟︎
sina: mircea_popescu: patience appreciated while I attempt to rephrase question.
a111: Logged on 2017-06-27 13:08 mircea_popescu: http://btcbase.org/log/2017-06-27#1675077 << there's no intention that there would be plaintext anything, wtf.
sina: http://btcbase.org/log/2017-06-27#1675078 << my, I seem to have trouble phrasing my questions correctly :( ☝︎
sina: mornin tmsr
asciilifeform: http://lleo.me/arhive/humor/skazki.shtml << d00d's 'fairy tales'.
asciilifeform: by the author of, e.g., 'the random number merchant'
asciilifeform: ( https://lleo.me/pesni/text/dos.shtml << full text. )
asciilifeform: to trick systemd-resolved in to allocating a buffer that's too small, and subsequently write arbitrary data beyond the end of it.'
asciilifeform: in other, not wholly unrelated, lulz, '...out-of-bounds write in systemd-resolved in Ubuntu, which is possible to trigger with a specially crafted TCP payload. ... Certain sizes passed to dns_packet_new can cause it to allocate a buffer that's too small. A page-aligned number - sizeof(DnsPacket) + sizeof(iphdr) + sizeof(udphdr) will do this... A malicious DNS server can exploit this by responding with a specially crafted TCP payload
a111: Logged on 2017-06-27 23:18 lobbes: "Many folks expect to have some way of viewing and using emojis" heh
Framedragger: !$talk about "no such thing as too big"
Framedragger: i mean, scriba was supposed to have an mp emulator chatbot, so i'll keep it in mind :)
mircea_popescu: i got a whole silo fulla these btw, if you need.
mircea_popescu: netflix interprets maersk as damaged and just routes around teh censor ships!
Framedragger: healthy perspective to have, i guess
Framedragger: :p what, the shipping company? ha
mircea_popescu: not like they were needed anyway!
Framedragger: btw maersk (some related ports) is down due to new "ransomware" (orange website says it's the same nsa "eternalblue" windows vuln) ☟︎
mircea_popescu: it's indubitably there.
Framedragger considers posting a bet re. this
Framedragger: calling it: "serious linux desktop RCE discovered related to emojis" (memory mismanagement or related) (exact words in quote may differ)