Windows 8.1 ビジネスストアアプリにおけるセキュリティ(認証、暗号化等)について

皆様、こんにちは!今日はWindows ビジネスストアアプリのセキュリティ(認証・暗号化)について簡潔にまとめておきます。

ビジネスストアアプリのセキュリティ

基本はまず、先日のPrism for Windows Runtime のエントリーと、こちらのページにあるビジネスストアアプリの設計・開発に必要な要素をもう一度ご確認ください。

データアクセス部分実装、Web サービスによる公開実装、そしてWindows ストアアプリ連携については、Windows 8.1 業務アプリ開発ハンズオンセミナーで扱っていますが(1月2月開催分はこちら)、セキュリティについては時間の関係で扱っていません。今日はここについて簡単にまとめておきます。

1. ストアアプリの統合認証の方法

これは、よくご質問を戴く点です。Kerberos チケットについては、デスクトップアプリケーションと同じように渡せます。
デバイスがドメインに属していない場合、Windows は Active Directory のユーザ名とパスワードを入力させることになります。
実装するには Credential Pickerを利用します。

参考:Credential Picker Sample
https://code.msdn.microsoft.com/windowsapps/Credential-picker-sample-30fcba2e 
image

2. アプリケーション証明書について

各アプリケーションは独自の証明書ストアを持ちます。

各 Windows ストアアプリには固有の証明書ストレージがあり、sharedUserCertificates を宣言して、スマートカード上の証明書とキーにアクセス可能です。

アプリケーションは証明書をデバイスのルート証明書にもストアに置けます。

https://msdn.microsoft.com/ja-jp/library/windows/apps/hh465029.aspx

create/install/import/enroll 証明書

ここにあるクラスを利用します。
Windows.Security.Cryptography.Certificates 名前空間

image

3. 他要素認証について

スマートカードのサポート

Active Directory の認証情報同様、OS はカードと対応するPINをユーザに求めることになります。
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.security.credentials.passwordvault.aspx

image

4.シングルサインオン (Twitter, Facebook, Microsoft Account, etc.)について
Microsoft Accounts は Windows Live がベースとなります。

ここでも Windows がダイアログを表示し、アプリケーションが生のパスワードにアクセスすることを防止します。これについては、私も良く書きましたが、Mobile Services 等のサンプルを参照してください。Mobile Services 担当エバ→SDEになったNick Harrisが作ったものです。
https://code.msdn.microsoft.com/windowsapps/Authenticate-Account-827dd37b

image

5.暗号化について

ハッシュ、対称アルゴリズム、非対称アルゴリズムが利用可能です。
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh464964.aspx

image

アルゴリズムとキーについて

Windows.Security.Cryptography.Core 名前空間になります。
暗号化、署名、ハッシュ
対称キー、非対称キー
アルゴリズムプロバイダー:
HashAlgorithmProvider
MacAlgorithmProvider
SymmetricKeyAlgorithmProvider
AsymmetricKeyAlgorithmProvider
KeyDerivationAlgorithmProvider

 

以上です。それでは、また!

 

鈴木章太郎