[00:00.480 --> 00:01.120] Please enjoy. [00:07.830 --> 00:08.810] Thanks for coming, everyone. [00:09.090 --> 00:12.970] What we're going to talk about today is developing software without revealing your identity. [00:16.210 --> 00:31.730] Basically, the pseudonymous software development, creating an identity in cyberspace that people aren't able to track back to your actual real identity in the real world here, Mute Space, in order to protect yourself from any kind of retribution for developing the kind of software that you want to write. [00:33.110 --> 00:36.170] More and more restrictions are coming at our freedom of speech in the form of source code. [00:36.670 --> 00:44.950] And this is one potential solution that I think might be beneficial to those of us who want to write software that may not be popular or may not be sanctioned. [00:45.630 --> 00:48.230] So, what is pseudonymous development? [00:48.410 --> 01:01.530] Well, it's basically, again, development that's tied back to an identifier that allows you to be clearly, easily, and uniquely identified in cyberspace, but has no ties back to the real world that anyone can determine without an extreme amount of effort. [01:01.690 --> 01:04.890] What we're going to use for the talk today is PGP keys and PGP key ideas. [01:04.910 --> 01:16.670] PGP key ID is basically the tail of the hash of the key material for PGP version 4 to shall one sum of basically your public key information. [01:16.990 --> 01:21.410] So, it's not guaranteed to be unique, but it's unique enough for us for our purposes. [01:21.990 --> 01:24.030] We'll also talk about strong distribution. [01:24.730 --> 01:34.770] And strong distribution is a cryptographic model of distributing software so that software can't be easily modified or misrepresented. [01:34.910 --> 01:36.610] or damaged in transit. [01:38.610 --> 01:42.950] Basically, protecting everything that you're distributing in all your communications with public key signatures. [01:43.290 --> 01:44.730] Or, in our case, PGP. [01:44.950 --> 01:47.330] You could also easily do this with X.509 certificates. [01:48.450 --> 01:51.830] Most commonly, you know, people are familiar with Apache Software Foundation. [01:51.830 --> 01:58.990] They use PGP pretty extensively to, you know, protect their software archives, their releases, and even their security communications. [02:00.010 --> 02:02.670] X.509, a good example of people using X.509 is Microsoft. [02:03.150 --> 02:04.410] They do a lot of their signatures. [02:04.770 --> 02:05.690] They have their own CA. [02:05.990 --> 02:10.550] And basically, any updates you download from Microsoft is signed with their X.509 certificate. [02:12.290 --> 02:13.650] So, why do we need it? [02:13.770 --> 02:17.590] Well, we've got a terrible patent system that's been broken for a long time. [02:17.850 --> 02:22.890] It's very easy to accidentally, you know, violate a patent. [02:23.110 --> 02:25.930] And, you know, what are the repercussions of violating a patent? [02:26.150 --> 02:28.950] Well, lawsuits are a big problem. [02:28.950 --> 02:30.030] It's a big problem for developers these days. [02:30.330 --> 02:39.930] If you accidentally violate a patent, you know, some obvious computing methods and models that I would really term discoveries or mathematical truths have been patented. [02:40.110 --> 02:45.010] So, things like XOR, you know, XOR black or white pixels is actually patented. [02:47.190 --> 02:53.150] So, if you do violate a patent and you're signing your name on your source code, you're open to a lawsuit. [02:53.150 --> 02:56.590] You can even face imprisonment now in the United States for some things. [02:56.950 --> 03:07.170] The Digital Millennium Copyright Act, you know, has made some pretty strict limitations on what you can do as far as reverse engineering and writing certain kinds of code. [03:07.430 --> 03:10.650] Things like DeCSS, a lot of us are familiar with. [03:12.450 --> 03:12.930] DRM. [03:13.150 --> 03:14.950] SKIPJACK was a big thing a few years ago. [03:15.210 --> 03:17.950] Basically, cryptography was a backdoor for the government. [03:17.950 --> 03:21.570] If you were to try and violate that or make illegal use of that backdoor. [03:23.390 --> 03:28.270] Developers are, of course, open to lawsuits for trade seekers of their, you know, that their employers may have. [03:30.390 --> 03:43.510] It's not so bad in some states like California, which have a right to work law, but in many other states in the United States right now, once you work for a company doing a specific thing, you know, maybe high availability failover or certain kinds of operating system or storage design, [03:43.510 --> 03:50.670] it's very difficult to, for example, start your own company or go into private consulting without some pretty extreme liability risks. [03:51.710 --> 03:54.250] Again, there's the DMCA. [03:55.050 --> 03:56.570] RIAA has sued a lot of people. [03:57.290 --> 03:58.970] MPAA is also considering it. [03:59.170 --> 04:02.970] A lot of companies have been shut down in the peer-to-peer world and a lot of lawsuits have been waged. [04:03.230 --> 04:04.490] Napster is a really good example. [04:04.890 --> 04:07.930] There's a few other companies in Australia that have had some problems. [04:08.950 --> 04:11.490] And you even have to be concerned about unintended usage. [04:11.490 --> 04:25.270] If you release a peer-to-peer sharing program, for example, with your real identity tied to it, and it turns out that that program is primarily used by your users, by people you don't even know and maybe didn't write the program for, to distribute pirated software or pirated music, [04:25.790 --> 04:27.850] you could face some liability there. [04:28.670 --> 04:32.550] It would be a burden upon you to prove that you did not write the software. [04:32.710 --> 04:33.890] It's primarily a piracy tool. [04:35.630 --> 04:39.750] There's other sources of chilling effects right now on source code and computer programming. [04:40.470 --> 04:43.410] Employer mission confusion is one of the biggest ones that I've personally kind of faced. [04:43.530 --> 04:47.650] And it's like, I used to work for a university, a public state university in Florida. [04:47.990 --> 04:56.330] And the university was having a bit of an identity crisis over whether it was a public university to educate students or a private incubator to launch startup companies. [04:57.390 --> 05:08.490] Not the university that I worked at, but one of the ones in the same university system in the same state, actually put a graduate student in prison because he refused to turn over an invention, which he had made in chemical engineering after leaving the school. [05:10.670 --> 05:14.790] You know, when you're working for one of these universities, are you a researcher or are you an entrepreneur? [05:15.230 --> 05:19.670] Are you a nine to five employee and what you do at work is the property of your employer? [05:19.670 --> 05:24.670] Or do you become the property of the institution that you work for or the company? [05:24.930 --> 05:27.430] You know, are your ideas their property 24-7? [05:27.750 --> 05:29.650] And what about after you leave? [05:30.710 --> 05:34.410] And there's even the problem with the American system of lawsuits right now. [05:34.690 --> 05:37.850] You know, what I title American entitlement liability. [05:38.090 --> 05:42.650] The idea that the authors of the game Grand Theft Auto may be responsible if someone steals a car. [05:43.070 --> 05:47.830] Or that the DOOM, you know, software programmers might have been responsible for the Columbine shooting. [05:48.010 --> 05:49.430] And there are actually civil lawsuits launched. [05:49.610 --> 05:51.670] And that's a tremendous financial burden. [05:51.850 --> 05:55.490] So you really got a case of two adversaries. [05:56.290 --> 06:03.790] The government, which a lot of people will tell you, you know, I don't think the government can break strong cryptography. [06:03.790 --> 06:05.730] I don't think the government can factor large numbers. [06:05.890 --> 06:07.570] I don't think that they have quantum computers. [06:07.590 --> 06:09.010] And I kind of hold the opposite view. [06:09.190 --> 06:11.330] I think that the government can break strong cryptography. [06:11.330 --> 06:12.430] I think they can break RSA. [06:12.430 --> 06:16.110] And I think they can factor up to 4,096, you know, bit keys. [06:16.410 --> 06:19.850] I think that people are really underestimating their capabilities. [06:20.990 --> 06:27.230] Whenever I do something encrypted, I consider it given that the government is going to be able to read it at any time if they want to. [06:28.730 --> 06:30.850] More interesting in the adversaries is corporations. [06:31.290 --> 06:37.710] Your employer, companies out there who are writing similar projects to the free software that you're developing. [06:37.970 --> 06:41.250] Companies that may own the market right now for the software that you're developing. [06:41.250 --> 06:51.450] They're really limited by their own property in terms of their ability to break PGP keys or, you know, the number of lawyers on their staff or that kind of thing. [06:51.630 --> 06:55.810] So, if you're working with software that's dealing with smaller companies, it may not be a big deal. [06:56.430 --> 06:57.590] They're limited by borders. [06:57.870 --> 07:01.350] For example, if you're outside of the United States, it's a lot more difficult for a U.S. [07:01.450 --> 07:06.010] company to have any kind of retribution enacted on you for writing software that they wish you wouldn't write. [07:06.890 --> 07:09.590] They can attempt to get governance to act for them, but it's not very easy for them. [07:10.370 --> 07:12.510] So, what do most people do in the face of these chilling effects? [07:12.690 --> 07:14.530] A lot of people just don't write any code anymore. [07:14.950 --> 07:20.230] This is really a strong case for people, I think, working at the very large companies like IBM and Sun and stuff like that. [07:20.390 --> 07:23.130] They're just not participating anymore in their free software community. [07:24.110 --> 07:27.450] They send small patches but ask not to be named from the developer. [07:27.450 --> 07:33.170] And that's a little bit of a problem because they're trusting the person developing the software not to include their name or not to close what they've done. [07:34.650 --> 07:41.770] Trying to contribute in secret without actually having mathematics behind you to back you up and enforce that secrecy is a major problem. [07:42.870 --> 07:44.910] You can try and separate your online identity. [07:45.070 --> 07:46.510] And this has been in the news a lot. [07:46.730 --> 07:52.050] You know, how do you separate your MySpace profile or something like that from, you know, who you actually are in the world and keep it from impacting you? [07:52.050 --> 07:58.830] What you say online, what you say on mailing lists, websites you're a member of, you know, maybe political parties that you've contributed to and that type of thing. [07:59.910 --> 08:03.250] You can contribute under a pseudonym but there's no strength in that pseudonym. [08:03.450 --> 08:08.430] A lot of people have had pseudonyms unmasked and, you know, newspaper articles written about them and what they've done online. [08:09.690 --> 08:11.630] You know, what happens if you're discovered and exposed? [08:11.790 --> 08:14.870] Well, if you're writing software, a lawsuit is certainly a possibility. [08:16.150 --> 08:17.450] Lose your job, possibility. [08:17.450 --> 08:22.210] It's very difficult to get hired, obviously, if you've been fired for stealing trade secrets or something like that. [08:22.350 --> 08:24.130] Even, you know, if you weren't actually doing it. [08:24.310 --> 08:30.450] So that's really the subject of this talk is what model could you use if you wanted to write software but wanted to make sure you wouldn't be discovered. [08:31.870 --> 08:35.230] In terms of the government problem, I just wanted to kind of mention the Free State Project. [08:38.570 --> 08:45.510] It's really a great project and I think it's really the only way that we can deal with the government menace that we kind of have right now in the United States and all the terrible things that are happening. [08:45.510 --> 08:51.470] It's basically an effort to get people to move to a single state and kind of reduce the power of the federal government in that state. [08:52.030 --> 08:57.330] So I'm a member of it and I really encourage you all to go take a look at it because it's not going to get any easier in the government. [08:57.510 --> 09:01.930] I really do think that they can break strong cryptography. [09:02.270 --> 09:07.530] You know, the idea of crypto anarchy is a nice romantic idea and it's really cool to think about and kind of play with in your head. [09:07.530 --> 09:13.670] But, you know, at the end of the day, we really don't know their capabilities and they're a lot farther advanced than ours have. [09:13.770 --> 09:14.610] And history has proven that. [09:16.610 --> 09:19.150] So, actually, let's get our hands dirty here. [09:19.230 --> 09:22.510] What are the core components necessary to do for student anonymous development? [09:22.970 --> 09:25.450] Well, we need a key server infrastructure and we're good there. [09:25.570 --> 09:26.970] We've got a few different networks. [09:26.970 --> 09:28.890] The anonymous email infrastructure. [09:29.190 --> 09:31.350] We have MixMaster from the Cypherpunks. [09:31.670 --> 09:33.730] And anonymous posting infrastructure. [09:33.930 --> 09:35.570] We have email to use that gateways. [09:35.710 --> 09:42.210] So we can use that news to distribute things like security advisories and even release announcements and things like that. [09:42.390 --> 09:47.110] To actually distribute the software archives themselves if they're too large to use that easily. [09:47.530 --> 09:50.550] We have onion routing infrastructure now in the form of Tor. [09:50.890 --> 09:53.810] And a lot of the peer-to-peer networks are starting to pick up onion routing. [09:55.830 --> 09:57.750] The first thing you need to do is create an identity. [09:58.350 --> 10:01.230] As I said, we're going to use OpenPGP for this demonstration. [10:01.990 --> 10:06.450] And basically, all you have to do is generate a PGP key with no identity information in it. [10:06.630 --> 10:13.850] So if you look at the top white box up on the screen there, you can see that that's a 2048-bit RSA key. [10:15.170 --> 10:17.090] With just the name of the pseudonymous hacker. [10:17.270 --> 10:19.090] It has no email address, no way to contact back. [10:19.270 --> 10:21.130] You can put whatever you want with a PGP key. [10:21.130 --> 10:25.350] PGP key format is basically a single packet that identifies the version. [10:26.730 --> 10:30.670] The actual key material, the date it was generated, and the date it expires. [10:31.810 --> 10:33.390] You can see we've got a sub-key down there. [10:33.550 --> 10:37.010] We can rotate sub-keys so you don't have to expire your public key. [10:37.750 --> 10:43.970] If we look at the second box right there, that's a public key from one of the Apache developers that I copied off the web. [10:43.970 --> 10:48.730] And you can see there that it's deeply integrated into the web of trust. [10:48.730 --> 10:54.850] And that's a very important thing that you need to do if you plan to use PGP keys for software for any kind of trust. [10:55.090 --> 10:59.790] And you can see that the way you would analyze this web of trust integration is you look at the different signatures. [11:00.050 --> 11:03.230] And you can see that they seem to vary based on date. [11:03.670 --> 11:09.250] There's a lot of differences there between, you know, they're not all the same day, they're not very recent. [11:09.470 --> 11:19.710] If you were actually to go to actually look at the different keys that are signatures of the primary key there, Mr. Stryker's key, you would look for a large number of signatures on those keys as well and keep tracing back. [11:19.850 --> 11:25.550] The more levels of trust that you go through in the web of trust, the more sure you can be that those are valid signatures. [11:26.870 --> 11:32.550] You definitely don't want to put a key out with no signatures on it or signatures that aren't easily identifiable as accurate. [11:32.770 --> 11:38.150] Because then someone can publish a key that's not your key and represented as your key. [11:38.330 --> 11:46.770] And then they can represent their software as your software and they can put things in there like, you know, maybe source code that erases the disk, you know, viruses, those kinds of problems, a bot, a backdoor. [11:49.610 --> 11:53.750] When you go through the web of trust, what you're actually looking at is what's represented by this graph here. [11:53.750 --> 11:56.250] This is a graph of the Philadelphia Linux users group. [11:56.950 --> 12:01.250] And I picked it just because it's a nice web of trust. [12:01.390 --> 12:03.090] It's very bi-directional. [12:03.410 --> 12:07.070] You know, people who have had their keys signed have also signed the keys to the people who signed their keys. [12:07.150 --> 12:10.070] So that's a good indication that they do know each other, that they've met in person. [12:10.670 --> 12:17.550] It's not a lot of one-way arrows here, which indicates that the person has signed the key but hasn't had their key signed in return. [12:17.970 --> 12:18.990] There's a lot of links. [12:19.110 --> 12:20.770] You can see the different strands. [12:20.770 --> 12:24.610] Each one of the black arrows represents a signature on a PGP key. [12:25.870 --> 12:28.670] The keys are colored based on the number of signatures they have on them. [12:29.090 --> 12:31.450] So, you know, how many signatures do you need on a key? [12:33.770 --> 12:36.290] Really, whether to trust a key or not is a personal decision. [12:36.550 --> 12:40.830] You just want to give people as much motivation as you can to trust your key as actually yours. [12:40.830 --> 12:46.410] I try and look for, you know, five to ten signatures spaced out over, you know, a few months of time, hopefully. [12:47.450 --> 12:52.770] And I hope that the web of trust is at least five or, you know, six levels deep across those keys. [12:55.110 --> 12:58.370] So what are the steps to actually developing software and releasing it? [12:58.490 --> 13:07.490] Well, write the software, sign a software archive with your PGP key to identify yourself as the author and state that, you know, establish that reputation. [13:07.490 --> 13:12.850] That the source code is written by you and you feel the source code is good, it doesn't contain errors, it doesn't contain viruses or other problems. [13:13.090 --> 13:15.950] You have to post your public keys so that people can verify the signatures. [13:17.090 --> 13:19.570] And then you distribute the software over a student anonymous network. [13:19.810 --> 13:24.550] People actually get your key, they get your software, and they have everything they need to actually run the program. [13:25.790 --> 13:27.950] You have to publish a method of contacting you. [13:28.070 --> 13:31.250] One of the biggest stumbling points I think a lot of people have with this kind of method. [13:31.990 --> 13:38.730] Or just publishing software anonymously without actually signing it and identifying themselves as, well, how do you get bug reports back? [13:38.910 --> 13:39.870] How do you get patches back? [13:39.990 --> 13:44.430] How do you get communication from the users about, you know, features they'd like to see? [13:46.210 --> 13:51.190] There are ways to have people post information in public forums encrypted so that only you can read it. [13:53.450 --> 13:55.870] Step one, write the software, that's obviously the hard part. [13:56.270 --> 13:58.410] Kind of assume that you know how to do that. [13:58.410 --> 14:01.050] Signing the software archive is very easy as well. [14:02.150 --> 14:03.990] It's a very simple command with GPG. [14:04.150 --> 14:05.410] It provides protection on the server. [14:05.610 --> 14:12.050] If your server gets hacked, someone can't go inside your software archive and insert viruses into the actual source code or, you know, malicious source code. [14:12.250 --> 14:13.550] It's protection in transit. [14:15.370 --> 14:25.130] If someone's going through a proxy or something like that, you can't easily do binary replacement of the software packets that you're downloading because they won't have a valid signature on whatever they're replacing your software with. [14:25.410 --> 14:27.870] And it provides protection for the customer on the end there. [14:27.870 --> 14:30.870] They have your reputation backing the actual validity of the software. [14:31.210 --> 14:33.950] And if their own computer gets hacked, they have a signed archive. [14:36.670 --> 14:37.730] Post your public key. [14:37.970 --> 14:40.070] There's many key server networks out there. [14:40.170 --> 14:42.570] MIT is obviously one of the best established and oldest. [14:43.350 --> 14:45.270] It runs on the PKS software. [14:45.850 --> 14:48.270] Subkeys.net is another one that runs on PKS. [14:50.730 --> 14:53.250] It is probably the most frequently used right now. [14:53.250 --> 14:55.290] And then there's one that I wrote called CryptNet that's out there. [14:55.510 --> 14:57.390] I like the CryptNet one because it's very graphical. [14:57.550 --> 14:59.290] You can click through the web of trust pretty easily. [14:59.410 --> 15:01.730] And it's got some other tools to help you evaluate the web of trust. [15:02.970 --> 15:06.330] It's generally a bad idea to post your public key on a single website. [15:06.330 --> 15:08.770] A lot of developers will post their own keys on their own websites. [15:08.990 --> 15:16.590] And, you know, if that website were to be hacked and that key replaced, it's not as easy to determine that if you're not using a key server. [15:18.710 --> 15:26.310] I think it's a major problem of key replacement if you're just distributing your public key through, say, the output of finger, you know, or a web page. [15:27.610 --> 15:37.390] You can make it available on a peer-to-peer network and make the hash of the PGP file or whatever available so people can just search for the key, post it in a news group, things like that. [15:37.890 --> 15:42.950] Again, I really think the key servers are the best place though because they provide additional tools to help you evaluate the web of trust. [15:45.450 --> 15:55.390] Now, to distribute your software, obviously you can use something like Tor, which prevents people from knowing where the source of the software is. [15:55.390 --> 15:59.070] You can use Tor at first and have it, you know, propagated onto a mirror network. [16:00.590 --> 16:06.710] Major distribution sites like SourceForge, as long as you access them to Tor or some other, you know, method of anonymizing yourself. [16:07.770 --> 16:12.570] You can email it up to USENET through one of the, you know, the anonymous emailer to USENET gateways. [16:14.210 --> 16:15.790] It's not that hard to get it out there. [16:15.930 --> 16:18.690] And if one of these networks were to fail, you'd have another one available to you. [16:20.610 --> 16:22.430] Publish a method of communicating with you. [16:23.430 --> 16:24.270] Alt Anonymous. [16:24.730 --> 16:31.390] You're using a PGP key, a public key, you know, as a method of allowing users to verify your software archive. [16:31.590 --> 16:34.330] Well, you can also use that public key to receive encrypted content. [16:34.570 --> 16:46.950] So, if someone has a bug report they want to send to you, they can encrypt that bug report with the public key that you've distributed to allow them to verify the software archive and post the encrypted ciphertext in a news group like Alt Anonymous. [16:47.250 --> 16:53.410] You'd be able to pick up that without really revealing that you're using Alt Anonymous to receive bug reports. [16:53.770 --> 17:01.250] And, you know, having it encrypted up there on the USENET, instead of just plain text, prevents someone from essentially watching the access of that content. [17:01.250 --> 17:04.290] Because no one knows what it is except, hopefully, you know, you. [17:05.490 --> 17:06.590] You can use sonography. [17:06.970 --> 17:10.610] You can have them hide communications with you in different formats. [17:10.750 --> 17:13.170] You know, maybe one of the binary archive mailing lists. [17:14.010 --> 17:15.910] You know, Alt Binary or something like that. [17:16.630 --> 17:18.670] Avoid giving out any kind of personal email address. [17:18.810 --> 17:21.090] You know, Hotmail, Gmail, anything like that. [17:21.090 --> 17:27.590] Even if you're not accessing it through an anonymization system like an open proxy, it's still just a bad idea. [17:28.330 --> 17:31.690] Email lists with no subscribers are kind of cool way to do it. [17:32.930 --> 17:40.430] Archive.org, I think, has got a system where you can automatically set up email archives about any kind of listserv or anything like that. [17:40.430 --> 17:48.910] So you can read it through the web, you know, and avoid some of the complexities of actually accessing, using that through modern providers. [17:52.350 --> 17:54.070] New releases are made the same way. [17:54.330 --> 17:57.890] You can safely use this method for many years without any kind of problems, I think. [17:58.830 --> 18:01.730] Alternative methods are available if a system goes down or shuts down. [18:03.250 --> 18:12.510] And in a worst case scenario, if you do find that you're unable to use any anonymous method on the Internet, what you can do is what people have been doing for many years. [18:12.690 --> 18:14.050] And that's just old sneaker net leaks. [18:14.070 --> 18:19.370] A lot of the original cryptography source code, they kind of surfaced in the 70s and 80s, came out this way. [18:19.550 --> 18:26.370] It basically mailed in a paper envelope to different people who were known to be willing to post it on the Internet. [18:26.550 --> 18:27.250] You know, cypherpunks. [18:27.410 --> 18:29.590] A lot of stuff kind of snuck out of different companies that way. [18:32.510 --> 18:34.890] So how would a patch actually work in this model? [18:35.230 --> 18:36.190] What would it look like? [18:36.190 --> 18:39.630] Well, a user gets the software and the public key. [18:39.770 --> 18:40.530] They verify it. [18:40.610 --> 18:40.970] They use it. [18:41.030 --> 18:41.750] They find a problem. [18:41.970 --> 18:42.570] An itch. [18:42.670 --> 18:43.310] They write a patch. [18:43.430 --> 18:43.950] They encrypt it. [18:44.090 --> 18:45.790] And post that cypher text in a public place. [18:46.130 --> 18:46.910] Developer encrypts it. [18:47.090 --> 18:47.950] Processes the patch. [18:48.070 --> 18:50.910] And makes a new release possibly with it. [18:51.730 --> 18:54.390] Or even issues a security advisory. [18:54.690 --> 18:56.810] A lot of people aren't signing their advisories yet. [18:56.890 --> 18:58.270] And they're not signing their software archives. [18:58.390 --> 18:59.190] And I think that's sad. [18:59.190 --> 19:01.830] I mean, it's something that would really benefit everyone, I think. [19:01.910 --> 19:02.870] And it's an easy thing to do. [19:05.330 --> 19:08.990] Now, a lot of people who write software do it because it helps them get jobs. [19:09.150 --> 19:14.130] It helps them build the reputation they need to get hired to get venture capital to start a company or something like that. [19:16.350 --> 19:18.950] Obviously, you know, there was a lot written about this by Eric. [19:19.950 --> 19:21.190] He called it ego boom. [19:21.310 --> 19:23.150] If you haven't read that essay, it might be worthwhile. [19:24.910 --> 19:27.530] You can prove your identity with zero-knowledge proofs. [19:27.530 --> 19:34.030] Or just by, you know, disclosing a secret that's made with the key pair that you have for the project. [19:35.390 --> 19:40.290] For example, if you want to prove to a potential employer that you're the person who wrote software. [19:40.570 --> 19:46.190] You can ask the potential employer to encrypt a secret with the public key of the project, the software. [19:46.890 --> 19:48.310] And provide you the cipher text. [19:48.470 --> 19:49.830] You can then decrypt it and prove that you know it. [19:49.890 --> 19:53.670] You can either use the zero-knowledge proof or you can just tell them, you know, a phrase or something like that. [19:58.180 --> 20:06.220] What's really interesting about the whole model of digital signatures, and I don't think a lot of people have realized this yet, is that you can make arbitrary statements about arbitrary content. [20:06.460 --> 20:13.380] Basically, what you do when you make a digital signature is you make a hash of some stream of binary information. [20:13.380 --> 20:17.840] And you produce a tightly compressed, certain size value from it. [20:18.820 --> 20:20.560] It doesn't matter what that value is. [20:20.660 --> 20:29.980] And a PGP signature is basically just a hash that's encrypted with your secret key that people can decrypt with your public key, and then verify by performing the hash themselves. [20:30.360 --> 20:37.220] So, a hash representation of anything can be digitally signed, and signatures can be circulated in detached forms. [20:37.220 --> 20:40.960] So, maybe you're not a software developer, maybe you're a security auditor. [20:41.200 --> 20:47.820] You can go and take a project, like Apache or any project, and audit the code. [20:48.720 --> 20:58.020] Make some kind of statement about the code, like, I found no possibility of an SQL exploit in this PHP program, or I found no possibility of a buffer overflow in this version of Apache. [20:58.020 --> 21:09.440] And you can produce that statement, and sign it, and post it to a mailing list like BUGTRAC or something like that, and collect a number of those security audits to build a reputation for yourself without actually disclosing your identity. [21:09.700 --> 21:22.300] That may be something that a lot of people find they have to do, as laws like the DMCA, and laws against reverse engineering and exploit circulation become more ingrained and tested and more common. [21:26.290 --> 21:28.870] So, how would you fork a project that was developed in this model? [21:28.870 --> 21:38.950] Well, it's easy just generating a new key pair, signature on the key pair, lens credibility if you get it signed by the previous project's key pair, or one of the developers from the previous project. [21:41.470 --> 21:42.870] How would this model be compromised? [21:43.610 --> 21:53.230] Well, the big thing is you don't want it to compromise your identity, but you also have to worry about the possibility of having your key pair, or any developer, compromised. [21:53.650 --> 21:55.850] Make sure the keys are well integrated into the web of trust. [21:55.850 --> 21:59.430] And the ability to perform key pair replication is important. [21:59.870 --> 22:04.710] So, there's certain packets inside PHP keys that you can add, essentially identifying a revocation key. [22:04.830 --> 22:05.430] That's a good idea. [22:06.010 --> 22:16.830] Definitely revoke the key if you think it's compromised, because the last thing you want is someone to actually kind of take over your project and your identity on the Internet there, and release, say, patches or new versions that are actually malicious. [22:18.350 --> 22:23.390] One thing to be aware of, though, is that possession of the key pair for the project would definitely be proof of involvement. [22:23.410 --> 22:30.030] So, if you're doing something and you don't want anyone to know, it might be a good idea to destroy the key pair after you conclude the project. [22:31.850 --> 22:33.630] What's involved in breaking a key pair? [22:34.630 --> 22:37.150] Well, normally what would happen is usually a search, right? [22:37.150 --> 22:42.470] The government would come in, you know, with a warrant, or, you know, a company would compel the government to get a warrant. [22:42.610 --> 22:49.130] And they would come and actually take your computer or your flash memory chip or your floppy disk or whatever, held your secret key on it. [22:49.510 --> 22:54.730] Uh, they'd then perform a password guessing attack against encryption of the secret key until they actually got a decrypted secret key. [22:55.030 --> 22:58.730] Proved that, you know, that key was part of the key pair that was involved in the software development. [22:58.730 --> 23:02.750] And then use that proof, possession of the keeper as proof to kind of go after you. [23:03.930 --> 23:06.910] Again, I think the government can factor large numbers very quickly and easily. [23:07.250 --> 23:17.310] This is a big old notation of actually how long it takes, we think, someone to factor a large number with the general number field SEVI. [23:17.470 --> 23:28.290] And if you look at how the general number field SEVI works, or the fields AC event, what it does is it generates a polynomial. [23:28.290 --> 23:32.950] It produces a result of a large composite number, and it produces two groups of, two ring groups. [23:33.610 --> 23:52.250] The rings interrelate in a certain way, so that what you basically do is you calculate candidate primes, the results with the polynomial, and you search for smoothness, and all the smooth candidates become part of one of the ring structures. [23:52.510 --> 24:06.530] And that ring structure, then you take those candidates and you find the best ones, and you do basically a difference of squares factoring on them to see if, you know, you know, on the related ring, the actual composite of a multiplication effort. [24:07.930 --> 24:18.970] If you find that one of the composite numbers in the, you know, the r prime, the different ring, factors in a certain way, then you get actually the private key. [24:20.530 --> 24:24.830] So we haven't seen any real advances in general number field SEVI in the last few years. [24:25.570 --> 24:42.250] There was a graduate student named Murphy, and I believe he was in Kentucky, who wrote a paper that said that the best possibilities for optimizing number factoring of large semi-prime numbers is in that polynomial selection step of the general number field SEVI. [24:42.710 --> 24:50.270] But back in the 1970s, there were people experimenting with multiple rings, you know, more than just two, and multiple polynomials. [24:50.410 --> 24:55.970] So the NSA is employing most of the mathematicians in the world right now, and all of the best ones. [24:55.970 --> 25:02.850] And, you know, what advances have they made in ring theory, and in factoring, and in the general number field SEVI, and, you know, what other options are there? [25:03.210 --> 25:09.430] Obviously, Revast published, you know, Twinkle, and some of the other optical factoring mechanisms. [25:10.950 --> 25:16.630] They've, you know, publicly announced that they actually did have a functioning quantum computer that was four qubits. [25:16.850 --> 25:18.570] You know, how many qubits do they have now? [25:21.190 --> 25:24.310] So, I really don't think that you should trust this completely. [25:26.610 --> 25:30.170] There are other ways that you can try and protect your identity, especially if you're working in a group. [25:31.750 --> 25:33.270] Ring signatures are a big thing. [25:34.610 --> 25:46.010] Really looking at any of the cryptographic protocols from the academic field, from the journals, for the last, you know, 10 or 15 years, the deal with secret leaking and how to best leak secrets is really a good thing to look at and kind of think about. [25:47.530 --> 25:49.830] Group signatures are obviously more well-established. [25:49.970 --> 25:51.790] It's easier to find source code and easier to implement them. [25:51.790 --> 25:57.390] But you can't unmask the actual signator in a group signature. [25:58.230 --> 26:07.270] But with the ring signatures, you can't unmask who actually out of a group has actually signed, say, a software archive in our case. [26:07.890 --> 26:09.890] It's a lot more harder to identify them. [26:10.010 --> 26:15.290] So, if necessary, you can use, you know, ring signatures in that format if you're working with a group. [26:15.830 --> 26:18.910] In terms of how you structure your PGP keys, that's really a personal decision. [26:19.070 --> 26:24.650] Do you have one PGP key that's a personal key that you use to sign your archives and sign your announcements and so forth? [26:24.830 --> 26:26.770] Or do you create a project PGP key? [26:27.590 --> 26:29.510] And does each developer have their own key? [26:29.590 --> 26:31.810] Or do you actually just share the secret and the public key? [26:32.870 --> 26:37.990] You know, those are all different ways that you can kind of structure the project in terms of what you're working on or how difficult it is to be concerned about. [26:39.410 --> 26:44.070] I've written a couple of documents that go step-by-step on how to do this stuff, if you're interested in it. [26:44.550 --> 26:48.110] Some of them are a couple years old now, and I do need to go back and kind of update them. [26:51.030 --> 26:53.030] But they're basically sound and they're basically there. [26:53.170 --> 26:58.650] If anybody has any questions about how to do any of it or anything like that, I'm really easy to get in contact with. [26:58.770 --> 27:01.650] And I am putting out some software that automates a lot of the processes for you. [27:03.810 --> 27:10.370] And I was going to go a little bit deeper into some of the math and that, but I decided against it because I went a little over in my last talk. [27:10.530 --> 27:18.450] But if anybody wants it explained like really in-depthly and actually see, you know, whiteboard work out of it and stuff like that, you know, let me know and I'm kind of happy to explain it to you. [27:20.450 --> 27:21.590] So any questions at all? [27:24.530 --> 27:32.130] What's to prevent the NSA and other spy organizations around the world from doing a time-memory trade-off with the prime number factoring? [27:38.660 --> 27:41.580] Well, I don't think there's really anything. [27:41.760 --> 27:49.820] I think that, like I said, you have to kind of assume that you're going to be factored eventually if you're trying to work with one, you know, against one of those groups. [27:51.080 --> 28:02.960] The thing that I think is most important about the NSA is that where they really made all the technical advances in the last few years is the ability to isolate single streams of communication, as well as graphing out who's talking to who. [28:03.220 --> 28:19.140] So, when you get a stream that small and you have such a good idea of what people are saying and who they're talking to and you know all about their life and you know everything they've ever written and you have an idea of what they read, you can kind of put together a vocabulary that they would use and you know all the most important things in their lives you can weight those And then you just do [28:19.140 --> 28:19.980] that dictionary attack. [28:20.240 --> 28:28.520] I mean, every PGP key that's fallen that I know of has been through a dictionary attack, with one exception, and that was Scarfo in Chicago, the mobster. [28:28.620 --> 28:29.460] They actually used key logging. [28:29.600 --> 28:31.080] They used a piece of key logging hardware to get him. [28:32.400 --> 28:34.920] And that was the FBI, and I think that's why it was key logging. [28:35.080 --> 28:40.960] I think that, you know, they're not going to just go ahead and break your PGP key if you're trading music, obviously. [28:40.960 --> 28:43.480] So I don't think it's a huge concern. [28:43.480 --> 28:45.140] It's kind of like, how do you keep a low enough profile? [28:45.940 --> 28:48.400] But, you know, how important is memory and stuff? [28:48.560 --> 28:49.400] It's really hard to say. [28:49.520 --> 28:53.480] I mean, it's important in general number of fields, but I think that that's so many years old now. [28:53.580 --> 28:58.080] That's such an old model that there's definitely better ways to factor out there. [28:59.160 --> 29:01.380] And I also wanted to comment on one thing. [29:01.520 --> 29:20.020] You listed a lot of requirements for the pseudo-anonymous development, and I feel that the Invisible Internet Project now, well, it's I2P now, fulfills a lot of that with the ability to have completely anonymous websites, where you could just run your Bugzilla and not have to worry about posting to alt.anonymous. [29:20.720 --> 29:38.680] And also the ability to, you can have a change gate so that people can go on Freenode and go to pound your project, and it will get sent over to the I2P IRC server where you can use your total onion-routed encrypted anonymity. [29:40.020 --> 29:40.980] Yeah, excellent point. [29:41.440 --> 29:43.540] Like I said, there's a lot of different projects and methods out there. [29:44.080 --> 29:46.640] Onion routing, you know, they're based on the same kind of stuff. [29:46.860 --> 29:49.560] Obviously, there's an invisible IRC project where you could actually have meetings. [29:50.740 --> 29:53.220] You're starting to see VoIP networks with onion routing built into them. [29:53.340 --> 29:56.200] And so there's a lot of different ways to do it. [29:56.240 --> 29:59.280] I wrote a lot of this stuff a few years ago, so it is old technology and old stuff. [29:59.420 --> 30:02.360] But it's only getting easier, so definitely take a look at it. [30:03.400 --> 30:07.900] Speaking of which, VoIP technology and onion routing, doesn't that sound like a lot of latency and jitter? [30:07.900 --> 30:08.560] I'm sorry? [30:09.700 --> 30:12.200] VoIP technology and onion routing. [30:12.500 --> 30:16.940] I mean, VoIP is very sensitive to latency and jitter. [30:18.160 --> 30:20.160] Doesn't that seem like a bad combination? [30:20.420 --> 30:23.040] I mean, for security, sure, but for having an actual conversation. [30:23.800 --> 30:28.640] Yeah, it would be difficult, but I think quality of service is improving tremendously. [30:29.380 --> 30:36.700] We're starting to see routers specifically built for VoIP with a lot bigger registers and caches and stuff like that, and more memory and stuff. [30:36.840 --> 30:42.020] So, you know, how could you deploy, you know, quality of service through a peer-to-peer network? [30:42.200 --> 30:44.500] Well, no one's really done it yet, but it's certainly something you could do. [30:44.620 --> 30:48.500] I mean, the software's out there and it's, you know, Linux kernel includes a lot of good quality of service source code. [30:48.500 --> 30:52.980] So, it would be a problem and it would be difficult, but I think that it's something that's technically solvable. [30:53.620 --> 30:56.180] Can you go back a slide so I can catch those URLs? [30:56.860 --> 31:02.400] My question was actually, like, what happens when social engineering enters some of this stuff? [31:02.520 --> 31:04.640] Like, if one of the keys becomes compromised? [31:06.240 --> 31:10.940] I heard someone mention that keys stay around for a while, and if it's compromised, it's a real pain. [31:11.380 --> 31:11.700] Right. [31:11.960 --> 31:15.060] How, like, how does that get handled, or how would you handle that? [31:15.120 --> 31:17.520] So, it's like identity theft in the real world, right? [31:17.540 --> 31:18.780] It's a real pain in the ass. [31:19.040 --> 31:19.360] Absolutely. [31:19.540 --> 31:20.400] It's very difficult. [31:20.840 --> 31:21.560] So, what do you do? [31:21.840 --> 31:25.560] Well, you have to train your users, you know, you have to have some way to communicate with them. [31:25.780 --> 31:31.060] You know, either they check the website or they're on, they give their email address so that you can send them a note and so forth. [31:31.180 --> 31:34.580] Or, you know, there's some way to communicate with your users to be a bug tracker or something else. [31:34.840 --> 31:40.320] So, let's say that you and I are developing a software project together, and my key gets compromised. [31:41.540 --> 31:44.100] Hopefully, when I generated my key, I specified a relocation key. [31:44.460 --> 31:54.120] You know, let's say that what happened is the FBI came and arrested me because I was distributing, you know, Jules' new album on the Internet. [31:55.400 --> 32:00.940] So, they raid my house, you know, they beat me up, they hit me with the mag lights in the head a few times until I give them my password. [32:01.880 --> 32:03.780] Maybe some water torture, you know, who knows. [32:05.460 --> 32:06.720] They have my secret key. [32:07.760 --> 32:10.360] They want to shut down my peer-to-peer network because it's super awesome. [32:10.500 --> 32:12.220] It has quality service built into onion routing. [32:15.520 --> 32:22.280] So, they start, you know, they make up a software archive and they put it out there and it's basically just, you know, RM-R, you know, slash. [32:23.840 --> 32:25.740] Or RM-RF, you know, slash. [32:25.940 --> 32:30.640] And it just leads to everybody's files and, you know, everybody hates me and I walk down the street and people throw stones and stuff. [32:33.560 --> 32:38.780] But if I specify the relocation key and I've shared that with the other developers, you have the password to that relocation key. [32:39.000 --> 32:46.940] You can generate what's called a relocation certificate, which is basically just a detached signature, just like the signatures on the source code. [32:47.780 --> 32:53.920] But it has a special packet in there that marks it as relocation, it has the key ID, and then there's also the ability to give a different reason for the relocation. [32:53.920 --> 33:00.500] So, you can type in, you know, yeah, the FBI came and got beat up and totally just turned over right away what it was. [33:01.580 --> 33:04.160] And then you post that relocation certificate out to the users. [33:04.660 --> 33:05.800] You put it on the key server. [33:05.940 --> 33:07.720] The key server marks the key is revoked. [33:08.180 --> 33:11.320] CryptNet, the one I wrote, has big red letters and, you know, H1 heading. [33:11.800 --> 33:13.080] You know, this key has been revoked. [33:14.620 --> 33:15.660] People see the new key. [33:15.920 --> 33:21.840] If they imported that relocation certificate into their GNUPG key rings or their PGP software key rings, it won't verify the signature. [33:21.840 --> 33:23.520] It'll say, you know, that signature is no good. [33:24.380 --> 33:27.120] So, hopefully, you get that relocation certificate out to your users. [33:27.280 --> 33:28.880] You still have a valid key for the project. [33:29.820 --> 33:33.920] Hopefully, I get out of jail at some point and generate a new key for myself and start working on the project again. [33:35.860 --> 33:37.480] And that's basically how it's dealt with. [33:37.500 --> 33:44.880] In terms of social engineering, if someone, you know, managed to get one of the people who's involved in the project to do something they really shouldn't, that's a lot harder. [33:45.200 --> 33:50.400] You know, I'd really recommend just forking the project at that point and starting a new trustable project after you kick out whoever did the bad stuff. [33:53.100 --> 33:54.940] Yeah, a couple of questions. [33:55.680 --> 34:00.840] First is, I was actually looking last week at setting up a key server. [34:01.020 --> 34:10.160] And one of the things that I found conspicuously lacking is that PKS seems to be kind of aging and no one seems to be maintaining it. [34:10.160 --> 34:20.700] But I really couldn't... there was a guy up at MIT and he said, well, I gave to the project a source force, project a source force, no updates since 2004. [34:22.820 --> 34:27.160] What are some good alternatives for out-of-the-box PKSs? [34:27.860 --> 34:29.540] I mean, the code actually seems kind of trivial. [34:29.700 --> 34:33.520] It's just BDB database and, you know, we serve posts. [34:34.240 --> 34:36.300] So what would be some good alternatives for that? [34:38.000 --> 34:45.000] Or if, you know, there is interest as far as, you know, cleaning up the code or, you know, just... [34:45.000 --> 34:47.920] Let me go ahead and answer that before you ask any more questions because I'll forget otherwise. [34:48.320 --> 34:48.560] Okay. [34:49.400 --> 34:52.600] Yeah, PKS was written by a grad student at MIT, Mark Horowitz, a long time ago. [34:52.720 --> 34:55.620] He's since moved on, he's out in the private sector now, he's not doing any software development. [34:56.020 --> 34:57.260] The software is very old. [34:57.420 --> 34:58.600] There's a lot of bugs in it, long-standing. [34:59.180 --> 35:00.000] One is subkeys. [35:00.340 --> 35:01.720] You know, it used to clobber subkeys. [35:01.840 --> 35:04.240] If you had multiple subkeys on a single key, it would compress them down. [35:04.600 --> 35:07.600] And sometimes keys would fall onto other identities and stuff like that. [35:07.940 --> 35:09.400] So that's what subkeys.net is. [35:09.440 --> 35:12.200] It's actually a fork of the PKS code that's had some fixes. [35:12.440 --> 35:17.880] So there is one or two guys out there that are actively patching PKS. [35:18.240 --> 35:19.400] And they have a mailing list. [35:19.480 --> 35:21.340] And if you send me an email, I'll send you a pointer to it. [35:21.400 --> 35:23.040] But I can't remember it off the top of my head. [35:23.220 --> 35:23.540] Okay. [35:23.900 --> 35:24.940] I'll definitely do that. [35:24.940 --> 35:29.800] In terms of my key server, I tried to switch over from a forking model to Pthreads. [35:29.920 --> 35:31.440] And I f*cked up the code incredibly bad. [35:32.780 --> 35:39.260] And I haven't been able to solve all the deadlocking and, you know, all the different, you know, sharing issues between the threads. [35:39.460 --> 35:40.500] So I'm working on it. [35:40.580 --> 35:41.840] Hopefully I'll have a new version out soon. [35:42.040 --> 35:45.040] It kind of got pushed to the back burner when I realized how bad I messed it up. [35:47.040 --> 35:52.700] And, you know, another thing is PGP Corporation has an official key server now because the key server networks weren't working that well. [35:52.700 --> 35:55.020] Because PKS was getting old and nobody was maintaining it. [35:55.420 --> 35:57.160] So you can always go to the main PKS. [35:57.360 --> 36:00.940] I'm sorry, the main PGP core key server and use that. [36:01.420 --> 36:04.180] And hopefully, you know, some keys that will stay around and be good. [36:04.320 --> 36:06.100] And hopefully I'll have a new version of my stuff out at some point. [36:06.100 --> 36:08.960] Okay, that leads to another question. [36:09.240 --> 36:11.540] Obviously, we want to remain pseudo anonymous. [36:12.420 --> 36:19.420] And I don't know, maybe if I would use Tor or some type of anonymizer. [36:19.620 --> 36:29.100] But if you're not using these anonymizers, you know, email and any HTTP transaction, you're recording IPs. [36:29.100 --> 36:35.120] And, you know, trying to, like, bootstrap an identity, it would be very... [36:35.120 --> 36:46.480] I could see it being very difficult to maintain that your particular IP from, you know, your cable modem is not being recorded on so many servers as you're... [36:46.480 --> 36:50.380] Yeah, that's why I say that, you know, don't count on this for real. [36:50.680 --> 36:54.180] You know, it's obviously not anonymous, because you're putting that token out there that identifies you. [36:54.260 --> 36:54.780] You're signing stuff. [36:55.040 --> 37:00.820] And, you know, I'm cautious even to call it pseudo anonymous, because we know now that the government's been recording all Internet traffic. [37:01.540 --> 37:04.020] So that's why I say that, you know, there's really two sets of adversaries. [37:04.180 --> 37:05.120] The government, you can't. [37:05.120 --> 37:05.320] Okay. [37:05.640 --> 37:06.420] You're just screwed. [37:06.940 --> 37:11.720] And then, you know, corporations are who you're really trying to protect yourself from, from lawsuits and getting fired and that kind of stuff. [37:11.720 --> 37:12.240] Okay. [37:12.520 --> 37:42.320] And my other real question, besides the PCAS, would be the web of trust for GPG and your scenario where you're, you know, writing code that is of questionable legality, but contributing to a established project, where people have real identities and they're signing your key. [37:43.460 --> 37:50.960] In the case of a search warrant, what's preventing them from getting their doors broken down and revealing your identity? [37:51.160 --> 38:00.880] I mean, when you had that list of the Apache thing, let's say, you know, you're using this PGP, you know, doing some type of security plugin for Apache. [38:00.880 --> 38:09.740] Other Apache developers, you've met them in meet space, they sign your key, that it's just a list at that point. [38:09.940 --> 38:11.220] No, no, very good, very good point. [38:11.360 --> 38:11.400] Yeah. [38:11.400 --> 38:12.000] Very good question. [38:12.940 --> 38:22.180] If you actually look at the open PGP standard, RFC 2440, and look at the signature types that you can do, there's a whole number of them identified by different hexadecimals. [38:22.180 --> 38:26.040] And there's no statement that you actually have to meet the person in person. [38:26.420 --> 38:28.060] So, for example, if I... [38:28.060 --> 38:29.760] Well, I'm a programmer, so I can read source code. [38:29.900 --> 38:34.120] And, you know, say I wanted, you know, say he actually wrote that peer-to-peer client, not me, and I wanted to use it. [38:34.220 --> 38:37.480] And I downloaded it, I read through the source code, and I said, wow, you know, this is good source code. [38:37.520 --> 38:38.660] I don't see anything bad going on here. [38:39.060 --> 38:40.500] Here's the key that signed this. [38:40.980 --> 38:42.520] You know, this looks like an official project to me. [38:42.560 --> 38:43.620] I'm going to go ahead and sign that key. [38:43.760 --> 38:43.980] Okay. [38:43.980 --> 38:45.520] You know, I never met him, I don't know. [38:45.660 --> 38:48.760] But I trust that that key is associated with that project. [38:49.000 --> 38:52.540] So, I think, like I said, you can make arbitrary statements about arbitrary content. [38:52.760 --> 38:53.120] Well... [38:53.120 --> 38:57.780] And that arbitrary statement would just be that I trust this key is, you know, the key in charge of this project. [38:57.940 --> 39:01.900] And that's all you're really trying to determine when you look at the web of trust for a Facilitian Anonymous key. [39:02.160 --> 39:04.140] I'm not arguing with the entire... [39:04.780 --> 39:05.040] Oh, no, no. [39:05.300 --> 39:05.480] I'm just... [39:05.480 --> 39:06.580] Yeah, I was just trying to, you know... [39:06.580 --> 39:15.920] I was just bringing up the fact that if you're contributing to a major project in general, let's say like Debian, they're, you know, you're going to have to meet their web of trust standards. [39:16.200 --> 39:16.360] Right, right. [39:16.540 --> 39:20.680] And, you know, if you really want your stuff to get out to their, you know... [39:20.680 --> 39:22.700] You probably want a package in one of the major distros. [39:24.200 --> 39:24.520] That... [39:24.520 --> 39:26.400] I could just see that being a liability. [39:26.640 --> 39:28.040] And, you know, I just wanted to bring that up. [39:28.240 --> 39:28.940] No, it's a good point. [39:29.040 --> 39:31.380] Definitely, if you want to keep your identity secret, don't tell anybody. [39:32.900 --> 39:33.220] Okay. [39:33.460 --> 39:33.920] Well, thank you. [39:34.120 --> 39:34.560] Thank you. [39:34.720 --> 39:35.140] Good questions. [39:36.080 --> 39:37.060] Any other questions at all? [39:39.000 --> 39:40.160] Okay, thanks everybody for coming. [39:40.220 --> 39:40.720] I appreciate it. [40:07.180 --> 40:22.220] We cannot, as a free nation, compete with our adversaries in tactics of terror, assassination, false promises, counterfeit mobs, and crisis. [40:33.160 --> 40:37.080] This is the surrendering popular control of government to the national security state. [40:43.580 --> 40:44.740] Infatuating organization. [41:01.550 --> 41:04.610] But how does one branch of government blow the whistle on another? [41:04.930 --> 41:15.310] Or how do the people cry foul when their liberties are in peril, if public officials can break the rules, lie to us about it, and then wave the wands of national security to silence? [41:33.180 --> 41:42.080] We've turned the war powers of the United States over to where we're never really sure who, or what they're doing, or what it costs, or who is paying for it. [41:42.080 --> 41:43.620] I'm Bill Moyers. [41:44.100 --> 41:44.860] Good night. [42:46.660 --> 42:52.200] I see this world going through a whole lot of pushin', similar to a puzzle, but the pieces don't fit. [42:52.600 --> 42:55.880] And as a result of pushin', the connections get bent out of place. [42:56.220 --> 42:57.980] Burn out slowly without a trace. [43:01.670 --> 43:04.940] A face looking to spend fifteen on a case of fifty-four and eight. [43:05.210 --> 43:07.770] Something to make us feel our life isn't going to waste. [43:07.770 --> 43:14.860] But what we don't realize is each continued day, perpetuated ways, collect, consolidate, and permeate the brain. [43:14.980 --> 43:20.270] Leave a permanent stain, serve as a purposeless train, and basically your life becomes a worthless refrain. [43:20.520 --> 43:24.730] Over and over again, you can't get out, so you keep comin' in. [43:24.880 --> 43:29.210] Lost amongst the chaos, continually fooled by players, and the chief executive gangsters. [43:49.170 --> 43:50.990] I'm gonna make him an offer, okay? [43:51.290 --> 43:51.730] Feet. [43:53.790 --> 43:55.010] Know'd you hear you got a show? [43:55.170 --> 43:55.770] Who's the boss? [43:55.870 --> 43:57.030] Find peace within yourself. [43:57.030 --> 44:01.390] Regardless of the chaos going on around you, when push comes to shove. [44:01.550 --> 44:02.770] Use your power to rise above. [44:02.930 --> 44:06.370] Know thyself as the vessel for the force of, much like the dove. [44:06.490 --> 44:07.910] Carry the message to the people. [44:07.910 --> 44:09.130] We will come through. [44:09.510 --> 44:14.290] Divide and find autonomy, permeate the system by changing economies. [44:14.290 --> 44:16.410] The politics and therefore society. [44:16.970 --> 44:17.490] Emily's [44:21.680 --> 44:22.500] vegetables spoken. [44:22.780 --> 44:25.240] Elements take their place in the totem of life. [44:25.520 --> 44:28.060] Filaments of light shine through the clouds and strike. [44:28.380 --> 44:30.120] Recognize yourself as your own. [44:30.420 --> 44:33.840] With the gifts to be of service to the collective operation. [44:34.040 --> 44:34.320] Prepare [44:48.130 --> 44:49.450] for others to earn a dollar. [44:49.590 --> 44:50.870] Sometimes you gotta holla. [44:52.170 --> 44:53.670] Stop pushing me around. [44:53.850 --> 44:55.110] Let's work for a common ground. [44:55.270 --> 44:57.430] And see what can we find when we work together. [45:00.630 --> 45:02.290] The industry and advancement. [45:02.610 --> 45:05.070] Enhancement comes in a plethora of warms. [45:05.070 --> 45:07.890] So do what you gotta do to figure out why you've been born. [45:10.980 --> 45:13.520] Or a ladle your palm upon a false rose. [45:13.660 --> 45:13.900] You're not [45:21.310 --> 45:22.030] in defiance. [45:22.190 --> 45:23.310] Search for your minds. [45:23.510 --> 45:24.970] And soon you will align this. [45:25.210 --> 45:27.730] Treat it as a treasure with love of the kindness. [45:27.990 --> 45:28.570] Push me. [45:29.510 --> 45:30.810] I don't mind it. [45:32.670 --> 45:38.070] It was Jefferson who said that our kind of government is not based on trust. [45:38.290 --> 45:40.390] It's based on, in fact, suspicion. [45:40.850 --> 45:42.810] The danger to our country is grave. [45:44.030 --> 45:46.610] The danger to our country is growing. [45:47.070 --> 45:47.870] On a massive scale. [45:49.270 --> 45:53.910] We are prepared to disarm Iraq by force. [45:54.430 --> 45:58.710] Either way, this danger will be removed. [46:05.370 --> 46:10.690] Their lives and their freedom matter little to Saddam Hussein. [46:12.170 --> 46:16.870] But Iraqi lives and freedom matter greatly to us. [46:22.180 --> 46:31.000] States like these and their terrorist allies constitute an axis of evil arming to threaten the peace of the world. [46:38.660 --> 46:40.760] We cannot wait for the final proof. [46:41.600 --> 46:42.880] The smoking gun. [46:43.720 --> 46:46.240] That could come in the form of a mushroom cloud. [46:55.740 --> 46:59.180] Now this war will not be like the war against Iraq a decade ago. [46:59.580 --> 47:03.740] With a decisive liberation of territory and a swift conclusion. [47:44.660 --> 47:46.880] The danger to our country is grave. [47:48.220 --> 47:50.760] The danger to our country is growing. [47:51.140 --> 47:52.020] On a massive scale. [47:53.820 --> 47:57.400] Outlaw regimes arming with weapons of mass destruction. [48:01.220 --> 48:08.640] To leave the Iraqi regime's torture chambers and poison labs in operation. [48:17.900 --> 48:22.840] The safety of the American people depends on ending this direct and growing threat. [48:30.460 --> 48:33.160] This is an enemy that thinks his harbors are safe. [48:51.000 --> 48:53.140] The danger to our country is grave. [48:54.540 --> 48:56.960] The danger to our country is growing. [48:57.400 --> 48:58.220] On a massive scale. [48:59.460 --> 49:00.460] We are winning. [49:00.840 --> 49:04.360] And we're showing them the definition of American justice. [49:24.340 --> 49:30.160] These people came to their conclusions and then looked for intelligence to support it. [49:30.300 --> 49:33.900] And when they couldn't find intelligence to support it, they created lies. [49:34.200 --> 49:39.000] To the American public, to the American Congress, to the United Nations, and to the rest of the world. [49:39.230 --> 49:40.800] They lied to the world. [49:43.080 --> 49:46.800] I understand, sir, that you bring with you a formula for world peace. [49:46.800 --> 49:57.840] There is no formula for world peace, except as each man abolishes fear and hatred from his own heart. [50:49.790 --> 50:56.450] When the eye of light is open, one is enlightened, and spiritual power flows into the individual. [51:39.410 --> 51:46.710] I want to thank you for overlooking my dress code violation. [51:47.850 --> 51:49.890] They were about to stop me at the door. [51:50.430 --> 51:54.910] But Irving Crystal said, I know this guy, let him in. [52:35.650 --> 52:43.730] Corporate America must be made more accountable and held to the highest standards of conduct, so that no child is left behind. [52:43.730 --> 52:43.850] I want to thank you. [52:43.850 --> 52:44.050] I want to thank you. [52:44.570 --> 52:44.770] Thank you.