DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Configuration du protocole d’authentification Kerberos

Configuration du protocole d’authentification Kerberos

Nommer d’après un chien à trois têtes gardant les portes des Enfers dans les mythes grecs anciens, le protocole Kerberos offre un service d’authentification sécurisé pour les réseaux informatiques. Il réalise une authentification mutuelle entre l’utilisateur et le serveur à l’aide d’un Centre de Distribution de Clés (KDC) tiers de confiance qui fournit un service d’authentification et de délivrance de tickets. Tous les principaux systèmes d’exploitation, y compris Microsoft Windows, Linux, Apple OS X et FreeBSD, prennent en charge le protocole Kerberos.

Les messages du protocole Kerberos sont protégés contre les attaques par rejeu et les écoutes par le biais de la cryptographie à clé secrète partagée. Le principal objectif de Kerberos est d’éviter la transmission de mots de passe cryptés sur le réseau. Il élimine la menace des sniffers de paquets et renforce la sécurité globale du réseau.

Bien que le fournisseur de support de sécurité Kerberos traite efficacement les menaces de sécurité graves, sa mise en œuvre peut s’avérer difficile en raison d’une variété de limitations :

  • Si le serveur Kerberos est en panne, les utilisateurs ne peuvent pas se connecter. Le problème peut être résolu en utilisant des mécanismes d’authentification de secours et plusieurs serveurs Kerberos.
  • Les horloges des hôtes impliqués doivent être synchronisées. Sinon, l’authentification échouera, car les tickets Kerberos ont une période de validité limitée.
  • Kerberos ne peut pas être utilisé lorsque les utilisateurs souhaitent se connecter à des services depuis des systèmes non fiables.
  • En cas d’utilisation de la cryptographie symétrique, la compromission de l’infrastructure d’authentification permettra à un attaquant d’usurper l’identité de n’importe quel utilisateur.
  • Chaque service réseau nécessitant un nom d’hôte différent aura besoin de son propre ensemble de clés Kerberos.

Comment fonctionne l’authentification Kerberos

kerberos

Un Centre de Distribution de Clés se compose d’un serveur d’authentification (AS) et d’un serveur de délivrance de tickets (TGS). TGT est un ticket de délivrance de tickets.

  1. L’utilisateur saisit le login et le mot de passe. L’ID utilisateur en clair va au serveur d’authentification (AS) avec une demande de services au nom de l’utilisateur.
  2. AS vérifie si le login de l’utilisateur est dans la base de données. Si des informations sur cet utilisateur sont disponibles, alors AS peut générer une clé secrète client selon l’ID et le mot de passe de l’utilisateur. AS envoie à l’utilisateur :
    • La clé de session client/TSG (cryptée avec la clé secrète client) ;
    • TGT incluant l’ID utilisateur, l’adresse réseau et la période de validité du ticket + clé de session client/TGS (cryptée avec la clé secrète TGS).
  3. L’utilisateur décode le premier message mais ne peut pas décoder le second, car il ne possède pas la clé secrète TGS. Le client envoie un message à TGS :
    • Le TGT reçu de AS + l’ID serveur + clé secrète TGS/client (cryptée avec la clé secrète TGS) ;
    • L’authentificateur incluant l’ID client et l’horodatage (crypté avec la clé de session client/TSG).
  4. TGS décrypte le premier message, obtient le TGT + clé de session TGS/client, avec laquelle il décrypte le second message. TGS vérifie si l’ID utilisateur du premier message correspond à l’ID du second message et si l’horodatage ne dépasse pas la période de validité du ticket. Dans le cas où tout est correct, TGS envoie à l’utilisateur :
    • L’ID utilisé, l’adresse réseau, la période de validation du ticket + clé de session client/serveur (cryptée avec la clé secrète du serveur) ;
    • La clé de session client/serveur (cryptée avec la clé secrète client/TGS).
  5. Le client envoie les éléments suivants au serveur auquel il tente d’accéder :
    • L’ID utilisé, l’adresse réseau, la période de validation du ticket + clé de session client/serveur (cryptée avec la clé secrète du serveur) ;
    • L’authentificateur incluant l’ID et l’horodatage (crypté avec la clé de session client/serveur).
  6. Le serveur cible déchiffre les messages de l’utilisateur, vérifie si l’ID utilisateur des deux messages a la même valeur et si la période de validité n’est pas dépassée, puis envoie au client le paramètre suivant pour confirmer son identité :
    • Horodatage + 1 (crypté avec la clé de session client/serveur).

