This is the current high-level wish list of improvements that we are
investigating at MSFT. It is still unclear how many and when we'll be able to
implement them.
1. Add new Manifest format, more granular, as I proposed in the attached email.
- Also consider removing the support for the problematic 15.09
Manifest format
2. Add XML-based public methods for Policy, Manifest, Manifest Template.
- Consider removing the current public methods, if they are superseded by the
new methods
3. Add StartManagement + EndManagement methods, called by a Security Manager to
notify the target app that its Security settings are about to change.
4. Add public C APIs corresponding to the most useful public C++ methods.
5. Significant changes to the implementation of the Key Store - to address
ASACORE-2661, ASACORE-2664, and other shortcomings.
6. Make it easier to share a single Key Store between two processes running on
a single machine.
7. Add a new SPEKE auth mechanism - similar but better than the current PSK.
8. Introduce the concept of "Recommended Security Level". For example:
- Manufacturer of an "org.Contoso.GunSafe" device might want to recommend that
interface as accessible just to "Privileged" users
- Manufacturer of an "org.Contoso.WirelessSpeaker" device might want to
recommend that interface as "NonPrivileged"
- Manufacturer of an "org.Contoso.LightSwitch" device might want to recommend
that interface as "Unauthenticated"
9. Investigate the numerous active JIRA tickets related to Security and fix
those that the Core WG decides are important.
If anyone has questions or other kind of feedback, please speak up.
Dan
-----Original Message-----
From: Lioy, Marcello [mailto:[email protected]]
Sent: Thursday, February 4, 2016 11:39 AM
To: [email protected]; [email protected]
Cc: Daniel Mihai <[email protected]>
Subject: RE: [Allseen-core] Security 2.0 status
There are some changes being proposed, however, I think it is developer API
changes rather than the interface definitions on the wire. I have CC'ed Dan
Mihai who is driving the updates to Security 2.0. He can correct or elaborate
as appropriate.
-----Original Message-----
From:
[email protected]<mailto:[email protected]>
[mailto:[email protected]] On Behalf Of
[email protected]<mailto:[email protected]>
Sent: Monday, January 25, 2016 2:08 AM
To:
[email protected]<mailto:[email protected]>
Subject: [Allseen-core] Security 2.0 status
Hi everyone,
Is it possible to release the latest 15.09(a)-related Security 2.0 HLD ? As
both the
https://na01.safelinks.protection.outlook.com/?url=allseenalliance.org&data=01%7c01%7cDaniel.Mihai%40microsoft.com%7c1761def47b9b40ff54da08d32d9adcb0%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=8t3KSB3ksxrk%2fFOPp7gcPWW%2btMdZsmovppbK0g3%2fwzQ%3d
documentation and wiki seem to point to out-of-date documents.
Also, is the production-grade 16.04 Security 2.0 roadmap decided upon (e.g.
things like interface description servers and like) ?
Thanks,
Ondrej T
_______________________________________________
Allseen-core mailing list
[email protected]<mailto:[email protected]>
https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2flists.allseenalliance.org%2fmailman%2flistinfo%2fallseen-core&data=01%7c01%7cDaniel.Mihai%40microsoft.com%7c1761def47b9b40ff54da08d32d9adcb0%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=%2fZzxaUmnFC9opwKhE%2bnozXKB04TnGNL3Kxw%2bn3FtYtM%3d
--- Begin Message ---
Based on the email discussion so far, I have a +1 on these two ideas:
1. Standardize the “profile” in the object path, for example:
/profile/AllJoynTV”. Do not need to add another type to the rules. So, no
change to the permission enforcement. The profile definition is in
documentation only. The Security Manager can add restriction to the “profile”
by adding rules based on the object path and interface and method names.
2. Allow peer to send on-demand manifest based on the message. This will
reduce the size of the manifest. However, this will add more complexity to the
code and response time.
Phil
From: [email protected]
[mailto:[email protected]] On Behalf Of Daniel
Mihai
Sent: Monday, November 16, 2015 9:58 AM
To: Dave Thaler; Josh Spain; Gerrit Ruelens (QEO LLC)
Cc: [email protected]
Subject: Re: [Allseen-core] [Security 2.0] Device profiles
Gerrit, thanks for pointing out these problems and for investigating possible
solutions!
I like the idea of defining device Profiles, *but* my current thinking is:
1. Security Manager apps should use such Profiles to provide an
easy-enough UI for the Admins. For example:
a. If the Security Manager notices that a device implements all ~20
interfaces from the TV profile, it can show UI appropriate for managing a TV
device.
b. For devices that don’t fit a known Profile, it would still show the bad
UI you mentioned.
2. Maybe Certification should verify the profile and certify a device as
an “AllJoyn TV” for example.
3. About and Security manifests + policies are complex enough. *I hope we
can avoid adding another layer of complexity to them* (I hope we don’t really
have to make them aware of device Profiles).
4. My understanding is that a remote control Consumer app is currently
forced to pick one of these alternatives:
a. Use separate bus attachments for each type of target Producer
device/profile. This also forces the Admin to setup separate manifests and
policies for each of these bus attachments.
b. Use a single bus attachment – in which case the entire manifest will be
sent to all Producers. Sending to a Light Bulb device a manifest saying that
the Consumer app is allowed to access the Gun Safe device seems like an
unintended information disclosure.
5. I believe that a TV device should implement an interface similar to
org.alljoyn.TV.OnOff. It should never implement org.alljoyn.Oven.OnOff. Both
Security Manager and Consumer apps can use that interface name difference to
distinguish between the two types of devices – without the need to add another
Profile concept.
6. Are there examples of small devices needing large manifests and
policies for the interfaces they implement? As far as I know, the answer is: no.
7. I agree that larger devices/apps, implementing many interfaces, can end
up with large manifests and policies. But they should be able to handle/store
such large information.
What do you think about splitting the current manifests into multiple
mini-manifests, one mini-manifest for each interface? Could apps then send out
just the mini-manifests that are required, instead of sending all of them?
Hopefully even small devices will be able to handle these mini-manifests. This
way we would address the information disclosure problem I mentioned above too.
Thanks,
Dan
From:
[email protected]<mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Dave
Thaler
Sent: Friday, November 13, 2015 2:03 PM
To: Josh Spain <[email protected]<mailto:[email protected]>>
Cc:
[email protected]<mailto:[email protected]>
Subject: Re: [Allseen-core] [Security 2.0] Device profiles
Below
From: Josh Spain [mailto:[email protected]]
Sent: Friday, November 13, 2015 1:13 PM
To: Dave Thaler <[email protected]<mailto:[email protected]>>
Cc: Gerrit Ruelens (QEO LLC)
<[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>;
Lioy, Marcello <[email protected]<mailto:[email protected]>>
Subject: Re: [Allseen-core] [Security 2.0] Device profiles
Dave,
If I understand correctly you're saying that the OnOff interface is
unacceptable. However, if you look at the org.alljoyn.SmartSpaces.Operation
example that Gerrit referenced
(https://git.allseenalliance.org/gerrit/#/c/5125/<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgit.allseenalliance.org%2fgerrit%2f%23%2fc%2f5125%2f&data=01%7c01%7cdthaler%40microsoft.com%7c5959639a44ff47a4076c08d2ec6f4217%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=3Yz7BfWwF0j6SjZAXVrUBGufU9GZDB4RjAmLxLVN1ME%3d>)
this is exactly what is happening. If this is unacceptable then the entire set
of interfaces needs to be redesigned.
[DT] Well “Unacceptable” is perhaps too strong, since we “accept” legacy
interfaces that have bad design due to compat issues.
But “strongly discouraged “is more what I’m saying. And yes I believe that
OnOff is bad design and a violation of IRB guidelines.
The main issue here is one of usability with Security 2.0. Gerrit's profiles
provide a way to make Security 2.0 more usable by consumers. To me it sounds
similar to how Android treats security. They group a large set of related
concepts together into one permission group (e.g., the SMS permission group
includes send, receive, read, receive WAP push, receive MMS, and read cell
broadcasts permissions). I like the idea and agree it's sorely needed.
[DT] That’s what “interfaces” are for, and what “block of coherent”
functionality means (in my view) in the IRB guidelines.
We had a thread on the IRB mailing list about a month ago on this topic. Gerrit
had brought up the need to indicate when one interface depends upon another.
[DT] I do agree that a “depends” relationship makes sense in two cases that are
in line with the IRB guidelines:
1) You split the mandatory part and optional parts into separate
interfaces, where an optional interface depends on the mandatory interface.
For example, a well-designed lighting interface might have RGB functionality in
an optional interface where lights on/off might be mandatory.
2) A vendor has vendor-specific extensions to a standard interface, and
puts them in an interface with the vendor’s DNS name in the prefix, and the
vendor-specific interface depends on the standard one.
(Note that “OnOff” does not fall into either of the above categories.)
The last opinion on this was Marcello's and I'll quote it here:
In the case of Security (per Gerrit’s example) I believe the right way to
manage that scenario is to group the interfaces correctly in an object
hierarchy (not in the traditional OOO sense of inheritance, but in the
AllJoyn/D-Bus object path sense). So when designing a product with security in
mind one needs to make sure the object hierarchy, and interfaces they expose
are structured properly to allow the security granularity that provides the
appropriate level of usability and security.
[DT] I don’t agree that a “grouping” concept is the right way to handle the
“depends” relationships I mentioned above. Instead I’d recommend an XML
annotation for “dependsOn” some other interface. That annotation can be used
by things like UI so by default it could (for example) choose to not have
separate config for that interface, but duplicate it from the one it depends
on. That’s just a UI concept though, the security policy would still be per
interface as now, which keeps the complexity off the thin client.
Please correct me if I'm misunderstanding, but this suggestion seems to
imply that an end-user would see an object tree on their screen for which they
should decide to accept or deny access. Is that how Sec2 works? If so, this
might be an acceptable alternative to profiles if there were also a way to
annotate each node in the object path tree to be human readable and in a way
that i18n could be applied.
[DT] Hope above helps clarify my opinion.
-Josh
On Fri, Nov 13, 2015 at 12:38 PM, Dave Thaler
<[email protected]<mailto:[email protected]>> wrote:
Offhand, my feeling is that this is going in the wrong direction. Thanks
Gerrit for a nice writeup to help me
understand the issue and be able to articulate now what I don’t like ☺
The approved IRB guidelines say this:
Interface Granularity
An Interface must encapsulate a single, coherent block of information and
functionality.
Do not create everything-and-the-kitchen-sink Interfaces. Split the
functionality and data provided by the Interface into logical, coherent blocks.
This will facilitate reuse of your Interface by others with similar, but not
identical, use cases.
Don't overdo it either: it does not make sense to split every property,
signal and method off into its own separate Interface.
The last sentence above is key. Valid reasons to create a separate
interface are in the guidelines (following the quoted text above), as well as
in the talk I gave at the summit. They include
a) You *want* to ACL them differently because they’re intended for
different roles (admin vs non-admin for instance)
b) One is mandatory to implement and one is optional to implement.
And I’d add for clarity
c) You want to allow enumerating all devices that support a given
concept that means something to a user. This falls into the “coherent”
category of the bolded point quoted above.
From slide 1:
– Some Interfaces are too generic compared offered functionality
• OnOff interface vs TV. Turning on TV is ok, but turning on the oven
not
In my opinion, this is a prime example of “overdoing” it and violates IRB
guidance and should not be done.
An OnOff property fits into none of the (a-c) categories above and hence in
my view is harmful as it leads to unnecessary complexity (as correctly noted on
slide 1) and confusion.
A notion of device profile might make sense for logo/compliance purposes,
but in my opinion should not be encouraged for security 2.0, as it implies (in
my opinion) bad design. I see it as similar to the notion of having
member-granular (as opposed to interface-granular) security policies, which we
also think is a workaround for bad design. That led to the IRB guidance about
interface granularity. Security 2.0 supports member-granular policies not
because they’re a good idea, but because there’s legacy interfaces that need to
be supported even though we’d strongly prefer there be no such need. I claim
the same applies to this case. Furthermore, since this is really about less
granular policy, it’s just an optimization that adds extra complexity and code
footprint, and I’d propose not doing it. That helps provide sufficient
pushback against people “overdoing” it as the IRB guidelines warn against.
Dave
From:
[email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
On Behalf Of Gerrit Ruelens (QEO LLC)
Sent: Friday, November 13, 2015 6:31 AM
To:
[email protected]<mailto:[email protected]>;
Lioy, Marcello <[email protected]<mailto:[email protected]>>
Subject: [Allseen-core] [Security 2.0] Device profiles
Hi All,
We have been discussing interface granularity and how this impacts security
2.0. There are some risks involved and we need to address them.
We like to introduce a concept (Profiles) on top of interfaces. A profile
would for example describe which interfaces an AllJoyn compliant TV must
implement.
More details can be found in the presentation attached.
All feedback is welcome.
Marcello,
Shall we put this on the agenda of one the core conference calls?
Kr,
Gerrit
_______________________________________________
Allseen-core mailing list
[email protected]<mailto:[email protected]>
https://lists.allseenalliance.org/mailman/listinfo/allseen-core<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2flists.allseenalliance.org%2fmailman%2flistinfo%2fallseen-core&data=01%7c01%7cdthaler%40microsoft.com%7c5959639a44ff47a4076c08d2ec6f4217%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=%2bIaR3KhS2PHyX4pk%2bVGPWQLStE%2bykueMYdNRMbltufA%3d>
--- End Message ---
_______________________________________________
Allseen-core mailing list
[email protected]
https://lists.allseenalliance.org/mailman/listinfo/allseen-core