SOCKS 5
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/23 08:59 UTC 版)
より多くの認証の選択を提供する SOCKS 4 プロトコルの拡張である SOCKS 5 プロトコルは RFC 1928 内で定義されている。最初のハンドシェイクは下記の事項から成り立つ。 クライアントは接続し、サポートされた認証方法のリストを含む挨拶を送る。 サーバは一つ選ぶ(もしくは、提供されたメソッドがアクセスできないならば、失敗の応答を送る)。 いくつかのメッセージが、選択された認証方法に応じて、クライアントとサーバーの間を送受信される。 クライアントは、接続要求を SOCKS 4 と同じように送る。 サーバは SOCKS 4 と同じように応答する。 サポートされた認証方法は次の通りに番号を割り付けている: 0x00 - 認証なし 0x01 - GSSAPI 0x02 - ユーザ名/パスワード 0x03-0x7F - IANA により割り当てられたメソッド 0x80-0xFE - プライベート使用のために予約されたメソッド クライアントからの最初の挨拶: フィールド 1: SOCKS バージョンナンバ(このバージョンでは 0x05 でなくてはならない) フィールド 2: サポートされた認証方法の数,1バイト フィールド 3: 認証方法, 可変長, サポートされたメソッドにつき1バイト サーバの選択が伝えられる: フィールド 1: SOCKS バージョン, 1バイト(このバージョンでは 0x05 でなくてはならない) フィールド 2: 選択された認証方法, 1バイト, もしくはアクセスできないメソッドが提供した 0xFF 次の認証は認証方法によって異なり、 RFC 1929 で記述されている。 クライアントの認証要求: フィールド 1: バージョン番号, 1バイト( 0x01 でなくてはならない) フィールド 2: ユーザ名長,1バイト フィールド 3: ユーザ名 フィールド 4: パスワード長,1バイト フィールド 5: パスワード 認証のためのサーバの応答: フィールド 1: バージョン, 1バイト フィールド 2: 状態コード,1バイト0x00 = 成功 他の全ての値 = 失敗, 接続は終了されなければならない クライアントの接続要求: フィールド 1: SOCKS バージョン番号, 1バイト(このバージョンでは 0x05 でなくてはならない) フィールド 2: コマンドコード,1バイト:0x01 = TCP/IP ストリーム接続を確立する 0x02 = TCP/IP ポートバインディングを確立する 0x03 = UDP ポートを結合させる フィールド 3: 予約されている, 0x00 でなければならない フィールド 4: アドレスタイプ, 1バイト:0x01 = IPv4アドレス 0x03 = ドメイン名 0x04 = IPv6アドレス フィールド 5: 宛先アドレスIPv4 用の4バイト 1バイトのドメイン名長に続けて、ドメイン名 IPv6 用の16バイト フィールド 6: ネットワークバイトオーダのポート番号, 2バイト サーバの応答: フィールド 1: SOCKS プロトコルバージョン, 1バイト(このバージョンでは 0x05 でなくてはならない) フィールド2: 状態,1バイト0x00 = リクエストの許可 0x01 = 一般的な失敗 0x02 = ルール設定により許可されない接続 0x03 = 到達できないネットワーク 0x04 = 到達できないホスト 0x05 = 宛先ホストにより拒否された接続 0x06 = TTL の期限切れ 0x07 = サポートされていないコマンド/ プロトコルエラー 0x08 = サポートされないアドレスタイプ フィールド 3: 予約されている, 0x00 でなければならない フィールド 4: アドレスの種類, 1バイト:0x01 = IPv4 アドレス 0x03 = ドメイン名 0x04 = IPv6 アドレス フィールド 5: サーバ側でbindされたアドレスIPv4 用の4バイト 1バイトのドメイン名長に続けて、ドメイン名 IPv6 用の16バイト フィールド 6: ネットワークバイトオーダのポート番号, 2バイト SOCKSによって外部ネットワークに接続する、全てのネットワーク・ソフトウェアの適合を可能にする "socksify" というクライアント用のプログラムがある。
※この「SOCKS 5」の解説は、「SOCKS」の解説の一部です。
「SOCKS 5」を含む「SOCKS」の記事については、「SOCKS」の概要を参照ください。
- SOCKS 5のページへのリンク