Identプロトコル( Identification Protocol、しばしば単にidentと呼ばれる) は、 RFC 1413で規定されているアプリケーション層プロトコルです。[ 1 ]既存の接続に対応する 2 つの TCP ポート番号が与えられると、Ident サーバーは、サーバーのホスト上でその接続の所有者を識別する短い文字列を返します。このプロトコルは TCP ポート 113 でリッスンします。[ 2 ]これは、以前の「Authentication Server」プロトコルを廃止します。[ 3 ] [ 1 ]
Identプロトコルは、ユーザーのコンピュータ上でサーバーデーモンとして動作するように設計されており、指定されたTCPポート(通常は113番ポート)へのリクエストを受信します。クエリでは、クライアントはローカルポートとリモートポートのペアをASCII十進数でエンコードし、カンマ(,)で区切ります。サーバーは、指定されたTCPポートのペアを使用するプログラムを実行しているユーザーのユーザー名を識別する応答、またはエラーメッセージを返します。
ホストAが、クライアント(ホストB)のポート6191からTCPポート23( Telnet )に接続しているユーザーの名前を知りたいとします。ホストAは、ホストB上のidentサービスへの接続を開き、次のクエリを発行します。
6191、23
TCP接続は通常、固有のローカルポート(この場合は6191)を使用するため、ホストBは、ホストAのポート23への指定された接続を開始したプログラムが存在する場合、それを明確に識別できます。ホストBは、この接続を開始したプログラムの所有者であるユーザー(この例では「stjohns」)とそのローカルオペレーティングシステムの名前を示す応答を発行します。
6193、23 : USERID : UNIX : stjohns
しかし、ホストB上にそのような接続が存在しないことが判明した場合、代わりにエラー応答が発行されます。
6195、23:エラー:ユーザーなし
すべての識別メッセージは、キャリッジリターンとラインフィード文字(CR+LF)からなる行末シーケンスで区切られる必要があります。 [ 1 ]
ダイヤルアップホストや共有シェルサーバーでは、不正利用を特定のユーザーに追跡できるように、ident機能が提供されていることがよくあります。不正利用がこのホスト上で処理される場合、identデーモンの信頼性に関する懸念はほとんど関係ありません。実際のユーザー名の代わりに、暗号化的に強力な可変トークンを提供することで、サービスのなりすましやプライバシーに関する懸念を回避できます。
不正利用への対応を、ユーザーが識別情報を提供するホストを使用して接続するサービスの管理者が行う場合、識別サービスは各ユーザーを識別する情報を提供する必要があります。通常、リモートサービスの管理者は、特定のユーザーが信頼できるサーバー経由で接続しているのか、それとも自身が管理するコンピューターから接続しているのかを知ることはできません。後者の場合、識別サービスは信頼できる情報を提供しません。
Ident が既知の ID をリモート ホストに証明するのに役立つのは、次のような状況に限られます。
Ident は TCP 上で動作するシンプルなリクエスト/レスポンス サービスです。クライアントはポート 113 でサーバーに接続し、サーバーの TCP ポートとクライアントの TCP ポートを ASCII 10 進数でカンマで区切って送信します (例: 6191, 23)。サーバーはUSERID、オペレーティングシステム タグと識別子文字列を含むレスポンス、またはやERRORなどのコードで応答します。[ 1 ]NO-USERHIDDEN-USER
仕様書には、Ident 情報はそれを返すホストの信頼性に依存し、通常はプライベートとみなされる情報を漏洩する可能性があることが明記されています。また、アクセス制御に Ident を使用しないよう警告しています。[ 1 ]
IETFのセキュリティガイダンスBCPも、送信者認証にIdentを使用すること(例えばメールシステムなど)を「悪い考え」と表現し、リレー、TCPハイジャック、誤解を招くような、あるいは偽の応答の可能性などのリスクを挙げています。また、多くのサイトがIdentクエリをドロップしたりブラックホール化したりすることによる運用上の問題も指摘しています。[ 4 ]
歴史的に、Ident は監査や不正利用対策を支援するためにマルチユーザーシステムで使用されていました (例えば、IRC ネットワークなど)。現代の IRC 仕様では Ident はオプションとして扱われています。サーバーは Ident プロトコルを使用してクライアントの「実際のユーザー名」を検索することができ、(有効になっている場合) Ident 応答が受信されない場合にクライアントから提供された名前を未検証としてマークすることがよくあります。[ 5 ]
実際には、ファイアウォールやネットワークアドレス変換(NAT)が広く使われているため、クライアントホストへの受信接続が一般的にブロックまたは変換されるため、ネットワーク全体でのIdentの有用性は低下します。[ 6 ]
Ident は 1993 年 2 月に提案標準として公開され、以前の「認証サーバー」に取って代わりました。[ 3 ] [ 1 ]サービス名「auth/ident」は、IANA レジストリで TCP ポート 113 に割り当てられたままです。[ 2 ]