« first day (3120 days earlier)      last day (2058 days later) » 

07:57
Become a pentester, they said. It's a great job, they said.
You'll be on-site for months, have 13-hour-days constantly and have 3 hours every day to spend time with your girlfriend
I mean, I love the work, but not the job
Screw it. Let's do this
 
3 hours later…
11:35
what are you going to do about it?
I kind of feel like im in the same situation. Well, i guess i have less pressure than the 13h per day quota
on a side note, has anyone noticed that https://nvd.nist.gov/ is down?
it's down on the day i need their json feed :(
12:03
@HamZa Not really anything. I'll keep working to sustain both me and my gf, until she finally finds a job. Then at least I can reduce my weekly hours
 
9 hours later…
21:02
@Rick Or... you could use a pepper to get the same thing.
21:43
@NicHartley Depends on the question, really. We don't do homework, but we can certainly point out potential flaws in a proposed scheme, if the question is well-written and specific.
There are a lot of well-received questions that amount to "is there anything wrong with this idea?"
Well if it's specific to cryptography, then Cryptography would be better, but they don't accept "analyze this scheme" questions.
@NicHartley Well I see a [code-review] tag.
There are also tags for threat modeling.
So an encryption protocol?
Such a question might be too broad if you aren't asking about specific attacks.
Or if you don't have a very specific threat model.
With a threat model, it sounds close to the topic... Topic adjacent, at least...
Like, this is a very basic and high-level threat model for TLS:
And there are multiple hundred-page reports on its implications.
Which just goes to show how complex protocol security can be.
Why not use an existing protocol though?
There's nothing wrong with using TLS itself.
@forest They answered earlier: It's a toy project.
ah
Read the TLS1.3 RFC, specifically the section on design decisions. It is quite helpful if you're designing your own protocol. You'll learn why it's so important to use a different key for traffic in each direction, for example, as well as how to handle nonces and authentication and all that.
The SSH encryption protocol is also useful to read up on, but it's not as well documented.
Encrypting data in-transit is far harder than encrypting data at-rest, because you have to deal with an active attacker, so all sorts of new threats become relevant (replay, reflection, etc.).
I could write secure file encryption software in my sleep, but it'd take some serious effort and a lot of thought to design a new encryption protocol against more than the most trivial threats.
@NicHartley Yeah, SSH is a pretty crazy protocol.
Well TLS is in a layer that's agnostic to the underlying protocol.
It can be used over pipes, packets, messenger pigeons...
Although it does have some basic assumptions that the underlying protocol is packeted, as evidenced by its support of TLS record fragmentation.
22:00
I imagine the handshake of TLS/Avian Carrier is even worse than the TCP/IP/AC April 1 rfc... tools.ietf.org/html/rfc2549
Well you need something between IP and TLS, even if it's a protocol more basic than UDP.
Though I guess you could use it directly on top of IP, but it would be weird.
huh
So like IPIP, GRE, MPLS, that kind of thing? A transparent tunnel?
@NicHartley They're basically an ultra-simple version of OpenVPN, sans encryption.
A TOR-like network? Or a series of proxies?
@NicHartley Oh my, that sounds a lot more like an anonymity network.
Those are exceptionally complicated.
Probably the most complex subject for a toy project I've ever seen. :P
It makes TLS look like child's play!
This site might help you: freehaven.net/anonbib
It's a collection of research into network anonymity and related protocols.
And here, my toy project is end-to-end encrypted file backups to cloud servers, to mitigate ransomware attacks... Obviously I'm not thinking nearly grand enough.
My toy project is even sillier: replacing malloc in glibc and musl.
Though I have a lot of more complex projects I haven't started yet because... hardware.
Still need to play around more with JTAG and learn me some EE.
22:19
The limits of my knowledge in that area are: arduinos make it easy to control a couple servos and flash a couple LEDs... and getting anything meaningful to show on a screen is hard.
The kind of hardware I'm interested in is consumer stuff like hard drives.
I've been planning on REing some hardware firmware and modifying it to add anti-forensics.
Something akin to port knocking, but in an HDD. Sector knocking?
Read a few specific sectors in the right order using the ATA read command directly before reading anything past the MBR. Any reads past the MBR without knocking would trigger ATA Security Erase.
Interesting. First use case I could see for it would be portable hard drives. Don't plug it into a computer that you don't have customized drivers for it.
Indeed. Plugging it into virtually anything else will cause it to wipe itself.
@NicHartley Nah, just use self-modifying code to remove the check after verification.
No need to have a constant comparison "am I allowed to read this sector?" at each read.
Yep, once the computer is authenticated through the sector knocking, it should stay authenticated.
At least until next power up.
The nice thing is that it could easily defeat forensic disk imagers as well.
While wiping, return any read attempt with a sector of zeros encrypted with a counter.
Makes it seem like the disk contains an encrypted image, but it's just deterministic random.
Yeah but firmware is very space-constrained.
Self-modifying code is sometimes easier when you can't add even a single byte.
@NicHartley Sure, by optimizing existing code or removing unnecessary code.
Of course not all firmware is limited to a specific size, but some is.
idk I've just seen a lot of self-modifying code in firmware mods so it's what I first thought of :P
Most I've done is some MIPS programming. I just like reading up on that stuff.
22:36
My project's big question is, how do I keep a list of files (including versions of files), and serve it to the end user in an efficient way, without me being able to infer anything about the data, including metadata about metadata... And without them needing to supply their private key to the client-side program on bootup/file change -- only need it when restoring from backup?
I've got a nice long weekend ahead to puzzle that out, though... :D
Well you'd need to supply the private key if you want to do client-side crypto.
Client side would create a large symmetric key, encrypt that key with their public key... Use the symmetric key to encrypt files directly (and provide the encrypted version to the server for backup purposes). In order to decrypt the files, you'd need to decrypt the symmetric key's backup. That's the only time you'd need the private key.
As I said, there's a long weekend for me to think it through. The one thing I don't ever want is responsibility (culpability) for someone else's data.
Duplicity does something like that.
It does incremental client-side encrypted backups.

« first day (3120 days earlier)      last day (2058 days later) »