Cars with wireless key fobs are easily hacked. This means that anybody who intercepts the signal from your key can easily replicate it and take off with your car when you are not watching.
What it does
Our goal was to develop a bluetooth app that connected with a car. They would communicate over an RSA encrypted channel. The app could perform basic functionality, such as turning on the car's A/C. Unfortunately, challenges in the encryption process prevented encryption from being implemented
How we built it
We simulated a car using a Raspberri Pi. We developed a C bluetooth server on the Pi to receive the messages from an authenticated phone and perform operations accordingly. Using Android Studio, we developed an app that would send basic commands via bluetooth to the Pi.
Challenges we ran into
There were many serious hardware issues throughout project development. Our first Raspberri Pi's bluetooth did not function properly despite hardware validation tests prior to the hackathon. We had to find a second Pi, which had some power supply issues, so we had to retrieve a special power cord. Fortunately, the pi was able to run eventually. After that, we struggled to install several different bluetooth libraries. We attempted to set up a bluetooth server in both Python 3.5 and Java. Most commands to install java did not work, and each attempt to fix the bluetooth libraries in each language led to a separate library issue. This long sequence of issues eventually led us to write a C bluetooth server. Further on in the project, attempts to decrypt the RSA encrypted messages to standard on the C server were unsuccessful. We were, however, successful in encrypting and decrypting in Java on the Client side.
Accomplishments that we're proud of
Despite our struggles, we were able to successfully communicate via bluetooth and authenticate. We were further able to develop the app to the point where we could hit a button after authentication and turn a fan on.
What we learned
We learned about communicating over a network in general and especially how to communicate via bluetooth. We also developed our skills in Android Studio development and learned about building hardware and tools with a Raspberri Pi.
What's next for BerryMerryCarSecurity
After debugging RSA decryption and re-implementing it, we could add more buttons to the app to simulate other car functionalities and set up the server to be able to dynamically be paired with new phones.