Cerrado

Negociación de claves anónimas y librería de firmas grupales.?

El proyecto:

(Ver figura adjunta)

Los pasos 1, 2 y 3 consisten en añadir un miembro a un grupo ya existente (la creación del grupo sería la operación Setup de los esquemas de firma grupales que te has estado estudiando, y la unión del nuevo miembro correspondería con las operaciones Join tanto del miembro como del gestor), lo cual genera como resultado una nueva clave de miembro, que en el esquema aparece como mk. Esta "negociación" se hace con el Gestor del Grupo G.

Con su clave de miembro mk, el [nuevo] miembro, cuando quiera acceder a la plataforma Tor dotada de anonimato justo, inicia una negociación con el Gestor de claves simétricas anónimas. Esta negociación básicamente consistiría en que el miembro envía una información prefijada firmada de forma anónima con su clave mk, el Gestor verifica la firma (esto es básicamente una autenticación anónima) y, de ser correcta, emite una nueva clave simétrica "anónima", k. Al finalizar, el Gestor almacena en un log (que debería ser temporal, con el intervalo de tiempo configurable) en el que enlaza la clave k con la firma anónima que ha recibido (que ha sido generada con mk). Esto correspondería con los pasos 5 a 7.

El cliente envía, cifrado mediante un "digital envelope" (que consiste en cifrar la clave k con la clave pública del servidor final, y cifrar los datos a transmitir con k), los datos que quiera enviar al servidor final. Esto el paso 8.

El servidor final descifra el digital envelope: usa su clave privada para descifrar la clave k, y luego la clave k para descifrar los datos. Esto son los pasos 9 y 10.

En caso de que, por el motivo que sea, el servidor crea que es un ataque, envía la clave k al Gestor de claves simétricas (paso 11). El Gestor de claves consulta la base de datos y le devuelve la firma anónima que se usó (generada con mk) para obtener k (pasos 12 y 13).

El servidor reenvía la firma generada con mk al Gestor del Grupo (paso 14). El Gestor del Grupo, posiblemente consultando a un "Juez", determina si la identidad del miembro debe ser revocada. En caso positivo, abre la firma (paso 15) y envía la identidad (o la información de revocación necesaria) al servidor (paso 16).

Todo esto se tendría que realizar llamando a una biblioteca escrita en C. Que entregaré cuando sea necesario.

Puedo entregarla de dos formas:

1. Descargándola en formato HTML

    Una vez descomprimido el fichero, se te crea una carpeta, "html", en ella hay un fichero [url removed, login to view] que es el fichero principal de la documentación. Puedes abrirlo con cualquier navegador web. Desde ahí puedes acceder a la documentación sobre funciones, estructuras de datos, etc. (incluso tienes un buscador con autocompletado arriba a la derecha, en la que puedes meter términos y te salen resultados encontrados -- por ejemplo: "groupsig_signature_t" te sale la descripción de la estructura de datos básica que uso para firmas grupales).

2. Descargándola en formato PDF. Es lo mismo que en HTML, aunque menos interactivo.

Está añadida una documentación básica sobre cómo está diseñada la librería y sus componentes, algunas normas de naming que he seguido y que creo que pueden ayudar a localizarle dentro de la librería y una enumeración de los programas de ejemplo que he hecho para ayudarle a empezar con la librería (creo que, una vez leída la documentación básica de la librería, puede ser un buen punto de comienzo para empezar a ver cómo trabajar sobre ella).

 

Habilidades: Desarrollo, Ingeniería eléctrica, Programación, Arquitectura de software, Desarrollo de software

Información del empleador:
( 1 comentario ) Spain

Nº del proyecto: #12358182

1 freelancer está ofertando el promedio de €540 para este trabajo

MarioJimenezCR

Saludos mi estimado cliente, leo acerca de tu proyecto pero podrías detallarlo más a fondo para poderlo comprender aún mas y poder imaginarlo igual que tú y poder opinar mas acerca de este desarrollo que necesitas?

€540 EUR en 40 días
(0 comentarios)
0.0