Sicurezza

Puoi offrire agli utenti della tua app un'esperienza di sicurezza senza problemi ed essere sempre al passo con le nuove tecniche di autenticazione. In Windows 8.1 sono stati introdotti nuovi metodi per l'autenticazione e la gestione degli utenti, un supporto più ampio per firme e certificati e nuove funzionalità per le credenziali archiviate.

Funzionalità nuove o aggiornate in Windows 8.1

Autenticazione delle impronte digitali

[Accedi all'esempio UserConsentVerifier ora.]

Le app possono ora usare un'impronta digitale per autenticare un utente. Ricorri all'autenticazione biometrica per proteggere un'app da un uso non autorizzato o per controllare l'accesso a pagine o risorse specifiche. Per questo scopo, usa la classe UserConsentVerifier nello spazio dei nomi Windows.Security.Credentials.UI.

L'app deve innanzitutto verificare che l'autenticazione tramite impronta digitale sia un'opzione presente sul dispositivo. Per sapere se il dispositivo dispone di un lettore di impronta digitale, chiama il metodo UserConsentVerifier.CheckAvailabilityAsync. Anche se un dispositivo supporta l'autenticazione tramite impronta digitale, l'app deve comunque fornire agli utenti in Impostazioni un'opzione per abilitarla o disabilitarla. Per altre informazioni sulla creazione di questa impostazione, vedi Aggiunta di impostazioni dell'app.

Se la verifica dell'impronta digitale è disponibile ed è stata abilitata dall'utente, puoi chiamare il metodo UserConsentVerifier.RequestVerificationAsync e proseguire con le operazioni dell'app se il metodo restituisce un risultato Verified.

Aggiornamenti del gestore di autenticazioni Web

[Accedi all'esempio del gestore di autenticazioni Web ora.]

Il gestore di autenticazioni Web (rappresentato dalla classe WebAuthenticationBroker) è stato aggiornato per inserire automaticamente le credenziali esistenti in base al consenso dell'utente. Le credenziali sono archiviate nella Casella di sicurezza delle credenziali. Quando un'app deve accedere a una risorsa mediante il gestore di autenticazioni Web, se vengono rilevate credenziali esistenti nella casella di sicurezza e l'utente ha acconsentito, tali credenziali vengono usate e l'accesso alla risorsa avviene automaticamente. Per altre informazioni, vedi Gestore di autenticazioni Web.

Smart card e smart card virtuali

[Accedi all'esempio di smart card ora.]

Le app possono ora comunicare con i lettori di smart card ed effettuare l'autenticazione tramite smart card mediante le API definite nello spazio dei nomi Windows.Devices.SmartCards. Gli scenari d'uso di base di questa funzionalità dipendono dalle classi seguenti:

Questo esempio di codice mostra come creare una smart card virtuale TPM chiamando il metodo RequestVirtualSmartCardCreationAsync della classe SmartCardProvisioning. La chiamata al metodo specifica un nome descrittivo, una chiave di amministrazione e un criterio PIN.


function createTpmVirtualSmartCard(adminKey) {
    var pinPolicy = new Windows.Devices.SmartCards.SmartCardPinPolicy();
    pinPolicy.minLength = 4;
    pinPolicy.lowercaseLetters = Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption.allow;
    pinPolicy.uppercaseLetters = Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption.requireAtLeastOne;
    pinPolicy.digits = Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption.allow;
    pinPolicy.specialCharacters = Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption.disallow;

    Windows.Devices.SmartCards.SmartCardProvisioning.requestVirtualSmartCardCreationAsync(
        "Contoso Virtual Smart Card", 
        adminKey, 
        pinPolicy)
    .done(function (cardProvision) {
        if (cardProvision == null) {
            // The request is canceled.
            return;
        }
    });
}

Per altre informazioni su questi e altri scenari e API correlati, vedi Windows.Devices.SmartCards.

Aggiornamenti della Casella di sicurezza delle credenziali

[Accedi all'esempio della Casella di sicurezza delle credenziali ora.]

Abbiamo aggiornato la Casella di sicurezza delle credenziali in modo da migliorare la capacità di archiviazione delle credenziali dell'utente e il relativo uso quando è necessario. In Windows 8.1 sono state apportate queste modifiche alla Casella di sicurezza delle credenziali.

  • Identificazione di credenziali predefinite nei casi in cui per una risorsa sono disponibili più credenziali. La raccolta PasswordCredential.Properties include ora una proprietà Default.

  • Individuazione dell'ultimo utilizzo di una credenziale per consentire il ritiro delle credenziali non usate. La raccolta PasswordCredential.Properties include ora una proprietà LastAccessed.

Impostazioni degli account per le app

[Accedi agli esempi di Casella di sicurezza delle credenziali e gestore di autenticazioni Web ora.]

In Windows 8.1 il contratto Impostazioni è stato aggiornato in modo da includere la gestione degli account. È ora possibile implementare il contratto Impostazioni e consentire agli utenti di gestire credenziali per più account.

Puoi ad esempio disporre di un client di email che gestisce email di più server. Analogamente, un'app di social media può aggregare contenuti di diversi siti e servizi di social media. Puoi usare il contratto Impostazioni per semplificare l'accesso degli utenti alle credenziali per tutti i siti e i servizi in questione. Per altre informazioni sul contratto Impostazioni, vedi Aggiunta di impostazioni dell'app.

L'oggetto SettingsCommand ora include una proprietà AccountsCommand. Puoi aggiungere un'istanza di CredentialCommand o WebAccountCommand alla raccolta ApplicationCommands per abilitare le impostazioni degli account per le app e popolare la proprietà AccountsCommand.

Windows Runtime mette ora a disposizione queste classi per la gestione degli account con le impostazioni degli account per le app:

WebAccountProvider

Gestisce informazioni e metadati per un provider di autenticazione online.

WebAccount

Rappresenta un'istanza di un account da un provider di autenticazione online.

WebAccountCommand

Rappresenta un'istanza di un account mostrata nell'apposito riquadro a comparsa. Quando vengono gestiti più account, ognuno è rappresentato da un'istanza di WebAccountCommand.

CredentialCommand

Rappresenta un'istanza di una credenziale disponibile nella Casella di sicurezza delle credenziali.

 

Gestione dell'attendibilità e certificati

[Accedi all'esempio di crittografia e certificati ora.]

Windows 8.1 include un più ampio supporto per l'uso di certificati e firme allo scopo di aumentare la sicurezza e l'attendibilità delle risorse usate dalle app. Sono supportati ora questi scenari:

Questo esempio di codice illustra come firmare un documento mediante una firma disconnessa.


// Define aliases for the cryptography namespaces.
var WindowsCerts = Windows.Security.Cryptography.Certificates;
var WindowsCryptCore = Windows.Security.Cryptography.Core;

// Verify a signed PDF file. The CMS signature is an attachment to the PDF file.

function signPDF(inputStream) {
    // Get a certificate for computing the signature.
    var query = new WindowsCerts.CertificateQuery();
    query.issuerName = "Sample Trusted Third Party";

    var certificates;
    WindowsCerts.findAllAsync(query).then(function(certificates) {
        var certificateList;
        // Build the certificate chain for first certificate returned.
        certificates[0].buildChainAsync(null).then(
            function(chain) {
                certificateList = chain.getCertificates(true); 
            });

        // Build signer info.
        var signer = new WindowsCerts.CmsSignerInfo();
        signer.certificate = certificates[0];
        signer.hashAlgorithm = WinCryptoCore.HashAlgorithmNames.sha256;
        var signers;
        signers[0] = signer;

        // Sign the PDF document.       
        WindowsCerts.CmsDetachedSignature.generateSignatureAsync(
            inputStream, signers, certificateList).then(
                function(result) {
                    return result;
                });
    });

    // Document not signed. 
    return null;
}

Cancellazione selettiva

[Accedi all'esempio di File Revocation Manager ora.]

In Windows 8.1 è stato introdotto il supporto della cancellazione selettiva, che consente di identificare sul PC di un utente cartelle e file che possono essere revocati (e successivamente eliminati) mediante un comando inviato da un server. Questo scenario è particolarmente pertinente per le imprese nei casi in cui il PC di un dipendente viene smarrito o rubato oppure quando un dipendente lascia una società mantenendo file aziendali su un proprio dispositivo personale.

Quando viene aggiunto un nuovo file come dati dell'app, puoi chiamare il metodo FileRevocationManager.ProtectAsync per la registrazione del file per la cancellazione selettiva. La cancellazione selettiva identifica il file mediante un'identità aziendale, in genere rappresentata da un nome di dominio. Ecco un esempio di codice.


var appRootFolder = Windows.Storage.ApplicationData.current;
var enterpriseIdentity = "example.com";

function addNewFolderButtonClick() {
  var folderName = document.getElementById("folderName");
  appRootFolder.createFolderAsync(folderName).then(
    function (folder) {
      var status = addItemProtected(folder, enterpriseIdentity);
    });
}

// Protect a folder or a file.
function addItemProtected(item, enterpriseId) {
  Windows.Security.EnterpriseData.FileRevocationManager.protectAsync(
    itemPath, enterpriseId).then(
      function (itemProtectionStatus) {
        return itemProtectionStatus;
    });
}


Per accedere a un file o a una cartella protetta mediante cancellazione selettiva, chiama il metodo FileRevocationManager.GetStatusAsync per recuperare lo stato della protezione dell'elemento ogni volta che viene aperto. Se viene restituito Revoked come valore dello stato dell'elemento, elimina il file.


// Open a file. If access to the file is denied, check to see if the file is revoked.
function readFile(file) {
  try {
    file.openReadAsync().then(
      function (fileStream) {
        return fileStream;
      });
  }
  catch (e) {
  }
    if (e.message == "Access Denied") {
      Windows.Security.EnterpriseData.FileRevocationManager.getStatusAsync(file).then(
        function (itemProtectionStatus) {
          if (itemProtectionStatus == 
            Windows.Security.EnterpriseData.FileProtectionStatus.revoked) {
            item.deleteAsync().then(function () { return null; });
          }
        });
    }
}


Per altre informazioni, vedi lo spazio dei nomi Windows.Security.EnterpriseData e l'esempio di File Revocation Manager.

Aggiornamenti di Windows To Go

In Windows 8 è stata introdotta la possibilità di creare un'area di lavoro Windows To Go che viene avviata da un'unità esterna USB su PC che soddisfano i requisiti di certificazione di Windows 7 o Windows 8. Un'area di lavoro può usare la stessa immagine usata dalle imprese per i propri desktop e laptop e può essere gestita allo stesso modo. In Windows 8.1 questa funzionalità è stata aggiornata in modo da abilitare l'avvio da un dispositivo composito USB con funzione di archiviazione e smart card.

 

 

Mostra:
© 2014 Microsoft