Skip to content

Commit 475fff5

Browse files
Add information about MutualAuthenticationError to README.rst
Signed-off-by: Robbie Harwood <[email protected]> Resolves: #15
1 parent 7e6312c commit 475fff5

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

README.rst

+20
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,26 @@ the 401 response.
3232
Mutual Authentication
3333
---------------------
3434

35+
Mutual authentication is a poorly-named feature of the GSSAPI which doesn't
36+
provide any additional security benefit to most possible uses of
37+
requests_gssapi. Practically speaking, in most mechanism implementations
38+
(including krb5), it requires another round-trip between the client and server
39+
during the authentication handshake. Many clients and servers do not properly
40+
handle the authentication handshake taking more than one round-trip. If you
41+
encounter a MutualAuthenticationError, this is probably why.
42+
43+
So long as you're running over a TLS link whose security guarantees you trust,
44+
there's no benefit to mutual authentication. If you don't trust the link at
45+
all, mutual authentication won't help (since it's not tamper-proof, and GSSAPI
46+
isn't being used post-authentication. There's some middle ground between the
47+
two where it helps a small amount (e.g., passive adversary over
48+
encrypted-but-unverified channel), but for Negotiate (what we're doing here),
49+
it's not generally helpful.
50+
51+
For a more technical explanation of what mutual authentication actually
52+
guarantees, I refer you to rfc2743 (GSSAPIv2), rfc4120 (krb5 in GSSAPI),
53+
rfc4178 (SPNEGO), and rfc4559 (HTTP Negotiate).
54+
3555
REQUIRED
3656
^^^^^^^^
3757

0 commit comments

Comments
 (0)