Password Authentication for Web and Mobile Apps


Book Description

Authenticating users with passwords is a fundamental part of web and mobile security. It is also the part that's easy to get wrong. This book is for developers who want to learn how to implement password authentication correctly and securely. It answers many questions that everyone has when writing their own authentication system or learning a framework that implements it. Store passwords securely What is the best password hashing function for your app? How many bytes of salt should you use? What is the optimal password hash length? How to encode and store hashes? When to pepper and encrypt hashes and how to do it securely? How to avoid vulnerabilities in bcrypt, PBKDF2, and scrypt, and which Argon2 version to use? How to update password hashes to keep up with Moore's law? How to enforce password quality? Remember users How to implement secure sessions that are not vulnerable to timing attacks and database leaks? Why is it a bad idea to use JWT and signed cookies for sessions? How to allow users to view and revoke sessions from other devices? Verify usernames and email addresses How to verify email addresses and why is it important? How Skype failed to do it and got hacked. How to avoid vulnerabilities caused by Unicode? How to disallow profanities and reserved words in usernames? Add multi-factor authentication How to implement two-factor authentication with TOTP and WebAuthn/U2F security keys How to generate recovery codes? How long should they be? How to rate limit 2FA and why not doing it breaks everything? Also... How to create accessible registration and log in forms? How to use cryptography to improve security and when to avoid it? How to generate random strings that are free from modulo bias? The book applies to any programming language. It explains concepts and algorithms in English and provides references to relevant libraries for popular programming languages.




Supporting Users in Password Authentication with Persuasive Design


Book Description

Activities like text-editing, watching movies, or managing personal finances are all accomplished with web-based solutions nowadays. The providers need to ensure security and privacy of user data. To that end, passwords are still the most common authentication method on the web. They are inexpensive and easy to implement. Users are largely accustomed to this kind of authentication but passwords represent a considerable nuisance, because they are tedious to create, remember, and maintain. In many cases, usability issues turn into security problems, because users try to work around the challenges and create easily predictable credentials. Often, they reuse their passwords for many purposes, which aggravates the risk of identity theft. There have been numerous attempts to remove the root of the problem and replace passwords, e.g., through biometrics. However, no other authentication strategy can fully replace them, so passwords will probably stay a go-to authentication method for the foreseeable future. Researchers and practitioners have thus aimed to improve users' situation in various ways. There are two main lines of research on helping users create both usable and secure passwords. On the one hand, password policies have a notable impact on password practices, because they enforce certain characteristics. However, enforcement reduces users' autonomy and often causes frustration if the requirements are poorly communicated or overly complex. On the other hand, user-centered designs have been proposed: Assistance and persuasion are typically more user-friendly but their influence is often limited. In this thesis, we explore potential reasons for the inefficacy of certain persuasion strategies. From the gained knowledge, we derive novel persuasive design elements to support users in password authentication. The exploration of contextual factors in password practices is based on four projects that reveal both psychological aspects and real-world constraints. Here, we investigate how mental models of password strength and password managers can provide important pointers towards the design of persuasive interventions. Moreover, the associations between personality traits and password practices are evaluated in three user studies. A meticulous audit of real-world password policies shows the constraints for selection and reuse practices. Based on the review of context factors, we then extend the design space of persuasive password support with three projects. We first depict the explicit and implicit user needs in password support. Second, we craft and evaluate a choice architecture that illustrates how a phenomenon from marketing psychology can provide new insights into the design of nudging strategies. Third, we tried to empower users to create memorable passwords with emojis. The results show the challenges and potentials of emoji-passwords on different platforms. Finally, the thesis presents a framework for the persuasive design of password support. It aims to structure the required activities during the entire process. This enables researchers and practitioners to craft novel systems that go beyond traditional paradigms, which is illustrated by a design exercise.




Web Technologies and Applications


Book Description

This LNCS double volume LNCS 9931-9932 constitutes the refereed proceedings of the 18th Asia-Pacific Conference APWeb 2016 held in Suzhou, China, in September 2016. The 79 full papers and presented together with 24 short papers and 17 demo papers were carefully reviewed and selected from 215 submissions. the focus of the conference was on following subjects: Spatio-temporal, Textual and Multimedia Data Management Social Media Data Analysis Modelling and Learning with Big Data Streaming and Real-time Data Analysis Recommendation System Data Quality and Privacy Query Optimization and Scalable Data Processing




