Why You Can Buy Your Application Security and Then Build with It

Why You Can Buy Your Application Security and Then Build with It

WHY YOU CAN BUY YOUR APPLICATION SECURITY AND THEN BUILD WITH IT. WHITE PAPER TABLE OF CONTENTS Introduction 3 Buy or build? Why not both! 5 Development 6 Buying a legacy solution 8 Maintenance 8 Operations 10 2FA availability for the application 10 2FA usability for the user 11 Security 12 Secure your solution with Authy 14 Summary 17 WHITE PAPER 2 INTRODUCTION When building any software application, making it secure is a top priority But security software is very complex and very risky to build yourself Do you task your development team to design their own or do you buy it from a vendor? Consider you are a company that builds commercial aircraft Your team of designers and engineers are experts in aerodynamics, passenger capacity and aircraft assembly But, when it comes to the engines that keep your aircraft aloft, do you ask those same engineers to design and build the complex turbojets? Or should you buy from a company with highly skilled jet engine engineers that has a history of manufacturing and maintaining reliable power plants? The exact same thing can be said for making sure the software applications you build are secure Asking your team of developers to build the security that protects and powers your solution is risky, not to mention an unnecessary time and resource drain, taking your team away from their core value You may be experts in the financial, social, gaming or other industry specific features of your software But are you well versed in, or up to date on, implementing important security mechanisms? Security requires expertise of its own It is a critical piece in the construction of applications and unless you already have a team of highly trained security developers, you don’t want to be taking the risks of building your own solution, keeping it current and monitored You need your application to fly safely and the doors to be securely locked, and the best way to do that is to buy mature and trusted security solutions But this buy versus build subject isn’t always clear cut Many people think that buying a solution means building a server, installing software and configuring it, which results in costly long term maintenance of the operating system, database and vendor’s software Legacy solutions are also black boxes with some dials and buttons to configure them Meaning you have little to no control over the logic flow and user experience However this was true in the 1990’s, but not with today’s massively scalable and API driven cloud services Investing in software exposed via a cloud API allows you to buy and THEN build You have full control over how the technology integrates into your application, without the headache of running and maintaining the infrastructure When looking at adding improved security to your application, you quickly learn it is a very broad subject Data encryption, SQL injection, transport encryption and denial of service (DoS) attack protection are just a few of the areas you need to address One of the most common WHITE PAPER 3 and immediate problems any application developer faces is protecting the front door to your application, the login Everyone knows using just a username and password is not enough to secure application access and yet this is still the most commonly used method The problem is not really the idea of passwords, but rather that people choose to use passwords that are appallingly vulnerable or use the same password across many accounts Passwords can however still be effective when paired with other information and protocols In the security industry we refer to these extra pieces of information as factors, and they break down into three main categories: Something you know, i e something knowledge-based; this includes familiar and traditional security methods like your password, username, PIN, and security question responses like your mother’s maiden name or the last 4 digits of your social security number Something you have, i e a device, smart card, or USB token Many companies have used small credit card-sized devices (smart cards) that store some information which is used as part of a login Laptops and desktops would then have a smart card reader that means you can only login if you have the smart card in your hand Something you are, a trait of your human self This is usually in the form of biometrics and ranges from scanning your iris to the recently popularized Apple Touch ID that examines your fingerprint Using more than one piece of information to secure access to applications is called two factor (2FA) or multi factor authentication (MFA) 2FA technologies have been around for a while, in the 80’s and 90’s they typically involved an expensive 2FA device that was shipped to every employee Nowadays the common smartphone can perform the same 2FA role Many 2FA projects begin under the belief they can be integrated for free and/or are trivial to build In practice, neither is true Making the age old question of whether to “Buy or Build” more critical than ever This paper provides evidence that all 2FA solutions are not created equal, and that the commonly used Google Authenticator, and other software based solutions, vary significantly in their cost and capabilities Many technologies are expensive to run, from the impact to your budget to the quality of the user experience Therefore, it is important to fully research your options and understand the market of 2FA products before you embed such a critical and visible feature into your business WHITE PAPER 4 public static long getCode(byte[] secret, longBUY timeIndex) OR BUILD? WHY NOT BOTH! In the late 1990’s people who built computer software programs were throws NoSuchAlgorithmException,called InvalidKeyException programmers The expectation{ was that these programmers SecretKeySpec signKey = new SecretKeySpec(secret,wrote nearly all of "HmacSHA1"); the software code for their applications In the games industry, programmers had to write custom code for each vendor of ByteBuffer buffer = ByteBuffer.allocate(graphics8); card and business software programmers wrote code specific to the databases they were using But today, the role of programmer buffer.putLong(timeIndex); has changed dramatically Instead of building the entire application from scratch, new software is built on platforms and leverages existing byte[] timeBytes = buffer.array(); frameworks Layers and layers of software, with built in functionality Mac mac = Mac.getInstance("HmacSHA1");to handle networks, databases, user interface and more We no longer have to keep re-inventing the wheel So much progress has taken place mac.init(signKey); in software development, that you can now put together a simple web based application, with a database, application server and a whole byte[] hash = mac.doFinal(timeBytes);framework for writing the user interface, within a matter of hours int offset = hash[19] & 0xf; Programmers used to just write code, but developers, who do still write code, build applications The modern software developer long truncatedHash = hash[offset] & 0x7f;chooses a platform/framework on which to create their solution They spend most of their time writing only the code that is specific for (int i = 1; i < 4; i++) { to their business These platforms are built and maintained by a new truncatedHash <<= 8; group in the software world, called DevOps They are developers who build the systems on which the application software operates But the truncatedHash |= hash[offset + i] &development 0xff; part of DevOps is about integrating other services to the platform to increase reliability, scale and implement core functionality } to the platform provided by other vendors return truncatedHash %= 1000000; So when DevOps needs to monitor the state of the application? They } buy and integrate a service Need to ensure your service can scale when you acquire more business? Buy and integrate a solution Need to ensure your application is using the most user friendly and secure two factor authentication? Like other aspects of your business software platform, it makes sense to buy and integrate a solution Buying these core services means your developers spend their time actually working on the functionality that makes your service valuable Buying might seem like a costly route, but as we discuss throughout this document, building such core components yourself is a lot more expensive and risky But as we mentioned at the start of this document, don’t confuse buying your software with the types of solutions available on the market 10-20 years ago Not only has the role of a programmer changed, but also the nature of how software is delivered to you Cloud based software that is designed to be integrated into your own applications is delivered via (usually RESTful) APIs These APIs are typically much simpler than the older COM and SOAP style APIs and therefore are quickly integrated into your solution This results in the best of both worlds You buy the API and then build it into your applications WHITE PAPER 5 DEVELOPMENT First let’s look at the effort involved in incorporating 2FA into your application by building it all yourself One of the most common factors of 2FA is a token or one-time password (OTP) Generated during login and sent to you via SMS or it’s generated offline using the current time and a shared cryptographic secret (Time based OTP, or TOTP) After the user provides their username and password as the first factor, they next enter the token and you have to decide about how to deliver the token to them out-of-band This means the application they are logging

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    18 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us