SlideShare a Scribd company logo
Why Johnny Can’t Store Passwords Securely?
A Usability Evaluation of Bouncy Castle Password Hashing
Chamila Wijayarathna,
Dr. Nalin Asanka Gamagedara Arachchilage
School of Engineering and IT
University of New South Wales
Australia
• Password breaches at major companies have
affected billions of user accounts.
Cryptography is hard for programmers.
Research Questions.
• What are the usability issues exist in the password hashing
functionality of Bouncy Castle API?
• How those issues affect the security of the applications that
programmers develop?
Methodology
Identified issues by analyzing recordings, code artifacts and questionnaire responses
Participant completed cognitive dimensions questionnaire based on their experience with the API
Participant completed programming task while thinking aloud and recording their screen
Designed a programming task that use the password hashing functionality of Bouncy Castle API.
Participant signed up and completed demographic questionnaire and consent form
Study Results
• Identified 63 usability issues of Bouncy Castle SCrypt password
hashing.
• Average 15 usability issues were encountered by each
participant.
Selecting parameters for Scrypt.generate()
method
• Difficult to understand meaning of method parameters.
• Difficult to select correct values for these parameters.
• IDE suggestions does not help to understand parameters and select
correct values.
Issues encountered related to Salt
• Using a salt when hashing passwords helps to defend against
dictionary attacks and pre-computed rainbow attacks.
• Participants used constant values for salt, because their lack of
knowledge in salt and other related security concepts.
• API did not help participants to identify
their mistakes.
Issues of API Documentation
• Lack of sufficient documentation to refer.
• Difficult to find existing documentation.
• No enough usage examples.
• Google search results do not show official documentation at the
top.
Usage of Byte Array vs. String
• Byte arrays and char arrays are recommended over Strings to
store passwords because while using Strings, password will be
stored in the memory for longer and cannot be deleted until
garbage collector clears them.
• Some participants used string to save passwords before/after
calling the API, which made the application’s security weak.
Where to Improve?
• Provide programmers with overloaded Scrypt.generate() method
o Byte[] Scrypt.generate (byte[] password, byte[] salt)
o Object Scrypt.generate (byte[] password)
• Improve documentation
• Include more examples for documentation
Questions ?
“Security API is an application programming interface that
provides developers with security functionalities that enforce
one or more security policies on the interaction between at
least two entities.”
Gorski and Iacono (2016)
P. L. Gorski and L. L. Iacono, “Towards the usability evaluation of security apis,”, In HAISA 2016. 252–265.

More Related Content

What's hot

Certified Software Developer with a pro-active approach and crucial ability t...
Certified Software Developer with a pro-active approach and crucial ability t...Certified Software Developer with a pro-active approach and crucial ability t...
Certified Software Developer with a pro-active approach and crucial ability t...
DeepaliTyagi4
 
Resume
ResumeResume
Resume
pramod yadav
 
Ahmed Motair CV 2020
Ahmed Motair CV 2020Ahmed Motair CV 2020
Ahmed Motair CV 2020
Ahmed Mater
 
Snigdha Goel Resume
Snigdha Goel ResumeSnigdha Goel Resume
Snigdha Goel ResumeSnigdha Goel
 
LiXu_Resume
LiXu_ResumeLiXu_Resume
LiXu_ResumeLi Xu
 
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
Intellipaat
 
Functional testing vs non functional testing | Difference Between Functional ...
Functional testing vs non functional testing | Difference Between Functional ...Functional testing vs non functional testing | Difference Between Functional ...
Functional testing vs non functional testing | Difference Between Functional ...
Intellipaat
 
Empower your Enterprise with language intelligence_Francisco Webber
Empower your Enterprise with language intelligence_Francisco Webber Empower your Enterprise with language intelligence_Francisco Webber
Empower your Enterprise with language intelligence_Francisco Webber
Dataconomy Media
 
From Reversing to Exploitation
From Reversing to ExploitationFrom Reversing to Exploitation
From Reversing to Exploitation
Satria Ady Pradana
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Security Conference
 
Social media - cortical.io business case
Social media - cortical.io business caseSocial media - cortical.io business case
Social media - cortical.io business case
Dataconomy Media
 
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
Agile Testing Alliance
 
brandnewresume10-11-2016
brandnewresume10-11-2016brandnewresume10-11-2016
brandnewresume10-11-2016Jifei Xu
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
Tao Xie
 
DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities
Intellipaat
 
Baris sarialioglu testing on the move, mobile testing
Baris sarialioglu   testing on the move, mobile testingBaris sarialioglu   testing on the move, mobile testing
Baris sarialioglu testing on the move, mobile testingRomania Testing
 
Opinion Mining for Software Engineering
Opinion Mining for Software EngineeringOpinion Mining for Software Engineering
Opinion Mining for Software Engineering
Alexander Serebrenik
 
Yiran_Wang_Resume
Yiran_Wang_ResumeYiran_Wang_Resume
Yiran_Wang_ResumeYiran Wang
 
Kaushik_Sinha_Resume_Updated_1
Kaushik_Sinha_Resume_Updated_1Kaushik_Sinha_Resume_Updated_1
Kaushik_Sinha_Resume_Updated_1Kaushik Sinha
 

What's hot (20)

Certified Software Developer with a pro-active approach and crucial ability t...
Certified Software Developer with a pro-active approach and crucial ability t...Certified Software Developer with a pro-active approach and crucial ability t...
Certified Software Developer with a pro-active approach and crucial ability t...
 
Resume
ResumeResume
Resume
 
Ahmed Motair CV 2020
Ahmed Motair CV 2020Ahmed Motair CV 2020
Ahmed Motair CV 2020
 
Snigdha Goel Resume
Snigdha Goel ResumeSnigdha Goel Resume
Snigdha Goel Resume
 
LiXu_Resume
LiXu_ResumeLiXu_Resume
LiXu_Resume
 
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
 
Functional testing vs non functional testing | Difference Between Functional ...
Functional testing vs non functional testing | Difference Between Functional ...Functional testing vs non functional testing | Difference Between Functional ...
Functional testing vs non functional testing | Difference Between Functional ...
 
Empower your Enterprise with language intelligence_Francisco Webber
Empower your Enterprise with language intelligence_Francisco Webber Empower your Enterprise with language intelligence_Francisco Webber
Empower your Enterprise with language intelligence_Francisco Webber
 
From Reversing to Exploitation
From Reversing to ExploitationFrom Reversing to Exploitation
From Reversing to Exploitation
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
 
Social media - cortical.io business case
Social media - cortical.io business caseSocial media - cortical.io business case
Social media - cortical.io business case
 
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
#ATAGTR2019 Presentation "Security testing using ML(Machine learning), AI(Art...
 
resume
resumeresume
resume
 
brandnewresume10-11-2016
brandnewresume10-11-2016brandnewresume10-11-2016
brandnewresume10-11-2016
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
 
DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities
 
Baris sarialioglu testing on the move, mobile testing
Baris sarialioglu   testing on the move, mobile testingBaris sarialioglu   testing on the move, mobile testing
Baris sarialioglu testing on the move, mobile testing
 
Opinion Mining for Software Engineering
Opinion Mining for Software EngineeringOpinion Mining for Software Engineering
Opinion Mining for Software Engineering
 
Yiran_Wang_Resume
Yiran_Wang_ResumeYiran_Wang_Resume
Yiran_Wang_Resume
 
Kaushik_Sinha_Resume_Updated_1
Kaushik_Sinha_Resume_Updated_1Kaushik_Sinha_Resume_Updated_1
Kaushik_Sinha_Resume_Updated_1
 

Similar to Why Johnny Can't Store Passwords Securely? A Usability Evaluation of Bouncycastle Password Hashing

apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
apidays
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis PrimerCoverity
 
Sakar Patnaik_1.5_testing_Manual_Automation_Selenium
Sakar Patnaik_1.5_testing_Manual_Automation_SeleniumSakar Patnaik_1.5_testing_Manual_Automation_Selenium
Sakar Patnaik_1.5_testing_Manual_Automation_SeleniumSAKAR PATNAIK
 
Building an API Security Strategy
Building an API Security StrategyBuilding an API Security Strategy
Building an API Security Strategy
SmartBear
 
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIsAPIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
apidays
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 
Software Mining and Software Datasets
Software Mining and Software DatasetsSoftware Mining and Software Datasets
Software Mining and Software Datasets
Tao Xie
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivasa rao
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without Testing
Nagarro
 
Vipin qa engineer-3.5+years_exp
Vipin qa engineer-3.5+years_expVipin qa engineer-3.5+years_exp
Vipin qa engineer-3.5+years_exp
Vipin Gupta
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
sedukull
 
TestingResume_3.6Yrs
TestingResume_3.6YrsTestingResume_3.6Yrs
TestingResume_3.6YrsMcAfee
 
Cost Effective Web Application Testing
Cost Effective Web Application TestingCost Effective Web Application Testing
Cost Effective Web Application Testing
Hari Pudipeddi
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
Harinath Pudipeddi
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testingHarinath Pudipeddi
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity Software Ireland
 

Similar to Why Johnny Can't Store Passwords Securely? A Usability Evaluation of Bouncycastle Password Hashing (20)

apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
apidays LIVE Australia 2020 - Evaluating the usability of security APIs by Dr...
 
mitra_resume-2
mitra_resume-2mitra_resume-2
mitra_resume-2
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
 
Sakar Patnaik_1.5_testing_Manual_Automation_Selenium
Sakar Patnaik_1.5_testing_Manual_Automation_SeleniumSakar Patnaik_1.5_testing_Manual_Automation_Selenium
Sakar Patnaik_1.5_testing_Manual_Automation_Selenium
 
Anupriya_Mittal_resume
Anupriya_Mittal_resumeAnupriya_Mittal_resume
Anupriya_Mittal_resume
 
Building an API Security Strategy
Building an API Security StrategyBuilding an API Security Strategy
Building an API Security Strategy
 
Yuvaraj
YuvarajYuvaraj
Yuvaraj
 
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIsAPIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
APIsecure 2023 - API First Hacking, Corey Ball, Author of Hacking APIs
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
Software Mining and Software Datasets
Software Mining and Software DatasetsSoftware Mining and Software Datasets
Software Mining and Software Datasets
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_Resume
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without Testing
 
Vipin qa engineer-3.5+years_exp
Vipin qa engineer-3.5+years_expVipin qa engineer-3.5+years_exp
Vipin qa engineer-3.5+years_exp
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
TestingResume_3.6Yrs
TestingResume_3.6YrsTestingResume_3.6Yrs
TestingResume_3.6Yrs
 
Cost Effective Web Application Testing
Cost Effective Web Application TestingCost Effective Web Application Testing
Cost Effective Web Application Testing
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
 
Aarti__Testing.
Aarti__Testing.Aarti__Testing.
Aarti__Testing.
 

More from Chamila Wijayarathna

Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
Chamila Wijayarathna
 
SinMin - Sinhala Corpus Project - Thesis
SinMin - Sinhala Corpus Project - ThesisSinMin - Sinhala Corpus Project - Thesis
SinMin - Sinhala Corpus Project - Thesis
Chamila Wijayarathna
 
GS0C - "How to Start" Guide
GS0C - "How to Start" GuideGS0C - "How to Start" Guide
GS0C - "How to Start" Guide
Chamila Wijayarathna
 
Sinmin final presentation
Sinmin final presentation Sinmin final presentation
Sinmin final presentation
Chamila Wijayarathna
 
Implementing a Corpus for Sinhala Language
Implementing a Corpus for Sinhala LanguageImplementing a Corpus for Sinhala Language
Implementing a Corpus for Sinhala Language
Chamila Wijayarathna
 
Sinmin Literature Review Presentation
Sinmin Literature Review PresentationSinmin Literature Review Presentation
Sinmin Literature Review Presentation
Chamila Wijayarathna
 
Xbotix 2014 Rules undergraduate category
Xbotix 2014 Rules   undergraduate categoryXbotix 2014 Rules   undergraduate category
Xbotix 2014 Rules undergraduate category
Chamila Wijayarathna
 
Kaggle KDD Cup Report
Kaggle KDD Cup ReportKaggle KDD Cup Report
Kaggle KDD Cup Report
Chamila Wijayarathna
 
Higgs Boson Machine Learning Challenge Report
Higgs Boson Machine Learning Challenge ReportHiggs Boson Machine Learning Challenge Report
Higgs Boson Machine Learning Challenge Report
Chamila Wijayarathna
 
Programs With Common Sense
Programs With Common SensePrograms With Common Sense
Programs With Common Sense
Chamila Wijayarathna
 
Knock detecting door lock research paper
Knock detecting door lock research paperKnock detecting door lock research paper
Knock detecting door lock research paper
Chamila Wijayarathna
 
Helen Keller, The Story of My Life
Helen Keller, The Story of My LifeHelen Keller, The Story of My Life
Helen Keller, The Story of My LifeChamila Wijayarathna
 
Shirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
Shirsha Yaathra - Head Movement controlled Wheelchair - Research PaperShirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
Shirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
Chamila Wijayarathna
 
Products, Process Development Firms in Sri Lanka and their focus on Sustaina...
Products, Process  Development Firms in Sri Lanka and their focus on Sustaina...Products, Process  Development Firms in Sri Lanka and their focus on Sustaina...
Products, Process Development Firms in Sri Lanka and their focus on Sustaina...Chamila Wijayarathna
 

More from Chamila Wijayarathna (20)

Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
Using Cognitive Dimensions Questionnaire to Evaluate the Usability of Securit...
 
SinMin - Sinhala Corpus Project - Thesis
SinMin - Sinhala Corpus Project - ThesisSinMin - Sinhala Corpus Project - Thesis
SinMin - Sinhala Corpus Project - Thesis
 
GS0C - "How to Start" Guide
GS0C - "How to Start" GuideGS0C - "How to Start" Guide
GS0C - "How to Start" Guide
 
Sinmin final presentation
Sinmin final presentation Sinmin final presentation
Sinmin final presentation
 
Implementing a Corpus for Sinhala Language
Implementing a Corpus for Sinhala LanguageImplementing a Corpus for Sinhala Language
Implementing a Corpus for Sinhala Language
 
Sinmin Literature Review Presentation
Sinmin Literature Review PresentationSinmin Literature Review Presentation
Sinmin Literature Review Presentation
 
Xbotix 2014 Rules undergraduate category
Xbotix 2014 Rules   undergraduate categoryXbotix 2014 Rules   undergraduate category
Xbotix 2014 Rules undergraduate category
 
Kaggle KDD Cup Report
Kaggle KDD Cup ReportKaggle KDD Cup Report
Kaggle KDD Cup Report
 
Higgs Boson Machine Learning Challenge Report
Higgs Boson Machine Learning Challenge ReportHiggs Boson Machine Learning Challenge Report
Higgs Boson Machine Learning Challenge Report
 
Programs With Common Sense
Programs With Common SensePrograms With Common Sense
Programs With Common Sense
 
Knock detecting door lock research paper
Knock detecting door lock research paperKnock detecting door lock research paper
Knock detecting door lock research paper
 
IEEE Xtreme Final results 2012
IEEE Xtreme Final results 2012IEEE Xtreme Final results 2012
IEEE Xtreme Final results 2012
 
Helen Keller, The Story of My Life
Helen Keller, The Story of My LifeHelen Keller, The Story of My Life
Helen Keller, The Story of My Life
 
Shirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
Shirsha Yaathra - Head Movement controlled Wheelchair - Research PaperShirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
Shirsha Yaathra - Head Movement controlled Wheelchair - Research Paper
 
Ieee xtreme 5.0 results
Ieee xtreme 5.0 resultsIeee xtreme 5.0 results
Ieee xtreme 5.0 results
 
Memory technologies
Memory technologiesMemory technologies
Memory technologies
 
History of Computer
History of ComputerHistory of Computer
History of Computer
 
Products, Process Development Firms in Sri Lanka and their focus on Sustaina...
Products, Process  Development Firms in Sri Lanka and their focus on Sustaina...Products, Process  Development Firms in Sri Lanka and their focus on Sustaina...
Products, Process Development Firms in Sri Lanka and their focus on Sustaina...
 
Path Following Robot
Path Following RobotPath Following Robot
Path Following Robot
 
Path following robot
Path following robotPath following robot
Path following robot
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

Why Johnny Can't Store Passwords Securely? A Usability Evaluation of Bouncycastle Password Hashing

  • 1. Why Johnny Can’t Store Passwords Securely? A Usability Evaluation of Bouncy Castle Password Hashing Chamila Wijayarathna, Dr. Nalin Asanka Gamagedara Arachchilage School of Engineering and IT University of New South Wales Australia
  • 2. • Password breaches at major companies have affected billions of user accounts.
  • 3. Cryptography is hard for programmers.
  • 4. Research Questions. • What are the usability issues exist in the password hashing functionality of Bouncy Castle API? • How those issues affect the security of the applications that programmers develop?
  • 5. Methodology Identified issues by analyzing recordings, code artifacts and questionnaire responses Participant completed cognitive dimensions questionnaire based on their experience with the API Participant completed programming task while thinking aloud and recording their screen Designed a programming task that use the password hashing functionality of Bouncy Castle API. Participant signed up and completed demographic questionnaire and consent form
  • 6. Study Results • Identified 63 usability issues of Bouncy Castle SCrypt password hashing. • Average 15 usability issues were encountered by each participant.
  • 7. Selecting parameters for Scrypt.generate() method • Difficult to understand meaning of method parameters. • Difficult to select correct values for these parameters. • IDE suggestions does not help to understand parameters and select correct values.
  • 8. Issues encountered related to Salt • Using a salt when hashing passwords helps to defend against dictionary attacks and pre-computed rainbow attacks. • Participants used constant values for salt, because their lack of knowledge in salt and other related security concepts. • API did not help participants to identify their mistakes.
  • 9. Issues of API Documentation • Lack of sufficient documentation to refer. • Difficult to find existing documentation. • No enough usage examples. • Google search results do not show official documentation at the top.
  • 10. Usage of Byte Array vs. String • Byte arrays and char arrays are recommended over Strings to store passwords because while using Strings, password will be stored in the memory for longer and cannot be deleted until garbage collector clears them. • Some participants used string to save passwords before/after calling the API, which made the application’s security weak.
  • 11. Where to Improve? • Provide programmers with overloaded Scrypt.generate() method o Byte[] Scrypt.generate (byte[] password, byte[] salt) o Object Scrypt.generate (byte[] password) • Improve documentation • Include more examples for documentation
  • 13.
  • 14. “Security API is an application programming interface that provides developers with security functionalities that enforce one or more security policies on the interaction between at least two entities.” Gorski and Iacono (2016) P. L. Gorski and L. L. Iacono, “Towards the usability evaluation of security apis,”, In HAISA 2016. 252–265.

