質問
私は暗号化のトピックを初めて知り、PKIやPKCSなどを勉強しています。PKIの基本概念と、暗号化/復号化での使用方法を理解しています。ただし、USBトークンやスマートカードなどのハードウェアトークンがコンピューターへの安全なログインにどのように使用されるかについては混乱しています。ここに私がそれらを理解する手順と私が混乱している部分があります(質問の長さは事前に申し訳ありません):
シナリオ:ネットワーク上のコンピューターxyzには、SECRETグループに属するユーザーのみがアクセスできるデータが含まれています。ユーザーBobとJoeはこのグループに属し、これらのリソースにアクセスできるようにする資格情報を提供するために使用できるUSBトークンが発行されています。 USBトークンは2要素認証を採用しており、入力にはピンが必要です。トークンはPKCS11に準拠しています。
- ボブはUSBトークンをLinuxマシンに挿入します
- PAM-PKCS11モジュールはこのイベントを認識し、ボブにピンを入力するように促します。
- ボブが4桁のPINを正しく入力すると、モジュールはによってボブのトークンの証明書の有効性をチェックします(これはさまざまですが、最小値は何ですか?):
- 信頼できるCAを確認するためのルート証明書の検索
- 証明書の有効期限と失効リストの確認
- ユーザーファイル(どこ?、ステップがない)またはディレクトリ(LDAPなど)に対するトークンのIDの照合
- すべてが正常に見える場合、モジュールは成功した結果をPAMに通知します。
- この行には十分なラベルが付いているため、PAMは認証を受け入れ、Bobはログインして、SECRETグループのユーザーに制限された情報を表示できます。
不足している部分は、ボブがこのマシンにアクセスできるかどうか、およびネットワーク(またはデスクトップ)ユーザーであるボブとどのように結びついているかについての情報がどこに保存されているかです。ボブに関するその他の識別データは、ID(電子メールアドレスなど)を含むUSBに保存されることを理解しています。しかし、この強力なセキュリティはどうですか?ログインプロセス中に暗号化が採用されているのは、ある場合(または、それがこれらのトークンの本当の目的ではない場合)?誰かがUSBを手に入れ、4桁のピンを知っていれば、必要なのはそれだけです。さらに、別のユーザーが新しいUSBトークンを取得できず、信頼できるCAを使用して新しい証明書を取得できないが、すべての識別データがボブと同じになるように指定することを許可するのは、本質的にCAの信頼ですか?私が行方不明になっている重要な部分があることは知っています。しかし、数十の記事を読んだ後、この分野の説明は終わったようです。機密データを含むマシンにログインするための認証に十分な手段としてハードウェアトークンを使用することは良い考えですか?または、このようなトークンの目的は、主に他のアプリケーションで使用されるキーペアを安全に保存することですか?ご協力ありがとうございます!
解決
PAM(名前が示すとおり)は認証のみを処理します。認証とは、ユーザーが誰であるかを証明することです。つまり、「あなたが誰であるかを私に証明してください」ということです。これは承認とは別です。つまり、「このリソースにアクセスできますか?」。
認証には3つの側面があります:
1.知っている
2.持っている
3.私は
一般的なユーザー名/パスワードの組み合わせは1に収まりますが、トークンまたは他のPKCSデバイスは2に収まり、虹彩認識や指紋読み取りなどの生体認証は3に収まります。
セキュリティにこれらの側面が多くあるほど、セキュリティはより良く/より厳しくなります。この場合、ログインは1と2に収まるので、ユーザー名とパスワードよりも安全です。誰かが彼からピンを取り出してデバイスを盗む場合、はい、それがそれを使用しているボブであることを証明しません。しかし、ボブがユーザー名とパスワードを誰かに教えたとしても、どちらもそうしませんでした。
トークンのポイントは、「持つ」という2番目の要素を導入することです。何か、PINも必要であるという事実は、「知る」ことを意味します。何かも必要です。そのため、システムは、その人物が本人であると確信できるようになります。
参照している不足している部分は、承認です。これは前述の認証とは別のプロセスであり、ユーザーが自分自身を認証した後にのみ発生します。この場合、PAMはボブを認証し、ボブが実際にシステムを使用していることをOSに確認しました。ただし、OSはステップ5で他のチェックを実行して、Bobがリソースにアクセスしたことを確認する必要があります。