windows - cmdkey : what's the difference between generic credential target types?

标签 windows credentials

我重新发现了cmdkey.exe,我以前在Win2K域环境中经常使用它。从那时起我就退休了,因此域凭据功能可能不再有用。尽管如此,Windows 10/OneDrive 似乎可能会为我提供一些类似的便利功能,但可能没有 Kerberos 的安全性。我试图记住 cmdkey/list 列出的不同类型目标用户的含义。

几个月前我买了一台新的开发机器,现在 cmdkey/list 显示了很多存储的凭据(太糟糕了,它没有显示日期)。是否有文档可以帮助我解码包含的各种“目标”字符串?

例如,以下列出了一些目标类型(PII 已编辑):

LegacyGeneric:target=git:https://github.com
LegacyGeneric:target=git:https://<redacted>.visualstudio.com
LegacyGeneric:target=GitHub - https://api.github.com/<redacted>
LegacyGeneric:target=GoPro_Desktop_App
LegacyGeneric:target=GoPro_Entitlement_Credentials
LegacyGeneric:target=https://index.docker.io/v1/
LegacyGeneric:target=MicrosoftAccount:user=<redacted>@hotmail.com
LegacyGeneric:target=MSIX-Skype for Desktop/live:<redacted>
LegacyGeneric:target=OneDrive Cached Credential
LegacyGeneric:target=OneDrive Cached Credential Business - Business1
LegacyGeneric:target=vscodevscode.github-authentication/github.auth
LegacyGeneric:target=WindowsLive:(token):name=<redacted>@hotmail.com;serviceuri=scope=service::user.auth.xboxlive.com::mbi_ssl
LegacyGeneric:target=www.bing.com
WindowsLive:target=virtualapp/didlogical

由于我从未手动输入过这些内容,因此某些应用程序(例如 GoPro_Desktop_App)必须有。我想知道这些应用程序是否可以访问其他应用程序(例如 GitHub)创建的凭据?

最佳答案

cmdkey 工具仅管理凭据管理器中的凭据。如果您愿意,可以通过 control/name Microsoft.CredentialManager 查看 UI。

有几种类型。 LegacyGeneric 只是对任何非 Windows 集成身份验证特定的凭据的包罗万象,这意味着 Windows 无法用它做任何特殊的事情。这与 CRED_TYPE_DOMAIN_* 凭据相反,Windows 知道它们是特殊的,并且可以执行特殊的操作,例如将它们用于 Kerberos,或使用 Credential Guard 保护它们。全部the types are documented 。为了完整起见,实际上还有第三种类型,它是 credman 的逻辑后继者,即 PasswordVault蜜蜂。它在幕后使用相同的功能,但与 win32 API 分离。

Target 指示凭证的用途或用途。在一般情况下,它是任意值。在域情况下,它是与主机名或领域匹配的服务标识符,表示“连接到此服务时,您可以使用此凭据”。

因此不可能说出每个目标代表什么。其中大多数在名称上都相当明显。

CRED_TYPE_GENERIC = 1 (0x1)

该凭据是通用凭据。该凭证不会被任何特定的身份验证包使用。该凭证将被安全存储,但没有其他重要特征。

CRED_TYPE_DOMAIN_PASSWORD = 2 (0x2)

该凭据是密码凭据,特定于 Microsoft 的身份验证包。连接到指定目标时,NTLM、Kerberos 和 Negotiate 身份验证包将自动使用此凭据。

CRED_TYPE_DOMAIN_CERTIFICATE = 3 (0x3)

该凭据是证书凭据,特定于 Microsoft 的身份验证包。当连接到指定目标时,Kerberos、Negotiate 和 Schannel 身份验证包会自动使用此凭据。

CRED_TYPE_DOMAIN_VISIBLE_PASSWORD = 4 (0x4)

不再支持该值。 Windows Server 2003 和 Windows XP:该凭据是密码凭据,特定于 Microsoft 的身份验证包。连接到指定目标时,Passport 身份验证包将自动使用此凭据。

future 将定义更多值。应用程序的编写应允许其不理解的凭据类型。

CRED_TYPE_GENERIC_CERTIFICATE = 5 (0x5)

凭证是一个证书凭证,是一个通用身份验证包。 Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

CRED_TYPE_DOMAIN_EXTENDED = 6 (0x6)

扩展的 Negotiate 包支持该凭证。 Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

关于windows - cmdkey : what's the difference between generic credential target types?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67728083/

相关文章:

powershell - 如何在使用不同的凭据时列出所有计算机操作系统

authentication - SVN修改用户名

windows - Windows Server 2008 : same folder & SVN account, 不同 Active Directory 用户的权限和 SVN 更新

windows - Unix/Linux 系统易受泄漏全局内核对象的影响吗?

c# - 如何防止在 .NET 中弹出 Windows 安装对话框?

Java: "Cannot refer to a non-final variable inside an inner class [...]",OS X 和 Windows 之间的区别

windows - 如何从 Inno Setup 安装程序的注册表中获取 Office 的安装目录

windows-7 - Windows 7 凭据提供程序示例

eclipse - 如何指定 Eclipse 代理身份验证凭据?

docker - elasticsearch的默认用户名和密码是什么?