NG_MPPC(4) | FreeBSD Kernel Interfaces Manual | NG_MPPC(4) |
名称
ng_mppc — Microsoft MPPC/MPPE 圧縮と暗号化 netgraph ノードタイプ解説
mppc ノードタイプは、PPP プロトコルの Microsoft ポイントツーポイント圧縮 (MPPC) と Microsoft ポイントツーポイント暗号化 (MPPE) サブプロトコルを実装します。これらのプロトコルは、しばしばポイントツーポイントトンネリングプロトコル (PPTP) に連動して使用されます。ノードは、圧縮のための comp と圧縮復元のための decomp の 2 つのフックがあります。通常、これらのフックの 1 つか両方は、同じ名前の ng_ppp(4) ノードタイプフックに接続されます。トラフィックフローのそれぞれの指示は、もう一方から独立しています。
フック
このノードタイプは、次のフックをサポートします:コントロールメッセージ
このノードタイプは、次を加えて、一般的なコントロールメッセージをサポートします:- NGM_MPPC_CONFIG_COMP
-
このコマンドは、発信トラフィック指示の (すなわち、圧縮、および/または、暗号化のための) セッションのためのノードをリセットして設定します。このコマンドは、引数として
struct ng_mppc_config を取ります。
/* MPPE キーの長さ */ #define MPPE_KEY_LEN 16 /* MPPC/MPPE PPP negotiation bits */ #define MPPC_BIT 0x00000001 /* mppc 圧縮ビット */ #define MPPE_40 0x00000020 /* 40 ビットキーを使用 */ #define MPPE_56 0x00000080 /* 56 ビットキーを使用 */ #define MPPE_128 0x00000040 /* 128 ビットキーを使用 */ #define MPPE_BITS 0x000000e0 /* mppe 暗号化ビット */ #define MPPE_STATELESS 0x01000000 /* 状態なしモードを使用 */ #define MPPC_VALID_BITS 0x010000e1 /* 有効ビット可能性 */ /* セッションの設定 */ struct ng_mppc_config { u_char enable; /* 利用可能 */ uint32_t bits; /* 設定ビット */ u_char startkey[MPPE_KEY_LEN]; /* 開始キー */ };
enabled フィールドは、ノードを通るトラフィックフローを有効にします。 bits フィールドは、PPP の圧縮制御プロトコル (Compression Control Protocol (CCP)) によって交渉されるようなビットを含んでいます。 startkey は、MPPE が交渉された場合にだけ必要であり、 MPPE のために定義されるようにセッション開始キーと等しくなければなりません。このキーは、リンク認証時に使用された MS-CHAP 資格証明に基づいています。
- NGM_MPPC_CONFIG_DECOMP
- このコマンドは、着信トラフィック指示の (すなわち、圧縮復元、および/または、復号化のための) セッションのためのノードをリセットして設定します。このコマンドは、引数として struct ng_mppc_config を取ります。
- NGM_MPPC_RESETREQ
-
このメッセージは、引数を全く含んでいなくて双方向です。圧縮復元の間にエラーを検出する場合、このメッセージは、ノードによってセッションを開始する
NGM_MPPC_CONFIG_DECOMP メッセージを発送者に送信されます。受信者は、PPP CCP リセット-要求をピア (相手側) に送信することによって応答するべきです。
また、CCP リセット-要求がローカル PPP エンティティで受信されるとき、このメッセージは、このノードタイプによって受信できます。ノードは、リモート側が再同期化することができるようにその発信する圧縮と暗号化状態をフラッシュすることによって応答します。
シャットダウン
このノードは、 NGM_SHUTDOWN コントロールメッセージを受け取るか、すべてのフックが切断されている時、シャットダウンします。コンパイル
カーネルオプションの NETGRAPH_MPPC_COMPRESSION と NETGRAPH_MPPC_ENCRYPTION は、どちらかか両方のケーパビリティで選択的にコンパイルするために提供されます。少なくともこれらの 1 つは、定義しなければなりません。さもなければ、このノードタイプは、役に立ちません。MPPC プロトコルは、Hi/Fn (以前は、STAC) から利用可能な特許の圧縮コードを必要とします。このノードタイプを NETGRAPH_MPPC_COMPRESSION オプションでコンパイルする前に、これらのファイルは、ほかの場所で取得して、カーネルソースに追加しなければなりません。
関連項目
netgraph(4), ng_ppp(4), ngctl(8) G. Pall, Microsoft Point-To-Point Compression (MPPC) Protocol, RFC 2118. G. S. Pall and G. Zorn, Microsoft Point-To-Point Encryption (MPPE) Protocol, draft-ietf-pppext-mppe-04.txt. K. Hamzeh, G. Pall, W. Verthein, J. Taarud, W. Little, and G. Zorn, Point-to-Point Tunneling Protocol (PPTP), RFC 2637.作者
<archie@FreeBSD.org>バグ
PPP では、暗号化は、CCP よりむしろ暗号化制御プロトコル (Encryption Control Protocol (ECP)) によって扱われるべきです。しかしながら、Microsoft は、混乱させられますが、それらの ``圧縮'' アルゴリズムに圧縮と暗号化の両方を組み合わせます。December 8, 1999 | FreeBSD |