9 Commits

Author SHA1 Message Date
mik2k2
7413539965
main, sshd: Refactor authentication, add IP throttling, improve passphrase auth
* Move password authentication handling into sshd/auth (fixes #394).

Password authentication is now completely handeled in Auth. The normal
keyboard-interactive handler checks if passwords are supported and asks
for them, removing the need to override the callbacks.

Brute force throttling is removed; I'd like to base it on IP address
banning, which requires changes to the checks.

I'm not sure, but I think timing attacks against the password are fixed:
- The hashing of the real password happens only at startup.
- The hashing of a provided password is something an attacker can do
themselves; It doesn't leak anything about the real password.
- The hash comparison is constant-time.

* refactor checks, IP-ban incorrect passphrases, renames

- s/assword/assphrase/, typo fixes
- bans are checked separately from public keys
- an incorrect passphrase results in a one-minute IP ban
- whitelists no longer override bans (i.e. you can get banned if you're 
whitelisted)

* (hopefully) final changes
2021-05-31 10:08:30 -04:00
Andrey Petrov
903d6c9420
/ban query support (#286)
For #285 

Turns out there were some bugs in Set, and I was using it incorrectly too.

The query syntax is a little awkward but couldn't find a nicer easy to parse format that worked with quoted string values.
2018-12-25 14:29:19 -05:00
Andrey Petrov
3535fb35bb tests: Fix ineffectual assigns 2016-09-01 17:01:47 -04:00
Andrey Petrov
1662ecd431 Fix travisci tests
Bind to localhost rather than all hosts.
2016-08-02 16:03:19 -04:00
Andrey Petrov
e6f7dba34e Progress: Unchan user 2016-07-24 16:17:02 -04:00
Andrey Petrov
ace2bc5124 sshd.SSHListener: Use HandlerFunc instead of terminal channel feed 2016-07-17 16:49:14 -04:00
Andrey Petrov
0c21486992 History backfill, also tests pass. 2015-01-18 18:55:47 -08:00
Andrey Petrov
d5626b7514 Abstracted sshd.Connection; Op works now. 2015-01-10 13:46:36 -08:00
Andrey Petrov
d8d5deac1c Use authorized_keys-style public keys rather than fingerprints.
Tests for whitelisting.
2015-01-10 12:44:06 -08:00