While upgrading my WordPress installation, I decided that the permalink structure’s inclusion of the “/archives” string was superfluous. http://www.laurenwood.org/anyway/2007/10/04/sample-post/ contains as much relevant information as http://www.laurenwood.org/anyway/archives/2007/10/04/sample-post/. So I changed the permalink structure, and also installed Dean’s Permalinks Migration to take care of the 301 redirection of links to the old URLs. So far it seems to work fine; if you don’t like your permalink structure any more but don’t want to risk people getting 404s, try it out.
Year: 2007
Personality Types
I’ve worked at companies that did Myers-Briggs/Keirsey temperament testing on people, and just for fun decided to try out another couple of tests over the last couple of months, most recently at mypersonality.info. It seems my personality type wanders, from INTJ to INTP and over to ISTJ. Either that, or I look at myself differently on different days, or respond unexpectedly to nuances in questions. At least two of the four axes are reasonably stable, even if the other two aren’t. Fortunately nobody I know takes this stuff too seriously; as the sites say, these are all tendencies rather than absolutes.
Another interesting point: all three of those personality types are said to be more prevalent in males than females. And probably more prevalent in the career path I’ve chosen as well.
Sun’s OpenID IdP: Summary
I’ve now finished my current batch of postings about Sun’s OpenID IdP. Here’s a listing of the relevant postings that the team has made. I’ll add new postings to this list as they’re published, or as I find them.
- Purpose and Policies
- Architecture
-
- Hubert Le Van Gong’s OpenID @ Work — Architecture
- Hubert Le Van Gong’s OpenID @ Work — Infrastructure Description
- Deployment
-
- Yvonne Wilson’s User-centricity, Trust: Technology or Practice?
- Eve Maler’s Sun OpenID IdP: protocol and implementation review
WordPress and File Masks
I upgraded to WordPress 2.3 at the weekend. Everything seemed to upgrade properly with no database errors, but I was getting a 500 Internal Server Error when I tried to look at the site pages. The error logs contained the answer – error: file is writable by others with a pointer to the main index.php file. This seemed a little odd to me, but I looked at the mask and sure enough, the index.php file (and a whole lot of others) was group-writable. I changed the mask on the directories to 755 from 775, and the files from 664 to 644, and then everything worked just fine.
I also changed the stylesheet; still tweaking but it’s mostly done. Comments welcome!
Sun’s OpenID IdP: Trust
Part of a series on Sun’s OpenID@Work initiative; see the introduction for more context.
Trust is always an issue on the web. People don’t usually even think about it, but they trust the DNS server to point their browser at the right web site when they click on a link, they trust the web server to serve up the right page, they trust their online bank to not broadcast their credit card numbers to the world, etc. etc. We as end-users can’t do anything about most of those, but there are some things that we can do, such as not giving banking details to sites that don’t look like our bank’s, or only giving out our social insurance numbers when we really have to. Knowing some of the issues and potential problems is important — you want to verify as much as possible whether your trust in the site is justified. So you don’t click on links in emails that don’t quite look right, and you check whether the little “locked” sign is present (assuming your browser hasn’t been hacked). Lots of people don’t trust internet systems with their personal data at all, deciding that the advantages of online interactions are outweighed by the potential damage if something goes wrong (there’s that risk assessment again that I talked about in the Business Purpose posting of this series).
So what’s this got to do with OpenID? Quite a lot, actually.
OpenID is an untrusted protocol, at least for version 1.1, which is the one we deployed on the OpenID IdP, and it’s likely to be true for version 2.0 as well, although that isn’t finished yet. As the OpenID web site says: This is not a trust system.
. Among other things, you don’t know anything about the site you’re logging into, it might be genuine, it might be a phishing site, it might be some other rogue site. And there’s no way currently for the Identity Provider to know. In other words, just because you can log into it with your openid identifier, doesn’t mean anything about what that site might do with any data or information you might give it. Which is one good reason why Sun’s OpenID IdP does not hand over information from the user’s account to the consuming site (relying party) unless the user agrees to it. You’re the person logging in, you can decide whether to trust that site with any information, whether that’s your openid identifier, or your name (possibly fake) or email address. And Sun’s system doesn’t ask for or store your date of birth, so if some site wants it (why would always be the right question to ask), feel free to answer correctly or with some completely random date (in fact, many privacy advocates say you should never tell any web site your real date of birth if there’s any way of legally avoiding it). Even handing over your openid identifier to some site can cause problems, if they then use it for purposes you didn’t expect and don’t agree to. Since this is an opt-in system for personal use, Sun wouldn’t bear any liability if you did fall prey to a phisher or other rogue while using your Sun openid identifier.
The upshot of this is that OpenID shouldn’t be used for what are called high-value transactions, at least in its current incarnation. High-value transactions are things such as logging in to your banking system, or releasing sensitive personal information such as your medical history. Typing “openid phishing” or “openid attacks” into your favourite search engine will give you some idea of the sorts of attacks that are currently possible. Some of these will be relatively easy to mitigate, and some aren’t really worth mitigating for the sorts of use cases that OpenID was designed for, as they would make the resulting protocol much harder to implement and deploy. And let’s face it, the idea behind OpenID was to have something easy and lightweight to deploy that meets some, but not all, authentication use cases.
Related articles include Steven Nelson’s So you wannabe an OpenID provider?, Eve Maler’s A Tincture of Trust, and Yvonne Wilson’s Trusted Sources of Information. Simon Willison has a slightly different take in Designing for a security breach. And if you want a more formal definition of trust and some of the issues around it, try Trust Modeling for Security Architecture Development.
Sun’s OpenID IdP: Real vs Fake
Part of a series on Sun’s OpenID@Work initiative; see the introduction for more context.
Probably the biggest discussion we had in the entire policy discussion was whether to let Sun employees use fake or fictitious names, or whether to force the use of real names in what the OpenID simple registration extension calls the fullname. The policy discussion has value outside of the narrow scope of an OpenID IdP, and the discussions we had reflect the importance of the issue for any sort of identity management system.
Note on terminology: in this post, I’ll use the term “name” to mean the OpenID “fullname”.
There are two competing principles at work here, and making a decision as to whether to allow fake names and non-identity-revealing openid identifiers depends on which is considered more important. The argument for allowing fictitious names is based on privacy, and the principle that any time you can allow the user to retain privacy, you should. Storing Personally Identifiable Information (PII) should be avoided whenever possible. Since the OpenID service that we’re providing is an opt-in, personal service that Sun employees do not need to use for any Sun business processes, there is no business reason that requires the use of their real names (auditing accesses to certain files, for example, would require knowing the user’s real name, so these processes can’t use these openid identifiers). Even in the case of some store giving a discount to a Sun employee, the store needs to know where to ship the item and which credit card to charge it to, but the OpenID IdP doesn’t need to know any of that information. The IdP verifies only that the user is a Sun employee, nothing more. So the privacy advocates are in favour of allowing fake names, email addresses that aren’t Sun addresses, and storing as little information as possible. Of course, if someone wants to be really private, they shouldn’t use an openid identifier from Sun, as that divulges the piece of information that they are a Sun employee.
The case against allowing the use of fake names is a security and liability one. If someone can use a fake name, that means they can also use someone else’s name or an openid identifier that might lead people to believe the user is someone they’re not. Since Sun is providing the OpenID service, people might think that Sun is also guaranteeing the veracity of information about the user other than the mere fact that they work for Sun (we’re not, Sun verifies only that the user is a Sun employee, nothing else). Such impersonation could cause reputation damage that could take some time to repair, particularly if the user does something stupid or illegal.
The solution we came up with was a compromise. Users can choose a fake name, a non-Sun email address, and an openid identifier that doesn’t say anything about them. The OpenID IdP stores the information about which Sun employee signed up for that openid identifier, so in the event of a problem, we can trace it back. When a Sun employee leaves the company, the openid account is made inactive. It’s deleted after 6 months. This way there’s a time gap if someone else wishes to use the same openid identifier, and 6 months is a reasonable amount of time to keep such records in case there’s a problem. We also keep the web server logs for 6 months; since these contain the records of which openid identifier visited which site (though not where they went or what they did once there) these are only visible for compliance reasons (I’ll talk more about the data governance in another post). And finally, the user policy states specifically that impersonation is not allowed, and that information about who signed up for each openid identifier is stored for compliance reasons. Telling the user that we know who they are and what their openid identifier is may help prevent problems, at least that’s the hope.
If the policy is abused, then we may have to change it, but so far we don’t know of any problems. Sun’s experience with bloggers has shown that people do take their responsibilities as Sun employees seriously, and are careful what they say and how they say it, and we saw no reason why that should be any different for Sun employees using the OpenID service. Of course, there’s no way of making sure that people really do read the policy, just like there’s no way to make people read the licences for software packages that they install, but at least the information is available for those who care to look. And to sign up for an account they have to agree to a disclaimer that contains the most important parts of the policy as well, so there’s some hope that they will read it.
A related post is Yvonne Wilson’s User-centricity, Trust: Technology or Practice?.