We have built up a security instructure using PKI (Public Key Infastructure) where digital certificates contain the public key on an entity, and where the entity digital signs something, such as an email, a secure tunnel. or identifies a Web site. Unfortunately few people know how to use them, and they can be easily tricked into trusting fake version. Few people, for example, known that there are self-signed certificates, which have little in the way of crediability in identifying anything.
Another major problem is that a stolen private key requires that all the browsers and systems need to revoke their current certificates, but this often doesn't happen. Imagine, for example, if Microsoft lost their private key, then users would not know if they were using valid Microsoft software or not, as the software components are signed with Microsoft's private key. Luckily companies like Microsoft know how to manage their keys (apart from a recent outage of the Microsoft Azure Cloud, which was caused by Microsoft not renewing their keys).
So this week DarkHotel, appeared - an Advanced persistent threat (APT) - which targets executives in hotel rooms with bogus updates for Google Toolbar, Adobe Flash, and other trusted software, when they logged into hotel's guest network access. The malware involved installed application which were signed by a trusted digital certificate and which was created factorizing 512-bit key to generate a valid private key. Most certificates generate RSA keys, and, up to this point, 512 bit keys have been fairly difficult to crack, but with new hardware and distributed processing, such as using Cloud-based GPUs (Graphics Processing Units), it be cracked in a reasonable time.
The attack had been running for over seven years, and included standard tools such as keyloggers, such also advanced cryptographic attacks and zero-day exploits. Along with this, the attackers used a standard <iframe> injection method to insert malicious content into a valid Web page. With this users can go to a valid page, but it contains content from another site, such as going to a Microsoft Live login page, but the login part was hosted on another site, but made to look like a standard login. A recent, and still seen, threat on e-Bay did a similar thing, where a malicious seller took over a dormant users account, and then sold interesting goods, but it contained some injected code that injected a valid looking e-Bay login. Once the user entered their detailed to purchase the good, the malious agent gathered their details.
Overall the attackers knew the exact details of their victim and then could used spear phishing methods to target them, either within the hotel or once they left. Many see the attack much like a "waterhole" where a range of methods were tried on the visitors. In a period of six months the DarkHotel malware was downloaded oer 30,000, and seeded through bittorrent feeds (typically in Japan, Taiwan, China, Russia, and Korea). The attack can be seen as a feeding frenzy for the attackers, where they could try out all the tools in their toolbox.
With ever increasing computing power, especially in the Cloud, some of our crypography methods are starting to show their age. The MD5 hashing algorithm has been under threat for a while, and recently two images were generated with the same MD5 signature, and now it is RSA which is underfire. In this case it was the cloning of the 512-key RSA keys using in the digital certificates, which could be factored to generate a valid private key (which is used to sign the connection or valididate the Web site). Along with this stolen private keys can also be used to create valid signing.
With RSA the creation of the keys involves generating two prime numbers (and then subtracting one from each). We then multiply them together, and this provides the main secret element of the key. The task of find the two prime numbers which made the value is difficult for computers - or it was until now, which 512-bit RSA keys easily crackable within reasonable time limits. If you want to see the calculation, here are some examples:
Simple RSA: http://asecuritysite.com/Encryption/rsa
More details here.