In this article
Licencias de código abierto: tipos y comparación
Muchos compradores de software —incluso quienes recién comienzan a desarrollar— entienden mal el término «código abierto» y creen que significa que el software se puede usar, copiar, modificar y distribuir como se desee. Esta confusión puede surgir al asociar el código abierto con el dominio público o el shareware, que se pueden usar y modificar sin permisos ni licencias específicas.
La realidad es que, en su mayoría, los programas de código abierto están cubiertos por uno de varios tipos de licencias de código abierto y no necesariamente son gratuitos.
A diferencia del software propietario, cuyos proveedores suelen impedir el acceso, la copia o la modificación del código fuente, el código abierto permite usar, reutilizar, compartir, modificar y distribuir el código en otros programas o aplicaciones. Sin embargo, al igual que las licencias de software propietario, el software de código abierto está sujeto a distintas condiciones y restricciones legales, según el tipo de licencia de código abierto vigente. Por eso es importante cumplir con los términos de las licencias de software de código abierto.También debes conocer los demás riesgos asociados con el uso de software de código abierto.
Este artículo describe los distintos tipos de licencias de código abierto y cómo buscan proteger tanto a quienes crean el software como a quienes lo usan, al controlar el uso indebido y no autorizado del código abierto.
¿Qué es una licencia de código abierto?
Las licencias de software de código abierto establecen cómo otras personas, además de quien lo creó, pueden usar, modificar o distribuir el código. Otorgan a otros usuarios permiso y derechos para usarlo o adaptarlo para nuevas aplicaciones, o para incluirlo en otros proyectos.
Una de las principales ventajas del código abierto es su visibilidad, que facilita la resolución de problemas y permite entender mejor cómo funciona algo cuando la documentación es insuficiente o incorrecta.
Según el tipo de licencia de código abierto, incluso podrías tener permiso para modificar el código fuente original y adaptarlo a tus necesidades o corregir los problemas que encuentres. La licencia determina si esto es posible y bajo qué condiciones. Por ejemplo, podría exigirte que hagas públicas todas las modificaciones.
Descubre más sobre la seguridad del código abierto con Snyk
Consulta nuestro informe Estado de la seguridad del código abierto 2023 o lee sobre las 10 principales vulnerabilidades de código abierto
¿Cuáles son las distintas licencias de código abierto?
Hay más de 80 variantes de licencias de código abierto, pero por lo general se dividen en dos categorías principales: copyleft y permisivas:
Licencia copyleft: tipo de licencia según la cual el código derivado del código abierto original hereda sus términos.
Licencia permisiva: tipo de licencia que ofrece más libertad para reutilizar, modificar y distribuir el código.

