6

パスワードのハッシュ化を伴うプログラムを Python で作成しています。これを使用してパスワードを取得すると仮定します。

import getpass
password = getpass.getpass("Password: ")

ハッシュ化されていないパスワードのすべての痕跡を RAM から安全に削除する方法はありますか?

4

1 に答える 1

4

前に説明したように、カスタム実装があったとしても、Python でこれを行うための絶対確実な方法はありません (ただし、これは方法である可能性があります)。

あなたのアプリケーションが何をするべきかはわかりませんが、ハッシュ後であっても、データはデータベースよりも RAM の方が安全であることは間違いありません。

記憶のしくみはとても複雑です。すべてのプロセスには、連続している必要のない独自の仮想メモリ空​​間があります。メモリの完全なブロックがディスクにスワップされ、別のメモリ ブロックに戻されます。メモリ全体は単なる一連のバイトであり、整数の配列、文字列、猫、または単純なランダム データの違いを見分けることはほとんど不可能です。

一部のデータ ブロックが部分的に再割り当てされ、大量の部分データが作成されます。1、2、8、さらには 16Gb のランダム データが必要になると想像してみてください。潜在的なハッカーは、これらすべての 0 と 1 でパスワードを見つけなければなりません。

プロセスの実行中に誰かがあなたのパスワードをハッキングしたい場合、ルートとしてマシンにライブ アクセスできる必要があります。私が先に述べた理由により、彼は後でスワップを見るだけではそれを行うことができません.

しかし、誰かがこの種のアクセス権を持っている場合、パスワードを取得する方法は他にもたくさんあります. たとえば、単にプログラムをデバッグするか、ソースを変更してパスワードを出力させるだけです:)

ほとんどのハッカーは、そのような面倒なことを気にしません。ハッキングとは主にソーシャル エンジニアリングに関するもので、基本的にはユーザーにハッカーに喜んでパスワードを提供させます。フィッシングはそのような方法の 1 つです。

于 2013-10-03T14:29:59.473 に答える