質問編集履歴

1 ソースコードの追記

vfg

vfg score 9

2017/01/11 16:28  投稿

PPPoE CHAP認証について
###前提・実現したいこと
perlでPPPoEクライアントを実装し、負荷試験に使用したいと考えております。
###発生している問題・エラーメッセージ
CHAP認証で、応答パケットを送信する際に、MD5ハッシュ値を生成する必要があり、
Digest::MD5::md5_hex を使用していますが、期待値※になりません。
参考になるサイトやperlでの実装例をご存知でしたら、教えていただけませんでしょうか。
※CiscoルータとWindows7クライアントを使用して、wiresharkでキャプチャーした結果を参照しています。
###該当のソースコード
抜粋です。  
 
#!/usr/bin/perl  
use utf8;  
use Digest::MD5 qw(md5 md5_hex md5_base64);  
 
&main();  
 
sub main{  
   my $id    = 1;  
   my $pass  = "PASSWORD0001";  
   my $random = "595b4900b8ceefa1414fbe03c29f5bf4";  
   print md5_hex( $id, $pass, pack( 'H*', $random )), "\n";  
   print "8ee3f5b2a10f67cc5e0f9a20e3fe7831\n"; # 期待値  
}  
 
![![challenge](708725aafb83ea1aa732f01f4c8813b4.jpeg)](adee6c4619be73930f266841be8dda51.jpeg)  
 
![response](87035689f0708d9d2ce414ed89ad142b.jpeg)  
###試したこと
md5_hexを使用して、チャレンジパケットのID、ランダム値、該当ユーザのパスワードを順番を入れ替えて入力、
またpack関数のパラメータを変更して試していますが、うまくいっていません。
またRFC1994やpppoeクライアントのソースコードを参照しています。
###補足情報(言語/FW/ツール等のバージョンなど)
perl
  • Perl

    544 questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

  • Linux

    5489 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る