2008-09-18 7 views
6

Algunos lenguajes de programación como Java y C# incluyen paquetes de cifrado en sus bibliotecas estándar. Otros, como Python y Ruby, te hacen descargar módulos de terceros para realizar un cifrado sólido. Supongo que esto es por razones legales; quizás Sun Microsystems tenga suficientes abogados que no teman ser demandados, mientras que Guido van Rossum se siente más vulnerable.Legalidad del cifrado en bibliotecas estándar

Pero, ¿qué dice la ley sobre esto? En este punto, ¿los autores de código abierto tendrían algo que temer si incluyeran un fuerte cifrado en las bibliotecas estándar de sus lenguajes de programación? Si es así, ¿por qué no? De lo contrario, ¿cómo se las arreglan Sun y Microsoft?

+1

Usted * do * tiene que descargar un módulo adicional para hacer una encriptación fuerte en el JDK. Ver mi respuesta a continuación. – erickson

+0

Interesante; Pensé que ya que podía encriptar cosas usando javax.crypto y no paquetes de terceros, por lo tanto tenía todo el cifrado que necesitaba. No me di cuenta de que lo más fuerte está incluido bot. –

+1

El código está incluido en el JDK, pero está deshabilitado. Si escribe un proveedor de JCE y admite la clase Cipher, debe obtener un certificado de firma de código de Sun y firmar con él su código, o el tiempo de ejecución no habilitará su implementación de Cipher. – erickson

Respuesta

7

Existen dos problemas: importación de software de cifrado y exportación de software de cifrado.

Algunos países (China, Rusia, Irán, Iraq, Myanmar, etc.) restringen el uso de la criptografía por parte de sus ciudadanos. Es ilegal importar el software de cifrado a esos países.

Para habilitar la fuerza de cifrado ilimitada en el JDK, debe descargar un nuevo archivo de política. La licencia del software allí no le permite usar el software si se encuentra en un país que no permite la importación de cifrado. Esto se llama "Política de jurisdicción de fuerza ilimitada" y a continuación incluyo parte de su archivo README.txt.

Otros países, como EE. UU., No desean exportar el software de cifrado al Axis of Evil. Por lo tanto, puede ser ilegal exportar el software de cifrado a esos países.

Las restricciones de exportación de EE. UU. Se han reducido considerablemente, probablemente en reconocimiento de la inutilidad de mantener el cifrado fuera de las manos de los enemigos, o posiblemente alentar el uso del cifrado que ha sido comprometido por la NSA. Pero, no se han ido del todo. No creo que el software pueda tener licencia de terroristas.

JCE para JDK 5.0 ha pasado por el proceso de revisión de exportaciones de EE. UU. El marco JCE, junto con el proveedor SunJCE que viene con el estándar , es exportable.

La arquitectura de JCE permite que la fuerza criptográfica flexible se configure mediante archivos de política de jurisdicción. Debido a las restricciones de importación de algunos países, los archivos de política de jurisdicción distribuidos con el software JDK 5.0 tienen restricciones integradas en la fuerza criptográfica disponible. Los archivos de política de jurisdicción en este paquete de descarga (el paquete que incluye este archivo README ) no contienen restricciones sobre las fortalezas criptográficas. Esto es apropiado para la mayoría de los países. Los proveedores de Framework pueden crear paquetes de descarga que incluyen archivos de políticas de jurisdicción que especifican restricciones criptográficas apropiadas para los países cuyos gobiernos exigen restricciones. Los usuarios en esos países pueden descargar un paquete apropiado, y el marco de JCE hará aplicando las restricciones especificadas.

Se le recomienda que consulte a su abogado de control de exportaciones e importaciones o al abogado para determinar los requisitos exactos.

0

IANAL, pero ...

Java y C# están cerrados de código, y por lo tanto tienen términos del EULA que dicen más o menos no "No es culpa nuestra si utiliza esto en alguna parte que está supone". También tienen equipos de abogados para protegerse y hacer cumplir esa cláusula.

La mayoría de las licencias de fuente abierta no tienen un lenguaje similar, e incluso las que sí lo hacen, no tienen equipos de abogados de su parte, como dijo el OP.

Además, Python y PERL son más antiguos que Java y C#, desde los días en que era ilegal exportar software criptográfico de los EE. UU. No agregar criptografía desde que se modificó la ley es quizás simplemente una decisión de "consistencia-es-buena".

+1

Asunto: * Java y C# son de código cerrado, y por lo tanto tienen términos en el EULA que dicen más o menos "No es culpa nuestra si utilizas esto en algún lugar que no deberías". * Primero, Java es de código abierto En segundo lugar, si está abierto o cerrado es ortogonal a los términos del EULA con respecto a la exportación. – Cheeso

2

En los Estados Unidos, la ley importante es ITAR.