「数字と英字をそれぞれ1回以上使う」はパスワードが弱くなる理由

パスワードの設定で「数字と英字をそれぞれ1回以上使うこと」という条件を求めているケースがあります。
数字と英字を混ぜるとパターンが増えるので見破られるケースが少なくなるように思います。
しかし実際は見破られるケースが多くなるそうです。 (さらに…)

聞き取りやすいアルファベットでパスワード

パスワードを電話で伝える場合があります。
先日、tとpがうまく伝わらず、苦労しました。
そこで聞き取りやすいアルファベットは何か考えてみました。 (さらに…)

Wordでパスワードなしで上書き保存するマクロ

以前、パスワードが設定されているExcelを開いた後、パスワードなしで上書き保存するマクロを紹介しましたが、今回はそのWord版です。
Excel2013で確認しました。 (さらに…)

Excelでパスワードなしで上書き保存するマクロ

パスワードが設定されているExcelファイルを開いた後、今後はパスワードを入力しなくても開くようにするには、名前を付けて保存を選択し、ツール - 全般オプション で読み取りパスワードを空欄にして保存します。

面倒なので、マクロを作りました。
読み取りパスワードと書き込みパスワードを空欄にして保存します。

Sub パスワードなしで上書き保存()
    With ActiveWorkbook
        .Password = ""
        .WritePassword = ""
        .Save
    End With
End Sub

Excelで既知のパスワードを外すマクロ

他人から定期的にパスワード付きのExcelファイルが送信されるようなケースはよくあると思います。
よく使うパスワードをあらかじめセットしておき、マクロを使って開く方法を考えます。 (さらに…)

シート保護のパスワードを探すマクロ

Excelのシートの保護を解除するためのパスワードを忘れてしまったときのために、マクロを使ってしらみつぶしに探します。 (さらに…)

複数ファイルパスワード操作(Word)

以前、Excelで複数のファイルに共通のパスワードをセットしたり解除したりするマクロを紹介しました。
You Look Too Cool » 複数ファイルパスワード操作
それのWord版を作ってみました。Word2007で確認しました。

Sub 複数ファイルパスワード操作()
    'フォルダ内の共通のパスワードがセットされた文書を連続して開き、解除して上書き保存。
    '逆にフォルダ内の文書を連続して開き、共通のパスワードをセットして上書き保存。
    Dim onoff As Long
    Dim mypw, pwopen, pwclose, mypath, myfn As String
    '操作を選択
    onoff = MsgBox("パスワード解除ならば「はい」、セットならば「いいえ」", vbYesNo)
    If onoff = vbCancel Then
        Exit Sub
    End If
    'パスワードをセット
    mypw = InputBox("パスワードを入力。", "パスワード")
    If onoff = vbYes Then
        pwopen = mypw
        pwclose = ""
    ElseIf onoff = vbNo Then
        pwopen = ""
        pwclose = mypw
    Else
        Exit Sub
    End If
    'フォルダの選択
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "フォルダを選択"
        .AllowMultiSelect = False
        If .Show = -1 Then
            mypath = .SelectedItems(1) & ""
        Else
            Exit Sub
        End If
    End With
    'ファイルの取得と実行
    myfn = Dir(mypath & "\*.doc*", vbNormal)
    Do Until myfn = ""
        '開く
        Documents.Open FileName:=mypath & myfn, PasswordDocument:=pwopen
        '文末に改行を挿入し削除(何らかの変更がないと上書き保存できない)
        Selection.EndKey Unit:=wdStory
        Selection.TypeParagraph
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.Delete Unit:=wdCharacter, Count:=1
        '上書き保存
        ActiveDocument.SaveAs FileName:=ActiveDocument.FullName, Password:=pwclose, WritePassword:=""
        ActiveWindow.Close
        myfn = Dir
    Loop
End Sub

途中に「文末に」というコメントを入れていますが、Wordの場合、文章に何らかの変更がないと上書きできないようなのです。それでやむを得ず文末に改行を挿入してそれを削除するという処理を入れています。

ファイルに直接、変更を加えるので、使うときはバックアップを取るなど、充分、注意してください。特にパスワードをセットする場合はパスワードを忘れないでください。

複数ファイルパスワード操作(Excel)

複数のExcelファイルに同じパスワードがセットされている場合に、それを一括して解除して保存するマクロです。
逆に一括してパスワードをセットすることもできます。

最初にダイアログでパターンを訊かれますので、解除ならば「はい」、セットならば「いいえ」を選択します。
次にダイアログでパスワードをセットします。
最後にファイルが保存されているフォルダを指定します。下位階層には対応していません。
「"\*.xls"」の部分を適宜、変更してください。
Excel2007で確認しました。

Sub 複数ファイルパスワード操作()
    Dim myfolder, myfn, myword, pwopen, pwclose
    Dim pattern
    '操作を選択
    pattern = MsgBox("パスワード解除ならば「はい」、セットならば「いいえ」", vbYesNo)
    If pattern = vbCancel Then
        Exit Sub
    End If
    'パスワードをセット
    myword = InputBox("パスワードを入力。")
    If pattern = vbYes Then
        pwopen = myword
        pwclose = ""
    ElseIf pattern = vbNo Then
        pwopen = ""
        pwclose = myword
    End If
    'フォルダを選択
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "操作したいファイルのあるフォルダを選択"
        .AllowMultiSelect = False
        If .Show = -1 Then
            myfolder = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    'ファイルを操作
    myfn = Dir(myfolder & "\*.xls", vbNormal)
    Do Until myfn = ""
        Call ファイル開閉(myfolder & "" & myfn, pwopen, pwclose)
        myfn = Dir
    Loop
End Sub
Function ファイル開閉(myfn, pwopen, pwclose)
    Workbooks.Open Filename:=myfn, Password:=pwopen
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=myfn, Password:=pwclose, WriteResPassword:=""
    Application.DisplayAlerts = True
    ActiveWorkbook.Close
End Function

定期的にパスワードを変える効果は意外に少ない

3か月毎にパスワードを変えるシステムをよく見かけます。
これに関して、次のような記事がありました。

続パスワードの定期変更は神話なのか - ockeghem(徳丸浩)の日記

私なりにまとめると次の通りです。

総当たりでパスワードを破る場合、文字列の全パターンを試行するのに1年かかるとする。
1年より短い、3か月毎にパスワードを変えれば破られにくい。これが定期的にパスワードを変える理屈。
しかし、これは「(パスワードを変えない場合)1年で破られる確率は100%」と言っているに過ぎない。365日目までに破られることは確実だが、1日目で破られることもある。
パスワードを3か月で変える場合「3か月で破られる確率は1/4」である。
逆に言えば「3か月で破られない確率は3/4」であり、1年間ではこれを4回連続で耐え抜くとすると「1年で破られない確率は81/256」である。
このとき「1年で破られる確率は175/256」であり、実に68%の確率で破られてしまう。

つまり定期的にパスワードを変える効果は意外に少ないということです。
単純に考えると数字と英字(大小文字)で62個。この組み合わせでパスワードを作る場合、1桁増やせば総当たりにかかる時間は62倍に増えます。
8桁の場合、記号10個を加え、使える文字を62個から72個に増やすと、総当たりにかかる時間は3.5倍に増えます。

3か月毎に変える意味があるとすれば「もし破られてしまったときに悪用される期間が最大で3か月だけ」ということです。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報