Archive for March 8th, 2012

Breaking Wi-Fi Passwords: Exploiting the Human Factor

Thursday, March 8th, 2012

Attacking Wi-Fi passwords is near hopeless if a wireless hotspot is properly secured. Today’s wireless security algorithms such as WPA are using cryptographically sound encryption with long passwords. The standard enforces the use of passwords that are at least 8 characters long. Encryption used to protect wireless communications is tough and very slow to break. Brute-forcing WPA/WPA2 PSK passwords remains a hopeless enterprise even if a horde of GPU’s is employed. Which is, in general, good for security – but may as well inspire a false sense of security if a weak, easy to guess password is selected.

Elcomsoft Wireless Security Auditor is one tool to test how strong the company’s Wi-Fi passwords are. After checking the obvious vulnerabilities such as open wireless access points and the use of obsolete WEP encryption, system administrators  will use Wireless Security Auditor that tries to ‘guess’ passwords protecting the company’s wireless traffic. In previous versions, the guessing was limited to certain dictionary attacks with permutations. The new version gets smarter, employing most of the same guessing techniques that are likely to be used by an intruder.

Humans are the weakest link in wireless security. Selecting a weak, easy to guess password easily overcomes all the benefits provided by extensive security measures implemented in WPA/WPA2 protection. In many companies, employees are likely to choose simple, easy to remember passwords, thus compromising their entire corporate network.

The New Attacks
The new attacks help Elcomsoft Wireless Security Auditor recover weak passwords, revealing existing weaknesses and vulnerabilities in companies’ wireless network infrastructure.

Word Attack
If it’s known that a password consists of a certain word, the Word attack will attempt to recover that password by trying heavily modified versions of that word. This attack only has two options: you can set the source word and you can disable all permutations except changing the letter case. In addition, we can apply permutations to the source word first, forming a small dictionary; then perform a full dictionary attack, applying various permutations to all words from the newly formed list.

Mask Attack
Certain passwords or password ranges may be known. The mask attack allows creating a flexible mask, brute-forcing the resulting limited combination of passwords very quickly. The masks can be very flexible. One can specify placeholders for static characters, letter case, as well as full or limited range of special characters, digits or letters. Think of the Mask attack as an easy (and very flexible) way to check all obvious passwords from Password000 to Password999.

Combination Attack
You have two dictionaries. We combine each word from one dictionary with every word from another. By default, the words are combined as is, but you can increase the number of possible combinations by allowing delimiters (such as space, underscore and other signs), checking upper/lower case combinations or using extra mutations.

Hybrid Attack
This is one of the more interesting attacks out there. In a sense, Hybrid attacks come very close to how real human intruders think. The Hybrid attacks integrates ElcomSoft’s experience in dealing with password recovery. We’ve seen many (think thousands) weak passwords, and were able to generalize ways people are making them. Dates, names, dictionary words, phrases and simple character substitutions are the most common things folks do to make their passwords ‘hard to guess’. The new Hybrid attack will handle the ‘hard’ part.

Technically, the Hybrid attack uses one or more dictionaries with common words, and one or more .rul files specifying mutation rules. We’re supplying a few files with the most commonly used mutation rules:

Common.rul – integrates the most commonly used mutations. In a word, we’ve seen those types of passwords a lot, so we were able to generalize and derive these rules.
Dates.rul – pretty much what it says. Combines dictionary words with dates in various formats. This is a pretty common way to construct weak passwords.
L33t.rul – the “leet” lingo. Uses various combinations of ASCII characters to replace Latin letters. C001 hackers make super-strong passwords with these… It takes minutes to try them all.
Numbers.rul – mixes dictionary words with various number combinations.

ElcomSoft Half-Switches to OpenCL

Thursday, March 8th, 2012

OpenCL_Artwork

ElcomSoft has recently announced the switch to OpenCL, an open cross-platform architecture offering universal, future-proof accessibility to a wide range of acceleration hardware. We’re actively using GPU acceleration for breaking passwords faster. No issues with NVIDIA hardware, but working with AMD devices has always been a trouble.

So we jumped in, embedding OpenCL support into Elcomsoft Phone Password Breaker and Wireless Security Auditor. As an immediate benefit, we were able to add long-awaited support for AMD’s latest generation of graphic accelerators, the AMD Radeon™ HD 7000 Series currently including AMD Radeon™ HD 7750, 7770, 7950, and 7970 models. Headache-free support for future generations of acceleration hardware is icing on the cake.

OpenCL_Benchmark

After switching to OpenCL, we further optimized acceleration code for AMD hardware, squeezing up to 50% more speed out of the same boards. This isn’t something to sniff at, as even a few per cents of performance can save hours when breaking long, complex passwords.

OpenCL vs. CUDA

AMD goes OpenCL. What about NVIDIA? Technically, we could have handled NVIDIA accelerators the same way, via OpenCL (it’s a cross-platform architecture, remember?) In that case, we would be getting a simpler, easier to maintain product line with a single acceleration technology to support.

However, we’re not making a full commitment just yet. While some of us love open-source, publicly maintained cross-platform solutions, these are not always the best thing to do in commercial apps. And for a moment here, we’re not talking about licensing issues. Instead, we’re talking sheer speed. While OpenCL is a great platform, offering future-proof, headache-free support of future acceleration hardware, it’s still an extra abstraction layer sitting between the hardware and our code. It’s great when we’re talking AMD, a company known for a rather inconsistent developer support for its latest hardware; there’s simply no alternative. If we wanted access to their latest state-of-the-art graphic accelerators such as AMD Radeon™ HD 7000 Series boards, it was OpenCL or nothing.

We didn’t have such issues with AMD’s main competitor, NVIDIA. NVIDIA was the first player on this arena, being the first to release graphical accelerators capable of fixed-point calculations. It was also the first to offer non-gaming developers access to sheer computational power of its GPU units by releasing CUDA, an application programming interface enabling developers use its hardware in non-graphical applications. From the very beginning and up to this day, CUDA maintains universal compatibility among the many generations of NVIDIA graphical accelerators. The same simply that can’t be said about AMD.

So is it the “if it ain’t broke, don’t fix it” approach? Partly, but that’s just one side of the coin. CUDA simply offers better performance than OpenCL. The speed benefit is slight, but it is there, and it’s significant enough to get noticed. We want to squeeze every last bit of performance out of our products and computers’ hardware, and that’s the real reason we’ll be staying with CUDA for as long as it’s supported – or until OpenCL offers performance that can match that of CUDA.

Did we make the switch half-heartedly? Nope. We’re enthusiastic about the future of OpenCL, looking forward to run our software on new acceleration platforms. But we don’t want to abandon our heritage code – especially if it performs better than its replacement!