1. 序章

このチュートリアルでは、認証と承認の概念について説明します。どちらもセキュリティ設計の中心です。 多くの場合、同じ意味で使用されますが、認証と承認は根本的に異なる機能を表します。 チュートリアルの目的は、認証と承認の定義を説明し、それらの違いに言及することです。

フェデレーションID、多要素認証、アクセスキー、キーペアなど、一般的に使用されるさまざまな認証メカニズムの概要を説明します。 また、IDおよびアクセス管理(IAM)と、IAMユーザー、グループ、ロール、およびポリシーが承認プロセスにどのように結びつくかについても学習します。

最後に、ユーザーの認証と承認の利点を研究し、概念の実際の例に進みます。

2. 違い

認証と承認は似ているように聞こえるかもしれませんが、IAMシステムでは別々のセキュリティプロセスです。 最初の要素はIDであり、ユーザーが本人であると主張する人物であることを確認します(認証)。 2つ目はアクセスです。これには、どのユーザーがネットワーク内のどのリソースにアクセスできるかを決定することが含まれます(承認)。 主な違いは次のとおりです。

3. 認証

認証とは、個人またはオンラインのユーザーが本人であるかどうかを確認できるように、適切に安全なメカニズムを導入することです。 これは、セキュリティ情報の受け入れに関するルールを定義し、クレデンシャルを転送してさらに処理できるかどうかを決定します。 以下は、認証に一般的に使用されるメカニズムです。

3.1. 単一要素認証(SFA)

SFAは、アプリケーションが単純なユーザー名とパスワードのチェックを実装する最も単純な形式の認証方法です。 SFAを使用すると、アプリケーションは、次の図に示すように、特定のユーザー名のパスワードなどの1つのユーザー資格情報と一致します。

 

3.2. フェデレーションID

この認証プロセスでは、アプリケーションにアクセスするためにユーザーを認証するIDプロバイダーを探します。

理解を深めるために例を見てみましょう。 次の図があるとします。

 

IDプロバイダーは、ユーザー認証を要求するアプリケーションに対して、ユーザーの認証に成功したことを証明できます。 アプリケーションは、アプリケーションとIDプロバイダーの間で以前に確立された相互信頼関係に基づいて認証を受け入れます。 このIDプロバイダーによるユーザーの認証により、ユーザーとアプリケーション間の認証プロセスが不要になります。

3.3. 多要素認証(MFA)

MFAは、ユーザーが主張する身元の複数の証明を提供することを要求します。 次の図を使用して、理解を深めるための例を見てみましょう。

ユーザーは、次の2つまたはすべての方法を組み合わせて認証プロセスを完了することができます。

  • ユーザー資格情報
  • 自分のデバイスからの認証
  • バイオメトリクス

User Credential メソッドは、ユーザー名とパスワードで構成されます。 ユーザーは、アプリケーションのログインページでそれらを正しく入力する必要があります。

自分のデバイスからの認証メソッドは、ほとんどの場合、人々がモバイルデバイスと電子メールの手の届くところにいるという事実を利用しています。 ワンタイムピン(OTP)は、ショートメッセージングサービス(SMS)および電子メールとして、1つのセッションまたはトランザクションに対してのみアプリケーションによってユーザーのモバイルに送信されます。 アプリケーションのOTPの確認ページで、ユーザーは確認のためにOTPを入力します。

バイオメトリクスメソッドとは、ユーザーの指スキャン、目(網膜、虹彩)スキャンなどの生理学的特性を使用して検証を完了することを指します。 これには、ユーザーのモバイルに特殊なアプリケーションが必要です。

3.4. アクセスキー

ユーザー資格情報をアプリケーションに手動で入力する代わりに、非対称アクセスキー方式は、同じ情報をリモートアプリケーションに送信するための安全な方法を提供します。 次の図を使用して、アクセスキーがどのように機能するかを説明します。

非対称暗号化または公開鍵暗号化は、一致する鍵のペア(公開鍵と秘密鍵)を使用します。 アクセスキーメソッドは、公開キーを使用してメッセージを暗号化(ロック)します。 暗号化されたメッセージは、対応する秘密鍵によってのみ復号化(ロック解除)できます。 秘密鍵(秘密)は、鍵ジェネレーター(クライアント)が安全に保管します。

