linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: linux-hotplug@vger.kernel.org
Subject: Re: Hotplug, 1394, and security
Date: Sun, 27 Nov 2005 13:39:54 +0000	[thread overview]
Message-ID: <4389B72A.2040804@s5r6.in-berlin.de> (raw)
In-Reply-To: <20051125213209.GZ20781@conscoop.ottawa.on.ca>

Jody McIntyre wrote:
> On Sat, Nov 26, 2005 at 12:29:19AM +0100, Stefan Richter wrote:
> 
>>>- Create /dev/bus/ieee1394, which will look approximately like:
>>>0/	- representing the first ieee1394 port
>>>ffc0	- node 0 on first port
>>>ffc1	- node 1
>>>iso	- isochronous traffic
>>>arm	- address range mappings
>>>1/	- second port
>>>ffc0	- ...
>>>iso 
>>>arm
>>
>>What is the purpose of this split of device nodes?
> 
> Different nodes can have different permissions.  For example, a device
> that only implements sbp2 could be accessible only to root.

OK, that's sensible. Although users/ admins should to be aware that 
device files of nodes with different subunits inherit permissions of 
their least protected subunit. Of course there are not many 
multi-protocol devices, except PCs. I.e. if you ran an AV/C unit on a 
remote PC (or on the local PC), the local Linux PC would grant liberal 
access to it.

How are permissions handled during the time after a bus reset until unit 
capabilities are known? They should be probably reverted to a default 
mask. This default mask could be the same as for /dev/raw1394, i.e. 
usually restricted to access by root. Unit capabilities have to be 
determined as fast as possible in order to restore useful permissions.

>>I take it ffc# device nodes are meant for asynchronous read, write, and 
>>lock access. Do asynchronous streams get an extra device node, or should 
>>they be one with the iso device node?
> 
> We don't currently support asynchronous streams via raw1394, but if we

Raw1394 and libraw1394 do support async streams AFAIU from the sources.

> did we could add a "gasp" entry or just have them available via "iso".
> I don't know which is the best approach - it's probably up to whoever
> implements gasp.

[...]
>>>- Should the node entries in /dev/bus/ieee1394 allow complete access to
>>> that node or should we attempt to filter potentially harmful
>>>activities like writes to core CSR registers (RESET_START, timeouts,
>>>etc.)
>>
>>Which activities are harmful, which are not? --- Even read transactions 
>>may be harmful.
> 
> Do you know of any cases where read transactions are harmful?

Read access to the physical address range of PCs with OHCI interface.

> Writes to core CSR space are potentially harmful, at least from a denial
> of service point of view, and I don't see any reason for non-root to do
> them.

OK, it is sensible to deny write access to well-known registers. But 
what would enforce this policy? The kernel or userspace? Userspace can't 
really do that since a patched libraw1394 suffices to circumvent it.

>>I really think the only security model which fits the IEEE 1394 
>>architecture (and OHCI architecture) is "all or nothing".
> 
> Neither OSX nor Windows have this type of security problem, and they

I admit I don't know anything about 1394 programming interfaces of other 
OSs.

> both at least claim compliance.  I don't see anything in the spec that
> supports this claim.

IEEE 1394 itself does not explicitly deal with security matters, except 
for IEEE 1394a annex C1. This is 2/3rd of a page, out of 974 pages of 
IEEE 1394 including its two amendments. (OTOH a good security spec 
should be brief... Does it mean 1394 security is inherently strong? :-) 
Security implications of the OHCI spec's physical DMA feature have been 
discussed at linux1394-devel recently. The SBP-2 spec offers only 
marginal security features. I am not familiar with other protocol specs.

BTW, does anybody know of 1394 related protocols which require 
application layer software (except bus and node management layer) to 
issue bus resets, or to send or receive physical layer packets (1394a 
4.3.4)? I hope there are none.
-- 
Stefan Richter
-===-=-=-= =-= =-=
http://arcgraph.de/sr/


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id\x16865&op=click
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2005-11-27 13:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-25 21:32 Hotplug, 1394, and security Jody McIntyre
2005-11-25 21:49 ` Kurt Konolige
2005-11-25 22:52 ` Jody McIntyre
2005-11-25 23:29 ` Stefan Richter
2005-11-26  6:52 ` Kurt Konolige
2005-11-26  7:07 ` Stefan Richter
2005-11-27  5:03 ` Jody McIntyre
2005-11-27  5:28 ` Jody McIntyre
2005-11-27  5:45 ` Kurt Konolige
2005-11-27 13:39 ` Stefan Richter [this message]
2005-11-27 13:50 ` Stefan Richter
2005-11-27 13:55 ` Stefan Richter
2005-11-28 22:30 ` Jody McIntyre
2005-11-29  0:08 ` Stefan Richter
2005-11-29  5:43 ` Jody McIntyre
2005-11-29  7:57 ` Stefan Richter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4389B72A.2040804@s5r6.in-berlin.de \
    --to=stefanr@s5r6.in-berlin.de \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).