mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1564 文字
4 分
実験5 電子メール
2022-07-01

1.実験目的#

  • メールシステムの基本構造を理解する
  • クライアントとサーバー、およびサーバー間の通信を理解する
  • SMTPおよびPOP3プロトコルを分析・理解する

2.実験環境#

  • ハードウェア要件:Alibaba Cloud ECSを1台。
  • ソフトウェア要件:Linux/Windows オペレーティングシステム

3.実験内容#

3.1 使用メール代理受送信#

メールクライアント(例:windows Outlook Expresslinux の Thunderbird など;OS に付属のものを使用するか、または自分でダウンロードして使用することができます。)、ローカルでメールを作成し、自分のQQメールを受信します。

3.2 ローカルでの受送信#

ローカルクライアントを使用してQQメールを作成・送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。

3.3 ウェブメール#

ブラウザを使ってQQメールにログインし、QQメールを作成・送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。

3.4 telnetでの受送信#

telnetコマンドを使用してQQメールサーバへログインし、メールを送信します。同時にWiresharkを使用して通信の過程と通信プロトコルをキャプチャして分析します。

具体的な操作コマンドとポートの照会はネット情報を参照して自分で解決してください。

4.実験結果と分析#

4.1 使用メール代理受送信#

  1. QQメールにアクセスし、POP3/SMTPサービスを有効化し、認証コードを取得する。

WAPvTMgEO7DYlX9.png

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

nyDNv6BM2EXT8W4.png

4.2 ローカルでの受送信#

  1. アカウントのSSLを無効にする

pdY93TjtRnJUafk.png

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

e5dzHk21IfX4xBa.png

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

L83wZDIPviyQljA.png

  1. 通信の過程および通信プロトコルを分析する
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 VXNlcm5hbWU6
C: User: ODc3MjYxNzkzQHFxLmNvbQ== //输入账号与授权码的base64编码
S: 334 UGFzc3dvcmQ6
C: Pass: enVqbnVobWFhcnB5YmJiYg==
S: 235 Authentication successful
C: MAIL FROM: <[email protected]> //发送人邮箱
S: 250 OK
C: RCPT TO: <[email protected]> //收信人邮箱
S: 250 OK
C: DATA //邮件内容
S: 354 End data with <CR><LF>.<CR><LF>.
C: DATA fragment, 2429 bytes
from: <[email protected]>, subject: , (text/plain) (text/html)
S: 250 OK: queued as.
C: QUIT //发送完成并退出
S:221 Bye

4.3 ウェブメール#

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

9yA3gaBJip5nZFx.png

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

f56VQIEgGpxHtyr.png

  1. 通信の過程および通信プロトコルを分析する

Client Hello

SPGzmxOXKJpVorj.png

TLSハンドシェイクの最初のステップはクライアントがリクエストを開始することで、クライアントが生成したランダム文字列(セッションキー)やクライアントがサポートする暗号スイートのリスト、乱数などの情報を含みます。

MUh98dIWNmpn1Lc.png

  1. Server Hello && Certificate

Aa2ZoQi6EhGBbeR.png

サーバーはクライアントのClient Helloデータを受信後、クライアントが送信した暗号スイートリストに基づいて暗号スイートを選択し、クライアントに返すランダム文字列を生成します。鍵交換アルゴリズムはECDHE_RSAを使用し、対称暗号はAES_128_GCM_SHA256を使用します。サーバ証明書情報も返されます。

phEZKM1VHBfUAdt.png

  1. Server Key Exchange & Server Hello Done

3RYzrJUFaiPZKAM.png

サーバーはクライアントへデータを交換するための鍵を渡すためのServer Key Exchangeデータ包を返し、Server Hello Doneは鍵交換のデータがクライアントの応答を待っていることを通知します。

EvhOaj35WegzYoF.png

  1. Client Key Change & Change Cipher Spec & Encrypted HandShake Message

w1rncSCU9YBhsiR.png

クライアントはサーバーが返したDHデータを基にDHデータをサーバへ送信し、最終的なpre-master-secretを生成します。図のとおり:

7GXgdnSAIuFOCfe.png

  1. Application Data

QZ9AqUsz3n7NGSw.png

  1. Change Cipher Spec & Encrypted HandShake Message

TjVrHfLqJBPXeYc.png

定期的にセッション鍵を更新します

rwfkcnzlxQ1DBSL.png

4.4 Telnetでの受送信#

  1. PC上でTelnetを有効化し、Wiresharkでパケットをキャプチャする

DldVe27vhCkrOQ4.png

  1. コマンドプロンプトを開いて操作を行う

テキスト入力:telnet imap.qq.com 25でサーバへ接続した後、以下のコードを入力

bOlcSHmnQYNGPyq.png

  1. メール送信完了

