Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

I'm a small business operator and I'm looking for ways to provide security and reasonable privacy for my own business communications and communications of customers. All these businesses operate outside the U.S. and have no need to export their data to U.S. servers.

All the smartphones I've seen seem awful. Before somebody says "let me google that for you", remember, we're talking a business with a size of 1-25. "Enterprise" servers with dedicated admins, thousands of dollars in licensing are not reasonable just to be able to keep your own data private on your own phone.

Here are some criteria I put together, maybe there's something I'm missing. The features below can be provided natively (ideally) or through reasonably priced, well supported and fully functional 3rd party software.

Confidentiality

  • Absolutely must not sync contacts with remote non-company owned servers or otherwise flagrantly violate privacy.
  • Must support escrow-free device encryption, if there's escrow, it must be for the business owner to control, not the provider
  • Must allow for also encrypting SD cards
  • Must support wipe on too many failed access attempts
  • Bonus: Mobile Device Management software without setting up new servers or requiring a specialized administrator.

Availability

  • Must allow for offline access to email, calendaring and contacts.
  • Must support ActiveSync for at least one Exchange system, including calendaring and contacts.
  • Must support open standards for calendaring, scheduling and contacts. E.g., caldav, carddav.
  • Must support multiple IMAP and POP3 accounts.

Integrity

  • Must not alter contacts or calendar (merging, editing, "fixing" etc) unless explicitly told to do so
  • Must allow for multiple calendars to be "layered" without importing or syncing.

Results of my own research

  • Android 2.x: No device encryption short of directory-based LUKS
  • Android 4: cannot use without Google account. Very difficult, or impossible(?) to use without sending your contact info to Google.
  • Android 4 (customized): May work... not a packaged or supported solution.
  • iPhone: seems to want an Apple ID, but not entirely sure what it's used for.
  • Windows Phone 8: can't encrypt without Exchange ActiveSync profile, requires "enterprise" CAL, etc.
  • Blackberry(BES5): requires special data plan to sync, ships data overseas. Requires special server software, etc.
  • Blackberry(BES10): ... maybe? costs extra to sync to Exchange.

Are there other criteria I should consider?

share|improve this question
    
You can skip putting in your Google data on an android 4 system... –  Canadian Luke Nov 3 '13 at 14:53
1  
Is it practical and reasonable to skip? From this thread it seems like stuff like maps would be unusable: android.stackexchange.com/questions/21149/… . –  mgjk Nov 3 '13 at 15:21
    
Practical is opinion based. On my cells, I replaced all but the phone app with alternatives. It's possible, which answers your question. As in that post, don't use Google apps, and you won't need to enter your Google information –  Canadian Luke Nov 3 '13 at 15:25
1  
Any pointers as to which method you're using? If I have no luck with the iPhone and BB, knowing to hit Cyanogenmod or something and start ripping stuff out would be a good bit of advice to start. The "Practical" part is the business end of things, once you pull out everything and install custom apps, you're supporting everything on the phones for the customers... which, given the expense of the alternatives... is not that bad. –  mgjk Nov 3 '13 at 15:43
1  
These are great hacker projects, I really appreciate the answers because I enjoy hacking at this stuff too. But this is really basic stuff and shouldn't be complex. I can see a few downvotes on this question, and I hope it doesn't get closed without any answers short of brewing it myself from Android. –  mgjk Nov 4 '13 at 9:33
show 3 more comments

3 Answers

Sounds like you want dynamic security policies. A custom OS build may be the only way to achieve this. Since Android is open source, it's been researched/hacked pretty extensively with this in mind. iOS has one or two projects going, too. Never seen any for Windows/Blackberry.

FlaskDroid, for example, is a child of Security Enhance Linux (SELinux). A good research paper written on it is here, but to surmise they implement a user-space security server which all API requests for sensitive data (SMS, Contacts, GPS, etc..) run through. (Alternatives are MockDroid, AppFence, and Taming Information Stealing Smartphone Applications (TISSA).. all very similar but I think FlaskDroid is the best).

This security server implements policies chosen by the user. As a bonus, they also protect against root level MAC queries, so if your device becomes infected by malware running as root, it cannot get to your data without an appropriate policy.

Obviously, this has a couple of drawbacks:

  • Kernel was hacked, so it must be installed on your device ad-hoc as rooting is required.
  • Trusting SELinux

Alternatively, the applications themselves can be hacked for increased security. Because it's Java, and in turn just a series of bytecodes, apps can be modified with instrumentation. Research has been done on this with Redexer, but that's written in OCaml, and nobody wants to do that.

One of my current projects is to implement instrumentation using Java, so that we can tie down any application with dynamic permissions. All the developer has to do is write what Java code they want to execute when contacts are accessed, for example, and my tool will go in and instrument the application to behave in that way. So, in this way, I've implemented dynamic permission policies... users can grant or revoke any permission to any application after installation. They can also be activated/deactivated depending on geophysical location, so at work the camera is shut off from all applications. Paper is pending review. No rooting of the phone is required.

In this way, you could block network access to all but a few "allowed" domains, such as your company's calendar syncing servers, disallow access to calendar unless the user clicks on a pop-up.. etc. As for encrypting the SD card, Android natively supports that now.

iOS project for dynamic security policies: Protect My Privacy. (Paper). Requires jailbreaking.

EDIT: To clarify, SELinux prevents any actors from performing actions they have not specifically been granted. It boils down to Mandatory Access Control (MAC) vs. Discretionary Access Control (DAC). DAC doesn't protect against rouge users/processes running as root. MAC does protect against malware running as root, assuming the malware wasn't specifically given full access privileges (which should never happen; the idea is that nothing is ever given more permission than is absolutely necessary).

share|improve this answer
    
Thanks for the info on this angle of the problem. Replicant has an interesting discussion on the non-FOSS binary components: trac.osuosl.org/trac/replicant/wiki/HTCDreamProprietaryDrivers Even if components such as these are active in the system, would SELinux be able to protect the data? –  mgjk Nov 12 '13 at 9:23
    
@mgjk Short answer: Yes! Edited my answer with additional information and a link to a good SELinux page. Everything is reduced to bare minimum access. Root malware isn't even that effective against SELinux. –  Rubber Duck Nov 12 '13 at 14:45
add comment

I don't know if this might help but you can try Replicant. I found this (and a few more) alternatives at https://prism-break.org/

share|improve this answer
add comment

This question is not suitable here. The main reason being:

  • you are asking for recommendations, which are off topic

The main problem though is that you are saying you can't find solutions, despite the fact there are a few common solutions.

Any security solution is a trade off between usability, security, cost etc. so you need to work out what level of security you think appropriate for your circumstances. If you think those enterprise solutions are too expensive then you have already made a decision on the cost/security problem.

If you think it is a basic problem then you should just create a solution, sell it at a price point that suits small businesses, and make millions. I think you will find it is a complex problem, however, which is why it has not yet been solved cheaply.

share|improve this answer
    
It sounds like your answer is that a solution which meets the criteria doesn't exist because it's too complex a problem and cost is an unreasonable security concern. The examples of the research are provided to illustrate how large providers fail to meet such basic criteria. These problems were solved 15 years ago in the PC industry and similarly in the PDA market. When cell providers got involved, something seems to have changed. I disagree that the problem is complex. It may be neglected, or... there's something I'm missing in my criteria or understanding of the vendor's models. –  mgjk Nov 9 '13 at 14:52
    
No my answer is that your criteria as defined may be unreasonable. The problem has been solved, it is just not at the price point you want. –  Rory Alsop Nov 9 '13 at 17:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.