Episode: 1358 Title: HPR1358: How to set up GnuPG, a PGP-compliant encryption system Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1358/hpr1358.mp3 Transcribed: 2025-10-18 00:11:37 --- watching . . . Hi everyone, this is Klaatu and this is Hacker Public Radio. This episode is going to cover encrypting email with GPG specifically. GPG is the GNU privacy guard, it's based on the PGP specification which was developed back in the 90s by Phil Zimmerman, who was later actually taken to court by the US government because they felt that he was by writing encryption software and letting it outside the borders of the United States. They felt he was literally exporting a weapon, so they actually took him to court. He did not end up getting thrown into prison for life, but he actually got around it in an interesting way. He published the source code in a book, paper book, and said, hey, it's free speech. And that kind of, I don't know if that was literally what won the case or whatever, but that's what he did and it became an issue of freedom of speech rather than weaponry because apparently the same source code if printed on paper becomes something completely different than it is in digital format. Yes, it's a wonderful, wonderful world of laws and details that we live in. So anyway, GPG happens to be a pretty good system for privacy, apparently. And the way that it works is that each person in the equation of sending an email has two different keys, a public key and a private key. And so if I email Ken Fallon, I might type out an email and then I might generate an encryption method using my private key and his public key. Now the email is encrypted, so I send it to him, it's still encrypted, it gets downloaded onto his computer, it's still encrypted, and then he runs a little program and it uses my public key, not my private key, but my public key and his private key to then decrypt the email. If that makes no sense to you, think of it mathematically. I'm not a mathematician, but this is kind of how I sort of sat down and kind of thought it out. So we all know basic algebra, 1 plus x equals 2, solve for x. If you said 1, you're correct, 1 plus 1 would indeed equal 2, so x must equal 1. So if we make that a little bit more complex, you might have something like 1 plus x equals 2 plus y, and now if I ask you to solve for x, it becomes a lot more difficult, right? Because you don't know what the value of y is. So in, I mean, x could be 1, and y could be 0, right? Because then you'd have 1 plus 1 equals 2 plus 0, and that would be 2 equals 2. But just as easily x could be 3, and y could be 2, and then you'd have 1 plus 3 equals 2 plus 2, both sides equaling 4, so again, it could be right. So it becomes a lot more complex that way. Now with the private key, public key thing, you're not just dealing with simple equations like that. You've actually got a lot more going on. So you've got, for instance, q times a equals q divided by b, where a is, let's say, 2 times x, and b is, let's say, 3 times y. So in this equation, the q would represent the e-mail, and then we're modifying the e-mail by the product of some known factor that would be your public key times some unknown factor that would be my private key. But we would know that that would be equal to the same e-mail in reverse, so let's just say it's divided by some unknown factor that's your private key, and some known factor that would be my public key. So even though in that setup, you've got a lot of knowns and unknowns, and you've got a lot of things that you could look at and analyze, there's always an unknown missing factor. As long as I keep my private key private, and you keep your private key private. If our private keys get revealed to the world, it tips the scale a lot, because even if one of our private keys gets revealed, then it tips the scale, because now there's that known missing factor, you can reconstruct, okay, here's how they encrypted it, or here's how they decrypted it. So now we can tell how they got to that point from some unknown place. So hopefully that makes a little bit more sense. Now obviously even in that complex version, you could just cycle through a bunch of numbers, right? You could say, okay, well I know that Q is unknown, but I know that ultimately Q times 2 times x equals Q divided by y times 4, so if I just cycle through a bunch of possible numbers for x and y, eventually I'll hit the right number or the right combination, or at least you might hit the right combination. You might not ever know if you hit the right combination in this scenario. In real life you might, because suddenly the email would make logical sense in some known human language, and that's kind of I guess that's the one possibility that all this encryption stuff always has, right? I mean they could eventually chain enough GPUs and enough computers together and just cycle through every known possible combination within a certain bit range and they might hit upon the solution. So it's kind of good to keep in mind that at some point presumably the encryption is going to be figured out, or it's going to be something that they can crack very easily, and then no longer will your emails be encrypted. So it's the typical little race to keep ahead of the people trying to undo the things that you're doing. So just keep that in mind, the level of numbers being used to generate all of these different algorithms and encryptions and stuff, they're pretty big. But again progress marches on, so you don't know really how big that will seem in ten years or twenty years or five years. Okay, so let's look at GPG directly first, although in real life you're probably not going to use GPG directly necessarily. I sometimes do to encrypt files, but more often than not, like my daily use of it is in an email program through an email client, and with that you don't really, you're not going to be aware of all the GPG stuff happening in the background, all you're going to know is that it's happening, which is nice, it makes it really, really easy to do the encrypting and decrypting, and it kind of makes it very natural, and it doesn't slow you down any, when all you're trying to do is email someone or read someone's email, becomes very invisible, and that's good. But I do want to go over briefly what it's doing in the background so that you'll know, you'll understand that it's not just magically happening, and that's always a good thing. So first thing you need to do is go to GNUPG.org, that's the website to download the GNUPG program. If you are on Linux or a Unix-like operating system, there's a good chance that you'll already have it, but not guaranteed, so you may have to go download it. The quick and easy way to find out would be to type in which GPG, and if it tells you that GPG exists, for instance, in slash user, slash bin, slash GPG, then yes, you have it. Otherwise, you probably need to get it. So if you're on Linux, you can probably download it from your repository, and if you're on anything else, well, BSD, ports, but anything else, GNUPG.org is probably the place that you'll end up going. So assuming that you're on Linux right now, just because that's the only way I've really used GPG directly, or something with a shell that will give you access to the command line version of GPG, you can first and you should first generate a GPG key for yourself. If you don't have a key or a pair of keys, it doesn't do you a whole lot of good. It's not going to do you any good, really, because you kind of need something to decrypt an encrypt off of, and that's your key, those are your, I guess, your seeds. So if you do GPG, space, dash, dash, gen, that's GEN, like generate, dash, key, then you'll be taken to a little walk through program of generating a key for yourself. So the first question that you'll be asked is do you want an RSA, and RSA key, do you want a DSA and El Gamel key, DSA sign only or an RSA sign only, you probably don't want it sign only. So RSA and RSA or DSA and El Gamel, whichever you prefer, I'm going to go with DSA. And DSA keys may be between 1024 and 3,072 bits long. The default is 2048. To be honest right now, I'm going to go really low, because I want this to be a quick thing. So I'm just going to go to the lowest 1024, just so that you don't have to wait on me. But in real life, you could certainly go with the default, which is 2048, or you could go with the 3072. There would be some technicalities about time, obviously a larger, bitted key is going to take longer to encrypt and decrypt information. It's just more numbers for the computer to crunch. But if you're trying to stay ahead of that little curve where people are decrypting things in theory, then maybe going longer would be better. I don't know. It's really your own paranoia level should guide you. So either way, whatever you go with, it will ask how long the key should be valid for. I usually just say it's not going to expire, because I have no reason for it to expire. But if you were managing a business or something, and you were doing something with employees, maybe you would have their keys expire after a year to make sure that they don't leave the company and then still use their key or something. I don't know. So I'm going to say zero, meaning it will not expire. And then it asks for confirmation. Is this correct? And I will say yes to that. So then it's going to ask you for your user ID to identify yourself. So this should be how you identify yourself to the people you know. And there's a little bit of, I guess, there's a bit of a debate going on over what that means, like a real ID. What is that? I mean, is that literally whatever your government has you recorded down as? Or is that what you use on an everyday basis? If you don't use your real name on an everyday basis, should that be what you're using? And if you've got an ID card with some name on it, then you should probably use that ID, blah, blah, blah. I don't really care because I'm not in the business of making GPG people feel happy. And I feel like as clatu, which naturally is my real name, clatu, I mean, that's people know me as clatu. And so if I go to a GPG signing party where we are signing each other's keys saying yes, I trust you, I trust you, I trust you, I trust you, I trust you are who I, you say you are, then that's about as good as you're going to ever get, right? Because I could say that I was clatu, but actually I could be secretly someone else, I could be gourd, and you would never know. But certainly, clatu to you is this voice that you've heard on Hacker Public Radio, be a new world order, maybe some other podcasts who knows. So, so if as long as you're going to associate like this person speaking to you right now with a key that you keep getting from this person, and if you talk to this person and say, hey, did you just send me an email with the word ardvark in it? And I say, why yes, I did, then there's some level of trust there, right? You can now believe that the email that was signed with the GPG key that was labeled with clatu's name is certainly the same person as the person who talks on a couple of different odd casts. And that's about as deep as any of this stuff is really going to work, right? Because as you know from earlier episodes of Hacker Public Radio, people can fake identification, they can fake ID cards. So if I take an ID card to a GPG signing party and show them that ID card and then it has a name on there and they sign my key, I mean, does that really mean anything more than what I've just described about you getting an email from me and then talking to me about it? So, that's a big debate. I'm not going to get into it. Well, I just did. I'm not going to get into it any further. So, I'm going to type in my real name is clatu, my email address, I'm going to put clatu member.fsf.org and then a brief comment and the comment I tend, I don't really know what they're intended for, but I tend to just, I tend to use the comment field for some explanation of why that key exists or who, which clatu this is because I know that clatu isn't necessarily the most unique handle in a geeky community since it's also a very popular science fiction name. So, I'm going to put blue hair augaster and that, I feel, just kind of gives them some reference so that if they're looking around for my public key, they kind of get, you know, they'll know, oh, this is, yeah, this is clatu, the augaster, not clatu, the guy who maintains, you know, some random program on UNIX, although that could be true too, technically. But anyway, so I'm going to change anything, no, I'm not going to change anything so I will say okay to this. And now it's asking me for a passphrase and entering a passphrase is good. You will want that because you probably want to authorize your computer to use your key. You don't want just anyone sitting down at your computer to be able to use your key. You tend to want to explicitly tell your computer, yes, I am me and I give myself permission to use this key. So now it's generating the key and it's asking me to do stuff. It says do something with your computer because we need more entropy. So I just open up web browser and click around and just kind of do, I don't know, what I think is random stuff and eventually it finishes creating the key. Now if you took that longer key, really, really long key, then it might take you a little while to generate enough entropy and randomness for your computer to use in order to generate that key. So it might not happen as quickly as it just happened for me. So just keep that in mind, don't panic, just keep using your computer and eventually you'll get your prompt back and it'll tell you, yes, we've just created a GPG key. It actually tells you a lot more than that, it tells you that it's created a trust database, trust DB, it's created your private key that is marked ultimately trusted because you trust yourself presumably and your public key as well. So now that we've got a key on our system, we can really, we could start using it right away. So if I, if I echo space quote, hello world, close quote, pipe into GPG dash, dash encrypt greater than, so I'm redirecting the output of this into test dot GPG. Now I'm basically just going to echo the phrase hello world and I'm piping it into GPG and I'm having GPG encrypt this, these words hello world and then I'm going to redirect the output of that command into a test file, so test dot GPG. So we're just, we're literally just, we're going to create a file essentially that is the encrypted phrase hello world. In order for GPG, remember GPG uses a private key and a public key, so in order for GPG to encrypt this, it needs to know who is allowed to unlock it, what public key is permitted to, to unlock this cryptic phrase. So it's using my private key right now, it needs a public key to sort of add to that algorithm and create the encryption, the, the way that you enter the, the, you define who can unlock this is you type in the name or the user ID of the person you want to be able to unlock it. Now you don't have any other keys on your system yet and on this particular box, neither why because this is a test box, I'm doing it at the same time as you are, so you have no one else to encrypt this for. I mean, you could type in Bob, but there's no Bob GP, you don't have anyone on your key ring, essentially. So right now, let's just encrypt it for ourselves. So I'm just going to type in clatu and hit return and it, it, it scans my little key, my key chain and it says, okay, I see a clatu, I'll go ahead and assign, I'll use that public key and your private key, so really it's the same public and the private is both mine, but that's fine to encrypt this thing into another user ID. So if you want someone else to be able to open this message, then you could type their name in, but again, you have to have them in your key chain and you don't have anyone in your key chain yet and that's fine. So we're just going to end this process by hitting return and it unceremoniously returns us to a prompt. So now if you do an LS in your current directory, you'll see test.gpg does exist and if you cut test.gpg, you see gibberish, that's what you want to see. My, my terminal shows, yeah, really ugly gibberish, it's not just nonsense letters, I mean it's nonsense characters that I've really never seen before on my computer. So that's a good thing, that is an encrypted, encrypted message. So now we could also do a gpg, space-dash decrypt, and then give it the name of the file, so test.gpg. I hit return and it says, okay, you can unlock this as long as you've got a passphrase. Why is it asking me for a passphrase, and how does it know I am who I am? Well because my little gpg program running in the background, it knows that my private key and my public key are associated with the user executing these commands. So the fact that it just asks me for a password is simply because it recognizes who I am, it's aware of my private and my public key. So there's a little bit of invisibility already going on, it's not like we have to tell it to use class 2's public key to unlock this thing, it already knows that. And sure enough, when I type in my password and I hit return, it tells me, okay, it's been encrypted with 1024-bit-elg-e-key, the ID number of that key, it was created on this date by class 2 with blue hair and augaster, add class 2 at member.fsf.org, and then it spits out the text of that message, which was the phrase, hello world, and that's how you encrypt and decrypt things. So for all of you who have been using, say, true crypt or some such program as that, you can actually do the same thing with gpg. So if I had a whole folder of stuff that I want to do in crypt, I'll just make a test folder here, test-durr, mkdurr, space, test-durr, makes a test directory, and then I'll go in, well, I'll just pipe in some random stuff into some files in test-durr, so I'll list user bin in there, and I'll list user sbin into a file, and then I'll copy jpeg out of my pictures folder, here's some cats, so copy those into the test directory. So now I've got, I've got about three files in this little test directory now. So now if I wanted to encrypt this whole directory, all I would have to do is tar it up, so I'll tar, space-cf, create file, test-durr.tar, and then the name of the directory to use as the source, so space, test-durr, so now it's tarred, test-durr.tar, and now I can encrypt it by jpeg, space-dash, encrypt, test-durr.tar, and again, it's going to ask me, well, who do you want to be able to unlock this file? So again, I would just, since I don't have any friends yet, I would type in clatu, and it asks me for another user, well, I don't have any other users, so I just hit return, and then it's done, because these are really small files, and sure enough, now I've got a test-durr.tar.gpg. So for all the world, that is an encrypted folder, and no one could tell what was in there. And in order to decrypt it and view the files inside, they would need to have access to my private key, and to the public key for which it was intended. So in this case, again, we're encrypting stuff for ourselves. So if they had the password to our private key, and they were on our computer, they could indeed decrypt that file pretty easily. But presumably, you wouldn't tell people your password to your private key. So even then, people shouldn't be able to just go in and decrypt it without knowing your password to your private key. So lots of levels of protection there, that's kind of nice. Let's talk really quick out of back of this key up. That would be gpgspace-dash-export-secret-key. And that would export your secret key. You would probably want to redirect that to clatu.secret.gpg.key or something like that. And then you would probably want to put that in a very safe place, because again, the whole equation comes tumbling down if your secret key, if your private key, is known by other parties, that kind of ruins the whole mystery of it. So keep that safe, keep it secret, keep it safe, and back up, I generally speaking, I back up my .gnu-pg folder, because that's got my key ring in it, and all that other good stuff. Now, another thing that you can do and probably should do is upload your key to a key server, and not your private key, your public key. And the reason you want to do that is because in order for gpg to work, people need to know your public key. They need to be able to encrypt stuff for you, and decrypt stuff that has come in from you. So that's kind of an important thing. That public key wants to be known. That's why it's called public. And you can do that by send keys. You do a gpg-send-keys, and then you would need to know your ID. So actually, let's do this first. gpg-space-list-keys. That'll list all the keys in your key chain, but the first one you'll recognize is your own. That's your actual key. And it tells you the identifier, the identifying number of your key. And you'll see that under, well, the last line of your key block, it says pub-1024-delta-f-e-e, blah blah blah, 2013-09, whatever, uid-clat-2-blue-hair-adcaster, and then sub-1024g-2b564-delta-0a. So the two beta-564-delta-0a is the identifying number of my key, or more specifically, the number of my key as identified by the username that I have provided. That's typically the one that I use. I don't know that there's best practice in terms of which one you should refer to, but either one of those will do. The fe-e-0-0, whatever, or the 2b564-d-0a, whatever. So either of those identifying numbers will do. So if you do a gpg-space--sind-keys, and then paste in that identifying number, and then hit return, that should send it to a key server somewhere out on the internet. Which key server it sends that information to will probably simply depend on whatever distribution you're using and what kind of presets they have in place on my Fedora test box. They already had one kind of assigned, and much to my surprise, it just sent it, which I really did not mean to do. On Slackware, they don't preset that for you, and you have to define one yourself. There are a couple of different servers out there. There's a sort of a new one from Fedora, actually, themselves, which is I think keys. FedoraProject.org. So you can use that one. There's one, I think it's pgp.mit.edu or something like that. So yeah, there you go. There's our servers out there, and then of course servers typically marry each other after a while. So you've got sort of, you've got key servers talking to other key servers so that your public key gets propagated fairly quickly all over the place. And again, that is what you want. That's part of the model of the gpg system to have that public key out there so that people can grab it, use it along with their private key to send you a message, send you a message, and then you can use your private key and their public key to then decrypt what they've sent you in vice versa. Okay, I hope that all made sense. I think it did, but now we should take a quick coffee break and then move into actually using this technology in everyday emails. Oh, wait a minute. What am I doing? It's the wrong podcast. We don't take coffee breaks at hacker public radio. We're going to jump right into this email stuff, but you could pause it and go get a cup of coffee if you really wanted to. I'm not encouraging that necessarily. There are lots of different email applications out there. Clients, I mean, and you can use any number of them. The two that I know, the three that I know work with gpg are pretty much transparently are thunderbird, k-mail, and mutt. And the reason I know that those work transparently is because I use them. I will describe how to do thunderbird and mutt. And hopefully the ideas presented here will sort of translate easily into the other programs that you may find. Thunderbird doesn't actually support it out of the box. You have to install an add-on. K-mail supports it out of the box, so it's pretty darn easy with K-mail. But thunderbird, you have to add that on. And since thunderbird is a lot more portable than K-mail, I would like to go over that one. And then mutt, of course, is mutt. To get an add-on in thunderbird, you go to the thunderbird menu, wherever that is. It depends on what version of thunderbird you're using. They've moved it over to a little hidden menu over on the right lately, but you can find it elsewhere. Maybe in the file menu or something if you're using an older one. Either way, get the add-on. And the thing that you're looking for in add-ons is called in-nig-mail, e-n-i-g-m-a-i-l in-nig-mail. Now, when I search for it in the thunderbird add-on search menu or what it's search bar, it comes up as a results with the best match. And it only gives me the top five. None of which actually matched the word in-nig-mail. So if you set your filter to the name, match the name, still won't work. And then down at the bottom of the results, the first five results, click see all 54 results. Once you do that, it will let you see more results. And it does that by taking you, I think, to the web page, like the add-on web page at like get thunderbird.org or mozilla.org, whatever. And the top match at this time is indeed in-nig-mail. And it's a featured add-on. So featured that it doesn't come up in your standard search. And then if you roll your mouse over it, you can click add to thunderbird. And it adds, it warns you as it will, that it's not a mozilla project. You can't really vouch for the developer and so on. So click through that and go ahead and just install in-nig-mail. It would be the correct answer there. This is one of those plugins that requires a restart of the application. So once it is installed, there's a little bar up at the top that says the install will finish once you restart thunderbird. And then it gives you a button to restart thunderbird now. And then sure enough, it has installed. So once thunderbird opens back up, you won't really see a whole lot different. If you look closely, you will find a, that there's a decrypt button possibly somewhere up at the top. Again, it kind of depends, you know, on what version of thunderbird you're running this. I don't know, this is again on my test box. So it's whatever Fedora is on right now is what I'm running. So there's a decrypt button, but it's grayed out. And that's normal. The time that in-nig-mail will sort of present itself most obviously is when you compose a message or write in thunderbird terms. So if you click the right, that's W-R-I-T-E button at the top of the thunderbird window, then you get a new empty message. And you can go up to the, you'll see now a menu at the top of that, of that window or, or, you know, wherever you see your menus. And you will see that there's a file edit view, insert format options and open PGP. This is the place you're going to want to be. So just to kind of prompt thunderbird to make us configure the, the keys that we want, we will just go ahead and say that we're going to sign this message from the open PGP menu sign message. It pops up a warning and it says you did not yet configure open PGP security for the selected identity. Do you want to do this? So we'll click configure. This takes us to a open PGP options dialogue box and we will say, okay, so enable open PGP support for this identity. And by quote, identity, it means the person, the person and the, the email account and everything that you are using thunderbird for. So if you hadn't, you know, if you've got thunderbird set up for like one email address, then that identity is that one email, email address at your username. If you have thunderbird set for multiple accounts, maybe you have a work email, you have a personal email, you have an internet email or like a web mail account, maybe you've got lots of different identities. So you may want to only use your GPG key for a certain one of those identities. So whoever you are composing this message as, which right now, since I only have clats who configured in thunderbird, that's the identity to which it is referring. So yes, I will enable GPG or open PGP for this identity. And it says use email address of this identity to identify the open PGP key. You could do that, but I'm going to, I would prefer to use a specific open PGP key. I just prefer to do it that way. I'll select the key. It pops open a select, a secret open PGP key to sign. It auto detects my .gnu PG folder now because it's looking for keys on my local system. So I select that key and it fills in the little hex code number thing. I don't know if it's actually hex code, but it's a number anyway with an x in it. It looks really technical. And then it gives me a couple of default options. So the defaults you can do for a GPG email are that you could sign the message, but not encrypt it. So basically you're just saying, you're including your public key along with the message. You're signing it with your GPG key. You're not actually encrypting anything. It will be human readable by everyone. It's not getting scrambled. You could also sign the encrypted message by default. So you're sending your public key and you're encrypting the message by default. Meaning it will come through as a scrambled blob that no one can read unless they have the correct public key and their own private key. Or you can encrypt the message by default. I find that's usually not something that you want to do because not everyone in your life probably uses GPG. If so, you're a lucky person. I do not have everyone in my life using GPG keys. So encrypting a message by default would be a bad idea. Or I could use GPG mine by default. Never use that. Don't really know what it means. So I'm going to sign the non encrypted messages by default. And I'm going to say, okay to that. It tells me that I've just made some settings and do I want to confirm that and I do. And then I could type out this message to anyone. And you'll see that when you send it to, I mean, if you send it to yourself or something or to another account that you might own, you will see that at the bottom of your message now or somewhere in your message, I forget where a Thunderbird puts it. But I think it's at the bottom. It puts a big long, ugly string of random looking letters. That is the representation of your GPG key. And people could use that to then import your public key or whatever or look at it against what they have on file for you, whatever. So that's just signing it. If you want to encrypt it, you could go to the OpenGPG menu or the OpenGP button at the top of the Thunderbird window and tell Thunderbird to, yes, I want to encrypt this message. Now that's going to encrypt the message for the email address that you are sending it to. It's going to cause problems if you don't have that person's key in your key chain. So I'm going to hit send it's going to ask me why it can't find on record a key for this person that I'm sending it gourd at www.geneworldorder.info. There is no, I don't have that person's key. Okay, so here's where we're getting into the idea of the public and private key pair. We were able to use GPG earlier in the terminal because we had both our own private and our own public key. That's that's easy. We can pair those two things together and encrypt something. But if we want to encrypt something for someone else and send it to them, we need to get their public key onto our computer so that we can pair our private and their public key, generate the encryption, do the encryption and then send it. So that's not so hard. I find the easiest way for myself just to go back to the terminal and do a GPG space dash dash search dash keys and then type in the name of whoever you're searching for. So I'm going to do a GPG dash dash search dash keys space gourd and actually I don't know any of these gourd because there's not really a gourd that I know and they're all from 2000 and 2001. But anyway, if I there's nine results for gourd, one of mine, one of which is mine, my real key, but that's not what I want. I want some other gourd. So I'm going to do a GPG or rather I'm going to, it asks me keys one through nine of 19. Okay, that's why. So I'm only seeing the first nine for gourd, enter a number or next or quit. So I'm just going to randomly choose the second result. I type in two and it imports that public key. So now if I if I look at this person's email, which is a Spanish email, I think ES, right, that's Spain and it looks pretty well confusing, but I'll just paste it into my Thunderbird. I'm not going to send this message. I just want to, you know, I just want to see what happens if I actually that won't be possible. Now I'm offline. It won't work. So I'm going to click send this message. And so sure enough, it goes through. And in fact, if you if you look at what you're sending in your sent box, if you went offline like I did, then you'll see gibberish. It says begin PGP message. Character said is ISO 8859. I'm not using UTF8 really. Version GNU PG comments using GNU PG with Thunderbird and then a bunch of gibberish. I'm going to delete this message because I don't know who this Gort is and I don't believe that he probably wants to receive email from me in spite of my name relation to him. That looks like it works. So now if Gort was to get my message, then what Gort would need to do if he didn't already have my public key, he would need to go search for my public key, import it into his key ring, and then his email client would probably decrypt that message for him. And that's kind of that's how this works. So that doesn't tend to be the way I use it. It tends to be more like, hey, someone just sent me their public key. Now I can start encrypting messages to them and I don't have to go search for their key personally. And that's simply because a lot of people do have keys on servers that are no longer really useful. And so if you send them something encrypted, they'll write you back and say, hi, I have no idea what you just said because I opened that GPG key or I created and uploaded that GPG key 10 years ago and I haven't used it since. So please just tell me what you said. So I tend to get verbal or email confirmation from people that yes, I want to use my, you know, let's start communicating with GPG encryption and then maybe they'll send you their public key or you then you can search for it and kind of look for their name and their email pair. And all you do is it's GPG space dash search keys and then their name or their email or whatever and select the number that is the correct result and it will import it into your key chain for you. There is a GPG import keys or import key and if someone sends you like a key then you can do that. That works too. But I think more often than not, I tend to get confirmation from the person that yes, they want to start using GPG. I search for the key that, you know, under their name and email and then I import it that way. And that's sort of it. So that was, that's Thunderbird and Enigmail. It's really not that hard. Now the nice thing about this is that if someone sends me an email back that is encrypted with my public key, Thunderbird is smart enough and GPG is smart enough in the back end to recognize that this is an encrypted thing that they're that we're dealing with here. And so it just sort of automatically decrypts it for me. And if I might be thinking of K-mail but I'm pretty sure it gives me like a little box at the top of my message viewer pane where it says like this wasn't, you know, this was a GPG encrypted message from user whatever. And so you know that you're reading something that that really is encrypted but you're seeing the decrypted version of it. It's either Thunderbird or K-mail that does that. Something graphical. So that you know it's encrypted but you don't have to bother with like going through any kind of legwork, you don't have to copy the message into a file and run it through GPG manually through a terminal, you know, it's just, it just all happens magically on your computer in your email client. And the advantage here of course is that it is encrypted. It's encrypted when it's saved, you know, to your to your computer. It's an encrypted entity. It's not being decrypted until you launch your email account and tell it that you want to view that message. And then it decrypts it for you. The other good thing about that is that it's obviously encrypted on any server that it exists upon. So if you're using a web mail service then they have your email yes but it is encrypted email that doesn't make any good sense to them at all. And so that's kind of nice. Okay, so that's Thunderbird. K-mail is very similar in terms of setting it up. I'm not going to go through that because it's not quite as portable as Thunderbird. And MUT is a little bit more a little bit more work to set up correctly. And I want to kind of do an overview because it is actually a lot of a lot of work to get it going. I mean not a lot of work but a fair amount. So the first step would be to use or to make sure that your server has GPG installed which I'm assuming if it's a Linux server then it would have GPG installed. And again which GPG would would confirm that for you. And sure enough I have GPG installed actually in my bin folder on the server. So it's not system wide. It's just in my home folder. So now if I go back out to my home folder and I do a less on my MUT RC file and I scroll way down to the bottom where I have all my GPG stuff then I have a lot of different options being set for PGP. So for instance one would be set PGP underscore encrypt underscore only underscore command equals. And then it invokes you something called the PGP ERAP. That's an email wrapping program that WRAP PGP ERAP which is in user bin on this computer space GPG space of bunch of options and then encrypt two and then my key number and then a bunch of other options to show to direct it at the text that it should encrypt for me. I will include all the like a sample MUT RC file in the show notes but when I go into MUT and I hit M to create a new message I type out a recipient. I type out a subject. It takes me to EMAX. I type in the body of my message. I save that message. I get out of EMAX. Then it takes me back to my MUT screen where it's saying okay are you ready to send this. So by default I have it to set in my MUT RC file to to sign my message which is fine normally. I like to sign by default. But in this case let's say that I want to encrypt it. So I hit P for PGP menu and then it gives me a list of options and that's encrypt, sign, sign as both inline format or clear. I don't know what inline format and clear mean but the encrypt and sign obviously and sign as but I only use encrypt and sign. So sign by default so really I only use encrypt. So if I hit E for encrypt then it's going to now invoke GPG with a certain set of options as defined in my MUT RC file and it's going to in other words encrypt my entire message with my right now the my private key and the person to whom I just made my email out to they're their public key and then if I sent it then it would be it would be sent. I'm not going to send it and I'm not going to post on the message but that's how that works. So it's it's practically the same thing. It's just it's just a little bit more manual mostly in the sense that you have to enter a bunch of new stuff into your MUT RC file. It's not pretty. It's a bunch of code. I stole it from somewhere online. It works really really great. It works quite well. I've never had a problem with it. I've gotten messages from other people. I've you know it decrypts fluidly just as fluidly as on Thunderbird. You never really realize it's encrypted except that you get a bunch of open PGP output at the top of the message to sort of show you hey this has been signed and it was encrypted and you're viewing it using this public key and it's as simple as that. And again the same rules apply. The the reason you're able to encrypt something for someone is because you have their public key. The reason they're able to encrypt something for you is because they got your public key and that's all anyone ever needs is public keys. You don't ever share your private key and you can use GPG based encryption on email from the moment you send it over the internet to the moment that it gets to their computer until they explicitly tell it to decrypt for them and and depending on their the software that they're using it may not even might not actually decrypt it. It might just be showing the main decrypted view which then goes away once they close that menu or that window. So hopefully that helps you see how easy it is to to encrypt and decrypt files. It's it's super easy. I mean it really is GPG set yourself up with the GPG key pair and starting encrypting your files if you want and starting encrypting your emails and make sure make sure that you back up your private key. You really want to back up your private key. Did I say that you should back up your private key because that's what you would want to do. If you if you start encrypting stuff whether it's it's sent mail or whether it's files and then you lose your private key you will not be able to decrypt those messages anymore. So be aware of that. But other than that caveat this is a pretty pretty neat and easy way to encrypt stuff. So try it out. My public key is listed on the key servers out there. So if you do a GPG dash dash search dash keys and then clatu where you could even to make it more exclusive or whatever just do a search for not clatu because that's there's only one not clatu and that's me and it's pretty pretty obvious I think it it lists all the different identities that I've that I've got online. Just grab that and start emailing me encrypted emails and that would be cool because then we'd be all secret spy like. So do that have fun. The more you use GPG encryption the less suspicious it looks. So use it often for even little little everyday messages just encrypt it. The more noise there is out there the better. Thanks for listening. You have been listening to Hacker Public Radio at Hacker Public Radio. We are a community podcast network that releases shows every weekday on day through Friday. Today's show, like all our shows, was contributed by a HPR listener like yourself. If you ever consider recording a podcast then visit our website to find out how easy it really is. Hacker Public Radio was founded by the digital dog pound and the infonomicum computer cloud. HPR is funded by the binary revolution at binref.com. All binref projects are proudly sponsored by linear pages. From shared hosting to custom private clouds, go to lunarpages.com for all your hosting needs. Unless otherwise stasis, today's show is released on the creative commons, attribution, share a like, 3.0 license.