<blockquote><em>Querido amigo: Soy la señora Mariam Abacha<a href="#fn-1" class="fn">1</a>, viuda del finado General Sani Abacha, ex-jefe de gobierno de Nigeria. (…) Para salvar a mi familia de una total bancarrota, estoy buscando transferir el total de US$24,000,000 a través de una institución bancaria confiable. (…) Como pago por su ayuda, le ofrezco el 30% de lo que podamos rescatar de la fortuna de mi querido esposo.</em></blockquote>
<p>El tema conducente del presente ejemplar de SG, <em>Pagos en línea</em>, cruza necesariamente por el tema de los esquemas de establecimiento de reputación en línea. Cada vez menos gente asume confiable cualquier dato que encuentra en Internet sencillamente <em>por estar ahí</em>. Un logro del que puede enorgullecerse la comunidad de expertos que apuntan a la necesidad de concientización en nuestro quehacer en red es que la generalidad de los usuarios, por lo menos, ya desconfía cuando le piden datos para tener acceso a su dinero. Sin embargo, ¿qué es lo que nos lleva a confiar en determinados proveedores?</p>
<p>El problema de establecer la reputación de un tercero puede presentarse como un muy interesante ejercicio académico, con <em>anclas</em> en muy diversas áreas del conocimiento, desde las ciencias sociales hasta las matemáticas.</p>
<p>En un plano mucho más aplicado, todo el problema de la reputación puede resumirse en las preguntas, <em>¿Puedo confiar en que la contraparte es quien dice ser?, y ¿Puedo confiar en que dice la verdad?</em>. Enfocándonos a las aplicaciones actuales, podemos principalmente traducir estas preguntas en:</p>
<h3>Confianza en la identidad</h3>
<p>Seguramente habrán recibido alguna vez un correo similar a aquel cuyas primeras líneas reproduje. Afortunadamente, es poca la gente que cae en estos esquemas<a href="#fn-2" class="fn">2</a>. Lo primero que debe venir a nuestra mente es, ¿estoy realmente intercambiando correo con la Sra. Abacha?</p>
<p>Hemos aprendido a desconfiar de la identidad de los extraños. Y cuando un extraño nos propone una transacción económica, nuestra primer reacción es desconfiar. Cuando efectuamos transacciones a través del navegador, nos hemos acostumbrado a buscar indicaciones de que estemos hablando con un <em>servidor seguro</em>. ¿Qué es esto? ¿Cómo lo valida el navegador?</p>
<p>Más allá de aplicar el sentido común, hay dos esquemas principales que nos permiten confiar la identidad de una entidad –individuo o empresa– con la que podamos tener un intercambio que incluya información confidencial (que requiera mantenerse a resguardo de terceros, como el número de nuestra tarjeta de credito) o no-repudiable (que nos interese tener un comprobante de haber realizado determinada transacción¸ sea pública o privada, con la persona o entidad en cuestión; lo que se ha dado por llamar <em>firma electrónica</em>): El esquema centralizado, basado en <em>autoridades certificadoras (CAs)</em> y firmas corporativas, y el esquema descentralizado, basado en llaveros de confianza y firmas personales. Ambos están basados en la <em>criptografía de llave pública</em>, con implementaciones derivadas de la <em>criptografía de llave pública</em>. No profundizaré en cómo estos pueden utilizarse para el intercambio de información, sino sobre la metainformación: Cómo apuntan a la confiabilidad sobre la <em>identidad</em> de un actor. </p>
<p>Por un lado, tenemos a la <em>infraestructura de llave pública (PKI)</em>. Este es el esquema que siguen los navegadores Web, punto de contacto que casi todos tendremos con los pagos en línea. Además de los navegadores, y el ocasional cliente de correo, muchos otros servicios pueden emplear certificados de esta naturaleza para realizar autenticación o cifrado<a class="fn" href="#fn-3">3</a> — Pero estos dos son los más visibles a los usuarios en general.</p>
<p>Bajo un esquema PKI, nuestro navegador confiará ciegamente en la identidad de un conjunto de CAs centrales, definidas por el proveedor del softare<a class="fn" href="#fn-4">4</a>. Mientras un certificado esté firmado por una autoridad conocida, el navegador mostrará la conexión como segura.</p>
<p>Tenemos por otro lado a los esquemas basados en el esquema de <em>llaveros de confianza</em>. Éste esquema fue dado a conocer en los 1990, con el sistema de criptografía PGP, de Phil Zimmermann. Un llavero de confianza podría definirse como un sistema colaborativo, par a par: Cada participante del llavero <em>firma</em> la llave de los otros participantes a los que conoce personalmente, certificando confianza en que su identidad es verdadera<a class="fn" href="fn-5">5</a>. Cuando un usuario quiere comunicarse con otro, puede ver cuál es el <em>camino de confianza</em> yendo entre individuos, y en base a la distancia y grado de conexión (y, por tanto, de certificación) que tiene determianda identidad, decidir el nivel de confianza que depositará en ésta.</p>
<p>Entonces, un <em>servidor seguro</em> no es sólo el que implementa una conexión cifrada, sino que aquél en cuya identidad puedo confiar. Emplear cifrado sólo tiene sentido cuando podemos confiar en la identidad de nuestra contraparte. De muy poco serviría que garantizáramos que toda nuestra comunicación llega cifrada hasta nuestra contraparte si dicho sistema no es el sistema destino — Si no verificamos la identidad de nuestra contraparte, un atacante podría interponer un servidor entre nosotros y nuestro destino, descifrando y cifrando nuevamente la comunicación, modificando o guardando los datos que juzgara necesario.</p>
<p>En un esquema PKI, basta con engañar a una CA respecto a nuestra identidad para tener la puerta abierta a interceptar las solicitudes de usuarios. Y, tristemente, esto ya hace mucho tiempo pasó del terreno del discurso académico al del mundo real: En 2001 fue detectado un certificado firmado por Verisign a nombre de Microsoft, otorgado a un individuo sin relación alguna con dicha compañía<a href="#fn-6" class="fn">6</a>.</p>
<p>A diferencia de PKI, en que un conjunto de firmas se ve como una serie de árboles con raíces en cada una de las CAs certificadas, una red de firmas basada en las ideas de Zimmermann nos aparece como una red fuertemente interconectada, y nos permite validar <em>varios</em> caminos de confianza entre dos participantes de esta red, y evaluar cada a uno de ellos basado en la confianza <em>subjetiva</em> que damos a los actores involucrados<a href="#fn-7" class="fn">7</a>.</p>
<p>No hay un esquema indiscutiblemente mejor que el otro — Son utilizados con fines distintos. Ambos tienen su ámbito de aplicación — Y si hoy podemos confiar en la confidencialidad, integridad y seguridad de las transacciones en línea, es por estos esquemas. Nuevamente, de muy poco nos serviría cifrar nuestras transacciones en un entorno hostil sin tener confianza en que la contraparte es quien esperamos que sea.</p>
<h3>Reputación del individuo</h3>
<p>Asumamos, sin embargo, que la Sra. Abacha nos convenció plenamente de ser ella. ¿Debemos por ello confiar en su oferta?</p>
<p>Es aquí donde entra en juego la <em>reputación</em>: Ya que tengo certeza de estar interactuando con la entidad deseada, saber si es una entidad con la que me <em>conviene</em> mantener una transacción es el siguiente albur. Y, en este caso, la reputación es algo que debe establecerse bidireccionalmente. No sólo al comprador le interesa saber que el vendedor le entregará un producto genuino y a tiempo, sino que al proveedor le interesa saber si el comprador tiene cómo pagarlo. No sólo al solicitante de un préstamo le interesa que el banco confíe en su capacidad crediticia, sino que al banco le importa saber si éste no ha faltado a sus obligaciones de pago. Si entro a un sitio de intercambio entre particulares, sea de venta directa o a través de subastas (y seguramente en ambos casos todos habrán pensado en <em>cuál sitio</em> pensé al escribir tan amplia categoría — Eso también entra en el amplio ámbito de la reputación), los individuos participantes tienen una calificación indicando su confiabilidad basada en su comportamiento previo.</p>
<p>O, saliéndonos del árido tema de las transacciones económicas, en un foro de discusión puede interesarme filtrar los mensajes para sólo ver los que más vale la pena leer — Y, sin recurrir a un sistema que requiera involucramiento masivo de los editores, la mayor parte de estos sitios basan este filtro dando un valor inicial dependiente de la reputación del autor.</p>
<p>La asignación de reputación es un área completamente dependiente del campo de aplicación, por lo que resulta imposible hablar de implementaciones como en la sección anterior.</p>
<p>Nuevamente, las restricciones de espacio me dejan apenas arañando el campo, apuntando a un gran área a tener en consideración para cualquier desarrollo que emprendamos en que pueda involucrarse el peso o la complejidad de las relaciones entre entidades complejas. Tomar estos elementos en cuenta de forma transversal a los diferentes dominios de aplicación nos llevará a variadas e interesantes consideraciones, que seguramente mejorarán no sólo la confiabilidad de nuestras transacciones, sino incluso la oportunidad y el valor de la información que presentamos a nuestros usuarios.</p>
<h3>Notas al pie</h3>
<p><a name="fn-1" class="fn">1</a> El nombre de la Sra. Abacha es el más prevalente en los fraudes de pago anticipado; tristemente, su <em>identidad</em> y <em>reputación</em> son ya demasiado bajos. Mi intención no es dañarlo más, claro está, sino señalar un fenómeno preexistente</p>
<p><a name="fn-2" class="fn">2</a> Sin embargo, una pequeña proporción de una cantidad absurdamente grande de correos enviados sigue resultando en buen negocio… Y es por ello que estos defraudadores siguen saturando nuestros buzones.</p>
<p><a name="fn-3" class="fn">3</a> Encontraremos referencias a estos certificados como <em>X.509</em>; si vamos a implementar directamente opeaciones sobre los certificados, conviene hacerlo empleando la biblioteca libre <em>openssl</em>.</p>
<p><a name="fn-4" class="fn">4</a> Por ejemplo, puede consultar la lista de CAs autorizadas por Mozilla en http://www.mozilla.org/projects/security/certs/included/index.xml</p>
<p><a name="fn-5" class="fn">5</a> Es muy importante tener en cuenta que lo único que aquí se certifica es la <em>identidad</em>, no la <em>confianza</em> en la entidad en cuestión. La confianza será tratada en la siguiente sección.</p>
<p><a name="fn-6" class="fn">6</a> Bruce Schneier: Fake Microsoft certificates, http://www.schneier.com/crypto-gram-0104.html#7</p>
<p><a name="fn-7" class="fn">7</a> Por poner un ejemplo, si yo (llave C1DB921F) obtengo un documento firmado por Marcelo Tosatti (llave E8E1FE55), desarrollador del kernel de Linux, encuentro que (al día en que escribo este texto) estamos a tres "brincos" de distancia: http://pgp.cs.uu.nl/paths/C1DB921F/to/E8E1FE55.html, http://webware.lysator.liu.se/jc/wotsap/wots/latest/paths/0xC1DB921F-0xE8E1FE55.png</p>