1.実験目的
- メールシステムの基本構造を理解する
- クライアントとサーバー、およびサーバー間の通信を理解する
- SMTPおよびPOP3プロトコルを分析・理解する
2.実験環境
- ハードウェア要件:Alibaba Cloud ECSを1台。
- ソフトウェア要件:Linux/Windows オペレーティングシステム
3.実験内容
3.1 使用メール代理受送信
メールクライアント(例:windows Outlook Express、linux の Thunderbird など;OS に付属のものを使用するか、または自分でダウンロードして使用することができます。)、ローカルでメールを作成し、自分のQQメールを受信します。
3.2 ローカルでの受送信
ローカルクライアントを使用してQQメールを作成・送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。
3.3 ウェブメール
ブラウザを使ってQQメールにログインし、QQメールを作成・送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。
3.4 telnetでの受送信
telnetコマンドを使用してQQメールサーバへログインし、メールを送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。
具体的な操作コマンドとポートの照会はネット情報を参照して自分で解決してください。
4.実験結果と分析
4.1 使用メール代理受送信
- QQメールにアクセスし、POP3/SMTPサービスを有効化し、認証コードを取得する。

- QQメールの案内に従ってOutlookをQQメールに紐づける。

4.2 ローカルでの受送信
- アカウントのSSLを無効にする

- Wiresharkを使用してWLANをキャプチャし、メールを送信する

- Wiresharkを使用してSMTPをトレースする

- 通信の過程および通信プロトコルを分析する
C: telnet imap.qq.com 25 //以telnet方式连接qq邮件服务器S: 220 newxmesmtplogicsvrszc10.qq.com XMail Esmtp QQ Mail Server. //连接成功,220为响应数字,后面为欢迎信息C: EHLO DREAIFEDESKTOP //向服务器表明身份S: 250-newxmesmtplogicsvrszc10.qq.com | PIPELINING | SIZE 73400320 | STARTTLS | AUTH LOGIN PLAIN XOAUTH XOAUTH2 | AUTH=LOGIN | MAILCOMPRESS | 8BITMIME //成功C: AUTH LOGIN //登录账号S: 334 VXNlcm5hbWU6C: User: ODc3MjYxNzkzQHFxLmNvbQ== //输入账号与授权码的base64编码S: 334 UGFzc3dvcmQ6C: Pass: enVqbnVobWFhcnB5YmJiYg==S: 235 Authentication successfulC: MAIL FROM: <[email protected]> //发送人邮箱S: 250 OKC: RCPT TO: <[email protected]> //收信人邮箱S: 250 OKC: DATA //邮件内容S: 354 End data with <CR><LF>.<CR><LF>.C: DATA fragment, 2429 bytesfrom: <[email protected]>, subject: , (text/plain) (text/html)S: 250 OK: queued as.C: QUIT //发送完成并退出S:221 Bye4.3 ウェブメール
- Wiresharkを使用してWLANをキャプチャし、メールを送信する

- TLS/SSLを追跡するためにWiresharkを使用する

- 通信の過程および通信プロトコルを分析する
Client Hello
TLSハンドシェイクの最初のステップはクライアントがリクエストを開始することで、クライアントが生成したランダム文字列(セッションキー)やクライアントがサポートする暗号スイートのリスト、乱数などの情報を含みます。
- Server Hello && Certificate
サーバーはクライアントのClient Helloデータを受信後、クライアントが送信した暗号スイートリストに基づいて暗号スイートを選択し、クライアントに返すランダム文字列を生成します。鍵交換アルゴリズムはECDHE_RSAを使用し、対称暗号はAES_128_GCM_SHA256を使用します。サーバ証明書情報も返されます。
- Server Key Exchange & Server Hello Done
サーバーはクライアントへデータを交換するための鍵を渡すためのServer Key Exchangeデータ包を返し、Server Hello Doneは鍵交換のデータがクライアントの応答を待っていることを通知します。
- Client Key Change & Change Cipher Spec & Encrypted HandShake Message
クライアントはサーバーが返したDHデータを基にDHデータをサーバへ送信し、最終的なpre-master-secretを生成します。図のとおり:
- Application Data
- Change Cipher Spec & Encrypted HandShake Message
定期的にセッション鍵を更新します
4.4 Telnetでの受送信
- PC上でTelnetを有効化し、Wiresharkでパケットをキャプチャする

- コマンドプロンプトを開いて操作を行う
テキスト入力:telnet imap.qq.com 25でサーバへ接続した後、以下のコードを入力
- メール送信完了
- 通信の過程および通信プロトコルを分析する
C: telnet imap.qq.com 25 //以telnet方式连接qq邮件服务器S: 220 newxmesmtplogicsvrszc10.qq.com XMail Esmtp QQ Mail Server. //连接成功,220为响应数字,后面为欢迎信息C: helo qq.com //向服务器表明身份S: 250-newxmesmtplogicsvrsza5.qq.com-9.22.14.83-57293480S: 250-SIZE 73400320S: 250 OK //成功C: auth login //登录账号S: 334 VXNlcm5hbWU6C: User: ODc3MjYxNzkzQHFxLmNvbQ== //输入账号与授权码的base64编码S: 334 UGFzc3dvcmQ6C: Pass: enVqbnVobWFhcnB5YmJiYg==S: 235 Authentication successfulC: MAIL FROM: <[email protected]> //发送人邮箱S: 250 OKC: RCPT TO: <[email protected]> //收信人邮箱S: 250 OKC: DATA //邮件内容S: 354 End data with <CR><LF>.<CR><LF>.C: DATA fragment, 2429 bytesfrom: <[email protected]>, subject: , (text/plain) (text/html)S: 250 OK: queued as.C: QUIT //发送完成并退出S:221 Bye5、実験のまとめ
5.1 問題と解決策
問題はXftpでサーバーに接続する際に接続エラーが発生しました。解決策としてキャンパスネットワークに接続した後に正常に戻りました。調査の結果、原因はサーバーのファイアウォールによるものでした。
5.2 感想
- 本実験レポートではSMTPプロトコルの分析過程でのコードとソフトウェアの操作、SMTPメッセージの分析と抽出を習得し、授業で学んだ知識を実証しました。この実験を通じてtelnetを使ったメール送信の具体的な手順を身につけ、一般的なSMTPプロトコル分析ツールの基本的な使い方を理解し、自己のプログラミング能力を高めました。
- これらの一般的なSMTPプロトコル分析コマンドの操作を通じて、SMTPプロトコルの使用時の追跡分析と、SMTPメッセージの構造分析を実践的に検証し、授業で学んだ知識を裏付けることができました。
この記事が役に立ったときは、ぜひ他の人に共有してください!
一部の情報は古い可能性があります


















