Skip to content

2.1.0

Compare
Choose a tag to compare
@cmars cmars released this 10 Dec 05:35
· 319 commits to master since this release
2.1.0

New features in 2.1.0

Full ECC support with ProtonMail's openpgp fork.

All ECC algorithms supported by GnuPG 2.x are now supported by Hockeypuck, courtesy of ProtonMail's improvements to the go.crypto/openpgp package.

Reduced memory footprint

Some conflux improvements to reduce memory footprint. Content blocking also makes a huge difference in memory consumption.

Content blocking options

Content length limits

Configurable limits on overall key and packet lengths. These are now the defaults:

[hockeypuck.openpgp]
maxKeyLength=1048576
maxPacketLength=8192

With these settings, it is possible to run Hockeypuck on an e2-small in Google Cloud (2GB ram, 2 vCPU). Most legitimate content falls below these limits, except a few vandalized keys. See "Authenticated Key Management" below for how to remove signature spam from your keys in 2.1.0 if you've been a target.

Blacklisting

A primary key fingerprint blacklist can be used to block specific keys. For example, these keys seem to have been created without any purpose but to waste keyserver resources:

[hockeypuck.openpgp]
blacklist=[
  "2790943722612cf8d9c2db9213de25eed1bb5151",
  "a490d0f4d311a4153e2bb7cadbb802b258acd84f",
  "5c738727ee58786a777c4f1db5aa3fa3486ed7ad",
  "33d51b5621953173ab74b521bdca9f8e3a6c1785",
]

This feature can also be a useful tool to deal with GDPR "right to be forgotten" type requests. The blacklist will prevent keys from getting re-submitted or re-synced back to the keyserver once they are deleted from the postgres database.

Authenticated Key Management

See HIP-1 for a detailed design spec and examples of usage. Basically, you can replace or delete the contents of your key on the keyserver with new endpoints, /pks/replace and /pks/delete. These endpoints require that you sign the uploaded key material in the request to prove you own the private key for it.

/pks/replace replaces the entire key contents on the keyserver with your copy, removing any missing signatures in the process. This allows someone with a vandalized key containing a large amount of spam to still push updates to their key. It is necessary if the key has been spammed to exceed the keyserver's maximum length limit.

/pks/delete allows deleting your own key contents from the keyserver.

Specialized keyserver queries

Some keyservers only need to support package signatures. For this use case, WoT and keyword search capabilities can be disabled completely, to only allow queries by fingerprint and self-signed content in results. This can further reduce operational overhead.

[hockeypuck.hkp.queries]
selfSignedOnly=true
keywordSearchDisabled=true

CPU and Memory profiling

Give hockeypuck a SIGUSR2 to cause it to dump profiles on top-k CPU calls and heap allocations. Files are written to:

/tmp/hockeypuck-cpu.prof
/tmp/hockeypuck-mem.prof

Bugs closed

#77, Log key sizes

#79, Blocking support

#67, GDPR & right to be forgotten

#62 and #64 fixed by using ProtonMail's openpgp implementation.

EOL

MongoDB support

I have no interest in maintaining the MongoDB backend, so it has been removed.

Travis CI

Replaced with Github Actions.