Editor's Notes

  1. Good morning, I am chamila wijayarathna, I am a PhD student from University of New South Wales, Australia. In this presentation, I am going to present our work, Why Johny Can’t store passwords securely, A usability evaluation of Bouncy Castle Password Hashing This paper is co-authored by Dr. Nalin Asanka.
  2. Security breaches related to stealing passwords are an increasingly common problem and have affected billions of people. These are some of the popular organizations that faced this issue in recent years. However, there are so many technologies, algorithms, etc introduced every now and then to protect user passwords from attacker. Despite these mechanisms, it appears that some software applications are still contain vulnerabilities that open backdoors for attackers to steal user passwords.
  3. So, why applications still contain vulnerabilities when there are many technologies to protect those applications from attackers. One of the main reasons for this is that programmers have been unable to use these technologies correctly when developing applications, Especially they have been unable to correctly use Application Programming Interfaces that provide security functionalities. Research has found that most programmers involved in the software development process are not experts of security. these non expert programmers find it difficult to use security APIs correctly, when they are not usable, Hence results in using security APIs incorrectly and leave their applications vulnerable to attacks. In this study, we attempted to evaluate the usability of a security API, that provides functionalities to secure passwords of application, Bouncy Castle API. Bouncycastle is a vastly used open source API that provides a variety of cryptographic functionalities. In this study, we mainly expected to evaluate the usability of the password hashing functionality of Bouncy castle API, and identify usability issues of it.
  4. We mainly tried to identify What are the usability issues exist in the password hashing functionality of Bouncy Castle API And how those issues affect the security of applications that programmers develop using the API.
  5. To answer these two questions, we conducted a user study based usability evaluation for the Bouncy Castle API. This diagram shows a summary of the methodology we followed. In this study, few programmers completed a programming task using the Bouncy Castle API, And we tried to identify usability issues they encountered by observing them and from the feedback they gave. So, first we designed a task for participants to follow. Bouncy castle has a number of different password hashing algorithm implementations, Designing a task to evaluate all of them in one study was not a feasible thing, So we selected to evaluate Scrypt hashing implementation of Bouncy castle API. Scrypt was the most secure password hashing algorithm implementation available in Bouncycastle at the time we conducted the study. The task was to securely store passwords of a web application that has user registration and login functionalities. We provided them source code for an application that stores passwords insecurely in plain text, and asked them to secure password storage by hashing passwords using Bouncy castle’s Scrypt functionality. We needed software developers to participate in the study. We identified Java developers from Github and invited them to participate. Response rate was low, since software developers are busy people. This is a common issue in this area of research. Once they signed up, we sent them guidelines and study material. They participated remotely, using their own equipment. We asked them to think-aloud while completing the task, and they recorded their screens with voice. Once they completed the task, they had to answer the cognitive dimensions questionnaire. This was developed by us previously, by improving a questionnaire that was proposed to evaluate the usability of general APIs. Cognitive dimensions questionnaire method is a common method used to identify usability issues of applications as well as of APIs. Then we analysed questionnaire responses, screen recordings and code artifacts and identified usability issues of the API from them.
  6. A total of 10 programmers participated in the study. We could identify 63 usability issues of the API, Average of 15 issues were identified from the results of each participant. Some of these issues caused participants to make choices that are incorrect and hence reduced the security of programmes they developed. Some of the issues just reduced their efficiency. Our main focus for discussion is the issues that affected the security of developed solutions.
  7. Scrypt password hashing of bouncy castle API is exposed to programmer via the static generate method of Scrypt class. This method invocation requires 6 parameters, which are password, salt, work factor, blocksize for underline hash, parallelization factor and length of key to generate. We observed that participants of our study found it difficult to understand meanings of the last 4 parameters. These 4 parameters decides the cost of generating the hash from password. Selecting weaker values for them would make it less costly for attackers to perform attacks, and hence make the security of the application weak. Not having a proper idea about these parameters made it difficult for participants to select proper values for these parameters. There was not much help available for selecting proper parameters either. Specially, participants expected to see more information about how strength of the hash and processing time varies with these parameters.
  8. Other than those 4 parameters, participants also incorrectly used salt parameter. Using salt in password hashing makes passwords more secure, specially against dictionary attacks and pre computed rainbow attacks. To achieve this, API expected programmers to use unique salt for every user and save it with the password hash. But some participants used same value among all users of the application as the salt value. This made having a salt value useless. Main reason for this mistake was the lack of security knowledge of the programmers. Also, there was not much guidance available and participants had no way to identify that they are using it incorrectly.
  9. Many participants encountered issues related to API documentation. There was not much information available about using the particular functionality, other than few StackOverflow discussions and API java doc. Specially, information about method parameters was difficult to find. Participants had to put some effort to find details about using the API which reduced their efficiency. Most participants expected to see some examples on using the functionality, in their learning process. But it was difficult to find enough examples, which made it difficult to get a good understanding about using the API. This made it difficult to use the API correctly. Furthermore, we observed that, when programmers search Google to get help, Top results popped up were from third parties such as Stack Overflow. Some of the third party resources they used had some incorrect solutions. Some had used parameter values without giving a proper explanation, which made participants to use those values assuming that they are recommended. Even though, this is not something directly related to the API, it definitely reduced the effectiveness of using the API and therefore reduced the usability of it.
  10. Finally, as same as other Java crypto APIs, Bouncy castle also used Byte arrays as the data type for allocating memory for passwords This is considered secure and recommended. However, participants preferred using Strings, Therefore, this reduced their satisfaction on the API. Furthermore, some of them intermediately used Strings to save passwords, before and after using the API, which reduced the security of their application. Bouncy castle API or if we more generally talk about Java APIs, they should consider this and provide more usable options for programmers to use them effectively and in a way that make them satisfied.
  11. Some participants suggested some improvements for the API also, to improve its usability. These are only suggestions and need to study more to see whether they actually work, or whether they have any tradeoffs: Most participants who faced difficulties with method parameters of Scrypt.generate method, suggested that API should provide overloaded method options with less parameters, These are the two options they suggested, They wanted the API to use defaults with values that suits majority of hardware. They also suggested to improve API documentation and include more examples in to the documentation.
  12. However, programmers are not required to implement all the security related stuff that are required for their applications. Most of them are already there, Developed by security experts, And made available to use for non expert programmers via security APIs Non-expert programmers can use those functionalities to embed security into their applications via these security APIs. For password protection also, there are so many security APIs that provide required functionalities. So why programmers still make mistakes, making their applications vulnerable? Security APIs that programmers use being not usable, is one of the reasons for this. When security APIs are not usable, programmers find it difficult to use them correctly, Hence results in using them incorrectly and Leave their applications vulnerable to attacks. In this study, we attempted to evaluate the usability of a security API, that provides functionalities to secure passwords of applications from attackers, Bouncy Castle API. Bouncycastle is a vastly used open source API that provides a variety of cryptographic functionalities. In this study, we mainly expected to evaluate the usability of the password hashing functionality of Bouncy castle API, and identify usability issues of it.