Deploying Identity and Access Management with Free Open Source Software


Book Description

Learn to leverage existing free open source software to build an identity and access management (IAM) platform that can serve your organization for the long term. With the emergence of open standards and open source software, it’s now easier than ever to build and operate your own IAM stack The most common culprit of the largest hacks has been bad personal identification. In terms of bang for your buck, effective access control is the best investment you can make: financially, it’s more valuable to prevent than to detect a security breach. That’s why Identity and Access Management (IAM) is a critical component of an organization’s security infrastructure. In the past, IAM software has been available only from large enterprise software vendors. Commercial IAM offerings are bundled as “suites” because IAM is not just one component: It’s a number of components working together, including web, authentication, authorization, and cryptographic and persistence services. Deploying Identity and Access Management with Free Open Source Software documents a recipe to take advantage of open standards to build an enterprise-class IAM service using free open source software. This recipe can be adapted to meet the needs of both small and large organizations. While not a comprehensive guide for every application, this book provides the key concepts and patterns to help administrators and developers leverage a central security infrastructure. Cloud IAM service providers would have you believe that managing an IAM is too hard. Anything unfamiliar is hard, but with the right road map, it can be mastered. You may find SaaS identity solutions too rigid or too expensive. Or perhaps you don’t like the idea of a third party holding the credentials of your users—the keys to your kingdom. Open source IAM provides an alternative. Take control of your IAM infrastructure if digital services are key to your organization’s success. What You’ll Learn Why to deploy a centralized authentication and policy management infrastructure Use: SAML for single sign-on, OpenID Connect for web and mobile single sign-on, and OAuth2 for API Access Management Synchronize data from existing identity repositories such as Active Directory Deploy two-factor authentication services Who This Book Is For Security architects (CISO, CSO), system engineers/administrators, and software developers




Getting Started with OAuth 2.0


Book Description

Whether you develop web applications or mobile apps, the OAuth 2.0 protocol will save a lot of headaches. This concise introduction shows you how OAuth provides a single authorization technology across numerous APIs on the Web, so you can securely access users’ data—such as user profiles, photos, videos, and contact lists—to improve their experience of your application. Through code examples, step-by-step instructions, and use-case examples, you’ll learn how to apply OAuth 2.0 to your server-side web application, client-side app, or mobile app. Find out what it takes to access social graphs, store data in a user’s online filesystem, and perform many other tasks. Understand OAuth 2.0’s role in authentication and authorization Learn how OAuth’s Authorization Code flow helps you integrate data from different business applications Discover why native mobile apps use OAuth differently than mobile web apps Use OpenID Connect and eliminate the need to build your own authentication system




Cybersecurity Issues, Challenges, and Solutions in the Business World


Book Description

Cybersecurity threats have become ubiquitous and continue to topple every facet of the digital realm as they are a problem for anyone with a gadget or hardware device. However, there are some actions and safeguards that can assist in avoiding these threats and challenges; further study must be done to ensure businesses and users are aware of the current best practices. Cybersecurity Issues, Challenges, and Solutions in the Business World considers cybersecurity innovation alongside the methods and strategies for its joining with the business industry and discusses pertinent application zones such as smart city, e-social insurance, shrewd travel, and more. Covering key topics such as blockchain, data mining, privacy, security issues, and social media, this reference work is ideal for security analysts, forensics experts, business owners, computer scientists, policymakers, industry professionals, researchers, scholars, academicians, practitioners, instructors, and students.




Identity-Native Infrastructure Access Management


Book Description

Traditional secret-based credentials can't scale to meet the complexity and size of cloud and on-premises infrastructure. Today's applications are spread across a diverse range of clouds and colocation facilities, as well as on-prem data centers. Each layer of this modern stack has its own attack vectors and protocols to consider. How can you secure access to diverse infrastructure components, from bare metal to ephemeral containers, consistently and simply? In this practical book, authors Ev Kontsevoy, Sakshyam Shah, and Peter Conrad break this topic down into manageable pieces. You'll discover how different parts of the approach fit together in a way that enables engineering teams to build more secure applications without slowing down productivity. With this book, you'll learn: The four pillars of access: connectivity, authentication, authorization, and audit Why every attack follows the same pattern, and how to make this threat impossible How to implement identity-based access across your entire infrastructure with digital certificates Why it's time for secret-based credentials to go away How to securely connect to remote resources including servers, databases, K8s Pods, and internal applications such as Jenkins and GitLab Authentication and authorization methods for gaining access to and permission for using protected resources




