elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9
1  Programación / Ingeniería Inversa / "Crackeando" Project64 Emulator en: 27 Enero 2021, 00:58 am
Holas,

últimamente me hallo jugando por las noches al Zelda: Ocarina Of Time y pues cada vez que abro el Project64 sale el dialogo de donar, y un boton deshabilitado con una cuenta atrás o timer de 30 segundos. No sólo eso, sino que si cambio la config gráfica y me pongo a experimentar crashea y a volver a esperar los 30 secs...

Como en este foro no nos gustan las esperas, he bypasseado dicho timer para no tener que esperar como un buen ciudadano, y simplemente clickar ese botón. Sé que hay más posibilidades, como por ejemplo, impedir que se abra esa ventana que es un dialog en términos de la winAPI o bien habilitarlo en su creación, recompilar porque es software libre y un largo etc.

Antes de empezar, muestro el ANTES y el DESPUÉS de lo que sucede al abrir la aplicación:

ANTES



DESPUÉS (BYPASS)



Como Project64 ofrece un binario de 32bit en su release stable utilizamos nuestro debugger favorito, en mi caso OllyDbg ver2 va fenomenal. Abrimos OllyDbg e iniciamos Project64.exe

Ahora, para empezar, runeamos el software con F9. Cuando veamos que salga la ventana "molesta" le damos a Pause. Como el botón contiene el mensaje "Continue (X segundos)" abrimos el listado de ventanas instanciadas:



Click derecho en la fila del boton (ventana) Continue(27), y seleccionamos "Follow ClassProc"

Ponemos un breakpoint en la dirección de memoria donde nos ha llevado Olly y ejecutamos con F9:



Con Alt+K mostramos el Call Stack para ver que llamadas se han realizado hasta acabar en dicha dirección de memoria.



Hacemos doble click sobre la última llamada, la cual esta seleccionada en la imagen anterior. Esto nos lleva a la dirección de memoria donde se encuentra dicho procedimiento. Ahora estamos en 0x41D368.

En la direccion 0x41D56C vemos como hay una llamada a KillTimer. Además, hay un salto condicional, que evita la llamada a KillTimer:



Parcheamos con NOP la instrucción JNZ SHORT 0041D579 para que llame a KillTimer.



Y el resto es historia...

Dejo enlace a mega con el .exe para los que queraís usarlo y no sepaís utilizar esta guía, está limpio sentiros libres de pasarlo por Virustotal o vuestro AV. https://mega.nz/file/WxZTAKAC#Z6MV1MO7LloE1o4aCRPbqnnfvgRaZtCa_MWqxcEGLgQ
2  Programación / Programación General / Patrones de Diseño: ¿Necesarios o "parcialmente" irrelevantes? en: 11 Diciembre 2020, 21:41 pm
Ha existido mucho criticismo desde que en 1994 se publicó el libro de Design Patterns el cual introduce numerosos patrones que intentar extender la funcionalidad de los lenguajes de la programación.

Me gustaría saber que opinaís aquellos que como un servidor, llevaís muchos años en esto. Sé que se pueden prescindir de éstos, por ejemplo, creando tu propia funcionalidad para lo que necesites. También se comenta que los lenguajes a medida que avanzan (JDK, estandar C++, .NET Framework...) también introducen sus propia forma de solventar la funcionalidad que no proveían anteriormente, eliminando el uso de patrones por parte del programador.

La pregunta sería, Patrones de Diseño: ¿Necesarios o "parcialmente" irrelevantes?

Saludos.
3  Seguridad Informática / Criptografía / Introducción a la Factorización De Semiprimos (RSA) en: 10 Septiembre 2020, 23:26 pm
Normalmente, en este foro hablamos de la criptografía estándar, aquella que corre en nuestros dispositivos. Muchos sabreís que algunos de los esquemas criptográficos basados en clave pública o en una única clave (simétricos) sufrirán debilidades cuando el cuántico se torne realidad.

