Le renforcement de la politique de gestion des mots de passe permet d’éviter les mots de passe très faibles, jamais renouvelés, par défaut ou identiques entre plusieurs comptes.
Dans une base de données Oracle, chaque utilisateur dispose d’un et d’un seul PROFILE.
Seul le PROFILE DEFAULT existe à la création de l’instance et n’impose aucune limite concernant la longueur, la complexité ou la durée d’expiration des mots de passe.
SOLUTION COURANTE
La solution courante consiste à exécuter le script $ORACLE_HOME/rdbms/admin/utlpwdmg.sql qui met en place, sur le PROFILE DEFAULT, un ensemble de règles pour la protection des mots de passe.
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
INACTIVE_ACCOUNT_TIME UNLIMITED
PASSWORD_ROLLOVER_TIME 0
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
Cette solution basique présente quelques limites:
- Le PROFILE est le même pour les comptes sensibles et non sensibles;
- La production peut être arrêtée durant le déploiement du nouveau mot de passe;
- Un administrateur peut réutiliser le même mot de passe indéfiniment.
RECOMMANDATION
Nous vous recommandons de créer deux PROFILE supplémentaires, l’un pour les comptes applicatifs et l’autre pour les comptes des administrateurs, afin de laisser le PROFILE DEFAULT aux comptes standards.
Renforcement du PROFILE DEFAULT
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 5
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1
PASSWORD_ROLLOVER_TIME 0
SESSIONS_PER_USER 3
INACTIVE_ACCOUNT_TIME 30
CONNECT_TIME 120
IDLE_TIME 15
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
Création du PROFILE applicafif
CREATE PROFILE PRO_APPLI LIMIT
PASSWORD_LIFE_TIME UNLIMITED
CONNECT_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED
IDLE_TIME UNLIMITED
SESSIONS_PER_USER UNLIMITED
PASSWORD_REUSE_MAX 1
PASSWORD_ROLLOVER_TIME 1/24;
- Avec le paramètre PASSWORD_ROLLOVER_TIME à 1/24, l’administrateur de base de données dispose d’une heure pour déployer le nouveau mot de passe sur toutes les applications concernées, sans qu’elles ne signalent d’erreur d’authentification lors du changement de mot de passe d’un compte de ce PROFILE.
- Avec le paramètre FAILED_LOGIN_ATTEMPTS à UNLIMITED, il est recommandé de créer des mots de passe non retenables et très complexes pour les comptes de ce PROFILE.
Création du PROFILE ADMIN
CREATE PROFILE PRO_ADMIN LIMIT
FAILED_LOGIN_ATTEMPTS 3
SESSIONS_PER_USER 2
INACTIVE_ACCOUNT_TIME 180
CONNECT_TIME 60
IDLE_TIME 5
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
✨ EN BONUS
Le paramètre PASSWORD_ROLLOVER_TIME permet de faire coexister l’ancien et le nouveau mot de passe d’un utilisateur pendant une période contrôlée.
Il s’agit de l’un des mécanismes les plus efficaces pour assurer une rotation de mot de passe sans interruption de service.
Cela permet d’éviter l’arrêt des applications lors du changement de mot de passe.
Les applications continuent à fonctionner avec l’ancien mot de passe jusqu’à ce qu’elles basculent vers le nouveau, ce qui élimine les coupures imprévues en production.
Il permet également d’identifier les applications qui n’ont pas encore été mises à jour.
Grâce aux alertes générées, vous pouvez rapidement repérer :
- les services encore connectés avec l’ancien mot de passe.
- les scripts ou jobs qui n’ont pas été modifiés ;
- les composants oubliés dans la chaîne applicative.
Et n’oubliez pas…
Une politique de mots de passe bien définie ne sert à rien si elle n’est pas appliquée aux comptes concernés.
📌 Faites l’inventaire de vos comptes et appliquez-leur les PROFILE adéquats.
