2007年08月18日

◆ パスワード作成

 複雑なパスワードを作成する方法を示す。
 (ネット接続程度ではなくて、ネットバンクなどの超重要な機密保持のあるパスワードの作成のため。) ──

 朝日新聞・週末版 be に、この目的のための方法が示してあった。ネットにもある。
http://www.be.asahi.com/top/images/TKY200708140285.jpg
( ← http://www.be.asahi.com/top/b02.html

 この方法は、複雑なパスワードを作成することができるが、思い出すのが簡単ではない。そもそも「3字めずつ」ということからして、まったく意味のない無駄な操作であり、いたずらに(無意味に)複雑化しているだけだ。

 そこで、複雑さを維持しながら、簡単に思い出せる方法を示す。

 ── 

 基本原則は、「何らかの和文を覚える」ということだ。記事の例では、
  「おくやまにもみじふみわけなくしかのこえきくときぞあきはかなしき」

 という例があった。このような例文を適当に覚えればよい。
 その上で、パスワードを作成するが、その際、次のことに注意する。

 (1) 冒頭の数文字は使わない。(たとえば、「おくやまに」は使わずに、「もみじふみわけ」以降を使う。)
 (2) 現代のはやりの流行歌は使わない。超有名な歌も使わない。(たとえば、絢香や Zard の流行歌は駄目。マイナーな歌手にする。また、「うさぎおいしかのやま」というような超有名なのも駄目)
 (3) 日常的には使われない独自の言葉を、自分で考案するのが最適だ。(たとえば、「でじたるあんごうつかい」とか、「まひるしんぶんしゃ」とか、「ちょうぜったいウィルス」とか、「ケータイこいびと」とか。……このような言葉は、グーグルで検索しても見つからないことが多い。)

 こうして、とにかく例文を決める。

 ──

 このあといよいよ、肝心のパスワード作成作業に入る。
 次の方法による。

 (1) 原則として記号は使わない。ただし、安全性を高めるために記号を使う場合には特殊な記号を決めて一つだけ使う。それを、例文のなかにもぐりこませる。
  例。
「もみじふみわけ*なくしかのこえ」
「もみじふみわけ#なくしかのこえ」


 記号に変換するときは、次の対応表による。

  あかさたな はまやらわ
  母KSTN HMYRW

  小がざだっ ばぱ拗んー
  12345 67890


 注記しておくと、次の通り。
  ・ 母 …… 母音。「あいうえお」は、「AIUEO」になる。
  ・ 小 …… 小文字母音。ぁ、ぃ、ぅ、ぇ、ぉ のこと。
  ・ 拗 …… 拗音。ゃ、ゅ、ょ のこと。
  ・ ー …… 伸ばす音。カタカナ専用。

 ──

 以上の変換法の実例を示す。

   もみじふみわけなくしかのこえ
   MM3HMWKNKSKNKE


 このように、通常の文句だと、数字が少なくなる。それだとつまらない。そこで、数字が増えるように、濁音・半濁音の多い言葉を使うといい。

   どじなばばあのなげきごえ
   43N66ANN2K2E


 しかし、こういうふうに数字が多すぎるのも、ちょっと面倒だ。そこで、数字が二つ〜四つぐらいのものが実用的だろう。

   でじたるあんごうつかい
   43TRA92UTKI


 さらに、拗音(ゃ、ゅ、ょ)や、「っ」」、「ー」、「んを混ぜると、複雑化する。

   ちょうぜったいうぃるす
   T8UZ5TIU1RS


 ま、あまり複雑すぎると覚えにくいから、最後のように、拗音(ゃ、ゅ、ょ)や、小文字母音や、「っ」、「ん」、「、」を混ぜるというのは、特にやらなくてもいい。ここは、暗号の規則化の問題だから、特にこれらを使う必要はない。
 
 私としては、「濁音で数字を使う」というだけのタイプがお勧めだ。上記の例で言えば、

   でじたるあんごうつかい
   43TRA92UTKI


 というような例だ。このくらいをやれば、十分な複雑さと、利用上の簡便さとの、双方が両立する。

 ──

 なお、以上の規則化の方法は、自分なりにアレンジしてもいい。そうすると、いっそう安全性が高まる。
 例。「ん」を「9」でなく「0」にする。
 例。「ヴァ」や「ウィ」を「わ」行に組み込む。
 例。濁音をアルファベットにして、清音を数字にする。
  たとえば「あかさたな」を「AKSTN」でなく「12345」と変換する。

 ──

 なお、覚えるときには、すぐにわかるような簡略な言葉をつけるといい。連想法。

 例。
  「でじたるあんごうつかい」
 には
  「digi pass wizard」
 とでも記しておく。この英文を見れば、すぐに「デジタル暗号使い」という言葉を思い出せるはずだ。
 他の例では、
  「かわいいあやかちゃん」
 には
  「cute mikaduki ch」
 とでも記しておく。

 一般に、連想法は、暗号化には最強である。なにしろ、意味でのみ結びついて、表現的には結びつかないからだ。難点は、復号(暗号解除)のしにくさだが、個人的用途の特殊例なら、何とかなるはずだ。
    


 [ 付記 ]

 こういうふうに「頭のなかで暗号変換する」というのは、面倒臭い、と感じる人が多いだろう。
 当り前だ。このような作業は、本来、人間がやるべきことではなくて、機械がやるべきことだからだ。
 そこで、このような作業を自動的にやってくれるソフトを使うのが、最適である。たとえば、ネット上の画面で、次のように表示される。

 (1) 暗号化の方法を次のうちから選んでください。

    □ タイプ1
    □ タイプ2
    □ タイプ3
    □ タイプ4

 (2) パスワードを、ひらがなまたはカタカナで入力してください。
    [                ]

 ──

 以上のようにしたあとで、たとえば、「でじたるあんごうつかい」というようなパスワードを入力する。すると、それが、所定の方法(タイプ1など)に従って、パスワードに変換される。
 ユーザーは、「でじたるあんごうつかい」という言葉を覚えているだけで済み、そのあとの変換作業はやらないですむ。
( ※ なお、(1) の箇所は省略可能である。タイプはただ一つに限定してもいい。それでも特に困ることはない。)

 なお、このようにしたところで、脆弱性が高まるわけではない。どちらかと言えば、脆弱性は低まる。
 そもそも、「パスワードは見てもわからない無意味な言葉にする必要がある」という発想が、根源的に間違っている。大事なのは、バレるかバレないかであって、いったんバレてしまったなら、わかりやすいかわかりにくいかは関係ない。
 どうせバレないのであれば、わかりやすい言葉にしたって、まったく問題はない。また、バレてしまったのであれば、わかりにくい言葉にしたって、まったく意味がない。
 たとえば、「4TS8CY」というような無機的な文字列なら、バレても大丈夫だ、というふうに思っているとしたら、その人はよほど頭がおめでたいとしか思えない。

 ──

 というわけで、「パスワードを覚えるのが簡単なソフト」のついているサイトにアクセスするのが最も便利です。今のところは、そういうサイトはないようだが、将来的には、どこでもそういうふうになるだろう。
 つまり、「4TS8CY」というような無機的な文字列を求められるかわりに、「でじたるあんごうつかい」というような人間的な文字列を求められるようになるだろう。

 [ 注意 ]
 これは、日本語では成立するが、英語では成立しない。
 「4TS8CY」のかわりに「Wizard」と入力する、というようなことは、決してあり得ない。(いちいち説明はしない。当り前なので。)



 [ 付記 ] (辞書攻撃について)

 専門家向けに、辞書攻撃についての解説を付けておく。

 「辞書攻撃」というのは、あらかじめ用意しておいた単語辞書に従って、網羅的にパスワードを当てはめる方式だ。この場合、単語辞書(数万)を使うだけで済むので、全部の文字列を網羅的に試行錯誤する必要がなくなり、パスワードの突破が容易になる。
 たとえば、英文なら、英字26字と数字10字の合計が36字だから、8文字だとして、36の8乗の場合が想定される。それに対して、辞書攻撃をしかけると、英語の単語数の数万を用いるだけで、すべてのケースが網羅的に試行錯誤される。
 だから、「Wizard」のようなパスワードは、辞書攻撃には弱い。

 日本語ではどうか? 実は、これは、日本語にも当てはまる。たとえば、「まいくろそふと」という用語ならば、辞書にまさしく掲載されているので、あっけなく突破される。
 これに対して、「でじたるあんごう」ならば、単語が二つなので、突破はかなり困難になる。数万回の攻撃では済まず、「数万 × 数万」となる。さらに、単語が三つになると、「数万 × 数万 × 数万」となり、辞書攻撃での突破はまず困難だろう。……この意味で、日本語では、「単語三つ」以上のパスワードならば、普通の単語を用いたパスワードでもおおむね大丈夫である。
(さらに、助詞や活用語尾をつけると、なおいい。例。「でじたるなあんごうだ」)

 ただし、「絶対安全」を期する場合には、これでも十分とは言えない。たとえば国家の核機密のパスワードだ。スパコンを使って突破しようとするスパイが出てくるかもしれない。
 こういう場合を含めて、辞書攻撃を避けるには、どうするべきか? パスワードをもっと複雑にする(もっと長くする)ことが必要か? いや、むしろ、システムそのものを「辞書攻撃を受け付けない」というふうにするのがベストだ。

 具体的に言えば、次のいずれか。
 「試行錯誤は、5回までに制限する」
 「次のパスワードを受け付けるまで、3秒以上かかる」
 前者は安全そうだが、この設定を突破するクラッカーが出てくるかもしれないので、安全度は高くない。
 後者は、サーバーを経由して、物理的にシステムを隔てる方式だ。現在、サーバーによる接続は、遅くて遅くて困っている、という人が多いだろう。それを逆用する。暗証の確認に、いちいちサーバーを経由することで、暗証確認に手間取るようにする。利用者は、「3秒もかかりやがって。のろい確認だな」と文句を言うかもしれないが、その分、「1分間に20回まで」という制限が自動的にかかるので、辞書攻撃は不可能となる。攻撃者は、グズグズしている間に、逆探知されて、逮捕されかねない。(逆探知の際には、ウィルスを送信して、攻撃者の身元を探り出してしまえばいい。)

 以上をまとめると、次のようになる。
 「英文の場合、単語をパスワードに使うのは不可」
 「日本語の場合、単語をパスワードに使うのは可。ただし、3語以上(11字以上)にすること」
 「辞書攻撃を避けるシステム設定が必要」

 以上のことをやっておけば、「3文字ごとに文字を拾う」というようなことは必要ない。面倒なので、やらなくてもよい。

 なお、辞書攻撃への耐性をつけるための案として、次のことがある。

 (1)「現代語よりは古文を使う。しかも、旧かな・活用語尾付き」
 例。「しほらしききみに おもひをこめやらむ」

 (2)「珍しい固有名詞を使う。さらに助詞も」
 例。「サモトラケのニケよりニッポリのミケ」
 例。「こでんまちょうのくらはしビルでね」
 ( ※ 単語はいずれも、5万語レベルの辞書にはない単語。)




 【 関連項目 】
 本項の続編がある。
  → パスワード作成 2
posted by 管理人 at 15:58 | Comment(0) | コンピュータ_01 | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

  ※ コメントが掲載されるまで、時間がかかることがあります。

過去ログ