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“.
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,
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,
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.
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.
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.
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).
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.
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).
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 – }.
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
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 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.
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
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. ).
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.
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«:
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.
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 handshakescon 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
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:
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:
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
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»):
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():
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:
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
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.
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 paddingen 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.
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 explicadosobre 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
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 quese 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:
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:
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.
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. 😉
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 89ejusdemy 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
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.
He de confesarles a todas y a todos que con el paso de los años mi vista se ha desmejorado; en el buen sentido que le damos por estos lares: «se me han quemado las pestañas». Es por ello que con gusto he utilizado «Mozilla Firefox Reader View» el cual está explicado en buen castellano en este enlace. Aunque lo traducen como «Modo Lector» me gusta más «Modo de Lectura», ya sabéis qué poético es nuestro idioma, así que visitadlo y volved para terminar de contaros la historia. Seguir leyendo →
Speedtest.net es una empresa mundialmente famosa empleada en la medición de la velocidad que nos proporciona nuestro proveedor de internet respectivo (en inglés se le conoce por al acrónimo de tres letra I.S.P.: Internet Service Provider).
El secreto del éxito de Speedtest.net, consideramos nosotros, es que tienen código que permite «montar» nuestros servidores de datos de prueba con todo el mundo. Simplificando de manera extrema: podemos configurar y poner en linea nuestro servidor para todo el mundo de manera tal que enviemos y recibamos una equis cantidad de bytes al «cliente» o equipo remoto teniendo en cuenta que tomamos el tiempo al inicio y al final de la transmisión de los datos en ambos sentidos y luego calculamos el resultado de la velocidad (generalmente en megabips por segundo) ¿fácil, no?
El detalle es que debemos tener una conexión con internet de al menos 100 mbps para ciudades con menos de 1 millón de habitantes y 1000 mbps -1 gbps- en ciudades con más de 1 millón de habitantes, aparte de tener 2 subdominios destinados a tal efecto, entre otros requerimientos. Podéis leer la lista completa en este enlace web.
Caracas, Venezuela.
Pues ya casi para finalizar el año seguimos cosechando, en esta oportunidad le toca a CANTV ofrecerle mi ENHORABUENA por la velocidad obtenida en medición «oficial» con el famoso speedtest.net:
Debo señalar que a pesar de esta velocidad certificada NO quiere decir que será la velocidad obtenida con cualquier página web, digamos con Youtube o con DirectTVPlay ya que esto depende de los «saltos» que deba dar para llegar (y generalmente es directamente proporcional con la distancia física, aunque repito que no necesariamente siempre es cierto esto) y el cable submarino por donde deba ir (y de nuevo los «saltos» que tome).
Así, por ejemplo, conectado con Vietnam, Ciudad de Ho Chi Minh a más de 17.600 kilómetros obtuvimos los siguientes resultados:
Moscú, Rusia.
Con diferencia al resultado con Rusia en la ciudad de Moscú, ubicada a 10 mil kilómetros de Caracas:
Osaka, Japón.
Y gran diferencia con los «reyes de la velocidad» en Japón, con la ciudad de Osaka a casi 15 mil kilómetros de distancia de nuestra capital:
Esperamos que el próximo año 2016 sigamos rompiendo registros de velocidad hasta que lleguemos a los 100 mbps «fast ethernet» que sería al equivalente a una red de área local.
Actualizado el domingo 17 de julio de 2016.
En esta oportunidad la medición fue para mejor, «si así llueve que no escampe» dice el popular refrán:
Nosotros utilizamos un modem usb norma «3G» -en realidad, si estamos en lo correcto, la tecnología se denomina HDSPA– cuyo hardware soporta 8 mbps «de bajada» y nunca lo hemos podido conectar a más de 1,5 mbps; sin embargo nuestro dinero no está desperdiciado, pagamos puntualmente nuestra mensualidad y se retribuye cuando CANTV no puede ofrecer el servicio por una u otra razón.
Tecnología 4G:
No tenemos dinero para adquirir un modem usb 4G -aunque fueron lanzados a un precio aproximado de Bs. 1.500, lo podíamos adquirir y no lo hicimos- y los emprendedores de la página web Con-Café nos traen su evaluación al respecto lo cual nos deja gratamente sorprendidos.
En una comprobación rutinaria de velocidad, la cual corrobora lo que publicamos en diciembre del año pasado, recordamos cuánto necesitamos unas conexión a internet SIMÉTRICA, es decir, 5 mbps de bajada y 5 mbps de subida para montar nuestros propios servidores web. De esta manera, montando nuestros propios servidores web en territorio venezolano (con ayuda de CANTV) creamos contenido por y para venezolanos (que cualquier otra persona en otros paises pueden visitar cuando gusten) AHORRANDO DIVISAS EN ALOJAMIENTO EXTRANJERO Y ALIVIANDO EL TRÁFICO HACIA EL EXTERIOR PUES CREAMOS NUESTRA PROPIA «LAN NACIONAL» (L.A.N.= Local Area Network). Sería justicia acuñar el término «National Area Network N.A.N.» para definir el concepto que queremos lograr implantar y concientizar.
«Caer está permitido, levantarse es obligatorio», refrán ruso.
Agosto de 2016: cuando el cableado falló por longevidad.
Durante este mes por aproximadamente dos semanas enfrentamos serios problemas con nuestra conexión internet CANTV y tuvimos que echar mano de Movistar por nuestro teléfono móvil y con Digitel con nuestro modem 3G usb para los ordenadores.
Después de reportar varias veces la avería, la cual se retrasó porque el «sistema» de atención al público fallaba en las instalaciones de CANTV («en 24 horas será atendida la avería») por fin hoy lunes 22 de agosto de 2016 se presentó una cuadrilla que con radios, escaleras, arneses y aparatos comenzaron a revisar el cableado (así lo habíamos denunciado, que algunos cables estaban sueltos y cuando llovía se perdía la conexión y perdía tono el teléfono) hasta que por fin dieron con la falla alejada en la calle en dirección a la central telefónica donde estamos conectados. En esta serie de «tuits» describimos el proceso y cómo quedó la velocidad, seguiremos monitoreando la calidad del servicio y registrandolo por esta vuestra paǵina web (a la hora de publicar esto la computadora de cantv llamó a la casa para peguntar si la avería estaba corregida «pulse 1 si fue resuelto» y así lo hicimos).
Ya llego la cuadrilla cantv y estamos revisando cableado YO AL MENOS ayudo a sostener escalera. Cc @lubrio@phenobarbital
Tuvimos la necesidad de medir la velocidad de conexión a Internet a un equipo remoto con Lubuntu instalado allá (nosotros acá usamos Ubuntu 18.04 en este momento) por lo que, claro está, pensamos de una vez en Speedtest para la tarea. El asunto es que para interferir poco -o nada- en la medición remota nos conectamos por medio de SSH para medir y… pues nada, que no recordamos cómo instalar la versión por ventana de comandos.
Afortunadamente en este año 2019 nos ha sucedido tres grandes acontecimientos («fenómenos» para nosotros):
Vemos más tiempo a Youtube que la televisión analógica por cable y aprendemos más porque podemos seleccionar lo que realmente nos interesa en el momento que deseemos -ni hablar de la interactividad-.
El buscador DuckDuckGo ha resultado ser un buscador más rápido -y práctico- en vez de Google.
Twitter se ha convertido, además, en un poderoso buscador, explicamos a continuación.
Rápidamente en Twitter hallamos un mensaje con la orden para instalar speedtest-cli y aunque no nos avergüenza la pérdida de memoria, pues nos duele nuestra pérdida de sagacidad, la orden simplemente es:
apt install speedtest-cli
Valga entonces el reconocimiento al «tuit» emitido en 2014, y hoy aprendimos –o más bien recordamos- otro tema más.
Terminal based #speedtest on #Debian GNU/Linux! YAY! apt-get install speedtest-cli && speedtest-cli
¿FreeCAD en Ubuntu? ¿Por qué no en Debian? Primero debemos explicar qué es FreeCAD: es software libre especialmente realizado para dibujar objetos en tercera dimensión, más que todo piezas mecánicas, siempre teniendo en cuenta las normas internacionales «standards» para interoperabilidad con miríadas de otros programas de Diseño Gráfico Asistido (DGA o como se conoce en inglés «Computer Assisted Design» -en castellano quien nos asiste es el ordenador mismo-).
Retrocediendo en el tiempo, la experiencia que tenemos en dibujo asistido por computadora se remonta a 1991, cuando por aquel entonces existía el AutoCAD 2.62 -en realidad comenzamos con la versión 2.17 pero necesitabamos AUTOLISP y nos migraron a la que lo soportaba, aunque tampoco era la última versión disponible para la fecha-. Honor a quien honor merece: Autodesknos dio a las masas el impulso necesario para arrancar a «soñar» y hacer más en menos tiempo (pueden ustedes descargar un demostrativo e instalar dicho programa de software privativo en este enlace, vamos que el mundo es muy grande y cabemos todos, valga la «cuña publicitaria»). Claro, faltaban unos cuantos años para que el internet se masificara, pero esa es otra historia.
Es así que con la utilización de LISP -el segundo lenguaje de programación de alto nivel más viejo, después del FORTRAN– ya en esa empresa de software apuntaban alto, APUNTABAN A LAS NORMAS ABIERTAS, o estándares abiertos. Eso permitió que los dibujos que hicimos -y que quemaron nuestras pestañas con los monitores de rayos catódicos brillando en verde- bajo el formato DWG (abreviatura de «drawing», en inglés) que tenía «incrustado» el formato DFX (más delante explicaremos esto) y aún hoy en día puedan ser leídos e interpretados, porque son en realidad gráficos vectoriales. Dicho formato fue creado en 1982 y como comprenderán faltaban un montón de años para que surgiera GNU/Linux -pero Richard Stallman fue presionado legalmente a usar software privativo, lo cual fue la gota que derramó el vaso al año siguiente-.
De 1982 a 1997 fueron 15 años muy interesantes que nos tocó vivir en esto de la programación y fue en 1998 (por avatares de la vida ya no teníamos trabajo alguno, desde hace años, en diseño de piezas mecánicas, la crisis económica del país era grave) cuando nace la «Open Design Alliance» una organización sin fines de lucro orientada a promover la interoperabilidad de software PERO sigue siendo aún software privativo. De nuevo repetimos, en este mundo cabemos todos y sobra espacio, el universo es infinito. Líneas arriba pueden leer -en inglés- la historia de dicha organización.
Por supuesto que el mundo es muy grande, y hay otras alternativas de Software, tal es el caso de LibreCAD el cual es una bifurcación o «fork»? como le dicen en inglés, de el QCAD el cual nació en 1999 a partir del código de CAM Expert. Por cierto en el siguiente «tuit» ofrecen un enlace de un artículo sobre LibreCAD que reseña que fue creado en 1980, lo cual es incorrecto, lo que sí es cierto es que el formato de archivos, bajo software libre si que data de esa época, más o menos.
Al punto que queremos llegar es el siguiente: el mundo del CAD privativo dio levemente su brazo a torcer con el formato DFX secundado de manera nada amistosa por el OpenDWG -ahora conocido como DWGDirect– y el mundo del CAD libre también dio levemente su brazo a torcer con LibreDWG y esta serie de condiciones han abierto el camino para el nacimiento de FreeCAD.
Esa es la manera más simple de resumir y explicar 33 años de historia moderna del CAD: muchos compañeros de estudio no están de acuerdo con estas lineas escritas más poco se alejan de lo comentado aquí; apenas detalles, lo consideramos así. 😉
Pasamos a explicar entonces que Debian es software libre purista, muy comprometido con el código completamente abierto a diferencia de Ubuntu que permite de manera predeterminada muchísimos tipos de licencias de software. Por eso si desarrollamos diseño gráfico, artes o diseño asistido por computadora necesitamos hardware de video poderoso, escribo estas líneas con una modesta «GeForce GT 520/PCIe/SSE2» -que para la tarea de dibujar que tenemos basta- Ubuntu provee y permite usar tanto controladores de hardware privativo como libre, tenemos la libertad de elegir en ese aspecto. Ya ven entonces de dónde proviene el título de esta entrada «FreeCAD en Ubuntu», y nos disculpan la larga explicación.
¿Por qué usar controladores privativos en ciertos casos?
Resulta ser que hay al menos tres grandes y principales fabricantes de tarjetas de video para nuestro trabajo gráfico -y juegos-: Intel, AMD y nVidia. Los tres han levemente contribuido al software libre, ya que cada día somos más que usamos GNU/Linux y pues sienten la presión de nosotros, los consumidores de tecnología para nuestro trabajo y que hacer diario, MÁS SIN EMBARGO NO HAN LIBERADO NI DADO APOYO TOTAL. Y he aquí que una de las personas que más admiro es Sarah Sharp, quien desarrolló los controladores de USB 3.0 en GNU/Linux y estuvieron disponibles primero, incluso, que sus contrapartes privativos -la historia es larga- y tomo de ella un pequeño consejo si deseaís usar controladores libres:
Graphics linkspam of the week: How to report Intel bugs and an analysis of Grand Theft Auto V: https://t.co/RwftzU5Ynb
Allí, en inglés, la lengua materna de ella, describe cómo podemos nosotros ayudar y contribuir a reportar las excepciones -«bugs» en inglés- de las tarjetas de video en software libre, haciendo un reporte muy técnico para ir al grano y permitir que los desarrolladores sigan haciendo, prácticamente, ingeniería inversa. En ese caso le toman el defecto a una escena de un famoso juego -objetable moralmente, pero bueno, así somos los humanos, libre albedrío- y para un hardware Intel PERO NO SE DEJEN LLEVAR POR EL «TUIT» O MENSAJE si leen con calma y siguen los enlaces que publica Sarah Sharp verán que es aplicable a diversos hardware, hasta en tarjetas gráficas integradas en las tarjetas madre, aunque un poco complejo verán una serie de herramientas para tal efecto.
Como apenas estamos comenzando a utilizar el FreeCAD es necesario presentarselos y buscando en la red hallo muy interesante y ameno el trabajo del señor Juan Gonzáles Gómez quien tiene 40 video tutoriales sobre esta aplicación de diseño gráfico y les traemos la presentación de la serie:
Si quereís conocer a fondo el trabajo tridimensional e incluso aprender a utilizar las impresoras de tercera dimensión les animo a visitar la lista de videos, muchas gracias sr. Juan Gonzáles Gómez. Como reconocimiento a su trabajo les dejo el vídeo del logotipo de su Academia, dejad que la Fuerza os acompañe:
FreeCAD, instalación en Ubuntu.
La instalación de FreeCAD está muy bien documentada -en inglés- en este enlace y en nuestro caso se cumplió exactamente como enuncian: si instalamos a FreeCAD por los repositorios oficiales de Ubuntu -o por el Centro de Software- NO obtendremos la última versión. Inicialmente obtuvimos la versión 0.14 al introducir la siguiente orden:
sudo apt-get install freecad
Por lo tanto debimos actualizar por el propio repositorio de FreeCAD, ganando acceso como usuario raíz «root» en una cónsola de comandos:
Si todo sale bien obtendremos al aviso de que fue agregado exitosamente el repositorio (si desean concer más acerca de los PPA hagan click en este enlace -en inglés-) y veremos algo así como esto:
Ahora bien, lo siguiente que hay que hacer son las consabidas siguientes 2 líneas:
sudo apt-get update
sudo apt-get upgrade
Y por último la orden en sí misma para instalar FreeCAD:
sudo apt-get install freecad freecad-doc
Y veremos algo parecido a los siguientes mensajes (como ya teníamos instalada la versión 0.14 nos avisa que podemos eliminar los archivos con las versiones que no son necesarias para la versión 0.15, la eficiencia por delante para mantener nuestros discos duros «lo más limpios posible»):
Nos anuncia que necesita descargar archivos necesarios para los paquetes nuevos y cuyo tamaño es de 106 megabytes (recordar que estamos actualizando y son menos datos «a bajar»):
Tenemos 2 minutos de paciencia mientras obtenemos los datos:
Y comienza el proceso de instalación:
Mientras hacíamos todo esto olvidamos cerrar una instancia del FreeCAD 0.14, Ubuntu no aviso nada de que debíamos cerrarlo, pues no hay problema alguno, cerramos la ventana que teníamos abierta y lo volvemos a ejecutar para ver lo siguiente:
Si agudizamos nuestra visión leemos «Running FreeCADGuinit.py» -entre tantos avisos que muestra al ejecutarlo- pero lo que queremos hacer notar es la extensión «.py» del archivo que carga en memoria, archivo leido: está escrito en lenguaje Python. De hecho ese lenguaje Python junto con lenguaje C, «son los padres de la criatura» y nos dejaron Python para nosotros los usuarios finales el poder correr macros y guiones, tal como lo fue el AUTOLISP al Autocad (¿recuerdan los párrafos iniciales donde dijimos que estaba adelantada a su tiempo y tenían visión de futuro?). Ya para finalizar y comenzar a dibujar y entregar el proyecto (¡uff lo que tenemos por delante!) pues agregar que «matamos dos pájaros de un solo tiro»: compartimos el conocimiento para instalar las herramientas necesarias para nuestro trabajo. ¡Qué bueno es el software libre! 😎
Actualización no más de haber terminado de publicar esta entrada de blog:
El señor Juan González @Obijuan_cube «imprime» las primeras piezas de resina, ¿Habrá utilizado FreeCAD? Lo más probable es que sí, pero no vamos a importunarle en preguntarselo, je je je.
En un excelente análisis de las diversas opciones de diseño asistido por computadora en software libre, en idioma italiano, podemos tener rápidamente un panorama acerca de esta materia. La entrada del blog la pueden encontrar en este enlace web y paso a traducir al castellano el resumen para Freecad:
Ventajas:
Entorno intuitivo y familiar para los usuarios con una amplia experiencia en software comercial.
Versátil y ligero, especialmente en sus versiones para GNU / Linux.
Máxima adherencia a los estándares.
Personalización y creación de productos y servicios específicos prácticamente ilimitadas.
Comunidad muy activa y multidisciplinaria.
Excelentes perspectivas para el futuro.
Desventajas:
El crecimiento rápido pero un poco ‘»caótica».
La falta de un servicio profesional (no ser gobernado por una empresa).
Todavía algunas limitaciones en el uso extremadamente avanzada.
Aún lejos de la versión 1.0 (debido a la estabilidad parece imposible, pero aún está en versión alfa).
È un piacere iniziare a collaborare con @TechEcon 🙂 Iniziamo col mio pane quotidiano, gli strumenti CAD Open https://t.co/oALRqWpLYF