2016-06-26 17 views
4

Crypt :: OpenSSL :: RSAのドキュメントは、ランダム性がどのように達成されているかが漠然としているようです。例えば、それは一度RSAとPerl - ランダム性はどのように達成されていますか?

Crypt::OpenSSL::RSA->generate_key 

または多分にすべてのコールの前に

Crypt::OpenSSL::RSA->import_random_seed(); 

を呼び出すために必須import_random_seed呼び出しているにもGENERATE_KEYするために複数の後続の呼び出しで十分なのですか?

そして、何についてCrypt::OpenSSL::Random::random_seed($good_entropy)/dev/randomが必要な場合は不要だと言われていますが、Windowsの場合はどうなりますか?

私はそれを使った経験がある人から助言を受けています。

+0

あなたのコードがforkまたはスレッドを使用していて、ランダム生成がcsprngを使用する環境にある場合、import_random_seedはおそらく各サブプロセスまたはスレッドで呼び出されるべきです。さもなければ、キージェネレータによって使用されるcsprngは同じシードを共有することができます。 – DavidO

答えて

1

in one of the test filesにはCrypt :: OpenSSL :: RSAが付属しています。

/dev/randomのないプラットフォームでは、手動でシードする必要があります。 実際には、次のように悪臭を覚えるでしょうが、テスト目的のために、 ランダムであっても、古いもので種まきするには で十分です。 のCrypt :: OpenSSL :: Randomからのシードを少なくともエミュレートします。 OpenSSLランダムライブラリで使用されるプライベートなデータは明らかにperl XSを越えて広がっていないため、「実生活」で行う必要があります。モジュール。

Windowsデバイスでは、このようなものを使用してランダムなランダム性を追加する必要があります。

+0

私は以前このモジュールについて聞いたことがないことに注意してください。ただドキュメントを見てください。 – simbabque

+0

だから、基本的にはWindows上でrandom_seedをランダムに呼び出すことを提案している。明らかにそれは必要ではない* nixに。 import_random_seedに関してはまだ不明です。生成するたびに呼び出される必要がありますか? – Pilot

+0

@Pilot残念ながら私はそれに答えることはできません。 OpenSSLライブラリのドキュメントを見てみることをお勧めします。これはこのモジュールで使用されているもので、2014年に[Heartbleed](https://en.wikipedia.org/wiki/Heartbleed)のバグがあったものです。 – simbabque

関連する問題