パスワード入力

昨年から今年にかけて、大手ITベンダーやベンチャー企業で「脱PPAP」の動きが加速しているとのこと。

「脱PPAP」??

PPAPでネット検索すると、2016年にYoutubeで1億回以上の再生で一世風靡したピコ太郎さんの「ペンパイナッポーアッポーペン」が真っ先にでてきますが、もちろんそれとは別の話です。「メールで添付ファイルを送る際に、パスワード付き圧縮を行い、パスワードを別メールで送る」セキュリティ対策のことを最近はPPAPと呼ぶらしいです。

P: Password付きZIPファイルを送ります、
P: Passwordを送ります、
A: Angouka(暗号化)
P: Protocol(プロトコル)

よくあるIT略語ぽい響きのPPAPですが、Angouka(暗号化)などは完全に日本語で「えっ?」と思ってしまいました。どうやらピコ太郎さんのPPAPから着想を得て命名されたようです。

PPAPはメール誤送信による情報漏えい対策としてかなり普及した手法ですので、現在も行っている企業も多く、取引先からパスワード付きZipファイルを受け取ったことがある方は非常に多いことでしょう。このPPAPについて、2020年11月に平井卓也デジタル改革担当大臣が中央省庁で廃止を宣言したことから「脱PPAP」に追随する企業が増えてきているとのことです。その大きな理由は、パスワード付きZipファイルが「セキュリティ対策効果が低い」「ウイルス感染のリスクを増やす」「企業の生産性を低下させる」ということになっています。

パスワード付きZipファイルをメール添付することのセキュリティ対策効果が低いことは多くの人が気づいていましたが、これまで見て見ぬふりをされてきていました。お上が公言したことから今後この動きは加速していくことでしょう。パスワード嫌いの私にとっては大歓迎です。

そこで、今回は「パスワード付きZipファイルのパスワードを解析には、どの程度の時間が必要なのか?」を実験・検証してみました。

また、社内・部署・グループなどで共通パスワードを決めて機密情報の管理を行う場合に、どのようなパスワードを使うべきかも併せて考えていきます。

パスワード解析実験

パスワード付きZipファイルを作成し、無料で利用できるパスワード解析ツールを使って実験を行いました。

準備

パスワード付きZipファイルの作成には「7-zip」という無料ツールを使用しました。(Windows10では標準機能でパスワード付き圧縮ができなくなっているようです。今回初めて気がつきました。)

