Cifrado de fuente PHP – Eficacia y desventajas

Tengo un código fuente PHP que estoy hospedando con la empresa de hosting XYZ. Estoy usando un software de encriptación PHP como Zend Guard o ionCube para proteger la fuente de ser vista por cualquier persona (sysadmin o hacker que piratee el administrador del sistema).

  • ¿Qué tan fácil / difícil es para alguien que tiene acceso completo al sistema (como el administrador de sistemas o el hacker que piratea el administrador del sistema) descifrar la fuente? No sé cómo funciona el software de cifrado, pero supongo que utilizan alguna clave, que debería permanecer en el servidor y, por lo tanto, es accesible para un administrador de sistemas o un pirata informático. Si tiene conocimientos técnicos sobre cómo hacerlo, no dude en ofrecer una explicación en su respuesta.

  • ¿El uso de dicho cifrado fuente ralentiza el sitio? Si alguien tiene experiencia de primera mano o sabe de alguien que tiene experiencia de primera mano;)

Me interesan los aspectos técnicos de esto, cuán efectivo es el cifrado … y sus desventajas, de quienes los usaron o consideraron su uso.

Gracias (todas las respuestas / comentarios útiles han sido votados)

Editar: las respuestas hasta ahora parecen ignorar lo que trato de entender. Estoy intentando comprender la efectividad del cifrado. Realmente no tengo ningún código que necesite protección de los malos, lo de arriba fue solo un ejemplo, por lo que los consejos como código abierto o contratar un abogado realmente no abordan mi curiosidad técnica. A + a cualquiera que entienda el punto

Los esquemas de encriptación (o codificador) intentan ocultar su código como un archivo encriptado. Obviamente, el código debe descifrarse en el momento de la ejecución, lo que agrega una sobrecarga inútil. Algunos de ellos también insisten en que el sistema host instale rutinas especiales, que a los hosters les desagrada intensamente, porque no desean configurar configuraciones especiales solo para usted. Pero la parte mala es que contienen las semillas de su propio deshacer: para ejecutar en el host de destino, deben contener el software de descifrado. Entonces, si usa uno, entrega el desencriptador necesario para obtener su código. Es solo cuestión de ubicarlo; una vez encontrado, su código es completamente descifrable y expuesto. Estos simplemente no son seguros.

Los esquemas de ofuscación codifican los nombres de identificadores, eliminan comentarios y formatean. Pero el código ofuscado se ejecuta exactamente como el original, sin gastos generales y sin necesidad de soporte de tiempo de ejecución especial. Los ofuscadores dependen de la dificultad inherente para comprender los progtwigs en general. Los progtwigs son lo suficientemente difíciles de entender cuando están bien diseñados, los nombres están bien elegidos y hay buenos comentarios en el código. Todos esperamos que nuestros progtwigs estén bien diseñados, pero si los nombres son malos y los comentarios han desaparecido, son bastante difíciles de entender. Examine su propia experiencia con el código de otras personas.

La gente dirá, “pero cualquiera puede inspeccionar el código ofuscado y entenderlo”. Eso es cierto si tienes una pequeña aplicación. Si su aplicación tiene una escala (decenas de páginas de código), es extremadamente difícil entender lo que está haciendo cuando todos los nombres de las variables están codificados. Cuanto más grande sea tu código, mejor será la ofuscación para protegerlo.

Si desea ver ejemplos de lo que hace un obfuscator PHP, consulte nuestro Thicket PHP Obfuscator .

Ni Zend Guard ni ionCube usan cifrado, en su sentido matemático, para proteger su código. Lo que hacen, excepto la ofuscación ya descrita por otras respuestas, es la encoding.

Este es un proceso que normalmente realiza el intérprete de PHP cada vez que se accede a su secuencia de comandos: su secuencia de comandos PHP se comstack en un formato de código de bytes, que luego se ejecuta. Lo que hacen esencialmente los codificadores como Zend Guard e ionCube es un proceso equivalente, solo que se hace una vez, y solo el bytecode “comstackdo” se pone a disposición o se carga en el servidor.

Esto significa que realmente recrear el mismo código que una vez escribió es completamente imposible. Lo que no es imposible, y esto también es una ofuscación, es la ingeniería inversa del código comstackdo u ofuscado para descubrir qué está haciendo.

Para resumir, diría que estos productos son muy buenos para proteger su código , en lugar de proteger su lógica .

¿Por qué exactamente necesitas encriptar tu código fuente? Si lo portas como una protección contra posibles hackers, por favor crea cuando digo que si realmente quisieran desencriptar tu código fuente, lo harían. Es posible con ionCube, la última vez que lo verifiqué.

En cuanto al rendimiento, creo que Zend es un poco más rápido que ionCube debido a que no requiere ningún archivo adicional. Pero como dije antes, no confíe en el cifrado para nada.

Si se puede ejecutar, puede descomstackrse. Quédese con su equipo legal para acceder a los derechos, no a la encriptación 🙂 Mejor aún, fuente abierta su proyecto: P

EDITAR: ‘Cifrado’ también agrega mucho a los tiempos de ejecución!

Lo único que puede hacer contra la empresa de hosting es tener una buena licencia y un abogado

Hasta donde yo sé, los codificadores PHP en realidad no codifican tu código PHP. Simplemente cambian los nombres de las variables y agregan un código de basura innecesario, por lo que resulta MUY difícil para cualquiera averiguar qué hace el código. El problema es que no pueden ocultar ninguna contraseña (ya sea la contraseña de administrador codificada o los datos de conexión de la base de datos).

Por lo tanto, no se aseguran de que su código sea seguro, simplemente dificultan que alguien lo entienda.