Catoクラウドのモバイル接続では、接続できる端末を制限したい場合(例.会社支給の端末に限りたいなど)の機能として、デバイス認証(Device Authentication)機能があります。
指定した電子証明書(デバイス証明書、別名クライアント証明書)がインストールされている端末からのみ、Catoクラウドへの接続を許可する機能で、Catoクライアントが対応するすべてのOS(※)にて利用可能です。
※ Windows, macOS, iOS(iPhone/iPad), Android, Linux
デバイス認証は多くのお客様で利用いただいている機能ですが、導入時の注意点がいくつかあります。そこで、この記事ではデバイス認証の概要と設定の流れ、各OSでの注意点などをご紹介します。
前提と制約
Catoクラウドのデバイス認証には、以下の前提および制約がありますので、ご留意ください。
前提
デバイス認証機能は、Catoクライアントでの接続時に、その端末にインポートされているデバイス証明書(クライアント証明書)が、Catoの管理画面(CMA)にアップロードされている認証局証明書(CA証明書)で、検証(Verify)できるかどうかを判定し、OKであれば接続を許可する機能です。
Catoクラウドでの制約
以下は2024年1月時点の仕様です。Catoクラウドは毎週機能拡張されているため、以下の内容についても、今後機能強化される可能性があります。
- ユーザまたはデバイスと証明書の紐づけ情報は保持していません。このため、同じデバイス証明書を複数ユーザ・複数端末が利用していても、認証OKとなります。
- 証明書失効リスト(CRL)には対応していません。認証局にて対象のデバイス証明書を失効させても、Catoクラウドのデバイス認証機能には影響せず、認証OKとなります。
- 端末がSocketの配下にいるとき(=Catoクライアントによるユーザ認証が行われないとき)には、デバイス認証機能による証明書確認は行われません。
- Catoクラウドにアップロードできる認証局証明書(CA証明書)の上限は5つです。6つ以上の認証局を利用することはできません。
- サポートされている認証局証明書(CA証明書)の最大ファイルサイズは4096byteです。
- サポートされているデバイス証明書(CRTファイル)の最大ファイルサイズは2048byteです。
※ .p12ファイルのサイズではなく、その元となる.crtファイルの制限です
デバイス証明書の準備
まずは、認証に使用するデバイス証明書(=クライアント証明書)を準備します。
証明書の発行方法
証明書の発行方法は、大きく分けて2つあります。
- 自前の認証局から証明書を発行する
- 証明書発行サービスを利用する
1. 自前の認証局から発行する
社内のActive DirectoryにてADCS(Active Directory Certificate Services)機能を使って発行する方法や、OpenSSLを利用しプライベート認証局を構築して発行する方法などがあります。
安価に構築可能ですが、認証局の管理・運用を自分で行う必要があります。
2. 証明書発行サービスを利用する
有償のサービスを利用する方法です。「クライアント証明書発行サービス」などで検索するといくつかのサービスが見つかります。提供元で認証局を管理しており、利用者は管理画面からの簡単な操作でデバイス証明書を発行できるサービスです。利用者が認証局を管理しなくて良いため、手軽に利用できます。
サービス選定のポイントは、認証局がセキュアに管理されている、信頼できるサービス提供元を選ぶこと、また、提供元によって価格体系が異なる(証明書×費用、ユーザ数×費用、等)ため、必要な証明書の数と費用感を比較検討することです。
なお、Catoクラウドでは前述のとおり、ユーザとデバイスの紐づけや、失効リストに対応していないため、証明書発行サービスの機能を十分には生かせない点をご了承ください。
各端末へのデバイス証明書配布
デバイス証明書が準備できたら、各端末へ配布し、インポートします。
配布方法は様々ですが、端末が多い場合の配布手段として、端末管理システムやMDM経由で配布する、Active Directoryからグループポリシーで適用するなどの方法があります。
また、OSごとにインポート時の注意点がありますので、以下にご説明します。
全OS共通の準備
端末へ配布するデバイス証明書は .p12形式で準備します。OSバージョンによってはインポートパスワードが必須なものがあるため、インポートパスワードを設定しておきます。
Windowsの注意点
Catoクライアントはデバイス認証の際、「ローカル コンピューター > 個人」にある証明書を参照します。このため証明書をインポートする際は必ず、保存場所に「ローカル コンピューター」を、証明書ストアに「個人」を指定してください。
MacOSの注意点
対象のデバイス証明書が、キーチェーンアクセスの「ログイン」にインポートされている必要があります。
インポート後、以下の画面例のように「証明書が信頼されていない」旨の警告が表示される場合には、証明書をダブルクリックし、信頼する設定に変更してください。
また、Catoクライアントでの接続時、クライアントからキーチェーンへのアクセスを許可するかどうか、確認画面が表示されますので、アクセスを許可してください。
なお、.p12ファイルのインポート時、パスワードの入力画面が繰り返されインポートできない場合、以下をご確認ください。
- .p12ファイルにインポートパスワードが正しく設定されているか。
※パスワードなしの.p12がインポートできなかった事例があります - .p12ファイルをOpenSSL3系で作成している場合、legacyオプションを付与して再作成し、改善するか。
※OpenSSL3系のデフォルト設定で作成した.p12ファイルが、MacOS13でインポートできなかった事例があります
iOS(iPhone/iPad)の注意点
iPhone/iPadに直接証明書をインストールせずに、MDM等で作成した構成プロファイルで証明書とVPN設定を配布することが必須です。詳細は以下の記事をご参照ください。
Androidの注意点
OSバージョンによって表記が異なりますが、以下が注意点です。
- デバイス証明書のインポート時に選択肢が出た場合は「VPNとアプリユーザ証明書」を選択する
- デバイス証明書が、設定 >セキュリティ > 暗号化と認証情報 > ユーザ認証情報 にインポートされていること、「VPNとアプリ用」になっていることを確認する
- 証明書が認識されていれば、Catoクライアントの接続時に、利用する証明書の選択画面が出るので、該当の証明書を選択する
なお、証明書のインポート自体に失敗する場合には、.p12ファイルにインポートパスワードが正しく設定されているかをご確認ください。
※パスワードなしの.p12がインポートできなかった事例があります
Linuxの注意点
初回接続時のみ、以下のコマンドでデバイス証明書をインポートします。その後は通常どおり接続してください。
- cato-sdp import-cert <.p12ファイルの場所>
Catoクラウド側の設定
端末側の準備ができたら、Catoの管理画面(CMA)から、デバイス証明書認証の設定を行います。
CA証明書のアップロード
CMAに、デバイス証明書を検証(Verify)するCA証明書をアップロードします。
アップロードは、CMA の Access > Client Access > Device Authentication の箇所で行います。「New」ボタンを押し、任意の名前を指定の上、CA証明書をアップロードします。
なお、ここではデバイス証明書を署名したCAの証明書をアップロードする必要があります。つまり、デバイス証明書が中間CAから発行されている場合には中間CA証明書、そうでない場合にはルートCA証明書になります。
証明書の発行元を確認したい際は、Windowsの場合、「コンピューター証明書の管理」から「個人」を開き、対象のデバイス証明書の「証明のパス」を参照します。階層の一番下が証明書で、そのひとつ上が発行元の証明機関です。
以下の図の例1は、中間CAが存在し、中間CAからデバイス証明書が発行されている例です。この場合、CMAには中間CA証明書をアップロードします。例2はルートCAから発行されており、ルートCA証明書をアップロードする例です。
証明書認証のテスト
接続テストを行うにあたり、デバイス証明書認証の設定を全体に適用すると影響が大きいため、まずは接続テストを実施するユーザのみに適用することをおすすめします。
CMA の Access > Users で、テストを行うユーザを選択します。
User Configuration > Device Authentication で、「Override account Device Authentication settings」にチェックを入れ、証明書認証をテストしたいOSを選択し「Save」します。この設定で、このユーザのみにデバイス証明書認証を有効化できます。
設定を保存したら、対象のユーザにて、デバイス証明書をインポートした端末でのCatoクライアント接続をテストします。
デバイス証明書での認証に成功すると、CMAのEventsにて、Event Type Connectivity に以下のようなログが記録されます。通常の接続情報に加えて、証明書有効期限と証明書情報が表示されます。
Catoクライアントでエラーが表示され接続できない場合には、このあとの「トラブルシュート」の項目をご参照ください。
証明書認証の本番設定
テストにて問題がなければ、CMA の Access > Client Access > Device Authentication にて、全ユーザへ設定を適用します。
なお、デバイス証明書による認証は、上記 Device Authentication でのOSごとの適用の他に、Client Connectivity Policy にて、他の条件と組み合わせてより細かな設定も可能です。Client Connectivity Policy については本記事の最後にて補足します。
トラブルシュート
デバイス証明書認証を有効化した後、Catoクライアントにて接続エラーが表示される場合は、以下をご参照ください。
※2023年12月時点のCatoクライアントバージョンでの確認内容です
なお、問題の切り分けとして、デバイス証明書認証を無効化し、正常に接続できるかどうかをご確認ください。無効化しても接続できない場合は、原因が証明書関連ではないと考えられます。
Windowsクライアントのエラー
Device certificate error. No matching certificate found. Please contact you network administrator.
端末内の、ローカル コンピューター > 個人 に証明書が存在しません。「コンピューター証明書の管理」から「個人」に対象のデバイス証明証が正しくインポートされているか確認してください。
Device certificate error. Please contact you network administrator.
デバイス証明書は存在するものの、CA証明書での検証に失敗しています。「コンピューター証明書の管理」から「個人」に対象のデバイス証明証が正しくインポートされていること、またCMAにアップロードしたCA証明書と正しく紐づいていることをご確認ください。
MacOSクライアントのエラー
Failed to authenticate with Certificate.
デバイス証明書が認識されていない、またはCA証明書で検証できない状態です。以下の点をご確認ください。
- キーチェーンアクセスの「ログイン」に、対象のデバイス証明書がインポートされていること
- そのデバイス証明書が信頼されていること
- CatoクライアントからキーチェーンへのアクセスがOS内で許可されていること
- デバイス証明書と、CMA上のCA証明書が正しく紐づいていること
iOSクライアントのエラー
下記記事の「トラブルシュート」をご参照ください。
Androidクライアントのエラー
赤文字で「C=JP, ST=XXX, O=XXX …」といった、CAのSubject Name情報が表示される。
デバイス証明書が認識されていない、またはCA証明書で検証できない状態です。以下の点をご確認ください。
- デバイス証明書が 設定 >セキュリティ > 暗号化と認証情報 > ユーザ認証情報 にインポートされていること
※設定の項目名はAndroidのバージョンや端末によって異なります - 上記の証明書が「VPNとアプリ用」になっていること
- Catoクライアントでのアクセス時に、その証明書を選択したこと (拒否していないこと)
- デバイス証明書と、CMA上のCA証明書が正しく紐づいていること
Linuxクライアントのエラー
Certificate error. [C=JP, ST=XXX, O=XXX …]
デバイス証明書が認識されていない、またはCA証明書で検証できない状態です。以下の点をご確認ください。
- 接続前にデバイス証明書のインポート (cato-sdp import-cert …) を行っていること
- デバイス証明書と、CMA上のCA証明書が正しく紐づいていること
上記を確認後も接続不可の場合、一度認証情報をリセットするため、CLIより 「–reset-cred」を付けて接続をお試しください。
補足情報
Client Connectivity Policy について
Client Connectivity Policyは、端末が指定の条件に一致している場合にのみCatoクライアントの接続を許可する(または拒否する)機能です。
本記事にてご説明したデバイス認証(Device Authentication)と機能が重複していますが、Client Connectivity Policyでは、クライアント証明書の有無やOSの他、指定のセキュリティソフトの指定のバージョンが動作しているかどうか、Real time protectionが有効になっているか等のDevice Posture条件を細かく指定できます。また、ポリシーの適用範囲として、全体・ユーザ個人の他、ユーザグループを指定することが可能です。
デバイス認証(Device Authentication)では設定したい条件を満たせない場合、Client Connectivity Policyで実現可能かご検討ください。
まとめ
デバイス証明書認証は、いざ導入しようとすると、デバイスにうまくインポートできなかったり、Cato固有の制約にひっかかったりすることが多いため、PoC時の検証をおすすめしております。
デバイス証明書以外にも、Catoクラウドでお困りの際は、ぜひ当社FAQサイト「よくあるご質問」もご参照ください。