Esto es debido a que problemas como la factorización de enteros, el cálculo del logaritmo discreto, ya sea el aplicado a curvas elípticas o en finite fields podrán ser resueltos. Una respuesta obvia sería aumentar el tamaño de clave en la parametrización de estos esquemas, pero implicaría hacerlo cada vez que la computación cuántica avance.

Hoy vamos a explicar una forma de factorizar números compuestos por dos primos, es decir, semiprimos. Es un problema conocido pues nos daría la habilidad de romper esquemas como RSA. Nótese que RSA también presenta el RSA Problem y está basado en calcular raices e-ésimas mod n.

Antes de empezar, quiero decir que el lector tiene que tener un buen conocimiento en matemáticas: tanto en teoría de números como en algebra lineal.

Factorización De Fermat (Punto Medio)

Sea N=p\cdot q tal que p,q \in \mathbb{P} es un producto de dos primos, por lo tanto N es semiprimo.

Queremos encontrar los factores p,q que componen el módulo utilizado por una clave pública RSA. Esto nos permitiría generar firmas digitales válidas, además de intervenir en el TLS Handshake bien en falsificando valores cuando RSA se usa para firma, o bien, descifrando la PMK (Pre Master Key) lo cual nos permitiría hacer un Man In The Middle en plano, como antiguamente :D

Hace unos años, cuando empecé en esto, mi problema favorito era el de la factorización de enteros, curiosamente, la de semiprimos. Resulta que reinventé la rueda al descubrir que entre dos primos siempre existe un punto medio r el cual equidista con misma distancia d sobre los primos p,q. Si traducimos a cristiano esto sería:

(r %2B d) \cdot (r-d)=n donde r=\frac{p %2B q}{2} y d=\frac{p-q}{2}. Si vemos más alla nos damos cuenta que (x %2B y)\cdot (x-y)=x^2-y^2=n, lo que nos da la expresión r^2-d^2=p\cdot q=n. ¿Bonito verdad? ¿Pero cómo aplicarlo?

Un ejemplo sería p=17,q=11,n=17\cdot 11=187 entonces r=\frac{17 %2B 11}{2}=14 y d=17-14=3. Si nos imáginamos los enteros positivos alineados en una línea horizontal, vemos que 14 equidista 3 posiciones de 17,11.

Para usarlo, al saber que r^2-d^2=n hacemos \sqrt{n-r^2}=d^2 desde r=\sqrt n %2B 1 hasta dar con una solución entera. Pena que a Pierre de Fermat, se le ocurriera hace casi 400 años, conociéndose este método por Fermat Factorization.

En el mundo real nunca sabremos p,q de antemano, sólo n y nuestro interés se centra en encontrar los valores r,d mediante una técnica llamada Quadratic Sieve o Criba Cuadrática.

Quadratic Sieve : Primera Fase

En teoría de números un número b-smooth es aquel que tiene factores primos menores o iguales que b, por ejemplo 30=2\cdot 3 \cdot 5 es 5-smooth pero no 3-smooth. Establecemos b \in \mathbb{P} como primo y seguimos nuestro análisis.

Si tomamos la congruencia x^2 \equiv y^2 \pmod{N} entonces x^2 - y^2 \equiv 0 \pmod{N} \rightarrow x^2-y^2 \mid N (divide a N) por lo tanto (x %2B y)\cdot (x-y) \mid N y tanto x %2B y como x-y son factores de N.

Empezamos tomando valores y de la congruencia x^2 \equiv y \pmod{N}. Para eso vamos generando valores x.  Expresamos y en la base prima b-smooth y=p_1^{e_1} \ldots,p_b^{e_b}=\prod_{i=1}^{b}p_i^{e_i}.

Guardamos y reducimos mod 2 los exponentes de la base prima de cada residuo y en una matriz de exponentes M_e \in F_2^{b \times k}, donde k indica el número de congruencias y que hemos obtenido de la criba. En cada columna guardamos los exponentes e_i de cada congruencia x_i^2 \equiv y_i \pmod{N}. Entonces vemos M_e como:

M_e=\begin{bmatrix}e_{1,1}, \ldots, e_{k,1}\\ \vdots \ldots \vdots \\ e_{1,b} \ldots e_{k,b} \end{bmatrix}

Segunda Fase

¿Por qué hemos reducidos los exponentes e_i modulo 2 y encima en columnas? Tened en cuenta que si multiplicamos dos números, sus exponentes se suman. Si tras realizar la multiplicación todos los exponentes son pares/even, entonces a \cdot b tiene raíz cuadrada entera. Si los exponentes de a,b son \alpha=(\alpha_1,\ldots,\alpha_b), \beta=(\beta_1,\ldots,\beta_b) entonces la multiplicación resulta en a \cdot b = \prod_{i=1}^{b}p_i^{\alpha_i %2B \beta_i}, si cada sumando \alpha_i %2B \beta_i es par, la tupla modulo 2 resultado de \alpha %2B \beta daría 0 en cada posición.

De esta forma, encontramos residuos b-smooth cuyo producto resulta en una tupla de exponentes enteramente par, y como estamos en \mathbb{F}_2, obtenemos una tupla que consiste de 0's y de longitud b por lo tanto  \alpha %2B \beta=(0,\ldots,0)_b.

Si revisaís los apuntes de Álgebra Lineal, el rango de una matriz nos indica la dimensión de la imagen. Una matriz se toma como una transformación lineal, cuenta con dominio y codominio. Como nuestra matriz tiene dimensión b \times k entonces el sistema M_e \overrightarrow{x} = \overrightarrow{0} nos daría en el vector \overrightarrow{x}=(x_1,\ldots,x_k) la ansiada combinación lineal, puesto que una matriz por un vector, no es más que la suma de una combinación lineal de sus columnas. Las ecuaciones de tipo A \cdot \overrightarrow{x} = \overrightarrow{0} se resuelven calculando el kernel o nullspace de la matriz A. Si tenemos una matriz m \times n, con m>n entonces rk(A) \leq n por lo tanto Dim(A)=n y Dim(A)-rk(A)=n-r=Dim(Ker(A)).

Por lo tanto la matriz que representa el kernel de M_e tiene dimension k \times (k-rk(A). Si el rango de M_e no baja de \min(b,k) la única solución es \overrightarrow{x}=(0,\ldots,0)_k llamada solución trivial. Para hallar soluciones no triviales el rango ha de ser inferior a \min(b,k) y para esto, como las columnas de M_e corresponden a los exponentes de cada residuo, si el rango baja sabemos que existe un producto de residuos que tiene raíz entera. De esta forma, encontramos una combinación lineal \sigma=(\sigma_1,\ldots,\sigma_k) sobre las columnas que representan los exponentes, es decir, una suma finita de estas columnas (modulo 2) que da como solución una tupla de longitud b con todos los elementos a 0. Entonces M_e \cdot \sigma = \overrightarrow{0}_b tal y como deseabamos.

Tercera Fase

Ahora, vamos a encontrar los valores a,b tal que a^2-b^2=(a %2B b)(a-b)=N. Como hemos guardado todos los valores x_i,y_i tal que x_i^2 \equiv y \pmod{N}, haciendo uso de la tupla \sigma calculamos el producto de los valores x_i=\sigma_i en a. Lo mismo para los valores de y_i y lo hacemos en b^2. Entonces b=\sqrt{b^2} y \gcd(a \pm b,N) \mid N.

La fase de criba finalizaría al dar con el kernel de M_e. Como podeís ver es una fase muy amplía, donde necesitamos muchas congruencias para encontrar una combinación lineal de los exponentes que sea par. Además es necesario en todo momento almacenar las listas de las congruencias, tanto los x_i como los y_i. Todo ello mediante una representación matricial, donde cada columna corresponde a los exponentes de cada termino y_i en la base b-smooth. Para concluir, vemos como el kernel nos permite extraer valores para los cuales existe una combinación lineas de las tuplas de exponentes que da cero. De esta forma sabemos que valores y_i forman un cuadrado mediante su producto o multiplicación.

Ejemplo Quadratic Sieve


Vamos a poner un pequeño ejemplo para ilustrar la teoŕia anteriormente expuesta.

Tomamos p=4663, q=3581, N=16698203 la base está compuesta de los 50 primeros primos entonces es 229-smooth es decir B=\{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229\}. Todos los valoresy_i que tratemos tienen que ser 229-smooth, es decir, factorizables entre productos de los primos en la base B.

Si empezamos con x=\lfloor \sqrt{N} \rfloor %2B 1, tras 11 iteracciones, tenemos la lista X=(4107, 4114, 4125, 4371, 4401, 4657, 4745, 4836, 5217, 5221, 5355) y la de residuos cuadraticos Y=(169246,226793,317422,2407438,2670598,4989446,5816822,6688693,10518886,10560638,11977822).

La matriz de exponentes M_e tiene dimensión 50 \times 11 porque cada columna tiene longitud b=50 por lo tanto 50 filas y al haber 11 congruencias, de ahí sale. Nos enfrentamos al sistema M_e \cdot \overrightarrow{x} = \overrightarrow{0}_{50}. Queremos una suma de columnas en M_e que nos de completamente cero, y de esta forma sabremos que productos y_i y_j dan un cuadrado mod N. La matriz M_e se muestra a continuación:


\
La matriz M_e tiene rango 10 modulo 2. Por lo tanto, su kernel o nullspace tiene dimensión 1 y es representable mediante una matriz 11 \times 1 en este caso nsM = \begin{bmatrix}0 \\ 0 \\ 1 \\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\1 \end{bmatrix}. Entonces, la ecuación M_e \cdot x = 0 \rightarrow A \cdot (nsM \cdot c) = 0 tiene dos soluciones (una de ellas la trivial) porque la dimensión es 1, por lo tanto una tupla en \mathbb{F}_2 tiene 2 valores, en este caso 0 ó 1. Por lo tanto fijamos \sigma=(0,0,1,0,0,0,0,0,0,0,1)  y A \sigma = 0. Comprobad vosotros mismos que la tercera columna y la onceava columna de la matriz M_e suman 0 mod 2 en cada coordenada/posición.

Por lo tanto, sabemos que de la lista X multiplicamos los valores 3º y el 11º, esto es, a=4125 \cdot 5355=22089375 y lo mismo con la lista Y, nos queda b^2=317422 \cdot 11977822=3802024214884. Calculamos \sqrt{b^2}=\sqrt{3802024214884}=1949878. Entonces \gcd(a %2B b,N)=\gcd(22089375 %2B 1949878,N)=3581 y \gcd(a-b,N)=\gcd(22089375-1949878,N)=4633.

Aquí os dejo el código del algoritmo en Mathematica. Sé que lo puedo mejorar, lo he hecho en un par de horas para colgarlo junto a este tuto. En C++ utilizando la lib de GMP es igual de sencillo, mientras tengas las matemáticas de tu lado, todo va bien. El code es lenguaje de Mathematica aunque ponga el GeShI en MatLab, recuérdenlo.

Código
  1. bsmooth[x_] := (
  2.   exps = Array[0 &, Length[plist]];
  3.   found = False;
  4.   i = 1;
  5.   While[found == False && i <= Length[x],
  6.    pos = Position[plist, x[[i]][[1]]] ;
  7.    If[pos == {},
  8.     found = True;
  9.     ,
  10.     pos = pos[[1]];
  11.     exps[[pos]] = Mod[x[[i]][[2]], 2];
  12.     ];
  13.    i++;
  14.    ];
  15.   If[found == True,
  16.    Return[{}];
  17.    ,
  18.    Return[exps];
  19.    ];
  20.   );
  21.  
  22. ComputeFactors[list_] := (
  23.  k = 1;
  24.  Do[If[list[[i]] != 0, k = k*list[[i]]], {i, 1, Length[list]}];
  25.  Return[k];
  26.  )
  27.  
  28. QSieve[n_, blen_, limit_] := (
  29.  ctr = 1;
  30.  xlist = Array[0 &, limit];
  31.  ylist = Array[0 &, limit];
  32.  plist = Table[Prime[i], {i, 1, blen}];
  33.  A = ConstantArray[0, {blen, limit}];
  34.  k = 1;
  35.  While[ctr <= limit && k <= n,
  36.   x = Floor[Sqrt[n] + k++];
  37.   x2 = PowerMod[x, 2, n];
  38.   bx2 = FactorInteger[x2];
  39.   bx2 = bsmooth[bx2];
  40.   If[bx2 != {},
  41.    xlist[[ctr]] = x;
  42.    ylist[[ctr]] = x2;
  43.    A[[All, ctr]] = bx2;
  44.    ctr++;
  45.    ];
  46.   ];
  47.  If[MatrixRank[A, Modulus -> 2] < Min[limit, blen],
  48.   nsM = NullSpace[A, Modulus -> 2] // Transpose;
  49.   inNS = Mod[nsM.RandomInteger[{0, 1}, Dimensions[nsM][[2]]], 2];
  50.   factorsX = inNS*xlist;
  51.   factorsY = inNS*ylist;
  52.   a = ComputeFactors[factorsX];
  53.   b = Sqrt[ComputeFactors[factorsY]];
  54.   Return[{GCD[a + b, n], GCD[a - b, n]}];
  55.   ,
  56.   Print[-1];
  57.   ];
  58.  )

Para llamar a la función, se necesita el semiprimo n, un número blen que indica la longitud de la base de primos b-smooth y un límite, cuantas congruencias ha de recolectar. Después de recolectar, intenta obtener una solución en la transpuesta del nullspace de la matriz de exponentes. El resto es componer los factores y hacer el GCD.

He capturado un .GIF para mostrar un ejemplo del algoritmo corriendo en Mathematica:


Vemos que el nullspace aquí ya no es 11 \times 1 sino 1000 \times 869. Obviamente, el ejemplo que he puesto, era facilito pero el código trabaja para valores más altos.

Y nada, ha quedado demostrado que la criba cuadrática encuentra una solución mientras que seamos capaces de factorizar números en una base b-smooth. Además de necesitar una combinación lineal válida que nos asegure la obtención de un cuadrado mediante producto de residuos cuadráticos.
4  Foros Generales / Foro Libre / Lo Politicamente Correcto Azota A Linux en: 16 Julio 2020, 14:32 pm
De los creadores de:

* Debian victima de lo politicamente correcto https://foro.elhacker.net/gnulinux/debian_gnulinux_vicitma_de_lo_politicamente_correcto-t496417.0.html;msg2195297#msg2195297 vuelve por navidad:

*Los RedSkin de fútbol Americano se cambian el nombre por obligación y no por recomendación.

Guías para la inclusión de la terminología utilizada en el Kernel de Linux https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.8-Inclusive-Terminology

Buenísima idea, síiiiiiiiii. Cambiemos BlackList por DenyList o BlockList. Cambiemos WhiteList por AllowList.

¿Master, Slave? NOOOO nadie ha ser esclavo ni dueño. LLamemoslo principal y secundario.

Eso sí, para cambiar terminología hay dinero, inversiones e interés. Para encontrar bugs, optimizar, e incluir nuevas features y dropear las obsoletas, nooooooo. Bueno, jajaj ciertamente el kernel mejora cada versión, pero ya me entendeís.

En criptografía, cambiaremos el blackbox por OpaqueBox y WhiteBox por TransparentBox. Algun día.

El negro es negro, el moro es moro, el árabe es árabe y tu madre es tu madre. J.oder con el mundo en el que vivimos.

Saludos.
5  Seguridad Informática / Abril negro / Votacion Abril Negro 2020 en: 11 Mayo 2020, 15:22 pm
Antes de nada, agradecer a los concursantes su empeño, trabajo, y compromiso con el evento. Sin vosotros, habría sido imposible su realización.

Como bien sabeís, la presentación de proyectos terminó y por lo tanto comienza la fase de votación, que tendrá como una duración de 7 días, desde ahora. El ganador será anunciado una vez terminada la fase, teniendo en cuenta el nº de votos y los criterios comentados en https://foro.elhacker.net/abril_negro/abril_negro_2020-t503770.0.html.

Las normas de la votación son bastante simples, no se puede votar más de un proyecto, y el voto se puede cambiar.

Por lo demás, ¡qué gane el mejor!  ;D
6  Foros Generales / Foro Libre / Temas makineros en: 4 Mayo 2020, 13:51 pm
Sé que por este foro hay catalanes y valencianos, algunos que pudieron vivir aquella época, en concreto la música makina y me gustaría que compartieramos algunos temas. Yo no la viví, pero esa música tiene algo que te hace mover y ser feliz mientras dure la melodía  ;D Aunque este último año parece que ha resurgido en salas y eso me da unas ganas de viajar palli jeje. Os dejos unos temas a ver si algun nostálgico comparte más, sobre todo si son de BIT music. Si alguno sabe de un enlace con discos etc que pase por privado ;)



































Saludos!!
7  Seguridad Informática / Criptografía / El futuro de la criptografía en: 23 Abril 2020, 14:10 pm
Hace tiempo que no escribo para este subforo, todavía queda gente interesada en la criptografía e intento participar en las conversaciones. Creo que es útil explicar un poquito para donde está llendo el estudio pues en unos años el que no se renueva ahorá tendrá que hacerlo.

En la década de los 70 se descubrió el concepto de PKC (criptografía de clave pública), destacando el algoritmo de intercambio de claves de Diffie-Hellman y el hecho por Merkle en acertijos o puzzles (está tecnica se sigue utilizado en protocolos de commitment). Más tarde vino RSA, DSA, ElGamal y un poquito más tarde las curvas elípticas. Hoy día entendemos bastante bien el problema del logaritmo discreto en grupos cíclicos, pues un generador de estos grupos tiene un periodo/orden que está estrechamente relacionado con la factorización del orden del grupo. Lo mismo sucede con los residuos cuadráticos, estos permiten la factorización.

Entonces logaritmo discreto y factorización son equivalentes. El problema de la factorización se ha estudiado bastante durante la historia, genios como Gauss, Euler, Fermat, Riemann... dedicaron tiempo a ello y en el s.XX con la llegada de las máquinas, muchos otros a destacar Pollard y Shor se han dedicado a ello también, desde la parte computacional, es decir, como optimizar una máquina para buscar factores de un número. Con la llegada del ordenador cuántico esta tarea es factible para los tamaño de claves utilizados hoy día. Si nosotros aumentasemos el tamaño de la clave el doble, entonces sería resistente. Es decir, un ordenador cuántico de 2048 qubit puede factorizar un semiprimo de 1024 bits utilizado en RSA, si utilizamos un entero de 2048 bit entonces necesitaremos 4096 qubit. No sabemos si en el futuro la capacidad de aumentar qubits es factible, pero vemos que aparentemente existe una relación del doble. Lo mismo pasaría con Diffie-Hellman y derivados.

Con las curvas elípticas sucede que son más veloces a la hora de computar por ser de 128-256 bit. Un ordenador cuántico necesitaria 6 veces más qubit es decir para una de 256 pues 1530 qubits. Vemos incluso que es más factible romper una curva que resolver la factorización.

Desde los 90 se propusieron nuevas variantes del concepto de clave pública, por ejemplo: la criptografía de clave pública no conmutativa, la criptografía de clave pública multivariada, lattices, curvas elípticas supersingulares, criptografía basada en código (code-based). De esta forma, se intenta crear nuevos protocolos y criptosistemas basados en problemas matemáticos existentes o no. Analizando la complejidad de reducir el problema a otro o bien de resolverlo directamente, podemos establecer si el criptosistema/protocolo es seguro y plantear su uso futuro. Suponemos que los anteriormente dichos son resistentes a ataques en ordenadores cuánticos porque no tenemos ninguna solución para ellos, o la que tenemos no es factible ni en un clásico ni en un cuántico.

Estos campos son muy jóvenes, cada vez reciben más atención por parte de la comunidad y empresas como Google, Amazon, Microsoft, CloudFlare, Apple y guvernamentales como la NSA están ya contribuyendo a la implementación de estos. Se espera que para el año 2023 y antes de la década del 2030 anden funcionando dentro del protocolo TLS como cipher suite. El problema que los tamaños de las claves públicas son bastante más grandes que los clásicos ECC, DH, RSA.. pero hoy día la tecnología es capaz de manejarlos rápidamente sin verse afectada, y ya no te digo en el futuro...

Una conclusión bastante aparente es que la información que está siendo intercambiada, la cual es generada por la inmensa mayoría de librerías criptográficas, será legible en un futuro relativamente cercano cuando la cuántica se torne realidad. Evidentemente, la información confidencial se trata de distinta forma, y con tamaños de clave pública que por el momento retrasarían los ataques en máquinas cuánticas, pero es cuestión de tiempo.

Entonces, todo apunta a una transición en la criptografía de clave pública, un plan renove que busca asegurar los tres principios básicos de cara al futuro: confidencialidad, integridad y autenticación.

Para acabar, guste o no, nuestra capacidad de romper y descifrar en criptografía depende enteramente de nuestra habilidad para entender los problemas matemáticos subyacentes. Es imposible crear o destruir sin conocer las herramientas que te lo permiten. Puede que la criptografía sea un campo incomprendido, marginado por la mayoría de instituciones de nuestro país, pero si no estamos a la vanguardia del cambio, será imposible entenderlo, e iremos aun más por detrás.

P.D: El tema va sobre el futuro de la crypto, no cabe mención para el espionaje, backdoors y criptoanálisis realizado de forma indiscriminada por ciertas entidades.

Saludos a todos.
8  Foros Generales / Foro Libre / Versiones futuras de QT podrían estar restringidas a usuarios de pago en: 11 Abril 2020, 13:54 pm
Muchos linuxeros conocen el framework QT el cual incluye un conjunto de librerías para crear interfaces gráficas. En el ámbito del software libre siempre ha existido la lucha de GTK contra QT, otorgando a los usuarios el poder de decantarse por uno o ambos.

Resulta que ahora los futuros lanzamientos de versiones de QT podrían estar restringidas solo a usuarios de pago. Por lo que la comunidad linuxera plantea realizar un fork del proyecto para continuarlo de una forma libre. Un claro ejemplo es el desktop manager KDE el cual está basado en QT.

URL: https://www.phoronix.com/scan.php?page=news_item&px=More-Interest-Possible-Qt-Fork
9  Seguridad Informática / Abril negro / Abril Negro 2020- Dudas, sugerencias y presentaciones en: 7 Abril 2020, 13:13 pm
Hola, bienvenidos a Abril Negro 2020



Este post servirá para preguntar dudas, ofrecer sugerencias y anunciar los enlaces a vuestros proyectos, los cuales deben ser publicados en un tema a parte en este subforo.

Recordad, que podeís encontrar información del concurso así como las reglas de participación aquí -> https://foro.elhacker.net/abril_negro/abril_negro_2020-t503770.0.html
Dicho post queda bloqueado para que pueda ser visualizado "sin contaminarse".

Saludos.
10  Seguridad Informática / Abril negro / Abril Negro 2020 en: 6 Abril 2020, 12:45 pm
Bienvenidos participantes a el evento Abril Negro 2020.



Como muchos sabeís, Abril Negro se caracteriza por ser un concurso que abarca distintas ramas de la seguridad informática, independientemente de la eticidad  >:D. Los proyectos deben tratar temas como los siguientes:

Temas

  • Exploiting
  • Cracking/Reversing
  • Forense
  • Hacking general (Wireless, Web, OS...)
  • Desarrollo y análisis de malware
  • Técnicas subversivas y/o de detección
  • Teoría de la computación aplicada a la seguridad informática (i.e: cracking de contraseñas, criptografía, privacidad ...)
  • Optimización de herramientas infosec

No es obligatorio presentar herramientas en formato binario ejecutable (PE/ELF). Podeis entregar una memoria o archivo .PDF que explique detalladamente lo que realiza vuestro proyecto, por ejemplo, una píldora informativa o tutorial sobre como evadir distintas técnicas de detección en tiempo real.

Estructura de la presentación

