<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Duncan Thomas <<a href="mailto:duncan.thomas@gmail.com">duncan.thomas@gmail.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Monday, January 16, 2017 at 5:33 PM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [all] [barbican] [security] Why are projects trying to avoid Barbican, still?<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">
<div>
<div>To give a totally different prospective on why somebody might dislike Barbican (I'm one of those people). Note that I'm working from pretty hazy memories so I don't guarantee I've got everything spot on, and I am without a doubt giving a very one sided
 view. But hey, that's the side I happen to sit on. I certainly don't mean to cause great offence to the people concerned, but rather to give  ahistory from a PoV that hasn't appeared yet.<br>
<br>
</div>
Cinder needed somewhere to store volume encryption keys. Long, long ago, Barbican gave a great presentation about secrets as a service, ACLs on secrets, setups where one service could ask for keep material to be created and only accessible to some other service.
 Having one service give another service permission to get at a secret (but never be able to access that secret itself). All the clever things that cinder could possibly leverage. It would also handle hardware security modules and all of the other craziness
 that no sane person wants to understand the fine details of. Key revocation, rekeying and some other stuff was mentioned as being possible future work.<br>
<br>
</div>
So I waited, and I waited, and I asked some security people about what Barbican was doing, and I got told it had gone off and done some unrelated to anything we wanted certificate cleverness stuff for some other service, but secrets-as-a-service would be along
 at some point. Eventually, a long time after all my enthusiasm had waned, the basic feature<br>
<div><br>
It doesn't do what it says on the tin. It isn't very good at keeping secrets. If I've got a token then I can get the keys for all my volumes. That kind of sucks. For several threat models, I'd have done better to just stick the keys in the cinder db.<br>
<br>
</div>
<div>I really wish I'd got a video of that first presentation, because it would be an interesting project to implement. Barbican though, from a really narrow focused since usecase view point really isn't very good though.<br>
<br>
</div>
<div>(If I've missed something and Barbican can do the clever ACL type stuff that was talked about, please let me know - I'd be very interested in trying to fit it to cinder, and I'm not even working on cinder professionally currently.)</div>
</div>
</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>I don't know everything that was proposed in the Juno timeframe, or before, but the Nova and Cinder integration has been done now.  The documentation is at [1].  A cinder user can create an encryption key through Barbican when creating a volume, then the
 same user (or a user with permissions granted by that user), as a nova user, can retrieve that key when mounting the encrypted volume.</div>
<div><br>
</div>
<div>[1] <a href="http://docs.openstack.org/mitaka/config-reference/block-storage/volume-encryption.html">http://docs.openstack.org/mitaka/config-reference/block-storage/volume-encryption.html</a></div>
<div><br>
</div>
</body>
</html>