Project: Simulated Encrypted File System (SEFS)



Similar documents
Secure Shell SSH provides support for secure remote login, secure file transfer, and secure TCP/IP and X11 forwarding. It can automatically encrypt,

AD Image Encryption. Format Version 1.2

Message Authentication Codes. Lecture Outline

Chapter 6 Electronic Mail Security

Common Pitfalls in Cryptography for Software Developers. OWASP AppSec Israel July The OWASP Foundation

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

Cryptography and Network Security Chapter 15

Configuring and Monitoring Citrix Access Gateway-Linux Servers. eg Enterprise v5.6

Overview of Cryptographic Tools for Data Security. Murat Kantarcioglu

CIS433/533 - Computer and Network Security Cryptography

The Misuse of RC4 in Microsoft Word and Excel

SkyRecon Cryptographic Module (SCM)

Waspmote Encryption Libraries. Programming guide

FIPS Non Proprietary Security Policy: Kingston Technology DataTraveler DT4000 Series USB Flash Drive

Computer Security CS 426. CS426 Fall 2010/Lecture 40 1

Dashlane Security Whitepaper

PHP Magic Tricks: Type Juggling. PHP Magic Tricks: Type Juggling

Analysis of FileVault 2: Apple's full disk encryption. Omar Choudary Felix Grobert Joachim Metz

YubiKey Integration for Full Disk Encryption

Electronic Mail Security. Security. is one of the most widely used and regarded network services currently message contents are not secure

SBClient SSL. Ehab AbuShmais

C O M P U T E R S E C U R I T Y

Protection Profile for Full Disk Encryption

SecureDoc Disk Encryption Cryptographic Engine

PGP from: Cryptography and Network Security

Message Authentication Codes

OpenSSL (lab notes) Definition: OpenSSL is an open-source library containing cryptographic tools.

Symmetric and Public-key Crypto Due April , 11:59PM

Network Security Essentials Chapter 7

Efficient Framework for Deploying Information in Cloud Virtual Datacenters with Cryptography Algorithms

Configuring and Monitoring Bluecoat AntiVirus

Alternate Representations of the Public Key Cryptography Standards (PKCS) Using S-Expressions, S-PKCS

OCRA Validation Server Profile

Network Security (2) CPSC 441 Department of Computer Science University of Calgary

FIPS Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0

MarshallSoft AES. (Advanced Encryption Standard) Reference Manual

Overview/Questions. What is Cryptography? The Caesar Shift Cipher. CS101 Lecture 21: Overview of Cryptography

Lecture 9: Application of Cryptography

Key Management Interoperability Protocol (KMIP)

Salesforce1 Mobile Security Guide

The Keyed-Hash Message Authentication Code (HMAC)

Safeguarding Data Using Encryption. Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST

Python Cryptography & Security. José Manuel

Cryptographic Hash Functions Message Authentication Digital Signatures

Northrop Grumman M5 Network Security SCS Linux Kernel Cryptographic Services. FIPS Security Policy Version

efolder White Paper: The Truth about Data Integrity: 5 Questions to ask your Online Backup Provider

OPENID AUTHENTICATION SECURITY

Practice Questions. CS161 Computer Security, Fall 2008

Configuring and Monitoring Hitachi SAN Servers

SENSE Security overview 2014

Accellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0. Accellion, Inc.

Project #2: Secure System Due: Tues, November 29 th in class

Analyzing the Security Schemes of Various Cloud Storage Services

Electronic Mail Security

How To Encrypt Data With Encryption

CS 758: Cryptography / Network Security

Secure Network Communications FIPS Non Proprietary Security Policy

Network Security CS 5490/6490 Fall 2015 Lecture Notes 8/26/2015

Security. Learning Objectives. This module will help you...

Introduction to Computer Security

Table of Contents. Cisco Wi Fi Protected Access 2 (WPA 2) Configuration Example

CLOUD COMPUTING SECURITY ARCHITECTURE - IMPLEMENTING DES ALGORITHM IN CLOUD FOR DATA SECURITY

Chapter 4: Computer Codes

VoIP Security. Seminar: Cryptography and Security Michael Muncan

Kaseya US Sales, LLC Virtual System Administrator Cryptographic Module Software Version: 1.0

Overview of Symmetric Encryption

UM0586 User manual. STM32 Cryptographic Library. Introduction

Cryptography Lecture 8. Digital signatures, hash functions

Attacking NTLM with Precomputed Hashtables

Cryptography and Network Security

CS 393 Network Security. Nasir Memon Polytechnic University Module 11 Secure

SUSE Linux Enterprise 12 Security Certifications Common Criteria, EAL, FIPS, PCI DSS,... What's All This About?

Error oracle attacks and CBC encryption. Chris Mitchell ISG, RHUL

High Security Online Backup. A Cyphertite White Paper February, Cloud-Based Backup Storage Threat Models

Distributed File Systems Part I. Issues in Centralized File Systems

Using Minix to Teach Computer Security Courses

IPsec Details 1 / 43. IPsec Details

The following functions are provided by the Digest::MD5 module. None of these functions are exported by default.

HASH CODE BASED SECURITY IN CLOUD COMPUTING

Section 1 CREDIT UNION Member Information Security Due Diligence Questionnaire

Network Security. Modes of Operation. Steven M. Bellovin February 3,

Designing Hash functions. Reviewing... Message Authentication Codes. and message authentication codes. We have seen how to authenticate messages:

Pulse Secure, LLC. January 9, 2015

Secure information storage

Number Representation

FL EDI SECURE FTP CONNECTIVITY TROUBLESHOOTING GUIDE. SFTP (Secure File Transfer Protocol)

Question How do I access the router s web-based setup page? Answer

Nortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS Non-Proprietary Security Policy

Information Security

Tamper protection with Bankgirot HMAC Technical Specification

File System Encryption in C#

Package PKI. July 28, 2015

Table of Contents. Bibliografische Informationen digitalisiert durch

Hash Functions. Integrity checks

1.2 Using the GPG Gen key Command

Configuring and Monitoring Citrix Branch Repeater

Acano solution. Security Considerations. August E

Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle. Network Security. Chapter 13

What s New in MySQL 5.7 Security Georgi Joro Kodinov Team Lead MySQL Server General Team

Transcription:

Project: Simulated Encrypted File System (SEFS) Omar Chowdhury Fall 2015 CS526: Information Security 1

Motivation Traditionally files are stored in the disk in plaintext. If the disk gets stolen by a perpetrator, he can access all the data in the disk. Disk containing sensitive personal information getting stolen by hackers are very common. Fall 2015 CS526: Information Security 2

A Possible Defense (Encrypted File Systems) Defense: encrypt the files using some semantically secure encryption scheme. No one should be access/change the file s contents without proper credentials. An individual with proper credentials should be able to perform all the necessary operations on the encrypted file. An encrypted file system (in short, EFS) can support such operations. Example: Solaris, Windows NT, and Linux support EFS. Fall 2015 CS526: Information Security 3

Goal of this Project Goal: Implement a simulated version of EFS Take-a-way message from cryptography lectures: Do not try to implement Communication your own does cryptography not imply library rather use well-known cryptography libraries. copying each other s code We will specifically learn to usage of openssl library. Additionally, we are trying something new this semester. To increase the communication between your classmates we want the projects to be inter-operable. Fall 2015 CS526: Information Security 4

Logistics Team: You can work in a team of consisting of (maximum) two members. 20% (1) User Authentication Project 30% (2) Simplified SEFS 45% (3) Full SEFS Inter-operability: 5% of the total project points. Fall 2015 CS526: Information Security 5

Part 1 User Authentication using Passwords Username: Allowed characters: a-za-z0-9 Length: >5 and <32 Password: Allowed characters: a-za-z0-9@#$%&*()-+= Length: >8 and <32 Salt: Randomly generated for each password Length 32 bytes Hashing algorithm: PKCS5_PBKDF2_HMAC_SHA1 Field Separator Plaintext Hexadecimal Password file.. username:salt:hashedpassword.. passwd 32 bytes Fall 2015 CS526: Information Security 6

register_user(u,p,pfile) delete_user(u,p,pfile) Functions developed in this part of the project for checking user is_user_valid(u,pfile) authentication will be used in the next two parts of the project. match_user(u,p,pfile) Part 1 Functionalities Returns: OKAY -> 1 ERROR -> -1 Password file u1:salt1:hashedpassword1 u2:salt2:hashedpassword2 u3:salt3:hashedpassword3 change_user_password(u,p,p n,pfile) passwd Fall 2015 CS526: Information Security 7

