HNHacker News
TopNewBestAskShowJobs

kgo

829 karma · joined July 20, 2010

http://www.grant-olson.net
submissionscomments
kgo··on Rubygems.org compromised
We're basically on the same page, but coming from different directions.

Once you start having people import lists of trusted X.509 signatures from other trusted sources (e.g. 37 Signals) what you end up doing is basically creating the Web Of Trust that already exists in OpenPGP.

That is, instead of simulating a X.509 Certificate Authority in OpenPGP like I want to do, you're now simulating a OpenPGP web of trust in X.509 land.

I would have the rubygems OpenPGP key be the default for people who would want moderate security. Although a compromise could affect new users, all existing user would have the old key when they installed rubygems. That would immediately set off flags when gems signed by a forged key only were installed by the millions of users with the uncompromised install.

In addition, the more security conscious could trust for example 37signals or a co-worker and create a proper Web of Trust for validation.

This is the way OpenPGP works by default. You can even different trust levels automatically with this approach. Simply a rubygems.org signature would make the gem moderately trusted. Two additional signatures from two other trusted sources (37signals and a co-worker) would make the gem show up as highly trusted.

But rather than manually importing in an ad hoc fashion, you just sign the 37signals key locally, and gpg already takes care of enforcing all the rules, building the chain of trust, publishing peoples signatures to keyservers distributed world-wide, performing security calculations based on a user's custom preferences, etc.

So if you want the web-of-trust approach, best to just start with OpenPGP, instead of trying a NIH approach with X.509 certs.

kgo··on Rubygems.org compromised
Point taken, but my day-job rails project, which isn't even that big, has 461 gems in my Gemfile.lock. (which lists all the explicitly included gems, as well as their dependencies, if you're not familiar.) That is a lot of self-signed certificates to track down, attempt some form of verification, and manually add as trusted.

My proposal would allow people who want a medium-level of security to verify that whoever uploaded the gem has (1) valid credentials to rubygems.org, and (2) control of the account owner's email, without requiring all that manual installation.

And it would allow people who wanted to set higher standards of verification to do so, basically for free, by configuring their settings in gpg.

kgo··on Rubygems.org compromised
My proposal was that rubygems would create a simulated certificate authority that operates similarly to the PGP Global Directory, which would allow registered users to have their keys signed by an authorized RubyGems.org signing key. (This is covered on the bottom of the page on the link above.)

In addition more active developers who go to conferences and what not would do all the proper WoT stuff to ensure that the RubyGems.org key being used was indeed the authentic one, and that gems in their circle of friends/co-workers were signed by the correct keys.

kgo··on Rubygems.org compromised
You don't want to send an actual exploit in clear text to a possibly compromised email account. PGP encrypts, and provides some level of validation that the message can only be read by someone on the security team.
kgo··on Rubygems.org compromised
The trouble is self-signed X.509 certificates are pretty worthless. X.509 certs are built around the concept that they're issued by a trusted provider.

I tried to get together a proposal to introduce OpenPGP signed gems and wrote some proof-of-concept code so there could be a proper Web-of-Trust for rubygems:

https://github.com/grant-olson/rubygems-openpgp

But the developers were resistant (and understandably so) to having gpg as a dependency for gem verification, and I didn't trust myself to write the crypto and a decent keyring validation algorithm from scratch.

kgo··on Ruby inline assembler
I wrote a similar thing a while ago for python:

http://www.grant-olson.net/python/pyasm

It even mapped all the exported symbols from the python API so you could do stuff like:

    CALL PySys_WriteStdout "Hello, World!\n\0"
About every three months I get an email from someone where I have to explain it was a proof-of-concept and never intended for production use.
kgo··on Never Lie About Who You Really Are
In the particular example of a cab driver...

There are plenty of other reasons you might have kids but not a wife. Maybe you're a widower. Maybe they're actually your brother's kids, but he and his wife were killed by a drunk driver, and you're the godfather.