Licencias copyleft
Las licencias copyleft de código abierto más populares, ordenadas de más a menos restrictivas, son AGPL, GPL, LGPL, EPL y Mozilla:
La GNU General Public License (GPL)conserva los avisos de licencia y los términos de derechos de autor, y es apta para uso comercial, privado y relacionado con patentes. Todo software que use código GPL debe distribuir todo su código fuente bajo la misma licencia. Por lo tanto, si usas código GPL en tu software (por ejemplo, mediante una biblioteca GPL) y distribuyes tu aplicación, debes poner todo tu código fuente a disposición bajo esa misma licencia GPL. Esta restricción hace que la GPL sea una licencia copyleft estricta.
La Affero GPL (AGPL) agrega una sola cláusula, pero es importante para algunos programas. Como la licencia GPL solo se activa cuando se distribuye el software, existe una laguna para los programas que solo están disponibles a través de la red, es decir, que no se «distribuyen» explícitamente. La licencia AGPL cierra esta laguna al incluir una cláusula de interacción remota por red que activa la licencia GPL para todo software utilizado a través de una red.
La Lesser General Public License (LGPL) ofrece las mismas condiciones que las licencias de código abierto copyleft AGPL y GPL, incluida la conservación de los avisos de derechos de autor y de licencia. La principal diferencia es que los proyectos u objetos pequeños a los que se accede a través de obras más grandes con licencia no requieren que se distribuya el proyecto mayor. Además, no es necesario distribuir el código fuente modificado bajo los mismos términos que se aplican al proyecto de código más grande.
La Eclipse Public License (EPL)se usa con frecuencia para software empresarial.Con la EPL, el software desarrollado con código EPL, no EPL e incluso propietario se puede combinar y sublicenciar, siempre que los elementos que no sean EPL residan de forma independiente en módulos u objetos separados. Se pueden hacer modificaciones bajo la licencia EPL, pero deben publicarse bajo los mismos términos.
La Mozilla Public License (MPL) es la licencia de código abierto copyleft de software menos restrictiva. Facilita la modificación y el uso de su código en software de código cerrado o propietario, siempre que el código con licencia MPL se mantenga en archivos separados y estos se distribuyan junto con el software. La MPL también incluye concesiones de patentes y exige conservar los avisos de derechos de autor.
Licencias permisivas
Las licencias permisivas de código abierto más populares son Apache, MIT, BSD y Unlicense.
La Apache License exige incluir avisos de licencia y derechos de autor en el código distribuido o como aviso en el software. Sin embargo, las obras derivadas, los proyectos más grandes o las modificaciones pueden distribuirse con otros términos de licencia y no tienen que incluir el código fuente. Las licencias Apache incluyen una concesión de patente.
La MIT License, que lleva el nombre de la famosa universidad donde se originó, es quizá la licencia de código abierto más usada del mundo. Es posible que se deba a que es breve, clara y fácil de entender. Permite que cualquiera haga lo que quiera con el código original, siempre que se incluya el aviso original de derechos de autor y de licencia en el código fuente o software distribuido. Exime de responsabilidad a quienes lo crearon y no incluye explícitamente una concesión de patente.
La Berkeley Source Distribution (BSD) License es otra licencia permisiva de código abierto que conserva los avisos de licencia y derechos de autor, pero permite distribuir obras más grandes o con licencia sin el código fuente y bajo otros términos de licencia. La BSD License de 2 cláusulas es muy similar a la licencia de código abierto MIT, mientras que las licencias BSD de 3 y 4 cláusulas agregan más requisitos o restricciones relacionados con la reutilización y otros términos.
Unlicense: como su nombre indica, es la licencia de código abierto menos restrictiva, ya que equivale a poner el código abierto en el dominio público. No establece condiciones, por lo que estas obras sin licencia se pueden distribuir sin el código fuente y bajo otros términos.
¿Cuál es la mejor licencia de código abierto?
La elección del tipo de licencia de código abierto depende en gran medida de la intención de quien otorga la licencia o de quien desarrolla el software. Estas son algunas consideraciones que debes tener en cuenta al comparar licencias:
Hay que tener cuidado al elegir una licencia copyleft. Si la licencia original es muy permisiva, el código modificado también tendrá pocas restricciones, lo que quizá no beneficie a quien lo creó.
Dicho esto, las licencias copyleft suelen imponer más restricciones —y posiblemente menos responsabilidad— que las licencias permisivas.
Si la intención es que el código se pueda reutilizar y compartir tanto como sea posible, probablemente convenga elegir una licencia permisiva.
Si desarrollas software que se usa a través de una red, elegir la AGPL puede ser muy conveniente. Un ejemplo común son las bases de datos de código abierto: si no usas la licencia AGPL, cualquier empresa (como un importante proveedor de servicios en la nube) podría mejorar tu producto y monetizarlo sin tener que distribuir sus modificaciones.
Hay dos versiones principales de la licencia GPL: GPLv2 y GPLv3. La GPLv3 presenta muchas diferencias, la mayoría de las cuales abordan temas que la GPLv2 no contempla, como las patentes. La GPLv3 también mejora la compatibilidad con otras licencias de código abierto, como la Apache License v2. Sin embargo, ten en cuenta que las dos versiones de GPL no son compatibles entre sí.
Como las licencias MIT se usan con tanta frecuencia, tienen la ventaja de ser muy conocidas y fáciles de entender. El software con licencia MIT no tiene restricciones de redistribución ni monetización, lo que lo hace muy atractivo para todo tipo de usos. También es compatible con muchas otras licencias de código abierto, por lo que el código con licencia MIT se puede usar en otros proyectos de código abierto que tengan licencias distintas.
Control de licencias de código abierto
Muchos desarrolladores, empresas y compañías de software comercial usan una combinación de varios tipos de licencias de código abierto. Controlar esas licencias puede volverse cada vez más complejo a medida que se desarrolla, compra y distribuye software:
Mantenimiento de tipos de licencias derivadas a partir de las licencias del software original
Conocimiento de las fechas de vigencia y los requisitos de renovación
Snyk ofrece una solución integral para el cumplimiento de licencias que te ayuda a mantener un ritmo de desarrollo rápido y cumplir con las licencias de software de código abierto de tus proyectos.
«Como la herramienta de Snyk identifica problemas con las licencias de código abierto, permite que nuestros desarrolladores generen un informe claro y fácil de gestionar para enviarlo al equipo legal, lo que les ahorra días y días de trabajo».
Scott Mitchell, gerente de seguridad de aplicaciones en Blue Prism.
Solicita una demo en vivo de Snyk para proteger el código abierto
Habla con nuestros expertos en seguridad para descubrir cómo Snyk puede ayudarte a usar software de código abierto de forma segura