Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - morpheus1000

#1
Criptografía / Duda acerca de Firmas RSA
26 Julio 2016, 22:00 PM
Buenas tardes muchachos

Pasare al tema rápidamente, les platico, hace poco adquirí actualización de un software que he estado utilizando de manera genuina, el fabricante del software me ha mandando un archivo .bin el cual contiene la siguiente información:

<RSAKeyValue>

<Modulus>YXYMUUM6c9Diw6oTglMQ291IpIOsHDLW4Ia2xcb9U0cw+qtKfK
RavrMO7NjToRvodRnLTlvTlprg6k/bC9/PTKLlul1B+EfE1fCXeE8cD34TD36LpTU+NK4W5eB
5G+iTXNl++Y37j96cAb9oquGUWnYBY4s6aSlS8=</Modulus>


<Exponent>AQAB</Exponent>

</RSAKeyValue>

00000000-0000-0000-0000-00021a7559mi_dato_nombremi_dato_emailT+vbzOsDEvhejLiktlWhcB20RMBdz8aO0iEQOmU39modvXifg88pKYpPtESpPUuQZKO8x9MXaLMmse3LY9W5aNSfvJ9KxEPMp+M+8LemWj2owsgDeoUJ+yPPBS3

A mi ver es una llave válida para correr desde mi software genuino, implementa un algoritmo RSA; lo que no me queda claro es por que me mandan un módulo y un exponente, y si este es exponente publico o privado  :huh: :huh: .

Alguien de ustedes tiene idea de como se realiza la operación para que mi software encuentre esta llave como válida y por consiguiente SEA ACEPTADA dentro de mi software genuino, estas dudas las quiero disipar con el fin de conocer exactamente el funcionamiento del esta manera de recibir información cifrada interpretarla y validarla.

Cualquier ayuda es bienvenida amigos. Saludos  ;-) ;-)
#2
Buenas tardes muchachos

Estoy en proceso de desarrollar mi propio generador de FIRMAS RSA, usando C#, alguien de ustedes podría orientarme que procedimiento es el que debo implementar en Visual Studio . NET

He encontrado textos en los cuales se utiliza de exponente AQAB, pero lo que me llama la atención es que ese exponente no es un valor en Hexadecimal, puesto que lleva la letra Q, sin embargo algunos programadores lo manejan de esa manera. ¿Alguien de ustedes sabe a que se debe?

Gracias de antemano.  :)
#3
Hola compañeros!, para mí es un gusto saludar una comunidad con tantos aportes como esta.  :rolleyes:

Ahora bien al  grano...

He instalado un software que como medida de seguridad implementa validación de licencias mediante firma digital de la siguiente manera:

El programa constantemente realiza consultas a la base de datos que se instala junto con la distribución de dicho software, específicamente en la tabla "license" de dicha base de datos, este procedimiento VALIDA que nuestro software no esté toqueteado, y lo hace de la siguiente manera:

licensed_users   int(11)
license_id   char(36)
customer_id   char(100)
description   varchar(100)
email   char(100)
bo_type   varchar(64)

En los campos anteriores pertenecientes a la tabla "license" se captura información en el siguiente orden:

1.   Número de licencias a adquirir, por ejemplo yo adquiero 100, de ahí que el campo sea del tipo int(11)
2.   Identificador de licencias, es del tipo char(36)
3.   Identificador de cliente, es del tipo char(100)
4.   Descripcion, es del tipo varchar(100)
5.   Email, es del tipo char(100)
6.   bo_type, es del tipo varchar(64)

He aquí la parte interesante!!..!!..

El programa implementa una función, la cual utiliza TODAS las variables anteriores (campos) para aplicar un algoritmo (probablemente un algoritmo RSA) para obtener una firma y de esa manera VALIDAR, tanto el número de licencias (la parte más importante) como el resto de los datos, que para propósitos prácticos, son irrelevantes.

El resultado se almacena en el campo:

signature, y es del tipo varchar(172)

He estado revisando la base de datos que auto instala el software, y las llaves que se incluyen como ejemplo tienen una longitud exactamente de 172 caracteres:

algo más o menos así:

wxzqVSqFCC7QLjtLwBbXGYY6K77v37bZOW2HMfSCdmwh/qoFyFCvWwxzqVSqFCC7QLjtLwBk1fy3/jkO/bIEDDQxkLNtm5VRoBEWKkEJN0jRdGv3wxzqVSqFCC7QLjtLwBDe76hcuLE1hUetUhRK75JWwxzqVSqFCC7QLjtLwBg=

Me llama la atención que las firmas de ejemplo terminen en signo de igualdad, tuve la oportunidad de ver trabajando una llave genuina en mi lugar de trabajo, y su terminación es en signo de igualdad también...  ;D

La consulta que les hago es:  :huh: :huh: :huh:

¿Qué procedimiento o algoritmo podría yo usar para hacer pruebas con los datos de ejemplo que incluye el programa, esto, con la intención de conocer el procedimiento que los creadores del software usaron para implementar seguridad en el mismo. Y hacer mis propias llaves de prueba. Repito, se usan 6 elementos que combinados dan como resultado la llave de caracteres de 172 caracteres de longitud y terminada en signo de igualdad.  :o

La ingeniería del software es muy útil e interesante y si alguien pudiera ayudarme con alguna sugerencia de que algoritmo poder implementar, se lo agradecería demasiado.

Mis mejores deseos a todos en el foro.,
Gracias de antemano.