Download presentation
Presentation is loading. Please wait.
Published byGodwin Bradley Modified over 8 years ago
1
Engineering Secure Software
2
Taher El-Gamal, inventor of SSL Security professionals always struggle with the general public because usability always wins.
3
Users are NOT the Enemy Security mechanisms are designed, implemented, applied, and breached by people. Human Factors is a key. Hackers can leverage human factors too. e.g. social engineering, “rubber hose cryptanalysis” Why do users not adhere to security criteria? Lack of security knowledge Lack of motivation Users are guided by what they actually see—or don’t. Not considering human factors wrt security mechanisms. e.g. constantly changing passwords
4
Do not overload users’ memory Human memory has limitations of about 7 items Balloon Giraffe Sphinx Ball Moon Jerry Alex India Chair Graph Be Pluto Daisy All Train Byte Lime Fact Screen Zoo
5
Do not overload users’ memory Users will use externalization to cope Sticky notes, password managers Facilitates insider attacks
6
Human Factors Minimize the mental workload for the user Recognition rather than recall (e.g. recognize images) Forgiving mechanisms (93% successful login with 9 th attempt) ○ Realistic security vs. theoretical security ○ Resetting passwords overload helpdesks ○ Delay logins instead of lockouts
7
Human Factors Awkward behavior Example: organizations mandate that users must lock their screens when leaving their desks, even for brief periods Users will not comply with security mechanisms that conflicts with their values, or self-image Solution: label such behaviors positively
8
Usability of Permission Granting Global resources e.g. Smartphones expose a global clipboard to apps User friendly violates least-privilege Manifests (Android, Win phone) Out of context: Checked at time of install, not time of use. Disruptive: Only prompted at first use to avoid prompt-fatigue. Violates least-privilege Prompts (iOS, browsers) Used to verify user intent Repetitiveness teaches users to ignore them (prompt fatigue) User- driven access control Via access control gadgets Captures user’s intent, minimize interaction Enables in-context, non- disruptive, and least-privilege permission granting
9
Usability of Authentication Mechanisms
10
Attacked by phishing Protection software: Password Alert Chrome extension
11
Usability of Authentication Mechanisms: Graphical passwords Categorized by memory task: recall-based (drawmetric systems) ○ Users recall and reproduce a secret drawing (on grid, canvas) ○ Drawbacks: phishing, easy to guess (users draw their initials)
12
Usability of Authentication Mechanisms: Graphical passwords Categorized by memory task: Recognition-based (cognometric systems) ○ Users memorize a portfolio of images during password creation, and then recognize their images from among decoys to log in ○ More difficult to be attacked by phishing ○ Drawbacks: password space is small, shoulder-surfing
13
Usability of Authentication Mechanisms: Graphical passwords Categorized by memory task: cued-recall (locimetric systems) ○ Easier memory task than pure recall ○ Users remember and target specific locations in an image ○ Tolerance area 14x14 pixels ○ Vulnerable to hotspots and simple geometric patterns in images
14
Vulnerabilities are a Usability Problem Every developer mistake could be justified as a usability mistake, e.g. misusing C SW vulnerabilities are blind spots in developer’s heuristic-based decision- making processes Humans use heuristics (simple computational models) to find feasible (not optimized) solutions quickly due to: ○ Limitation of working memory ○ Cognitive effort
15
Development Tools Can Help Reusable components that accomplish a single task Example: SSL/TSL implementations (e.g. Java, OpenSSL) Security information should reach users (App developers) when they need it, on the spot Example: IDEs, text editors, browsers, compilers, etc. bring security information while coding
16
An Example from PGP From “Why Johnny Can’t Encrypt”, USENIX 1999 by Whitten et al. Advanced technical users failed to encrypt and decrypt their mail using PGP 5.0, even after receiving instruction and practice. Encryption concept is complex Terminology employed is fundamentally at odds with everyday language (e.g. key, private, public) Corroborated by similar studies
17
Usable OpenSSL Confusion OpenSSL is an open source implementation for SSL, TLS, cryptography library, written in C. Easy to use for simple encryption Becomes synonym for “secure” To encrypt the text “I love OpenSSL!” with the AES algorithm using CBC mode and a key of 256 bits that is computed from the password “hello”: To decrypt:
18
Reminders End users are humans Developers are humans Humans have memory limitations Humans have cognitive limitations If security will complicate the system, humans will probably not use it Security designers forget that users are humans, while attackers do not!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.