I MPROVING Y OUR P ASSWORD WITH S ALT Tayler Angevine Bachelor of Arts in Computer Science Dr. Ken Blaha (Advisor) May 03, 2014.

Slides:



Advertisements
Similar presentations
By Wild King. Generally speaking, a rainbow table is a lookup table which is used to recover the plain-text password that derives from a hashing or cryptographic.
Advertisements

Lecture 5: Cryptographic Hashes
Lecture 7 Overview. Advanced Encryption Standard 10, 12, 14 rounds for 128, 192, 256 bit keys – Regular Rounds (9, 11, 13) – Final Round is different.
CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (3) Information Security.
ECE454/CS594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2011.
1 CIS 5371 Cryptography 5b. Pseudorandom Objects in Practice Block Ciphers.
Computer Science 101 Data Encryption And Computer Networks.
Cryptology Passwords and Authentication Prof. David Singer Dept. of Mathematics Case Western Reserve University.

Section 3.8: More Modular Arithmetic and Public-Key Cryptography
PIITMadhumita Chatterjee Security 1 Hashes and Message Digests.
Hash functions a hash function produces a fingerprint of some file/message/data h = H(M)  condenses a variable-length message M  to a fixed-sized fingerprint.
ECOMMERCE TECHNOLOGY SUMMER 2002 COPYRIGHT © 2002 MICHAEL I. SHAMOS Cryptographic Security.
Chapter 5 Cryptography Protecting principals communication in systems.
ECOMMERCE TECHNOLOGY FALL 2003 COPYRIGHT © 2003 MICHAEL I. SHAMOS Cryptography.
Chapter 4  Hash Functions 1 Overview  Cryptographic hash functions are functions that: o Map an arbitrary-length (but finite) input to a fixed-size output.
Secure Hashing and DSS Sultan Almuhammadi ICS 454 Principles of Cryptography.
McGraw-Hill©The McGraw-Hill Companies, Inc., Security PART VII.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
Apr 4, 2003Mårten Trolin1 Previous lecture TLS details –Phases Handshake Securing messages –What the messages contain –Authentication.
Lecture 23 Symmetric Encryption
Cryptography1 CPSC 3730 Cryptography Chapter 11, 12 Message Authentication and Hash Functions.
1 Message Authentication and Hash Functions Authentication Requirements Authentication Functions Message Authentication Codes Hash Functions Security of.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
Chapter 12 Cryptography (slides edited by Erin Chambers)
Practical Techniques for Searches on Encrypted Data Yongdae Kim Written by Song, Wagner, Perrig.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 9: Cryptography.
A Cryptography Education Tool Anna Yu Department of Computer Science College of Engineering North Carolina A&T State University June 18, 2009.
MATH 224 – Discrete Mathematics
Lecture 19 Page 1 CS 111 Online Symmetric Cryptosystems C = E(K,P) P = D(K,C) E() and D() are not necessarily the same operations.
Dan Johnson. What is a hashing function? Fingerprint for a given piece of data Typically generated by a mathematical algorithm Produces a fixed length.
CIS 450 – Network Security Chapter 8 – Password Security.
Chapter 20 Symmetric Encryption and Message Confidentiality.
Data and its manifestations. Storage and Retrieval techniques.
David Evans CS150: Computer Science University of Virginia Computer Science Class 31: Cookie Monsters and Semi-Secure.
Lecture 19 Page 1 CS 111 Online Authentication for Operating Systems What is authentication? How does the problem apply to operating systems? Techniques.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
Chapter 17 Security. Information Systems Cryptography Key Exchange Protocols Password Combinatorics Other Security Issues 12-2.
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Module 3 – Cryptography Cryptography basics Ciphers Symmetric Key Algorithms Public Key Algorithms Message Digests Digital Signatures.
Hashing Algorithms: Basic Concepts and SHA-2 CSCI 5857: Encoding and Encryption.
Cracking DES Cryptosystem A cryptosystem is made of these parts: Two parties who want to communicate over an insecure channel An encryption algorithm that.
CSCI 172/283 Fall 2010 Hash Functions, HMACs, and Digital Signatures.
1 Network Security Lecture 5 Hashes and Message Digests Waleed Ejaz
Hash and Mac Algorithms. Contents Hash Functions Secure Hash Algorithm HMAC.
H ASHING : SHA256 T AYLER A NGEVINE B ACHELOR OF A RTS D R. K EN B LAHA 3/13/2014.
6fb52297e004844aa81be d50cc3545bc Hashing!. Hashing  Group Activity 1:  Take the message you were given, and create your own version of hashing.  You.
Network Security – Special Topic on Skype Security.
Based on Bruce Schneier Chapter 8: Key Management Dulal C Kar.
Lecture 2: Introduction to Cryptography
Lecture 23 Symmetric Encryption
Cryptographic Hash Functions Prepared by Dr. Lamiaa Elshenawy
Advanced Encryption Standard Dr. Shengli Liu Tel: (O) Cryptography and Information Security Lab. Dept. of Computer.
DATA & COMPUTER SECURITY (CSNB414) MODULE 3 MODERN SYMMETRIC ENCRYPTION.
Cryptography and Its Algorithms Scott Chappell. What is Cryptography?  Definition: the art of writing or solving codes.
MD5 & Hash Encryption By Alex Buzak. Overview Purpose of MD5 and Hash Encryptions Examples MD5 Algorithm Explanation of Possible Security Risks Practical.
Computer Science and Engineering Computer System Security CSE 5339/7339 Lecture 10 September 21, 2004.
Network Security. Three tools Hash Function Block Cipher Public Key / Private Key.
Hashes Lesson Introduction ●The birthday paradox and length of hash ●Secure hash function ●HMAC.
CSCI 530 Lab Passwords. Overview Authentication Passwords Hashing Breaking Passwords Dictionary Hybrid Brute-Force Rainbow Tables Detection.
 Encryption provides confidentiality  Information is unreadable to anyone without knowledge of the key  Hashing provides integrity  Verify the integrity.
