A computing device (e.g., a smartphone, a laptop computer, a tablet computer, a smartwatch, etc.) may include a system application for managing both the ability of software (e.g., an application, a program, a widget, etc.) to access a network and the type of information that can be transmitted to a computing system via the network. Rather than use a permission-based model (e.g., a model in which a user manually permits an application to access the network), which may grant the application unconstrained network access, the system application may use a dataflow model (e.g., a model in which a framework defines a policy for how an application may access the network) that results in more granular network access. In some examples, the system application may comprise a first component (e.g., an application package (APK)) that delegates all requests for network access to a second component (e.g., an application programming interface (API)) to ensure policy enforcement (e.g., limiting data exfiltration from the first component). Source code for the second component may be made available for inspection or review by anyone (e.g., open sourced) to provide a means for auditing the operation of the system application. In addition, the system application may provide a ledger to enable a user of the computing device to monitor dataflows and network usage. In this way, the system application may increase trust in applications executing at the computing device (e.g., by enabling researchers to ensure that no party is receiving preferential treatment with regards to data retention policies) and may increase transparency in how applications are using and sharing data (e.g., by allowing interested parties to verify network usage).

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.