Skip to content

Integrates RC4 MD5 Hashing into S3FS source code enabling encryption/decryption of files within mounted or AWS S3 bucket.

License

Notifications You must be signed in to change notification settings

hellochrisyou/RC4-MD5-Hash-Encryption-Integration-for-S3FS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents (Created by Chris You)

  1. Preview
  2. Technical Background
  3. Development
  4. Validation
  5. Infrastructure Diagram

Preview

S3FS-Sample

Technical Background

Quoted from AWS resource webpage...

"Amazon S3 (Simple Storage Services) is a scalable cloud storage service from Amazon Web Services (AWS) used by many customers in the world. The basic unit of data storage in Amazon S3 is a bucket. You can create multiple buckets in Amazon S3 cloud storage and configure permissions for users who need to access the buckets. By default, users can access data stored in Amazon S3 buckets by using the AWS web interface.

However, a user may need to access a bucket in Amazon S3 cloud by using the interface of an operating system such as Linux or Windows. Access to Amazon S3 cloud storage from the command line of an operating system is useful for working in operating systems that don’t have a graphical user interface (GUI), in particular virtual machines running in the public cloud. It is also useful for automating tasks such as copying files or making data backups.

S3FS, a special solution based on FUSE (file system in user space), was developed to mount S3 buckets to directories of Linux operating systems similarly to the way you mount CIFS or NFS share as a network drive./ S3FS is a free and open source solution. After mounting Amazon S3 cloud storage with S3FS to your Linux machine, you can use cp, mv, rm, and other commands in the Linux console to operate with files as you do when working with mounted local or network drives."

This readme explains how to mount Amazon S3 cloud storage to a local directory on a Linux machine to allow using Amazon S3 for file sharing without a web browser.

Development

1. Developed (in C) a stand-alone RC4 + MD5 Hash (algorithm used from open-ssl library) encryption program that would encrypt and decrypt any type of file (including images)

2. S3FS installed in a Linux environment
sudo apt-get install s3fs
3. Integrate stand-alone algorithm (RC4 + MD5 Hash) into S3FS code-base (which would enable encrypting/decrypting any files that is modified in a mounted bucket)

  • RC4/MD5 Implementation

  • Implementing RC4/MD5 Function
  • Implementing RC4/MD5 Function

4. Generate the access key ID and secret access key in AWS 5.

6. Go back to the Ubuntu console to create a configuration file for storing the AWS access key and secret access key needed to mount an S3 bucket with S3FS.
echo ACCESS_KEY:SECRET_ACCESS_KEY > PATH_TO_FILE
7. Set correct permissions for the passwd-s3fs file where the access keys are stored:
chmod 600 ~/.passwd-s3fs
8. Create the directory (mount point) that will be used as a mount point for your S3 bucket
mkdir ~/s3-bucket
9. Register S3 bucket in AWS as remote storage for S3FS
s3fs bucket-name /path/to/mountpoint -o passwd_file=/path/passwd-s3fs


Validation

1. Mount bucket onto local drive
2. Place any type of file into the mounted bucket (encrypted or decrypted)
3. Check S3 bucket for file to see if it the encryption/decryption was reversed
4. Tested a file vice versa, placing file in s3 bucket


Infrastructure Diagram

About

Integrates RC4 MD5 Hashing into S3FS source code enabling encryption/decryption of files within mounted or AWS S3 bucket.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published