48
Review For Exam 3 © Abdou Illia – Spring 2014

Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

Embed Size (px)

Citation preview

Page 1: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

Review For Exam 3

© Abdou Illia – Spring 2014

Page 2: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

The Elements of Cryptography

Page 3: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

3

Cryptography?

Traditionally, cryptography refers to The practice and the study of encryption Transforming information in order to prevent

unauthorized people to read it.

Today, cryptography goes beyond encryption/decryption to include Techniques for making sure that encrypted

messages are not modified en route Techniques for secure

identification/authentication of communication partners.

Page 4: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

4

Your knowledge about Cryptography

1) Which of the following do cryptographic systems protect?

a) Data stored on local storage media (like hard drives) from access by unauthorized users.

b) Data being transmitted from point A to point B in a network

c) Both a and b

#$%^@#$5hh&*9(?>/@$#)>

Page 5: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

5

Your knowledge about Cryptography

2) Which of the following security issues is addressed by cryptographic systems?

a) Confidentiality; i.e. protection against eavesdroppingb) Authentication; i.e. assurance parties involved in a

communication are who they claim to bec) Message integrity; i.e. assurance that messages are

not altered en routed) Availability; i.e. making sure that communication systems

are not shut down by intruders.e) All of the above

Page 6: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

6

Basic Terminology 1

Network

Plaintext“Hello”

Ciphertext “11011101”

Ciphertext “11011101”Plaintext“Hello”

DecryptionAlgorithm

Interceptor

Party A

Party B

Plaintext: original message to be sent. Could be text, audio, image, etc. Encryption/Decryption Algorithm: mathematical tool (software) used to encrypt or decrypt Key: A string of bits used by to encrypt the plaintext or decrypt the ciphertext Ciphertext: encrypted message. Looks like a random stream of bits

+ Decryption key

EncryptionAlgorithm

+ Encryption key

HelloHello

Page 7: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

7

Basic Terminology 2 Encryption:

Converting plaintext into ciphertext using algorithms and keys The size of the ciphertext is proportional to the size of the plaintext Ciphertext is reversible to plaintext

Symmetric Key Encryption: Same key is used both for encryption and decryption Keys are usually identical or trivially identical*

Asymmetric Key Encryption: Also called Public/Private Key Encryption Two different keys are used: one for encryption, one for decryptionParty A Party B

Party AParty B

* Trivially identical means simple transformation could lead from one key to the another.

Flexcrypt: http://www.flexcrypt.com/flexcryptfree.html

Page 8: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

8

Your knowledge about Cryptography

3) Based on how symmetric encryption systems work, which of the following is the worst thing to happen?

a) An attacker gets a copy of the encryption and decryption algorithms

b) An attacker gets the decryption key

c) a and b are equally damaging

4) Which of the following presents more challenge for exchanging keys between partners?a) Asymmetric encryption

b) Symmetric encryption

c) A and b are equally challenging

Page 9: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

9

Exhaustive search and Key length

Key Length in bits Number of possible keys (2key length in bits)

1 2

2 4

4 16

8 256

16 65536

56 72057594037927900

112 5192296858534830000000000000000000 or 5.1923E+33

168 3.74144E+50

256 1.15792E+77

512 1.3408E+154

Attacker could use the right algorithm and do an exhaustive search (i.e. try all possible keys) in order to decrypt the ciphertext

Most attacks require the capture of large amount of ciphertext Every additional bit in the length of the key doubles the search time Every additional bit in the length of the key doubles the requirements in terms of

minimum processor’s speed to crack the key.

Page 10: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

10

Your knowledge about Cryptography

4) If you increase the key length from 56 bits to 66 bits. How much more key combinations an attacker who captures enough ciphertext will have to try in order to decipher the captured ciphertext using the appropriate algorithm?

_______________________________________

5) Assuming that it takes 7 days to try all possible combinations of a 56 bit key, how much time it would take to try all possible combinations when the key length is increased to 58 bits?

________________

Page 11: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

11

Weak vs. Strong Keys Symmetric Key Encryption

Usually used for customer e-business Keys with lengths of less than 100 bits are considered weak

today. Keys with lengths of more than 100 bits are considered

strong today.

Asymmetric Key Encryption Usually used for B2B financial e-business Key pairs must be much longer (512 bit and more) because

of the disastrous consequences of breaking the decryption key Key Length in bits Number of possible keys (2key length in bits)

1 2

2 4

16 65536

56 72057594037927900

112 5192296858534830000000000000000000 or 5.1923E+33

168 3.74144E+50

256 1.15792E+77

512 1.3408E+154

Page 12: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

12

Your knowledge about Cryptography

6) Most attacks require the capture of large amount of ciphertext, which can take a certain amount of time. Beside using strong keys what else can be done to make it harder to crack the key?

Answer: change the key very often

Page 13: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

Symmetric Key Encryption

Page 14: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

14

Symmetric Key Encryption methods Two categories of methods

Stream cipher: algorithm operates on individual bits (or bytes); one at a time Block cipher: operates on fixed-length groups of bits called blocks

Only a few symmetric methods are used today

Methods Year approved Comments

Data Encryption Standard - DES 1977 1998: Electronic Frontier Foundation’s Deep Crack breaks a DES key in 56 hours

DES-Cipher Block Chaining

Triple DES – TDES or 3DES 1999

Advanced Encryption Standard – AES 2001 Its versions among the most used today

Other symmetric encryption methods

IDEA (International Data Encryption Algorithm), RC5 (Rivest Cipher 5), CAST (Carlisle Adams Stafford Tavares), Blowfish

Page 15: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

15

Data Encryption Standard (DES)

DES EncryptionProcess

64-Bit CiphertextBlock

64-Bit DES Symmetric Key(56 bits + 8 redundant bits)64-Bit Plaintext

Block

DES is a block encryption method, i.e. uses block cipher DES uses a 64 bit key; actually 56 bits + 8 bits computable

from the other 56 bits Problem: same input plaintext gives same output ciphertext

Page 16: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

16

DES-Cipher Block Chaining

First64-Bit Plaintext Block

DES EncryptionProcess

Second64-Bit Plaintext Block

First64-Bit Ciphertext Block

InitializationVector (IV)

DES EncryptionProcess

Second64-Bit Ciphertext Block

DES Key

DES Key

DES-CBC uses ciphertext from previous block as input making decryption by attackers even harder

An 64-bit initialization vector is used for first block

Page 17: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

17

Triple DES (3DES)

Sender Receiver

Encrypts original plaintext with the1st key

Decrypts ciphertext withthe 3d key

Decrypts output of firststep with the 2nd key

Encrypts output of thefirst step with the 2nd key

Encrypts output of secondstep with the 3d key; givesthe ciphertext to be sent

Decrypts output of secondstep with the 1st key; givesthe original plaintext

168-Bit Encryption with Three 56-Bit Keys

1st

2nd

3rd

3rd

2nd

1st

Page 18: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

18

Triple DES (3DES)

Sender Receiver

Encrypts plaintext with the1st key

Decrypts ciphertext withthe 1st key

Decrypts output with the 2nd key

Encrypts output with the2nd key

Encrypts output with the1st key

Decrypts output with the1st key

112-Bit Encryption With Two 56-Bit Keys

1st

2nd

1st

1st

2nd

1st

Page 19: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

19

Your knowledge about Cryptography

7) Based on the way DES and 3DES work, which of the following is true?a) 3DES requires more processing time than DES

b) Compared 3DES, DES requires more RAM

c) Both a and b

8) Given the increasing use of hand-held devices, 3DES will be more practical than DES.

a) True

b) False

Page 20: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

20

Advanced Encryption Standard - AES

Developed by two Belgian cryptographers, Joan Daemen and Vincent Rijmen, and submitted to the AES selection process under the name "Rijndael", a portmanteau of the names of the inventors

Offers key lengths of 128 bit, 192 bit, and 256 bit Efficient in terms of processing power and RAM

requirements compared to 3DES Can be used on a wide variety of devices including

Cellular phones PDAs Etc.

Page 21: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

Asymmetric Key Encryption

Page 22: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

22

Public Key Encryption For confidentiality

Party A Party BDecrypt with

Party A’s Private KeyEncrypt with

Party A’s Public Key

Encrypt withParty B’s Public Key

Decrypt withParty B’s Private Key

EncryptedMessage

EncryptedMessage

Each Party uses other party’s public key for encryption Each Party uses own private key for decryption No need to exchange private key, but key needs to be very strong (512+

bit)

Page 23: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

23

Public Key Encryption methods

Asymmetric encryption methods are used both for Encryption in order to provide confidentiality Digital signature in order to provide partners’ authentication

Methods Year proposed Comments

RSA by Ron Rivest, Adi Shamir, and Leonard Adleman

1977 1995: First attack in lab conditions was reported

Elliptic Curve Cryptosystem - ECC 1985 Becoming widely used

Other symmetric encryption methods:

Dieffe-Hellman, El-Gamal

Page 24: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

24

Basic Terminology 3 Hashing:

Mathematical process for converting inputs into fixed-length outputs Hash function:

Algorithm that does the hashing. Uses an input + a shared secret or password. Example: MD5, Secure Hash Algorithm.

Hash: Fixed-length output of the hashing

Page 25: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

25

Encryption Versus Hashing

Encryption

Uses a key as aninput to an encryption method

Output is similar inlength to input

Reversible; ciphertextcan be decryptedback to plaintext

Use of Key

Length of Result

Reversibility

Hashing

Password is usually addedto text; the two arecombined, and thecombination is hashed

Output is of a fixedshort length, regardless of input

One-way function; hashcannot be “de-hashed” back to the original string

Page 26: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

26

Hashing & Public Key for authentication

Asymmetric Key Encryption is also used for authentication Usually used along with hashing

Confidentiality Authentication

Public KeyEncryption

Sender encrypts with receiver’s public key. Receiver decrypts with the receiver’s own private key.

Sender (supplicant) encrypts with own private key. Receiver (verifier) decrypts with the public key of the true party, usually obtained from a Certificate Authority.

Hashing Used in MS-CHAP for initial authentication and in HMACs for message-by-message authentication

Hashing and Public Key for authentication very used in cryptographic systems like SSL/TLS or IPSec

Page 27: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

27

Cryptographic Systems

Packaged set of cryptographic countermeasures used for protecting dialogues

Example: Secure Socket Layer/Transport Layer Security –SSL/TLS used in secured webservice

Each cryptographic system includes a variety of security standards (algorithms, hashing methods, security parameters) that comm. partners needs to “agree” on.

Typical Process:

Handshaking stages

Ongoing communication stage: Message-by-Message authentication

Page 28: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

28

Cryptographic Systems (cont.)

Packaged set of cryptographic countermeasures used for protecting dialogues

Handshaking Stage 1:Initial Negotiation of Security Parameters

Handshaking Stage 2:Initial Authentication

(Usually mutual)

Handshaking Stage 3:Keying

(Secure exchange of keys and other secrets)

Ongoing Communication Stagewith Message-by-Message

Confidentiality, Authentication,and Message Integrity

ServerClient PC

Time

Encrypted for Confidentiality

PlaintextElectronic Signature(Authentication, Integrity)

Page 29: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

29

MS-CHAP* Hashing for Authentication

* Microsoft’s version of Challenge Handshake Authentication Protocol

CHAP is an authentication hashing scheme used by Point to Point Protocol (PPP) servers to validate the identity of remote clients

1) After the completion of the link establishment phase, the server sends a "challenge" message to the client.

2) The client responds with a value calculated using a one-way hash function, such as an MD5 or SHA (Secure Hash Algorithm).

3) The server checks the response against its own calculation of the expected hash value. If the values match, the server acknowledges the authentication; otherwise it should terminate the connection.

4) At random intervals the server sends a new challenge to the peer and repeats steps 1 through 3.

Shared secret

Page 30: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

MD5 (Message-Digest algorithm 5)

A widely used cryptographic hash function used to hash inputs (typed texts or files) in order to generate hash values (called checksums, message digest, or output)

An MD5 hash value is typically expressed as a 16-hexadecimal number like 912df11644fccac439b6fc5f80af5cdb

Each hex number is 8 bits MD5 generates a 128-bit hash value regardless of the

input length. Commonly used to check the integrity of files like

downloaded software programs

30

Page 31: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

SHA1 (Secure Hash Algorithm 1)

A widely used cryptographic hash function used to hash inputs (typed texts or files) in order to generate hash values (called checksums, message digest, or output)

A SHA1 hash value is typically expressed as a 20-hexadecimal number like 79054025255fb1a26e4bc422aef54eb4

SHA1 generates a 160-bit hash value regardless of the input length

Commonly used to check the integrity of files like downloaded software programs

31

Page 32: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

Application Security: General apps &Web service

Page 33: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

33

General Applications Security Issues

Page 34: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

34

Which of the following is true about Application Security?A. If a server application (or service) is no longer needed, it

should be turned off

B. Fewer applications on a computer means fewer attack opportunities

C. Use good security baselines to install and configure apps

D. Do not install application centrally using group policies

E. Add application layer authentication by requiring users to provide credentials to run application programs

F. Implement cryptographic authentication for sensitive apps

G. If a server application (or service) is no longer needed, it should be removed

H. Do not turn on each applications’ automatic update checking

Page 35: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

35

Applications and Buffer Overflow

Buffers are RAM areas where data is stored temporarily Buffer overflow occurs when data spill from one buffer to

the next Buffer Overflow is the biggest issue in application coding

If an attacker sends more data than the programmer had allocated to a buffer, a buffer might overflow, overwriting an adjacent section of RAM

Buffer overflow attacks

RAMBuffer1 Buffer2

Buffer7Buffer3 Buffer4 Buffer6Buffer5

OUTDO OR

Page 36: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

36

Buffer Overflow Attack

Occurs when ill-written programs allow data destined to a memory buffer to overwrite instructions in adjacent memory register that contains instructions.

If the data contain malware, the malware could run and creates a DoS

Example of input data: ABCDEF LET JOHN IN WITHOUT PASSWORD

36

Buffer Instructions

1 2 3 4 5 6

Print

Run Program

Accept input

Buffer Instructions

1 2 3 4 5 6

A B C D E F LET JOHN IN WITHOUT PASSWORD

Run Program

Accept input

Page 37: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

37

Preventing Buffer Overflow

Use Languages/tools that provide automatic bounds checking such as Perl, Python, and Java instead lower level language (C or Assembly, etc). However, this is usually not possible or practical because

almost all modern OS are written in the C language. Eliminate The Use Of Flawed Library Functions like gets(),

strcpy, and strcmp that fail to check the length or bounds of their arguments.

Design And Build Security Within Code

Use Source Code Scanning Tools. Example: PurifyPlus Software Suite can perform a

dynamic analysis of Java, C, or C++ source code.

// replace le following line

strcpy (buffer2, strng2);

// by

strcpy (buffer2, string2, 8)

For instance, this simple change informs strcpy() that it only has an eight byte destination buffer and that it must discontinue raw

copy at eight bytes.

Key Principle: Never Trust User Input

Page 38: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

38

Web service security

Page 39: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

39

Webservice & E-Commerce apps

Web applications could be the target of many types of attacks like: Directory browsing

Traversal attacks

Web defacement

Using HTTP proxy to manipulate interaction between client and server

IIS IPP Buffer Overflow

Browser attacks

Time configuration

Page 40: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

40

Web sites’ directory browsing

Web server with Directory Browsing disabled User cannot get access to list of files in the directory by

knowing or guessing directory names

Page 41: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

41

Web site with directory browsing

Web server with Directory Browsing enabled User can get access to the list of files in the directory by

knowing or guessing directory names

Page 42: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

42

Traversal Attack

Normally, paths start at the WWW root directory

Adding ../ (Windows) or ..\ (Unix) in an HTTP request might take the attacker up a level, out of the WWW root directory.

Example: http://website.com ../../

Example: http://castle.eiu.edu/~a_illia/BUS3500/Brief/Case1/../

If attacker traverses to Command Prompt directory in Windows 2000 or NT, he can execute any command with system privileges

Page 43: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

43

Traversal Attacks (Cont.) Preventing traversal attacks

Companies filter out ../ and ..\ using URL scanning software

Attackers respond with hexadecimal and UNICODE representations for ../ and ..\

ASCII Character Chart with Decimal, Binary and Hexadecimal Conversions

Name Character Code Decimal Binary HexNull NUL Ctrl @ 0 00000000 00

Start of Heading SOH Ctrl A 1 00000001 01

Space 32 00100000 20

Exclamation Point ! Shift 1 33 00100010 22

Plus + Shift = 43 00101011 2B

Period . . 46 00101110 2E

Forward Slash / / 47 00101111 2F

Tilde ~ Shift’ 126 01111110 7E

Page 44: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

44

IIS IPP Buffer Overflow

The Internet Printing Protocol (IPP) service included in IIS 5.0 and earlier versions is vulnerable to buffer overflow attacks

The jill.c program was developed to launch the attack using:

GET NULL.printer HTTP/1.0

Host: 420-byte jill.c code to launch the command shell

IIS server responds launching the command shell (C:\WINNT\SYSTEM32\>) giving the attacker SYSTEM privileges.

Page 45: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

45

IIS IPP Buffer Overflow (cont.)

Link to jill.c code

Code compilable using gcc jill.c –o jill on Linux

Precompiled version (jill-win32.c) and executable (jill-win32.exe) available at ftp://ftp.technotronic.com/

newfiles/jill-win32.exe. This executable file is ready to run on a Windows machine.

Page 46: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

46

IIS IPP Buffer Overflow (cont.)

Source: http://puna.net.nz/archives/Hacking/David_Sheridan_GCIH.doc

Page 47: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

47

Login Screen Bypass Attack

Website user gets a login screen

Instead of logging in, user enters a URL to bypass the login screen and gain access without authorization.

Page 48: Review For Exam 3 © Abdou Illia – Spring 2014. The Elements of Cryptography

48

Browser Attacks

Malicious links User must click on them to execute (but not

always)

Common extensions are hidden by default in some operating systems.

attack.txt.exe seems to be attack.txt