SecuriDoor

From ESE205 Wiki
Jump to navigation Jump to search

Overview

Have you ever left the house and, hours later, fretted over whether you locked your door? It's a familiar feeling--and one that can be avoided. Our project can be used to solve this all-too-common problem. Through our website interface, a user can remotely lock their door and eliminate the worry associated with common forgetfulness. Using the website, a user will be able to command the physical aspects of our design to activate a servo which pushes the door's lock into place.

Find our weekly log here

Group Members

  • Clayton Keating
  • Savannah Rush
  • Nathan Schmetter (TA)

Objective

We will achieve success with this project if we are able to effectively lock and unlock a door using a locking mechanism on the Raspberry Pi via a website. Specifically, the communication between the site and the locking mechanism is the focus of this success and must execute without error for success to be achieved. We must also transmit an image taken from a webcam on the Pi and display it on the website. Additionally, our project has the potential to include more features, such as motion sensors and alarms for further home security.

Our final project demonstration will consist of short and long range tests of the system to show off the site's realistic use.

Challenges

  • Familiarization with Raspberry Pi
  • Building a housing mechanism such that it can be attached to a door
  • Ensuring that the app cannot lock you out of your own home
  • Maximizing range of communication between locking mechanism and web application
  • Ensuring security of the website


Gantt Chart

Savannahgantt.jpg

Budget

Total Budget: $88.29

Design and Solutions

Design Components

CLAYTON: talk about the locking mechanism, case, etc



Server and Hosting

User Interface

Security

Security is a major concern with our project. As our project currently stands, anyone could log on to the website and control the user's door. Obviously this would need to change if our system were brought to market. If we were to continue on this project, we would need to add layers of security to the website.

First and foremost, robust password protection needs to be instituted. To mimic a real-world product, each of our locking mechanisms would be given their own unique password, only known to the purchaser of the product. I would code these unique passwords into the .htaccess file that already exists in our file system, which would ensure that only the purchaser of the locking mechanism would be able to remotely control their lock and move past the site homepage.

However, password protection is not the only security concern. Since we are using FTP to send data from the Pi to the server, a hacker can easily gain anonymous access to the FTP server and view the data that is displayed on the site. A hacker could see if a user had recently locked or unlocked their door and could reasonably infer the current status of the lock, as well as view the picture taken in front of the door. Because this image is updated constantly, at all times a hacker could spy on a user's door and have continuous access to the image.

There are many potential solutions to help mitigate these security concerns. Many of these solutions are outside the scope of this project and certainly beyond the understanding of two non-computer science students. However, there exists one promising solution that could have been chosen for this project, had we had access to a different Wifi network and router, other than the WashU Wifi. Instead of FTP protocol to send data to the server, we would have instead utilized port forwarding. Port forwarding is a more secure option, as there are many defense features available to prevent hacking. Port forwarding would be a fine choice for a home router and network, but due to WashU IT, we were unable to institute this option.

Results

Final Locking Mechanism

CLAYTON


Final Website

Demo Poster

Sav poster.jpg


Comparison to Objectives

Critical Decisions

CLAYTON

Potential Project Extensions

CLAYTON

Tutorial

Find our tutorial here.