Following is the overall block diagram of the designed system.
As can be seen in the diagram, the system consists of three subsystems:
1) Atmel chip (Atmel WINC1500 and CryptoAuthentication) 2) Raspberry Pi 3) Parse
The Atmel hardware emulates the Lock, while the Raspberry Pi emulates the User Interface and Parse is the Cloud platform that tracks all log information. The lock and the user are connected via a TCP connection for communication. First, the user inputs the username and the password in the GUI of Raspberry Pi. This information is encrypted and sent over the connection to the Atmel Chip. Then Atmel chip checks the authenticity of the information and if the information is valid, it allows RPI to have access to the lock. In particular, the user can lock/unlock if he is a valid entity and his information is authenticated by the lock. Also, note that in order to have a history of all login attempts, we need to push them to a cloud. We used Parse for this purpose. Each time a user uses RPI GUI to get permission with his pair of (username, password), this information (except password), along with authentication pass/fail, date and time stamps are pushed onto Parse. In addition, if the authenticated user locks/unlocks, his action (lock/unlock) along with his username, time and date stamps are pushed into the Parse. In this way, an authorized user can see all the successful/failed attempts and all the actions that are taken over time. The most important part of the systems is the connection between Atmel chip (lock) and Raspberry Pi (user interface). Not to mention that the data that is sent over the TCP connection should be encrypted so that no other unauthorized entities have access to the user information (username, password) or the actions (lock/unlock). Therefore, we need secure authentication, confidentiality, and integrity. The main goal of the project is to build this secure connection. In the next subsections, we will provide a detailed description of the security modules, the subsystems and their interactions.