Perfectly legitimate cases where you just have no reason to get into it with the freaking cab driver, and probably don't get into a serious conversation, and probably also don't tell him to mind his own damn business.

Wouldn't it also be inappropriate for the cab-driver to follow up, "Do you have kids?" with the question "Are they biologically yours?"

kgo··on How to Accept Bitcoins Without Fees
There's a lot in that thread to sort through, but...

The exchange that zhou founded had about 60,000 bitcoins stolen in two instances. Plenty of evidence pointed to an inside job, probably by zhou himself.

This link provides Zhou's explanation of what 'really' happened, where he claims a Chen Jianhai, Chinese multi-millionaire with ties to organized crime who hunts for ancient relics and artifacts in his spare time, was the 'real' thief.

https://bitcointalk.org/index.php?topic=95795.0

I'll leave it to others to assess the plausibility of this scenario.

kgo··on Securing Your Domain Against Seizure: Where Is Safe to Register a Domain Name?
If you look at this as an uptime issue, it has the same answer as any other uptime issue. Redundancy.

A single server isn't good for uptime because when it dies you're screwed. At the next level, a single data-center only gives you so much uptime because if that data center goes down you're screwed.

Same thing here. Any single TLD isn't safe for any number of technical and political reasons. If you want to be safe, register multiple tlds with multiple entities so you have redundancy.

kgo··on How to Hire a Programmer
I know this is tangential to your main point but I actually like and expect some bitching when I'm interviewing someone, and frankly don't see how you could do an honest interview without some bitching. The supposed motivation for the no-bitching rule is that the interviewer thinks you'll complain about their company in two years. Well yeah, no shit, if you get fired or quit in two years, you're not going to run around telling people what a pleasure it was to work there, and that the breakup was mutual.

The people who seem to say every place they worked was good, had a good team, had no problems, etc, always seem to be mediocre. The interviewee who's like "Oh my god, they didn't even use source control when I got there. I setup a subversion server on my desktop." shows that they take charge. Horror stories about bug tracker shenanigans are always good for a laugh. "Well 'critical' was getting used too much, so they created 'ultra-critical'. After all the bugs ended up at that status they added 'yesterday'." Funny, but also shows they understand the concept of prioritizing. The people who bitch, and (more importantly) take the steps to make things better are the people I want to work with.

Of course it can be overdone, and I've had people who bitched so much or were so caustic that they got a pass.

I guess maybe things would be different if I was working in Fortune 500 IT-land. Maybe then I wouldn't want someone who complains about Fortune 500 IT-land shenanigans, and just want someone who will just implement the code written by the Grand Architects on Mount High. But it's like the rule about wearing a suit and covering up any tattoos. I will never wear a suit to an interview again. If that's a pass, that's a company I don't want to work for. Same with an interviewer who would be outraged that you complained about the company you're actively trying to leave. Or that you had the gall to take a year off of your professional life to tour Europe.

kgo··on A Classic Startup Horror Story
Megacorp decides to purchase KFC.

As part of due diligence, they want to know what the secret recipe is. After all, you'd hate to find out one of the special herbs and spices is cocaine or arsenic. This is fine because MegaCorp signed an NDA.

MegaCorp breaks off the deal. Their chefs decide that they can make their own chicken. After all it's not hard to combine these nine herbs and spices.

The chefs only have this knowledge because you revealed your trade secrets under the protection of an NDA. They're not white box reverse engineering the recipe.

kgo··on TV is broken
I made nachos for my niece once. Put Doritos on a cookie sheet, smothered them in cheese, and put them in the broiler. She thought they were weird and broken because I didn't use the normal plain-style tortilla chips. Her mom made her a new batch the right way.

Young children have a tenancy to think that the rest of the world is exactly like their home, because that home is their world. Then when they experience the outside world things seem strange.

Like the above anecdote, I remember thinking it was weird when a neighbor made Taco Salad with Frito's instead of Doritos.

I remember how weird my grandmaa's house seemed all around when visiting. The food was different, the board games were different, it was all strange.