保護されたを設定するには 繋がり サーバーとクライアントの間、 生成 クライアントのアクセスキーが最初のステップです。 クライアントがを使用してサーバーにアクセスしようとしたとき アクセスキー、サーバーは暗号化された(ロックされた)メッセージをクライアントに送信します 復号化 (ロックを解除する)サーバーのメッセージ。 A 安全な接続 サーバーとクライアントの間は、クライアントが秘密鍵を使用してサーバーのメッセージを復号化できるときに開始されます。 

秘密鍵は複雑であり、鍵ジェネレーターのみが所有します。 秘密鍵はコピーが難しいため、非対称アクセス鍵によってユーザーのIDが保証されます。 

このメソッドをサポートするいくつかのプロトコルがあります。 トランスポート層セキュリティ(TLS)、セキュアソケットシェル(SSH)、 と HTTPS 接続を確立するために非対称アクセスキーを使用しています。

4. 承認

承認には、特定のルールセットに基づいてシステムリソースへのアクセスを提供するプロセスが含まれます。 この段階で、ユーザーはすでに識別および認証されている必要があります。 IAMの実装は複雑で、それを使用する個々の組織ごとにカスタマイズされていることがよくあります。 理解を深めるために、次の図を見てみましょう。

承認メカニズムにより、セキュリティシステム管理者(管理者)ユーザーを指定する(身元)アクセス権と特権。 アクセス権とは、ユーザーがアクセスできるものを意味し、 役割。 ロールは、同じ一連のビジネス機能を実行するユーザーのカテゴリまたはグループに関連付けられています。 1人のユーザーが複数の役割を持つことができます。

たとえば、同じ人が開発者とテスターとして働くことができます。 ユーザーロールには、実行できるアクションに対する特定の特権があります。 これは、次のような一連のルールによって管理されます。 ポリシー。 要件がパフォーマンスに影響を与えるビジネスロジックと結びついている場合があるため、承認のための一連のルール(ポリシー)の定義は複雑です。

具体的には、管理者は次の方法でユーザーアクティビティの承認を制御します。

  • システムリソース、サービス、データ、またはアプリケーションへのアクセス権の提供
  • プライバシーを保護するためのデータの論理パーティションの作成
  • ビジネスロジックによって定義されたアクセス制御リスト( ACL )に従ってユーザーの特権を定義する

5. 利点

認証と承認の実装の利点は、セキュリティと情報共有の向上です。 また、セキュリティリスクを特定して軽減します。 認証は、起こりうる漏洩から情報を保護し、アカウントを監視します。 サイバー犯罪者がアクセスするのを防ぎ、ハッカーがユーザーの資格情報を解読するのをより困難にします。 また、不正なアクティビティを早期にキャッチするのにも役立ちます。

承認により、一元化されたアクセス制御が提供され、データ侵害の可能性が低くなります。 また、ユーザーが表示および実行できる内容を制御します。 さらに、ユーザーが必要なものだけにアクセスできるようにします。 ユーザーエクスペリエンスを向上させ、規制コンプライアンスを実現し、ITコストを削減します。

上記に加えて、IAMシステムの実装は、使いやすさと生産性の向上を備えた共通のプラットフォームを提供します。

6. 結論

この記事では、認証と承認という2つのセキュリティ概念について学習しました。

正しい認証および承認方法のタイプの選択は、実行しているタスクによって異なります。 新しいシステムの展開に取り組んでいる場合は、いくつかの代替メカニズムをテストし、悪意のある攻撃からの保護を強化するメカニズムを確認するのが適切です。

Node.jsの単純なSSHアプリケーションcodeを参照するか、 AWS をプログラムで呼び出して、認証と承認の実装のアイデアを得る方法を参照できます。 Java Authentication and Authorization Service(JAAS)の article は、両方の概念の詳細な例を提供します。

最後に、特定の割り当てに対する特定の手法の選択はケースバイケースであり、上記の手法のいくつかを試して、どれが最適かを判断する必要があります。