Andrew Ayer
agwa.name · Personal blog · on HN since 2013
Andrew Ayer, a security engineer and certificate transparency expert, writes about TLS certificates, CA incidents, and tools like git-crypt.
What HN saysHN commenters praise his writeups on CA incidents and link git-crypt as a useful tool for encrypting secrets in Git repositories.
60HN people shared it
33linked it in comments
52stories submitted
2.8Kstory points
6 months agolast shared
2013people per year2026
Most-shared posts
- 1Git-crypt – transparent file encryption in Git16 people · 150 points · first shared 2013 · 52 comments on HN
- 2Sign arbitrary data with your SSH keys5 people · 644 points · first shared 2021 · 320 comments on HN
- 3Duplicate Signature Key Selection Attack in Let's Encrypt5 people · 80 points · first shared 2015 · 4 comments on HN
- 4How to Crash Systemd in One Command4 people · 224 points · first shared 2016 · 184 comments on HN
- 5STARTTLS Considered Harmful4 people · 45 points · first shared 2014 · 39 comments on HN
- 6Always Review Your Dependencies, AGPL Edition3 people · 267 points · first shared 2020 · 228 comments on HN
- 7The SSL Certificate Issuer Field Is a Lie3 people · 7 points · first shared 2023 · discussion on HN
- 8Checking If a Certificate Is Revoked: How Hard Can It Be?3 people · 5 points · first shared 2022 · discussion on HN
- 9Preventing Server Side Request Forgery in Golang3 people · 2 points · first shared 2020 · discussion on HN
- 10Using SNI proxying and IPv6 to share port 443 between webapps2 people · 154 points · first shared 2022 · 59 comments on HN
- 11Thoughts on the Systemd Root Exploit2 people · 112 points · first shared 2017 · 77 comments on HN
- 12CloudFlare: SSL Added and Removed Here :-)2 people · 4 points · first shared 2015 · discussion on HN
- 13Certificate Transparency Logs Fail and Why It's OK2 people · 4 points · first shared 2021 · discussion on HN
- 14No, Google Did Not Hike the Price of a .dev Domain from $12 to $8502 people · 3 points · first shared 2022 · discussion on HN
- 15Fixing the Breakage from the AddTrust External CA Root Expiration2 people · 3 points · first shared 2020 · discussion on HN
What HN people wrote when they linked it
mtlynch · 2025-02-25
Direct link to the comment: https://bugzilla.mozilla.org/show_bug.cgi?id=1910322#c10
The author of that comment is Andrew Ayer, who also does great writeups about CA incidents and processes on his blog:
https://www.agwa.name/blog/index
hardwaresofton · 2022-04-13
100% agree. It's such a versatile tool -- for example I have the following:
git config --local core.hooksPath $PWD/.githooks
export DOCKER_CONFIG=$(realpath secrets/docker)
Combine that with git-crypt[0] (obviously, don't commit secrets in plaintext to your repo!) for example and you have some really nice ergonomics.
Not enough people know about direnv.
[0]: https://www.agwa.name/projects/git-crypt/
arkadiyt · 2020-12-26
These different representations also lead to frequent server side request forgery (SSRF) bypasses - someone might be blocking local IPv4 but you can still access their AWS metadata endpoint at ::ffff:169.254.169.254, etc.
For anyone using Ruby, I'm the author of a gem [1] that comprehensively protects against SSRF bugs. For anyone using Golang I recommend this [2] blog post.
[1]: https://github.com/arkadiyt/ssrf_filter
[2]: https://www.agwa.name/blog/post/preventing_server_side_request_forgery…
agwa · 2018-08-23
> UPDATE: Before people ask the potential question how the researchers are supposed to get their proper credit - my consideration is the following: Each of the researchers signs the paper with their own "public" key of a public-private key pair. This signature is uploaded as part of the paper upload. The "public" key is nevertheless kept secret by the researchers.
> When the legal risk is over and the researchers want to disclose their contribution, they simply make their "public" key really public. This way, anyboy can change that the signature that was uploaded from beginning on, indeed belong to this public key and thus to the respective researcher.
Commonly-used public key signature systems (RSA, ECDSA) do not provide the security properties necessary for this. Someone else who wants to claim credit for the research could cook up their own key pair that successfully validates the message and signature. This is called a duplicate signature key selection attack (https://www.agwa.name/blog/post/duplicate_signature_key_selection_atta…
sevenseacat · 2025-11-30
I use git-crypt to encrypt the inputs in my public repo https://www.agwa.name/projects/git-crypt/ :)
neuralkoi · 2025-05-21
SSL added and removed here! :-)
https://www.agwa.name/blog/post/cloudflare_ssl_added_and_removed_here
BoingBoomTschak · 2025-01-15
Nobody remembers the "SSL added and removed here :)"?
https://www.agwa.name/blog/post/cloudflare_ssl_added_and_removed_here/…
dp-hackernews · 2024-09-26
You may wish to consider these also;
git-crypt - https://www.agwa.name/projects/git-crypt/
Or
blackbox - https://github.com/StackExchange/blackbox
chasil · 2023-01-11
SSH keys can now be used to sign arbitrary content, so any github user with a published key is now able to publish verified content that can be verified offline.
https://www.agwa.name/blog/post/ssh_signatures
lxgr · 2022-08-24
Generally, no; in this particular case (SSH authentication and generic signatures), it seems to be ok: https://www.agwa.name/blog/post/ssh_signatures
tiziano88 · 2021-12-23
It's Now Possible To Sign Arbitrary Data With Your SSH Keys: https://www.agwa.name/blog/post/ssh_signatures
alexsmolen · 2021-03-09
This is a pretty good article about preventing SSRF including DNS rebinding-based attacks in Go https://www.agwa.name/blog/post/preventing_server_side_request_forgery…
danishguy · 2020-11-02
These kinds of attacks are usually run by a major threat actor (i.e. nation state), targeted, and not run at large scale.
Certificate transparency is unlikely to help in this case. Key pinning was the more secure option.
For some issues see:
https://www.agwa.name/blog/post/how_will_certificate_transparency_logs…
https://tools.ietf.org/html/draft-ietf-trans-threat-analysis-16
jakecraige · 2020-03-09
It’s not assuming MITM or that the attacker can upload the signature to the site.
The attack is that the attacker can reuse the already uploaded signature in a way that allows them to get certificates issued under their account instead of the initial owner.
This blog is a little confusing about that since it does read like they are supposed to upload their own sig with the graphic used.
This post and linked IETF report is a little more clear: https://www.agwa.name/blog/2015/12
vsenko · 2020-03-09
The article neglects the details of crafting the private key which are provided in the original blog post: https://www.agwa.name/blog/2015/12
IMO crafting the public key alone does not provide the attacker significant benefits.
toadi · 2020-01-06
This is about the same library:
https://www.agwa.name/blog/post/always_review_your_dependencies
Claims there are it's written by people who don't understand Go that well.
daxelrod · 2019-12-17
This is one of the threats addressed by https://www.certificate-transparency.org/ .
If a CA issues a rogue cert and _does_ add it to the CT log, it's discoverable, at least in retrospect.
If a CA issues a rogue cert and _doesn't_ add it to the log, some browsers will refuse the connection when presented with that cert. https://www.agwa.name/blog/post/how_will_certificate_transparency_logs… has more details about Chrome's implementation.
danieldk · 2018-08-02
For project-specific secrets, you may want to look at git-crypt:
https://www.agwa.name/projects/git-crypt/
Nullabillity · 2018-07-29
They can be defined in either. For example, see https://www.agwa.name/projects/git-crypt/.
rsyring · 2018-05-14
If anyone wants to keep secrets in a repo, git-crypt is your friend:
https://www.agwa.name/projects/git-crypt/
zimbatm · 2017-09-19
git-crypt[1] is quite handy in cases where the credentials have to live along the code. It's a nice improvement over having credentials in clear in a git repo and relatively easy to implement.
[1]: https://www.agwa.name/projects/git-crypt/
yuhong · 2017-06-28
David Strauss is one of the systemd developers that don't work at Red Hat. It has its problems too: https://www.agwa.name/blog/post/thoughts_on_the_systemd_root_exploit
Not to mention Kay Sievers which was even hated by Linus Torvalds: https://lkml.org/lkml/2014/4/2/420
new299 · 2016-10-06
I've basically decided systemd isn't for me and have uninstalled it from my systems. The last straw for me was a recent security issue:
https://www.agwa.name/blog/post/how_to_crash_systemd_in_one_tweet
Which made me re-evaluate systemd. Fundamentally creating a monolithic tool to take over from many small single purpose tools seems counter to the UNIX philosophy, and makes it harder to hack on my (mostly desktop/laptop) systems.
irishcoffee · 2016-10-06
"Systemd is far more than an init system: it is becoming a secondary operating system kernel, providing a log server, a device manager, a container manager, a login manager, a DHCP client, a DNS resolver, and an NTP client. These services are largely interdependent and provide non-standard interfaces for other applications to use. This makes any one component of systemd hard to replace, which will prevent more secure alternatives from gaining adoption in the future." [1]
"There will be better alternatives in the future that are more secure than what we have now. But adopting them will only be possible if systemd has not destroyed the modularity and standards-compliance that make innovation possible" [1]
[1] https://www.agwa.name/blog/post/how_to_crash_systemd_in_one_tweet
michaelt · 2016-08-08
I've seen quite a bit of criticism of it for mail servers [1] because an attacker can simply block the 'STARTTLS' message and (many) clients will silently accept that.
[1] https://www.agwa.name/blog/post/starttls_considered_harmful
brudgers · 2015-12-09
Related: The software's author's original post: https://www.agwa.name/projects/git-crypt/
emmelaich · 2015-07-27
I think that if you're using git,
use git crypt[1][2]
use git-dir and work-tree options/env vars
[1] https://www.agwa.name/projects/git-crypt/
[2] though you have to remember to git crypt lock
vanilla · 2014-09-03
git-crypt[1] also does per file encryption
[1]: https://www.agwa.name/projects/git-crypt/
higherpurpose · 2014-08-26
Any truth in this?
https://www.agwa.name/blog/post/starttls_considered_harmful
__david__ · 2013-02-07
> Actually, this might not come as surprise to you...
Probably not, given he has a link to that same email as one of the very first things in his README.
> ...but there are a few reasons you should not do this
Having read the thread, it seems that everyone is talking about encrypting an entire repository in such a way, where as this project and (the surprisingly similar) git-crypt[1] are designed to encrypt only a few select files inside a repo--which isn't going to impact the git packer's compression techniques too much.
[1] http://www.agwa.name/projects/git-crypt/