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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 166
131  Foros Generales / Sugerencias y dudas sobre el Foro / Re: ¿Está muriendo el foro? en: 1 Octubre 2020, 15:32 pm
No es que nuestro foro esté muriendo, sino el conocimiento adquirido mediante la parte social y colaborativa.

En páginas como Infosec.se, unix.se, so.se (todas de StackExchange) no aprenderás cosas que aquí habrías aprendido en la década 2000-2013/4. Desde ahí el foro sufrío cambios en su user-base y se entra para preguntar dudas, pero nada estrictamente teórico o técnico (avanzado).

Es decir, en este foro participabamos auténticos profesionales compartiendo conocimientos exclusivos de ramas como viene a ser la Crypto, Seguridad, Hacking, Lenguajes de programación, Redes, Sistemas Operativos y un largo etc.

No tengo ni idea de como la gente puede aprender a realizar las mismas técnicas y materias que aquí aprendimos, entre otros, yo mismo. Tengo 27 y ahora puedo permitirme seguir aprendiendo sin necesidad de una comunidad o personas que me indiquen el camino.

Pero los que están empezando con 15-18 años, lo tienen díficil, pues en las comunidades de StackExchange (Stackoverflow y otras) no es un lugar para escribir sobre tus inquietudes, solamente para preguntar y ya está. Normalmente NO se forman vínculos y como excepción, aunque sucede, tienes gente hater que tiende a malinterpretar tus posts y a dejar comentarios inútiles.

El foro es un lugar de encuentro mas cercano o "warm" donde a veces se intercambian mensajes privados, o donde un usuario conoce a los demás que participan y sus inquietudes, profesión y especialización.

RESUMIENDO: Se aprende más rápido aquí, pero las respuestas tardán en llegar horas/dias al no haber un sistema de rewardeo como el "KARMA" (nos tomamos nuestro tiempo). En las webs de StackExchange la gente pelea por contestar para ganar REPU y los usuarios reciben su respuesta rápidamente.

Como añadido: Puede ser que ahora con la especialización, a la gente no le interesa saber de todo y no son tan culo inquieto como lo somos (y eramos entonces) nosotros. Quién sabe....

P.D: Se puede intentar un cambio al aspecto del foro en si, es decir, remodelarse al 2020 siendo la UI responsive y dinámica (REST?) además de organizar eventos periódicos (retos-concursos), donde moderadores y colaboradores se encarguen de los mismos.
132  Foros Generales / Noticias / Re: Samsung anuncia el desarrollo de la red 6G en: 29 Septiembre 2020, 13:45 pm
Ahora se autoconectará a internet, hasta las monedas y billetes que tengamos, cada libro, revista o bolígrafo vendido... incluso los botones de la camisa (por si acaso se te rompe, uno puede automáticamente buscarte un/a costurero/a, una tienda donde comprar otro botón igual o el precio de los mismos.

...y mientras las empresas intentanto sembrar en los gobienros la tenebrosa necesidad de las distintas velocidades en internet, para que los más ricos paguen más por lo mismo y los más pobres no puedad hacer nada, que les resulte más costoso que el tráfico generado por una máquina exprendedora de tabaco...

Que previsión más pésima sobre la humanidad. Es verdad que la sociedad, el conocimiento y los valores van  decandencia, pero jamás me atrevería a decir que conectaremos en un futuro todo a internet, incluso nuestro propio cuerpo. Todavía han de existir debates entre expertos cómo lo son: científicos, médicos y gobiernos. Que la proposición y desarrollo de tecnologías vaya a una velocidad vertiginosa no significa que las apliquemos en nuestro día a día.

Y si pasara lo que tú dices, me divertiría mucho hackeando los botones de las camisas, entre otras cosas :D  >:D
133  Foros Generales / Noticias / Re: El supuesto código fuente de Windows XP se ha filtrado en: 27 Septiembre 2020, 22:57 pm
Algunos proyectos avanzarán por ejemplo Wine o ReactOS. Bienvenido sea cualquier source de las liberías (DLLs) relacionadas con el mapeo entre kernel space y user space o aquellas relacionadas con funciones "undocumented".

No olvidemos que Wine trae modo de compatibilidad con WinXP cambiando la versión mediante winecfg, lo que resultará en mayor estabilidad.

Aunque a estas alturas, un proyecto como Wine tiene unas líneas marcadas, habrá que darles tiempo para que utilicen esta información.
134  Foros Generales / Foro Libre / Re: Dos periodistas apuñalados frente a la antigua sede de ‘Charlie Hebdo’ en: 26 Septiembre 2020, 17:47 pm
¿Quieres copiarles el gatillo fácil? ¿matar a 1000 personas al año sean inocentes o no? ¿matar a negros durmiendo en su casa? En Estados Unidos se está protestando como nunca antes contra el abuso de autoridad y la violencia policial y tú quieres que los nuestros les copien? xD
Saludos

Utilizo la ironía como fuente sútil de descarga. Estoy totalmente en contra del abuso y violencia policial, y más contra gente indefensa e inocente. Pero este sujeto se merecía una buena somanta.

Fíjate si son estúpidos que dejan utilizar armas a sus propios hijos xD para que cuando vayan al WallMart los recluten en el parking para otra farsa yankee (guerra).
135  Foros Generales / Foro Libre / Re: Dos periodistas apuñalados frente a la antigua sede de ‘Charlie Hebdo’ en: 26 Septiembre 2020, 15:23 pm
En España le dirían al agresor "cuidado al subir al coche no te des con la cabeza". No me gusta U.S.A pero ahí son de gatillo fácil, ¿por qué no copiarles algunas cosas?.

Si haces una encuesta poblacional, después de la falta de trabajo tendríamos la okupación e inmigración de baja calidad. Problemas que ningún gobierno ha querido resolver.
136  Foros Generales / Foro Libre / Re: “El Generalísimo Francisco Franco todavía está muerto”: el chiste que se escuchó en: 22 Septiembre 2020, 13:42 pm
Algo queda claro y es que nadie en su sano juicio hacía bromas públicas sobre Franco cuando éste vivía. No sería el mejor en materia de derechos humanos y libertades pero la gente tuvo para comer en comparación con aquellos regímenes comunistas.

Estos yankees :D parece que les hace gracia todo menos cuando tocan su pasado.
137  Foros Generales / Foro Libre / Re: "¡En la selva no tienen condones, panchito de *****!": tres adolescentes insult en: 18 Septiembre 2020, 13:49 pm
La vieja historia de la minoría de edad, nadie aquí me conoció underage pero mejor no haberlo hecho.

Eso de que tu expediente delictivo se suprima, es como uno de los mejores orgasmos. Y estas puti....ll...as se acogen a ello. Que importa lo que digan ahora, el derecho al olvido existe para los menores, y las penas por delitos de odio quedarán en un juicio de faltas, a pagar X y a currar Y horas.

El problema es cuando llega al adultez juvenil, con 18 tacos, eres el mismo sinvergüenza de siempre, pero ya te pueden dar de hox..tias los maderos e ir a prisión. O cambias o escoria de por vida, como estas muchachas, que acabarán de dependientas o cajeras, puestos a mi parecer demasiado honrados para éstas.

P.D = Haz las cosas por ti mismo o por tus allegados. Tu país no importa, jamás vas a cambiarlo ni llendo a la guerra ni al trabajo. Y no sigo que los patriotas salis a machacarme :D :)
138  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.
139  Foros Generales / Foro Libre / Re: Dictador Lukashenko es reelegido con el 80 % de los votos, según sondeos en: 10 Agosto 2020, 19:13 pm
Congresistas europeos revoloteando alrededor del escándalo como auténticos buitres. Está claro que quieren desestabilizar la siguiente unión https://en.wikipedia.org/wiki/Union_State .... Les interesa demasiado, así que bombardearán con noticias para hacernos creer que esa región no es demócratica y que viola los derechos humanos. Y España entonces es el paraiso señores, donde nadie te calla la boca a porrazos, donde la tortura ya no existe, donde los pucherazos políticos son cosas del pasado, la corrupción, malversación etc jajaja

Saludos.
140  Seguridad Informática / Criptografía / Re: Recomendaciones de Cipher Camellia en: 6 Agosto 2020, 18:27 pm
Holas, no vi el post a tiempo pero respondo:

Manolo ha hecho énfasis en que AES es más recomendado simplemente porque existen más artículos basados en su criptoanálisis.

Mi recomendación, va más en la línea de la cipher suite. Dile a tu compañero que evite la utilización de las cipher suites que utilicen RSA, como la que mencionaste: TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256

Esto es porque en el handshake, el cliente envía la pre-master key cifrada con la clave pública RSA del servidor. El server con su privada recupera la PMK y deriva las subsecuentes claves.

Entonce si un atacante recupera la clave RSA privada del servidor podrá descifrar todas las comunicaciones derivadas de un hadshake anterior en el tiempo.

Es recomendable emplear las suites que contienen una E delante del protocolo, quiere decir Ephemeral, es decir, que en cada handshake se utilizan par de claves privada-pública distintas. Por lo que recuperando una privada de un handshake sólo te da acceso a descifrar las comunicaciones derivadas de ese handshake.

Si por ejemplo combinamos ECDHE para el key exchange con RSA para la firma digital, pues ni tan mal. No tendría impacto, más que signature forgery. Pero EVITAR a toda cosa el sólo hecho de emplear RSA como key exchange.

Saludos.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 166
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines