CS PAPERS DEEP-READ · PAPER 69

The Protection of Information in Computer Systems

Saltzer & Schroeder · MIT · Proceedings of the IEEE · 1975

中文 →

What did this paper do?

In 1975, Jerome Saltzer and Michael Schroeder of MIT took the scattered folklore of "how to make a shared computer hard to break into" and distilled it into eight design principles. The "Allow this app to access your photos?" prompt on your phone, two-factor banking logins, a firewall that forwards nothing by default — all of it traces back to these eight.

The pain of the old world

Earlier computers were one machine, one person: security meant locking the machine room. Then, in the 1960s and 70s, time-sharing arrived — one big machine serving dozens of people who did not know each other, their programs and data all jammed together. For the first time the walls had to be built inside the machine. The practice of the day was whack-a-mole: find a hole, patch the hole, until nobody could say what the system actually kept out.

They changed the question

Stop patching holes one at a time, the authors said, and ask instead: what should a secure system look like by design? Their eight answers are all plain speech:

How the gatekeeper works

Fold the eight into one picture: the system has a gatekeeper, and you pass him before you touch anything. He does two things — first confirm who you are, then check whether you may. Those are different questions: recognising you as Alice does not mean Alice may walk into payroll.

"Whether you may" is really one enormous table: people down the side, things across the top, and in each cell what that person may do to that thing. The table is far too big to store whole, so there are two ways to slice it — pin the list to the door of the thing (that is how file permissions work), or hand out keys to people (that is a badge, or the token in your browser after login). The difference is concrete: you can strike a name off a list at any moment, but once a key is out you have no idea how many copies exist.

And the hard part is never the gatekeeper himself — it is whether some window was left unguarded. Leave one path around him and all the rest of the work is wasted.

What it gave us

The eight gave the whole industry a checklist you can actually walk: is the default open or shut? Is there a path around the check? One honest note: they are warning signs, not a form to tick — nobody can prove they really achieved "only the privilege needed."

Remember this

Security is not patching holes after the breach; it is holding eight pieces of common sense at design time: shut by default, check every time, keep the mechanism small enough to read, publish the design but not the key, require two keys, grant only what is needed, share less machinery, and make it pleasant enough that people comply.

Want the gatekeeper model, the two ways to slice an access matrix, and the ring diagram? → Switch to the deep read