Tue, 08 Jun 2004
|
Don't add security, remove insecurity!
Lately i've been spending a lot of time studying (IE trying to grasp)
capability based systems. The basic idea is that each program in a
system has a set of capabilities, and can do nothing else in the system
(in fact doesn't even know any more about the system) then the
capabilities it has. To follow the example used in the
soon-to-follow-link, Solitaire has rights to make archives of your
confidential email and sell them on ebay, when all it really needs
is the rights to write to its window area, and save the highest score
for future program executions.
EROS looks to be one of the
only active capability based operating systems at the moment. The
design is actual quite fascinating, and includes system persistence.
(IE: pull the power plug out of the wall, plug back in and return to
the state before incident) Unfortunately, the documentation seems
to be sparse; several of the more practical parts of how the system
works have been more trouble to me then the theory.
Tonight i ran across a colloquium by Mike Miller, Building
a Virus-Safe Computing Platform Don\'t Add Security, Remove
Insecurity, which filled in a lot of the missing pieces. What
follows are some of the high points from the lecture.
-
Its informative to notice the subtle difference between
two ways of copying files:
cp foo.txt bar.txt
cat < foo.txt bar.txt
Invoking cp, you tell it what file paths you are interested in,
and it is responsible for opening those files. As such it needs all of
the permissions that you have, and you have to trust that its not
going to misbehave in the zillions of ways that it could. On the other
hand, cat is passed two file descriptors--it really doesn't
have to have access to anything else to do its job!.
-
Capability based systems are reliant on TCBs (trusted computing
bases) to delegate access. Each TCB has all the access it needs for
the domain its responsible, and passes those rights off to sub
processes on a need-to-know/need-to-do basis. Following the cat
example used above, the user's shell is a TCB, which has all the
rights of the user; it passes rights to read foo.txt and write
to bar.txt to the cat process.
-
Carefully designed TCBs and UIs can largely be coupled, again as
seen in the cat example. So rather then popping up windows
asking the user if they want to give such and such applet such
and such access (not to mention any names like java), the UI can
use the user interaction to provide data needed disseminate
capabilities.
-
Actually, this is true on a more fundamental level. Capabilities can
be passed around in the same way, and at the same time that normal
data references (object, whatever..) are passed around. Actually, this
is all that is needed for a capability system; any more and any less
erode the system. For example, if there are global variables in the
system, that is a mechanism for capabilities to be obtain and/or
distributed in non-need-to-know basis. Calls such as open(2)
are similar in nature in eroding the system.
-
Language/system designers usually think about security after they've
added features such as mentioned above, and then try to patch things
up by adding ad hocishness, rather then removing the impure features.
Combex, the company which
Mike Miller seems to be associated with, has a variety of papers and technology that might be of
interest.
[2004.06.08 05:26] |
[technical] |
#
|
Wed, 05 Nov 2003
|
Structure and Interpretation of Computer Programs
Recorded back in the 1980s, but still as relevant as lisp is today,
this freely available lecture series, Structure
and Interpretation of Comptuer Programs is really a very fascinating
and entertaining way to learn about scheme, as well as see some of
the enlightening aspects of lisp. This has to be about the only
intro-to-programming class in the world which is building a symbolic
calculus program by the sixth hour of class!
Regarding Lisp, Sussman offered the following piece of wisdom:
``Lisp is a lousy language for doing any particular problem; what it's
good for is figuring out the right language that you want and embedding
that in Lisp'' -- Gerald Jay Sussman
[2003.11.05 01:34] |
[technical] |
#
|
Fri, 22 Aug 2003
|
Sex has a Price Tag
The radio had an interesting speech i stumbled across; information that
is not getting a lot of air-time: sex has a price tag. While true, that
this information is mostly irrelevant if following the Bible, no man is
an island, and we are called upon at random times to provide information
and evidence to others who are in need of such.
You can listen to the speeches, sex has
a price tag, with real audio.
There is also an interesting twist in part one where the speaker gives
her personal testimony regarding abortion. That starts around 17.0
minutes into the real audio stream.
[2003.08.22 18:44] |
[] |
#
|
Sun, 16 Feb 2003
|
``Free Code, Free Labor'' by Larry Lessig
Larry
Lessig gave an excellent presentation at the Stanford Computer
Systems Laboratory Colloquium on Feb 20, 2002. The topic of
choice was that of IP and included sub-discussions on topics such as
Open Source Software and the
entertainment industry.
One very interesting point that is briefly mentioned is the fact that
lawyers write code, but by law their code is public domain: anyone is
free to draw on existing laws, arguments, etc. for their own benefit,
gratis. Why can't software be written in the same way? This very well
works with a number of comments made by Tom Lord on the Arch
Users Mailing list (See mailing list posts: Arch
for package management, Arch
for package management II, and business
proposal: arch revision control).
The basic idea is that code is free. Todays IT departments are
replaced (or rather upgraded) to centers (in-house or out-sourced)
which, given a company need, do what it takes to get software to solve
that problem. This may be as simple as installing software from an
existing project, or modifying an existing project, or creating an
entirely new project. This very well solves the question of Won't
programmers starve? (See also the GNU Manifesto). Now,
just like lawyers, programmers are experts who are paid well to glue
together solutions, to stand on shoulders, and achieve the needs of
their clients.
Many societal benefits can be seen in this model.
- The cost of entry is low for newly developing countries, poor
communities, small businesses, etc.
- Businesses will have software that exactly matches their
needs. If they need a word processor, except with a twist, they have it
for low cost, rather then trying to make due with what they can get in a
box.
- Programmers will be working much closer to their clients problems,
thus coming much closer to eliminating the effect of solving problems
or adding features that nobody is really interested in.
- Programmers will be doing much more standing on shoulders
rather than reinventing the wheel.
- Software updates can be much faster and safer. Right now a big
obstacle to installing binary security fixes is often the granularity of
them. For instance, some big company fixes a big security whole in their
webserver. In the same patch though, they also upgrade some parts of
their software and end up breaking some needed features. Using something
like the arch-Tech
would allow the individual IT departments to review the source code for
security fixes, and know exactly what parts of the system will
potentially be effected.
- Open Source projects would get much better funding, and the rate of
ingenuity would soar.
- With program source code, and an intelligent IT department,
companies would not have to be locked into particular sets of hardware,
or even combinations of softwares.
Oh yeah, you can view the (obviously inspiring) presentation
of Lessig by going to the Stanford University Computer
Systems Laboratory EE380 Colloquium Schedule for 2001-2002,
searching for Larry Lessig, and clicking on
the camera icon found on the right of the line. MPlayer can
be used to view the presentation, as documented on the Linux Player
for Colloquium Tapes page.
[2003.02.16 07:08] |
[] |
#
|
|
|
Categories
/ (77) articles/ (33) health/ (1) humor/ (2) religious/ (7) technical/ (19) books/ (9) general/ (5) health/ (1) technical/ (3) humor/ (6) meta/ (1) poetry/ (1) quotes/ (11) rambles/ (8) reviews/ (1) speeches/ (6) technical/ (3) tips/ (1) mac-osx/ (1)
Archives
2005-Oct
2005-Sep
2005-Aug
2005-Jul
2005-Jun
2005-May
2005-Apr
2004-Oct
2004-Sep
2004-Aug
2004-Jul
2004-Jun
2004-May
2004-Apr
2004-Mar
2004-Jan
2003-Dec
2003-Nov
2003-Oct
2003-Sep
2003-Aug
2003-Jul
2003-May
2003-Apr
2003-Mar
2003-Feb
|