Security Module

Every platform involved in an information exchange needs to be secured because data is very susceptible to theft. Our app is connected to the Baadal server and this route is prone to attack which arise the need to encrypt the data being sent. Several cryptography algorithms are available and each one of them has its own merits and demerits. So critical research needs to be done in order to select the most suitable algorithm for our need. So we started our search and shortlisted several algorithms which we found suitable for our system. Few of them were DES, AES, Blowfish, MARS, RC6, Chacha20 etc. Since our app runs on an Android device , the algorithm should use less processing power (i.e. algorithm shouldn’t be very complex) and must be secure enough to protect our data. So, a trade-off was required between complexity of algorithms and level of security based on the resources available to us. Finally, after considering all these aspects we preferred Chacha20 encryption over other. Few comparisons which supports our choice can be found in the images below.

Implementation of the algorithm on the android app and on the server was our next task. Since, we had to assemble the feature of encryption into our android app, we implemented it in Java. Then the code was made compatible with our app as the input to our algorithm will be a bit-stream in the form of a byte array whereas the app deals data in the form of an image or audio.


Server Security

We initiated some common attacks like DDoS(Distributed Denial of Service) attacks in order to check and estimate the strength of our server. Further we made suitable changes in order to prevent these attacks.