Forma para que dos partes establezcan que no se conocen previamente entre sí

3

(Lo siento si esto no está en la SE correcta / no es relevante para security.stackexchange - parece ser la mejor opción)

¿Hay alguna forma para que dos partes anónimas establezcan que no se conocen entre sí antes de revelar sus identidades?

Supongamos que Alice y Bob pueden comunicarse de forma anónima y desean participar en algún tipo de actividad embarazosa en una fecha posterior. No les importa revelar su identidad si la otra parte es alguien que no conocen, pero no quieren revelar su deseo de participar en esta actividad a alguien que sí conocen. Quieren una forma de confirmar que ninguno de los dos conoce al otro sin tener que revelar su identidad en el proceso (pero inevitablemente revelará su identidad si sigue adelante con cualquier actividad que esté planeando).

Hasta ahora, mi única idea es involucrar a un tercero de confianza que reciba una lista de nombres de ambas partes (incluidos sus propios nombres) y verifique las coincidencias. El tercero solo confirma la presencia o ausencia de un partido. Es posible que cada parte envíe solo una lista de hashes en lugar de nombres identificables para reducir el riesgo de que el tercero revele identidades, si Alice y Bob pueden acordar ciertos estándares de denominación y hashing.

De esta manera, si hay una coincidencia, Alice y Bob solo saben que el otro es alguien de su lista. Sin embargo, esto no es lo ideal, ya que cualquiera de las partes podría manipular el proceso al proporcionar nombres limitados o específicos para que puedan adivinar la identidad de la otra parte.

¿Hay algún enfoque más elegante para esta situación?

    
pregunta user39583 06.02.2014 - 12:17
fuente

3 respuestas

4

Si está asumiendo que Alice o Bob podrían ser maliciosos e intentarían subvertir el proceso de manera activa (por ejemplo, mintiendo sobre su identidad o su lista de "identidades conocidas"), entonces es probable que necesite una tercero de confianza involucrado.

Yo sugeriría que el camino a seguir es tener la TTP involucrada desde el principio. Entonces, si asumimos que al inicio del servicio, Alice y Bob no tienen a nadie en sus listas, entonces el TTP puede intermediar cada transacción y ser el custodio de las listas de quién sabe quién (ya sea utilizando identidades directas o utilizando alguna forma de pseudoname)

Un desafío es qué es lo que impide que Alice o Bob envíen otra identidad y luego comiencen desde cero, por así decirlo. Eso sería más difícil de superar sin que la TTP tome algún tipo de verificación de identidad relativamente inmutable, para que sea más difícil tener varias cuentas.

    
respondido por el Rоry McCune 06.02.2014 - 12:41
fuente
0

Suponiendo que no puede confiar en la otra parte, necesita que un tercero identifique a ambas personas, pero incluso así, será un proceso poco preciso. Si una de las partes no se comporta de buena fe, entonces no habrá una intersección en la lista de la otra persona que no sea su identidad real.

Como la persona promedio conoce al menos varios miles de personas y es poco probable que pueda recordarlas todas, las posibilidades de que alguien se resbale por las grietas del participante bien educado son excepcionalmente altas. Sé que probablemente he conocido a más de diez mil personas que podría reconocer (al menos visualmente) si las viera. Ni siquiera sé muchos de sus nombres, pero puedo identificarlos visualmente. La memoria humana simplemente no es lo suficientemente buena o confiable para hacer esto con una parte no confiable.

Ahora, si se puede confiar en ambas partes, es mucho más fácil obtener una aproximación buscando intersecciones entre las listas que las personas puedan imaginar. Si bien es probable que no recuerde a Bob en el nombre de Accounting, recuerdo lo suficiente de mis compañeros de trabajo que si conocemos a un grupo de personas del trabajo, es muy probable que nos hayamos encontrado antes. Sin embargo, aún no es algo seguro y requiere que ambas partes sean dignas de confianza en la interacción y no hay manera de verificar que no haya una verificación de antecedentes extendida por parte de un tercero. (es decir, contactando a cada persona en su lista, verificando la relación y pidiéndoles una lista de las personas que saben que la persona conoce y continuando hasta que no tenga pérdidas, e incluso eso no es perfecto si tienen diferentes subconjuntos de personas que no se conocen entre sí.)

    
respondido por el AJ Henderson 06.02.2014 - 15:43
fuente
0

En un comentario, dijo que le gustaría que su sistema pudiera saber si dos usuarios se conocen entre sí en la vida real, o algo en ese sentido. Y si lo entendiera correctamente, conocernos sería un desastre, por lo que el equilibrio dependería de que "en la menor posibilidad, consideren que se conocen".

En ese caso, Alice simplemente inicia sesión para tu servicio e informa a todas las personas que conoce que no son suficientes, ya que Hubert (su esposo) solo podría iniciar sesión con otro nombre, y tendrías un problema.

Necesitaría que todos los usuarios inicien sesión para proporcionar más información, para construir esa red de relaciones. Y no puedes simplemente confiar en lo que dice cada uno, ya que podría ser falso (de nuevo, Hubert podría proporcionar cualquier información que desee).

Por lo tanto, debe confiar en la información proporcionada por terceros. Hay sitios que se crean completamente a partir de redes de creación: Facebook, MySpace, Orkut, Google+, creación automática de contactos de Gmail, Linkedin ... Puede intentar confiar en su información, de la misma manera que lo hace Lulu, para inferir quién sabe quién.

Y otra vez tendrás que lidiar con información falsa. Lulu hace eso, comprobando algunas restricciones para reducir la probabilidad de que un perfil falso tenga éxito. Esto se puede hacer verificando cuántos años tiene la cuenta, cuántos amigos tiene la persona, cuántos amigos tiene cada uno, etc. Un largo camino por recorrer.

Y usted marcaría como "se conocen", según les parezca conveniente: han estudiado en la misma universidad, les gusta el mismo restaurante, tienen amigos en común (en 1º o 2º grado, como sabe Alice Bob, que conoce a Peter, que conoce a Hubert, el marido de Alice).

Necesitarías un gran poder de procesamiento, una base de datos enorme, y básicamente estarías replicando la información que tiene Facebook, etc.

Además de eso, es imposible saber si dos personas se conocen en la vida real, si no tienen información proporcionada en esos sitios sociales. Por lo tanto, deberías dejarlos salir de tu sistema.

    
respondido por el woliveirajr 07.02.2014 - 13:34
fuente

Lea otras preguntas en las etiquetas