Mobile Applications


Book Description

Using Android as a reference, this book teaches the development of mobile apps designed to be responsive, trustworthy and robust, and optimized for maintainability. As the share of mission-critical mobile apps continues to increase in the ever-expanding mobile app ecosystem, it has become imperative that processes and procedures to assure their reliance are developed and included in the software life cycle at opportune times. Memory, CPU, battery life and screen size limitations of smartphones coupled with volatility associated with mobile environments underlines that the quality assurance strategies that proved to be successful for desktop applications may no longer be effective in mobile apps. To that effect, this book lays a foundation upon which quality assurance processes and procedures for mobile apps could be devised. This foundation is composed of analytical models, experimental test-beds and software solutions. Analytical models proposed in the literature to predict software quality are studied and adapted for mobile apps. The efficacy of these analytical models in prejudging the operations of mobile apps under design and development is evaluated. A comprehensive test suite is presented that empirically assesses a mobile app’s compliance to its quality expectations. Test procedures to measure quality attributes such as maintainability, usability, performance, scalability, reliability, availability and security, are detailed. Utilization of test tools provided in Android Studio as well as third-party vendors in constructing the corresponding test-beds is highlighted. An in-depth exploration of utilities, services and frameworks available on Android is conducted, and the results of their parametrization observed through experimentation to construct quality assurance solutions are presented. Experimental development of some example mobile apps is conducted to gauge adoption of process models and determine favorable opportunities for integrating the quality assurance processes and procedures in the mobile app life cycle. The role of automation in testing, integration, deployment and configuration management is demonstrated to offset cost overheads of integrating quality assurance process in the life cycle of mobile apps.




Programming JavaScript Applications


Book Description

Take advantage of JavaScript’s power to build robust web-scale or enterprise applications that are easy to extend and maintain. By applying the design patterns outlined in this practical book, experienced JavaScript developers will learn how to write flexible and resilient code that’s easier—yes, easier—to work with as your code base grows. JavaScript may be the most essential web programming language, but in the real world, JavaScript applications often break when you make changes. With this book, author Eric Elliott shows you how to add client- and server-side features to a large JavaScript application without negatively affecting the rest of your code. Examine the anatomy of a large-scale JavaScript application Build modern web apps with the capabilities of desktop applications Learn best practices for code organization, modularity, and reuse Separate your application into different layers of responsibility Build efficient, self-describing hypermedia APIs with Node.js Test, integrate, and deploy software updates in rapid cycles Control resource access with user authentication and authorization Expand your application’s reach through internationalization




Extending IBM Business Process Manager to the Mobile Enterprise with IBM Worklight


Book Description

In today's business in motion environments, workers expect to be connected to their critical business processes while on-the-go. It is imperative to deliver more meaningful user engagements by extending business processes to the mobile working environments. This IBM® Redbooks® publication provides an overview of the market forces that push organizations to reinvent their process with Mobile in mind. It describes IBM Mobile Smarter Process and explains how the capabilities provided by the offering help organizations to mobile-enable their processes. This book outlines an approach that organizations can use to identify where within the organization mobile technologies can offer the greatest benefits. It provides a high-level overview of the IBM Business Process Manager and IBM Worklight® features that can be leveraged to mobile-enable processes and accelerate the adoption of mobile technologies, improving time-to-value. Key IBM Worklight and IBM Business Process Manager capabilities are showcased in the examples included in this book. The examples show how to integrate with IBM BluemixTM as the platform to implement various supporting processes. This IBM Redbooks publication discusses architectural patterns for exposing business processes to mobile environments. It includes an overview of the IBM MobileFirst reference architecture and deployment considerations. Through use cases and usage scenarios, this book explains how to build and deliver a business process using IBM Business Process Manager and how to develop a mobile app that enables remote users to interact with the business process while on-the-go, using the IBM Worklight Platform. The target audience for this book consists of solution architects, developers, and technical consultants who will learn the following information: What is IBM Mobile Smarter Process Patterns and benefits of a mobile-enabled Smarter Process IBM BPM features to mobile-enable processes IBM Worklight features to mobile-enable processes Mobile architecture and deployment topology IBM BPM interaction patterns Enterprise mobile security with IBM Security Access Manager and IBM Worklight Implementing mobile apps to mobile-enabled business processes