TL;DR: Everyone learn about the importance of Key Trust. LE can replace a "vendor's" Public Key with one that they control, read your messages, then re-encrypt them to the "real" key and send them along, with nobody ever knowing. This is especially feasible if a market site is a honeypot and people are getting public keys from the market instead of from keyservers. Vendors: please start including in your shipments a written copy of your GPG key's Fingerprint and a totally unique (never before used) "password," and encourage buyers to verify their copy of your key against the shipped Fingerprint and then send you a signed, encrypted message containing the "password". Then both buyer and vendor can Sign each other's keys and upload those Key Signatures to keyservers, and we can begin to know that the public keys being tossed around are legitimate. How about discounts offered to buyers who verify their own keys, and wide publicity in glowing reviews for vendors that do this, to get the ball rolling?
So.
People are talking about honeypots a lot, and how they don't care, because "all their messages use PGP anyway."
This is a serious problem.
An LE honeypot market can serve forged OpenPGP public keys instead of authentic ones, and then the feds can read everything, no problem. They can also swap out the buyer's public key with one that they also control, so that they can read both directions of communication. LE could also potentially swap out public keys transmitted in other ways, too (including from keyservers and the like).
This is the single most simple and easy way that OpenPGP (and many other cryptosystems) can be defeated, and it's been known for a long, long time. This is the classic "Man in the Middle" attack, and it's a very big deal, and in some cases, hard to prevent. But not for us, if we take some simple measures.
Thankfully, OpenPGP systems have a really awesome and really effective way to deal with this: the Web of Trust - as long as people use it.
Problem: Most people using DNMs don't know about the Web of Trust or the importance of this stuff, and they aren't using it.
But there's an easy way to build a really strong Web of Trust for DNMs, which could work even better than some of the ways it's done on the clearnet and in meatspace. That's because vendors are really good "hubs" for trust, as they communicate with many people, and since folks are using mailed packages, we have a really good "out-of-band" communications channel to transmit and verify OpenPGP Key Fingerprints that are really difficult for LE to tamper with.
Solution: Vendors write out their OpenPGP Key Fingerprint and a totally unique (never re-used) "password" on some paper that's in their shipments (they can use a second-hand printer or write in simple block characters with gloves on), and encourage buyers to:
Verify that the Fingerprint in the package matches the one that the buyer has in their GPG Keyring for that vendor (this helps ensure that the buyer's messages to the vendor weren't intercepted by LE),
Sign the vendor's verified key with the buyer's own key, and then export the newly-signed key and include it in a signed and encrypted message to the vendor, which also includes the buyer's own Key Fingerprint (optional) and the shipped "password" (this helps ensure that the vendor has the actual buyer's actual Key and not an LE substitute.
After a buyer validates their own key to the vendor (by supplying the secret "password" that only existed in their package), the vendor can then sign the buyer's Key as Trusted and either upload it to a keyserver or send it to the buyer so they can upload it.
If enough people start doing this, it becomes easy for a prospective buyer to check a supposed "vendor's" public key that they found online against the Web of Trust, to see if it really belongs to the vendor, and isn't a substituted one from LE.
If at any point a vendor's published public key doesn't match up with the fingerprint they ship out, that's a serious and very easily-spotted RED FLAG that LE is attempting to read their communications. If this happens, it should be reported and repeated widely and loudly.
Alternate version: forget the "passwords" in shipments, and vendors just ship their Key Fingerprint. This still allows the buyers to verify, Sign and publicize the vendor's public key, and it's vendor keys that are most important. But including the "password" and Signing buyer keys is what makes an actual Web of Trust possible, so doing it both ways is definitely preferable.
If anyone's got further questions about any of this stuff or the nitty-gritty How To Do It shit, please don't hesitate to ask, I love helping people step up their security game. If you wanna talk securely, my GPG key with fingerprint 69E7 EB65 1CB6 19DE 9153 3A2B D16B 4CC5 857D 0298 is available at https://ssl.reddit.com/r/publickeyexchange/comments/2cmfob/sapiophiles_public_key/ , https://keybase.io/sapiophile , and on the SKS Keyserver network.
Potential problems:
Honeypot vendors, run by LE, could start assigning trust to malicious Keys. LE buyers could also interfere with the Web of Trust, but not as seriously. This should be fairly easy to spot, though.
If a package is intercepted, the included Fingerprint may help identify which vendor it's from.
The fingerprint and "password" in the packages may be possible to profile with X-Ray scans or similar. It may have to go inside the MBB. The "password" is also secure information that should be resistant to reading except by the person who opens the package.
As is always true with the Web of Trust, it shows links of association between people that have signed each other's keys. If your pseudonym is secure, this shouldn't be much of an issue.
To work well, vendors must maintain a directory of which "password" was shipped to which buyer's key, or at the very least, a list of valid "passwords." No other data except the key fingerprint and the password they got needs to be there, but it still provides a bit of a trail. This should of course be stored securely, and entries for keys which have already been signed and published can be removed.
Y'all motherfuckers are already too lazy with your OPSEC, and this is yet another thing to deal with. Boo fucking hoo. This is cyberwar (literally) - us versus LE - it's time that we start acting like it. How many lax motherfuckers are gonna have to get busted before people start taking security seriously? I'm tired of seeing people shopping on DNMs from Windows and OSX (lol), allowing JavaScript, not using OpenPGP, and just plain not taking the time to understand at least the basics of how these technologies work. That kind of laziness has been enabled by the fact that LE wasn't up to speed on this shit, yet, but that grace period is over, now. They're starting to climb the learning curve, and you'd best believe that they're gonna start looking for the low-hanging fruit, just like they did with SR2, C9, etc. Step it up.
See also:
http://directory4iisquf.onion/ - not my site, but it seems to have similar goals. I found it while searching for a .onion keyserver.
Tips appreciated, but definitely not required - my BTC address can be found on https://keybase.io/sapiophile
EDIT: some very quick alternative ideas, addressing concerns about profiling, etc.:
Vendor only sends a single "password", vendor and buyer can then establish key trust using the Socialist Millionaire's Protocol or similar. I don't know how feasible SMP is in an asynchronous channel (e.g., back-and-forth messages on a market site), but it can probably be done, though it might be a PITA. I don't think there are tools for doing this easily, yet. At the very least it would require at least a couple messages back and forth, and I don't think anyone would do it. I may do some research on this and perhaps even try to organize a development effort to make SMP a reasonable option over market messages...
Folks start checking for public keys in multiple locations (preferably at least 3 - on different markets, on grams, etc.), then upload Casual Trust Signatures (sig1) for those keys to keyservers. Definitely less secure, but still better than nothing.
I just wanted to say that people like you are so damn important to this community. Thank you