SGZ1ThwLfAgRnIU.png

  1. 通信の過程および通信プロトコルを分析する
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-57293480
S: 250-SIZE 73400320
S: 250 OK //成功
C: auth login //登录账号
S: 334 VXNlcm5hbWU6
C: User: ODc3MjYxNzkzQHFxLmNvbQ== //输入账号与授权码的base64编码
S: 334 UGFzc3dvcmQ6
C: Pass: enVqbnVobWFhcnB5YmJiYg==
S: 235 Authentication successful
C: MAIL FROM: <[email protected]> //发送人邮箱
S: 250 OK
C: RCPT TO: <[email protected]> //收信人邮箱
S: 250 OK
C: DATA //邮件内容
S: 354 End data with <CR><LF>.<CR><LF>.
C: DATA fragment, 2429 bytes
from: <[email protected]>, subject: , (text/plain) (text/html)
S: 250 OK: queued as.
C: QUIT //发送完成并退出
S:221 Bye

5、実験のまとめ#

5.1 問題と解決策#

問題はXftpでサーバーに接続する際に接続エラーが発生しました。解決策としてキャンパスネットワークに接続した後に正常に戻りました。調査の結果、原因はサーバーのファイアウォールによるものでした。

5.2 感想#

  • 本実験レポートではSMTPプロトコルの分析過程でのコードとソフトウェアの操作、SMTPメッセージの分析と抽出を習得し、授業で学んだ知識を実証しました。この実験を通じてtelnetを使ったメール送信の具体的な手順を身につけ、一般的なSMTPプロトコル分析ツールの基本的な使い方を理解し、自己のプログラミング能力を高めました。
  • これらの一般的なSMTPプロトコル分析コマンドの操作を通じて、SMTPプロトコルの使用時の追跡分析と、SMTPメッセージの構造分析を実践的に検証し、授業で学んだ知識を裏付けることができました。
共有

この記事が役に立ったときは、ぜひ他の人に共有してください!

実験5 電子メール
https://dreaife.tokyo/jp/posts/email-experiment-2022/
著者
dreaife
公開日
2022-07-01
ライセンス
CC BY-NC-SA 4.0

一部の情報は古い可能性があります

関連した投稿 スマート
1
実験8 WEBサーバーのデプロイと応用
cs-base 本実験は、電子メールシステムの構造、クライアントとサーバーの通信、SMTP/POP3プロトコルを理解することを目的としています。Alibaba Cloud上でNginxとApacheをインストール・デプロイし、静的/動的Webページへのアクセスを実演し、依存パッケージのインストール問題を解決しました。これにより、Linuxでのソフトウェア設定に関する理解とプログラミング能力が向上しました。
2
実験3 UDPプロトコル分析
cs-base 本実験は、UDPプロトコルの内容と動作原理を把握し、DNSクエリおよびQQ通信のUDPパケットを解析することを目的としています。tcpdumpとWiresharkを用いたパケット取得・解析を行い、結果としてUDPパケットが送信元ポート、宛先ポート、長さ、チェックサムで構成されることを確認しました。実験を通じてtracerouteコマンドやXftp接続の問題を解決し、IPプロトコル解析への理解とプログラミング能力を高めました。
3
実験4 TCPプロトコル分析
cs-base 本実験は、TCPプロトコルの基本概念とパケット構造を理解し、接続確立と切断の過程を分析し、tcpdumpとWiresharkを用いたTCPプロトコル解析技術を習得することを目的としています。wgetでWebページを取得してパケットをキャプチャし、TCPヘッダおよび各フィールドを解析し、3ウェイハンドシェイクと4ウェイハンドシェイク(切断)の過程を検討します。最後に実験中の問題と解決方法をまとめ、IPプロトコルとTCPパケット構造への理解を深めました。
4
実験6 DNSプロトコル分析と測定
cs-base 本実験は、DNSプロトコルとその基本概念(ドメイン名の構造、DNSサーバー、名前解決の原理など)を理解することを目的としています。DNSシステムの設定、digツールを用いたDNS情報の測定、tcpdumpとWiresharkによるDNSクエリパケットの解析を行います。結果としてDNSクエリ各フィールドの意味を確認し、実験中に遭遇した問題と解決策をまとめることで、DNSプロトコルへの理解とプログラミング能力を高めました。
5
実験2 IPプロトコル分析
cs-base 本実験は、IPパケット形式と各フィールドの意味を理解し、tcpdumpとWiresharkの使い方を習得することを目的としています。実験環境にはAlibaba Cloudホストと各種OSを使用します。tcpdumpでのパケット取得とWiresharkでの解析を通じて、IPプロトコル構造と関連コマンドの活用を学び、tracerouteコマンドやXftp接続の問題を解決し、プログラミング能力とIPプロトコル理解を向上させました。

目次