Hacker Newsnew | past | comments | ask | show | jobs | submit | inp's commentslogin

Yes, and moreover, they just add a shared secret in the computation of the initial root key, it cannot be worse in this case.


What could go wrong


Is that good or bad?


it's good. think of it like adding a different kind of lock that requires a different key (method) to open up first. at worst it's no less secure than before. If it works as intended it's a huge disincentive for anyone collecting encrypted data with the hopes that a quantum computer may break encryption the "old" method in the future.


What about this "Concatenating Secrets May Be Dangerous"? https://mailarchive.ietf.org/arch/msg/tls/F4SVeL2xbGPaPB2GW_...


If an attacker can perform discrete logs over EC, and a collision attack is found on SHA-3, then an attacker can encapsulate a malicious secret in Kyber, which when hashed with the 3 ECDH values force the session keys for communications with that attacker to be attacker-chosen values.

In the context of Signal, this means that in a case where an attacker would know the session keys anyway (being one of the parties to the handshake), if ECDH and SHA-3 are both broken, then the attacker could force the session keys to values of their choice.

Certainly there would be cases where this could be a problem, but in the case of Signal, the most disastrous attack I can think of would be maybe some kind of backward MitM attack where two users think they're both talking with the attacker, but they're actually talking with each other. C.H.A.O.S. gets the NSA and GCHQ on a chat where they both think they're trying to exploit C.H.A.O.S., and then when they accidentally exploit each other and establish a persistent compromise, C.H.A.O.S. goes in through the backdoors that the NSA and GCHQ have set up, quickly before either the NSA or GCHQ realizes they've exploited the wrong target?

Maybe an attacker colludes with a third party where they arrange encryption keys ahead of time, and then the third party could more easily eavesdrop on communications between the innocent user and the attacker. However, in that case, why doesn't the attacker just leak the session keys to the third party after the fact rather than agreeing beforehand? I could contrive some situation where you've got malware infiltrated into a very locked-down environment where Signal is the only communications channel back out of the environment, preventing two-way communication with the malware, but I feel we're getting pretty far into contrived situations there.

What am I missing? Yes, the proposed key derivation function ads negligible overhead and looks sound. All else being equal, it's strictly better to not allow the attacker to force the session keys to a attacker-determined values if both ECDH and SHA-3 are broken. However, in this context, the risks associated with a larger code change seem to outweigh the risks of an attacker being able to choose session keys, particularly as it seems a security proof of the proposed key derivation function still seems to be a work in progress.


> "In short: constructions that concatenate secrets are vulnerable when the underlying hash function is not collision-resistant"

That's quite a condition.


Even KeePass recommends to write the master secret key on a piece of paper. Sure, it must be in a secure place, but we cannot avoid this step for reliability.


Really nice link! Thanks fforflo.


Instead to create a script in Python to convert numbers in integers, you can use awk: "python3 parse.py" becomes "awk '{printf "%d\n", $0}'"


Not sure I understand why it needs to even know there's numbers in the filename.

The problem seems to boil down to:

"Find all files with the pattern '[something]_data.csv' and report if '[something]_A.csv' doesn't exist"

Unless I'm missing something, all the sorting and sequence generation isn't adding anything.


Why even use awk rather than the shell's (well, bash's) builtin printf?

    $ printf '%d\n' "0005"
    5


That might not always do what a naïve user expects:

    $ printf '%d\n' "0025"
    21


You can apply the awk command on a pipe, and so it is applies on each line of the file/stream.


Right - though that's solvable with xargs:

    $ echo "0005" | xargs printf '%d\n'
    5
That said, my suggestion doesn't work anyway since the leading 0 marks it as octal, d'oh (as mentioned elsewhere in the thread).


Who will attend to RWC?


A bunch of references from Suckless community that you can enjoy:

http://suckless.org/rocks/


Nice question!

Here my personal setting:

