Posted By: contextfree | Oct 31st @ 10:45 AM
page 1 of 1
Comments: 10 | Views: 426

http://d.android.com/guide/topics/security/security.html

"A central design point of the Android security architecture is that no application, by default, has permission to perform any operations that would adversely impact other applications, the operating system, or the user. This includes reading or writing the user's private data (such as contacts or e-mails), reading or writing another application's files, performing network access, keeping the device awake, etc. ... An application's process is a secure sandbox. It can't disrupt other applications, except by explicitly declaring the permissions it needs for additional capabilities not provided by the basic sandbox. These permissions it requests can be handled by the operating in various ways, typically by automatically allowing or disallowing based on certificates or by prompting the user. [...]

 

All Android applications (.apk files) must be signed with a certificate whose private key is held by their developer. This certificate identifies the author of the application. The certificate does not need to be signed by a certificate authority: it is perfectly allowable, and typical, for Android applications to use self-signed certificates. The certificate is used only to establish trust relationships between applications, not for wholesale control over whether an application can be installed. The most significant ways that signatures impact security is by determining who can access signature-based permissions and who can share user IDs. [...] Each Android package (.apk) file installed on the device is given its own unique Linux user ID [...]

 At application install time, permissions requested by the application are granted to it by the package installer, based on checks against the signatures of the applications declaring those permissions and/or interaction with the user. No checks with the user are done while an application is running: it either was granted a particular permission when installed, and can use that feature as desired, or the permission was not granted and any attempt to use the feature will fail without prompting the user. [...]

To enforce your own permissions, you must first declare them in your AndroidManifest.xml using one or more <permission> tags.

For example, an application that wants to control who can start one of its activities could declare a permission for this operation as follows:[...]  telling the system how the user is to be informed of applications requiring the permission, or who is allowed to hold that permission, as described in the linked documentation.[...]"

 

I think this kind of model is the future of security on consumer operating systems.  The Unix/Windows style ACL model was designed to protect the system and the administrator from users, not to protect users from programs, and the attempt to use it for the latter purpose by having admins do most of their work as standard user and elevate to root when necessary (either manually or through some automated system like gksudo or UAC) is basically a hack.  It doesn't provide all the protection that users need (e.g. doesn't protect their personal data, only system data), and it doesn't make sense to them because it doesn't make sense.  That's why UAC was rejected on Windows (it was only accepted on Linux and Mac because their users are cultists).  Meanwhile, the iPhone model of locking down everything will eventually start to be seen as too restrictive even among the general public.

I bet, and hope, Chrome OS will use a similar model, and also that this will spur Microsoft to follow suit.  I think Midori is based on capability security so let's hope it comes out of incubation sooner than later, and/or aspects of it are incorporated into Windows in advance.

figuerres
figuerres
???

Hmmm.... well i think that model may have issues...

 

i make a self cert, i make an app and have it ask for full rights on the machine, user is asked at install time to grant rights, user is a moron and says "yes" cuse they want to install super-crap-20099 or whatever it's called.

 

now when that app runs it has full permissions and can nuke the pc / be a rootkit or whatever.

 

see the first flaw is that the user has to say ok do it.  many users just say yes to almost every prompt. and install time does not allow for runtime checking, an app could get an update that wipes the filesystem or installs an evil update later w/o any user prompt or option to question it.

 

well also the other flaw is that if i create a cert i can say what ever i want and as no 3rd party ca is in the trust chain the user has no way to know that i am who i say i am or how to contact me when there is a problem.

 

if the cert comes from a known CA and the CA tracks who they issue to then the CA can revoke rights when it is show that the cert has been used for creating a trojan or rootkit etc...

 

if the os checks with the CA for valid certs then the OS can halt any app with a bad cert.

 

so in two ways the plan has major flaws.

blowdart
blowdart
Peek-a-boo

You really CAS has this sort of permission set for .NET? Just without the user prompts

figuerres
figuerres
???

so how do you ask the user?

 

how do you make sure they "understand" ?

 

what is the mechanisim that provides the user with the prompts to answer?

 

yes if a user allows then the system will be hosed.

 

but static allow/deny does not cover what happens at runtime.

 

by default deny apps almost all rights. then only allow things as needed.  if an app has rights to for example write to any location , if that right is not tested at runtime then the app can possibly format the drive.

how does the user grant the rights?

does the OS limit what rights can be granted?

 

the details are important ....

And CAS is being phased out because no developers really used it. It's just so easy to say "I need all rights" than to try to accurately figure out those that you do. And even if you could somehow convince developers to put in that kind of effort, you then have to try and convey the difference to end users in a meaningful way, which is a far harder problem to solve. 

blowdart
blowdart
Peek-a-boo

Ah but it's not. The sandboxing model is being made simpler *but* you still have granular permissions

leeappdalecom
leeappdalecom
.nettter

It's not that much effort really, I use CAS policies alot in SharePoint and common practice is to create a custom minimal trust file and build on top of it just adding any security permisions you need as you go along. 

 

That way you only end up granting permissions to code you actually use.  Ok it's more effort than just granting the app full trust but for enterprise apps security is a major concern.

May28th2018
May28th2018
May 28th, 2018

You can send other processes atomic messages.

http://developer.android.com/reference/android/content/Context.html#sendBroadcast%28android.content.Intent%29

 

Android has AIDL just as COM and Corba have IDL

 

Here is some more information about Android security

 

http://developer.android.com/guide/topics/security/security.html

 

Today I purchased a new MSDN professional subscription. I had let my old 2 year subscription run out. Honestly it was just collecting dust.

Microsoft has consistently disappointed me with cloneware for the past decade. I am hoping this wasn't money wasted.

 

If it was, you all will be hearing about it. I am waiting for my DVDs in the mail expecting to be a sucker again.

May28th2018
May28th2018
May 28th, 2018

By the way, I was googling Laura Foy one day, and I found this

 

http://itsgottabefluff.blogspot.com/2005/09/laura-foys-tiddays-revisited.html

 

I'm aware all girls have them but now you no longer have to wonder. LOL.

http://farm1.static.flickr.com/28/101193740_8cb3185e0e.jpg

 

Ironically, they're not as big as the guy she replaced's boobs, sadly. Looks like MS's budget crunch continues....

 

page 1 of 1
Comments: 10 | Views: 426
Microsoft Communities