Chapter 5: The Art of Ensuring Integrity
Network Security.
PHP: Security issues FdSc Module 109 Server side scripting and
Introduction to Symmetric-key and Public-key Cryptography
Encryption and Decryption
Elections Choose wisely, this is your chance to prove if election by popular vote works or not.
Network Security.
Exercise: Hashing, Password security, And File Integrity
Presentation transcript:

I MPROVING Y OUR P ASSWORD WITH S ALT Tayler Angevine Bachelor of Arts in Computer Science Dr. Ken Blaha (Advisor) May 03, 2014

I NTRODUCTION Why did I choose this project? Design of original project How my project turned into what it is now Two-way Symmetric Encryption Key Generation and Storage Salting How does a hashing algorithm work: SHA-256 Why is SHA-256 widely used Demonstration Conclusion Questions

“Hardly a week goes by without a major password breach at one website or another—in one week, nearly 500,000 Yahoo passwords were exposed, Formspring's server hack gave up nearly as many passwords, and Nvidia's developer zone was breached. And that's just some of the hacks we heard about...” Neil J. Rubenking (pcmag)

O RIGINAL P ROJECT Password Management Application Desktop Application Use a password to log in (a username was not required) A central place to store all of your usernames and passwords “a place to keep all of your keys” Why was this useful? Emphasis on security caused me to keep forgetting passwords. Tired of resetting password and calling customer service

R EQUIREMENTS 100% reliable Should be able to open the program and retrieve information whenever needed. Completely Secure Trust is a reoccurring theme when it comes to password management applications. How does one safely store passwords? Incorrect and Correct Techniques Creating a safe environment for your information

W HAT IS CRYPTOGRAPHY ? Secret writing The computerized encoding and decoding of information Symmetric-key cryptography Hashing

C OMPROMISED D ATABASES “Hardly a week goes by without a major password breach at one website or another—in one week, nearly 500,000 Yahoo passwords were exposed…” Focal point of my project Everything should be encrypted in the database Which algorithms can encrypt and decrypt information? Information needed to be encrypted, but returned to plaintext

A DVANCED E NCRYPTION S TANDARD (AES) Two-way symmetric encryption algorithm.

W HAT IS THE KEY USED FOR ? A key is a string that is used to shift each letter by a number of places or something much more complicated. Operations: XOR, bit shifts, etc.

K EY D ERIVATION Key must be a certain length 128, 192, 256 bits Bigger the key means more key rounds. 10, 12, 14 Key rounds refer to repetitions of AES operations (shift rows, mix columns, add round key) If you use a password as a key you must take some precautionary steps Passwords tend to be weak Key should be hashed first using sha 256 Ciphered using AES with a randomly generated Key. (Key used should be stored) Ensure “randomness” Hashed again using sha 256. Key size Prevent from Dictionary Attacks

K EY D ERIVATION C ONTINUED … Plenty of Libraries for creating secret keys Java’s SecretKeyFactory SecretKey

S TORING THE K EY Key must be stored in order to encrypt and decrypt data. Problem that’s been around for years

S TORING K EY IN D ATABASE Common Solution Risky

S TORING K EY IN S EPARATE F ILE Common Solution Risky Anything done in code can be undone. Humans are predictable Split the key. Change file permissions.

S TORE K EY ON E XTERNAL S TORAGE D EVICE Key is stored on USB or External Hard Drive Attack must be executed locally or attacker must try every possible key to see if your database decrypts (brute force) Requires user to provide key at start up. Unreasonable. USB is lost or damaged My favorite solution

D O NOT STORE THE KEY AT ALL Most interesting Relies on password strength When the user attempts to log in, take the user’s password, do the hash  cipher  hash steps, see if it decrypts the database

H ASHING Irreversible function. Used to mainly store passwords How to log in Hash the password given by the user Check to see if the hash given by the user equals the hash stored in the database. Do they match? Must be cautious when hashing Susceptible to Look-up tables Brute-force and dictionary attacks

T YPES OF ATTACKS Look-up table Brute Force and Dictionary Attacks

L OOK UP TABLES Pre-computed table for reversing hash functions. Takes the hashes of commonly used passwords and matches them to the hashes stored in the database Hash matching game Used to crack multiple passwords at a time Work because each password is hashed the exact same way. Hash of “dog” will result in the same hash every time. As long as you are using the same algorithm. Hash of “dog” using md5 != hash of “dog” using SHA

H OW TO DEFEND YOUR HASH… Look Up tables Salt the Master Password using Cryptographically Secure Pseudo-Random Number Generator hash(“password" + “RxFLuENMsoeD") = 9c a125612s e USING SHA-256 Avoids collision This is done N amount of times The salt and hash are stored in the database Works because it takes a lot of time to rework a table.

E XAMPLE

S ALTING THE C ORRECT W AY do not do this Hash( hash( hash( password+salt ) ) ) Hashing the same value does not increase security Hash( hash( password ) + hash( salt ) ) These are argued by others Access to source code Use a Cryptographically Secure Pseudo Random Number Generator (CSPRNG) A Random Number Generator was not made to be used for cryptography. Use a large enough CSPRNG

P IGEON H OLE P RINCIPLE If there are more balls than boxes, then some box must contain more than one wall.

S ALT S IZE Do not want to reuse salts Chances of collision become non-negligible at 2^n/2 salts Byte[] salt = new Byte[8] 8 bytes * 8 bits per byte = 64 2^64 possible salts It is better to be safer than sorry Use a 16 byte array 2^128 possible salts.

T HERE ARE OTHER METHODS TO HASH COLLISION Concatenating the salt with other variables User name, session id, curser location, etc…

B RUTE F ORCE AND D ICTIONARY A TTACKS Brute Force Try every possible combination to a fixed length. Dictionary Attack Can be used to crack individual passwords. List of words (dictionary) or commonly used passwords.

S LOWING B RUTE F ORCE A TTACKS SHA-256 is designed to be fast Can’t use wait statements PBKDF2 Has multiple parameters Value that will be hashed Salt Work factor Has tons of algorithms that it can be used with SHA-256 SHA-1 AES BlowFish Etc.

N ONE OF THIS REALLY MATTERS IF Law #5: None of this matters if it’s a weak password. Technet.microsoft.com

P ASSWORD L ENGTH Suppose there are 95 ASCII characters Lower Case Letters = 26 Upper Case Letters = 26 Digits = 10 Special Characters = 33 TOTAL = 95

H OW DOES HASHING WORK ?

I NTRODUCTION Review the hash function SHA-256 Goal: understand how SHA-256 computes it’s hash. Why have I decided to focus on Sha-256 algorithms? Battle tested Considered to be some of the “safest” algorithms Bitcoin is based around SHA-256. The way the algorithm is implemented using MessageDigest left a lot of unknowns. Was under the impression that I would need to code the algorithm.

M ORE INTRO Named after it’s digest length. Will not focus on SHA-1 because it has been “broken” Would rather focus on today’s standard rather than the past. SHA-384 and SHA-512 because they are essentially the same. Why go over the code? I believe it is necessary to understand the code of an algorithm in order to comprehend how hashing works.

W HAT IS A HASH ? Hash function takes a string of any length, and generates fixed-length output data. It is not reversible. Because a lot of data is discarded during the hash process. If you have lost information about the original input, then it is nearly impossible to reverse the hash.

W HAT MAKES A GOOD HASH ? Same input will always lead to the same output. Avoids collision attacks What is a collision attack? Find two input strings that produce the same hash. “abc” “aiieagnea;[sagjeiao;iaeohgao;ejagea” Hash functions can have infinite input length, but a fixed output. Sha 256 is more safe from collision attacks than other algorithms. MD5 = 128 byte output, 64 bits of security SHA-1 = 160 byte output, 80 bits of security. SHA 256 = 256 byte output, 128 bits of security

H OW DOES IT WORK ? Padding aka Preprocessing Block decomposition Hash Algorithm

P REPROCESSING Message (M) is l bits long. Append message with a 1 Followed by n zero bits. N is smallest, non-negative solution to the equation. L n = 448 mod 512 This leaves enough room to append what we have so far with a 64-bit block that equals our message represented in binary. Message = “abc” N = 448  N = 423 zero bits

N OTATION Algorithm uses AND, XOR, OR, Circular Right Shift, and Logical Right Shifts in order to compute the hash.

AND J AVA SYMBOL : & pqp AND q Produces 1 if both p and q are 1’s.

ORJ AVA SYMBOL : | pqp OR q Produces 1 if p or q are 1

XORJ AVA : ^ pqp XOR q Produces 1 if p or q is 1, but not both.

C IRCULAR S HIFT R IGHT S H R( VARIABLE, NUMBER ) >> signed right shift

L OGICAL R IGHT S HIFT R OT R( VARIABLE, NUMBER ) >>> unsigned right shift

E QUATIONS

W HERE IT STARTS TO GET COMPLICATED. Generally H 1 – H 8 are set to the first 32 bits of the fractional parts of the square roots of the first eight primes.

E XAMPLE Square root of 2 = Fractional part = Hexadecimal = 6A09E667.

W HERE DOES OUR PASSWORD COME INTO PLAY ? Or original password was padded to 512 bits. Which is 16, 32 bit components. A 64 component array is created we will refer to as W W 0 – W 15 are initialized to our padded password. The rest (W 16 – W 63 ) are set to a value determined by this function J is just the counter in a for loop.

A LGORITHM C OMPUTATION ( EXECUTED 64 TIMES )

A – H are initialized with H 1 – H 8

L AST S TEP Take your original and H 1 – H 8 add a – h to them.

D EMONSTRATION

I SSUES WITH R ESEARCH Putting together a puzzle Some things are difficult to find answers to.

C ONCLUSION There are a lot of factors when it comes to storing information Encrypt your database Spend some time on creating a random secure key Salt your hashes Slow down your hashing algorithm Nothing matters if you are hashing a weak password Sha-256 is an interesting algorithm

QUESTIONS?

S OURCES Algorithm pdf pdf 07/SHA256english.pdf 07/SHA256english.pdf Actual Implementation source/libjava/classpath/gnu/java/security/hash/Sha256. java source/libjava/classpath/gnu/java/security/hash/Sha256. java Various Information wikipedia.org/ technology-explained/

M ORE S OURCES Various Information schedule-mean-in-sha schedule-mean-in-sha ml ml Crackstation.net Stackexchange & stackoverflow keepass,.info/help/base/security.html Blog.agilebits.com Converting bytes to a string java/ java/ Hash Calculator