diff options
author | Damien Miller <djm@mindrot.org> | 2008-11-05 16:20:46 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2008-11-05 16:20:46 +1100 |
commit | 01ed2272a1545336173bf3aef66fbccc3494c8d8 (patch) | |
tree | a77f115d3b8964f0b6fcc604f9dea87d15143d7e /readconf.c | |
parent | 6f66d34308af787613d5525729953665f26367ee (diff) |
- djm@cvs.openbsd.org 2008/11/04 08:22:13
[auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h]
[readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5]
[sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c]
[Makefile.in]
Add support for an experimental zero-knowledge password authentication
method using the J-PAKE protocol described in F. Hao, P. Ryan,
"Password Authenticated Key Exchange by Juggling", 16th Workshop on
Security Protocols, Cambridge, April 2008.
This method allows password-based authentication without exposing
the password to the server. Instead, the client and server exchange
cryptographic proofs to demonstrate of knowledge of the password while
revealing nothing useful to an attacker or compromised endpoint.
This is experimental, work-in-progress code and is presently
compiled-time disabled (turn on -DJPAKE in Makefile.inc).
"just commit it. It isn't too intrusive." deraadt@
Diffstat (limited to 'readconf.c')
-rw-r--r-- | readconf.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/readconf.c b/readconf.c index 7f7bbfee2..ba70d9da0 100644 --- a/readconf.c +++ b/readconf.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readconf.c,v 1.170 2008/11/03 02:44:41 stevesk Exp $ */ | 1 | /* $OpenBSD: readconf.c,v 1.171 2008/11/04 08:22:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -130,7 +130,7 @@ typedef enum { | |||
130 | oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, | 130 | oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, |
131 | oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, | 131 | oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, |
132 | oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, | 132 | oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, |
133 | oVisualHostKey, | 133 | oVisualHostKey, oZeroKnowledgePasswordAuthentication, |
134 | oDeprecated, oUnsupported | 134 | oDeprecated, oUnsupported |
135 | } OpCodes; | 135 | } OpCodes; |
136 | 136 | ||
@@ -228,6 +228,13 @@ static struct { | |||
228 | { "localcommand", oLocalCommand }, | 228 | { "localcommand", oLocalCommand }, |
229 | { "permitlocalcommand", oPermitLocalCommand }, | 229 | { "permitlocalcommand", oPermitLocalCommand }, |
230 | { "visualhostkey", oVisualHostKey }, | 230 | { "visualhostkey", oVisualHostKey }, |
231 | #ifdef JPAKE | ||
232 | { "zeroknowledgepasswordauthentication", | ||
233 | oZeroKnowledgePasswordAuthentication }, | ||
234 | #else | ||
235 | { "zeroknowledgepasswordauthentication", oUnsupported }, | ||
236 | #endif | ||
237 | |||
231 | { NULL, oBadOption } | 238 | { NULL, oBadOption } |
232 | }; | 239 | }; |
233 | 240 | ||
@@ -412,6 +419,10 @@ parse_flag: | |||
412 | intptr = &options->password_authentication; | 419 | intptr = &options->password_authentication; |
413 | goto parse_flag; | 420 | goto parse_flag; |
414 | 421 | ||
422 | case oZeroKnowledgePasswordAuthentication: | ||
423 | intptr = &options->zero_knowledge_password_authentication; | ||
424 | goto parse_flag; | ||
425 | |||
415 | case oKbdInteractiveAuthentication: | 426 | case oKbdInteractiveAuthentication: |
416 | intptr = &options->kbd_interactive_authentication; | 427 | intptr = &options->kbd_interactive_authentication; |
417 | goto parse_flag; | 428 | goto parse_flag; |
@@ -1054,6 +1065,7 @@ initialize_options(Options * options) | |||
1054 | options->local_command = NULL; | 1065 | options->local_command = NULL; |
1055 | options->permit_local_command = -1; | 1066 | options->permit_local_command = -1; |
1056 | options->visual_host_key = -1; | 1067 | options->visual_host_key = -1; |
1068 | options->zero_knowledge_password_authentication = -1; | ||
1057 | } | 1069 | } |
1058 | 1070 | ||
1059 | /* | 1071 | /* |
@@ -1190,6 +1202,8 @@ fill_default_options(Options * options) | |||
1190 | options->permit_local_command = 0; | 1202 | options->permit_local_command = 0; |
1191 | if (options->visual_host_key == -1) | 1203 | if (options->visual_host_key == -1) |
1192 | options->visual_host_key = 0; | 1204 | options->visual_host_key = 0; |
1205 | if (options->zero_knowledge_password_authentication == -1) | ||
1206 | options->zero_knowledge_password_authentication = 0; | ||
1193 | /* options->local_command should not be set by default */ | 1207 | /* options->local_command should not be set by default */ |
1194 | /* options->proxy_command should not be set by default */ | 1208 | /* options->proxy_command should not be set by default */ |
1195 | /* options->user will be set in the main program if appropriate */ | 1209 | /* options->user will be set in the main program if appropriate */ |