Aunque es difícil pensar con el estómago vacío, no nos damos por vencidos y seguimos adquiriendo y COMPARTIENDO conocimientos. En esta oportunidad comenzamos con JavaScript -más vale tarde que nunca- la cual es una potente herramienta del lado del cliente (luego veremos que también -con ayuda de algunos entornos de trabajo «framework»- se usa del lado de servidor web).
Autor: ks7000
Internet Protocol v6 (IPv6)
IPv6
A manera de prólogo.
Pues que con los bajos precios del petróleo aquí en Venezuela tenemos una fuerte crisis económica y apenas hemos podido pagar el alojamiento de esta vuestra página web -humilde sitio- y hemos estado alejados de la escritura. En la década de los 90 nos sucedió igual -duramos una semana comiendo sólo arroz- pero es de grata recordación una película que vimos en esa época sobre «El Diario de Ana Frank» -transmitida por una televisora llamada «Niños Cantores«- y que nos recuerda que podríamos estar mucho peor –mal de muchos, consuelo de tontos-. Pero lo cierto del caso es que el libro se escribió y existe, y es una prueba de la perseverancia y esperanza de la humanidad.
Por ello decidimos seguir preparándonos para el futuro, ya vendrán días de sol luego de estos días de lluvia -y hasta de tormenta- SEGUIMOS, NO NOS DETENEMOS. Retomamos, entonces, el tema de la informática desde sus bases, y algo que desde que estamos conectados a internet y aún usamos día a día es el «Internet Protoco version 4» o, por su acrónimo en inglés, IPv4. Simplemente el IPv6 viene a ser el sucesor (¡ea, que nos han volado la versión 5!) y para decirlo en forma llana, pues viene a proporcionarnos, prácticamente, direcciones IP infinitas, es decir, números de identificación exclusivas para cada adaptador de red (que eso ya lo sabéis, por ejemplo es bastante común que cada ordenador portátil tenga hoy en día al menos 2 maneras de conectar al internet: por ethernet o por WI-FI) pues cada uno de ellos tiene una dirección IP independendiente (luego veremos que esto no necesariamente así en IPv6).
Historia del protocolo IiPv6.
Vint Cerf, «Evangelista» en Jefe en la empresa Google, y uno de los fundadores del internet, expone la próxima versión del internet, IPv6, y por qué la necesitamos.
Cuando el internet fue puesto en práctica en 1983, nadie nunca soñó que habrían millardos de dispositivos y usuarios intentando estar en línea. Pero así como una red de telefonía se queda sin números telefónicos para sus abonado, el internetactual se quedó sin direcciones IP en 2013, y si no implementamos el Protocolo de Internet v6 (IPv6), no tendremos el espacio que necesitemos para que el internet crezca y esto podría liarlo, hacerlo inseguro e insustentable.
En el vídeo el señor Cerf nos explica con mayores detalles, usad los subtítulos generados en castellano (spanish) si es necesario:
Allí tenéis, pues, los enlaces PUROS Y DUROS hacia los conceptos, eso os llevará bastante tiempo analizar y asimilar o en el caso de los más avezados, recordar.
Aprendiendo de los mejores.
Debemos aprovechar el uso de la tecnología al máximo, es por ello que encontré esta exposición en Youtube, cortesía de «el maligno Alonso» (no nos asustéis, no tiene nada que ver con religión) y describe de la siguiente manera:
Conferencia de Rafael Sánchez (@r_a_ff_a_e_ll_o) de Eleven Paths sobre cómo montar un escenario de hacking IPv6 en Internet con un VPS y túneles IPv4/IPv6. Más información sobre esta sesión en esta URL.
Sin más aquí os dejo el vídeo, que va de lo más básico (una muy buena introducción a los conceptos y «bien machacado») hasta lo más avanzado ( IPv6 dentro túnel VPS con IPv4, máquinas virtuales, Kali Linux, nmap, etc.) que es, como dicen ellos allá «para flipar» (aquí decimos «tripear» del inglés «to trip», viajar o «elevarse»):
Podemos destacar los siguientes datos de la conferencia:
- Podemos asignar a cada centímetro cuadrado de la superficie de la Tierra una dirección IPv6 (nos atrevemos a decir, además, que incluso sobrarían direcciones).
- En Alemania está prohibido la exploración «escaneo» de red, osea, el estar revisando direcciones IP a ver cuáles tienen puertos abiertos «en escucha» -MUY IMPORTANTE este dato
- En España aún no utilizan IPv6, vamos que para Venezuela lo puedo entender pero no justifico que allá estén retrasados con eso (una crítica con todo respeto).
- NAT es una chapuza, estamos muy de acuerdo con eso.
- En la conferencia no lo comenta pero CONSIDERAMOS -olvidemos por un momento que existe el «Wi-Fi«- el modelo «modem»+»router» desaparecerá porque precisamente los enrutadores fueron hechos para simplificar la implementación de una NAT, le facilita la vida a los usuarios. QUEREMOS DECIR que con IPv6 usaremos «modem«+»ethernet hub» o «modem»+»network switch» que aunque parecen lo mismo NO LO SON. Con el «ethernet hub» se envían, sin retraso, cada paquete a todas las computadoras conectadas al aparato. EN CAMBIO el segundo, «network switch» sólo enviará los paquetes a la máquina a la cual está destinada PERO con el costo de un retraso de hasta 1,2 milisegundos ya que debe recibir todo el paquete, leerlo y analizar de dónde viene y a donde va. Para mayor información, leer este excelente, corto y conciso manual (parece tecnología vieja PERO NO LA SUBESTIMÉIS por favor)
Para cada átomo en la Tierra hay 100 direcciones IPv6.
Podemos comenzar con esa abrumadora cifra: podemos asignar 100 direcciones IPv6 a cada átomo en la Tierra, al haber tanta oferta el «negocio» de las direcciones IP fijas o estáticas caerán a costo cero, ¡imaginamos!
Did you know there are 100 IP addresses for every atom on Earth with IPv6? https://t.co/Q7q7fsBxxK #FunfactFriday pic.twitter.com/KJnUKNA8Ks
— Planetech USA (@PlanetechUSA) 15 de abril de 2016
Aquí ampliaremos sobre el tema (en construcción).
<Eso es todo, por ahora>.
Declaración y pago del I.G.T.F.
I.G.T.F. = Impuesto a las Grandes Transacciones Financieras.
En una entrada anterior publicamos un análisis a la Ley que crea un impuesto a las transacciones financieras, y allí insistimos en llamarla «impuesto al débito bancario» tal como históricamente había sido nombrada (ufff que si os gusta la historia contemporánea contada por este vejete y vivida en carne propia pues tenéis aquí un testigo de esa época y allí lo relato con todo detalle).
Gaceta Oficial N° 40.852: aumento sueldo 20% 1° marzo 2016.
Son 5 hojitas en formato pdf (gracias a pdfSam y lo recomiendo para dividir y combinar documentos en ese formato desde el explorador de archivos de Ubuntu, click derecho sobre archivo pdf, acciones); con este aumento el sueldo mínimo en Venezuela se ubica en Bs. 11.577,81 (si tomamos como referencia el SIMADI serían aproximadamente US$ 58 mensuales) según Decreto Presidencial N° 2.243.
Para descargar dicho ejemplar electrónico de la Gaceta Oficial desde nuestra página web —>haga click aquí <–.
Se debe recalcar que, en el mismo ejemplar de gaceta, se encuentra publicado el Decreto Presidencial N° 2.244 el cual establece el aumento de la Ley de Cestaticket Socialista de una unidat tributaria y media (1,5 U.T.) diarias a dos unidades tributarias y media (2,5 U.T.) diarias POR ESCRITO y no como declaró el Presidente en transmisión conjunta de radio, televisión e internet -error que ha cometido ya varias veces- de tratarlo como porcentaje (sic) «de 1,5% a 2,5%», vaya ese detalle por delante.
Aquí tienen la transcripción tomada de la Gaceta Oficial 40.852, de mi propio puño con propósito puramente informativo, usted debe consultar el documento original y no tomar este texto como oficial debido al riesgo de alguna “fe de errata“.
Decreto N° 2.243
19 de febrero de 2016
Nicolás Maduro Moros.
Presidente de la República.
Con el supremo compromiso y voluntad de lograr la mayor eficacia política y calidad revolucionaria en la construcción del Socialimo, la refundación de la patria venezolana, basado en principios humanistas sustentado en condiciones morales y éticas que persiguen el vivir bien del país y del colectivo, por mandato del pueblo de conformidad con lo establecido en el artículo 226 de la Constitución de la República Bolivariana de Venezuela; y en ejercicio de las atribuciones que me confiere el numeral 11 del artículo 236, en concordancia con lo dispuesto en en los artículos 80 y 91 ejusdem, concatenado con el artículo 46 del Decreto con Rango, Valor y Fuerza de Ley orgánica de la Administración Pública, y los artículos 10, 98, 111 y 129 del Decreto con rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras , en Consejo de Ministros,
CONSIDERANDO
Que el Estado democrático y social, de Derecho y de Justicia garantiza a los trabajadores y las trabajadoras la participación en la justa distribución de la riqueza generada medainte el proceso social de trabajo, garantizándoles que su salario sea suficiente y le permita vivir con dignidad y cubrir para sí y su familia las necesidades materiales, sociales e intelectuales como condición básica para avanzar hacia la mayor suma de felicidad posible como objetivo esencial de la Nación que nos legó El Libertador,
CONSIDERANDO
Que es principio rector del Gobierno Revolucionario proteger a la familia venezolana de la guerra económica desarrollada por el imperialismo, que induce la inflación exacerbada ejecutada por la oligarquía apátrida, como instrumento de acumulación de capital en manos de una minoría,
CONSIDERANDO
Que la República Bolivariana de Venezuela ha suscrito y ratificado los convenios número 26, 95 y 100 de la Organización Internacional del Trabajo relativos al establecimiento de métodos para la fijación de salarios mínimos, la protección del salario y a la igualdad de remuneración de los trabajadores y las trabajadoras,
CONSIDERANDO
Que es deber del Estado mantener estos convenios para cumplir con el compromiso democrático, la equidad, la política de recuperación sostenida del poder adquisitivo de la población venezolana, así como la dignificación de la remuneración del trabajo y el desarrolo de un modelo productivo soberano, basado en la justa distribución de la riqueza, capaz de generar trabajo estable y de calidad, garantizando que los trabajadores y trabajadoras disfruten de un salario mínimo igual para todos y todas,
CONSIDERANDO
Que el Decreto con rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, promulgada por el Comandante Supremo de la Revolución Bolivariana, Hugo Rafael Chávez Frías, el 30 de abril de 2012 y publicado en Gaceta Oficial de la República Bolivariana de Venezuela el 07 de mayo de 2012, establece que el Estado debe fijar cada año el salario mínimo, el cual debe ser igual para todos los trabajadores y trabajadoras en el territorio nacional y que debe pagarse en moneda de curso legal.
DECRETO
Artículo 1°.
Se fija un aumento del salario mínimo nacional mensual obligatorio en todo el territorio de la República Bolivariana de Venezuela, para los trabajadores y las trabajadoras que presten servicios en los sectores público y privado, sin perjuicio de lo dispuesto en el artículo 2° de este Decreto, del veinte por ciento (20%) a partir del 1 de marzo de 2016, estableciéndose la cantidad de ONCE MIL QUINIENTOS SETENTA Y SIETE BOLÍVARES CON OCHENTA Y UN CÉNTIMOS (Bs. 11.577,81) mensuales.
El monto del salario diurno por jornada será calculado con base a la resultante del salario mínimo mensual a que se refiere este artículo entre treinta (30) días.
Artículo 2°.
Se fija el salario mínimo nacional mensual, obligatorio en todo el territorio de la República Bolivariana de Venezuela para los y las adolescentes aprendices que participan en el proceso social de trabajo desde las entidades de trabajo públicas y privadas, de conformidad con lo previsto en el Capítulo II del Título V del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, a partir del 1° de marzo de 2016, en OCHO MIL SEISCIENTOS DIEZ BOLÍVARES CON VEINTIÚN CÉNTIMOS (Bs. 8.610,21) mensuales.
El monto del salario por jornada diurna aplicable a los aprendices y adolescentes será calculado con base a la resultante del salario mínimo mensual a que se refiere este artículo dividido entre treinta días.
Cuando la labor realizada por los y las adolescentes aprendices, sea efectuada en condiciones iguales a la de los demás trabajadores y trabajadoras, su salario mínimo será el establecido en el artículo 1° de este Decreto, de conformidad con el artículo 303 del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras.
Artículo 3°.
Los salarios mínimos establecidos en este Decreto se pagarán en dinero efectivo y no comprenderán, como parte de los mismos, ningún tipo de salario en especie.
Artículo 4°.
Se fija como monto de las pensiones de las jubiladas y los jubilados, pensionadas y pensionados de la Administración Pública, el salario mínimo nacional obligatorio establecido en el artículo 1° de este Decreto.
Artículo 5°.
Se fija como monto de las pensiones pagadas por el Insituto Venezolano de los Seguros Sociales (I.V.S.S.), el salario mínimo nacional obligatorio establecido en el artículo 1° de este Decreto.
Artículo 6°.
Cuando la participación en el proceso social de trabajo se hubiere convenido a tiempo parcial, el salario estipulado como mínimo podrá someterse a lo dispuesto en el artículo 172 del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, en cuanto fuere pertinente.
Artículo 7°.
El pago de un salario inferior a los estipulados como mínimos en este Decreto, obligará al patrono o patrona a su pago de conformidad con el artículo 130 del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, y dará lugar a la sanción prevista en su artículo 533.
Artículo 8°.
Se mantendrán inalterables las condiciones de trabajo no modificadas en este Decreto, salvo las que se adopten o acuerden en beneficio del trabajador y la trabajadora.
Artículo 9°.
Queda encargado de la ejecución de este Decreto
el Ministro del Poder Popular para el Proceso Social de Trabajo.
Artículo 10°.
Este Decreto entrará en vigencia a partir del 1° de
marzo de 2016.
Dado en Caracas, a los diecienueve días del mes de febrero
de dos mil dieciséis. Años 205° de la Independencia, 156° de la Federación y 17° de la Revolución Bolivariana.
Ejecútese,
(L.S.)
(siguen firmas del Presidente, Ministras y Ministros).
Decreto N° 2.244
19 de febrero de 2016
Nicolás Maduro Moros.
Presidente de la República.
Con el supremo compromiso y voluntad de lograr la mayor eficacia política y calidad revolucionaria en la construcción del Socialimo, y en el engrandecimiento del país, basado en los principios humanistas y en condiciones morales y éticas bolivarianas, por mandato del pueblo, en ejercicio de las (sic) atribución que me confieren el numeral 11 del artículo 236 de la Constitución de la República Bolivariana de Venezuela, concatenado con el artículo 7° del Decreto con Rango, Valor y Fuerza de Ley del Cestaticket Socialista para los Trabajadores y Trabajadoras, y en concordancia con el artículo 46 del Decreto con Rango, Valor y Fuerza de Ley orgánica de la Administración Pública, en Consejo de Ministros,
CONSIDERANDO
Que el Estado debe promover el desarrollo económico con el fin de generar fuentes de trabajo,alto valor agregado nacional y elevar el nivel de vida de la población para garantizar la seguridad jurídica y la equidad en el crecimiento de la economía a los fines de lograr una justa distribución de la riqueza, mediante una planificación estratégica, democrática y participativa,
CONSIDERANDO
Que es obligación del Estado, proteger al pueblo venezolano de los embates de la guerra económica propiciada por factores tanto internos como externos; razón por la cual, considera necesario equilibrar los diferentes eslabones del proceso productivo y asegurar el acceso de la población a todos los bienes y servicios requeridos para su desarrollo humano,
CONSIDERANDO
Que es interés del Ejecutivo Nacional, asegurar los niveles de bienestar y prosperidad de los trabajadores y las trabajadoras y de su núcleo familiar.
DECRETO
Artículo 1°.
Se ajusta el pago de la Cestaticket Socialista para los Trabajadores y Trabajadoras que presten servicios en lso sectores públicos y privados, a dos y media Unidades Tributarias (2,5 U.T.) por día, a razón de treinta (30) días por mes, pudiendo percibir hasta un máximo de setenta y cinco (75) Unidades Tributarias al mes, sin perjuicio de lo dispuesto en el artículo 7° del Decreto con Rango, Valor y Fuerza de Ley del Cestaticket Socialista para los Trabajadores y Trabajadoras.
Artículo 2°.
Las entidades de trabajo del sector público y privado, ajustarán de conformidad con lo establecido en el artículo 1° de este Decreto, el beneficio de Alimentación denominado «Cestaticket Socialista» a todos los trabajadores y trabajadoras a su servicio.
Artículo 3°.
El ajuste mencionado en el artículo 1° de este Decreto, es de obligatorio cumplimientopor parte de los empeladores y empleadoras de todo el territorio de la República Bolivariana de Venezuela.
Artículo 4°.
Queda encargado de la ejecución de este Decreto
el Ministro del Poder Popular para el Proceso Social de Trabajo.
Artículo 5°.
Este Decreto entrará en vigencia a partir del 1° de
marzo de 2016.
Dado en Caracas, a los diecienueve días del mes de febrero
de dos mil dieciséis. Años 205° de la Independencia, 156° de la Federación y 17° de la Revolución Bolivariana.
Ejecútese,
(L.S.)
(siguen firmas del Presidente, Ministras y Ministros).
<Eso es todo, por ahora>.
Gaceta Oficial N° 40.846: aumento de la Unidad Tributaria a Bs. 177,00.
Unidad Tributaria.
Son 3 hojitas en formato pdf (agradezco a “pdfsam” y lo recomiendo para dividir y combinar documentos en ese formato); con este aumento las facturas de compra con monto inferior a 20 U.T. (Bs. 3.540,00) podrán ser ingresadas en “caja chica” sin hacerle retención de IVA (Contribuyentes Especiales); también aumentan automáticamente el Cestaticket Scoialista para los Trabajadores y Trabajadoras, el costo de emisión de los pasaportes, multas y un sinfín de cosas más {véase el uso cotidiano de la U.T. en Wikipedia en español por nosotros aportado, aunque otros wikipedistas insisten en borrar y bloquear – ataque certero al conocimiento libre 8-( , pero de todo hay en la viña del Señor – }.
Unidad Tributaria.
Para descargar dicho ejemplar electrónico de la Gaceta Oficial desde nuestra página web haga click aquí.
Si desea descargarla COMPLETA desde el Tribunal Supremo de Justicia siga este enlace web.
La Unidad Tributaria es una medida que normaliza y mantiene actualizados, año tras año, los montos especificados en las leyes tributarias y reglamentos tributarios venezolanos, los cuales son en expresados en proporcionalidad directa (incluso en fracción y/o porcentaje) al valor actual de dicha Unidad Tributaria. Nació de la necesidad de ahorro de recursos materiales y humanos en la publicación al día con la inflación presente en el país, producida por la devaluación de la moneda venezolana y cuyo hito histórico comenzó con el Viernes Negro en el Gobierno de Luis Herrera Campins.
Antes de la creación de la Unidad Tributaria todo aumento en los valores tributarios debía ser publicado en la Gaceta Oficial de Venezuela1 para que entrara en vigencia, ocasionando un gran trabajo (con el consecuente gasto de dinero en tinta y papel) de imprimir cada año de nuevo las mismas leyes y reglamentos pero con la única diferencia de sus valores modificados.
Noticia via Twitter.
El valor actual de la Unidad Tributaria (U.T.) es de 177 Bs, Gaceta Oficial N° 40.846, fecha 11 de febrero de 2016 pic.twitter.com/LjOXyVqWJ3
— SENIAT (@SENIAT_Oficial) 1 de septiembre de 2016
<Eso es todo, por ahora>.
Gaceta Oficial Extraordinaria N° 6.210: Impuesto Grandes Transacciones Financieras.
Esta entrada es muy densa debido al lenguaje tributario utilizado en las Leyes y Providencias. No somos ni abogados ni licenciados, ni se deben tomar estas extensas líneas como «dogmas de fe»; consulten al profesional que los atiende para mayor información. Se corre el riesgo, debido a los larguísimos párrafos, que hagaís click hacia otras páginas web, o incluso que os quedéis dormidos o dormidas. No importa, si eres programador o programadora y tienes clientes que tributan al SENIAT os digo que volveréis por estos lares a leer y releer. Muy probablemente nos digaís que estamos equivocados, pues bien allí está nuestra cuenta Twitter (pública) abierta de par en par para recibir sus mensajes. En fin, aquí vamos.
Miércoles 31 de diciembre de 2015.
Gaceta Oficial Extraordinaria N° 6.210:
Impuesto Grandes Transacciones Financieras.
Decreto N° 2.169: «Decreto con Rango, Valor y Fuerza de Ley de Impuesto a las Grandes Transacciones Financieras«; seamos claros y sencillos: IMPUESTO AL DÉBITO BANCARIO (más adelante veréis que hay algo más, algo que nos obliga a programar software a quienes nada tenemos que ver con bancos -instituciones financieras-).
VirtualBox 5.0.14
VirtualBox 5.0.14 es la última actualización a la fecha de hoy 22 de enero de 2016, nosotros usamos intensamente este entorno de virtualización tanto para servidores en producción como servidores en desarrollo. Esta última versión hoy la descargamos e instalamos sobre los servidores de desarrollo y dentro de unas dos semanas que hayamos probado su estabilidad y certeza de rapidez y eficiencia, será aplicado a los de producción.
Ingeniería social en informática.
La ingeniería social, aplicada al mundo de la informática, se basa en la premisa de que el usuario, ser humano al fin, es el eslabón más débil de la cadena, por lo tanto el más fácil de atacar.
En los ataques llevados a cabo mediante Ingeniería Social el eslabón débil al que se apunta es a las personas y su ingenuidad
— SUSCERTE (@SUSCERTE) 19 de mayo de 2016
Desde hace muchísimos años ya sabíamos esto pero, a nuestro juicio, quien popularizó el término gracias al éxito de la normalización (esto es, expresarlo en reglas, pocas por demás, y aplicarlas al pie de la letra y masivamente) fue Kevin Mitnick.
- Todos queremos ayudar.
- El primer movimiento es siempre de confianza hacia el otro.
- No nos gusta decir «no».
- A todos nos gusta que nos alaben.
Aunque vosotros no me lo estáis preguntando, igual os lo digo: la letra k de nuestro dominio web, donde están alojadas estas humildes líneas, es en honor a dicho cracker. Ah, y la fotografía que encabeza este artículo es Mister Kevin Mitnick. Dicho esto imaginad la cantidad de visitas que recibirá este entrada para divulgar nuestra idea (si alguien anteriormente la ha publicado -la idea que van a leer-, comunicadlo de inmediato por favor 😉 , arriba tenéis nuestra dirección en Twitter. ).
https://twitter.com/ks7000/status/731605936020787202
https://twitter.com/tecnologiapure/status/736601592661696512
Learning a lot from the masters! @kevinmitnick @chemaalonso awesome day!! pic.twitter.com/xAy7nfreUp
— cyberhades.com (@cyberhadesblog) 23 de noviembre de 2017
Introducción.
Así pues, arrancamos el 2016, con el enfoque a la seguridad donde más falla. ¡Sabíais que en los accidentes de aviación un alto porcentaje de casos ocurrieron por impericia y/o confusión y/o conducta natural del ser humano! Y estamos hablando de la tripulación, no hablemos ya del personal en tierra: mecánicos e incluso los que pesan el equipaje que llevamos, o los que montan la carga o equipaje en los aviones (que para todos los efectos es lo mismo, en este caso).
Pero la Administración Federal de Aviación (la FAA por sus siglas en inglés, precisamente del país que desarrolló masiva y comercialmente la aviación) dedica mucho más tiempo en encontrar la solución para prevenir futuros accidentes que tiempo en investigar las causas de cada accidente. Es decir, descubrir qué y cómo se estrella un avión toma tiempo y trabajo, pero prevenir dicho error a futuro es aún más trabajoso. La razón es simple: cuesta dinero implementar políticas de seguridad. Añada el hecho, además, que no se debe eliminar ni interferir en ninguna de las políticas de seguridad implementadas anteriormente, pues veis entonces que el asunto no va nada fácil, en lo absoluto. Tal como dice el hacker español Chema Alonso (ahora ejecutivo en Telefónica España) : «la gente quiere estar segura PERO NO QUIERE PREOCUPARSE POR LA SEGURIDAD«
Por estos lares hay refrán que ilustra lo anterior: «estar bien con Dios y con el diablo».
Un poco de historia.
El ejemplo de los aviones os lo colocamos para entrar de lleno en la seguridad informática, pero primero debemos describir, lo más breve y resumida posible, las «políticas de seguridad» implementadas anteriormente.
Por allá en el siglo pasado, a principios de la década de los noventa, utilizábamos el protocolo IPX/SPX de Novell Netware, un sistema operativo de red muy adelantado a su tiempo. No tuvimos acceso a internet de manera masiva hasta 1997 así que esas pequeñas red de área local con cable coaxial de 10 mbps eran verdaderas islas de datos. Vale decir que al desconectar un solo nodo por cualquier motivo, «colgaba» la red completa debido al uso de token, así que si alguien quería conectarse a la red pues no pasaba desapercibido, nos dábamos cuenta de inmediato. Y cuando por fin llegó el internet implementamos el TCP/IP para ciertas máquinas «avanzadas» en la red para repartir la conexión de marcado telefónico de los flamantes y nuevos modem PCI de 33 kbps (y luego los de 56 kbps) y todos tan felices y tan contentos, los datos del sistema de facturación e inventario corrían con cierto nivel de seguridad. Incluso por allá por 2004 ó 2005 hubo un incidente mundial del protocolo TCP/IP que nos dejó incomunicados por 2 días pero nunca se cayó el IPX/SPX.
Incluso hoy en día, en negocios pequeños, y a pesar que solo usamos TCP/IP con el fast ethernet o gigabit ethernet (100 ó 1000 mbps) con RJ45 (que detecta colisiones y que permite que alguien dentro de la empresa coloque una «T» para hacer un «ataque de hombre en el medio» por hardware o, más fácil aún, conectar un ordenador portátil a cualquier conector empotrado en pared para hacerlo por software) este sistema basado en «isla de información» sigue siendo relativamente seguro. Agreguemos el factor de red inalámbrica «wifi» y veremos que un atacante, sin necesidad de estar dentro de la empresa pero dentro del alcance de nuestra antena de red descartaría el método primero ya que le sería más fácil y cómodo «hackear» nuestro enrutador inalámbrico. Pero la tecnología llegó para quedarse, el inalámbrico tiene claramente sus ventajas que podemos observar acá:
Pueden intentar forzar la conexión inalámbrica (si usan WEP pues de hecho se conectarán indefectiblemente) o de irse de lleno y aplicar ingeniería social a nuestros empleados, más fácil aún.
Claro está, todo lo descrito anteriormente, conectarse físicamente a nuestra red de área local, sería el primer paso para un atacante, lo siguiente sería tener las contraseñas necesarias para lograr escalar privilegios ya sea en el mismo enrutador, en los sistemas operativos de cada computadora o en las bases de datos de los servidores. De nuevo la modernidad facilita las cosas: un atacante en cualquier parte del mundo intentará entrar por medio de nuestro proveedor de internet, pero a favor nuestro están los «muros de fuego» tanto de los enrutadores -aparatos o computadoras que hagan las veces de enrutador(es)- como en los sistemas operativos modernos de cada computadora. Si queréis ver un método sencillo de protección con un muro de fuego «firewall» escrito con IPTABLES visitad este enlace, es un ejemplo sencillo para proteger nuestra red de área local.
Como siempre hay quien puede explicar mejor que nosotros, consideramos que el artículo de Alejandro Alcalde en su página web «El Baúl del Programador» bajo el título de «Cómo se almacenan tus contraseñas en internet (y cuando la longitud de la misma no importa)«, os prometemos que es una explicación básica, sencilla y directo al grano.
A pesar de todos estos obstáculos que hemos puesto para mantener a buen resguardo nuestros datos, he aquí en este mensaje o «tuit» que nos explican cómo obtienen las contraseñas hoy en día los «ciberdelincuentes«:
Seis métodos que utilizan los hackers para robar contraseñas, vía @computerhoy https://t.co/ZIh99FVysg
— G.Civil Illescas 062 (@GC_Illescas062) 3 de septiembre de 2016
Método que aspiramos combatir.
Como veis volvemos al principio de nuestro artículo: lo más fácil es lograr que los mismos empleados sean los que nos entreguen sus contraseñas, y si se niegan decirlas pues podemos hacer que nos las muestren. Esto se logra muchas veces con notar cual empleado de atención al público ha estado alejado de su computadora, generalmente para comer, y que llega a introducir su contraseña personal: allí lo abordamos con cualquier excusa, una consulta de precios, por ejemplo, mientras nos fijamos bien qué teclea, nos fijamos en sus manos ya que estará entretenido viendo el monitor y no se percatará de qué observamos atentamente las teclas que presiona. Aunque no lo creáis, hay personas que tiene una agudeza visual y excelente memoria para hacer esta pesca de contraseñas, así, «en vivo y en directo». Es por ello que nuestros bancos, guardianes de nuestro dinero, lo repiten hasta el cansancio: utilizemos contraseñas largas, amén de cambiarlas con cierta frecuencia.
"password123? They're all gonna laugh at you!" #SecFlix https://t.co/C91ENYxF4h pic.twitter.com/jGc6p1265k
— EFF (@EFF) 14 de julio de 2016
¿Cómo almacenar información de manera segura?
Acá debemos volver al caso de las redes de área local de negocios pequeños, ya que los grandes utilizan el protocolo seguro https el cual encripta la información, previa implementación de claves públicas y privadas (ver anteriormente el ataque de «hombre en el medio»). Dichos sitios web pagan un alto costo por un certificado que garantiza, a nivel mundial, que uno está realmente conectado con el dominio web que uno introdujo para navegar y que, además, los datos enviados están encriptados, dando al traste con el plan que cualquiera haya implementado para interceptar los paquetes de datos que viajan mediante TCP/IP, el protocolo de red de facto.
En un negocio pequeño los servidores de datos los podemos implementar para que soporten https pero con la salvedad de que a cada ordenador le configuremos una excepción de seguridad -o instalemos el certificado generado por nosotros mismos con ayuda de SSH y scripts automatizados y masivos- en cada navegador web que tengan instalado cada ordenador con GNU/Linux. Todo sea por ahorrarnos un dinerillo en certificados digitales garantizados por terceros y servicios DNS.
Hypertext Transfer Protocol Secure (HTTPS).
Sin profundizar demasiado en este punto, solo vale recordar que el protoclo HTTPS es equivalente al protocolo HTTP pero establece una conexión segura, es decir, cifra la información para evitar que en el camino entre el usuario y el servidor cualquier tercera persona sea capaz de leer la información, siendo demasiado difícil su descifrado por no autorizados. En un principio utilizaba SSL pero luego se decantaron por un protocolo más seguro llamado TLS, sobre ambos pueden ahondar en su estudio en este enlace. El punto clave a tener en cuenta es que contamos con una conexión privada entre el usuario y nuestro servidor con la cual se puede enviar información sensible como números de tarjetas de crédito, contraseñas, etc.
Actualizado el sábado 30 de enero de 2016:
Leyendo las noticias acerca de las vulnerabilidades descubiertas por los hackers -Dios nos cuide NO sean crackers- nos enteramos que, bajo ciertas circunstancias muy especiales, el protocolo HTTPS puede ser vulnerado debido al uso de números primos «no seguros» -léase números primos «pequeños»- y el uso masivo de handshakes con el método Diffie-Hellman para reunir suficientes datos y aplicar un algoritmo antiguo muy conocido se puede llegar a descifrar los datos que transporta dicho servidor web. Por supuesto que estamos simplificando al máximo, allí tenéis los enlaces web en inglés con los detalles a fondo.
Guardando datos a buen resguardo.
Pero, aunque hayamos logrado resolver por alguna de las dos vías mencionadas en la sección anterior nos quedaría otro problema: ¿Cómo se guardan las contraseñas de los usuarios en las bases de datos -o en los sistemas operativos- para garantizar que estén a salvo de ojos maliciosos?
Volviendo al siglo veinte, por esa época las computadoras tenían muy poco poder de cálculo y debíamos arreglarnos con pocas líneas de código. Por 1994 ó 95, a petición de los usuarios que querían cuidar sus nuevos monitores CRT a colores, cuya pantalla se «quemaba» con la misma imagen fija (por ejemplo la consulta de precios, aún hoy es siempre la más usada) y dejaba marcas «fantasma» en ellas, tuvimos que programar un protector de pantalla basado en la teoría de fractales.
Para guardar los datos en disco duro de «manera segura», tampoco sobraba el poder de cálculo, así hicimos una función sencilla (y también muy fácil de descifrar) muy parecida a la que aún utiliza el lenguaje PHP con el función str_rot13 (podeis leer acerca de los métodos de encriptación desde lo más fácil hasta lo más difícil en este enlace en inglés). Para poder entender dicha función hay que tomar en cuenta que esos datos debían cifrarse y descifrarse rápidamente y sin mayor consumo de ciclos de reloj del CPU. Y aquí viene un concepto fundamental: debe funcionar rápidamente en ambos sentidos.
Aquí ustedes se estarán preguntando ¿porqué aún el lenguaje PHP ofrece esa función de encriptado siendo tan fácil de descifrar? De nuevo la respuesta es el costo. Dicho método sigue siendo barato en cuanto a uso de hardware se refiere y es utilizada para guardar extensos párrafos como éste, que vois disfrutáis, en una base de datos.
Suponiendo que, aunque obtuvieran las contraseñas para entrar a esa base de datos, pues no podrían modificar nada del texto pues resulta ininteligible a primera vista al ser humano y si llegaren a modificar algo, por puro vandalismo, nos percataríamos del acto ya que la entrada de blog mostraría texto extraño al ser descifrada (también podríamos realizar una función que copie -«respalde»- los textos y cada cierto tiempo -usando crontab– los compare y detecte alteraciones).
Si al párrafo anterior le aplicamos la función str_rot13 veríamos lo siguiente (como será guardada en la base de datos):
Fhcbavraqb dhr, nhadhr boghivrena ynf pbagenfrñnf cnen ragene n rfn onfr qr qngbf, chrf ab cbqeÃna zbqvsvpne anqn qry grkgb cbedhr erfhygn vavagryvtvoyr n cevzren ivfgn ny fre uhznab l fv yyrtnera n zbqvsvpne nytb cbe cheb inaqnyvfzb abf crepngnevnzbf qry npgb ln dhr yn ragenqn qr oybt zbfgeneÃn grkgb rkgenñb ny fre qrfpvsenqn.
Debo hacer la observación que dicha función NO soporta los caracteres extendidos (a partir de la versión 7 dará soporte a caracteres UNICODE), lo cual no debe ser problema para el lenguaje html que tiene sus códigos especiales para representarlos, si deseáis saber más podeis acceder a nuestro tutorial sobre HTML.
Las funciones «hash».
Una función «hash» toma un valor, aplica un algoritmo predeterminado y produce un resultado único, aunque ALGUNAS VECES dicho resultado puede también ser obtenido con otro(s) dato(s) diferente(s), lo cual es llamado colisión. ¿Sencillo, no? Si quereis saber más pues aquí tenéis el enlace a la Wikipedia sobre el tema.
Como podréis observar, la función del lenguaje PHP que presentamos anteriormente es una función «hash» y si analizamos como funciona (restando 13 de cada valor decimal que describe a cada carácter ASCII) dejando intactos los caracteres no alfabéticos -del alfabeto inglés- podemos llegar a la conclusión que no tiene colisión alguna.
Funciones «hash» criptográficas.
Pues bien, las funciones «hash» criptográficas en realidad NO existen. Lo que siempre ha existido es la criptografía casi desde el mismo invento de la escritura: a pesar de que antes del siglo XX un porcentaje muy pequeño de la población sabía leer y escribir siempre hubo la necesidad de ocultar la información, por ejemplo las órdenes dadas en el ejército. En la Segunda Guerra Mundial se utilizó una computadora especialmente diseñada para descifrar los mensajes del Tercer Reich Alemán, para lo cual fue muy exitosa y fue cuando se valoró enormemente el uso de los ordenadores en el área de la criptografía.
Muy importante destacar que la en la criptografía el proceso es reversible, es decir, podemos obtener el texto original. De aquí en adelante hablaremos de cifrado en un solo sentido; pudieramos llamarlo -en la práctica- como «cifrado irreversible».
Para esta labor se escogieron unas funciones «hash» que tienen características bien adecuadas para el trabajo:
- Que no tengan colisiones -ya hablamos de la función PHP str_rot13-.
- Que tenga bajo coste en recursos de hardware y tiempo.
- Que no se pueda inferir o detectar un patrón por medio del análisis y comparación de varios resultados con el mismo método -más adelante lo veréis con WinZip -.
En este último punto es cuando la función analizada, PHP str_rot13, falla y es principalmente porque NO encripta los espacios, los cuales a su vez delimitan las palabras y uno de los pilares fundamentales para el descifrado es eso: dónde comienza y donde termina cada palabra. Además tampoco cifra los demás caracteres, con lo que, si quiere, pudiéramos decir que en realidad cifra a la mitad (y por eso es que es de tan bajo coste para cifrar párrafos y hojas enteras de información).
WinZip.
Esta entrada no puede estar completa sin mencionar al software de compresión llamado WinZip, un estándar o norma de facto en computación. Aunque lo usamos desde 1997 no fue hasta el año 2004 en su versión 9.0 que trajo la novedad de encriptación de AES 128 bits para máquinas de bajo rendimiento y AES 256 bits para máquinas de alto rendimiento (es decir, lo hicieron así para que uno pudiera ponderar nivel de seguridad contra tiempo usado para encriptación; con las máquinas de hoy en día de 16 núcleos y 32 gigabytes de RAM pues es imperceptible la diferencia de tiempo entre ambas).
He aquí un panorama de la estructura de archivo de un fichero con extensión .zip normal:
The Zip file format―created by Phil Katz―usually holds "PK" as its first two bytes. This image shows a ZIP nested within a Chrome extension. pic.twitter.com/pZkgDrz1uN
— Sampson (@jonathansampson) 4 de enero de 2017
Como usábamos en aquella época el correo electrónico para compartir el código fuente, decidimos encriptar con AES 256 bits y un módulo pequeño, pero importante, y perdimos su contraseña. Lo tuvimos que reescribir y, hasta el sol de hoy aún no hemos podido descifrarlo.
«Advanced Encryption Standard»
Advanced Encryption Standard fue promovida por el Instituto Nacional de Normas y Tecnología («National Institute of Standards and Technology» o NIST por sus siglas en inglés) en el año 2001, y fue propuesta por dos criptógrafos belgas Joan Daemen y Vincet Rijmen con un bloque de 128 bits y longitudes de clave de 128, 192 y 256 bits convirtiéndose en una norma de encriptación a nivel mundial. El gobierno federal de los Estado Unidos de Norteamérica considera la clave de 256 bits lo bastante segura para encriptar documentos de muy alto nivel de importancia, información muy secreta. Es posible descifrar incluso hasta las claves de 256 bits pero el esfuerzo y consumo de hardware consume muchos recursos, sin embargo sigue siendo la manera más viable de cifrar y descifrar información. Hemos de recalcar que funciona en ambos sentidos: una cadena de caracteres (información a proteger) se encripta y se puede enviar a otra persona. Si la otra persona no conoce la clave tardará muchísimo tiempo y esfuerzo en «descubrir» la cave utilizada. Pero para el que encriptó los datos puede revertir la operación y recuperar la información.
Si quieren leer un detalle sobre cómo se genera una llave AES notarán que hay una pequeñísima posibilidad de que comprimiendo y encriptando miles de archivos individuales con la misma contraseña, en algún momento se producirán 2 iguales que si se tiempo y paciencia podrán conducir a una pista sobre la contraseña, pero que se puede prevenir con usar llaves de 256 bits. Información para desarrolladores de software interesados en usar las últimas versiones de WinZip id a este enlace web. En ese último enlace, la mar de especificaciones, podemos leer que dicho software de compresión almacena un CRC (comprobación de redundancia cíclica, inventada por W. Wesley Peterson en 1961) del archivo original -sin comprimir, sin encriptar- en la cabecera del archivo comprimido para que después de desencriptar y descomprimir puedan ser comparados y verificar que la información anhelada se transmitió correctamente (recuerden nuestro caso de envio de código fuente por correo electrónico). Dicho CRC es ampliamente utilizado desde que se inventaron los CD, y simplemente es otro método de cifrado que exhibe un resultado de longitud fija pero con muchas, muchísimas colisiones, lo cual lo descarta de plano para el cifrado y sirve más bien como herramienta auxiliar. Cuando utilizábamos discos flexibles de 5,25″ (y luego 3,5″) los errores de hardware en la escritura, o luego la manipulación física por parte de nosotros (para llevarlos al trabajo, a la universidad) hacían muy necesario el uso del CRC para tener al menos una certeza que quedó bien grabado {y era sacarlo de la disquetera A y comprobarlo en la disquetera B, por eso el disco duro en los sistemas Windows se llama «C», -amigos «linuxeros», no más chistes al respecto, por favor- 😉 }
En este otro enlace recomiendan aplicar «salt» a las rutinas de encriptación para WinZip (desarrolladores de software) pues ya hemos advertido de las posibles debilidades del algoritmo de encriptación, así que se pueden «fortalecer» con nuestras propias «claves», si son aleatorias, pues mejor. Por último, y de nuevo, nuestros bancos tienen la razón: usemos contraseñas largas (y vamos a cambiarlas con cierta frecuencia).
CRC.
Acá hacemos una pequeña pausa para recomendar la lectura de un artículo patrocinado para una famosa página web -vereis quién hace publicidad, lo veréis- donde explican, en idioma inglés, de manera fácil y amena el porqué se debe hacer la verificación de integridad de los datos transmitidos, y rápidamente colocan ejemplo en lenguaje C#. Para que veáis que todos los programadores tenemos nuestros momentos de ir a las raíces, a las bases y principios de los ordenadores (y si podéis ayudar al autor en su programación, hazlo, por favor).
Cifrado en un solo sentido.
Sin embargo hay casos donde en realidad no se necesita recuperar la información cifrada pero necesitamos que dicha función no tenga colisiones, es decir, que la COMPARACIÓN de dos datos cifrados, en máquinas independientes, produzcan exactamente el mismo resultado o «hash». En este caso no se busca encontrar el texto original, ya que es prácticamente imposible revertir el procesado de cifrado para conocer la información.
Para entender este proceso debemos siempre tener en cuenta que el «hash» generado por determinado método de encriptación conocido solo producirá un resultado único que será el que guardemos en nuestra base de datos, o en nuestro disco duro y solamente el que conoce la información podrá repetir de nuevo el «hash» y así podremos comparar con el «hash» generado anteriormente; si son iguales pues se valida el proceso de identificación. Esto garantiza que la persona es quien dice ser, es dueño de la información, el «hash» es como una «huella» inconfundible y por eso lo hace adecuado para garantizar el acceso a sistema de cómputo por medio de contraseñas.
De hecho es tan efectiva que si nosotros olvidáramos nuestra contraseña para acceder a nuestra cuenta bancaria, por ejemplo, la única manera que el banco nos pueda ayudar es borrando el «hash» de la contraseña almacenada y permitirnos generar una nueva, ya que descifrar el «hash» es, como dijimos, prácticamente inalcanzable. Por demás está decir que quienes llevan sistemas bancarios cobran buen dinero al banco por «reseteos» de contraseña, gasto que a la final, de una u otra manera, terminaremos pagando todos los clientes. Pero el almacenamiento seguro de nuestras contraseñas, incluso bancarias, es otro proceso de ingeniería social que no discutiremos en esta entrada, allí hay bastante tela que cortar y sirve para una entrada en nuestro blog totalmente nueva sobre ese tema.
En este punto volvemos a insistir que siempre hay gente que «sabe más que uno» ya sea por sagacidad o por la fuerza bruta ¿Por qué decimos esto? Existe el proyecto Ophcrack en el cual se han dado a la tarea de utilizar «diccionarios» de contraseñas comunes (en diversos idiomas) haciéndoles hash con los diversos métodos que enunciaremos para así comparar una contraseña obtenida ilegalmente con las almacenadas (y conocidas) en una base de datos monstruosa (algunas tablas llegan a alcanzar los 2 Terabytes, es decir, 2000 gigabytes). En este artículo (en idioma inglés) dan cuenta de las llamadas «tablas arcoíris» («rainbow tables»), cómo funcionan y cómo trabajar con ellas. Si nos ponemos a ver la tarea hasta parece estúpida sino fuera porque debemos considerar que en este siglo XXI la información es sinónimo de dinero eso hace que esta gente trabaje tanto en estos proyectos (luego veremos que le podemos dificultar aún más ese trabajo que ellos tienen por medio de un método adicional de hashing).
MD5.
Desde los años noventa usamos el algoritmo MD5 aunque no recordamos exactamente cual año. Lo más probable es que haya sido con Windows 95, pero no estamos totalmente seguros. Lo que si es cierto es que ya entrado el siglo XXI se consideraba seguro y muy capaz de sustituir al vetusto CRC comentado anteriormente. De hecho aún se utiliza por su bajo coste (ver párrafos anteriores) para publicarlos en las descargas de las páginas web: si aplicamos el MD5 al archivo descargado y comparamos dicho resultado al publicado en la página web de donde lo descargamos es muy altamente probable que tengamos una copia idéntica a la que reposa en la páginas web. Establecido como norma desde su invención, devuelve como resultado una número de 32 dígitos en hexadecimal y funciona «rellenando» con bits -mínimo 1, máximo 512- (atentos que más adelante tomaremos prestado este concepto) y agregando hasta completar a un múltiplo de 512. Allí realmente comienza a aplicarse al algoritmo, que al final redunda en un dígito de longitud fija que es fácilmente manejable en una base de datos.
En el año 2004 se demostró una colisión y hubo la necesidad de buscar un método de cifrado mejor. Antes de continuar, comentamos que existió un algoritmo MD4 con el cual no tuvimos ni tenemos experiencia. También es justo comentar que fue el profesor Ronald Rivest su autor (y padre de toda la serie MD del 1 al 5, ea, ¡prolijo el profesor!).
Si revisamos el lenguaje PHP, mayormente utilizado para generar páginas web dinámicas, tenemos la función llamada -qué original- md5(), he aquí un ejemplo:
<?php $hash = md5('contraseña a encriptar'); ?>
SHA1
Otro algoritmo soportado de manera nativa por el lenguaje PHP es la función SHA1 el cual produce 40 dígitos en hexadecimal, de nuevo dos ventajas, longitud fija y numérico, dos características muy apreciadas en el manejo de base de datos y tablas indexadas. También fue logrado su ruptura por gente muy voluntariosa. En fin, que los algoritmos fueron hechos para romperse, más ahora que se avecina la computación cuántica donde una «variable» en «memoria RAM» puede tener diferentes valores según «el ángulo» de donde se mire. Lo poco que podemos agregar con respecto a MD5 es que es un poco más seguro.
Tipos de cifrados en PHP (MD5, SHA1 y Salt).
En realidad esta idea no es nuestra, para nada, tuvimos la oportunidad de conocerla hace varios años divulgada por medio del Twitter:
Tipos de cifrados en PHP (MD5, SHA1 y Salt)… http://t.co/JxsPy3TAIH pic.twitter.com/v6qJYNvUts
— codejobs (@codejobs) 20 de mayo de 2014
El artículo completo lo podeis leer en este enlace. En esencia es combinar ambos cifrados pero con la inclusión de una «firma» adicional -en este caso la página web escrita en PHP- que solamente el programador conoce y que es llamada «salt» cuya traducción al castellano es «sal» ya que, si a ver vamos, le da un «sabor» distinto a las contraseñas. La idea es ayudar al usuario agregándole longitud -y complejidad- a la misma a la hora de ser «hasheada». Si lo pensamos bien, tiene la «debilidad» de que dicha «salt» (así la llamaremos) no debe ser extraviada, porque la usaremos cuando el usuario, en otra oportunidad de ingreso, se compare con la almacenada en nuestra base de datos. Más adelante veréis que dicha «salt» viene ahora incrustada por defecto en el lenguaje PHP.
Otros tipos de cifrado.
Ya casi llegamos al punto de nuestra propuesta, pero antes debemos enseñar que, como era de imaginarse, existen muchos otros tipos de cifrado. Volviendo al nuestro querido PHP existe la función avanzada llamada (si, están leyendo bien) «hash()«. Para ser más precisos dicha función necesita tres parámetros: primero el tipo de encriptación, segundo, el mensaje a ser cifrado (en nuestro caso, la contraseña del usuario) y tercero en que formato se entrega, ya se en binario o hexadecimal.
El primer parámetro acepta los siguientes tipos de cifrado (versiones PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1):
- MD2.
- MD4.
- MD5.
- SHA (cinco variaciones).
- RIPEMD (cuatro variaciones).
- WHIRLPOOL.
- TIGER (seis variaciones).
- SNEFRU (dos variaciones).
- GOST (dos variaciones).
- ADLER.
- CRC (dos variaciones).
- FNV (cuatro variaciones).
- JOAAT
- HAVA (quince variaciones).
Como podeis observar, las opciones de combinación son muchas, así que no os limiteis en utilizar solo MD5 y SHA, hay muchas otras opciones.
Actualizado el sábado 23 de enero de 2016:
Un estudiante paquistaní que utiliza C# en Ubuntu (y además no enseña sobre cómo manejar ese entorno de programación, eso merece otra entrada completa en nuestro blog -a pesar de los detractores de «C sharp»-) nos indica que es mejor utilizar SHA512 + SALT, claro vosotros estad claros en que plataforma estáis programando y si lo permite, siempre es bueno tener muchas alternativas porque no se sabe de cual lenguaje uno va a echar mano a la hora de asegurar nuestro trabajo en este mundo globalizado y con tanto «hacker» suelto:
Guide for building C# apps on Ubuntu: Cryptographic helpers https://t.co/r7v5VqPJNG pic.twitter.com/fRdgITg6rI
— Afzaal Ahmad Zeeshan (@afzaalvirgoboy) 20 de enero de 2016
Como nota adicional nos enteramos que la opción «SALT» agregada por el usuario será descontinuada en su uso en la versión 7 del lenguaje PHP y será sustituida por la ya soportada generación automática de la misma (muchas gracias sr. Ángel):
Hashing Passwords con php – Una de las formas mas faciles de crear un hash para las contraseñas usando php es m… https://t.co/bXir6DmQcR
— ángel (@abr4xas) 17 de enero de 2016
Más adelante volveremos a tocar el tema, porque ¿Cómo recordar la «SALT» utilizada si fue generada aleatoriamente -con ayuda de la hora del servidor- para luego recuperar la contraseña? La solución es ingeniosa, ya lo vereis.
Combinaciones normalizadas.
El lenguaje PHP ofrece unas funciones, extensas, para el tema de la encriptación de manera nativa, facilitándonos la vida a nosotros los programadores pero manteniendo a raya el coste para el servidor donde esté alojada la página web.
Una terna de ellas es muy interesante, avalada con otra adicional, todas ellas siempre pensadas a un proceso y respuesta rápida a la página web solicitada lo que evita ciertos ataques maliciosos. POR EJEMPLO un atacante puede intentar hacer «login» -a sabiendas de ser errado- a determinado sitio web y por herramientas tomar el tiempo que tarda en responder el servidor. Si tarda 1 ó 2 segundos (una eternidad en tiempo de ordenadores) pueden iniciar ataques desde varios sitios para hacer colapsar el poder de procesamiento cuando realiza el descifrado de dichos envios. Más información en el siguiente «tuit» («tweet»):
El lado del mal: OpenSSH: Time-Based Info Leak para enumerar usuarios #pentest #hacking https://t.co/RW2aILj6Je }:) pic.twitter.com/XxX9UmNsQ0
— Chema Alonso (@chemaalonso) 19 de julio de 2016
Las tres funciones son:
- hash_init( algoritmo_deseado ).
- hash_update( respuesta_obtenida_de_hash_init , cadena_a_encriptar ).
- hash_final( respuesta_obtenida_de_hash_update ).
La función hash_update() puede ser repetida tantas veces se desee o sea necesario para agregarle la o las «SALT» comentada anteriormente. Como vemos es una solución normalizada, «estandarizada» si queremos usar el anglicismo. He aquí un código de prueba:
<?php $contra = hash_init('md5'); hash_update($contra, 'contraseña a ser encriptada'); hash_update($contra, 'Se le agrega SALT para complicarlo'); echo hash_final($contra); ?>
Como pueden observar es estructurada la propuesta, son cuatro líneas mínimo. La función que la complementa es hash_equals(), solución nativa en este lenguaje y que devuelve verdadero o falso cuando compara dos «hash»: el hash que leemos de la base de datos (guardada cuando el usuario se registró) y el «hash» calculado al momento de hacer «login» o autenticación cuando el usuario regresa en otro día y/o momento.
Repetimos: hay muchos otros algoritmos y muchas otras funciones para encriptar en un solo sentido, veamos la función crypt() trabajando con la función hash_equals():
<?php $expected = crypt('12345', '$2a$07$usesomesillystringforsalt
Esta última función hash_equals() se describe como «Timing attack safe string comparison«, es decir, «comparación de cadena segura ante ataque de tiempo» la cual describimos en el segundo párrafo de esta sección y que nos ayuda a proteger nuestro servidor web y/o servidor de datos.
En los enlaces nombrados podeís ahondar mucho en el tema, aquí solo queremos tener una base para emitir una propuesta de solución a la ingeniería social aplicada a nuestros empleados, sufridos usuarios de los sistemas que programamos e implantamos.
Bouncy Castle.
Bouncy Castle es una propuesta de software libre (regida por esta licencia) escrita originalmente para Java -y luego C#- en respuesta a la restricción de exportación de técnicas de encriptamiento hechas en los Estados Unidos de Norteamérica. Recordad, o por si no lo sabiaís, que si vives o estudias en ese país y te daís a la tarea matemática de desarrollar nuevos algoritmos, es OBLIGATORIO comunicarlo al Buró Federal de Investigaciones (FBI) sobre tu trabajo, o tendrás serios problemas con la Ley. Y precisamente Australia, sede de dicha organización «Bouncy Castle», era originalmente una gigantesca prisión donde enviaban al fin del mundo -en esa época- a toda suerte de convictos y quebrantadores de leyes del Reino Unido, así que no se toman su independencia tecnológica a la ligera, no señor.
La necesidad de no reinventar la rueda cada vez que se necesitaba encriptar algo dio origen a tal organización con tan gracioso nombre, incluso tienen una caricatura donde se mofan de ellos mismos:
Podeís estudiar un estupendo trabajo utilizando dichas API’s con Criptografía de Curva Elítipca en este enlace web.
El lado oscuro de la Fuerza.
Actualizado el sábado 23 de enero de 2016:
Lamentablemente hay quienes utilizan la fuerza del oponente para desviarla y canalizarla en beneficio propio, tal como lo hace el judo -arte marcial-.
En este artículo, de hace varios años ya -2013-, podréis leer y conocer acerca del peligroso Cryptolocker que, aunque ataca sistemas basados en Windows, también han salido versiones para GNU/Linux. Así que cuidadito pues, una herramienta puede ser utilizada HERMOSAMENTE para hacer el bien 😎 tanto como para hacer el mal. 8(
Actualizado el martes 02 de mayo de 2017:
La última actualización de la distribución Kali Linux -la cual es muy utilizada por sus herramientas de seguridad y análisis- ahora tiene una base de apoyo para ser instalada en «nubes» de máquinas virtuales que operen en conjunto y de manera coordinada para «crackear» contraseñas. Evidentemente que una buena herramienta puede ser convertida al uso maligno y destructor. 🙁
La distribución de GNU/Linux "Kali Linux" usará nubes de GPU para crackear claves cifradas https://t.co/uPtUnDZsIU @ks7000
— Octavio Rossell (@OctavioTRON) 2 de mayo de 2017
«Inventamos o erramos».
Don Simón Rodríguez acuñó la frase en 1828, cuando recién nacía nuestra República y necesitábamos labrarnos nuestro propio camino. No se trata de improvisar constantemente sino estudiar, analizar y proponer algo que observemos sea viable, posible y, más que todo, práctico. Es por ello que esta entrada ha quedado un poco larga, ya que sin una base de donde partir para proponer estaríamos haciendo eso, improvisando.
Nuestra propuesta.
He aquí que, luego de una larguísima explicación, llegamos al punto de exponer nuestra idea para combatir, al menos una, de las tácticas empleadas en la ingeniería social para obetener nuestras contraseñas. Como demostramos, nuestra cadena de caracteres utilizada para identificarnos como usuarios legítmos en cualquier sistema de cómputo ha de ser lo más larga posible. Dicha cadena larga tiene dos beneficios:
- Primero cuando nos registramos en el sistema deseado como usuario, en la creación del «hash» que será almacenado en la base -y tabla- de datos correspondiente.
- Segundo cuando nos volvemos a conectar, vía protocolo https, de nuevo al sistema de cómputo, ya que también la información se encripta al ser enviada, mientras más larga más difícil de desencriptar.
Proponemos, entonces, no una cadena larga como contraseña, sino una cadena de al menos 7 caracteres alfanuméricos:
- Los tres primeros que sean alfabéticos, mayúsculas y/o minúsculas.
- Un caracter especial, tal como «_», «*», etc.
- Los tres últimos que sean numéricos, del cero al nueve.
Esa sería nuestra contraseña, ¿dónde está el truco de seguridad, si recomendamos MENOS caracteres de longitud? Pues que luego que introduzcamos nuestra contraseña completa, de allí en adelante pulsar todas las teclas que considereís conveniente E INCLUSO LA DIGAÍS EN VOZ ALTA, SI TENEÍS ALGUIEN AL LADO OBSERVANDO TU INGRESO.
«Algoritmo para ofuscar técnica de ingeniería social» por Jimmy Olano está licenciado bajo Creative Commons Attribution-ShareAlike 4.0 International License. en una propuesta de algoritmo explicada en https://www.ks7000.net.ve/2016/01/10/ingenieria-social-en-informatica/.
Basandonos en nuestra experiencia, las contraseñas pudieran ser hasta de 11 caracteres, y a partir de 12 es que se considera que es larga dicha clave de seguridad. No necesariamente debe ser en el orden que nosotros indicamos arriba, aquello es una propuesta nemotécnica, no una cartilla para ejecutar a pie puntillas, ya que PARA NADA influye en el algoritmo de cifrado, cualquiera que ustedes escojan. En este artículo podrán leer unas cuantas recomendaciones para la creación de contraseñas, siempre teniendo en cuenta el uso de ingeniería social para intentar vulnerarlas. Y al menos nos queda el consuelo de que el consejo nemotécnico no aparece en la lista de las 25 primera contraseñas más tontas del mundo (en inglés). Actualizado el sábado 06 de febrero de 2016:
Aunque nuestra propuesta tiene cierta similaridad con el padding de las modernas funciones de «hash», la diferencia notable es que el usuario podrá agregar tanto texto (pulsaciones de teclas para ofuscar a los «mirones» del teclado) como desee, no es una norma en longitud; pueden leer más acerca del padding en este enlace web -en inglés y además con una explicación directa y sencilla sobre encriptamiento y «hashing» que suplementa nuestra entrada-
Algoritmo a utilizar.
Para poder utilizar dicho esquema que planteamos vamos introducir una «debilidad» en la seguridad de la base de datos. Dicha «debilidad» consiste en guardar, en una tabla aparte, la longitud de la contraseña ingresada antes de ser convertida a «hash» y almacenada. Si en algún momento hubiera acceso no autorizado a nuestra base de datos, el desencriptar los «hash» de contraseñas se facilitaría si sabemos de antemano la longitud fija. Además, tengamos en cuenta que hoy en día, por unos cuantos centavos de dólar estadounidense, se pueden probar 400 mil contraseñas por segundo en ataques de fuerza bruta con diccionarios predeterminados (recuerden aplicar «salt» para mitigar estos atques). En este enlace podreís leer más al respecto, pero con un fuerte sentido pesimista: «la unica contraseña segura es la que no puedes recordar«, en inglés.
Para prevenir -o al menos mitigar- esta futura debilidad, debemos olvidarnos de utilizar integridad referencial entre las dos tablas. Recomendamos que el idUsuario sea encriptado en «hash» y almacenado en otra tabla junto con el campo numérico largoContra, y recuperarlo justo en el momento que el usuario nos haya enviado su contraseña (la cual habrá viajado por encriptada y desencriptada por protocolo https por nuestro servidor).
El asunto sería fácil si estamos creando un sistema de autenticación totalmente nuevo. Lamentablemente ése NO es el mundo real, muy pocas veces se dan esos casos porque implica planificación y coordinación de muchas personas para llevar a cabo un proyecto, por pequeño que sea -o parezca-. La realidad es que «heredemos» dichos sistemas y, pues bueno, debemos adaptarlos a lo único que es constante: el cambio.
- Como dijimos, creamos nuestra tabla sin ninguna integridad referencial con dos campos: uno para almacenar el «hash» que representa al idetificador único y absoluto de usuario y otro campo numérico para guardar la longitud de la contraseña.
- Luego creamos un script -que utilizaremos una sola vez- para que recorra la tabla de usuarios, tome el identificador numérico de cada usuario, lo convierta en «hash» y lo guarde. El otro campo sería guardado con valor cero, sería una titánica tarea desencriptar los «hash» que representan a cada contraseña, sólamente para saber su longitud.
- Una vez hecho este proceso, procedemos a modificar el código para el registro de nuevos usuarios, para los que hayan olvidado sus contraseñas y/o para los que hayan caducado sus contraseñas.
- Acá usamos lo dicho en el punto N° 3 con el punto N° 1: al momento de generar el nuevo «hash» -de la nueva contraseña- tomamos nota de la longitud y la guardamos en la nueva tabla creada.
- Lo siguiente será modificar el algoritmo que valida a cada usuario: cuando reciba su identificador de usuario, aplicarle «hash» para buscarlo en la tabla recién creada, encontrarlo y leer la longitud de contraseña -«n» caracteres- y de la contraseña recibida vía protocolo https tomar sólamente los «n» primeros caracteres.
- El resto del proceso ya lo conoceís bien: a esos «n» primeros caracteres (leídos de izquierda a derecha, haced el correctivo si usáis un lenguaje como el árabe, por ejemplo) le generaís el «hash» habitual y comparadlo con el almacenado, si son iguales ¡BINGO! autenticación exitosa.
Bienvenidos al siglo XXI.
Acá volvemos a realizar una pausa para «explicar» la tendencia actual en esto de la autenticación de usuarios. Muy lejanos han quedado los días en que Richard Stalman «jaqueaba» las contraseñas de sus compañeros de trabajo para demostrarles que era una sensación de seguridad falsa, Y PENSAMOS QUE AÚN SIGUE TENIENDO RAZÓN, no hay sistema totalmente infalible.
Hoy, décadas después, existe un complejo de superioridad entre los geeks —aquellas personas que adoran y entienden cada novedad del mundo digital—, que creen tener habilidades que les dan poder especial sobre los demás. En el mundo ideal de Richard Stallman, poder comprender y arreglar una computadora no debía ser el don de unos cuantos.
I am not shitting on your idea, I am merely fertilizing it with the nutrients it needs to flourish.
— Miguel de Icaza (@migueldeicaza) 22 de enero de 2016
Pero llegó el siglo XXI e implantó sus propias tácticas «anti-ingeniería social» de la cual hoy día nosotros aportamos nuestro granito de arena. El esquema, a grandes rasgos, es el siguiente:
-
- Al principio (tiempos del joven Richard Stallman) «inventaron» el usar las contraseñas acompañadas de un nombre de usuario único en el sistema deseado. Luego con el advenimiento de la internet y sus sistemas de nombres de dominios únicos se pudo crear las direcciones de correo electrónico, las cuales heredan su unicidad. Aún hoy en día se acostumbra utilizar las direcciones de correo electrónico como nombres de usuario, por ser tanto dato como metadato, y ser únicas.
- Precisamente las direcciones de correo electrónico sirvieron tanto para dar de alta a los usuarios, como para enviarles sus contraseñas, si se le olvidaba al usuario. Pero debido a la debilidad intrínseca del protocolo POP pues se ha relegado su uso.
- Ahora se acostumbra utilizar la dirección de correo electrónico para enviar un enlace web con un identificador único a un servidor con protocolo https implementado y allí si crear la contraseña; esto garantiza que la dirección de correo electrónico sea válido y establece un canal de comunicación -inseguro- con la persona, pero canal al fin. También previene que realmente sea la persona titular de ese correo electrónico la que solicitó el registro de usuario, si no es así pues borra el mensaje y no ha pasado nada.
- Como dijimos que el protoco de correo electrónico es inseguro -a menos que se utilice PGP -no todo el mundo lo utiliza- con solo saber la dirección de correo electrónico de una persona y utilizar la opción «olvidé mi contrseña» un atacante podrá desencadenar ese envio y esperará para interceptar -por algún método o manera- su llegada y asirse de ella.
- Para evitar lo anterior pues no se envía la contraseña en sí misma, sino otro enlace con un identificador único que conlleva a que el usuario responda unas preguntas de seguridad -cuyas respuestas habrá suministrado al momento de registrarse-, tras lo cual, de resultar positivo, podrá conocer la contraseña en sí misma (ver siguiente punto). Aquí de nuevo interviene la ingeniería social: las respuestas NO DEBEN tener relación alguna con las preguntas previamente establecidas, he aquí un reportaje bien explicado sobre ese tema. (Actualizado el miércoles 27 de abril de 2016): en este enlace nos permite conocer cómo se llaman este tipo de «preguntas de seguridad» tal como las conocíamos SIN EMBARGO -y debido a nuestro idioma derivado del latín- el analista español de seguridad Sergio de los Santos (Cuenta Twitter @SSantosV) nos aclara que su nombre correcto es «CONTRASEÑAS COGNITIVAS». Os dejo el mensaje «tuit» correspondiente (el mensaje lo difunde Pablo González, persona distinta al autor):
Estudio de contraseñas cognitivas en la filtración de datos del Banco Nacional de Catar (QNB) https://t.co/Voz1I6FMHs
— Pablo González (@pablogonzalezpe) 27 de abril de 2016
- Pero almacenar las contraseñas en un servidor se expone a que si alguien lograra entrar podría llevarse una copia de todas ellas. Por eso se encriptan mediante algoritmos de un solo sentido que estudiamos anteriormente, y como sabemos que lo que nosostros mismos encriptamos es prácticamente imposible de descifrar, pues es más fácil borrar el «hash» almacenado y que el usuario suministre una nueva contraseña.
- Ya lo dijimos: es prácticamente imposible descifrar los «hash» pero con tiempo -y poder de hardware- eventualemente se logrará. Es por eso que se asume, se da por sentado, que dicho «hash» ya ha sido robado. Por ello, cada cierto tiempo, digamos mensualmente, se le solicita al usuario al ingresar que su «contraseña ha caducado» con lo cual se borra el «hash» y el usuario suministra una nueva contraseña -y aquí aprovechamos de guardar en una tabla aparte la longitud de caracteres de la misma- para generar un nuevo «hash». Cuando al final el o los atacantes que hayan robado los «hash» anteriores hayan logrado descifrarlos pues no coincidarán, ya serán diferentes por haber sido cambiados oportunamente.
- ¿Recuerdan el canal de comunicación por medio de la dirección de correo electrónico del usuario? Pues en este punto, cuando registra una nueva contraseña, seria el momento adecuado de explicarle en un mensaje cómo funciona el nuevo algoritmo: introducir la contraseña en toda su extensión y a continuación pulsar las teclas que se deseen, simple y sencillo -por supuesto recordad establecer una longitud máxima al «input» del html-.
- A las direcciones de correo electrónico se les ha mejorado su seguridad, por ejemplo Gmail solicita un número de teléfono móvil para enviarle un SMS con un código especial el cual debe ser ingresado al crear la cuenta de correo electrónico. Primero se garantiza que sea un ser humano quien hace la solicitud, segundo -pensando maquiavélicamente- la persona tiene cierto nivel de solvencia económica.
- Basado en el punto anterior nació el Twitter el cual permite, primero por SMS -opción que ha caido en desuso- y segundo por aplicaciones instaladas en el teléfono móvil en sí, mantener informado al usuario. Esto inspiró a los bancos a realizar contratos con las operadoras telefónicas para integrar el envio de SMS a los clientes desde el mismo sistema informático del banco, ente quien conoce TODOS los datos de su cliente -y más valen que sean ciertos, sino, problemas legales-.
- Así los bancos en el siglo XXI -e incluso otras grandes empresas- pueden alertar a sus clientes con un SMS cuando se realiza acceso a sus cuentas bancarias. Esto hace la ingeniería social mucho menos efectiva: un caso público y notorio reseñado por la prensa escrita da cuenta de un empleado bancario que accesó a la cuenta de una anciana para sustraerle dinero y llamó a la señora para indicarle que el banco estaba haciendo «unas pruebas«. La señora no se tragó el cuento y llegó a la agencia bancaria acompañada de la policía, hablaron con el gerente del banco y luego apresaron al ladrón tranquilamente sentado en el ordenador por donde ingresó a la cuenta bancaria.
- Nosotros las empresas pequeñas nos conformamos con convencer a los usuarios para que nos agreguen en el Twitter por SMS y desarrollar una aplicación que automatice el envio de eventos (accesos, cambios de contraseñas, caducidad, etc.). Y si esto no fuera posible, al menos automatizamos el envio de mensajes por correo electrónico, que para nada nos debe dar vergüenza usarlo, que Youtube lo hace de esa manera.
De la teoría a la práctica.
De nada valdría hacer una propuesta si luego no es probada y comprobada. Probada será acá con un servidor que no maneja protocolo seguro (el futuro está cerca) pero al menos escribiremos de una manera muy corta y orientada a propósito didáctico, en lenguaje PHP, al algoritmo a implementar. Será nuestro primer -y pequeño- proyecto en Software Libre, lo comprimiremos y ofreceremos en este nuestro servidor, y será público en nuestra cuenta patrocinada por GitHub -gracias por el apoyo «thanks»-
Recomendación adicional.
Para crear un servidor virtual con datos de prueba podemos usar Vagrant con VirtualBox; como ese tema escapa a la longitud de este artículo solamente les dejamos un «tuit» con un enlace web sobre cómo crear esta máquina y luego utilizar git para crear un proyecto, está en inglés, bien resumido y claro:
Luis Roman — Development and production environments with Git And Vagrant #programming https://t.co/DSb6R1zTFF
— Luis Roman (@luisroman) 29 de diciembre de 2015
También podeís utilizar libremente un «script» para crear estas máquinas virtuales (un proyecto totalmente separado del «tuit» arriba indicado) en el repositorio del señor Abr4xas en GitHub . Git es el protocolo y GitHub no es más que una página web que ofrece alojamiento por medio de este protocolo: los proyectos privados pagan y tienen otros beneficios adicionales a las cuentas gratuitas, cuyo código siempre debe ser público independientemente de la licencia escogida para el software desarrollado-. Para crear un servidor virtual con datos de prueba podemos usar Vagrant con VirtualBox; como ese tema escapa a la longitud de este artículo solamente les dejamos un «tuit» con un enlace web sobre cómo crear esta máquina y luego utilizar git para crear un proyecto, está en inglés, bien resumido y claro:
Luis Roman — Development and production environments with Git And Vagrant #programming https://t.co/DSb6R1zTFF
— Luis Roman (@luisroman) 29 de diciembre de 2015
También haremos una funcion «log in» sin mayores pretensiones (dicho código fuente está publicado y amparado bajo esta licencia -en inglés: «This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL) «- ).
Si deseaís ir a lo complejo, leed este tutorial (fuera de este sitio web) para crear una muy bonita página web de entrada para validación de usuarios. Por supuesto, a mayor belleza, mayor trabajo para lograrlo. Nota: NO está desarrollado en un entorno de Software Libre, sin embargo el código fuente tiene cierto nivel de libertad, con propósitos didácticos nada más.
Casos de ingeniería social de la vida real.
(Actualizado el sábado 27 de agosto de 2016) Los siguientes son relatos fidedignos (dada la seriedad, trayectoria y conocimiento de los autores a los cuales seguimos por la red social Twitter) que ilustran el cómo la Ingeniaria Social es prácticamente un «arte bien cultivado», seguidamente les colocamos una pequeña descripción y enlace a los temas:
- En una primera visita a un café, el autor Deepak Daswani (@dipudaswani) entra en la red inalámbrica del restaurante y «juega» con la rutina de los camareros con leves saltitos de sobresalto. En una segunda visita fortalecieron la red pero no deja de ser divertido el relato, HACEMOS NOTAR que esta vez se valió de un camarero nuevo que no había comenzado aún a trabajar en la primera visita. Hilarante humor «geek» para nosotros, gracias @ChemaAlonso por apoyar con el «reblog» de las historias.
Las mejores defensas
Actualizado el lunes 7 de enero de 2019
- No permitan favores de los demás a menos que ustedes mismos los hayan solicitado. Precisamente los favores no solicitados crean una predisposición de reciprocidad en posteriores peticiones con aviesas intenciones.
- Cualquier solicitud que salga de la rutina es sospechosa. Nunca se deben saltar procedimientos, por muy tontos que estos sean, además los nuevos procedimientos deben ser conocidos ampliamente por todos y el preguntarlos a cualquiera del personal de trabajo debe ser sin cortapisas, debe ser lo normal el preguntar para confirmar que está implementado.
- Recíproco a la regla anterior: que todos hagan lo mismo no quiere decir que esté implementado: debe estar por escrito primero, esto evita que dos o tres (o todos) hagan una conspiración. Todos deben dejar su compromiso por escrito.
- Un atacante siempre buscará hacer empatía con la víctima. Si es una mujer con cuerpo espectacular o un hombre con verbo o carisma, no debemos dejarnos influenciar por ello. Los actores y actrices regalan sonrisas por doquier. Aprendamos a analizar lo que está dentro de la caja y no el papel y el lazo que lo envuelve.
- El truco principal de la Wikipedia: todo está con referencias conocidas y reconocidas. El problema está cuando los atacantes se hacen pasar por estas autoridades, se disfrazan y tratan de engañarnos con esto. Siempre desconfiemos de los que se dicen expertos y autoridades hasta que hayamos verificado muy bien sus credenciales. El hecho que todos los den por autoridades no los acredita (recordar punto tres).
- No se dejen presionar por ultimátum alguno. Que algo se esté acabando no significa que debamos aceptarlo. Es solo un mecanismo de presión para que cedamos a las peticiones insanas.
Básicamente todo lo anterior se reduce a verificación de identidad y verificación de deberes y derechos de la persona que haya aprobado el primer paso, pero recuerden siempre «todo por escrito», tipo Sheldon Cooper.
Fuentes consultadas.
En idioma castellano:
- «QRLJacking: Técnica con la que los malos roban sesiones de WhatsApp a través de QR Code» por Pablo Gonzáles P.
- «El arte del engaño» en el blog de ElevenPaths.
- «Los seis principios de la influencia que utilizan los cibercriminales para hackear tu cerebro» en el blog de ElevenPaths.
- «Si quieres cambiar los hábitos de seguridad de tus empleados no apeles a su voluntad, cambia su entorno» en el blog de ElevenPaths.
- «Los empleados, el eslabón más débil frente a la ciberdelincuencia«
Raúl Salgado.
Albert Einstein: Si buscas resultados distintos…
Albert Einstein:
«Si buscas resultados distintos, no hagas siempre lo mismo.»
Pues ya cerrando el año y navegando por la web fui a dar a la página web de AkiFrases donde recopilan mucha sabiduría (y alguna que otra «locura», pero bueno, libre albedrío) me llamó la atención la frase del genial Albert Einstein (quien en su infancia creían que era retrasado mental, para que veaís cómo es la sociedad) aunque yo la había escuchado de otra manera:
«Para obtener siempre los mismos resultados, hacedlo siempre de la misma manera»
Aunque debe ser un corolario, por lo de negada operación, pero si a ver vamos la que yo cito es la base de la civilización humana, todo tiene su técnica.
El asunto es que si queremos innovar, debemos hacer las cosas de manera distinta, para obtener resultados distintos, es por ello que nosotros migramos al Software Libre en este agonizante 2015 y para este 2016 prometemos interesantes cosas, estad al pendiente de nuestro blog. 😉
Ley de Inamovilidad Laboral 2015.
Ley de Inamovilidad Laboral 2015.
Decreto N° 2.158, mediante el cual se dicta el Decreto con Rango, Valor y Fuerza de Ley de Inamovilidad Laboral, pueden descargarla desde nuestra página web en este enlace.
PRESIDENCIA DE LA REPÚBLICA
EXPOSICIÓN DE MOTIVOS
DECRETO CON RANGO, VALOR Y FUERZA DE LEY DE INAMOVILIDAD LABORAL
Este Decreto con Rango, Valor y Fuerza de Ley, responde a los parámetros exigidos por la Constitución de la República Bolivariana de Venezuela, que en el más amplio espíritu garantista estableció la obligación para el Estado Venezolano de articular con preeminencia lo que fuere necesario para que los venezolanos y venezolanas desarrollen un esquema de vida productivo en función de una calidad de vida digna y decorosa, lo cual presupone en sí mismo la activa y estable participación en el proceso social del trabajo, sin que deban verse afectados en tal ejercicio por agentes externos en procura de egresos intempestivos e injustificados.
Así pues, la protección al ejercicio de los derechos laborales es el norte del Estado Venezolano, al reconocer que los trabajadores y trabajadoras son los creadores de las riquezas socialmente producidas, razón por la cual deben preverse los mecanismos jurídicos necesarios para evitar cualquier alteración a dichos procesos, los cuales pueden evidenciarse en despidos, traslados, o desmejoras en sus condiciones laborales como secuela de las injerencias de intereses apátridas que responden a los agentes de perturbación que buscan atentar contra el buen orden y la paz interna.
Las recurrentes amenazas proferidas por sectores proimperialistas de la vida nacional contra los trabajadores y trabajadoras, han generado la necesaria protección a nuestra clase obrera , para que a través de este Decreto con Rango, Valor y Fuerza de Ley pueda gozar de la certeza en cuanto la permanencia en sus puestos de trabajo, por un período de tres (3) años, lo cual sólo podrá ser alterado por las causas que expresamente consagra el Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, y previo cumplimiento de los procedimientos de calificación de despido ante las instancias correspondientes, lo cual garantiza el debido proceso y el derecho a la defensa de los trabajadores o trabajadoras cuyo egreso se pretenda y que sólo procederán por causa legítima y justificada.
Finalmente se contempla un régimen de sancones pecunarias para aquellos patronos o patronas que pretendieran accionar en contra de la Inamovilidad que consagra este Decreto con Rango, Valor y Fuerza de Ley, para lo cual se toma como referencia el valor de la Unidad Tributaria como mecanismo de actualización permanente de la multa, en función de evitar los egresos injustificados y las desmejoras que afecten a los trabajadores y a las trabajadoras.
Decreto Nº 2.158
28 de diciembre de 2015
NICOLÁS MADURO MOROS
Presidente de la República
Con el supremo compromiso y voluntad de lograr la mayor eficacia, política, jurídica y calidad revolucionaria en el fortalecimiento del Estado Social y Democrático de Derecho y de justicia, para la construcción del Socialismo, la refundación de la Patria Venezolana, basado en principios humanistas, sustentado en el ideario constitucional y las condiciones éticas que persiguen el progeso del país y de la colectividad, y en ejercicio de la atribución que me confiere el numeral 8 del artículo 236 de la Constitución de la República Bolivariana de Venezuela, los artículos 87, 88 y 89 ejusdem y de conformidad con lo establecido en el numeral 1 del artículo 1º de la Ley que autoriza al Presidente de la República para dictar Decretos con Rango, Valor y Fuerza de Ley en las materias que se delegan, para la garantía reforzada de los derechos de Soberanía y protección al puebl venezolano y el Orden Constitucional de la República,
DICTO
El siguiente,
DECRETO CON RANGO, VALOR Y FUERZA DE LEY DE INAMOVILIDAD LABORAL
Objeto
Artículo 1º.
Este Decreto con Rango, Valor y Fuerza de Ley tiene por objeto proteger la estabilidad del proceso social del trabajo y el libre ejercicio del derecho a la participación de los trabajadores y trabajadoras desde las entidades de trabajo, tanto públicas como privadas; erradicando los despidos sin causa justificada, en los términos consagrados en la Constitución de la República Bolivariana de Venezuela y en el Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras.
Inamovilidad
Artículo 2º.
Se ordena la inamovilidad de los trabajadores y trabajadoras por un lapso de tres (3) años contados a partir de la entrada en vigencia de este Decreto con Rango, Valor y Fuerza de Ley, en consecuencia y como garantía de la estabilidad en el proceso social del trabajo, no se podrán realizar despidos sin causa justificada y con apego a los procedimientos estabecidos en la legislación laboral.
Sujetos de aplicación
Artículo 3º.
Están sujetos a la aplicación de este Decreto con Rango, Valor y Fuerza de Ley:
- Los trabajadores y trabajadoras a tiempo indeterminado, después de un (1) mes al servicio de un patrono o patrona;
- Los trabajadores y las trabajadoras contratados (sic), por el tiempo previsto en el contrato;
- Los trabajadores y las trabajadoras contratados y contratadas para una obra determinada, mientras no concluya su obligación.
Quedan exceptuados los trabajadores y trabajadoras que ejerzan cargos de dirección y los trabajadores y las trabajadoras de temporada u ocasionales.
Principios y valores
Artículo 4º.
Este Decreto con Rango, Valor y Fuerza de Ley se fundamenta en los supremos principios de la riqueza , intangilbilidad, progresividad e irrenunciabilidad de los derechos laborales, la no discriminación, igualdad y equidad, así como en la prelación de la realidad sobre las formas o apariencias.
Calificación.
Artículo 5º.
Los trabajadores y trabajadoras amparados no podrán ser despedidos, despedidas, desmejorados, desmejoradas, trasladados o trasladadas sin causa justa calificada previamente por el Inspector o Inspectora del Trabajo de la jurisdicción, de conformidad con lo dispuesto en el Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras. El incumplimiento de esta norma dará derecho al trabajador o trabajadora a ejercer las acciones a que haya lugar para su reenganche, así como el pago de los salarios y demás beneficios dejados de percibir, cuando corresponda.
Despidos injustificados
Artículo 6º.
En caso de que algún trabajador o trabajadora sea despedido o despedida sin causa justa, podrá ejercer dentro del lapso correspondiente su derecho a la protección mediante las acciones establecidas en el Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras, solicitando la reincorporación a su puesto de trabajo ante las instancias correspondientes del Ministerio del Poder Popular con competencia en materia del Proceso Social del Trabajo, sin perjuicio de las acciones administrativas y judiciales a que haya lugar.
Protección
Artículo 7º.
Los Inspectores e Inspectoras del Trabajo tramitarán, con preferencia a cualquier otro asunto,los procedimientos derivados de a inamovilidad laboral consagrada en este Decreto con Rango, Valor y Fuerza de Ley, y procederán con la mayor eficiencia y eficacia en salvaguarda y protección de los derechos laborales.
Estabilidad de los funcionarios de la administración pública
Artículo 8º.
El régimen de estabilidad de los funcionarios al servicio de la Administración Pública Nacional, Estadal y Municipal, se regirá por lo dispuesto en la Ley del Estatuto de la Función Pública, sin perjuicio de las demás disposiciones que le resulten aplicables.
Sanciones
Artículo 9º.
El patrono o patrona que despida, traslade o desmejore a un trabajador o trabajadora amparado por la inamovilidad laboral, sin haber solicitado previamente la calificación ante la Inspectoría del Trabajo, será sancionado de conformidad con el artículo 531 del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras. La misma sanción se aplicará a quienes obstaculicen o desacaten la orden de reenganche y restitución de la situación jurídica infringida a un trabajador o trabajadora protegido por la inamovilidad laboral, de acuerdo a lo previsto en el artículo 532 del mencionado Decreto con Rango, Valor y Fuerza de Ley.
Asimismo, el patrono o patrona que desacate la orden de reenganche del trabajador o trabajadora amparado o amparada por inamovilidad laboral, será penado o penada de conformidad con lo dispuesto en el artículo 538 del Decreto con Rango, Valor y Fuerza de Ley Orgánica del Trabajo, los Trabajadores y las Trabajadoras.
Vigencia
Artículo 10º.
Este Decreto con Rango, Valor y Fuerza de Ley entrará en vigencia a partir de su publicación en la Gaceta Oficial de la República Bolivariana de Venezuela.
Dado en Caracas, a los 28 días del mes de diciembre de dos mil quince. Años 205º de la Independencia, 156º de la Federación y 16º de la Revolución Bolivariana.
Cúmplase,
Nicolás Maduro Moros
Refrendadas firmas del Vicepresidente Ejecutivo y Ministros.