Showing posts with label dictionary attacks. Show all posts
Showing posts with label dictionary attacks. Show all posts

Sunday, 6 January 2013

Defenses against dictionary attacks

Salting of password hashes defeats offline dictionary attacks based on precomputation, and thus foils our hybrid attack.

Using an inefficient cipher slows the attacker down by a constant factor, and this is in
fact done in the UNIX crypt() implementation. This technique, however, can only yield
a limited benefit because of the range of platforms that the client may be running.
Javascript implementations in some browsers, for example, are extremely slow. To
improve password security and concluded that the only technique offering a
substantial long term improvement is for users to increase the entropy of the
passwords they generate.

There is also a large body of work, subsequent to the above survey, on password
authenticated cryptographic protocols and session key generation from human
memorable passwords.The objective of these protocols is to defeat offline dictionary
attacks on protocols where participants share a low-entropy secret. One drawback
of password-authenticated key exchange (PAKE) protocols is that they typically
rely on unrealistic assumptions such as multiple noncooperating servers or both
parties storing the password in plaintext (one exception is the PAK-X protocol).
Storing client passwords on the server is very dangerous in practice, yet even for
“provably secure” PAKE protocols, security proofs implicitly assume that the
server cannot be compromised.

Furthermore, its attacks apply in a limited sense even to PAKE protocols
protocols because of Markovian filters also make online dictionary attacks
much faster. Thus, our attacks call into our question whether it is ever
meaningful for humans to generate their own character-sequence passwords.
The situation can only become worse with time because hardware power grows
exponentially while human information processing capacity stays constant.
Considering that there is a fundamental conflict between memorability and high
subjective randomness, our work could have implications for the viability of
passwords as an authentication mechanism in the long run.

Monday, 9 July 2012

Use of CAPTCHA

CAPTCHA stands for Completely Automated Public Turing Test to Tell
Computers and Humans Apart (Pinkas and Sander, 2002). In this scheme,
some challenge is put forward to the user while attempting to login. It has
been established that these challenges, for example a distorted and
cluttered image of a word with textured background, are easy for humans
to respond but rather difficult for computers (an online attacker is
essentially a programmed computer) to answer. Until recently, this scheme
was an effective countermeasure against online dictionary attacks.
However, due to recent developments in Artificial Intelligence and Computer
Vision, programs are available which can quickly interpret and answer these
challenges. EZ-Gimpy and Gimpy for example are word based CAPTCHAs
that have been broken by Greg Mori and Jitendra Malik of UC Berkeley
Computer Vision Group (Berkeley, 2004). Due to these developments, even
CAPTCHA is not considered to be a secure technique to prevent online
dictionary attacks.



A few major web based service providers who were earlier using the
CAPTCHA technique have now resorted to highly inconvenient account
locking in order to counter online dictionary attacks. Clearly, a better and
elegant method for solving this pressing problem is required.