5桁と短くて記号も含めた複雑なパスワードと、アルファベットと数字のみを使用した6桁パスワードのどちらが強いかを比較するため、下記2種類のパスワード付きZipファイルを用意しました。(あと、オマケで4桁のごく短いパスワード(D6#c)についても実験しています。) 使用する文字種のうち、記号については16種類のみ検索対象としました。

5桁記号ありのパスワードと、6桁記号なしのパスワードではどちらが強いのか?

パスワード付きZipファイルの解析には、PikaZip(Ver1.17)というフリーソフトを使用しました。最新版が2003年と古いソフトですがWindows10でも使用可能でした。Vectorなどから現在でもダウンロード可能です。

パスワード解析の方法は、総当たり方式で行っています。総当たり方式というのは、ダイヤル錠の数字をひとつひとつ試して解錠するように、全ての文字パターンを順番に試行し正解に当たるまで繰り返す方法です。

総当たり検索方法

 

実験結果

 まずは、オマケの4桁パスワードの解析について

4桁パスワード解析時間

結果は2秒でした。ほぼ一瞬です。パスワードにトライする回数に制限がなければ、コンビューターにとって4桁のパスワードはないのと同じです。

続いて、5桁で、大文字・小文字・数字・記号ありのパスワードについて

5桁パスワード解析時間

結果は、1分8秒でした。多少の時間はかかりますが、記号を含めたランダムな文字列であっても5桁程度のパスワードでは、セキュリティ的な意味はほとんどないことがわかります。

最後に、6桁のパスワードですが、アルファベットと数字のみで作られたものです。

6桁パスワード解析時間

結果は、31分23秒でした。記号を使わない前提であっても、5桁から1桁増やすだけでパスワード解析にかかる時間は大きく増加します。しかし、普通に市販されているPCを使って30分で解析できるとなると、6桁程度のパスワードではセキュリティ対策としてはほぼ無意味といえます。

パスワード解析時間に関する考察

実験結果は、あくまで一例であり、総当たり解析では全てのパターンを網羅する前に正解にあたればそこで終了となるため、パスワードの文字の並び方でも結果は変わってきます。(今回の例では、検索順番の遅い数字や記号から始まるパスワードであれば、解析時間は長くなります。)

しかし、情報漏えい対策としてファイルにパスワードをかけたとしても、6桁以下のパスワードでは特別な機材を必要とせず簡単に解析できてしまうことが分かりました。

今回の実験では、毎秒約1000万通りのパスワードを試行したという結果になりました。この数字はパソコンの性能や使用するソフトウェアによって変わります。下表は、パスワードの桁数と記号を使用するかどうかで、総当たり解析にかかる時間をまとめたものです。

パスワード総当たり検索に必要な時間
使用文字種 アルファベット大文字・小文字、数字、記号は16種類
時間は、各桁数の全網羅に必要な時間 (秒間1000万回の試行)

実際には全てのパターンを網羅する前に正解にたどり着くため、上の表の時間より短い時間で解析完了することを考えると、7桁以下のパスワードはセキュリティ対策としての意味はほとんどないことがわかります。

パスワードの桁数が同じ場合、記号を含めたパスワードを使用した方が解析により時間がかかりますが、6桁で約4倍、8桁で約6倍、10桁で約10倍の効果です。一方、桁数を増やした場合は、7桁から8桁にすることで、記号なしで62倍、記号ありで78倍と大きな効果が得られます。

ただし、桁数が大きくても辞書に登録されている文字列をパスワードに使用した場合は、辞書攻撃といわれる手段で一瞬のうちに解析されてしまうため、使用する文字列はランダムなものにする必要があります。

PPAPツール(メールの添付ファイルを自動でパスワード付きZipファイルに変換するツール)では、通常10桁以上で英数字・記号をランダムに配列しているため、パスワードの強度的には現時点では実用的だといえます。(ただし、PPAPそのものが有効かどうかは別の話です。)

共通パスワードの決め方

情報セキュリティ対策として、会社内、部署、取引先などと共通のパスワードを決めてファイルの暗号化を行っている場合は、以下のことに注意しましょう。

共通パスワードのルール
(1) パスワードは8桁以上にする。可能であれば10桁以上が望ましい。
(2) 英数字(アルファベット大文字・小文字と数字)を組み合わせたものにする。記号は使わなくても良い。(記号を使って覚えにくくなるよりは桁数を増やした方が良い。)
(3) ランダムな文字列にする。辞書に登録されている文字や日付など推測可能な文字列は使用しない。
(4) 同じパスワードを長期間使用しない。(退職や移動などで、メンバーが部外者になる場合があるため。)

ランダムな文字列はパスワード生成サイトなどを利用すると簡単に作成可能です。(「パスワード生成」で検索すると無料で使えるサイトがたくさん出てきます。)

ただし、完全にランダムな文字列を暗記するのは非常に大変ですので、内輪のメンバーにとっては覚えやすく外部の人からは推測されにくいパスワード作成方法についてひとつ紹介しておきます。

覚えやすいパスワードの作り方

関係者にとって覚えやすい文章などを利用してパスワードを作成する方法です。
元にする文章は、上司の口癖でも、グループ内だけで使用しているスローガンでもなんでもOKです。
ココでは、以下の文章をベースに作成してみます。

我が輩は猫である。夏目。

(1) 文章をローマ字に変換する。

Wa Ga Ha I Ha Ne Ko De A Ru . Na Tsu Me.

(2) ローマ字の最初の文字を取り出す。 (Wa であれば、W)

WGHIHNKDAR.NTM.

(3) ローマ字を大文字・小文字に分ける。例えば名詞は大文字で、動詞や助詞は小文字などにする。

WGHIhNKdar.NTM.

(4) 句読点や文節の切れ目に数字を入れる。(句読点に対応する数字を決める、または、関係者にとって象徴的な数字を使ったルールを適用する。)

3WGHIh5NKdar7NTM1

以上で、17桁のアルファベット大文字・小文字と数字のランダムに見えるパスワードが作成できました。
頭の中で、「3我が輩は5猫である7夏目1」と唱えながらパスワードを入力できると思います。

ファイルにパスワードを書ければセキュリティ対策は十分ということにはなりませんが、ご参考になれば幸いです。
冒頭で触れたPPAPの問題についても、また別の機会に考察してみたいと思います。