- Email : mutt [http://www.mutt.org/]

- Passwords manager : pass [https://www.passwordstore.org/]

- Navigate directories : autojump [https://github.com/wting/autojump]

- Task manager : task [https://taskwarrior.org/]

- Music : cmus [https://cmus.github.io/]

- Text editor : emacs -nw [https://www.gnu.org/software/emacs/]


Excuse my very basic question, but how do you manage spam when using mutt? Do you interface to a cloud-based service in mutt, or have some kind of other spam filter?

I’ve always liked the idea of moving my email to mutt and using personal domains, but not convinced I could manage spam well.


the same way you manage it with a GUI mail client. if you use a mailservice that includes a spam-filter, you can use mutt's imap support to access it, and thus access the filtered mailbox like any GUI or webmail client would.

for your own personal domain, either use a service that supports personalization. (gmail does, but there should be others) and you are covered again.

if you want to host your own mail server, then you'll probably want to run your own spam filter on that server. it works by having the mail server forward the mail to the filter (which can be local or remote) and then deal with the mail based on the response from the service.

greetings, eMBee.


there was a recent HN thread announcing the resurrection of Apache's Spam Assassin. the comments may provide some useful suggestions to you.

https://news.ycombinator.com/item?id=18458212


Amusingly, you can actually do all of that within emacs:

- email: notmuch/Rmail/Gnus/&c.

- password manager: pass.el (uses pass under the covers)

- navigate directories: shell or eshell, with autocompletion and/or Helm

- task management: Org Mode

- music: emms

Emacs is crazy-powerful!


dired-mode by itself is pretty excellent for navigating directories.


A few of these (all?) are TUIs and not CLIs.

CLIs are command driven. TUIs are driven by user interactions. I'm sure more/better distinctions between the two can be made.


that's a fair point, but i don't think that's what the OP meant. CLI is commonly used to cover TUI when pittet against GUI.

greetings, eMBee.


On one hand it's in the acronym command line interface and on the other

"was wondering if anyone had any solid recommendations for applications that one can use in a terminal window" it really looks like he meant to express console apps not cli I think you are correct.


I don't believe that's true. TUI has more in common with GUI than CLI.


I bet you five dollars OP was looking for TUI programs as well.


sure, conceptually it does, but that's not the point.

what matters for most is the fact that i can run the application in a text only terminal, on any machine (remote or local), from any device (be it linux, windows, mac or even a mobile phone (ok, that's rarely practical, but it's possible))

a GUI does not offer that advantage.

greetings, eMBee.


> what matters for most is the fact that i can run the application in a text only terminal, on any machine (remote or local), from any device (be it linux, windows, mac or even a mobile phone (ok, that's rarely practical, but it's possible))

> a GUI does not offer that advantage

Sure, not in the terminal, but X forwarding is a thing and works on every system I've had to use it on.


it doesn't work on the majority of systems i have to work with, which is servers that don't have the necessary tools installed.

it's also very susceptible to latency and most applications don't handle slow connections in a usable manner. (they are designed with the expectation that the gui always responds instantly)

to get something of a tmux/screen like experience, xpra is available, which is an awesome piece of work, but it doesn't help with the latency. even over just local wifi i have some applications become unusable over xpra when they work ok over plain remote X.

the problem is not necessarily X but in part GUI in general. i can't click the mouse anywhere until the respective UI item is visible, so i have to wait for that.

on a commandline on the other hand in most cases i can keep typing even on extremely slow connections because i can anticipate what will happen and i know what keys are appropriate to type next.

using mosh i even get something like editable typeahead which is a marvel and very hard to imagine on X.

greetings, eMBee.


Oh, I never said I _enjoyed_ X forwarding, or even use it frequently. My point was just that remote access in a similar way to a shell is possible with a GUI, and could be made even better if X had a means of not having to draw everything but left it up to the toolkit on the other end.

But yes, in general, a shell is just much better:)


> could be made even better if X had a means of not having to draw everything but left it up to the toolkit on the other end

that a thousand times!

does wayland work in that direction?


I wish more people made the distinction and more people made TUIs too...


A good idea is maybe to focus on the English and the science/tech content, not on another language.


Thanks for this great link! Richard Feynman, always so pleasant and inspiring.


Thanks! I like to collect mathematical "tricks" like this. This was on the /r/math subreddit a couple of days ago and many people were expressing surprise that they'd never encountered it.

It seems most people encounter this either as a brief coverage in real analysis or in full emphasis in mathematical physics or quantum field theory courses.


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact