1Password's browser extension v4, in contrast, fills in the form only when you press a key combination (⌘-\ on OSX), and has you enter your master password into a dropdown from the OSX Menu Bar, and not inside the browser frame. Pretty snazzy all around.
HN user
blazingice
I'm Keaton Mowery, and I work in web and systems security as a graduate student at UC San Diego.
Academic work: http://cseweb.ucsd.edu/~kmowery/
Contact me! kmowery@cs.ucsd.edu
Does the fetch happen immediately when Google receives the email? Or does it occur the first time the user opens the email?
If the latter, sender image tracking will be alive and well.
A common marketing tactic is to include a link to a small, transparent image in the email they send. The URL is personalized to each recipient, and so they can check their server logs to see who opened their email and when.
It's unclear if this technique will work against the new GMail approach; maybe Google will always fetch all images as soon as the mail arrives, which would immediately ruin any signal.
It may be trivially easy to host your own email, but in my experience it is nowhere as easy to do your own spam filtering.
A few years ago when I ran my own mail server, having only one false negative was a good day. Google can throw teams of people at the problem.
Some JS engines already disallow security-violating operations from happening (such as inserting evil hooks into document.location). These same protections could apply to any Crypto object.
noooo it ate my references:
1 http://canta.ucsd.edu/~kmowery/quelsolaar/crypto_test.c
2 http://canta.ucsd.edu/~kmowery/quelsolaar/keystreams.tar.gz First line of each file is the key generated by rand(), All other lines are the keystream (encryption of 00 data)
3 http://canta.ucsd.edu/~kmowery/quelsolaar/keystreams.py Note that you might have to change to using os.walk to find files; I'm too sleepy...
As eru said elsewhere, you've created a stream cipher. To be secure, the generated keystream (the thing you xor against the plaintext) must not have any biases: the attacker shouldn't be able to guess the contents of any keystream byte (with P > 1/2^8). Otherwise, an attacker can probabilistically recover parts of the plaintext.
I played around with your C implementation a little[1]. I put it into 8-bit mode, and generated 16 random keys and output their keystreams[2]. Here's the first 32 bytes of those keystreams, in hex:
0002010203fd050607b0090a0b250d0e0f8b111213a4151617f5191a1be6003e 3b4a00790369050607004b170b820d0e0fb7111213d0005f1796191a1b321d1e 00130102036b05060734090a0b260d0e0fca111264141516178700671b534ae8 df7c806903d10506077fcc670b583600dec617580a2b8b161712191a1b1c00a7 00260102032f1d0082a0090a0bd30d0e0f4ca8c616aa151617a400a34f1c9e1e af7cb175036705060786090a0bc90d0e0f2a111213831516173700501bfa1d1e 000236ca58110506079c00090b860d0e0f8f111251009e1617b4191a1b311d1e 00250102039700ec0729090a0b2a0d0e0f961112133a151617e3a200956764b8 002a0102031e050607ed003c0b260d0e0fcf111213c000151a18191a1bb21d1e 413c0102031505060745090a0b060d0e0fc6111213b815161784191a1b341d1e 00890102039500b807a200570ba70d0e0fa31112134c1516172d191a1ba03900 00cd01020332050607e100b10bdd0d0e0f0d111213261516170e191a1b041d1e 0076010203c30506074e03c7880069000eb8078d54134604a61a142d1a0600c3 00f101020344050607a8090a0b0e0d0e0f11111213e6151617f3191a1b291d1e 00f1007a0369aab10068090a0b53b1ac0fd1111213531516171800ee1bde1d1e 0036010203570506076c00d60b050d0e0f2f27583f03591617bc09471b141d1e
As you can see, there are some significant biases here. For example, as an attacker, once I have a ciphertext, I can guess that bytes 18 and 19 of the keystream were (hex) "1112", and have a very good chance of being right.
While the 32-bit version isn't as bad, I think there's still significant biases. I generated 24495 keys. Here's the distribution for keystream byte 1 (script at [3]):
92 82 82 104 99 90 99 111 90 102 91 95 94 91 73 102
109 106 97 99 88 99 90 96 88 97 101 100 108 76 87 87
91 94 111 90 92 104 88 97 94 100 89 102 90 91 92 89
98 96 89 94 111 111 105 90 87 89 93 104 100 110 109 93
77 107 103 84 88 96 89 87 77 96 90 84 87 106 101 98
99 99 114 102 104 106 95 91 95 92 94 104 95 88 93 91
91 78 102 89 104 88 94 100 102 105 94 102 100 105 99 94
87 89 86 93 95 77 82 83 99 94 88 106 106 101 101 91
82 88 98 111 104 93 102 91 87 93 106 89 102 78 88 105
91 93 105 84 101 100 94 93 94 107 88 86 114 84 112 98
97 84 111 87 91 93 89 95 92 96 78 85 90 104 84 80
103 95 98 114 90 89 91 110 89 100 87 107 95 109 83 103
112 102 93 93 87 90 101 91 108 108 90 107 103 95 111 126
88 97 74 111 97 99 95 95 102 97 122 94 106 94 97 103
86 90 102 91 95 108 83 97 91 102 99 90 103 111 93 84
87 107 91 96 77 98 96 85 108 110 116 100 95 89 72 100
I should really get to sleep so I didn't do the statistics on this, but I'm
fairly sure that's not a uniform distrubtion (i.e., bytes aren't being drawn
uniformly from [0:255]). Also, keystream byte 0 only ever has 128 values,
instead of 255.I did not look at 64-bit.
All in all, I wouldn't use your cryptosystem :) but there's no shame in that! Crypto is hard! and youre only going to get better.
Usually, when discussing human diet: carbohydrates, fat, and protein. These comprise the energy content of food.
Ostensibly, a "a low-key ceremony in an actual beautiful natural area" (that can support 360 guests) would have a far greater ecological impact than manufacturing such a place in an already developed campground.
To make such a suggestion, you'd have to claim that they shouldn't have invited nearly so many people, which is an uncomfortable claim to make.
They released an adapter:
http://store.apple.com/uk/product/MD099ZM/A/apple-iphone-mic...
Apparently these are quite difficult to buy in the United States.
Edit: Lightning to Micro-USB is only $20, though: http://store.apple.com/us/product/MD820ZM/A/lightning-to-mic...
Aciicmez's BTB attack looks at the branch predictor, and is potentially valid against any implementation which branches based on sensitive data. There's a whole class of these attacks which look at instruction paths, including a new one by Zhang et. al. against ElGamal at CCS this year, but they usually target asymmetric ciphers. In particular, since AES doesn't have key-dependent branching, these attacks don't apply.
I do agree with you that x86-64 is extremely complicated, and that new attacks might crop up due to some future optimization.
As for the paper:
Yeah, AES-NI is sort of the final hammer against AES cache timing attacks, since it doesn't use the cache at all, but I felt that a paper on AES cache timing would be remiss without mentioning it :)
There are two parts to the multicore argument: the first is that it complicates things massively, and the second is that it can be a complete mitigation if used properly.
First is the complication bit, and that's just saying that the attacker must understand almost everything about the multicore implementation, including multilevel cache behavior and (possibly non-deterministic?) replacement strategy. I'm willing to believe that, were this the only hurdle, a dedicated attacker could still succeed. I was looking at a single core machine, so I didn't have to deal with the complexity here.
For the complete mitigation, you need to rely on platform support for core pinning. If you're allowed to say "I want to do encryption now, give me my own core for 400ms", then, since the 4KiB T-tables fit into your core's L2, attacker threads on other cores just can't examine them during use. This complicates the VM hosting model and might be a decent DOS attack, but it does completely stop cache probing attacks.
Finally, as you said, my work can really only apply to AES on the x86 on the desktop. Change one of these variables (such as AES to ElGamal or RSA or Blowfish), and side channel attacks might still exist. Such is the problem with negative results :)
This article focuses pretty heavily on the possibility of cache timing attacks against AES, and cites djb's original work along with Tromer/Osvik's publication in 2005.
Last week at CCSW, we published a paper[1] detailing our attempts to bring these attacks to bear against Chromium.
In short, we don't see AES cache timing attacks as possible on more recent processors, and especially so once you factor in the sheer size of modern architected code.
[1] http://cseweb.ucsd.edu/~kmowery/papers/aes-cache-timing.pdf
I'd be the first to tell you that I don't understand crypto. Most people don't.
You're unwilling to have this conversation again; I understand. Do you have a link to one of your talks? I'd be interested in watching.
Can you at least tell me what definition you're using for "fall", if not key retrieval? Replay attack? Information leakage?
Edit:
> "I don't understand the vulnerabilities you're talking about so I'm going to assume there's something basic about how stuff works that I grasp but you do not"
Sorry if it came off that way! I'm assuming that you understand something basic about how this works that I do not, and wondering what it is :)
As a security researcher (but not necessarily a crypto one), I do not understand this comment.
> AES in its default block cipher mode can usually be byte-at-a-time decrypted.
1. Block ciphers don't have default modes. Implementations might. Does OpenSSL really use ECB as the default mode? (I agree wholeheartedly with you that sensible defaults are extremely important, and so ECB-as-default seems hard to believe.)
2. What does "byte-at-a-time" decrypted mean? You haven't specified the threat or attacker models.
Are you saying that given several million ciphertexts, you can recover the key from AES-ECB? AES-CTR? Does the attacker need side channel acccess? How about given one ciphertext? Or is this a chosen-plaintext or chosen-ciphertext attack?
In short, could you please detail the attack you have in mind?
> AES in its most "modern" mode ends up being exactly as secure as naive XOR when developers use it without understanding its parameters.
As far as I can tell, this is entirely predicated on your later statement that "nobody does [real cryptanalysis]". What is AES's 'most "modern" mode'? Which parameters are you referring to here (key size, mode, any others?)
My guess is that XOR will fall in some small number of hours against someone who cares; AES-128-ECB (as bad as it is) may require many more resources for key retrieval.
For fun, which definition of security are you using to compare cryptosystems?
It looks like you're being downvoted, so I'll provide a reason.
Alcohol is legal. The gangs that formed around producing, smuggling, and selling alcohol (e.g. Capone) are gone.
The hope is that once other drugs are legal, the same thing happens to their producers.
Don't forget about "Turbo Boost" - that "1.8 GHz" runs at 2.8 GHz when you're only using one of two cores.
Combined with a more efficient architecture, this helps explain the performance gains.
I count 1930 applications, which is $357M in revenue, given the stated application fee of $185,000. This is three times the projected revenue of $92M [1]. It'll be interesting to see how ICANN ends up spending this money.
[1] http://archive.icann.org/en/topics/new-gtlds/explanatory-mem...
You have a good point about TDD, and I'm unsure how to address it.
However, you might find the itertools library helpful, particularly itertools.permutations(): http://docs.python.org/library/itertools.html#itertools.perm...
The first Ivy Bridge consumer chips are just hitting retailers today (NewEgg just put them on sale ten hours ago). All of the experiments done so far have been on review chips sent out some weeks ago.
The article claims that $4M (80%) of this money was spent lobbying against SOPA and PIPA, which I would qualify as protecting freedom on the web.
I've had a good experience with the Canon 28-135mm f/3.5-5.6 IS USM. It's right in the middle of your price range and has image stabilization and a good zoom range. It's my go-to lens if I'm traveling light.
If you can possibly save up for the 24-105 f/4L, do it.
Everyone else suggests that you get a prime lens - they're fantastic for portraits but so so very annoying in any other situation. On the plus side, the 50mm 1.8 Canon lens is amazingly cheap and light. On the downside, it's noisy, takes forever to focus, and it's just not very versatile. I'd get it after a good zoom lens; it's worth having but not right off the bat.
The right lens for you really depends on your photographic style - if you shoot wildlife, scenery, street photography, or people, your lens choice will be wildly different.
Cheers!
P.S. my go-to site for lens information is http://www.canonlensreview.com - it's quite good and simple.