Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Windows Credential Manager cho phép lưu thông tin đăng nhập (tên người dùng và mật khẩu) để truy cập tài nguyên mạng, trang web và ứng dụng. Với Windows Credential Manager, bạn có thể kết nối với tài nguyên từ xa tự động mà không cần nhập mật khẩu. Các ứng dụng có thể tự truy cập Credential Manager và sử dụng mật khẩu đã lưu.

Sử dụng Credential Manager để lưu mật khẩu trong Windows

Credential Manager xuất hiện từ Windows 7 và được định vị là nơi khá an toàn để giữ mật khẩu của bạn.

Credential Manager trên Windows 10 có thể giữ các loại tài khoản sau:

  • Windows Credentials – thông tin đăng nhập để đăng nhập Windows hoặc truy cập máy tính từ xa, mật khẩu đã lưu cho kết nối RDP, mật khẩu cho trang web có hỗ trợ xác thực Windows tích hợp, v.v; Windows Credential Manager không lưu thông tin đăng nhập để đăng nhập tự động Windows hoặc Cached Credentials của domain.
  • Certificate-Based Credentials – để xác thực bằng thẻ thông minh;
  • Generic Credentials – được sử dụng bởi ứng dụng bên thứ ba tương thích với Credential Manager;
  • Web Credentials – mật khẩu đã lưu trong Edge và IE, ứng dụng Microsoft (MS Office, Teams, Outlook, Skype, v.v.).

Ví dụ, nếu bạn bật tùy chọn "Save Password" khi truy cập thư mục chia sẻ mạng, mật khẩu bạn nhập sẽ được lưu trong Credential Manager.

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Cùng cách đó, mật khẩu để kết nối với máy chủ RDP/RDS từ xa được lưu trong client Remote Desktop Connection (mstsc.exe).

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Cũng vậy, Credential Manager giữ mật khẩu người dùng nếu chúng được lưu bằng lệnh runas /savecred.

Bạn có thể truy cập Credential Manager trong Windows 10 từ Control Panel kinh điển (Control Panel\User Accounts\Credential Manager).

Như bạn thấy, có hai mật khẩu trong Credential Manager chúng tôi đã lưu trước đó.

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Mật khẩu đã lưu cho kết nối RDP được chỉ định ở định dạng TERMSRV\hostname.

Ở đây bạn có thể thêm thông tin đăng nhập đã lưu, chỉnh sửa nó (bạn không thể xem mật khẩu đã lưu trong giao diện đồ họa), hoặc xóa bất kỳ mục nào.

Cũng có thể sử dụng giao diện kinh điển của Stored User Names and Passwords để quản lý mật khẩu đã lưu. Để gọi nó, hãy chạy lệnh dưới đây:

rundll32.exe keymgr.dll,KRShowKeyMgr

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Ở đây bạn cũng có thể quản lý thông tin đăng nhập đã lưu, và nó có một số tính năng sao lưu và khôi phục cho Credential Manager (bạn có thể sử dụng chúng để chuyển database Credential Manager sang máy tính khác).

Công cụ vaultcmd được dùng để quản lý Credential Manager từ command prompt. Ví dụ, để hiển thị danh sách Windows Credentials đã lưu, hãy chạy lệnh này:

vaultcmd /listcreds:"Windows Credentials"

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Credential schema: Windows Domain Password Credential Resource: Domain:target=mun-dc01 Identity: RESDOM\j.brion Hidden: No Roaming: No Property (schema element id,value): (100,3) Property (schema element id,value): (101,SspiPfAc)

Lệnh sau sẽ xóa tất cả mật khẩu RDP đã lưu khỏi Credential Manager:

For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H

Tất cả mật khẩu đã lưu được lưu trữ trong Windows Vault. Windows Vault là kho bảo vệ để giữ bí mật, mật khẩu và thông tin nhạy cảm khác của người dùng. Trong Windows Vault, dữ liệu được cấu trúc và trông như một tập hợp các mục thuộc về một Vault schema. Tập hợp khóa mã hóa cho các mục Windows Vault được lưu trong file Policy.vpol.

Đối với người dùng domain, nó nằm ở %userprofile%\AppData\Roaming\Microsoft\Vault.

Đối với người dùng cục bộ, bạn có thể tìm thấy nó ở %userprofile%\AppData\Local\Microsoft\Vault.

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Dịch vụ VaultSvc phải đang chạy khi sử dụng Credential Manager:

Get-Service VaultSvc

Nếu dịch vụ bị vô hiệu hóa, bạn sẽ thấy lỗi sau khi cố gắng truy cập Credential Manager:

Credential Manager Error The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service. Error code: 0x800706B5 Error Message: The interface is unknown.

Nếu bạn muốn ngăn người dùng lưu mật khẩu mạng trong Credential Manager, hãy bật tùy chọn GPO Network access: Do not allow storage of passwords and credentials for network authentication trong Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options.

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Sau đó, nếu người dùng cố gắng lưu mật khẩu vào kho Windows Vault, họ sẽ thấy lỗi sau:

Credential Manager Error Unable to save credentials. To save credentials in this vault, check your computer configuration. Error code: 0x80070520 Error Message: A specified logon session does not exist. It may already have been terminated.

Truy cập Windows Credential Manager từ PowerShell

Windows không có cmdlet tích hợp sẵn để truy cập PasswordVault store từ PowerShell. Nhưng bạn có thể sử dụng module CredentialManager từ PowerShell Gallery.

Cài đặt module:

Install-Module CredentialManager

Bạn có thể hiển thị danh sách cmdlet trong module CredentialManager:

Get-Command -module CredentialManager

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Module chỉ có 4 cmdlet:

  • Get-StoredCredential – để lấy thông tin đăng nhập từ Windows Vault;
  • Get-StrongPassword – để tạo mật khẩu ngẫu nhiên;
  • New-StoredCredential – để thêm thông tin đăng nhập;
  • Remove-StoredCredential – để xóa thông tin đăng nhập.

Để thêm thông tin đăng nhập mới vào Windows Credential Manager, hãy chạy lệnh này:

New-StoredCredential -Target 'woshub' -Type Generic -UserName 'maxbak@woshub.com' -Password 'Pass321-b' -Persist 'LocalMachine'

Quản lý mật khẩu đã lưu bằng Windows Credential Manager

Để kiểm tra xem có thông tin đăng nhập người dùng đã lưu nào trong Credential Manager không:

Get-StoredCredential -Target woshub

Bạn có thể sử dụng mật khẩu đã lưu từ Credential Manager trong script PowerShell của mình. Ví dụ, tôi có thể lấy tên và mật khẩu đã lưu từ Windows Vault dưới dạng đối tượng PSCredential và kết nối với Exchange Online từ PowerShell:

$psCred = Get-StoredCredential -Target "woshub"
Connect-MSolService -Credential $psCred

Cũng lưu ý module PowerShell Secret Management mới mà bạn có thể sử dụng để lưu trữ an toàn mật khẩu trong Windows. Nó hỗ trợ một số vault mật khẩu: KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden.

Để xóa thông tin đăng nhập khỏi Windows Vault, hãy chạy lệnh này:

Remove-StoredCredential -Target woshub

Bạn không thể hiển thị mật khẩu dưới dạng plain text bằng công cụ CLI tích hợp sẵn. Nhưng bạn có thể sử dụng tiện ích kiểu Mimikatz để lấy mật khẩu đã lưu từ credman dưới dạng plain text (xem ví dụ ở đây).