我知道How to Respond to an Authentication Challenge
就像我们NTLM Authentication
一样,因为有3个选项。
但是我想知道这里的想法,当我们选择第一个选项Provide authentication credentials
时,我们会传递用户名和密码URLCredential
是否存在凭据泄漏的可能性,是否可以通过凭证,屏幕背后发生了什么? Apple
网络API如何将凭据发送到服务器?
是的,我们可以设置服务器域,故障计数等策略,但从安全角度来看是否安全?来自中间人攻击(MIMA
)或其他什么?
答案 0 :(得分:2)
也许我发布问题的方式尚不清楚,但我从应用凭据安全的角度来看NTLM Authentication并且经过大量的Google后,我发现,NTLM是如何工作的,而且非常有趣看到该客户端不与服务器共享密码。以下是步骤。
因此,有趣的部分是网络API不与服务器共享密码,这意味着它非常安全。
我希望它会帮助其他人For More。
答案 1 :(得分:1)
有多种类型的挑战,您的问题的答案取决于您所谈论的挑战类型。每个挑战都有一个保护空间,它基本上可以说明您正在响应的挑战类型。
回答您关于最常见保护空间的问题:
NSURLAuthenticationMethodHTTPBasic
):您传递的凭据以明文形式发送到服务器(HTTP)或通过会话密钥(HTTPS)加密。NSURLAuthenticationMethodHTTPDigest
):您传递的凭据使用服务器提供的随机数进行加密散列,并且只会通过网络发送生成的散列令牌。NSURLAuthenticationMethodNTLM
):您传递的凭据使用服务器发送的随机数进行加密哈希处理,并且只会通过网络发送生成的哈希令牌。NSURLAuthenticationMethodClientCertificate
):证书将发送到服务器,但不会发送到私钥数据。客户端使用私钥对先前的TLS握手数据进行签名,以使服务器验证客户端是否确实拥有与该证书关联的私钥。NSURLAuthenticationMethodServerTrust
):如果您传递从服务器获得的证书,您必须先验证它,否则您有效地减少了HTTP的安全级别(即任何服务器都可以发送任何证书,并且在与服务器通信时,您会说要信任该证书)。上面的列表涵盖了最常见的保护空间。 Kerberos是它自己的动物,我对它的运作方式一无所知。此外,还有“表单”保护空间,它只是自定义身份验证的占位符,您可以在应用程序代码的各个部分中使用,但实际上并未以任何有意义的方式支持。
值得注意的是,如果攻击者可以更改传输中的数据,则Basic,Digest和NTLM身份验证不会提供针对中间人攻击的保护,因为提供的身份验证令牌不依赖于请求的其余部分以任何方式。因此,这些仅适用于加密通道(HTTPS)。