複数 - python グラフタイトル 位置




Pythonで重要なデータとしてマークする (3)

私は短い時間の間、ユーザーのパスワードをメモリに保存する必要があります。 どのようにしてこのような情報を誤ってコアダンプやトレースバックに公開することはできませんか? 値を "機密"としてマークする方法はあるので、デバッガでどこにも保存されません。


... これに対する唯一の解決策は、変更可能なデータ構造を使用することです。 つまり、要素を動的に置き換えることができるデータ構造のみを使用する必要があります。 たとえば、Pythonでは、リストを使用して文字配列を格納できます。 ただし、 リストから要素を追加または削除するたびに、実装の詳細に応じて、 リストの背後にリスト全体がコピーされることがあります 。 安全のために、データ構造体のサイズを動的に変更する必要がある場合は、新しい構造体を作成し、データをコピーしてから古い構造体に書き込む必要があります 。 例えば:

def paranoid_add_character_to_list(ch, l):
  """Copy l, adding a new character, ch.  Erase l.  Return the result."""
  new_list = []
  for i in range(len(l)):
    new_list.append(0)
  new_list.append(ch)
  for i in range(len(l)):
    new_list[i] = l[i]
    l[i] = 0
  return new_list

出典: http://www.ibm.com/developerworks/library/s-data.html : http://www.ibm.com/developerworks/library/s-data.html

  • 著者:John Viega([email protected])は、Building Secure Software(Addison-Wesley、2001)とJava Enterprise Architecture(O'Reilly and Associates、2001)の共同執筆者です。 Johnは、主にソフトウェアセキュリティの分野で50以上の技術刊行物を執筆しています。 彼はまた、CおよびC ++コードのセキュリティ脆弱性を発見するためのツールであるMailman(GNUメーリングリストマネージャー)とITS4を書いています。

「センシティブ」としてマークすることはできませんが、メモリ内のデータを暗号化し、使用する必要があるときに復号化することができます。


  • 別のワンタイムパッド付きXOR
  • パスワード自体ではなく、常に塩漬けされたハッシュを保存する

または、ダンプについて非常に妄想的な場合は、他の場所、たとえば異なるスレッド、レジストリ、サーバーなどに独自のランダムキーを格納します。







coredump