source: trunk/tls-centralization/index.html @ 143

Last change on this file since 143 was 143, checked in by dkg, 6 years ago

TLS Centralization paper: committing mediawiki conversion script, and adopting minor language changes from Josue.

File size: 31.1 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
5<title>Technical Architecture shapes Social Structure</title>
6<link rel="stylesheet" href="style.css" type="text/css" />
7</head>
8
9<body>
10<h1>Technical Architecture shapes Social Structure:<br />an example from the real world</h1>
11
12When you use the Internet, most of your communications rely on many
13different computers co-operating with each other.  The computers
14co-operate with each other because they have agreed beforehand on a
15<term>protocol</term>.
16
17<p>The protocols we use for communication shape not just the
18communications themselves, but social and economic structures beyond
19them.  In the USA, we have seen how choices in infrastructure can
20shape social structure in the physical world. Our society builds
21highways, malls, and suburban developments while neglecting its rail
22lines, public spaces, and cities. In doing so, we <a
23href="http://www.planning.org/APAStore/Search/Default.aspx?p=3333">discourage
24civic interaction while facilitating pollution and dangerously
25sedentary lifestyles</a>. This article shows how choices in digital
26communications infrastructure can also have an effect on our social
27fabric by focusing on one small example out of many.
28
29<p>I'll discuss here a protocol in common use on the internet
30today: <term>Transport Layer Security</term> (<term>TLS</term>) and
31its precursor, the <term>Secure Sockets Layer</term>
32(<term>SSL</term>).  These are used (among other places) in secure
33World Wide Web connections.  <term>TLS</term>, as it is currently
34implemented, fosters the concentration of power and money among
35certain groups while hampering the public's ability to engage in
36trust-worthy, secure communications.
37
38<p>This is important because we still have an opportunity to choose
39the tools and protocols we use.  By choosing our protocols, we can
40help move toward a social order we prefer.  I'll present an existing
41modification to <term>TLS</term> which I think can move our online
42culture in a direction that is more democratically-engaged and less
43authoritarian.
44
45<p>TLS is only one small piece of the puzzle.  There are thousands of
46protocols and tools in use on the Internet today, with a variety of
47subtle societal effects.  We can choose the way we want to go, but we
48can choose well only if we understand the issues!
49
50<h2>Background and introduction</h2>
51
52This article has a relatively narrow technical focus, but it's one
53which most people reading probably encounter every week, when using
54the <term>World Wide Web</term> (<term>www</term>).
55
56<h3>What is HTTPS and why do we use it?</h3>
57
58Most of your everyday use of the <term>www</term> consists of <a
59href="http://www.ietf.org/rfc/rfc2616.txt"><term>HyperText Transfer
60Protocol</term></a> (<term>HTTP</term>) connections.  This is the
61<code>http://</code> you see at the beginning of many web addresses
62(known as <term>Uniform Resource Locator</term>s, or
63<term>URL</term>s).  An <term>HTTP</term> session consists of your web
64browser sending a request to the remote web server, which is just
65another computer connected to the internet.  Your request consists of
66several things, potentially including: <ul><li>the full
67<term>URL</term> of the page you are viewing,<li>identifying
68information about your web browser,<li>small pieces of data called
69<q>cookies</q>,<li>the contents of any form fields you might have
70filled in.</ul> The web server replies to your request with its own
71information, potentially including: <ul><li>information about the page
72you requested,<li>identifying information about the web server
73itself,<li>more <q>cookies</q>, <li>the contents of the page
74requested.</ul>
75
76These communications (in both directions) are all visible to any
77computer along the way between your computer and the web server.  If
78you included some information that you'd rather keep private (for
79example, if you typed your bank account number in a field of a web
80form), you might be upset that the intermediate machines can all
81snoop!  Even worse, if your password is included in this information,
82the snooper could then use that password to take actions that <em>only
83you</em> should be allowed to take, such as updating your
84organization's web page, transferring money, making travel
85reservations, etc.
86
87<p>But sometimes the <term>URL</term> accessed through your web
88browser begins with <code>https://</code>.  This is the <q>secure</q>
89version of <term>HTTP</term>, and it can often be identified by the
90little lock icon in your browser. <captionedimage><img src="lock.png"
91alt="image of lock in browser"/><br/><cap>The lock in my
92browser</cap></captionedimage> <a
93href="http://www.ietf.org/rfc/rfc2818.txt"><term>HTTPS</term></a> is
94the same protocol as <term>HTTP</term>, but wrapped inside a layer of
95strong encryption.  This means that computers other than your own
96machine and the web server will see the communications as a stream of
97gobbledy-gook, but your web browser and the web server involved will
98be able to understand them.
99
100<p> This is a good thing, but some questions are still unanswered.  If
101i'm using <ter>HTTPS</term>, I can be reasonably sure that the only
102parties who can decipher the communication are:<ul><li>myself <li>the
103web server</ul> But who is the web server really?
104
105<h3>How do we know who we're talking to?</h3>
106
107Near the little <q>lock</q>, many modern browsers will show you the
108name of the site you are connecting to.  The first thing is to make
109sure that this is who you think it is.  If you are about to send
110confidential information to your local credit union via their web page
111(e.g. <code>lespeoples.org</code>), you should be sure that the name
112near the lock is the name of your credit union.  If the machine you
113are connecting to is something different
114(e.g. <code>bigbadbank.com</code>), then all the cryptography in the
115world won't help you keep your information private, because you are
116sending it to the wrong folks!
117
118<p> But if the name <em>does</em> match, there could still be
119problems: some nasty group could be intercepting your communications,
120and claiming to be the group you actually want to talk to.  This isn't
121veering into paranoia here: the global network is very flexible; it
122relies on wide-scale co-operation; and the malicious actors are often
123tireless and conscienceless machines, not individual humans.
124
125<p> So how does your browser know to show that lock, since anyone
126could claim to be anyone else?  <captionedimage><img src="tooltip.png"
127alt="image of lock in browser with tooltip showing certificate
128authority"/><br/><cap>browser lock showing
129tooltip</cap></captionedimage> Because during the initial claim of
130identity, the web server presents a certificate which is
131cryptographically signed by an <term>Certificate Authority</term>
132(<term>CA</term>) who your browser already knows about and trusts.  On
133some modern web browsers, if you hover your mouse over the
134<q>lock</q>, a tool tip will pop up showing which <term>CA</term>
135signed off on the certificate presented by the web server.  In the
136image here, you can see that the authority who signed this certificate
137is <q>Equifax</q>.
138
139<h3>Who do you trust?</h3>
140
141But wait a minute!  Who said that <q>Equifax</q> is an authority who
142can verify that folks are who they say they are?  As any good
143anarchist would ask, why should you trust this authority?  At the
144moment, you trust them implicitly because your web browser comes
145pre-configured to trust them.  Many modern browsers shipped with 30 or
146more of these <term>CA</term>s trusted <em>automatically</em>.  If any
147one of these authorities is compromised or malicious, they could
148create fake certificates with whatever name they want, which means
149that, with only a few other small modifications, they could intercept
150(and tamper with) communications you intend to be private and
151untamperable.
152
153<p>Who are these authorities?  Why are they included by default in our
154web browsers?  Do they really do a good job in verifying identities
155before signing certificates?  Do they have your best interests in
156mind?  Do they share your political principles?  If they received an
157unethical request from a corrupt governmental power or financial
158sponsor, would they comply, or would they resist?
159
160<p>I don't have the answers to these questions about any particular
161<term>CA</term>.  But I think that the current technical
162infrastructure gives them incentives to behave in untrustworthy ways.
163We have very little reason to think that these <term>CA</term>s have
164the average web user (or server administrator) in mind when they
165decide policy, which makes our implicit trust in them all the more
166unjustified.
167
168<h2>Relevant Architecture Components</h2>
169
170What is it about the architecture of the Web that encourages this
171insecurity and lack of integrity?  This requires a basic understanding
172of the underlying protocols used to create secure web connections.
173The Internet is a collection of co-operating machines, all passing
174messages to each other in various forms.  Viewed from another angle,
175the Internet is also a collection of interacting protocols, which fit
176together in certain ways.
177
178<h3>TLS</h3>
179
180<term>HTTPS</term> is, at its root, <term>HTTP</term> (the common
181protocol by which web browsers talk to web servers) tunneled through
182<a href="http://www.ietf.org/rfc/rfc4346.txt"><term>Transport Layer
183Security</term></a>, or <term>TLS</term><term>TLS</term> itself
184grew out of the <term>Secure Sockets Layer</term>, or
185<term>SSL</term><term>TLS</term> and <term>SSL</term> are generic
186protocols which define methods for encrypting a potentially lengthy
187bidirectional communications session.  We call the side of the
188communications session that waits and listens for new connections the
189<term>server</term>, and the side that actively initiates connections
190the <term>client</term>.  In the case of <term>HTTPS</term>, your web
191browser acts as a <term>TLS</term> <term>client</term>.
192
193<p><term>TLS</term> (like many session-based protocols) begins with a
194<q>handshake</q>, which is used by the <term>client</term> and
195<term>server</term> to establish their shared assumptions.  You can
196think of this as two complete strangers on a phone call: they run
197through the languages they speak, in an attempt to find a common
198language in which they can communicate.
199
200<p>Assuming both <term>client</term> and <term>server</term> find that
201each other <q>speaks</q> some common form of <term>TLS</term>, the
202handshake continues with the <term>server</term> offering the client a
203<em>single</em> certificate asserting the <term>server</term>'s
204identity.
205
206<h3>X.509 v3 certificates</h3>
207
208
209<p>The certificate presented is a combination of a cryptographic
210<term>public key</term> with an identifying name of the <q>subject</q>
211(typically the name of the server), where the combination of these two
212things is signed by a <term>Certificate Authority</term> who asserts
213that this <term>public key</term> does in fact belong to the subject.
214The specific format of the certificate is specified by the
215<term>X.509</term> standard.
216
217<p><a href="http://www.ietf.org/rfc/rfc3280.txt"><term>X.509</term></a>
218covers a lot of different things, but for the purposes of this
219discussion, we're only interested in how it specifies the certificates
220used in <term>TLS</term>.  In particular, I want to focus on two
221things: how the server is identified, and how the signature is
222attached to the identity/public key combination.
223
224<p>The server is identified by a long string of which only the bit
225after the last <code>CN=</code> is really inspected by your web
226browser.  Here's an example subject from a real-world certificate:
227
228<pre>/O=secure.mayfirst.org/OU=Domain Validated/OU=Go to https://www.thawte.com/repository/index.html/OU=Thawte SSL123 certificate/CN=secure.mayfirst.org</pre>
229
230<p>The identity of the signer (aka the <term>issuer</term>) is also
231present in the certificate, and a <em>single</em> signature is allowed
232within the certificate.
233
234<p>Your browser (or other <term>TLS</term>-capable client) takes the
235certificate, looks through its list of trusted <term>certificate
236authorities</term> for the signer.  If it doesn't see the signer in
237that list, it treats the certificate as invalid.  If the signer is
238present in the list of trusted <term>CA</term>s, your client uses
239information it already has about the signer to verify that the
240signature is in fact legitimate.
241
242<p>There's an extra step that can be thrown in here sometimes called
243<q>certificate chaining</q>, where the server presents not only its own
244certificate, but also the certificate of its <term>issuer</term>,
245where the assumption is that the <term>issuer</term>'s own certificate
246is signed by a <term>CA</term> that the client already trusts.
247
248<p>But however the trust is followed, we end with one conclusion: the
249client must already know of and trust the ultimate signer of the
250certificate, and there can only be one ultimate signer for any
251certificate.  If the client doesn't know of and trust that signer,
252they are merely guessing that the machine on the other end of the
253connection is the intended machine.
254
255
256<h2>Concentration of Power, Financial Incentives, and Trust</h2>
257
258<p>So again, the question is: who are these <term>Certificate
259Authorities</term>?  What is their background?  Who operates them?
260What are their political convictions?
261
262<h3>How does a typical certificate authority stay afloat?</h3>
263
264The biggest <term>Certificate Authority</term> today at the beginning
265of 2007 is <a href="http://verisign.com/">VeriSign</a>.  With their
266purchase of <a href="http://thawte.com/">Thawte</a> in 1999 and of of
267<a href="http://geotrust.com/">GeoTrust</a> in 2006, they are by far
268the largest issuer of certificates to the general public (over 70% in
269aggregate, according to <a
270href="http://news.netcraft.com/archives/2006/05/17/verisign_to_buy_geotrust_combining_top_ssl_providers.html">Netcraft</a>).
271
272<p>Verisign has a lot of other businesses, but it makes its
273<term>CA</term> money by selling certification to the entities
274requesting it.  That is, if you decide to set up a new web site on a
275server named <code>example.com</code>, and you want to provide secured
276web access via <code>https://example.com/</code>, you might begin by
277paying VeriSign for a certificate that identifies your server as
278<code>example.com</code>.  Why should VeriSign certify you with this
279name?  For one thing, because you're paying them to do so.  But their
280responsibility as a <term>CA</term> should include more rigorous
281checking.  And they do so &mdash; but just a little bit more &mdash;
282often relying on the <code>example.com</code> DNS and e-mail (both
283forgeable systems) to be configured properly and securely.
284
285<p>At any rate, the <em>site operator</em> is the one who foots the
286bill for the certificate, and the <term>CA</term> has little
287disincentive to turn down certification, since it would presumably
288mean they'd lose paying customers.  If the <term>CA</term> were to
289engage in massive, wide-scale illegitimate certification, there's a
290possibility that browser vendors would drop them as a trusted root
291<term>CA</term>, but it would probably take a really large scandal,
292and it would likely take months (at least) for browser vendors to
293actively drop trust for the <term>CA</term>.  This has never been
294done, as far as I know.
295
296<h3>Who can be a <term>Certificate Authority</term>?</h3>
297
298The kicker in all of this is that Verisign and the other commercial
299<term>Certificate Authorities</term> aren't using any expensive
300hardware or software to issue certificates.  Free tools like <a
301href="http://openssl.org/">OpenSSL</a> or <a
302href="http://www.gnu.org/software/gnutls/">GnuTLS</a> form the
303technical basis of most <term>CA</term>s, and there are free graphical
304frontends (like <a href="http://tinyca.sm-zone.net/">TinyCA</a>) which
305make running a <term>Certificate Authority</term> a relatively simple
306task.  These tools can be run on bottom-of-the-barrel hardware, and
307being a <term>CA</term> doesn't even require a heavy-duty connection
308to the Internet.
309
310<p>So if anyone can technically be a <term>CA</term>, how come people
311aren't doing it?  For one thing, doing legitimate verification of
312identities is actually significant work.  But the verification done by
313most <term>CA</term>s (including VeriSign) doesn't come close to this
314level of work, so that shouldn't be holding people back.  It turns out
315the architecture of <term>TLS</term> itself discourages diversity.
316
317<h3>Why does the architecture encourage concentration?</h3>
318
319Remember that a <term>TLS</term> (<term>HTTPS</term>) server can only
320offer a single certificate.  For hassle-free, secure connections, the
321signer of that certificate must already be trusted by the client (web
322browser).  As a site administrator, you need to decide who is going to
323sign your certificate.  Most browsers out there already <q>trust</q>
324the big corporate <term>CA</term>s.  If a new independent
325<term>CA</term> were to spring up, it won't be trusted by any of the
326browsers, which means connections using a certificate from the new
327<term>CA</term> would likely cause errors for your site's visitors.
328Since you can only choose one, you probably will go with the existing
329goliath, even if you feel no political affinity with them, and even if
330you resent paying money for their signature which could have been
331better used elsewhere.
332
333<p>As an individual who uses the web, your browser already
334<q>trusts</q> the big corporate CAs.  Most of the web sites you visit
335are probably run by admnistrators who have made the tradeoff above.
336Why should you ask your browser to trust a new <term>CA</term>, even
337if it's one you personally actually trust more?  It can be a hassle to
338maintain a list of trusted authorities, and it seems especially
339fruitless when the new authority you've added isn't actually used by
340any site that you visit.  So why bother?  And you're certainly not
341going to tell your browser to stop <q>trusting</q> the big corporate
342<term>CA</term>s, because nearly every site you visit has certificates
343issued by one of them.
344
345<p>What's worse, to make any change in the situation at all, there
346would need to be a massive break.  The day that a site offers a new
347certificate signed by a new authority, <em>every one of its
348visitors</em> will see that cert, and will get errors if they don't
349already trust the new authority.  The site administrator is pretty
350much guaranteed to cause problems for hir visitors by switching away
351from the mega-<term>CA</term>s.
352
353<p>This seems like a no-win situation, but there are ways out.
354
355<h2>Alternate Architectures</h2>
356
357The <term>TLS</term> architecture is the cause of this concentration
358of power, and changes to the architecture can permit or even encourage
359its dissolution.
360
361<h3>What could change the incentives?</h3>
362
363As usual, we need to follow the money.  One of the reasons the big
364<term>CA</term>s have little reason to provide real security via
365heavy-duty verification before certification is because they lack
366significant competition.  Making it easier to start and run a separate
367<term>Certificate Authority</term>, while actually encouraging its
368adoption would be a good thing.
369
370<p>If we were to modify the <term>TLS</term> protocol so that a server
371could offer multiple certificates at once, that would make it much
372easier to do a smooth transtion away from un-trustworthy big
373<term>CA</term>s, because sites and users would no longer need the
374massive, disruptive transition that switching certificates would
375entail.  One year, a web site could offer certificates from Verisign
376and a new, politically-active <term>CA</term>, while explaining to
377their users the reason for switching away, and then the next year, the
378site could drop the VeriSign certificate entirely.
379
380<p>An analogous change would be to enable multiple signatures on a
381single certificate.  Recall that a single <term>X.509</term>
382certificate contains a public key, a subject, and a signature binding
383the two together from a <term>CA</term>.  There's no reason (in
384principle) that we couldn't declare a certificate as a public key, a
385subject, and a <em>set of signatures</em>, each from a different
386<term>CA</term>.  It turns out that there is a proposal for this kind
387of alternate, multi-signature certificate (using the
388<term>OpenPGP</term> standard), which i'll talk about later.
389
390<p>Once it becomes easier to phase in trust of new, alternative
391<term>Certificate Authorities</term>, we need to think about which
392ones technologically-aware activists would want to support.  I suggest
393that a full change in the funding model is needed.  Instead of being
394paid for by the site owner, a new-model <term>Certificate
395Authority</term> could operate independently, funded by its members
396who, by joining, help shape policy about what sort of verification
397should be required to grant a certificate.
398
399<p>With the ability to have multiple signatures, there's nothing
400stopping individuals from acting as their own <term>CA</term>s as
401well.  Do you run your own web site?  Certify it!  Does your
402organization have a web site?  You and your colleagues could each
403certify it.  This sort of decentralization is healthy, fosters
404community networks, and can cut out the big corporate middlemen.
405
406<h3>What else exists?</h3>
407
408<h4><term>EV</term> Certificates</h4> The big corporate middlemen don't
409want to be cut out, of course.  A plan is afoot from some of the
410larger <term>CA</term>s called <a
411href="http://www.cabforum.org/certificates.html"><term>Extended
412Validation</term> (<term>EV</term>) Certificates</a>.  From what I
413can tell, this is simply the big <term>CA</term>s offering to actually
414do a serious level of identity verification &mdash; what they should
415have been doing all along!  The bills for an <term>EV</term> cert,
416likely even heftier than usual, will probably continue to be paid by
417the sites requesting the certificates.
418
419<p>This does nothing to change the financial dynamics that make the
420system currently so untrustworthy.  But it does relegate sites who
421can't pay the new larger fees to a second-class level of
422<q>security</q>, and it minimizes the number of entities considered
423officially capable of being an <term>EV</term>-cert-granting
424<term>CA</term>, further consolidating the power of the few at the
425top.
426
427<h4>CACert.org</h4>
428
429Another interesting player is <a href="http://cacert.org">CACert</a>.
430This is a group that has set up to operate in the fashion of a typical
431certificate authority, but has set up <a
432href="http://wiki.cacert.org/wiki/FAQ/AssuranceIntroduction">a
433sophisticated, clear system</a> explaining what it will take for them
434to grant you certification, based strictly on a network of trust built
435among their membership.  This is a pretty good model, but it's a shame
436that they're the only one implementing anything like it.  There should
437be multiple organizations with comparable models to this, so that each
438user could make hir own decisions about who they actually trust.
439
440<p>Another downside to CACert is the fact that their certificates are
441<em>still issued only by one agency</em> &mdash; the CACert
442<term>CA</term>.  Even though they explicitly say they will only grant
443certificates according to their model, if their infrastructure is
444somehow compromised, it's possible for an attacker (or malicious
445employee) to issue certificates as CACert without following their
446published protocol.
447
448<h3>Don't throw out the baby with the bathwater</h3>
449
450All of this might seem more complicated than it needs to be; it's
451worth asking whether we need any of this at all.  I want to make it
452clear that <em>we do need secure communications</em>.  As activists,
453politically-outspoken workers, and anti-authoritarians, we need to be
454able to communicate to each other without eavesdropping or &mdash;
455worse &mdash; interference or impersonation.  As members of a
456capitalist society, we are also purchasers and vendors of goods and
457services, and monetary donors and recipients.  We need those
458transactions to be handled safely, so that we don't have our financial
459backing usurped.
460
461<p>More than just needing secure communications, we need secure
462communications without faceless, unaccountable, politically-fickle,
463mercenary gatekeepers.  We need to take control of our own
464communications by taking responsibility for them.
465
466<h2>Moving forward</h2>
467
468So where can we go from here on the specific problem of the stunted
469<term>TLS</term> architecture?
470
471<h3>An alternate architecture exists!</h3>
472
473I mentioned earlier that there is an alternate proposal &mdash; <a
474href="http://www.ietf.org/internet-drafts/draft-ietf-tls-openpgp-keys-11.txt"><term>OpenPGP</term>
475Certificates instead of <term>X.509</term> certificates</a> &mdash;
476which allows multiple signatures per certificate.  The proposal is
477designed to be implementable in parallel with existing
478<term>X.509</term> certificates.  However, it is not widely
479implemented or adopted yet.
480
481<p>Most programs which use <term>TLS</term> do not actually implement
482their TLS functionality directly.  Instead, they make use of software
483<term>libraries</term>, which are collections of code that can be used
484by many programs.
485
486<p>At least one library exists which can use OpenPGP certificates: the
487free <a href="http://www.gnu.org/software/gnutls/">GnuTLS library</a>
488has supported <term>OpenPGP</term> certificates in addition to
489<term>X.509</term> certificates since at least the end of 2003.  Tools
490(like web browsers) which use the GnuTLS library basically can get
491this extra feature without any extra work.
492
493<p>However, the <a href="http://openssl.org/">OpenSSL library</a> is
494by far the most widely-used free library, and it only includes support
495for <term>X.509</term> certificates.  Some developers <a
496href="http://www.mail-archive.com/openssl-dev@openssl.org/msg21728.html">are
497discussing adding OpenPGP support for OpenSSL</a>, but it's doubtful
498that anything will happen in the near future.  Tools which
499use OpenSSL are going to take a while to migrate to this new
500architecture.
501
502<p>So what needs to happen?  Web browsers (and other TLS-enabled
503clients) need to start working with the new architecture.  Web servers
504(and other TLS-enabled servers) need to start working with it as well.
505
506<p>One of the reasons to focus on Free Software (as covered by Amanda
507Hickman elsewhere in this book) is that we have an opportunity to
508contribute changes that we want to see.  The big proprietary software
509makers may not share our agendas, or may actually be antagonistic.
510
511<h3>Web Browser Buy-in</h3>
512
513<a href="http://mozilla.com/firefox/">Mozilla Firefox</a> is probably
514the widest-distributed Free Browser today.  In my version of it on my
515<a href="http://debian.org/">debian</a> operating system, it actually
516already uses the GnuTLS library, but I haven't reviewed the sources to
517see how it gets used (it could be used for library features unrelated
518to certificate verification).  Furthermore, there is no clear way
519through the Firefox graphical interface to manage OpenPGP
520<term>CA</term>s, the way there is to manage <term>X.509</term>
521<term>CA</term>s.  So that needs work.  Firefox is also the basis for
522the proprietary Netscape browser, so any fix to Firefox could have an
523effect there.  Many other Free browsers also derive from Firefox, so a
524fix here would be a big win.
525
526<p><a href="http://www.konqueror.org/">Konqueror</a> is another
527leading Free browser with an effect on other tools (Macintosh's <a
528href="http://www.apple.com/safari/">Safari</a> is based on Konqueror).
529It seems to use an SSL wrapper library (<tt>kssl</tt>) to talk to
530other libraries, but it appears to use OpenSSL exclusively at the
531moment.  A fix to <tt>kssl</tt> to allow it to talk to GnuTLS would
532actually enable OpenPGP certificates for all the software in the <a
533href="http://kde.org/">KDE</a> suite.
534
535<p>Finally, a couple of text-mode browsers, <a
536href="http://elinks.or.cz/"><tt>elinks</tt></a> and the venerable <a
537href="http://lynx.browser.org/"><tt>lynx</tt></a> appear to use the
538GnuTLS library these days.
539
540<h3>Web Server Buy-in</h3>
541
542<a href="http://httpd.apache.org//"><tt>apache</tt></a> is the
543flagship Free web server.  While the standard way to make apache work
544with <term>TLS</term> is the OpenSSL libraries via <a
545href="http://www.modssl.org/"><tt>mod_ssl</tt></a>, a new module
546called <a
547href="http://www.outoforder.cc/projects/apache/mod_gnutls/"><tt>mod_gnutls</tt></a>
548aims to make <tt>apache</tt> work with GnuTLS.  However,
549<tt>mod_gnutls</tt> is still in its infancy, and is not clear if it is
550able to support OpenPGP keys or not.
551
552<p>Other web servers operate behind separate processes which handle
553all the <term>TLS</term> wrapping.  These servers should be more
554easily switched to a library which supports <term>OpenPGP</term>.  And
555<tt>gnutls-serv</tt> appears to offer itself as a rudimentary web
556server as well, if you needed a server to test browsers.
557
558<h3>Who will be the new authorities?</h3>
559
560If we do shift to this new architecture, who will offer these
561new-style certificates?  Initially, I imagine that VeriSign and any
562other very big commercial <term>CA</term>s won't do it, because of the
563threat to their business model.  But smaller <term>CA</term>s might be
564convinced to offer this service as an add-on to their existing
565business.  And now groups like <a
566href="http://mayfirst.org/">MayFirst</a> can simply and easily sign on
567as additional certifying agencies.
568
569<p><a href="http://cacert.org/">CACert.org</a> already offers OpenPGP
570signatures, so it could probably be used immediately as an initial
571authority.
572
573<p>And of course, everyone who is aware and interested in these things
574can perform their own certifications, and publish them freely.
575
576<h2>Back to the larger issue</h2>
577
578This article goes into some technical detail on one particular corner
579of technical infrastructure that we use regularly, and looks at ways
580that architectural choices shape the social forces and structures
581attached to the infrastructure.  But this is just one small corner.
582Most technological protocols we adhere to have social ramifications
583which are worthy of consideration.  The <term>Domain Name
584System</term>, or <term>DNS</term> is another example: the US
585government at the moment wields a heavy influence over its direction
586because of some architectural choices, and the placement of a few key
587servers.  This has international ramifications, and has actually
588caused some political tension recently.
589
590<p>The technical decisions made in the early days of e-mail (as
591discussed in one of Jamie McClelland's articles in this book) continue
592to shape our lives and our communication choices today, and new
593extensions to the basic e-mail protocols will continue to have impacts
594on how we can talk to each other.
595
596<p>Technical choices about how we store the music and movies that we
597make and listen to, documents and other data, all have social
598ramifications and are worthy of inspection and political
599consideration.  And if the consideration reveals that there is
600technical work to be done to improve the social consequences, we need
601to take that work on, and support others who have similar social goals
602by adopting their work, even if it means occasional short-term
603inconvenience or cost.
604
605<p>If we make these social decisions in solidarity with each other,
606together we can build towards an egalitarian, democratic,
607non-hierarchical culture that spans the globe.  The alternative is a
608fragmented society, where we are connected only to each other by the
609mechanisms of financial and cultural control, subjected to the whims
610of a small, powerful elite.  So let's get to work!
611
612
613<hr>
614<address></address>
615<!-- hhmts start -->Last modified: Fri Jan 26 17:30:56 EST 2007 <!-- hhmts end -->
616</body> </html>
Note: See TracBrowser for help on using the repository browser.