Part 2 Simplified SEFS Simplified SEFS Master key: Randomly generated, 128 bit Master IV: Randomly generated, 128 bit A sample master key file will be given to you which contains the binary representation of a key and IV. A sample key and IV loading program is given to you. A sample random key and IV generator program is given to you. Chunk file Plaintext File F Meta File F.meta After encryption Chunk File Rname Name can contain only alphanumeric characters File name length maximum 20 characters. Fall 2015 CS526: Information Security 8

1 Part 2 File Format NULL File owner username Number of Chunks File size Start Chunk Name End Chunk Name Same IV (in plaintext) Next Chunk Name Size of File Content in this Chunk Plaintext file content Chunk name Encryption key Chunk HMAC Meta file format Chunk file format Fall 2015 CS526: Information Security 9

Master File List (Simplified SEFS Integrity Protection) File Name SHA256 Digest of the Meta file Fall 2015 CS526: Information Security 10

Part 2 Functionality create_file(u,p,filename) delete_file(u,p,filename) encrypt_file(u,p,filename) decrypt_file(u,p,filename,pfilename) read_from_file(u,p,filename,position,len) write_to_file(u,p,filename,position,newcontent) file_size(u,p,filename) file_integrity_check(u,p,filename) system_health_check() Returns: OKAY -> 1 ERROR -> -1 Returns: OKAY -> char * ERROR -> NULL Fall 2015 CS526: Information Security 11

Master Key and IV Part 2 Read Operation File owner username Number of Chunks File size Start Chunk Name End Chunk Name IV (in plaintext) Next Chunk Name Size of File Content in this Chunk Plaintext file content Chunk name Encryption key Chunk HMAC Meta file format Chunk file format Fall 2015 CS526: Information Security 12

Full SEFS Generalization of the simplified SEFS. Each chunk can hold at most 1024 bytes of plaintext data. Each plaintext file can be divided into multiple encrypted chunk files. If a file has less than 1024 bytes of data, you are required to pad it with ASCII character 0 to make it 1024 bytes. Space restriction: You are required to use the minimum number of chunk files for storing each plaintext file Example: If you have a chunk containing 512 bytes of data and the user wants to write 200 bytes to the end of the chunk, you cannot create a new chunk and instead have to write into that chunk. Fall 2015 CS526: Information Security 13

Part 2 Full SEFS Read Operation File owner username Number of Chunks File size Start Chunk Name End Chunk Name IV (in plaintext) Next Chunk Name Size of File Content in this Chunk Plaintext file content Chunk name Encryption key Chunk HMAC. Meta file format Chunk file format Fall 2015 CS526: Information Security 14

Potential Pitfalls Memory leaks a lot of the operations of the project require pointer manipulation, make sure to free the pointer after usage File operations file operations in C is complicated, you cannot write in the middle of a file without overwriting the content. You have to manually move the following content and then write something Error checking a lot of errors can potentially happen during the operation and it is paramount that you do handle these errors. Do not assume inputs are well-formed. Perform input validation when applicable. Fall 2015 CS526: Information Security 15

Different parameters username a-za-z0-9 Length >= 6 and < 32 Password a-za-z0-9@#$%&*()-+= Length >= 9 and < 32 Password salt Randomly generated 32 bytes Master key 128 bits Master IV 128 bits Chunk keys 128 bits, randomly generated For encryption use, AES in the CTR mode Chunk IVs 128 bits, randomly generated Chunk names are randomly generated and cannot have space character in it For padding use the ASCII character 0 For hash mac, use HMAC with EVP_sha256() For digest, use SHA256 For password hash, use PKCS5_PBKDF2_HMAC_SHA1 with iteration value 20000 Fall 2015 CS526: Information Security 16

Questions If you do not understand any specifics, please do not make your own assumptions rather confirm with me. Making arbitrary, easy to implement assumptions will surely ensure you losing 5% of the inter-operability. Direct any questions related to the project to me through piazza, email (ochowdhu@purdue.edu), or drop by my office during office hours (LWSN 2142 R, Thursday 11:30am - 12:30pm) Fall 2015 CS526: Information Security 17