HNHacker News
TopNewBestAskShowJobs

absherwin

765 karma · joined October 4, 2012

submissionscomments
absherwin··on Challenge HN: Break my in-browser crypto for $1000
I'll paste it into another tab in a browser that has me logged into the account or I'll log into the account after pasting the link. Whichever you prefer. If you have another proposal, as long as it's something reasonable, I'm happy to entertain it.
absherwin··on Challenge HN: Break my in-browser crypto for $1000
1. I proposed a few examples: Crypto flaws that you could exploit by giving you the ciphertext (only 1 person has asked), cross-site request vulnerabilities, and attacks from a malicious network. I also invited you to propose your own attacks.

2. You have the client side code. I'm happy to provide the remaining code if anyone is actually curious.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
The instructions are in a note.

If I understand your attack, you'd need to set up a clone website that resends the password in the clear, have a malicious network redirect me to it and get me to enter my password. I'm happy to enable to you to demonstrate that it works. The hardest part is presenting a valid SSL certificate. As I warned in the initial post, "I won't promise to log in if you can't provide a valid SSL certificate."

Email me and we can arrange the details.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
That would work for a sufficiently broad definition of common. You're welcome to try. The challenge is that it'll take a long time unless you have incredibly fast hardware or are very good at guessing.
absherwin··on Challenge HN: Break my in-browser crypto for $1000
In that case is it possible to design a secure application? Can you design an application used by real world people that will remain secure even if the infrastructure that controls it is taken over?

If a server is taken over, the best one can hope for, is sufficiently layered defenses to limit the immediate gains of the attacker and an alarm to warn users not to trust the application until further notice.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
I'll happily do that. When can I swing by to chat?

Different systems are secure against different threats. Sticky notes are secure against people who can't get physical access to their location.

The question in this case is what attacks this experiment is secure against.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
No, I've invited you to propose attacks and help you carry them out. Do you want to try to use a malicious network to inject code to steal my password? Find a vulnerability in one of the endpoints to take control of the server? Try to find a cross-site attack?

Propose a practical attack against this app and I'll help you carry it out.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
I'd expect them to propose a scenario that could be tested either with software or a miniature. You're under no obligation to but examples are persuasive. Feynman's ice water demonstration convinced far more people than his well-reasoned appendix.

I'm attempting to give those who believe that JS crypto should never be used a way to make a clear public demonstration. What better target could you ask for? A web application hacked together in a few hours by someone with no training in computer security who isn't even a professional software engineer and who is willing to arrange scenarios favorable to the attacker.

I'm not aggrieved by the negative reaction. I have no skin in this game. I don't earn anything if people walk away believing this idea is more secure. I just wish you wouldn't keep repeating the same canard about having to bootstrap the crypto on every use while attacking the messenger and the manner in which the message is being delivered.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
How is the frequency of upgrade relevant to the security of the system? If given a new version, people tend to upgrade and I take control of your software update mechanism, how is the security risk any less? You'd presumably argue that we should have higher security standards for a software update mechanism than a web application. If that's the case, would you agree that any web application that's as secure as a software update mechanism, should be allowed to distribute JS crypto?

Edit: I have no specific problem running ssh as a Java applet if I trusted the site and connection. How do you determine when you're comfortable upgrading ssh or any other security program through your package manager?

absherwin··on Challenge HN: Break my in-browser crypto for $1000
I agree it only proves security up to a certain value. Would you be happier if I increased the reward?

Regardless, what do you think of someone who publicly calls something a terribly insecure idea, and then reacts with snark and doesn't actually attempt to crack the system when the opportunity is put before him by someone willing to bend over backwards to help him crack it?

Propose a plan to actually crack the system. Do you want the database? Do you want to control the network where I log in?

absherwin··on Challenge HN: Break my in-browser crypto for $1000
We can argue about the merits of downloadable solutions but that isn't a flaw in this application. I'm willing to make it easy for you: You can even have the database to let you crack it without first having to break into my server.

