Forgot your password?

Comment: Re:Would be 100 million as fast as hashcat claims (Score 1) 193

by mattpalmer1086 (#47060007) Attached to: eBay Compromised

Hmmm... I got my performance stats from a different web site. But the performance table on oclHashcat's fron page says 11231M c/s for SHA256. That's eleven billion a second, admittedly using 8 GPUs, but in the ballpark of my original post.

If crypt is iterating SHA256 110,000 times, that sounds fairly good. I've been looking at scrypt, which is explicitly designed to resist hardware based attacks.

Comment: Re:3,963 years per password (Score 1) 193

by mattpalmer1086 (#47058333) Attached to: eBay Compromised

Well, I would dispute those calculations a bit, but I accept that good long per-account salting forces each password to be cracked individually. I assume that the salt is compromised along with the password (or they won't be cracked at all).

Even randomly selected passwords from all alphanumeric characters only gives us about 6 bits of entropy per character. Most passwords are shorter than 10 characters, the average is more like 7. This only gives us 42 bits of entropy per password, assuming complete random selection from that space.

But - users don't randomly select from that space, and modern password crackers don't simply try all possible letter permutations, although they can successfully do this for passwords which are less than 7 characters. They exploit the patterns and techniques which users use to select passwords, using rules engines, password dictionaries, markov chains and all sorts of clever magic.

Run this on GPUs using hashcat, which for SHA256 can check about 3 billion hashes a second. A small cluster of 4 of these machines can then easily check over 10 billion hashes a second. You can now rent Amazon EC2 instances with GPUs. In a minute you can check 600 billion hashes, admittedly for a single password at a time.

Salted hashes are now crackable even for quite reasonable passwords, if the hash algorithm can be run on modern GPUs, and assuming the attacker has the salt as well.

Comment: Re:Why use it? (Score 1) 435

by mattpalmer1086 (#46884707) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

Good point. I checked out and I can see they're mostly all quite demanding applications. I guess they deserve a demanding language :) But yes, fair enough. There are plenty of times getting the most out of what you have is going to be important.

I once worked on Java code which ran on the most ludicrously limited hardware. It was like treacle. I spent a lot of time tuning that code. Logging was the worst offendor, but some poor algorithms lurked in there too. Garbage collection was quite noticeable, even after rewriting to minimise it as much as possible.

Comment: Re:Computational code (Score 1) 435

by mattpalmer1086 (#46884603) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

Yes, I can see that sort of code would benefit a lot. Not an area I've done much work in, but I guess a lot of people are. I'm actually really interested in code that performs well - I spend quite a lot of time profiling and tuning. Some of the things Martin Thomson has done in Java land are pretty cool. Check out and http://mechanical-sympathy.blo...

Comment: Re:Why use it? (Score 1) 435

by mattpalmer1086 (#46884529) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

Sure, resource handling in C++ is one of the examples I do give of the sheer power and beauty of what you can do with the language. I used it extensively even back then. I also remember some of the issues I encountered in passing them around safely were a big lesson in the complexities, pitfalls (and opportunities) that lurk in the language. It was enormous fun, but I think I've probably been more effective in less demanding languages.

Comment: Why use it? (Score 1) 435

by mattpalmer1086 (#46879797) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

I had the most fun ever with C++ back when the original story ran. But it was too complex, too big and yet lacking standard ways of doing really very common things. Every library took a different approach. No standard libraries to do pretty much anything you wanted to in the real world. And it was always possible to shoot both feet off at once while doing something you thought was obvious and/or designed to make your code safer. Incredibly slow to compile. Compilers never supported the full C++ spec, or supported different bits of it on different platforms.

The trouble is, I can't see any compelling reason to use it for anything much these days. Maybe the latest C++ is better - but given what I know of the language I suspect the main criticisms I have of it must be still valid.

Use cases where you need that insane low level of power and control while retaining a high level language syntax are not common at all.

Can anyone give an example of where C++ really shines these days over other languages?

Comment: Re:really? (Score 1) 277

I think we need a "Misleading" category.

Without the salts, the hashes are essentially uncrackable, if the salts aren't incredibly short. So don't waste your time trying to crack these.

Salts are not secrets. They are usually stored right alongside the account details in the password database.

If your solution is to make the salt secret, you're not using salts anymore. Per-account salts protect against pre-computation attacks and do not need to remain secret to provide this protection. They are a cheap and effective defense for this purpose.

If you want to keep your salts secret, they are technically called "keys", and are expensive and difficult to manage securely.

Comment: Re:We're adopting this at work... (Score 1) 195

by mattpalmer1086 (#46212899) Attached to: Is Whitelisting the Answer To the Rise In Data Breaches?

The software running on the POS is completely known and controlled. In a big organisation there are lots of them, so you want to be able to update over the network. Updates are tested and bundled with any whitelist updates required. It's the perfect environment for whitelisting.

I'm curious why think it won't work on a POS with remote updates?

Comment: Early Warning (Score 2) 201

by mattpalmer1086 (#45746733) Attached to: It's Not Just the NSA: Police Are Tracking Your Car

I attended a conference on XML back in roughly 2004. A police technical architect was describing the ANPR system. He pointed out that the current deployments of the time were entirely local and not joined up nationally - but went on to say that it wasn't a very big step to do this, allowing the tracking of vehicle movements on a national scale. He looked embarrassed and uncomfortable as he said this.

I got the very strong impression at the time that he was trying to give a warning on where this technology was heading.

Comment: Re:We did it wrong, let's do it wronger still. (Score 1) 80

by mattpalmer1086 (#45695515) Attached to: IETF To Change TLS Implementation In Applications

I'm no expert on id-based encryption, although I can just about understand how it works. It has some attractive properties as well as some serious downsides.

  * An encryptor can pick a public key at random for a recipient known to the decrypting authority.
  * No prior arrangement is required except for knowledge of the public parameters of the authority, and a recipient to send a message to.

  * The private key of the recipient can be calculated at any time by the decrypting authority.
  * The recipient must authenticate to the decrypting authority to receive the private key for the sender-chosen public key.
  * All messages in the past and in the future can always be decrypted by the decrypting authority at any time.
  * You have to trust this authority absolutely.

The fact that the private key can be calculated from the public key and the master secrets is actually a pro as well as a con. This is what lets the sender choose a public key of their choosing with no prior arrangement.

I've seen this work quite well in one setting - payment messages from secure pin entry devices to the payment processor. In this case, the payment processor can decrypt all payment messages at any time, but each message is sent using a different key for each transaction, chosen by the low power pin entry device, and requiring no interaction between them and the processor.

On reflection, it's probably not a good candidate for inclusion into a protocol that would replace TLS. I can't really see how it provides anything useful in that setting. Still, it was just an example of some of the cool ideas being realised in more modern cryptography :)

Comment: Re:We did it wrong, let's do it wronger still. (Score 4, Interesting) 80

by mattpalmer1086 (#45694097) Attached to: IETF To Change TLS Implementation In Applications

Well, I can't really make out what you're proposing here.

As far as I can see, the client side has three secrets to maintain - the GUID, master password and salt. If the GUID is unique to a computer, your accounts only work from a single machine, and if you lose the GUID then you lose access to all your accounts. Correct?

The nonce is a "number used once" - i.e. randomly generated for each session in a cryptographically sound way.... so how do the server and client negotiate the nonce for each session? Does one pick it and encrypt it to send to the other? Do they both participate in picking it? Do they use something like Diffie-Hellman to arrive at the value?

I really don't understand your point about changing the salt equals changing your logins without affecting your password. Do you mean if I wanted to lose access to all my accounts everywhere and begin again, I wouldn't have to change my password?

And... how do you know you're talking to the right server in the first place? I don't see any server authentication at all in your proposal.

That's enough for now. The one thing I've learned from studying protocols is that it's really, really hard to get right. Not because the people creating them are dumb or have malicious intent. It may well be time to start creating a new protocol to replace TLS eventually, using what we now know about trust, authenticated encryption, protecting the handshake and side channel attacks. And possibly using some new techniques in there, like identity-based encryption...

"Someone's been mean to you! Tell me who it is, so I can punch him tastefully." -- Ralph Bakshi's Mighty Mouse