log☇︎
71600+ entries in 0.046s
mircea_popescu: * About to connect() to p.bvulpes.com port 80 (#0)
mircea_popescu: in other very sads, the new p.bvulpes machine is VERY fucking slow.
mircea_popescu: bits so then
mircea_popescu: ok, so this back of a digital envelope seems to suggest we want : 1. fixed size 1470 byte rsa packets, made to work with 3920-bit rsa (of which i presume the useful message size to be 1872 bit, diana_coman plox to confirm maffs ?). such a packet has then 1696 bits spare for e and bullshit. ☟︎
asciilifeform: ( farm out to as many cores as you like )
mircea_popescu: the thing is -- new accounts handled "as resources permit" anyway, so...
asciilifeform: fortunately they parallelize linearly
asciilifeform: i expect decryptions will be the principal cpu expense of running a rsatronic box. at least until the fyootoor day of fpga etc
Mocky: ok but if size matches still have to attempt decryption even if contains garbage?
a111: Logged on 2018-10-02 15:50 mircea_popescu: anyway, i have no intention to deal with udp flood at gameserver level.
Mocky: http://btcbase.org/log/2018-10-02#1857302 >> still will be filtering incoming UDP by known IPs and preferred serpent keys though anyway, correct? ☝︎
mircea_popescu: holy shit, what if i can shave it down to 3x ?!
mircea_popescu: diana_coman 2944 bit rsa keys, meaning 1384 bit usable message space in the rsa packet ? with oaep and everything ?
asciilifeform: ( not taking into consideration weirdo lans with 'jumbo' nics etc )
asciilifeform: Mocky: it's the theoretical max udp-over-ethernet aha
Mocky: 1472 is what i've used in the past
mircea_popescu: alright then, ima put 1472 bytes helo packet ; meaning 2944 bit rsa keys.
asciilifeform: well yes, in that sense.
asciilifeform: i can't think of why, but it dun do any harm afaik
mircea_popescu: am i absurd in wanting to start from 1499 rather than 1500 ?
mircea_popescu: ( and btw diana_coman it's entirely possible this will mean republic might well inherit the format, seeing how the problem we are dealing with isn't of our own make -- others will run into it too.)
mircea_popescu: let's calculate this precisely. so what size is my actual payload here, 1468 reliably ?
mircea_popescu: i'm going to re-write the rewrite of comms protocol with this new paradigm.
asciilifeform: fwiw asciilifeform is still sitting on top of a 2048b main key
diana_coman: yes; anyway it's basically a knob to turn, not a big issue in itself
mircea_popescu: but yes, as far as anyone knows 2048 bit keys perfectly safe, now and for the foreseable future (this isn't a comment on koch faux-pgp, which unsafe at any length as well documented in logs qntra and so on).
mircea_popescu: im not sure anyone'd want to use his main key for this anyway
diana_coman: from a practical point of view it does mean that Eulora doesn't use directly TMSR RSA keys though
Mocky: well including udp header, like 1470 to 1480 of payload available
mircea_popescu: suppose i make the rsa packet 1498 bytes. this then means 2996 bit rsa. problem ?
mircea_popescu: of course... if we used smaller rsa keys we could fit in the mtu...
asciilifeform: try it with saturated receiver tho.
Mocky: I'd expect frag and auto reassemble to work well in low volume conditions
mircea_popescu: anyway, i have no intention to deal with udp flood at gameserver level. ☟︎
mircea_popescu: asciilifeform so interface silently and timely reassembled 50kb packet out of 30 fragments ?
diana_coman: so basically what, for as long as attacker can keep flooding , presumably no new accounts although there might still be some that make it through?
asciilifeform: mircea_popescu: there are no frames bigger than 1500 ( aside from exotic lans )
diana_coman: precisely; I think that in principle there is a possibility of that "attack" but I fail to see that it's worth much really
mircea_popescu: diana_coman well, possibly. iirc we didn't specifically check for that.
mircea_popescu: ie, mtu is two things : no smaller frame shall issue from interface ; and larger packets MAY (but don't have to) travel as multiple frames.
diana_coman: mircea_popescu, uhm, they made it through - presumably fragged though?
mircea_popescu: and in our tests, we saw unfragged 20-50kB packets.
Mocky: nope, missed that
diana_coman: but honestly I don't see that to be such a huge problem
mircea_popescu: iirc 20kb packets made it over test
diana_coman: he is talking of the new rsa packets that are biggest
Mocky: e.g. attacker floods with packet frags prevents legitimate frags from ever being reassembled, instead silently dropped, server is none the wiser
diana_coman: Mocky, if I get this right you argue that it's better to do frag internally because can't trust externally to not fuck up the line entirely as attack vector?
mircea_popescu: there's more, somewhere i say "meanwhile people figured out the complexity's not worth the saving" and etc. recurrent topic.
Mocky: ah ok, thx
a111: Logged on 2017-11-14 20:35 mircea_popescu: asciilifeform typical pc has the following situation : 64 bit registers, 128 bit memory, 1024 bit disk sectors, 64 mb video buffers, and atop sitting a drunk driver who thinks 8 bits are a byte.
a111: Logged on 2017-11-22 23:03 mircea_popescu: it's bullshit all the way down, "the 4096 bit block gets cut into 16 sub blocks to be fit into rotorizers that cut each block into 64 bits and process with their 4 bit s boxes". because we're from the fucking cartoons.
a111: Logged on 2018-09-18 14:27 mircea_popescu: what it is is certainly <1kb say. wasting the occasional portion of a kb is not so unlike wasting the occasional portion of a 64 bit register to represent a boolean value.
a111: Logged on 2018-10-02 14:53 asciilifeform: this is that 'bit-packing variables' thing all over again.
Mocky: http://btcbase.org/log/2018-10-02#1857260 I see anything like this in the logs, do you have a link? ☝︎
a111: Logged on 2018-10-02 14:35 mircea_popescu: asciilifeform and the attacker sends you sequence-1 packets. and you hold them. and as i said, "doesn't take so much work to ask me to hold 16gb of chunks."
Mocky: if you accept 16k new-acct packets seems just as easy to http://btcbase.org/log/2018-10-02#1857229 but further, if you rely on external frag-reassm it's even easier for attacker to prevent you from accepting *any* new account packets ☝︎
mircea_popescu: it's funny how "optimization" lures the mind.
asciilifeform: this is that 'bit-packing variables' thing all over again. ☟︎
asciilifeform: i.e. the space saving is illusory.
mircea_popescu: heck, im currently proud i took that 20 down to 13.
a111: Logged on 2018-09-28 05:07 Mocky: http://btcbase.org/log/2018-09-28#1855218 >> players in sight of each other, all getting position updates for all others is *THE* central scaling 'n squared problem' for mmo. 20 byte position sent 4 times per second to 100 players is 8k/s per player. and 4 updates per second is really not enough for good playability when you factor in the round trip lag. 15/s is less draconian (many games send 30-60). 100 players gathered with 15 updates
mircea_popescu: yes but i can't possibly turn http://btcbase.org/log/2018-09-28#1855277 into 4096 bit and live. ☝︎
asciilifeform: so this'd easily cut into 1 process that eats always 4096bit, and another that eats 16kb.
asciilifeform: ( the serpent packets are constrained to simply multiples of 128 )
asciilifeform: so there are 2 fundamental types
asciilifeform: as i currently understand, the only non-negotiably 'heavy' one is the new acct packet
mircea_popescu: i can't have as many interfaces as packet types for crying out loud.
mircea_popescu: asciilifeform the problem degrades gracefully : even if you do have shared rsa key, client sometimes wants to send serpent keys (which go to rsa) and some other times wants to send plain cruft (goes to serpent). so two sizes again
mircea_popescu: server as it stands now doesn't talk to any new people, hence the "talk to mp" thing in client.
asciilifeform: i'd have a separate box for new acct regs, that eats rsagrams..
mircea_popescu: here's the bojum with that : soner or later, you gotta meet new people. the DEFINITION of "new people" is "no way to secret prior". so...
mircea_popescu: see ? it's not that i hate you, but we gotta talk of the same things to talk to any sort of productive end.
a111: Logged on 2018-10-02 14:30 mircea_popescu: this must-have magical packet of 16kb is extremely rare -- basically only sent when new client making new account.
asciilifeform: rereading http://btcbase.org/log/2018-10-02#1857215 -- if you actually gotta take 'new rsa key' from allcomers, and there is no way to have'em know a seekrit bitstring prior , then yes afaik it is impossible to do better than mircea_popescu's algo. ( it is unclear to me what's to prevent enemy from swamping your system with new acct requests and giving you 9000 TB of rsa keys to store, but possibly i missed a detail ) ☝︎
asciilifeform: and pretty sure i grasp the priors. for instance, the proggy i originally wrote the udp thing for, operated in 64kB chunks.
asciilifeform: my observation is strictly in re linux defragger gives you no way to filter, whereas hand-sewn -- would. but it is not my intention to prevent folx from pissing on erry possible electric fence, i'ma leave it there.
mircea_popescu: looky, we're discontinuing this discussion, because you've not taken the time to familiarize with priors and i don't judge it's worth your time to do so, or mine to make you do so.
asciilifeform: ( he can send, but it gets tossed in O(1) )
mircea_popescu: i am not so interested in holding on to chunks of future.
mircea_popescu: asciilifeform and the attacker sends you sequence-1 packets. and you hold them. and as i said, "doesn't take so much work to ask me to hold 16gb of chunks." ☟︎
asciilifeform: the way i'd do it, is to have e.g. 1400 byte packets , and they're authenticated (e.g. client gets seekrit 512bit turd, and keccak(turd + payload) is a field in those 1400) , and ~then~ there is a flag for whether the packet is part of a e.g. 8 byte sequence that gotta reasm, or not .
mircea_popescu: diana_coman do you see a way out of this ?
mircea_popescu: my problem is that i can't ~not~ have 2 sizes of udp packets.
asciilifeform: ( it's a coupla kB typically )
mircea_popescu: nobody here but you is discussing that.
asciilifeform: once you have any substantial traffic density, it'll simply start dropping.
asciilifeform: mircea_popescu: realize that the linux frag reassembler doesn't give you anything near GB buffer
mod6: ben_vulpes: bitcoind has been stopped, and lovelace has been shutdown with `shutdown -h now`. Feel free to pack it up whenever you're ready. Thanks.
mircea_popescu: meanwhile if every single 13 byte posupdate takes 16kb... that's insanity.
asciilifeform: diana_coman: imho i described the problem with using linux's fragger/defragger in sufficient detail, would rather not clutter the log with a repeat
mircea_popescu: if it has to retry a few times not end of world.
diana_coman: asciilifeform, but what's the problem with that? client sends and waits (for as long as it wants) for a reply; whenever it has enough of waiting...sends again; until it makes it
mircea_popescu: doesn't take so much work to ask me to hold 16gb of chunks.
asciilifeform: and that you can then use fyootoor fragless ip stack . is all.
asciilifeform: that you can throw out obvious crapola
asciilifeform: whereas if you rely on the udp fragger, only 1 in 4 chunks does, and the rest are not mechanically filtrable.
asciilifeform: right but if you reasm in own proggy, the chunks actually carry the port # and origin ip.
mircea_popescu: asciilifeform nevermind that. to re-asm you gotta keep chunks.
mircea_popescu: now, if it also has 1 single size, that means the size of all packets is 16kb