Catoクラウドでのデバイス証明書認証について

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. 自前の認証局から証明書を発行する
  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設定を配布することが必須です。詳細は以下の記事をご参照ください。

【Catoクラウド】iPhoneでのデバイス証明書認証

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の設定は、以下の3stepで行います。

  1. Access > Device Posture > Device Checks にて、Device Certificateのチェック条件を作成する
  2. Access > Device Posture > Device Profiles にて、1のチェック条件を含むプロファイルを作成する
  3. Access > Client Connectivity Policy にて、テストユーザに対する接続条件と、その他ユーザの許可条件を作成する
1. Device Certificateのチェック条件を作成する

Device Checks にて、接続制限の条件を作成します。Access > Device Posture にある「Device Checks」のタブを選択し、
「New」をクリックします。

New Device Checkの設定画面が開くので、Device Test Typeの項目で「Device Certificate」をプルダウン選択します。Nameは任意の名前を入力し「Apply」をクリックします。

Device Checksの画面に戻るので、作成した項目が追加されていることを確認の上「Save」をクリックします。

※Device Certificateの条件は1つしか作成できません。もし新規作成できない場合は、すでに条件が作成されていないかご確認ください。

2. Device Profiles を作成する

続いて、1のチェック条件を含むプロファイルを作成します。「Device Posture Profiles」のタブに移動し「New」をクリックします。

New Device Profileの設定画面が開きます。Nameは任意の名前を入力し、Device Checksの欄で「Device Certificate」をプルダウン選択します。その下のプルダウンで、先程作成したDeviceCheck条件を選択します。設定したら「Apply」をクリックします。

Device Posture Profilesの画面に戻るので、作成した項目が追加されていることを確認の上「Save」をクリックします。

3. テストユーザに対する接続条件と、その他ユーザの許可条件を作成する

Client Connectivity Policy をEnabled(有効)にすると、その時点から条件に合致しないクライアントの接続をすべて拒否する動作となります。このため、条件の適用時は十分ご注意ください。

Client Connectivity Policy は、ルールの上から順に一致するかのチェックが行われ、ルールに一致した時点でチェックは終了となり、以後のルールは参照しません。ルールの順番にご注意ください。

Access > Client Connectivity Policy へ移動し、「New」をクリックしてポリシーを作成します。

ルールのNameは任意の名前を入力します。Users/Groupsでは、ポリシーを適用したいユーザまたはグループを選択します。複数選択が可能です。また、Platformsで「Operating System」をプルダウンし、デバイス証明書認証させたいOSを選択します。複数選択可能です。

Device Posture Profilesで、2で作成した証明書のプロファイルを選択します。Actionで「Allow WAN and Internet」を選択し「Apply」をクリックします。

以上で、指定したユーザ・OSでの接続時には、デバイス証明書が入っているかのチェックが行われ、入っていれば接続許可されるルールとなります。

このルールのみですと、指定したテストユーザ以外は全員接続拒否されてしまうため、テストとしては危険です。このため、2つめのルールとして、その他のユーザは無条件で接続許可するルールを設定します。下記の画像を参照ください。

設定内容に間違いがなく、かつテストユーザ以外のユーザが接続許可される設定となっていることを確認の上、左上のスライダを「Enable」にし、「Save」をクリックします。

以上で、テスト用の設定は完了です。

動作確認・ログのチェック

設定を保存したら、対象のユーザにて、デバイス証明書をインポートした端末でのCatoクライアント接続をテストします。

デバイス証明書での認証に成功すると、CMAのEventsにて、Event Type Connectivity に以下のようなログが記録されます。通常の接続情報に加えて、証明書有効期限と証明書情報が表示されます。

Catoクライアントでエラーが表示され接続できない場合には、このあとの「トラブルシュート」の項目をご参照ください。

証明書認証の本番設定

テストにて問題がなければ、Client Connectivity Policy にて、全ユーザへ設定を適用します。

証明書を必要とする許可ポリシーに、対象とするユーザ・対象とするOS等を指定します。また、証明書が入っていない場合には接続拒否されるよう、ポリシー内容と順番を調整します。

なお、Client Connectivity Policyでは、クライアント証明書の有無やOSの他、指定のセキュリティソフトの指定のバージョンが動作しているかどうか、Real time protectionが有効になっているか等のDevice Posture条件を細かく指定できます。また、ポリシーの適用範囲として、全体・ユーザ個人の他、ユーザグループを指定することが可能です。

トラブルシュート

デバイス証明書認証を有効化した後、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クライアントのエラー

下記記事の「トラブルシュート」をご参照ください。

【Catoクラウド】iPhoneでのデバイス証明書認証

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」を付けて接続をお試しください。

まとめ

デバイス証明書認証は、いざ導入しようとすると、デバイスにうまくインポートできなかったり、Cato固有の制約にひっかかったりすることが多いため、PoC時の検証をおすすめしております。

デバイス証明書以外にも、Catoクラウドでお困りの際は、ぜひ当社FAQサイト「よくあるご質問」もご参照ください。

タイトルとURLをコピーしました