Offline master key

Keeping the master key offline reduces the risk that it is stolen.

If you don't want to buy ?hardware, use an offline master key. See ?GnuPG/Airgapped for a comprehensive step-by-step example. In brief: Create a certification only master key using something like PGP Clean Room on a non-networked host, and store that on a USB key you only ever put into your machine when running your clean, non-networked, environment. Create at least 2 subkeys - signing + encryption - and use those in your day to day work. You then only need the master key when dealing with signing other keys, or updating your subkeys. In the event of your subkeys being compromised or lost or whatever you can just regenerate; because your master key is offline it should remain secure meaning you don't have to go through the pain of getting cross signatures again.

If you want to buy hardware then one of the self contained USB tokens that look like a smartcard + reader to the OS is probably easiest. Unfortunately, most (all ?) only supports 3 keys on the device and those are one each of signing, encryption + authentication. Which means one can't have a master certification key and a signing subkey on the same device. Thus, if you can manage it, have 2 devices; one with the master and the other with your day-to-day keys. Otherwise I guess having a master key that is signing enabled might be the best option?

Notes on hardware: