1. Introduction générale
La sécurité des systèmes d'information consiste à protéger divers types de ressources de données dans les systèmes d'information contre tout accès non autorisé (y compris la visualisation, l'ajout, la modification, la suppression) et à garantir l'intégrité, la confidentialité et la disponibilité des données. Dans le contexte actuel de développement de l’Internet of Everything, la sécurité de l’information est particulièrement importante. En tant qu'élément important de la sécurité de l'information, le contrôle d'accès peut non seulement authentifier l'identité des utilisateurs lors de l'accès aux systèmes d'information, mais également contrôler les droits d'accès des utilisateurs à l'information de manière fine. En tant que logiciel de base du système d'information, la base de données est chargée du stockage des données. Pour garantir l'intégrité, la confidentialité et la disponibilité des informations, un contrôle d'accès strict est nécessaire.
Ce qui suit est un extrait d'une partie du contenu. Cliquez sur la vidéo pour voir la version complète.
2. Introduction au modèle de contrôle d'accès
Fonctions et éléments essentiels du contrôle d’accès
Les fonctions essentielles du contrôle d'accès : l'authentification de l'identité et le contrôle d'accès aux ressources, qui s'incarnent dans les quatre aspects suivants : permettre aux sujets légitimes d'entrer dans le système protégé ; interdire aux sujets illégaux d'entrer dans le système protégé ; permettre aux sujets légitimes d'accéder aux ressources protégées. l'accès ; interdire l'accès non autorisé par des sujets légitimes aux ressources protégées.
Les trois éléments du contrôle d'accès sont : le sujet, l'objet et la politique de contrôle :
- Sujet, l'entité demandant l'accès aux ressources, qui peut être un utilisateur du système, un processus ou un appareil, etc. ;
- Objet, l'entité de ressource à laquelle on accède, peut être un objet fichier ou base de données, etc. ;
- Une stratégie de contrôle est un ensemble d'attributs qui peuvent être lus, écrits ou exécutés.
Authentification d'identité
1. L'authentification d'identité par mot de passe utilise le nom d'utilisateur et le mot de passe pour l'authentification de l'identité. La plupart des systèmes d'information utiliseront cette méthode.
2. L'authentification d'identité basée sur un certificat utilise des certificats signés pour l'authentification d'identité. Le certificat le plus couramment utilisé est le certificat TLS (Transport Layer Security, Transport Layer Security Protocol). Cette méthode permet non seulement de vérifier la légalité du certificat, mais également de vérifier les informations combinant le certificat et le système. La vérification de la légalité d'un certificat nécessite généralement une vérification de la validité du certificat (le certificat est dans la période de validité) et de sa crédibilité (la chaîne de certificats est fiable). Les informations combinées avec le système sont généralement un nom commun et sont liées aux informations de l'utilisateur du système.
3. Authentification d'identité basée sur un centre d'authentification tiers Dans les systèmes d'information comportant des métiers complexes ou de nombreux sous-systèmes, il est nécessaire d'utiliser un centre d'authentification unifié pour l'authentification d'identité. Les architectures d'authentification d'identité unifiée couramment utilisées incluent LDAP, Radius, GSSAPI, etc. Il existe de nombreuses implémentations spécifiques de GSSAPI, telles que KerberosV5, NTLM et SPNEGO.
4. L'authentification d'identité biométrique est basée sur les caractéristiques biométriques uniques de chaque utilisateur, notamment les empreintes digitales, la voix, la reconnaissance faciale, l'iris, l'écriture manuscrite, la forme de la main, les empreintes palmaires, etc.
5. L'authentification d'identité basée sur des périphériques matériels utilise des périphériques matériels liés à l'identité, tels que des cartes d'identité, des cartes IC, etc.
6. OTP (One-Time-Password) est un mot de passe qui n'est utilisé qu'une seule fois lors du processus d'authentification de l'identité. Une fois qu'un mot de passe est utilisé, il devient immédiatement invalide et ne peut pas être réutilisé. OTP n'est généralement pas utilisé indépendamment et doit être combiné avec d'autres méthodes d'authentification et utilisé dans des scénarios 2FA ou MFA pour améliorer la sécurité de l'authentification de l'identité.
7. La configuration d'authentification d'identité basée sur HBA (Host-Based Authentication) configure la méthode d'authentification d'identité et les paramètres d'authentification du type d'accès spécifié, des ressources d'accès spécifiées, des sources spécifiées, des utilisateurs spécifiés, obtenant ainsi une configuration flexible de la méthode d'authentification d'identité.
3. Contrôle d'accès aux ressources
Historique de développement du modèle de contrôle d'accès
Sécurité de l'information Avec le développement de l'informatisation, les modèles de contrôle d'accès évoluent également constamment. Les premiers étaient MAC (Contrôle d'accès obligatoire, contrôle d'accès obligatoire) et DAC (Contrôle d'accès discrétionnaire, contrôle d'accès discrétionnaire), et plus tard IBAC (Contrôle d'accès basé sur l'identité, contrôle d'accès basé sur l'identité) et ACL (Listes de contrôle d'accès, contrôle d'accès listes de contrôle) sont apparues).
Avec le développement des systèmes d'information, le populaire RBAC (Role-Based Access Control, contrôle d'accès basé sur les rôles) est apparu, et sur cette base, l'ABAC (Attribute-Based Access Control, contrôle d'accès basé sur les attributs) a été développé. Dans certains domaines, notamment celui des bases de données, le LBAC (Label-Based Access Control) a été développé et utilisé.
Introduction au modèle de contrôle d'accès
1. MAC MAC, contrôle d'accès obligatoire. L'aspect obligatoire de MAC est que les autorisations sont gérées par des administrateurs dédiés. Dans le domaine de la confidentialité avec des exigences de sécurité relativement élevées, MAC a construit un modèle de contrôle d'accès autour du MLS (Multi-Level Security, multi-level security). Le MLS a été conçu à l’origine comme un cercle concentrique avec plusieurs niveaux de contrôle d’accès, avec des niveaux de sécurité plus élevés vers le centre.
2. DAC DAC, contrôle d'accès autonome. L'autonomie de DAC se reflète dans le fait que les utilisateurs peuvent partager sélectivement leurs ressources avec d'autres utilisateurs selon leurs propres souhaits.
3. ACL/IBAC ACL, liste de contrôle d'accès. Une ACL est une structure de données, généralement directement associée à une ressource (telle qu'un fichier, un enregistrement de base de données ou une ressource réseau), qui répertorie les utilisateurs disposant de droits d'accès et de leurs autorisations d'accès (telles que lecture, écriture, exécution, etc.) . Une ACL se compose généralement d'un ensemble de règles (c'est-à-dire des entrées d'ACL). Chaque entrée d'ACL définit une politique de contrôle d'accès, notamment l'autorisation ou le refus de types spécifiques de demandes d'accès.
IBAC, contrôle d'accès basé sur l'identité. IBAC autorise les utilisateurs à accéder aux ressources en fonction de leur identité (telle que le nom d'utilisateur ou l'ID utilisateur). Associer directement les droits d'accès à l'identité d'un individu est l'une des méthodes de contrôle d'accès les plus intuitives. L'IBAC met davantage l'accent sur le rôle de l'identité de l'utilisateur et contrôle les droits d'accès via les informations d'identité. Le modèle IBAC réalise l'association entre les utilisateurs et les autorisations en associant les informations d'identité de l'utilisateur aux autorisations d'accès aux ressources. Le cœur d’IBAC est l’utilisation d’ACL pour définir quels utilisateurs peuvent accéder à quelles ressources.
4. RBAC RBAC, contrôle d'accès basé sur les rôles. RBAC est le modèle de contrôle d’accès le plus utilisé dans les systèmes d’information actuels. Le concept de base de RBAC est que les autorisations sont associées à des rôles et que les utilisateurs sont affectés aux rôles appropriés. Un rôle est une collection d'utilisateurs d'un côté et une collection d'autorisations de l'autre. Il agit comme un intermédiaire qui combine les collections d'utilisateurs et les collections d'autorisations. Dans le domaine de l'open source, les célèbres frameworks open source de RBAC incluent Spring Security et Apache Shiro.
En pratique, RBAC a progressivement développé quatre modèles de référence basés sur différents scénarios d'application : • RBAC0 : modèle de base, l'exigence minimale pour tout système prétendant supporter RBAC ; • RBAC1 : modèle avancé, basé sur RBAC0, ajoutant des rôles de fonctions hiérarchiques. Un rôle peut être membre d'un rôle, ou il peut hériter des autorisations de son parent ; • RBAC2 : Le modèle avancé, basé sur RBAC0, ajoute la fonction de séparation des tâches pour éviter les conflits d'intérêts provoqués par les utilisateurs ayant trop d'autorisations. La séparation courante des tâches inclut les rôles statiques mutuellement exclusifs, les rôles d'exécution mutuellement exclusifs, les contraintes de cardinalité (nombre total de rôles), les contraintes préalables, etc. • RBAC3 : le modèle avancé, basé sur RBAC0, combine les avantages de RBAC1 et RBAC2.
5. ABAC ABAC, contrôle d'accès basé sur les attributs. ABAC utilise les attributs des entités associées comme base d'autorisation et émet des jugements d'autorisation en calculant dynamiquement si un ou un groupe d'attributs satisfait à certaines conditions.
Politique de contrôle d'accès d'ABAC : les utilisateurs avec des attributs u sont autorisés/interdits d'effectuer des opérations avec des attributs o sur des ressources avec des attributs d'objet d dans des conditions d'attribut c (u, c, d, o sont des exemples aléatoires). Par conséquent, le noyau d'ABAC est constitué de 4 types d'attributs d'entité : les attributs d'utilisateur, les attributs détenus par les utilisateurs, tels que l'âge, le service, le poste, etc. ; les attributs environnementaux, les facteurs de condition environnementale de contrôle d'accès, tels que l'heure actuelle, le temps autorisé pour accès et sous-classes autorisées à accéder. Réseau, etc. ; Attributs de ressource, attributs possédés par la ressource, tels que le type de fichier, la sensibilité des données, etc. ; Attributs d'opération, types d'opération autorisés, tels que lecture, écriture, exécution, etc.
ABAC peut réaliser un contrôle d'autorisation très flexible et peut théoriquement répondre à presque tous les types de besoins de contrôle d'accès.
6. LBAC LBAC, contrôle d'accès basé sur des étiquettes. Dans LBAC, les utilisateurs et les données se voient attribuer des étiquettes et des comparaisons sont effectuées en fonction des étiquettes pour déterminer si l'utilisateur peut accéder aux données. La relation entre les utilisateurs, les données et les balises peut être décrite par le diagramme suivant. Étiquettes de données : spécifient la sensibilité des lignes de données ; Étiquettes d'utilisateur : fournissent une autorisation appropriée aux utilisateurs ; La médiation d'accès entre les utilisateurs et les données dépend des étiquettes de l'utilisateur.
4. Exigences des normes de bases de données sur le contrôle d'accès
"GB/T 20273-2019 Information Security Technology - Security Technical Requirements for Database Management Systems", les exigences en matière de contrôle d'accès impliquent principalement 27 composants fonctionnels répartis en trois grandes catégories fonctionnelles.
Protection des données des utilisateurs
Identification et identification
Gestion de la sécurité
5. Contrôle d'accès KaiwuDB
Le contrôle d'accès KaiwuDB comprend également deux parties : l'authentification d'identité et le contrôle d'accès.
Authentification d'identité KaiwuDB
1. Authentification d'identité par mot de passe KaiwuDB prend en charge l'authentification d'identité par mot de passe. Mesures de sécurité du mot de passe utilisateur :
- Méthode de cryptage du stockage des mots de passe (algorithme international et algorithme de secret commercial)
- Le mot de passe ne peut pas contenir le nom d'utilisateur et son ordre inverse
- Limite de longueur minimale du mot de passe
- Limite de longueur maximale du mot de passe
- Nombre de lettres majuscules
- Nombre de lettres minuscules
- Nombre de chiffres
- Chiffres de symboles spéciaux
- Limite du nombre de catégories de caractères incluses (lettres majuscules, lettres minuscules, chiffres, symboles spéciaux)
2. Authentification d'identité basée sur un certificat KaiwuDB prend en charge l'authentification d'identité basée sur des certificats TLS. Le délai d'expiration et la chaîne de certificat du certificat peuvent être vérifiés, ainsi que le nom commun dans le certificat et le nom d'utilisateur dans le système de base de données.
3. Authentification d'identité basée sur une authentification unifiée tripartite KaiwuDB prend en charge l'authentification d'identité basée sur une authentification unifiée tripartite et prend en charge le cadre d'authentification GSSAPI. L'implémentation spécifique est l'authentification unifiée Kerberos V5.
4. 2FAK aiwuDB prend en charge 2FA basé sur le certificat et le mot de passe TLS.
5. HBAK aiwuDB prend en charge la configuration de types d'accès spécifiés, de ressources d'accès spécifiées, de sources spécifiées, de méthodes d'authentification d'identité d'utilisateur spécifiées et de leurs paramètres d'authentification, permettant ainsi une configuration flexible des méthodes d'authentification d'identité.
Contrôle d'accès KaiwuDB
1. Liste de contrôle d'accès KaiwuDB prend en charge les listes de contrôle d'accès pour gérer directement les autorisations de contrôle d'accès pour les utilisateurs et les objets de base de données.
2. RBACKaiwuDB prend en charge le modèle RBAC1, peut effectuer un contrôle d'accès basé sur les rôles et prend en charge la gestion hiérarchique des rôles et l'héritage des autorisations.
3. LBACKaiwuDB prend en charge le contrôle d'accès LBAC et peut effectuer un contrôle d'accès basé sur des balises. Les étiquettes prennent actuellement en charge le composant Level, qui marque le niveau d'accès autorisé de l'utilisateur et le niveau de sensibilité des données. Les utilisateurs ne peuvent accéder qu'aux données avec un niveau de sensibilité inférieur à leur niveau d'accès autorisé.
4. ABACKaiwuDB prend en charge ABAC et peut effectuer un contrôle d'accès basé sur des attributs. Les attributs utilisateur pris en charge par ABAC sont :
- CREATEDB/NOCRATEDB : autorise/désactive l'opération CREATE DATABASE de l'utilisateur.
- CREATEROLE/NOCREATEROLE : autorise/désactive les opérations CREATE ROLE et CREATE USER de l'utilisateur.
- LOGIN/NOLOGIN : Autoriser/désactiver la connexion de l'utilisateur.
- FAILED_LOGIN_ATTEMPTS : nombre maximum de tentatives de connexion échouées autorisées pour un utilisateur. LIMITE DE CONNEXION : nombre maximum de connexions simultanées autorisées pour les utilisateurs.
- VALIDE JUSQU'À : Durée de validité du mot de passe de l'utilisateur. Après la période de validité, la connexion n'est plus autorisée.
6. Planification future du contrôle d'accès KaiwuDB
1. Planification future de l'authentification de l'identité
La planification future de l’authentification des identités prévoit principalement de mettre en œuvre les fonctions suivantes :
- 2FA/MFA : en plus du 2FA du mot de passe utilisateur et du certificat, il prend en charge davantage d'authentification d'identité 2FA et MFA, comme l'ajout d'un code de vérification, d'OTP, etc.
- Authentification unifiée tripartite et authentification d'identité : en plus de Kerberos V5, il prend en charge l'authentification unifiée tripartite telle que LDAP et Radius.
2. Planification future du contrôle d'accès
La planification future du contrôle d'accès prévoit principalement de mettre en œuvre les fonctions suivantes : restrictions des rôles de sécurité :
- Prend en charge le modèle RBAC3, y compris la séparation des fonctions, comme la séparation de trois pouvoirs ou la séparation de plusieurs rôles et responsabilités.
- Amélioration de la fonction LBAC : du composant de niveau actuel à LBAC, y compris les composants de niveau, de compartiment et de groupe, et sur cette base, un contrôle d'accès plus précis tel que le niveau de colonne et le niveau de ligne peut être implémenté.