Secure Windows App Development Authentication Secure data in

  • Slides: 32
Download presentation
Secure Windows App Development

Secure Windows App Development

Authentication Secure data in flight Secure data at rest

Authentication Secure data in flight Secure data at rest

Authentication

Authentication

Challenges username ****

Challenges username ****

OAuth provider support “Outsourcing” authentication User confidence

OAuth provider support “Outsourcing” authentication User confidence

Benefits username **** Challenges

Benefits username **** Challenges

https: //channel 9. msdn. com/Events/ Microsoft-Azure/Azure. Con-2015/ACON 312 Identity and Access management Microsoft Azure

https: //channel 9. msdn. com/Events/ Microsoft-Azure/Azure. Con-2015/ACON 312 Identity and Access management Microsoft Azure Active Directory Apps 1 Users sign in from any device using their existing username/password. User 2 Multi-Factor Authentication Server Users must also authenticate using their phone or mobile device before access is granted.

Introducing Microsoft Passport and Windows Hello

Introducing Microsoft Passport and Windows Hello

Convenient multi-factor authentication Microsoft Passport Windows Hello Enterprise credential protection using Virtual Secure Mode

Convenient multi-factor authentication Microsoft Passport Windows Hello Enterprise credential protection using Virtual Secure Mode (VSM)

During OOBE setup

During OOBE setup

1. Validate if the user has set up a PIN, and optionally Windows Hello,

1. Validate if the user has set up a PIN, and optionally Windows Hello, on their device Key. Credential. Manager. Is. Supported. Async 2. Create Credential. Key and attestation Key. Credential. Manager. Request. Create. Async 3. Register public key, attestation and user information with the server for validation on login

3 7 4 5 1

3 7 4 5 1

Microsoft Passport and Windows Hello

Microsoft Passport and Windows Hello

Securing data in flight

Securing data in flight

Client/server Web services

Client/server Web services

Using hashes with Windows. Security. Cryptography. Core. Hash. Algorithm. Provider Digital signatures with Cryptographic.

Using hashes with Windows. Security. Cryptography. Core. Hash. Algorithm. Provider Digital signatures with Cryptographic. Engine SSL pinning Ensures message has been sent by the authorized server by verifying the server’s certificate Easiest implementation is the evaluate of the certs the server returns in response to an HTTP request This should be done before sending sensitive information in a request

More control over validation Can validate certificate chain Custom logic for multiple domains/root CAs

More control over validation Can validate certificate chain Custom logic for multiple domains/root CAs

SSL Pinning

SSL Pinning

https: //channel 9. msdn. com/events/ Microsoft-Azure/Azure. Con-2015/ACON 313 API

https: //channel 9. msdn. com/events/ Microsoft-Azure/Azure. Con-2015/ACON 313 API

Securing data at rest

Securing data at rest

Credential locker vault = new Windows. Security. Credentials. Password. Vault(); vault. Add(new Windows. Security.

Credential locker vault = new Windows. Security. Credentials. Password. Vault(); vault. Add(new Windows. Security. Credentials. Password. Credential("My App", username, password));

Support for symmetric and asymmetric encryption Windows. Security. Cryptography. Core. Cyptographic. Engine supports encryption,

Support for symmetric and asymmetric encryption Windows. Security. Cryptography. Core. Cyptographic. Engine supports encryption, decryption, and signing of content, as well as verification of digital signatures Windows. Security. Cryptography. Data. Protection. Provider supports encryption and decryption of data by using device and user information

wait File. Protection. Manager. Protect. Async(m_file, “contoso. com”); Protection. Policy. Manager. Protected. Content. Revoked

wait File. Protection. Manager. Protect. Async(m_file, “contoso. com”); Protection. Policy. Manager. Protected. Content. Revoked += Protected. Content. Revoked; resource. Identity = await Protection. Policy. Manager. Get. Primary. Managed. Identity. For. Network. Endpoint. Async(new Host. Name(resource. Uri. Host)); // if resource. Identity is empty or null, then it is considered personal if (!string. Is. Null. Or. Empty(resource. Identity)) { context = Protection. Policy. Manager. Create. Current. Thread. Network. Context(resource. Identity); }

</ > Additional Resources http: //dev. windows. com/ rajenki@microsoft. com

</ > Additional Resources http: //dev. windows. com/ rajenki@microsoft. com

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.