I think this anecdote is the same. Its not so much a case of the wisdom of the children, but just another example of a child not understanding that the entire world isn't like their sheltered existence. [I don't intend sheltered as a pejorative here.]

I'm sure there were plenty of other things on the trip that seemed broken, but none happened to be as evil as commercial TV.

kgo··on Why Developers Hate Antiviruses
Heh, I worked in big oil at the time, and they couldn't kill blaster because IT people kept on imaging new computers on internally exposed networks. We probably could have killed the outbreak a week or two earlier if everyone just stopped imaging for a day.
kgo··on Is My MacBook Pro Always Listening?
I believe the LED that tells you your MacBook's camera is on is hard-wired into the motherboard, for the very purpose of making it impossible to covertly enable the camera via software. A similar approach could be used for a mic.
kgo··on Dear Comcast, I'm leaving you because...
In my area, you're on Comcast if you're pissed off at Verizon, and you're on Verizon if you're pissed off at Comcast.

I'm on Comcast because I was a Verizon early adopter, with DSL in the 90s. It got to the point where even their cheapest packages were at least an order of magnitude faster than my speed. Sure I could have called and gotten a new package, but it's like they were just keeping me at the original speeds out of spite, like they actually had to do work to keep me so slow. Just like the stories of that little old lady who's still paying a monthly rental fee for the phone in her house.

I'm sure Comcast will do something to piss me off in the next few years and I'll go back to Verizon.

kgo··on Joel Spolsky's Totally Fair Method to Divide Up The Ownership of Any Startup.
"You don't have to follow this exact formula but the basic idea is that you set up "stripes" of seniority, where the top stripe took the most risk and the bottom stripe took the least, and each "stripe" shares an equal number of shares, which magically gives employees more shares for joining early."

As usual, Joel proposes you use some common sense, instead of trying to come up with some perfect function. The important thing isn't if employee 4 was hired on Dec 31st and Employee 5 was hired on Jan 1st. If Employee 4 was working in your living room and working off his own laptop, and Employee 5 joins when you have a tiny office, provide him with a computer, have comprehensive health insurance, they're in different bands.

kgo··on Congressman blacks out his official .gov website
I saw a presentation at RailsConf two years ago where they took it to the next level. It was the Spanish Internet Party. If they got members in parlament, you could actually vote yourself online, and the MP would just vote based on the constituent votes. You could even delegate your voting power to causes you care about (for example, the EFF or PETA) so that you could have your views represented without having to spend hours or days researching every single issue.
kgo··on Why I'm a Pirate
I explicitly acknowledge the difference between scarce and non-scare goods in the above post if you could bother to read the second paragraph. The part you're leaving out in your 'improved' anology is that it might cost 10 years and ten million dollars to develop this $200 car.

Basically the great-grand-parent is saying that there's no rational or moral justification for someone profiting from innovation, because it's in someone else's self interest to take that innovation, and these two parties self interests cancel each other out to the exclusion of all other factors. I find that to be an extremely naive and simplistic argument.

kgo··on Why I'm a Pirate
Apply this same argument to someone who spends hundreds of hours working so that they can buy a car. This is all done out of self interest. Most people would not conclude that it's okay for someone that a car thief, who steals the car because it serves his self interest. That this is somehow rational and moral because one person's self interest is equivalent to another person's self interest.

Of course people who are anti-copyright will be quick to point out that a bunch of bits on a disk that can be infinitely duplicated is different from a physical car. And that's true. But I'm not talking about that. I'm talking about the blood, sweat, and tears that the creator invests in the act of creation.

I could post more far fetched analogies. It's in a woman's interest to have self control over her body. It's in a rapists best interest to take control of her body. Does the argument that each individuals self-interest is reciprocal apply in this case? Is that the "sensible rational purely moral" conclusion? Of course not. There are a myriad of other factors that need to be taken into consideration.

kgo··on Warning Signs that Agile Is Declining
As usual it depends. At the risk of spouting a cliche, there are no silver bullets.

The best way to get a team working is to analyze and enumerate the current problems and shortcomings, and find a way to reduce or eliminate them.

Is the problem with your team:

* They don't make deadlines?

* Too many defects?

* Disconnect between software and customer?

* etc.

Armed with that information, you can see if any of the multitude of Agile methodologies addresses the issues you have, and is something that will work with your team. You can see if you can cherry-pick a technique here or there from a given methodology.

Asking other people what methodology is best is like asking if Java/.NET/rails/django/php/lift is the best way to write a website. You'll get a lot of opinions that sound good and point you in the right direction, but ultimately you need to roll up your sleeves, investigate the options, and make decisions based on your current circumstances.

[And ultimately, this is the problem with the current state of agile. A consultant or evangelist will promote their brand of Agile as a silver bullet without taking the time to look at your organization's problems.]

kgo··on Ask HN: Does MacPorts really suck so bad or am I missing something?
If it's the first thing you've installed from macPorts, there are probably downloading and compiling a billion dependencies.
kgo··on How rel=nofollow Works
FWIW, bingbot basically DDOS'ed our site a few months ago by crawling links that were labeled nofollow/noindex in the hrefs. Adding a rule to robots.txt fixed the problem.
kgo··on US Citizens Should Try The Copyright Monopoly As Unconstitutional
By this argument wouldn't defamation and libel also be legal?
kgo··on New Year's Resolution: Full Disk Encryption on Every Computer You Own
Actually it works the other way around, and is considered to be a problem by many security experts. If you don't have a Hidden OS partition, and the court requests the password, it's impossible for you to prove you DON'T have one. Just like it's impossible to prove you just forgot your password.

So you're better off making a hidden OS partition and not using it, just so you can access it.

kgo··on Aaron Swartz v. United States
I'm just curious why someone who did this is still a fellow at a center for ethics. It seems like the whole situation, even if it's been cleared up with MIT and JSTOR, is completely unethical, regardless of the legal case.

Is the position tenured?

kgo··on Github is Your New Resume
I had this crazy idea that I'd buy a vanity domain with my name in it. Use it as my personal email, which is used an all kinds of technical newsgroups. Setup a web page where I described myself, linked to various projects, source code, etc. A site that has a better indication of my personality than github ever would, and has some projects that will never go in github for various reason.

After seeing the last one of these articles, I actually put a note on my github site directing people to my primary site. Seems silly that I felt I had to do this, but oh well.

It's also a shame that the last few patches I did, involving smartcard hardware for gnupg, doesn't get me any bonus points, since that project, like a majority of major projects, hosts its own version control. Not to mention, 9 times out of 10 when I open an issue on a github project, I hear nothing back, making me really unmotivated to fork the project and fix something.

kgo··on My weekend project - AES encryption for Gmail or anything else
HushMail has a java based browser that's supposed to be all client side, but last time I tried hush, they generated keys that were incompatible with GPG2.

But yeah, like you said, if you're only checking emails on machines that are secure and in your control, you might as well just install Tbird/Enigmail. And if you're at the library or a computer lab, you can't trust the client to be secure.

kgo··on Meanwhile, just East of Silicon Valley, in Tupelo Mississippi...
He did say in the past 20 years. Everything you're talking about occurred outside of that time frame.
kgo··on [dead]
100,000 might as well be 20 bucks to a fund manager who has some high-risk fun-money set aside, or to some dot-com billionaire who thinks the crypto aspects are neat.

I really hope this is the case with the insanely large buys, and it's not someone mortgaging their home.

kgo··on [dead]
At the time this happened bitcoins were trading for less than 10 cents. But I have seen six-figure deals go by on the ticker at #bitcoin-market.

Thirty day volume over at mtgox is 6 million dollars. Granted, much of this might really same money going back and forth for some day trade action, but it's still way more than people who don't follow bitcoin would ever think.

← PreviousPage 2 of 9Next →