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

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

first draft of TLS centralization paper is ready!

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