Skip to content

akaldoseri/AndroidCodeProtection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Symbolic modelling of remote attestation protocols for device and app integrity on Android - Code protecton demo app

These demo app part of the paper : Symbolic modelling of remote attestation protocols for device and app integrity on Android

Aldoseri, A., Chothia, T., Moreira-Sanchez, J., & Oswald, D. (2023). Symbolic verification for device and application integrity remote attestation protocols on Android. In Proceedings of AsiaCCS 2023.

To cite the paper

@incollection{aldoseri2023symbolic,
  title={Symbolic verification for device and application integrity remote attestation protocols on Android},
  author={Aldoseri, Abdulla and Chothia, Tom and Moreira-Sanchez, Jose and Oswald, David},
  booktitle={Proceedings of AsiaCCS 2023},
  year={2023}
}

Paper at Google scholar:

https://scholar.google.com/citations?view_op=view_citation&hl=en&user=sDQEs7wAAAAJ&citation_for_view=sDQEs7wAAAAJ:ufrVoPGSRksC

About the demo app

This repo shows an example of Android code protection.

backend_server

To run the backend server.

  • Host the code in any PHP server (e.g apache).
  • Install composer in your machine and run composer install.
  • Ensure that certs directory contain the recent Google certificate from (https://developer.android.com/training/articles/security-key-attestation.html). Note, our code works with certificate, you need to add the other certificates as well.
  • The android code is encapsulated in classes.dex file. We compile 10 sorting algorithms rom https://github.com/diptangsu/Sorting-Algorithms/tree/master/Java. So thank you for this. If you want to use your own code. Simple do the following:
    • create Android project with empty Activity.
    • Write your own secret classes/code.
    • Compile the project into APK.
    • Unzip the APK file and extract the class file. It should be the classes3.dex.
  • Generate your own certificate (private/public) using any tool (e.g openssl) and store them in certs. I am attaching my own certficates an example : example.com.key and example.com.pem

Android_app

To run the android app.

  • Open the project with Android Studio or import it.
  • In the MainActivity class, change GET_NONCE_URL and GET_VERDICT_URL URLs to match your server side URLs. (HTTPS are not needed for testing.)
  • Copy the content of your generated public certificate and assign it to certText variable at method verifyCodeSignature line 513. Otherwise, you can can keep it as it is if you want to use the example certificate example.com.pem.

References and acknowledgement

There are many resources I used to make this project works. So I am really thankful to them. These are some of the references that I recall.

About

This repo show an example of Android code protection.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •