Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Enhancing Password Security: Proactive Checking, Salting, & Challenge-Response, Exams of Computer Science

This document from an ecs 235 class covers various methods for improving password security, including proactive password checking, salting, and challenge-response authentication. Proactive password checking involves analyzing proposed passwords for 'goodness' and rejecting bad ones. Salting is a method for slowing down dictionary attacks. Challenge-response authentication requires users and systems to share a secret function and exchange messages to authenticate each other. The document also discusses various password algorithms and hardware support for authentication.

Typology: Exams

Pre 2010

Uploaded on 07/31/2009

koofers-user-csv
koofers-user-csv 🇺🇸

10 documents

1 / 21

Toggle sidebar

Related documents


Partial preview of the text

Download Enhancing Password Security: Proactive Checking, Salting, & Challenge-Response and more Exams Computer Science in PDF only on Docsity! 1 May 20, 2004 ECS 235 Slide #1 Proactive Password Checking • Analyze proposed password for “goodness” – Always invoked – Can detect, reject bad passwords for an appropriate definition of “bad” – Discriminate on per-user, per-site basis – Needs to do pattern matching on words – Needs to execute subprograms and use results • Spell checker, for example – Easy to set up and integrate into password selection system May 20, 2004 ECS 235 Slide #2 Example: OPUS • Goal: check passwords against large dictionaries quickly – Run each word of dictionary through k different hash functions h1, …, hk producing values less than n – Set bits h1, …, hk in OPUS dictionary – To check new proposed word, generate bit vector and see if all corresponding bits set • If so, word is in one of the dictionaries to some degree of probability • If not, it is not in the dictionaries 2 May 20, 2004 ECS 235 Slide #3 Example: passwd+ • Provides little language to describe proactive checking – test length(“$p”) < 6 • If password under 6 characters, reject it – test infile(“/usr/dict/words”, “$p”) • If password in file /usr/dict/words, reject it – test !inprog(“spell”, “$p”, “$p”) • If password not in the output from program spell, given the password as input, reject it (because it’s a properly spelled word) May 20, 2004 ECS 235 Slide #4 Salting • Goal: slow dictionary attacks • Method: perturb hash function so that: – Parameter controls which hash function is used – Parameter differs for each password – So given n password hashes, and therefore n salts, need to hash guess n 5 May 20, 2004 ECS 235 Slide #9 Pass Algorithms • Challenge-response with the function f itself a secret – Example: • Challenge is a random string of characters such as “abcdefg”, “ageksido” • Response is some function of that string such as “bdf”, “gkip” – Can alter algorithm based on ancillary information • Network connection is as above, dial-up might require “aceg”, “aesd” – Usually used in conjunction with fixed, reusable password May 20, 2004 ECS 235 Slide #10 One-Time Passwords • Password that can be used exactly once – After use, it is immediately invalidated • Challenge-response mechanism – Challenge is number of authentications; response is password for that particular number • Problems – Synchronization of user, system – Generation of good random passwords – Password distribution problem 6 May 20, 2004 ECS 235 Slide #11 S/Key • One-time password scheme based on idea of Lamport • h one-way hash function (MD5 or SHA-1, for example) • User chooses initial seed k • System calculates: h(k) = k1, h(k1) = k2, …, h(kn–1) = kn • Passwords are reverse order: p1 = kn, p2 = kn–1, …, pn–1 = k2, pn = k1 May 20, 2004 ECS 235 Slide #12 S/Key Protocol user system{ name } user system{ i } user system{ pi } System stores maximum number of authentications n, number of next authentication i, last correctly supplied password pi–1. System computes h(pi) = h(kn–i+1) = kn–i = pi–1. If match with what is stored, system replaces pi–1 with pi and increments i. 7 May 20, 2004 ECS 235 Slide #13 Hardware Support • Token-based – Used to compute response to challenge • May encipher or hash challenge • May require PIN from user • Temporally-based – Every minute (or so) different number shown • Computer knows what number to expect when – User enters number and fixed password May 20, 2004 ECS 235 Slide #14 C-R and Dictionary Attacks • Same as for fixed passwords – Attacker knows challenge r and response f(r); if f encryption function, can try different keys • May only need to know form of response; attacker can tell if guess correct by looking to see if deciphered object is of right form • Example: Kerberos Version 4 used DES, but keys had 20 bits of randomness; Purdue attackers guessed keys quickly because deciphered tickets had a fixed set of bits in some locations 10 May 20, 2004 ECS 235 Slide #19 Multiple Methods • Example: “where you are” also requires entity to have LSS and GPS, so also “what you have” • Can assign different methods to different tasks – As users perform more and more sensitive tasks, must authenticate in more and more ways (presumably, more stringently) File describes authentication required • Also includes controls on access (time of day, etc.), resources, and requests to change passwords – Pluggable Authentication Modules May 20, 2004 ECS 235 Slide #20 PAM • Idea: when program needs to authenticate, it checks central repository for methods to use • Library call: pam_authenticate – Accesses file with name of program in /etc/pam_d • Modules do authentication checking – sufficient: succeed if module succeeds – required: fail if module fails, but all required modules executed before reporting failure – requisite: like required, but don’t check all modules – optional: invoke only if all previous modules fail 11 May 20, 2004 ECS 235 Slide #21 Example PAM File auth sufficient /usr/lib/pam_ftp.so auth required /usr/lib/pam_unix_auth.so use_first_pass auth required /usr/lib/pam_listfile.so onerr=succeed \ item=user sense=deny file=/etc/ftpusers For ftp: 1. If user “anonymous”, return okay; if not, set PAM_AUTHTOK to password, PAM_RUSER to name, and fail 2. Now check that password in PAM_AUTHTOK belongs to that of user in PAM_RUSER; if not, fail 3. Now see if user in PAM_RUSER named in /etc/ftpusers; if so, fail; if error or not found, succeed May 20, 2004 ECS 235 Slide #22 Key Points • Authentication is not cryptography – You have to consider system components • Passwords are here to stay – They provide a basis for most forms of authentication • Protocols are important – They can make masquerading harder • Authentication methods can be combined – Example: PAM 12 May 20, 2004 ECS 235 Slide #23 Overview • Access control lists • Capability lists • Locks and keys • Rings-based access control • Propagates access control lists May 20, 2004 ECS 235 Slide #24 Access Control Lists • Columns of access control matrix file1 file2 file3 Andy rx r rwo Betty rwxo r Charlie rx rwo w ACLs: • file1: { (Andy, rx) (Betty, rwxo) (Charlie, rx) } • file2: { (Andy, r) (Betty, r) (Charlie, rwo) } • file3: { (Andy, rwo) (Betty, r) (Charlie, rwo) } 15 May 20, 2004 ECS 235 Slide #29 ACL Modification • Who can do this? – Creator is given own right that allows this – System R provides a grant modifier (like a copy flag) allowing a right to be transferred, so ownership not needed • Transferring right to another modifies ACL May 20, 2004 ECS 235 Slide #30 Privileged Users • Do ACLs apply to privileged users (root)? – Solaris: abbreviated lists do not, but full-blown ACL entries do – Other vendors: varies 16 May 20, 2004 ECS 235 Slide #31 Groups and Wildcards • Classic form: no; in practice, usually – AIX: base perms gave group sys read only permit -w- u:heidi, g=sys line adds write permission for heidi when in that group – UNICOS: • holly : gleep : r – user holly in group gleep can read file • holly : * : r – user holly in any group can read file • * : gleep : r – any user in group gleep can read file May 20, 2004 ECS 235 Slide #32 Conflicts • Deny access if any entry would deny access – AIX: if any entry denies access, regardless or rights given so far, access is denied • Apply first entry matching subject – Cisco routers: run packet through access control rules (ACL entries) in order; on a match, stop, and forward the packet; if no matches, deny • Note default is deny so honors principle of fail-safe defaults 17 May 20, 2004 ECS 235 Slide #33 Handling Default Permissions • Apply ACL entry, and if none use defaults – Cisco router: apply matching access control rule, if any; otherwise, use default rule (deny) • Augment defaults with those in the appropriate ACL entry – AIX: extended permissions augment base permissions May 20, 2004 ECS 235 Slide #34 Revocation Question • How do you remove subject’s rights to a file? – Owner deletes subject’s entries from ACL, or rights from subject’s entry in ACL • What if ownership not involved? – Depends on system – System R: restore protection state to what it was before right was given • May mean deleting descendent rights too … 20 May 20, 2004 ECS 235 Slide #39 Implementation • Tagged architecture – Bits protect individual words • B5700: tag was 3 bits and indicated how word was to be treated (pointer, type, descriptor, etc.) • Paging/segmentation protections – Like tags, but put capabilities in a read-only segment or page • CAP system did this – Programs must refer to them by pointers • Otherwise, program could use a copy of the capability—which it could modify May 20, 2004 ECS 235 Slide #40 Implementation (con’t) • Cryptography – Associate with each capability a cryptographic checksum enciphered using a key known to OS – When process presents capability, OS validates checksum – Example: Amoeba, a distributed capability-based system • Capability is (name, creating_server, rights, check_field) and is given to owner of object • check_field is 48-bit random number; also stored in table corresponding to creating_server • To validate, system compares check_field of capability with that stored in creating_server table • Vulnerable if capability disclosed to another process 21 May 20, 2004 ECS 235 Slide #41 Copying • Copying: systems usually use copy flag • Other approaches possible – Example: Amoeba again; suppose Karl wants to let Matt read file Karl owns, but not propagate this right • Karl gives capability to server, requests restricted capability • Server creates new capability (read only here), and sets check_field of new capability to h(rights ⊕ check_field) • Server gives this to Karl, who gives it to Matt • Matt presents it to server to read file • Server looks in table to get original check_field, recomputes new check_field from original one and rights in capability – If this matches the one in the capability, honor it – If not, don’t
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved