1 votos

¿Cómo identifica el llavero los ejecutables?

Me pregunto cómo el Llavero identifica las aplicaciones. Sospecho que esto se basa en la firma de código, pero los experimentos no son realmente consistentes con esto:

Funciona para los ejecutables que no están firmados en absoluto:

codesign -dv  /Library/Frameworks/R.framework/Resources/bin/exec/R
# /Library/Frameworks/R.framework/Resources/bin/exec/R: code object is not signed at all

Pero el proceso R se agrega al ACL de este secreto, y puede consultarlo felizmente...

Tampoco hay nada en los atributos extendidos del ejecutable:

xattr -l  /usr/bin/security
# 

Si cambio el archivo en sí, todavía funciona:

cp /usr/bin/security foobar
echo "\nharmless" >> foobar
./foobar find-generic-password -a 'gaborcsardi' -s foobar -g
# keychain: "/Users/gaborcsardi/Library/Keychains/login.keychain"
# class: "genp"
# attributes:
#     0x00000007 <blob>="foobar"
#     0x00000008 <blob>=<NULL>
#     "acct"<blob>="gaborcsardi"
# ...
# password: "secret"

Pero entonces, ¿cómo funciona? Más específicamente, ¿cómo sabe el llavero que la consulta de la contraseña viene de la security que permití específicamente el acceso a esta entrada?

1voto

Douglas Puntos 10417

El Llavero no identifica las aplicaciones, las aplicaciones llaman al API del llavero

El API de Servicios de Llavero provee una solución a este problema. Por haciendo una sola llamada a esta API, una aplicación puede almacenar pequeños trozos de información secreta en un llavero, desde el cual la aplicación puede más tarde recuperar la información también con una sola llamada. El llavero asegura datos encriptados antes de almacenarlos en el sistema de archivos, aliviando de la necesidad de implementar complicados algoritmos de encriptación. El también controla cuidadosamente el acceso a los artículos almacenados. Todo el el llavero puede ser cerrado, lo que significa que nadie puede desencriptar su protegido hasta que se desbloquee con una contraseña maestra. Incluso con una desbloqueado, la política de acceso a los llaveros del sistema asegura que sólo las aplicaciones autorizadas tienen acceso a un elemento determinado del llavero. En en el caso más simple, la aplicación que creó un elemento es la única que puede acceder a ella más tarde. Sin embargo, Servicios de Llaveros también proporciona formas de compartir secretos entre aplicaciones.

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X