Le client vérifie si la valeur de l’horodatage est horodatage + 1, ce qui montre la véritable identité du serveur. Si c’est le cas, le client peut faire confiance au serveur et commencer à travailler avec lui.

Applications modernes de Kerberos

Kerberos reste vital dans les environnements d’entreprise d’aujourd’hui. Les fournisseurs de services cloud intègrent Kerberos avec leurs services d’identité. L’authentification multifactorielle renforce la posture de sécurité de Kerberos. Les solutions de connexion unique utilisent Kerberos pour un accès fluide. De nombreuses applications conteneurisées prennent en charge l’authentification Kerberos. Les pipelines DevOps utilisent Kerberos pour des workflows CI/CD sécurisés. Les systèmes de gestion des appareils mobiles incorporent les principes de Kerberos. Les architectures Zero Trust s’appuient souvent sur les bases de Kerberos. Les solutions d’identité fédérée étendent Kerberos au-delà des frontières organisationnelles. La gestion automatique des certificats simplifie la maintenance de Kerberos. Les implémentations modernes répondent à de nombreuses limitations traditionnelles de Kerberos.

Configurer le protocole d’authentification Kerberos

Pour configurer le protocole Kerberos, vous devez effectuer les opérations suivantes :

  1. Créer un utilisateur Active Directory (vous pouvez en utiliser un existant à la place).
    • Connectez-vous au serveur contrôleur de domaine, cliquez sur Démarrer → Outils d’administration, et lancez Utilisateurs et ordinateurs Active Directory.
    • Si ce n’est pas déjà sélectionné, cliquez sur le nœud de votre domaine (domain.com).
    • Faites un clic droit sur Utilisateurs, pointez sur Nouveau, puis cliquez sur Utilisateur.
    • Dans la boîte de dialogue Nouvel Objet → Utilisateur, spécifiez les paramètres du nouvel utilisateur. Il peut s’agir d’un utilisateur régulier, il n’est pas nécessaire de fournir à l’utilisateur des privilèges supplémentaires. Le compte utilisateur doit être actif (la case Compte désactivé décochée), et le mot de passe pour le compte doit être perpétuel (la case Le mot de passe n’expire jamais cochée).
  2. Attribuer les noms principaux avec les clés cryptées sur la machine contrôleur de domaine. Pour les machines sous Linux, créez un fichier keytab contenant des paires de noms principaux Kerberos et de clés cryptées. Un fichier keytab est utilisé pour s’authentifier sur différents systèmes distants à l’aide de Kerberos sans entrer de mot de passe.
    • Créer un keytab avec la première entrée en utilisant l’outil ktpass : ktpass /princ user1_backend@DOMAIN.COM /mapuser user1_backend /pass /crypto all /ptype KRB5_NT_PRINCIPAL /out C:\Users\user1\Desktop\datasunrise.keytab -setupn
      /princLe nom du principal de service (SPN) au format suivant : @
      /mapuserMappe le nom du principal Kerberos, spécifié par le paramètre princ, sur le compte de domaine spécifié.
      /passSpécifie le mot de passe pour le nom d’utilisateur principal.
      /ptypeSpécifie le type de principal. Utilisez KRB5_NT_PRINCIPAL.
      /cryptoSpécifie les clés qui sont générées dans le fichier keytab.
      /outAttribuez un répertoire et un nom pour le fichier de sortie *.keytab.
      -setupnN’attribue pas le nom principal de l’utilisateur en même temps que le nom principal de service.
    • Créer une deuxième entrée dans le fichier keytab pour se connecter à la base de données en utilisant l’utilisateur Active Directory (AD). L’exemple donné est pour la création d’entrées keytab pour se connecter à une base de données Vertica à l’aide de l’utilisateur AD. Pour d’autres bases de données ou authentifications GUI, exécutez la même commande avec le nom de service correspondant dans le paramètre /princ. ktpass /out ./datasunrise.keytab /princ vertica/user1.domain.com@DOMAIN.COM /mapuser user1 /mapop set /pass /ptype KRB5_NT_PRINCIPAL /crypto RC4-HMAC-NT
    • Vous devrez transférer le fichier keytab sur la machine Linux.
  3. Configurer la délégation Active Directory.
    • Sur la machine contrôleur de domaine, allez dans Utilisateurs et ordinateurs Active Directory, localisez le compte de la machine que vous souhaitez configurer pour Kerberos.
    • Dans la section Propriétés, allez à l’onglet Délégation et sélectionnez Faire confiance à cet ordinateur pour la délégation vers les services spécifiés uniquement puis cliquez sur Ajouter.
    • Dans la fenêtre Utilisateurs et ordinateurs, spécifiez le compte utilisateur utilisé pour démarrer la base de données ou le nom du serveur où le SGBDR est installé.
    • Optionnellement, vous pouvez utiliser Vérifier les noms pour vérifier si un utilisateur ou un ordinateur spécifié existe et cliquez sur OK, puis sélectionnez le service requis et cliquez sur OK.
  4. Installer et configurer le client Kerberos sur votre machine. sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config

    Modifiez le fichier /etc/krb5.conf pour ajouter le nom de domaine complet, le nom du contrôleur de domaine et le paramètre realm

    Important : N’incluez aucun commentaire marqué par le signe “#” dans le fichier de configuration.

    [libdefaults]
        default_realm       =           DOMAIN.COM    # paramètre spécifique au domaine (nom de domaine complet)
        clockskew           =           300
        ticket_lifetime     =           1d
        forwardable         =           true
        proxiable           =           true
        dns_lookup_realm    =           true
        dns_lookup_kdc      =           true
    
    [realms]
        DOMAIN.COM = {
        kdc            =       hostname.domain.com   # paramètre spécifique au domaine (nom du contrôleur de domaine)
        admin_server   =       hostname.domain.com   # paramètre spécifique au domaine (nom du contrôleur de domaine)
        default_domain =       DOMAIN.COM            # paramètre spécifique au domaine (nom de domaine complet)
        }
    
    [domain_realm]
        .domain.com = DOMAIN.COM  # paramètre spécifique au domaine (nom de domaine pour les noms DNS)
        domain.com = DOMAIN.COM   # paramètre spécifique au domaine (nom de domaine pour les noms DNS)
    
    [appdefaults]
        pam = {
        ticket_lifetime         = 1d
        renew_lifetime          = 1d
        forwardable             = true
        proxiable               = false
        retain_after_close      = false
        minimum_uid             = 0
        debug                   = false
        }

