public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Doug Ledford <dledford@redhat.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	Tom Talpey <tom@talpey.com>
Cc: 'Christoph Hellwig' <hch@infradead.org>,
	Sagi Grimberg <sagig@dev.mellanox.co.il>,
	Steve Wise <swise@opengridcomputing.com>,
	sagig@mellanox.com, ogerlitz@mellanox.com, roid@mellanox.com,
	linux-rdma@vger.kernel.org, eli@mellanox.com,
	target-devel@vger.kernel.org, linux-nfs@vger.kernel.org,
	trond.myklebust@primarydata.com, bfields@fieldses.org,
	Oren Duer <oren@mellanox.com>
Subject: Re: [PATCH V3 1/5] RDMA/core: Transport-independent access flags
Date: Fri, 10 Jul 2015 13:56:36 -0400	[thread overview]
Message-ID: <55A00754.4010009@redhat.com> (raw)
In-Reply-To: <20150710161108.GA19042@obsidianresearch.com>

[-- Attachment #1: Type: text/plain, Size: 5430 bytes --]

On 07/10/2015 12:11 PM, Jason Gunthorpe wrote:
> On Fri, Jul 10, 2015 at 09:22:24AM -0400, Tom Talpey wrote:
>> and it is enabled only when the RDMA Read is active.
> 
> ??? How is that done? ib_get_dma_mr is defined to return a remote
> usable rkey that is valid from when it it returns until the MR is
> destroyed. NFS creates one mr early on, it does not seem to make one
> per RDMA READ?
> 
> For the proposed iSER patch the problem is very acute, iser makes a
> single PD and phys MR at boot time for each device. This means there
> is a single machine wide unchanging rkey that allows remote physical
> memory access. An attacker only has to repeatedly open QPs to iSER and
> guess rkey values until they find it. Add in likely non-crypto
> randomness for rkeys, and I bet it isn't even that hard to do.
> 
> So this seems to be a catastrophic security failing.

As I recall, didn't the NFSoRDMA stack do even worse in the beginning
(meaning it previously had a memory model that was simply "register all
memory on the client and pass the rkey to the server and then tell the
server when/where to read/write", which was subsequently removed in
Chuck's NFSoRDMA cleanups over the last 5 or so kernel versions)?

I'm not bringing this up to downplay the current iSER issue, but to
demonstrate that we have long had a different trust model than the one
in RFC5042.  More below on that.

>>> From there, it is a logical wish: If Steve is going to FRMR'ize iSER
>>> to be acceptable security wise, I'd rather see that work done on in a
>>> general way. Hence the API discussion.
>>
>> Well, it's important to realize that NFS already does the Right Thing.
>> So it isn't actually an urgent issue. There is time to discuss.
> 
> It depends on what is going on with iWarp iSER. If the iWarp community
> thinks it should go ahead insecurely then fine, put a giant warning in
> dmesg and go ahead, otherwise iWarp needs to address this difference
> with a proper generic API, which appears, must wrapper
> ib_post_send. Harder job :\
> 
> I'm sorry Steve for leading you down the wrong path with these flags,
> I did not fully realize exactly what the iWarp difference was at the
> start :(

Are there security issues?  Yes.  Are we going to solve them in this
patch set?  No.  Especially since those security issues extend beyond
iSER + iWARP.

There are currently 4 RDMA capable link types/protocols.  Of those 4, 3
enforce locality (IB, OPA, RoCE all require lossless fabrics and cannot
be sent out into the wild internet).  RFC5042 is written with iWARP in
mind because it *can* be sent out over the Internet and therefore it is
possible for someone to place an RNIC card directly on the Internet and
it must therefore deal with all of the attack vectors this entails.

The linux RDMA stack, as a whole, is no where near RFC5042 compliant.
And it isn't just the kernel space at fault here.  Early versions of
opensm used to require that the master and slave machines must have
passwordless root ssh access to each other to copy around the guid2lid
file so when the master failed over, the slave would have an up to date
list.

Because 3 of the 4 RDMA technology types enforce localized clusters, the
majority of the stack and the implementations have utilized the cluster
as the point of trust.  In truth, I think it's simply been the easy way
to do things.  RFC5042 is very clearly a non-trust model where each
machine, and each connection, is assumed to be a threat.

So, long story short(ish):

While this discussion is taking place in the cleanup thread, part of it
involves the preceding patch set: iSER support for iWARP.  Patch 4/5 in
the iSER/iWARP series enables the remote write on device->mr
registration which constitutes the security issue we've been discussing.
 This cleanup patch set, then, is merely guilty of hiding that security
issue, not introducing it.

I think Steve and the other iSER folks should consider the wisdom of
including the iWARP support as it stands.  If they think that the common
use case is in a sequestered cluster, and that the current trust domain
is already not RFC5042 compliant, then I'm OK with enabling iSER support
for iWARP, but I would want there to be a very clear warning in the
dmesg about the trust domain issue.  I might even suggest that the iSER
driver, at least on iWARP connections, could possibly check the src/dst
addresses to make sure that they are in a private IP domain and if they
aren't, refuse to create a connection while emitting an additional
warning about the trust domain.

As far as the cleanup patches are concerned, I'm OK with those too.
However, since we would have added a large warning in the iSER code
about this issue, and that would then go away with the cleanup, the
warning would need to be generalized (such as "module <foo> is
requesting insecure iWARP mappings"), and appropriately WARN_ONCEd on
probably a per module basis or something like that.

From there, we can start to look at the bigger picture of cleanup up the
default trust domain in the kernel and user space both (and soliciting
feedback on that...I have a suspicion that some users will not like us
tightening up security as it might interfere with their usage in their
sequestered clusters).

-- 
Doug Ledford <dledford@redhat.com>
              GPG KeyID: 0E572FDD



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

  reply	other threads:[~2015-07-10 17:56 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-05 23:21 [PATCH V3 0/5] Transport-independent MRs Steve Wise
2015-07-05 23:22 ` [PATCH V3 1/5] RDMA/core: Transport-independent access flags Steve Wise
2015-07-06  5:25   ` Christoph Hellwig
2015-07-06 14:23     ` Steve Wise
2015-07-07  8:58       ` 'Christoph Hellwig'
     [not found]   ` <20150705232158.12029.25472.stgit-PBeJgSbIpn97NCTnQtmixQ@public.gmane.org>
2015-07-06  7:09     ` Haggai Eran
     [not found]       ` <559A2991.3040304-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-07-06 14:29         ` Steve Wise
2015-07-07 14:17       ` Steve Wise
2015-07-07 14:34         ` Haggai Eran
2015-07-07 14:46           ` Steve Wise
2015-07-07 15:07             ` Haggai Eran
2015-07-06  7:53     ` Sagi Grimberg
2015-07-06 14:37       ` Steve Wise
2015-07-06 16:17         ` Sagi Grimberg
2015-07-06 16:55           ` Steve Wise
2015-07-07  9:00           ` Christoph Hellwig
     [not found]             ` <20150707090001.GB11736-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-07  9:14               ` Sagi Grimberg
     [not found]                 ` <559B9891.8060907-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-07 14:05                   ` Steve Wise
2015-07-07 16:17                     ` Jason Gunthorpe
     [not found]                       ` <20150707161751.GA623-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-07 16:27                         ` Sagi Grimberg
     [not found]                           ` <559BFE03.4020709-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-07 21:36                             ` Jason Gunthorpe
2015-07-08  7:29                               ` Sagi Grimberg
     [not found]                                 ` <559CD174.4040901-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-08  8:13                                   ` 'Christoph Hellwig'
     [not found]                                     ` <20150708081320.GB24203-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-08 10:05                                       ` Sagi Grimberg
     [not found]                                         ` <559CF5E8.6080000-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-08 10:20                                           ` 'Christoph Hellwig'
     [not found]                                             ` <20150708102035.GA28421-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-08 11:08                                               ` Sagi Grimberg
     [not found]                                                 ` <559D0498.9050809-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-08 17:14                                                   ` Hefty, Sean
2015-07-09  8:46                                                     ` Sagi Grimberg
2015-07-09 13:52                                                       ` Chuck Lever
2015-07-10 19:34                                                         ` Christoph Hellwig
2015-07-12  7:49                                                           ` Sagi Grimberg
2015-07-13 16:50                                                             ` Jason Gunthorpe
2015-07-14  8:06                                                               ` Sagi Grimberg
     [not found]                                                                 ` <55A4C2FA.9060707-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 12:24                                                                   ` Tom Talpey
     [not found]                                                                     ` <55A4FF93.4090406-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-07-14 13:21                                                                       ` Sagi Grimberg
2015-07-23  0:43                                                                       ` Hefty, Sean
2015-07-08 19:08                                 ` Jason Gunthorpe
     [not found]                                   ` <20150708190842.GB11740-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-08 20:32                                     ` 'Christoph Hellwig'
2015-07-09  0:03                                       ` Jason Gunthorpe
     [not found]                                         ` <20150709000337.GE16812-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-09  8:00                                           ` 'Christoph Hellwig'
2015-07-09  8:58                                           ` Sagi Grimberg
2015-07-09 22:18                                           ` Doug Ledford
2015-07-09 22:53                                             ` Jason Gunthorpe
2015-07-10 13:22                                               ` Tom Talpey
     [not found]                                                 ` <559FC710.1050307-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-07-10 16:11                                                   ` Jason Gunthorpe
2015-07-10 17:56                                                     ` Doug Ledford [this message]
2015-07-10 18:34                                                       ` Chuck Lever
2015-07-10 18:42                                                       ` Tom Talpey
     [not found]                                                         ` <55A01225.9000000-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-07-10 19:54                                                           ` Jason Gunthorpe
2015-07-10 20:48                                                             ` Jason Gunthorpe
     [not found]                                                             ` <20150710195420.GA31500-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-10 22:33                                                               ` Doug Ledford
2015-07-11 10:17                                                               ` 'Christoph Hellwig'
     [not found]                                                                 ` <20150711101736.GA14741-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-13 16:57                                                                   ` Jason Gunthorpe
2015-07-14  7:25                                                                     ` 'Christoph Hellwig'
2015-07-14  9:05                                                                       ` Sagi Grimberg
2015-07-14 15:35                                                                         ` 'Christoph Hellwig'
2015-07-14 17:26                                                                         ` Jason Gunthorpe
     [not found]                                                                           ` <20150714172655.GB24403-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-15  7:10                                                                             ` Sagi Grimberg
2015-07-10 22:30                                                           ` Doug Ledford
2015-07-10 20:57                                                       ` Jason Gunthorpe
     [not found]                                                         ` <20150710205706.GA7883-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-10 22:27                                                           ` Doug Ledford
     [not found]                                                             ` <20150710233417.GA8919@obsidianresearch.com>
     [not found]                                                               ` <20150710233417.GA8919-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-11  3:10                                                                 ` Doug Ledford
     [not found]                                                                   ` <55A0891F.4050105-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-07-13 17:18                                                                     ` Jason Gunthorpe
2015-07-13 22:23                                                                       ` Tom Talpey
2015-07-11 16:37                                                     ` Steve Wise
     [not found]                                                       ` <CCB6E837-88FF-4DBB-976D-4CF56396A1A1-/Yg/VP3ZvrM@public.gmane.org>
2015-07-12 10:46                                                         ` Sagi Grimberg
     [not found]                                                           ` <55A24571.60902-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 19:25                                                             ` Steve Wise
2015-07-14 19:29                                                               ` Jason Gunthorpe
     [not found]                                                                 ` <20150714192941.GA26292-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14 19:32                                                                   ` Steve Wise
2015-07-14 19:37                                                                     ` Jason Gunthorpe
2015-07-14 19:55                                                                     ` 'Christoph Hellwig'
2015-07-14 20:10                                                                       ` Steve Wise
     [not found]                                                                       ` <20150714195511.GB7716-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-14 20:29                                                                         ` Jason Gunthorpe
     [not found]                                                                           ` <20150714202943.GB26927-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14 20:40                                                                             ` Steve Wise
2015-07-14 20:44                                                                               ` Jason Gunthorpe
     [not found]                                                                                 ` <20150714204442.GD26927-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14 20:54                                                                                   ` Steve Wise
2015-07-14 20:59                                                                                     ` Jason Gunthorpe
2015-07-14 20:50                                                                             ` Tom Talpey
2015-07-15  8:47                                                                             ` Sagi Grimberg
     [not found]                                                                               ` <55A61E38.20201-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-15 12:19                                                                                 ` 'Christoph Hellwig'
     [not found]                                                                                   ` <20150715121926.GB14993-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-15 19:17                                                                                     ` Jason Gunthorpe
2015-07-15  6:50                                                                           ` 'Christoph Hellwig'
     [not found]                                                                             ` <20150715065057.GA22113-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-15 19:12                                                                               ` Jason Gunthorpe
     [not found]                                                                                 ` <20150715191257.GF23588-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-16  6:41                                                                                   ` Jason Gunthorpe
2015-07-16  8:04                                                                                   ` 'Christoph Hellwig'
     [not found]                                                                                     ` <20150716080402.GC9093-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-16 16:13                                                                                       ` Jason Gunthorpe
2015-07-14 20:46                                                                     ` Tom Talpey
2015-07-14 19:45                                                               ` 'Christoph Hellwig'
     [not found]                                                                 ` <20150714194512.GA25887-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-14 19:57                                                                   ` Jason Gunthorpe
2015-07-14 19:58                                                                   ` Steve Wise
2015-07-14 20:41                                                                     ` Jason Gunthorpe
     [not found]                                                                       ` <20150714204145.GC26927-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14 20:51                                                                         ` Steve Wise
2015-07-14 21:01                                                                           ` Steve Wise
2015-07-14 21:14                                                                             ` Jason Gunthorpe
2015-07-23 18:53                                                                     ` Hefty, Sean
     [not found]                                                                       ` <1828884A29C6694DAF28B7E6B8A82373A901C9A5-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-07-23 19:03                                                                         ` Steve Wise
2015-07-23 23:30                                                                           ` Hefty, Sean
     [not found]                                                                             ` <1828884A29C6694DAF28B7E6B8A82373A901DB80-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-07-23 23:53                                                                               ` Jason Gunthorpe
     [not found]                                                                                 ` <20150723235310.GA20537-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-24  0:18                                                                                   ` Hefty, Sean
2015-07-24  4:46                                                                                     ` Jason Gunthorpe
     [not found]                                       ` <20150708203205.GA21847-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-08 20:37                                         ` 'Christoph Hellwig'
2015-07-09  8:47                                         ` Sagi Grimberg
2015-07-08 21:38                                   ` Tom Talpey
2015-07-08 23:36                                     ` Jason Gunthorpe
2015-07-09 11:02                                       ` Sagi Grimberg
     [not found]                                         ` <559E54AB.2010905-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-09 17:01                                           ` Jason Gunthorpe
2015-07-09 20:00                                             ` Tom Talpey
2015-07-09 21:16                                               ` Jason Gunthorpe
     [not found]                                             ` <20150709170142.GA21921-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-10  8:55                                               ` kernel memory registration (was: RDMA/core: Transport-independent access flags) Sagi Grimberg
     [not found]                                                 ` <559F8881.7070308-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-10 16:35                                                   ` Jason Gunthorpe
2015-07-11 10:31                                                   ` 'Christoph Hellwig'
     [not found]                                                     ` <20150711103153.GC14741-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-13 16:46                                                       ` Jason Gunthorpe
     [not found]                                                         ` <20150713164652.GC23832-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14  8:24                                                           ` kernel memory registration Sagi Grimberg
     [not found]                                                             ` <55A4C73A.7080001-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 17:24                                                               ` Jason Gunthorpe
2015-07-11 10:25                                             ` [PATCH V3 1/5] RDMA/core: Transport-independent access flags 'Christoph Hellwig'
2015-07-13 16:35                                               ` Jason Gunthorpe
2015-07-13 19:36                                               ` Tom Talpey
2015-07-13 20:15                                                 ` Jason Gunthorpe
     [not found]                                                   ` <20150713201538.GA11681-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14  9:10                                                     ` Sagi Grimberg
     [not found]                                                       ` <55A4D20C.2000904-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 15:36                                                         ` 'Christoph Hellwig'
     [not found]                                                           ` <20150714153619.GC11026-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-14 15:47                                                             ` Tom Talpey
2015-07-14 16:22                                                             ` Jason Gunthorpe
2015-07-14  7:37                                                 ` 'Christoph Hellwig'
2015-07-14  9:22                                                   ` Sagi Grimberg
     [not found]                                                     ` <55A4D4C6.6040907-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 12:12                                                       ` Tom Talpey
2015-07-14 13:23                                                         ` Sagi Grimberg
2015-07-14 14:45                                                       ` Steve Wise
2015-07-14 15:40                                                       ` 'Christoph Hellwig'
2015-07-08  8:11                     ` 'Christoph Hellwig'
2015-07-06  7:58     ` Sagi Grimberg
     [not found]       ` <559A3536.3020807-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-06 14:39         ` Steve Wise
2015-07-05 23:22 ` [PATCH V3 2/5] RDMA/iser: Use transport independent MR allocation Steve Wise
     [not found] ` <20150705231831.12029.80307.stgit-PBeJgSbIpn97NCTnQtmixQ@public.gmane.org>
2015-07-05 23:22   ` [PATCH V3 3/5] RDMA/isert: " Steve Wise
2015-07-05 23:22   ` [PATCH V3 4/5] svcrdma: " Steve Wise
2015-07-05 23:22   ` [PATCH V3 5/5] xprtrdma: " Steve Wise
2015-07-06  5:25   ` [PATCH V3 0/5] Transport-independent MRs Christoph Hellwig
     [not found]     ` <20150706052542.GB1109-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-06 14:24       ` Steve Wise
2015-07-07  9:01         ` 'Christoph Hellwig'

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=55A00754.4010009@redhat.com \
    --to=dledford@redhat.com \
    --cc=bfields@fieldses.org \
    --cc=eli@mellanox.com \
    --cc=hch@infradead.org \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=ogerlitz@mellanox.com \
    --cc=oren@mellanox.com \
    --cc=roid@mellanox.com \
    --cc=sagig@dev.mellanox.co.il \
    --cc=sagig@mellanox.com \
    --cc=swise@opengridcomputing.com \
    --cc=target-devel@vger.kernel.org \
    --cc=tom@talpey.com \
    --cc=trond.myklebust@primarydata.com \
    /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