RE: security doc - Definition of Trust

"Jim Pinkerton" <[email protected]>
Newsgroups gmane.ietf.rddp
Message-ID <E6564B8F86852D46A4E98C485FB33B8F03AFA952@WIN-MSG-10.wingroup.windeploy.ntdev.microsoft.com>

I think your point at the end is a good one:

> Virtually all implementations *will* be in hardware and/or kernel based. 
> When the RNIC engine requires *special* privileges then a Resource Manager
> is indeed a requirement.

Thus using language that maps well to that environment while not restricting in any way the implementation seems appropriate. That was the approach intended by the authors. If you note, in the text we tried to be extremely careful to define terms. I think part of the issue here is you aren't applying the strict definitions in the paper. You're adding your own baggage as to what "privileged" means, and whether that applies to hardware or software implementations.

From the ID, there is never a mention of user-mode verses kernel mode, other than in an example (or at least it was not intended, and we'll fix it if there is!). Same for what is done in hardware vs. software - there is never a distinction made - both are implementation issues. We dealt only with "Privileged" and "Non-Privileged".  In the context of an application, the contrast was defined as:

"The Privileged Application is partially trusted. It is assumed that the Privileged Application will not intentionally attack the system (e.g., it is a kernel application), although it may be greedy for resources."

"A Non-Privileged Application's capabilities are a logical sub-set of the Privileged Application's. It is assumed by the local host infrastructure that a Non-Privileged Application is Untrusted. All Non-Privileged Application interactions with the RNIC Engine that could affect other applications need to be done through a Trusted intermediary that can verify the Non-Privileged Application requests."

Further in the specification, the Privileged Application Data Transfer Interface is defined to be a superset of the Non-Privileged Application Data Transfer Interface:

"Privileged Data Transfer Interface - A superset of the functionality provided by the Non-Privileged Data Transfer Interface. The application is allowed to directly manipulate RNIC Engine mapping resources to map an STag to an application data buffer."


Not sure if this helps or not, but I wanted to make sure you understood the intention of the authors. We tried very hard to be generic - I think the biggest issue I see here is you believe using the word "privileged" implies something, but the document does not appear to support your assumptions?


Jim




-----Original Message-----
From: Caitlin Bestler [mailto:[email protected]] 
Sent: Tuesday, July 22, 2003 5:13 PM
To: Jim Pinkerton
Cc: [email protected]
Subject: Re: [rddp] security doc - Definition of Trust


On Tuesday, July 22, 2003, at 06:49 PM, Jim Pinkerton wrote:

>  
>
> Your statement:
>
>  
>
> > For example, RDMAP/DDP could be implemented as a user-mode library
>
> > running on top of a traditional stack. If it only exposed the
>
> > applications
>
> > own memory then there is no need for a "Privileged Resource Manager".
>
> > The looser rule, that the local interface grant the RNIC Engine no
>
> > authority that the caller itself did not have, is met by simply
>
> > running within the process.
>
>  
>
> Is exactly where you need a resource manager. There are fixed 
> resources available, presumably (no-one has invented an infinite 
> memory computer yet...) For example, on many systems random user can 
> launch any user-mode code they wish. Thus anyone running on the system 
> can attempt to be greedy and grab as much RNIC resources as possible, 
> thereby making a DOS attack possible against other user mode clients, 
> so long as they get the resources first. You could certainly argue you 
> don't care about this attack - but it doesn't mean you shouldn't have 
> a clean way of modeling the attack and showing those that care about 
> this type of security issue how to address the attack.
>
>  

The "RNIC" has limited resources, because it is software running
*within* the context of the user process.

Typically a Privileged Resource Manager is required because the
RNIC is hardware that executes in a context where the OS cannot
veto its actions. On most platforms, hardware must be trusted.

That is different than the common "OS bypass" model, where a
user-mode library interfaces  more or less directly with the RNIC.
You are quite correct that under such a model, a Privileged
Resource Manager (or some equivalent) is required to validate
the resource authority of each of these libraries.

This is mostly a language point. The security draft should
deal with all implementations. It is of course totally
appropriate to point out that typically the RNIC Engine
must operate with system-wide privileges. And that requires
the existence of a Privileged Resource Manager.

But you *can* implement the protocol without assuming system-
wide privileges. It may even be possible to have a Java Applet
client. It would be silly, but it would be a legal client.

>
>  
>
> On another issue, I don't understand your statement of
>
>  
>
> " The descriptions of the Privileged Resource Manager
>
> presume a multi-process Unix/Windows style OS dealing with
>
> an RNIC Engine implemented primarily in hardware and/or
>
> fully enabled (i.e., kernel) memory space. That's certainly
>
> 99.99 whatever % of the world, but it isn't everything."
>
>  
>
> Where in the document does it make that statement? The document 
> specifically defines it as:
>
>  
>
> "Privileged Resource Manager - the component responsible for managing 
> and allocating resources associated with the RNIC Engine. The Resource 
> Manager does not send or receive data."
>
>  
>
> It makes no statement about whether an operating system is present, 
> whether an RNIC is in hardware or software, whether the resource 
> manager is a procedure or a separate process, etc. It was meant to be 
> as generic as possible.

The concept that access to resources needs privileged control assumes
that the RNIC is operating in a context that is at least partially
something other than normal user software.

> If we simply clarify the text, does that help? Maybe something like:
>
>  
>
> "Privileged Resource Manager - the component responsible for managing 
> and allocating resources associated with the RNIC Engine. The Resource 
> Manager does not send or receive data. Note that whether the Resource 
> Manager is an independent component, part of the RNIC, or part of the 
> application is implementation dependent. If a specific implementation 
> does not wish to address security issues resolved by the Resource 
> Manager, there may in fact be no resource manager at all."
>
>
>

The real distinction is not whether an implementation *wants* to address
security issues, it is a question of whether the implementation needed
to be placed outside of the normal OS-specific security mechanisms
(i.e., it is running in hardware and/or the kernel). Does the RNIC
engine require privileges that a simple user process would not have,
such as accessing memory in multiple user maps?

Virtually all implementations *will* be in hardware and/or kernel
based. When the RNIC engine requires *special* privileges then a
Resource Manager is indeed a requirement.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.