Wordauthenticationがセキュリティ関連の文献で使用されている方法(つまり、暗号領域の外)には常に混乱しています。ほとんどの場合、私はそれらが実際にidentificationを意味していることを理解しています。
たとえば、Wikipediaから: Central Authentication Service は、認証という用語を使用して識別を意味します(私が正しく理解している場合)。
暗号では、私が理解している限り:
[3つの用語を正しく理解できたかどうかをお知らせください。代わりの/洗練された/より役立つ定義を自由に提供してください]
誰かが暗号と一般的なセキュリティ文献の両方でauthentication
とidentification
の2つの用語の意味について詳しく説明できますか?
ネットワークを介した通信のコンテキストでは、identityは特定のデータの知識と同等です。要約すると、外部から、与えられたエンティティを外部から知ることができるのは、そのエンティティがどのバイトを放出するか、つまり何ができるかcomputeだけです。誰もが同じ種類のPCを購入できるため、計算能力の違いは最終的にはエンティティknowにあります。例えば。 yoは、StackExchangeの観点から見るとmeとは異なりますが、「Jus12」アカウントのパスワードを知っているだけで、私は知りません。 「トムリーク」アカウントのパスワード。
Identificationは、特定のエンティティが関与し、何らかの形で「アクティブ」であることを確認することです。たとえば、StackExchangeサーバーは、自分(自分のコンピューター)に自分のパスワードを表示するよう要求することで、私が生きていてキックしていることを確認できます。 StackExchangeサーバー(実際には間接スキームを使用するため別のサーバーですが、それは専門知識です)alsoは私のパスワードを知っているため、SEチャレンジが正常に応答された場合、SEサーバーはそれだけを知っていることに注意してください、回線の反対側で、私またはSEサーバー自体のいずれかであるエンティティを操作します。識別プロトコルは、狡猾な悪意のある個人(以降、総称的に「攻撃者」と呼ぶ)によって自身との会話を誘発するサーバーの発生を回避するか、少なくとも確実に検出するように注意する必要があります。
識別自体は、まったく役に立ちません。 SEサーバーが知りたいのは、私、Tom Leekが存在し、起きているということではありません。 SEサーバーはそれについてかなり納得していて、気にしません。 SEサーバーで必要なのは、発行するHTTPリクエストのapproveを確認することです。彼らはauthenticationを望んでいます:それは他のデータに適用される識別です。したがって、識別は、「検証済み」の出所としてのデータの束に適用すると考えられる限り、有用です。 IDとデータの間のリンクは、攻撃者がデータに与える可能性のある怒りに対して弾力的でなければなりません。 StackExchangeの場合、HTTPリクエストのintegrityが想定されているため、攻撃者はかなり弱いと考えられます。識別部分はCookieになります。 HTTPリクエストの一部であり、SEサーバーは、攻撃者がリクエストまたはCookieを変更したり、Cookieをコピーして新しい偽のHTTPリクエストに移植したりできないことを前提としています。
より完全な認証では、通常、暗号的に強力なリンケージが使用されます。 a SSL/TLS トンネル(多くの場合HTTPSの一部として)。トンネルの暗号特性は、サーバーがSSLセッション全体で同じエンティティと通信していることを確認できることを意味します。さらに、サーバーは、サーバーが正式に認証されているSSLトンネルを介して発生しない限り、ユーザーは自分のアカウントパスワードに関連する識別プロトコルを再生しないと想定します(つまり、クライアントは適切なサーバーと通信していることを確認します-それがサーバーcertificateの概要です-送信するデータはすべてそのサーバーにのみ送信されるため、認証です)。これらの条件下で、サーバーがそのトンネル内でidentify meを実行できる場合、IDはその後トンネルを介して送信されるすべてのデータをカバーします。トンネルはIDとデータの間のリンクなので、これが認証です。
否認防止は一部の認証プロトコルの特性であり、IDとデータ間のリンクは、誰でも、インタラクティブに、行のもう一方の端だけでなく、たとえば裁判官などの不利な第三者によっても。 verifyパスワードもだいたい直接それを知っている必要があり、したがって疑わしいエミッターをフレーミングする可能性があるため、パスワードベースのスキームは通常そのプロパティを提供しません。否認防止には数学が必要です。 SSLトンネルでは、クライアントは非対称暗号でいっぱいの証明書を介してサーバーを認証しますが、これは否認防止を許可しないことに注意してください。クライアントは、サーバーから受信するすべてのデータが実際にサーバーからのものであることを確認します、しかしクライアントが記録できるものは何もありません。それは裁判官がサーバー本当にがそのデータを送信したと確信させるでしょう。否認防止を取得するには、 デジタル署名 が必要です。否認防止なしでは、計算が軽い Message Authentication Codes と呼ばれるアルゴリズムで認証を取得できます。紛らわしいことに、MACの「シグネチャ」を呼び出すという広く行われている(ただし正しくない)伝統があります。
まとめ:
識別は、プリンシパルを説明する方法です。ユーザー名、電子メール、姓名など。プリンシパルはユーザーです。
認証は、プリンシパルが本人であることを証明する方法です。
たとえば、システムにログインするときは、ユーザー名で自分を識別します(こんにちは、SteveSです)。私が知っているパスワードだけを入力して自分を認証し、システムが検証できるようにします(私のパスワードは "SteveS"なので、SteveSです) foo」)。
実例としては、運転免許証の使用があります。シャツに名前タグを付けて、私がジョーであることを確認できますが、誰かが私がジョーであることの証明が必要な場合は、運転免許証を提示します。認証は、ライセンスの写真を本人と比較することによって行われます。
私の答えは短いですが、これは私が常に2つを読む方法です。
特定は「私はジョー・シュモーです!」と言っています認証とは何か(パスワード、出生証明書、DNA結果)で証明することです。
ITでは、個人を個別に識別して適切に識別し、権利を割り当てることができるようにする必要があります(私はJoe Schmoeです!私もです!私は3つです!すべてに同じアクセス権が必要なわけではありません)。また、自分自身を認証することで、本人であることを証明してもらう必要があります(認証の3つの要素、知っている、持っている、または持っていることを覚えておいてください)。
簡単な説明を使用する
識別:誰かを識別する方法です。つまり、その人または会社をどのように呼び出すかです。名前、銀行の口座番号、特定のシステムのユーザー名などです。
認証とは、システムで何かをしている人が本人であることを確認する方法です。彼は、知っているもの(パスワード-1要素認証)を与えることによって、または知っているもの+彼が所有しているもの(パスワード+デジタル証明書-2要素認証)を与えることによってそれを証明できます。
否認防止:ドキュメントは、認証された人物のみが作成でき、特定のIDとドキュメントの間に関係があるため、ドキュメントなどの作成者を拒否することはできません。
識別-あなたは誰ですか?
Authentication-自分が誰であるかを確認する。
ここでのすべての回答とは非常に異なる回答を提供します。
認証と識別の違い問題ではない。
たとえば、Fiat-Shamirの論文では次のように定義されています。
(私が推測しているのは、schnorr identificationプロトコルのようなシグマプロトコルでは、ゼロ知識プロパティを提供するために、検証者が証明者を正しく識別する偽の筆記録を作成できる必要があるという事実に基づいています)
さらに2つの混乱点:
つまり、簡単に言うと、認証はあなたが誰であるかを証明するについてです。これ以上何もない。
Identificationベリファイアは、認識しているすべてのエンティティに対して提示された情報を確認する必要がありますAuthenticationは、以前に識別された単一のエンティティの情報を確認する必要があります。
識別:あなたは誰ですか?
認証:わかりました。どうすればそれを証明できますか?
承認:何ができますか?