annotate dbhelpers.c @ 1790:42745af83b7d

Introduce extra delay before closing unauthenticated sessions To make it harder for attackers, introduce a delay to keep an unauthenticated session open a bit longer, thus blocking a connection slot until after the delay. Without this, while there is a limit on the amount of attempts an attacker can make at the same time (MAX_UNAUTH_PER_IP), the time taken by dropbear to handle one attempt is still short and thus for each of the allowed parallel attempts many attempts can be chained one after the other. The attempt rate is then: "MAX_UNAUTH_PER_IP / <process time of one attempt>". With the delay, this rate becomes: "MAX_UNAUTH_PER_IP / UNAUTH_CLOSE_DELAY".
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Wed, 15 Feb 2017 13:53:04 +0100
parents e75dab5bec71
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1283
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
1 #include "dbhelpers.h"
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
2 #include "includes.h"
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
3
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
4 /* Erase data */
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
5 void m_burn(void *data, unsigned int len) {
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
6
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
7 #if defined(HAVE_MEMSET_S)
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
8 memset_s(data, len, 0x0, len);
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
9 #elif defined(HAVE_EXPLICIT_BZERO)
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
10 explicit_bzero(data, len);
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
11 #else
1575
e75dab5bec71 some linting after fuzz merge (#60)
François Perrad <francois.perrad@gadz.org>
parents: 1568
diff changeset
12 /* This must be volatile to avoid compiler optimisation */
1374
4b1a807a3188 Just use memset, it should'be be optimised out in a separate file
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
13 volatile void *p = data;
1575
e75dab5bec71 some linting after fuzz merge (#60)
François Perrad <francois.perrad@gadz.org>
parents: 1568
diff changeset
14 memset((void*)p, 0x0, len);
1283
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
15 #endif
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
16 }
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
17
3017bc7d6238 move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
18