バッファ交換を防ぐ方法

バッファ交換を防ぐ方法

この質問はUnixとLinuxに固有のものです。しかし、これはプログラミングとセキュリティに関するものです。

私のプログラムは、いくつかの方法(パスワードファイルの復号化、プロキシ要求など)のいずれかで明示的なパスワードまたは復号化キーを取得し、スワップスペースを使用した後にメモリから削除される前にスワップスペースに書き込めないことを確認したいと思います。 。私はこれが交換不可能なアドレス空間を得ることを意味すると思います。しかし、これには通常root権限が必要であり、私のプログラムはrootではなくユーザーとして実行する必要があります。 Unixで移植可能ですか? Linuxに希望がありますか?

スワップスペースなしでシステムを構成することはオプションではありません。プログラムユーザーにはそのような権限がない可能性があるため、システムをより安全にすることができますが、すべてのシステムでこれを行うことはできません。

私はこれを行うことができます部分Cからしかし、これをPython3でも実装することをお勧めします。

できますか?ルートではないプロセスが一部交換されていないページを取得します。安全のため?

このプロセスが中断されるのを防ぎますか? 取引所に明確なパスワードを書くよりも出る方が良いです。

ベストアンサー1

Linuxでmlockを使用するhttp://linux.die.net/man/2/mlock

mlock() および mlockall() は、それぞれ呼び出しプロセスの仮想アドレス空間の一部または全部を RAM にロックするため、このメモリがスワップ領域にページングされるのを防ぎます。

マニュアルページに詳細があります。

おすすめ記事