I agree with you that there are risks to browser side crypto but how are they any different from upgrading software without reevaluating the security of each upgrade? Browser-based crypto also has benefits; most users prefer using web applications to installed all else equal because it's easier.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
This isn't a product launch. It's a demonstration to focus discussion.
absherwin··on Challenge HN: Break my in-browser crypto for $1000
I'm uncomfortable with arguments that are equivalent to PerceivedBenefit(X)>RealBenefit(X) and RealBenefit(X)>0 but NegativeBenefit(Actions|PerceivedBenefit(X))>RealBenefit(X) so X should be banned.

Since PerceivedBenefit(X) and Actions will both vary by individual and are controllable through learning and discipline, I'd rather give individuals the right to choose.

Equivalent examples: Seatbelts are bad since people will drive recklessly; calculators are bad since people won't bother learning arithmetic; cars are bad since people will walk less. In each case, the negative does occur. I'd argue that as a whole society is better for all of those.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
What's an alternative implementation that encrypts the data at rest and is more resilient to a compromised server?
absherwin··on Challenge HN: Break my in-browser crypto for $1000
Having a server compromised is bad. Which is worse, the ability to read plaintext on the server silently or forcing a code change to be distributed to every user, however subtle?

That said, the key for security is to design an app where compromising the server isn't possible.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
Yes, you need to trust me. I'd argue it's easier to trust me if the crypto is happening on the client since if I change it, I could be caught. The probability of being caught in any one instance is very low but over many instances is high.

Would you make the same argument for native application? Unless you read the source code every time you upgrade, you're exposed to the same risk. cperciva did an inadvertent real world experiment on this by making an error during a refactoring of Tarsnap and it took 19 months for a subtle crypto bug to be noticed.

absherwin··on Challenge HN: Break my in-browser crypto for $1000
NP. Checking code is a good. It's not the clearest code since the initialization is located separately from the main RNG function. If you actually tried to read the inline minified version of SJCL, I'm sorry but impressed.
absherwin··on Challenge HN: Break my in-browser crypto for $1000
SJCL fills its initial entropy pool with crypto.getRandomValues()
absherwin··on Challenge HN: Break my in-browser crypto for $1000
Network security is a problem but breaking https doesn't seem trivial in the wild. That's why I'm inviting people to try exploits on a real app and willing to use a malicious network to let them break it.
absherwin··on US financial regulator: We could regulate Bitcoin “if we wanted”
A chattel is moveable property (i.e. not land). So a chattel currency is any currency that involves transferring property such as gold, flour, etc.

Re: Slavery use. Slaves were called chattel because they were property; that was the disgrace.

absherwin··on Rent-a-coder hilarity (2008)
Right. Any statement that the program is in an infinite loop will usually be subject to error.

Of course, the real question anyone asked to develop such a program would be what runtime is equivalent to an infinite loop. Any real-world program must have a runtime bound that is predictable on invocation or it's useless.

absherwin··on Rent-a-coder hilarity (2008)
Writing a program to determine if another program will complete, error, or run indefinitely is quite doable given reasonable constraints: Run the program!

One need only specify some reasonable length either equivalent to infinity for such a program, use a heuristic of checking whether the program is in the same loop and if so, whether any of the variables involved in determining loop termination are changing. Of course, proper security precautions are required.

absherwin··on The 50 million dollar lie
Reinventing the wheel would be a major problem if our goal is to solve the education problem with this discussion. No one here has done even the basic work I would expect of someone trying to understand teacher evaluation as a solution and compare it to other alternatives.

I would argue that the whole point of HN is to think through arguments in other domains and build intuition by reasoning through problems and arguments. Otherwise, what's the point? No one is going to arrive at this thread and scan the top-rated comments for the solution to his school district's problems.

In cases where actual decisions are being made where the analyses are much more thorough and fully validating much more expensive, other techniques are available. First, one generally builds an awareness of the strengths of each team member which suggests where errors may be more likely. Additionally, one can check a random set of the most likely problem areas. Perhaps, most importantly, while everyone won't re-do every analysis, it's highly unlikely that an any important analysis will only be done once. So one can expect that the high-level results are generally consistent.

