メールやFTP、ベーシック認証のパスワードを忘れたときの対処法

メールやFTP、ベーシック認証でパスワードを保存する設定にしていて、 パスワードが『******』のように表示されているときそれぞれのソフトからはセキュリティのためパスワードを知ることは難しいです。

[参考記事] Firefoxでは保存したパスワードがわかってしまう

パスワードがわからなくなってしまった場合、プロトコルによっては暗号化されずにサーバに送信されるため、送信されるパケットを解析するとパスワードを知ることができます。
メールやFTPはアカウント・パスワードは平文(そのままのテキスト)で送信されます。
ベーシック認証ではアカウントとパスワードを『 :(コロン)』でつなげたものをbase64に変換して送信します。
たとえばアカウントが『account』、パスワードが『password』だったときには、サーバに送られるHTTPリクエストヘッダには

Authorization: Basic YWNjb3VudDpwYXNzd29yZA==

のように送られます。この『YWNjb3VudDpwYXNzd29yZA==』をbase64でデコードすると『account:password』となります。
base64は、規格によって送信できる文字が限られているときに、送信可能なように64種類の英数字に変換するためのエンコード方式で、暗号化を目的としたものではありません。

サーバと端末との間でやり取りされるパケットは、Linuxであればtcpdump、WindowsであればWinDumpやWiresharkを使えばわかります。
[参考記事] Windows版tcpdump WinDump Wireshark

ブラウザでのアクセスであればヘッダー情報から分かります。
[参考記事] Windows版IEでヘッダー情報を見るツール
[参考記事] Windows版Firefoxでヘッダー情報を見るツール

このようなケースでパスワードを知りたいときにはいいのですが、 簡単にパスワードがわかってしまうということは逆に言えば悪意のあるユーザもパスワードを知ることができてしまうということです。
ではパスワードを知れる人はどういった人かというと

自分自身
自分と同じネットワークに接続されている機器すべて
自分自身から相手サーバにパケットが届くまでに辿る経路上の機器すべて
相手サーバ
相手サーバと同じネットワークに接続されている機器すべて

となります。
ただし同じネットワークでもリピータハブではなくスイッチングハブが使用されている場合には知ることは難しいです。
[参考記事] スイッチングハブとリピータハブの違い

パスワードなどを知られないようにするにはSSLなど暗号化された通信を使うようにしましょう。
[参考記事] クライアントまたはサーバをSSLに対応させる方法

解析例

アカウントを『test』、パスワードを『password』としたときには次のようになります。

メール受信

[root@localhost ~]# tcpdump port 110 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:33:35.637335 IP example.com.pop3 > 192.168.11.100.example: P 141:360(219) ack 13 win 5840
        0x0000:  4500 0103 e17e 4000 3206 c937 d2ac 160c  E....~@.2..7....
        0x0010:  ac14 0872 006e 0d42 bae2 bf19 df6b dec3  ...r.n.B.....k..
        0x0020:  5018 16d0 0730 0000 2b4f 4b20 4361 7061  P....0..+OK.Capa
        0x0030:  6269 6c69 7479 206c 6973 7420 666f 6c6c  bility.list.foll
        0x0040:  6f77 730d 0a54 4f50 0d0a 5553 4552 0d0a  ows..TOP..USER..
        0x0050:  4c4f                                     LO
16:33:38.430026 IP 192.168.11.100.example > example.com.pop3: P 13:24(11) ack 360 win 65176
        0x0000:  4500 0033 47e5 4000 8006 15a1 ac14 0872  E..3G.@........r
        0x0010:  d2ac 160c 0d42 006e df6b dec3 bae2 bff4  .....B.n.k......
        0x0020:  5018 fe98 2e98 0000 5553 4552 2074 6573  P.......USER.tes
        0x0030:  740d 0a                                  t..
16:33:38.436559 IP example.com.pop3 > 192.168.11.100.example: P 360:393(33) ack 24 win 5840
        0x0000:  4500 0049 e17f 4000 3206 c9f0 d2ac 160c  E..I..@.2.......
        0x0010:  ac14 0872 006e 0d42 bae2 bff4 df6b dece  ...r.n.B.....k..
        0x0020:  5018 16d0 c678 0000 2b4f 4b20 5061 7373  P....x..+OK.Pass
        0x0030:  776f 7264 2072 6571 7569 7265 6420 666f  word.required.fo
        0x0040:  7220 7465 7374 2e0d 0a                   r.test...
16:33:38.446293 IP 192.168.11.100.example > example.com.pop3: P 24:39(15) ack 393 win 65143
        0x0000:  4500 0037 47ef 4000 8006 1593 ac14 0872  E..7G.@........r
        0x0010:  d2ac 160c 0d42 006e df6b dece bae2 c015  .....B.n.k......
        0x0020:  5018 fe77 56b4 0000 5041 5353 2070 6173  P..wV...PASS.pas
        0x0030:  7377 6f72 640d 0a                        sword..

FTP

[root@localhost ~]# tcpdump port 21 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:32:32.283383 IP 192.168.11.100.example > example.com.ftp: P 923461342:923461353(11) ack 2969092459 win 65416
        0x0000:  4500 0033 424c 4000 8006 1b3a ac14 0872  E..3BL@....:...r
        0x0010:  d2ac 160c 0d41 0015 370a e6de b0f8 c16b  .....A..7......k
        0x0020:  5018 ff88 d6bb 0000 5553 4552 2074 6573  P.......USER.tes
        0x0030:  740d 0a                                  t..
16:32:32.294005 IP example.com.ftp > 192.168.11.100.example: P 1:33(32) ack 11 win 5840
        0x0000:  4500 0048 e038 4000 3206 cb38 d2ac 160c  E..H.8@.2..8....
        0x0010:  ac14 0872 0015 0d41 b0f8 c16b 370a e6e9  ...r...A...k7...
        0x0020:  5018 16d0 acac 0000 3333 3120 5061 7373  P.......331.Pass
        0x0030:  776f 7264 2072 6571 7569 7265 6420 666f  word.required.fo
        0x0040:  7220 7465 7374 0d0a                      r.test..
16:32:32.297755 IP 192.168.11.100.example > example.com.ftp: P 11:26(15) ack 33 win 65384
        0x0000:  4500 0037 4251 4000 8006 1b31 ac14 0872  E..7BQ@....1...r
        0x0010:  d2ac 160c 0d41 0015 370a e6e9 b0f8 c18b  .....A..7.......
        0x0020:  5018 ff68 fed7 0000 5041 5353 2070 6173  P..h....PASS.pas
        0x0030:  7377 6f72 640d 0a                        sword..

関連記事

スポンサーリンク

shortlog

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る