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
77143ad1e6 main: Add --unsafe-passphrase 2020-04-15 14:19:28 -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
Jesse Shapiro
7781d5b135 sshd: Add SHA256 prefix to pubkey fingerprints (#220)
Fixes #214
2016-10-22 09:49:26 -04:00
Andrey Petrov
3c4e6994c2 chat.Channel->chat.Room, /ban, /whois, chat.User.Identifier
- Renamed chat.Channel -> chat.Room
- /ban works, supports IP also
- /whois works
- chat.User now accepts an Identifier interface rather than name
- Tweaked rate limiting
2015-01-16 21:53:22 -08:00
Andrey Petrov
11e92b5718 Fixed key storage. 2015-01-10 17:27:55 -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
Andrey Petrov
6a662bf358 Channel Member now wrapping User with metadata, new Auth struct. 2015-01-01 18:40:10 -08:00
Andrey Petrov
59ac8bb037 sshd abstraction might be done, untested. 2014-12-22 14:26:26 -08:00