07 octubre 2010

GPG VS S/MIME

Sin duda son 'de facto' los dos estándares mas empleados a la hora de cifrar / firmar digitalmente correos electrónicos. Tanto el uno como el otro tienen sus pros y sus contras, puntos fuertes y débiles.

La idea de este post es tratar de clarificar en que se diferencian y cual es la opción mas indicada en cada situación.

GPG es el heredero open source de PGP, ha tenido una amplia difusión en internet, y por sus características minimalistas (empezar a usar GPG es muy sencillo) es el indiscutible líder.

S/MIME es bastante mas oscuro y pese a gozar de mayor soporte 'de serie' en los clientes de correo, tiene una difusión muy marginal. Se basa en el uso de certificados X.509 (si, como los del DNI o FNMT) y su nicho tradicional han sido las organizaciones.

Ambos sistemas ofrecen tanto firmado digital (autenticidad, integridad de los datos) como cifrado de comunicaciones.

GPG
*) A favor:

  • Autonomía de uso, no requiere de terceros para empezar a usarlo
  • Su uso no está estrictamente ligado al correo electrónico, también se usa para firmar digitalmente software (por ejemplo)
  • Comunidad OpenSource que trabaja activamente en su mantenimiento  
*) En contra:

  • No existe método estandarizado para revocar claves en caso de compromiso
  • Pese a que hay proyectos paralelos, el uso de forma centralizada en organizaciones es sumamente complejo y requiere de conocimientos extra por parte de los usuarios
  • La validez de las claves publicas vienen dada por la confianza otorgada al usuario, no existe respaldo de un tercero
  • En caso de compromiso de la clave privada, queda en ti comunicar de las formas que estimes oportunas su compromiso y la nueva clave pública
  • Casi ningún cliente de correo da soporte 'de serie'
S/MIME
*) A favor:

  • Aunque nadie impide que tu montes tu propia CA, lo normal es que los certificados estén respaldados por una organización que certifica la autenticidad
  • Su uso en organizaciones es mucho mas sencillo de implantar y, soluciones como Microsoft CA que permite 'enroll' de certificados lo simplifica mucho
  • El sistema tiene 'de serie' mecanismos para comprobar si un certificado digital es o no es valido (empleando CRLs o servidores OCSP)
  • Muchos Países (entre ellos España) han trabajado para ofrecer a sus ciudadanos certificados digitales confiables 
  • Casi todos los clientes de correo tienen soporte nativo
  • Dispone de opción 'No repudio' en la firma (útil a efectos legales)
*) En contra:
  • Gestionar un certificado digital no es algo autónomo, dependes de un tercero para hacer la gestión que puede suponer demoras 
  • Existe muy poca información / tutoriales y la tecnología goza de muy poco apoyo popular
  • En caso de compromiso de la organización que emite el certificado (de las autoridades de certificación) el daño puede ser catastrófico y afectar directa o indirectamente a todos los poseedores de un certificado
  • Los certificados digitales llevan asociados 'propósitos de uso' que en algunos casos pueden limitar el uso de las claves (el caso del DNI-E Español, cuyos certificados NO pueden usarse para cifrar datos)
En definitiva, ambos sistemas son excelentes pero tienen ámbitos diferentes, usar GPG en modo personal es la opción mas fácil y rápida. Si el objetivo es facilitar herramientas de firma / cifrado a volúmenes amplios de usuarios, S/MIME ofrece muchas mas ventajas.