Re: Need for security model

Low Zhen Lin <[email protected]> Tue, 09 Dec 2003 21:59:55 +0800
Newsgroups gmane.linux.zynot.general
Message-ID <F7C4E835-2A4F-11D8-88A4-0003937E7712__31435.3196685717$1070978475@streamyx.com>
On Tuesday, December 9, 2003, at 04:11  AM, Chris Frey wrote:

> On Sun, Dec 07, 2003 at 12:48:36AM +0800, Low Zhen Lin quoted a spec:
>> ~    * Authentication
>> ~          o Server authentication: Clients must be able to verify 
>> that
>> ~            they are communicating with a valid server.
>> ~          o Client authentication: Servers must be able to verify 
>> that
>> ~            clients are valid.
>> ~          o User authentication: There must be a way to verify that
>> ~            user is who he claims to be.
>> ~          o Authorization: What level of user rights are granted 
>> after
>> ~            authentication. Is user or client granted only the right
>> ~            to browse, or to carry out installs? Is user or client
>> ~            permitted to make operations that builds new toolchains 
>> or
>> ~            are they constrained to using the services that are
>> ~            already offered only?
>
> What is Xeta?  Is it a build manager?  Is it a download manager?
> Is it a file transfer protocol?  Is it a web server?  Is it is an
> rsync server?  Is it all of the above? :-)

Much of that. It is the build manager, download manager, package 
manager among some other things. It will be distributable, meaning, you 
can run the components on different computers, but it will be able to 
form one coherent whole.

> I still don't understand why Authentication is part of Xeta (probably
> because I don't understand completely what Xeta is trying to be).
> There are other protocols and means of doing this, but if Xeta is
> integrating this for ease of use, I suppose that could be handy.

Obviously, when doing something as crucial as system management, no 
man-in-the-middle attacks can be allowed. In fact, no attacks can be 
allowed. The fact that it happens over the network makes it open to 
attacks. Authentication is needed to ensure that the services are being 
used by an authorised person... To ensure that the data is authentic 
and has not been tampered with... To ensure that you are in fact 
speaking to the correct node and service.

>> ~    * Access control: Control of permissions to resources. Does user
>> ~      or client have access to XBuild A, but not to XBuild B? Does
>> ~      user or client have access to using toolchain A, but not
>> ~      toolchain B?
> Xeta is going to control this?  How?  With kernel help?

Since Xeta is based on a multi-tiered model, what the client can do can 
and must be controlled server-side. Even clients on the local computer 
will have to communicate via IPC of sorts. Therefore... It will not be 
necessary to invoke the client as root... But, the server is running as 
root. Thus, the client cannot be trusted - some form of authentication 
and access control must be implemented.

Perhaps with the help of PAM.

> For example, suppose I have access to the C compiler toolchain, but not
> the java compiler toolchain.  Will I not be able to run the java 
> compiler
> on the machine even from the command line?  And if I can, how will
> Xeta stop me from using the java toolchain?

You already have the root password... who needs Xeta?

>> ~    * Integrity: Verify that data has not been modified in transit
>> ~      over network.
>
> This is the #1 feature that I'm looking for and hoping for from Xeta
> and Zynot in general.  This is regarded as so unimportant by so many
> people that I find it shocking, and I'm glad Zynot is making it a
> primary design goal.

MD5sums are present in Gentoo - this is a necessary feature if we are 
to claim superiority to Portage. However... MD5sums are easy to 
recompute.... Which is why we are also planning to make use of 
cryptographic signatures.

> I would prefer this integrity to rely on as few points of failure as
> possible: i.e. something like a developer-signed XBuild, and not
> something that ever relies on the security of the server or mirrors
> holding the data.

As few? I'd rather install integrity checks at every point possible.

>
>> ~    * Confidentiality: Protect data in transit against eavesdropping.
> Sounds good, but seems to me to be more of a fluff feature, for what
> I imagine Xeta being used for.  Does it matter if someone is able
> to sniff the wire and find out I installed the latest binutils?
> I'm willing to be convinced that it does matter, but so far can't
> class it as a critical need.

No... But they could use the information that you're about to start a 
KDE compile on the webserver and launch a DDOS attack. You're right 
that this is not a critical need... But what is one to do when the PHB 
says, nothing leaks out of the computer network?

>> ~    * Non-repudiation: Make sure that no client, server or user is
>> ~      able to deny a transaction after it happened.
>>
>> Some thoughts about single sign-on and trust between Xeta units would
>> be welcome. A security boundary could be established, and effectively
>> it could work, not only for Xeta, but the others tools that will
>> complement it in the  future. All nodes within a Zynot security
>> boundary will most likely have Xeta or some Xeta component installed.
>> How can we leverage this to extend the management capabilities of our
>> tools?
>
> Is discussion of Xeta and Zynot development happening outside the 
> mailing
> lists, perhaps in irc?  Are there logs of irc meetings that can be
> read somewhere?  Couldn't find it with a cursory glance at the 
> website...

Mostly IRC. Realtime discussion is good. I can provide logs, but since 
my personal computer failed, I can't get to them. Obviously, they are 
also gaps from the time when my IRC client was not active and I was not 
able to restart it.

If you're wondering about the integrity of this message... I cannot 
cryptographically sign it - owing to the fact that I am not sending 
this from my personal computer.

Please post all future followups to [email protected] - only the 
initial message goes out to both. Duplication is bad.