5 ms·
This is an entire language extension, as you note. The last time various people interested in this were in the same room (it was in January 2020 in a workgroup
by pascal_cuoq 6y ago
This is an entire language extension, as you note. The last time various people interested in this were in the same room (it was in January 2020 in a workgroup called HACS), what emerged was that the Rust people would try to add the “secret” keyword to the language first, since their language is still more agile than C, while the LLVM people would prepare LLVM for the arrival of at least one front-end that understand secret data.
Is this enough to answer your question? I can look up the names of the people that were involved and communicate them privately if you are further interested.
- loeg 6y ago(Not OP) I would appreciate any references you can provide. An LLVM __attribute__((secret)) would be a great place to start.
- pascal_cuoq 6y agoUnfortunately I am out of useful information: https://news.ycombinator.com/item?id=22868999 https://news.ycombinator.com/item?id=22868999 I hope someone will provide the next link.
- cperciva 6y agoThanks for the update. I was encouraging some of the people who were going to be at HACS to address this but I hadn't heard the latest progress. Unfortunately I couldn't be there myself.
- pascal_cuoq 6y agoIf I remember correctly, Chandler was the one writing down the draft for LLVM developers to comment on LLVM-side. Unfortunately, if you Google his name and the relevant keywords, the results are full of his work on speculative load hardening. Someone who read the LLVM mailing-list attentively should have seen it and may have a link.
- stephencanon 6y agoAlso worth noting that a language extension may not be sufficient for all cases. E.g. the OS stores register state on a context switch; do you also need a flag for the system to zero any memory used for this purpose following the state restore, or is it OK to trust that it won’t leak through some mechanism? For some applications, there may be contractual or regulatory requirements to have an erasing mechanism for copies like this as well.
- cperciva 6y agoI want to use this in the OS kernel too. ;-)