Pour les machines sous Windows, il n’est pas nécessaire d’installer et de configurer le protocole Kerberos mais elles doivent être dans le domaine Active Directory. De plus, pour définir les noms principaux de service, la commande setspn est utilisée. Voici un exemple de configuration d’une machine Windows pour se connecter à la base de données MS SQL Server en utilisant les identifiants utilisateur AD.

L’adresse proxy doit correspondre au SPN enregistré pour le service MSSQLSvc. Utilisez l’outil SetSPN pour enregistrer les deux SPN requis pour le compte de l’ordinateur, pour lequel vous avez autorisé la délégation :

setspn -A MSSQLSvc/proxy-host:proxy-port proxy-host setspn -A MSSQLSvc/full-fqdn-proxy-host:proxy-port proxy-host

La liste de tous les SPN enregistrés peut être obtenue avec la commande suivante :

setspn -L proxy-host

Pour supprimer le proxy SPN, faites ce qui suit :

setspn -D MSSQLSvc/proxy-host:proxy-port proxy-host

Pour tester le schéma d’autorisation, exécutez la commande suivante après vous être connecté au serveur :

select auth_scheme from sys.dm_exec_connections where session_id=@@spid

Le résultat correspondra au schéma d’authentification utilisé par le serveur : SQL, NTLM ou KERBEROS.

Si vous obtenez l’erreur “Cannot generate SSPI context”, reportez-vous aux instructions de support Microsoft pour savoir comment résoudre le problème avec l’interface de support de sécurité.

DataSunrise peut fonctionner comme un proxy d’authentification pour les bases de données cloud et sur site afin de minimiser les risques d’accès non autorisé aux utilisateurs tout en maintenant les politiques d’authentification de Microsoft Active Directory et du protocole Kerberos.

Votre base de données ou stockage basé sur le cloud contient-il des informations sensibles nécessitant une protection ? Avez-vous besoin de vous conformer aux réglementations GDPR, SOX ou HIPAA ? Découvrez les solutions de pointe de DataSunrise pour l’audit des bases de données, la sécurité et le masquage des données. Essayez notre logiciel gratuitement ou planifiez une démo en ligne dès aujourd’hui.

Suivant

Créer une machine virtuelle DataSunrise sur Microsoft Azure

Créer une machine virtuelle DataSunrise sur Microsoft Azure

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Informations générales
Ventes
Service clientèle et support technique
Demandes de partenariat et d'alliance
Informations générales :
info@datasunrise.com
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
partner@datasunrise.com