HN user

beefhash

6,083 karma
Posts353
Comments469
View on HN
yakshav.es 5y ago

Donald Knuth – The Patron Saint of Yak Shaves (2015)

beefhash
7pts0
catb.org 5y ago

The Lost Art of Structure Packing

beefhash
15pts0
dmitry.gr 5y ago

PokéWalker hacking: A complete device takeover and ROM dump using infrared

beefhash
149pts16
medium.com 5y ago

Baby Sharks: Injecting small order points to threshold EdDSA

beefhash
1pts0
dukope.tumblr.com 5y ago

Localizing Papers, Please (2014)

beefhash
1pts0
www.j-core.org 5y ago

J2 open processor: a clean-room open-source processor using the SuperH ISA

beefhash
2pts0
github.com 5y ago

ed(1) in Rust

beefhash
5pts1
mindyourdecisions.com 5y ago

Game theory in Mario Party (2010)

beefhash
1pts0
github.com 5y ago

Whalescan: A vulnerability scanner for Windows containers

beefhash
2pts0
github.com 5y ago

SNIcat (Server Name Indication Concatenator)

beefhash
1pts0
virtuallyfun.com 5y ago

Reviving 20 year old web forum software (2019)

beefhash
3pts0
www.intel.com 5y ago

Intel AMT and Intel ISM Advisory (CVSS 9.8)

beefhash
3pts0
vnhacker.blogspot.com 5y ago

A history of elliptic curves in tweets

beefhash
54pts16
arxiv.org 5y ago

The Sound of Silence: Mining Security Vulns from Secret Integration Channels

beefhash
2pts0
medium.com 5y ago

The 100% correct way to validate email addresses

beefhash
2pts2
github.com 5y ago

S2n: A simple, small, fast, and security-minded C99 implementation of TLS/SSL

beefhash
4pts0
eprint.iacr.org 5y ago

A Cryptographic Analysis of the TLS 1.3 Handshake Protocol

beefhash
3pts0
reactos.org 5y ago

Syzkaller – Fuzzing ReactOS in 2020

beefhash
2pts0
emilymstark.com 5y ago

Debunking the “users always click yes” myth

beefhash
1pts0
arxiv.org 5y ago

Speculative Dereferencing of Registers: Reviving Foreshadow [pdf]

beefhash
168pts53
bsdimp.blogspot.com 5y ago

Bootstrapping 2.11BSD (no patches) from 2.11BSD pl 195

beefhash
1pts0
bugzilla.redhat.com 5y ago

Grub2 security update renders system unbootable

beefhash
134pts85
eclypsium.com 5y ago

There's a hole in the boot: “BootHole” vulnerability in the GRUB2 bootloader [pdf]

beefhash
1pts0
blog.cmpxchg8b.com 5y ago

You don’t need SMS-2FA

beefhash
33pts66
link.springer.com 6y ago

Postal Revenue Collection in the Digital Age (2001)

beefhash
2pts1
ed.penalosa.dev 6y ago

ed(1) on the web

beefhash
2pts0
www.imperialviolet.org 6y ago

memcpy (and friends) with NULL pointers (2016)

beefhash
2pts0
typespec.co.uk 6y ago

A font raised from the dead: The Doves Type story (2013)

beefhash
2pts0
blog.zsec.uk 6y ago

The day I trolled the entire internet: accidental research project CVE-2020-1350

beefhash
56pts17
utcc.utoronto.ca 6y ago

How major and minor device numbers worked in V7 Unix

beefhash
2pts0

I sort of wonder if there's going to be a barrage of exploits held until end-of-life that's going to be released now.

EDIT: I'm already aware that the system has been exploited to death and back, so I'm mostly curious if people haven't already dumped everything.

Why use C11 over C99?

C11 gives you noreturn and alignas. Alignas can be pretty useful for low-level development in particular. Just hope you don't need variable-length arrays because those got changed to optional.

Or even why use C99 over C89?

Several very big things: Native bool, stdint.h (fixed-width int types with known sizes ahead of time), long long, snprintf, not having to declare all variables at the top of the block (and now you can do for (size_t i = 0; i < sizeof(strbuf); ++i) because of it).

Open always wins, but that doesn't necessarily mean that it'll be qualitatively better, which is what your parent comment seems to hint at.

age only covers authenticated encryption. minisign/signify covers the signing part.

Everything else is either not used in practice or needs to be shifted to a dedicated protocol.

Here's the fix to e-mail: Centralization.

You can't curb abuse in a federated model. This is an issue that's been plaguing the fediverse as well. IRC networks, though not federated, have had to each individually ban spammers and other problematic users.

Google (GMail), Yahoo, Microsoft (Live/Hotmail), Yandex, QQ Mail. That ought to be enough for everyone. EDIT: and mail.ru

Modern C 6 years ago

Indeed, C11 and C18 don't bring a lot. I'm glad that they don't because backwards compatibility and roughly predictable development of the language is important to me.

You also have the long, complex and constantly changing list of rules which need to be applied for each update. They are very strict about noting down the copyright of all the files, for example (which I can understand to some extent).

Tracking licensing information very strictly makes sense.

Other than that, however, the Debian packaging process is something only a lawyer could love.

So now that Perl 7 wants to actively remove backwards compatibility from its culture, where are people to turn now for stable/non-moving scripting languages?

Oh. I see what's going on, and I was wrong about this.

US7949129B2 expired because he didn't pay the patent fees. US8321675B2 claims priority to a patent from 2001. Claiming priority is a way to broaden an existing patent by saying “it's this, but improved”; however, this also means inheriting the expiry date of the patent claiming priority to. So yeah, that one's expiring next year already. Holy cow, thanks for making me check.

Another, related patent that he notes in the FAQ[1] is 8,107,620, which won't expire until 2029 unless IBM forgets to pay patent fees. Hard to tell if it really applies to OCB3 though.

[1] https://www.cs.ucdavis.edu/~rogaway/ocb/ocb-faq.htm#patent:p...

"Just Libsodium" doesn't work on anything smaller than a Raspberry-Pi, or pretty much any embedded system out there. There are alternatives out there

And the same author provides a solution for those systems as well with libhydrogen.

Though that doesn't look so super hot anymore given the recent advances on Gimli[1,2,3], but it'll likely still hold up in practice.

but sometimes your only choice is to code and optimise it yourself

That is a critical shortcoming of the ecosystem. If you reach that point, you should be hiring a cryptographer/experienced implementer. Your follow-up question might be “Where do the cryptographers come from, then?” and the answer to that is: “PhD programs at universities, ideally”. Curiously, however, many (most?) cryptography libraries that are used in practice appear to be written by people with barely any academic background. We should be working to rectify that one way or another (send the implementers to university or pull more people from theory into implementation practice).

you don't need to know all the attacks to protect yourself from them. What you need to know is the relevant classes of attacks, and how to void them

Some attacks, however, can be quite surprising or virtually impossible to mitigate without deep knowledge of the specific problem domain. Are we sure how to mitigate software implementations of EC scalar multiplication against differential power analysis yet?

And that's before you get to protocol design, where there are new, mysterious ways to shoot yourself in the foot (use TLS, use TLS, use Noise).

[1] https://eprint.iacr.org/2020/561.pdf

[2] https://eprint.iacr.org/2020/591.pdf

[3] https://eurocrypt.iacr.org/2020/rump/ec2020rump-paper23-slid...

If you want a to get this stuff into your head reasonably fast, go implement a curve. Then do it again, but in Rust (or C) and in constant-time. Then do it again, but actually computationally efficiently (i.e. optimize the hell out of a Rust or C implementation once it works). Choose a different curve each time. Then go and cook your own curve for shits and giggles.

You may easily spend a year upwards on this, but by the time you're done, you've basically run into every resource worth knowing about and are able to decently reason about elliptic curves (but by no means are in a position to write papers still).

I didn't know about possible patents, that sucks. (I live in the EU, though, so I can still give them the finger if I need to.)

Hamburg made this IP risk pretty clear in the paper, for a bit more context on it, see [1]. Because in the U.S. you have a full year before you even need to file a patent after publishing, we'll still have to wait and see if Hamburg's employer files a patent on his method. If they don't, nice; if they do, fucking hell this is why we can't have nice things. Renes/Costello/Batina is unencumbered as far as I know.

[1] https://www.reddit.com/r/crypto/comments/g46pft/_/fnwp9p2/?c...

we now have better ways of dealing with short Weierstraß curves

We do? The complete Renes/Costello/Batina formulas for point addition are significantly slower at a factor of 1.4.[1] The complete formulas presented by Hamburg are still somewhat slower than what you can get on twisted Edwards and almost certain to be patent encumbered by the end of the year.[2] Did I miss something?

SafeCurves discounts Renes/Costello/Batina and the like because “many of these formulas are considerably slower and more complicated than standard incomplete scalar-multiplication formulas, creating major conflicts between simplicity, efficiency, and security”.[3]

[1] https://cryptojedi.org/papers/complete1-20191011.pdf

[2] https://eprint.iacr.org/2020/437

[3] https://safecurves.cr.yp.to/complete.html

The standard digest is 64-bits, but you can modify it to take 128-bits if you want a cryptographically secure hash.

There's not even an attempt at a preliminary cryptanalysis anywhere as far as I can tell. I'd advise staying far away from this for cryptography, especially if it considers a 128-bit digest size reasonable for anything but a message authentication code.

Tink addresses things libsodium doesn't really do.

Native support for AWS Key Management System and its equivalent on other cloud platforms is a huge win; we should all be using more of these. But libsodium would have to start mandating a TLS library and an HTTP library and whatnot, interfering with people's existing setups; you can't really do that without C programmers getting angry at you.

It deals with not only key generation, but also key serialization. libsodium kind of strands you when it comes to the question how to actually store keys.

Deterministic nonces have also been something that libsodium appears to have rejected: https://github.com/jedisct1/libsodium/issues/392

If you're looking at it from a misuse-prevention perspective, Tink is probably a major step up that accounts for modern use cases. libsodium's kind of in a lower level niche and suffers from being held back by C and its notoriously anemic standard library.