Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
powershell_password [2019/11/22 11:19] nekanpowershell_password [2021/03/05 16:04] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
 ====== Sécurisation d'un mot de passe ====== ====== Sécurisation d'un mot de passe ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/02/24 18:38//
  
 On peut être amené à fournir un mot de passe dans un script afin de d'obtenir les droits d'exécution ou tout simplement pour s'authentifier pour envoyer un mail. On pourrait écrire le mot de passe en clair dans le script mais en terme de sécurité, c'est pas terrible. En effet, n'importe qui visionnant le script pourra le voir et donc l'exploiter. Pour palier à ce problème, Powershell nous met à disposition les objets de type ''SecureString''. On peut être amené à fournir un mot de passe dans un script afin de d'obtenir les droits d'exécution ou tout simplement pour s'authentifier pour envoyer un mail. On pourrait écrire le mot de passe en clair dans le script mais en terme de sécurité, c'est pas terrible. En effet, n'importe qui visionnant le script pourra le voir et donc l'exploiter. Pour palier à ce problème, Powershell nous met à disposition les objets de type ''SecureString''.
Ligne 11: Ligne 11:
 ===== Chiffrement et stockage ===== ===== Chiffrement et stockage =====
  
-<code:ps1># On demande à d'entrer un mot de passe.+<sxh powershell># On demande à d'entrer un mot de passe.
 # On le convertit. # On le convertit.
 # On sauvegarde le tout dans un fichier. Le nom est purement arbitraire. # On sauvegarde le tout dans un fichier. Le nom est purement arbitraire.
  
 Read-Host "Entrez le mot de passe" -AsSecureString | ConvertFrom-SecureString | Out-File ".\data.crypt" Read-Host "Entrez le mot de passe" -AsSecureString | ConvertFrom-SecureString | Out-File ".\data.crypt"
-</code>+</sxh>
  
 A noter que l'on peut renforcer le chiffrement au niveau AES-192 en utilisant le paramètre ''-Key'' avec une table de 24 entier compris entre 0 et 255. La syntaxe est alors : A noter que l'on peut renforcer le chiffrement au niveau AES-192 en utilisant le paramètre ''-Key'' avec une table de 24 entier compris entre 0 et 255. La syntaxe est alors :
  
-<code:ps1>$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)+<sxh powershell>$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
 Read-Host "Entrez le mot de passe" -AsSecureString | ConvertFrom-SecureString -Key $Key | Out-File ".\data.crypt" Read-Host "Entrez le mot de passe" -AsSecureString | ConvertFrom-SecureString -Key $Key | Out-File ".\data.crypt"
-</code>+</sxh>
  
 Évidement, on peut aussi stocker notre table d'encryption dans un SecureString intermédiaire et la déchiffrer avant de l'utiliser pour chiffrer le mot de passe. Évidement, on peut aussi stocker notre table d'encryption dans un SecureString intermédiaire et la déchiffrer avant de l'utiliser pour chiffrer le mot de passe.
Ligne 30: Ligne 30:
 Chiffrer, c'est bien beau mais il faut pouvoir déchiffrer ensuite pour pouvoir utiliser le contenu protégé. pour cela, on utilisera la cmdlet ConvertTo-SecureString : Chiffrer, c'est bien beau mais il faut pouvoir déchiffrer ensuite pour pouvoir utiliser le contenu protégé. pour cela, on utilisera la cmdlet ConvertTo-SecureString :
  
-<code:ps1># Dans le cas d'une encryption simple+<sxh powershell># Dans le cas d'une encryption simple
 $MDPCryptFile = ".\data.crypt" $MDPCryptFile = ".\data.crypt"
 $SecureStringPassword = Get-Content -Path $MDPCryptFile | ConvertTo-SecureString $SecureStringPassword = Get-Content -Path $MDPCryptFile | ConvertTo-SecureString
Ligne 40: Ligne 40:
  
 # Dans les deux cas, le mot de passe crypté précédemment sera décrypté et stocké dans la variable $SecureStringPassword sous la forme d'un objet SecureString # Dans les deux cas, le mot de passe crypté précédemment sera décrypté et stocké dans la variable $SecureStringPassword sous la forme d'un objet SecureString
-</code>+</sxh>
  
 A noter aussi qu'un objet SecureString peut être crypté à l'aide d'un certificat, ce qui renforce d'autant plus sa sécurité. A noter aussi qu'un objet SecureString peut être crypté à l'aide d'un certificat, ce qui renforce d'autant plus sa sécurité.
- 
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/02/24 18:38// 
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
  • powershell_password.1574417951.txt.gz
  • Dernière modification : 2019/11/22 09:19
  • (modification externe)