Facebook allows users

to add OpenPGP public keys to their profile; these keys can be used to "end-to-end" encrypt notification emails sent from Facebook to your preferred email accounts. – Securing Email Communications from Facebook

Facebook provides a public key (0x2F3898CEDEE958CF) at https://www.facebook.com/facebook/publickey/download/

“encrypted notifications” regarding my account have been sent to me repeatedly via email from Facebook (noreply@facebookmail.com). These emails are encrypted with my public key, that I have uploaded to Facebook. These emails are signed with a key (0x3028CF59770E7A01) which is not the one provided by Facebook (0x2F3898CEDEE958CF). When I try to import the key 0x3028CF59770E7A01 with Enigmail the following notification is displayed:

The key with ID 0x3028CF59770E7A01 is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.

Please ask the sender of the message to send you their key by email.

  • I have found no way to contact the sender of the message.
  • I have found no source for the key 0x3028CF59770E7A01.

My main question: How can I verify the email signature from Facebook?

And by the way: Why would Facebook use a key that produces a signature that can not be verified?


Looking up the key 0x2F3898CEDEE958CF on a keyserver (see e.g. keyserver.ubuntu.com) will show a recent inclusion of a subkey 0x3028CF59770E7A01:

sub rsa4096/3028cf59770e7a01 2019-07-08T16:09:07Z            
sig sbind 2f3898cedee958cf 2019-07-08T16:09:07Z ____________________ 2020-01-04T20:00:00Z []

This is in accordance with the information provided by Facebook in their post Securing Email Communications from Facebook

Facebook's OpenPGP key comprises a long term primary key with short term subkeys; this allows us to frequently rotate our operational keys whilst maintaining the web of trust and a consistent identity over time.

However this subkey apparently is not public and attempts to receive this missing key from a keyserver fail.

gpg: Signature made Di 06 Aug 2019 17:56:19 CEST
gpg:                using RSA key 3B6C6808FC9D75EDAE0184E73028CF59770E7A01
gpg: Can't check signature: No public key

The facebook.asc provided by Facebook actually holds two subkeys, which can be seen by executing gpg -v --with-colons facebook.asc

gpg: WARNING: no command supplied.  Trying to guess what you mean ...
gpg: Note: signature key D2CC929B77D6D6F9 expired Do 01 Aug 2019 21:00:00 CEST
gpg: using pgp trust model
uid:::::::::Facebook, Inc.:

Notice that the second subkey is the ominous 0x3028CF59770E7A01.

Importing this file to my keyring (sudo gpg --import facebook.asc) works and suddenly

gpg: Signature made Di 06 Aug 2019 18:00:09 CEST
gpg:                using RSA key 3B6C6808FC9D75EDAE0184E73028CF59770E7A01
gpg: Good signature from "Facebook, Inc." [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 31A7 0953 D8D5 90BA 1FAB  3776 2F38 98CE DEE9 58CF
     Subkey fingerprint: 3B6C 6808 FC9D 75ED AE01  84E7 3028 CF59 770E 7A01

While Enigmail's Key Management repeatedly fails to download the subkey 0x3028CF59770E7A01 (e.g. from hkps://keys.openpgp.org or hkps://hkps.pool.sks-keyservers.net) it is possible to receive the subkey via sudo gpg --recv-keys 0x3028CF59770E7A01:

gpg: WARNING: unsafe ownership on homedir '/home/user/.gnupg'
gpg: key 2F3898CEDEE958CF: 586 duplicate signatures removed
gpg: key 2F3898CEDEE958CF: 1417 signatures not checked due to missing keys
gpg: key 2F3898CEDEE958CF: 1 signature reordered
gpg: key 2F3898CEDEE958CF: public key "Facebook, Inc." imported
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2021-02-07
gpg: Total number processed: 1
gpg:               imported: 1
  • Hi, is there a website or anything that lists the most recent key IDs? – Till Kolditz Nov 7 '20 at 19:29
  • I do not think so. But please pose you own question! Comments are not intended for asking questions. :-) – marianoju Nov 9 '20 at 16:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.