absherwin··on The 50 million dollar lie
It's not contrary at all. It's the same point. The changing mix is merely a difference of degree. The key argument you raise is that discrimination has a cost. I don't have the numbers offhand to determine whether the cost of monitoring exceeds the benefit of higher quality education. Regardless, that's a different argument that should be backed by a different set of data.
absherwin··on The 50 million dollar lie
I'll bite. I won't discuss my experience in my posts since I don't want to argue from authority but will do so below. But first, I should point out that you're committing a similar sin to that which is alleged in the article. What you really care about is the correctness of an argument. You hypothesize that formal training is an important indicator of correctness. Presumably there's also noise in that scatterplot but we don't even have it. Since it's the best thing available, you are choosing to rely on it.

As for my formal stats training: None beyond High School. That said, I've worked with and interviewed many with far more training. One thing, I learned is that most people don't have great intuition for statistical problems and it's not terribly highly correlated with years of schooling. I've met PhD's in economics and statistics who have made basic conceptual errors as well as those with less training who were more reliable.

So while training may be correlated with accuracy, you should still demand a well-reasoned argument and think critically about it.

absherwin··on The 50 million dollar lie
To build intuition, let's consider a hypothetical society. We divide a group of people in two. The first group rolls a die with 100 sides labeled from 1 to 100 in even increments. The second group rolls a die with labeled 1 to 110 in even increments. The roll determines their annual ability level which is unknowable. If you were hiring, which group would you prefer? Is it fair to the second group?

Note that this isn't strictly equivalent for several reasons. The game above the error is part of the generating process instead of the measurement process. Also the distribution is district rather than continuous. The key commonality is that a weak predictor at an individual level can be a meaningful predictor at a group level.

absherwin··on The 50 million dollar lie
Both sides are right but they seem to be concerned with different things.

Grouping data points does mask volatility. This doesn't make the effect any less real on the societal level. If we seek to improve student performance, skewing the pool of teachers towards the better ones will do that.

Yet there is also an enormous amount of volatility which is also real. Ideally we would just create better predictors. Constraining ourself for the moment to this set, since they have high error rates on the individual level, it's also reasonable to assert that in relying on this metric, we will make unfair decisions for many teachers.

The right solution depends on how much you value optimizing student outcomes vs. optimizing fairness as well as second order effects such as driving away teachers. My bias would be to use these scores for economic incentives to attempt to ensure that retention for the best teachers is higher than for the worst. Without additional work, termination likely isn't warranted based on this data.

To those who argue that pay differentials require better evidence, I would suggest comparing the validity of performance evaluations across any other job. It's imperfect but better for society than doing nothing.

For long-term fairness, it's important that there isn't a single value-added model. Competitive pressure can do wonders to improve model quality and it's also fairer since those who don't do well on one model can move to a different rubric.

absherwin··on Allstate compares SAS, Hadoop and R for Big-Data Insurance Models
True but 150MM records with 70 degrees of freedom would likely be doable with 16GB of RAM and almost certainly with 32 as most of the variables are likely boolean and so can be stored in a single byte which Stata supports unlike R and SAS.
absherwin··on University of Wisconsin to offer degrees based on tested ability
This sort of program has existed since the 70's. Excelsior, Charter Oak, and Thomas Edison all offer similar programs across a wider range of fields than Wisconsin is. The news here is that a school with a name is offering such a program. That said, nursing is a field where school reputation doesn't matter much and IT isn't a prestigious major. This is better seen as a harbinger of change than as a significant change itself.
absherwin··on Allstate compares SAS, Hadoop and R for Big-Data Insurance Models
Try stratified sampling. Removing records without claims only increases the variance of the denominator which is much less variable. You actually can eliminate the majority of the data and find results that are the same to several decimal places. Note this only works with very large datasets without extremely high cardinality variables.

That said, 50000 is too few. For a dataset of this size, 20 million records is likely more reasonable. The actual answer depends on the variance of the individual predictors and their correlation with each other.

← PreviousPage 4 of 5Next →