Colección de citas famosas - Slogan de motivación - ¿En qué se basa el mecanismo de seguridad de Android?

¿En qué se basa el mecanismo de seguridad de Android?

Android hereda naturalmente el mecanismo de seguridad del kernel de Linux y, al mismo tiempo, combina las características de aplicación específicas de los terminales móviles para realizar muchas mejoras y mejoras útiles.

Los sistemas operativos tradicionales como Windows y Unix/Linux están centrados en el usuario, asumiendo que los usuarios no son dignos de confianza, y se da más consideración a cómo aislar a los diferentes usuarios de los recursos (áreas de almacenamiento y archivos de usuario, memoria áreas y usuarios) procesos, dispositivos subyacentes, etc.). En el sistema Android, se supone que el software de la aplicación no es confiable, e incluso las aplicaciones instaladas por los usuarios no son confiables. Por lo tanto, primero es necesario limitar las funciones de la aplicación, es decir, colocar la aplicación en un "sandbox". ", logra el aislamiento entre aplicaciones y establece permisos para permitir o denegar llamadas API, controlar el acceso de las aplicaciones a los recursos, como el acceso a archivos, directorios, redes, sensores, etc.

Android amplía el mecanismo de permisos y usuarios del modelo de seguridad del kernel de Linux y trasplanta inteligentemente el mecanismo de aislamiento de usuarios de los sistemas operativos multiusuario al aislamiento de aplicaciones. En Linux, una identificación de usuario (UID) identifica a un usuario determinado; en Android, un UID identifica una aplicación. Asigne un UID a la aplicación cuando esté instalada. Mientras la aplicación exista en el dispositivo, su UID permanece sin cambios. Úselo solo para permitir o restringir el acceso de las aplicaciones (no del usuario) a los recursos del dispositivo. De esta manera, el mecanismo de seguridad de Android está perfectamente conectado con el modelo de seguridad del kernel de Linux. Diferentes aplicaciones pertenecen a diferentes usuarios. Por lo tanto, la aplicación se ejecuta en su propio espacio de proceso independiente. Las aplicaciones con diferentes UID forman naturalmente un aislamiento de recursos, formando así una "zona de pruebas" de aplicaciones a nivel del sistema operativo.

La seguridad entre los procesos de la aplicación y entre la aplicación y el sistema operativo se implementa mediante el mecanismo de seguridad estándar a nivel de proceso del sistema operativo Linux. De forma predeterminada, las aplicaciones no pueden interactuar entre sí. A las aplicaciones que se ejecutan en el espacio aislado del proceso no se les asignan permisos y no pueden acceder al sistema ni a los recursos. Por lo tanto, tanto las aplicaciones que se ejecutan directamente en el sistema operativo como las aplicaciones que se ejecutan en la máquina virtual Dalvik reciben el mismo aislamiento y protección de seguridad. Las aplicaciones restringidas en sus respectivos "sandboxes" no interfieren entre sí y no interfieren entre sí. el sistema y otras aplicaciones se minimizan. El mecanismo "sandbox" de las aplicaciones de Android es el que se muestra a continuación. Las aplicaciones que no tienen una relación de confianza entre sí se aíslan entre sí y se ejecutan de forma independiente:

En muchos casos, las aplicaciones se originan en el mismo desarrollador. u organización de desarrollo, existe una relación de confianza entre ellos. El sistema Android proporciona el llamado mecanismo UID compartido (SharedUserID) para que las aplicaciones con relaciones de confianza puedan ejecutarse en el mismo espacio de proceso. Normalmente, esta relación de confianza está determinada por la firma digital de la aplicación y requiere que la aplicación utilice el mismo UID en el archivo de manifiesto. *** Compartir espacio de proceso de solicitud de UID