Todo trabajo debe de ser open source, para poder apreciar la verdadera calidad del mismo. El post de presentación del trabajo debe tener una estructura similar a la siguiente:

    Nombre del autor
    Nombre de la herramienta/píldora
    Lenguaje(s) en los que está diseñado
    Descripción del trabajo
    Captura de pantalla (en el caso de tener interfaz)
    Link de descarga que contendrá el código fuente y el archivo ejecutable (en caso de consistir en un binario ejecutable)
    Opcional: Las licencias disponibles son: GPL, MIT o CC-BY.

Importante presentar vuestros proyectos en un tema nuevo en este mismo subforo. Se irán incluyendo sobre la marcha en la sección de participantes de este post.

Bases del concurso

Para poder participar, primero, habeís de tener en cuenta las bases del concurso:

  • El plazo máximo de entrega se situa el día 8 de Mayo de 2020
  • Cualquier usuario de la comunidad de elhacker.net puede participar, sin importar antigüedad, nº de menasjes u estadísticas varias
  • El nº máximo de proyectos por usuario es 2
  • El lenguaje de programación es indiferente. Elegid el que mejor os parezca pero es recomendable que esté en la siguiente lista: ASM, C/C++, Java, C#, VB.NET, Python, Delphi, JS
  • Esta terminadamente prohibido la copia de proyectos/trabajos ajenos a vuestra propiedad intelectual. Esto se revisará, y en caso de romper la regla UD quedará descalificado
  • Queda totalmente prohibido presentarse múltiples veces bajo distintas cuentas. Igual que el punto anterior, será revisado.
  • Los proyectos presentados pueden tener una antigüedad máxima de 1 año. De esta forma, los participantes pueden seleccionar trabajos anteriormente realizados

Criterio de la evaluación

Se procederá a la fase de evalucación una vez que vuestros proyectos hayan sido presentado y el plazo del concurso se de por finalizado. Acto seguido, entra la fase de evalucación, cuyas reglas son:

  • Las votaciones empezarán el día 9 de Mayo y terminarán el día 16 del mismo mes. Cualquier miembro de la comunidad puede participar en la misma.
  • Las votaciones representan el 80% de la puntuación final sobre los proyectos
  • El 20% restante es otorgado por el jurado, el cual es parte del Staff de elhacker.net
  • De ese 20% se tendrán en cuenta: originalidad, creatividad, pulcritud/orden, documentación, funcionalidad, aplicaciones, tecnicidad
  • Por lo tanto, en caso de empate en las votaciones, la decisión final para elegir un ganador será tomada por los miembros del jurado en base a los criterios anteriormente citados

Los miembros del jurado son:

  • kub0x
  • WHK
  • fary
  • #drvy

Premios

Los premios serán dictados en cada post de publicación de cada evento, estos pueden variar cada año. De todas maneras los ganadores siempre aparecerán en el tablón principal de www.elhacker.net y en el listado de ganadores del post del evento.

Participantes

CrazyKenny - malwaretipo Bomba Fork
https://foro.elhacker.net/abril_negro/abril_negro_2020_malwaretipo_bomba_fork-t503780.0.html

**Aincrad** - Shareware Ransomware
https://foro.elhacker.net/abril_negro/abril_negro_2020_shareware_ransomware-t504255.0.html

mr-medi - phpRecon
https://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2020_phprecon-t504592.0.html

Emertech - BrianaWare
https://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2020_brianaware-t504608.0.html

@XSStringManolo - JEX
https://foro.elhacker.net/abril_negro/abril_negro_2020_jex-t504624.0.html

@XSStringManolo - RS
https://foro.elhacker.net/abril_negro/abril_negro_2020_rs-t504626.0.html

Votaciones

El periodo de votaciones comenzará el día 9 de Mayo de 2020.

Ganador

**Aincrad** - Shareware Ransomware
https://foro.elhacker.net/abril_negro/abril_negro_2020_shareware_ransomware-t504255.0.html

Mucha suerte y ¡Happy Hacking!  >:D


EDIT: Por el momento las bases y reglas están sujetas a cambios, tanto en entregas como en requerimientos/prohibiciones.
Páginas: [1] 2 3 4 5 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines