জিপিজিতে পর্যাপ্ত এন্ট্রপি নেই


86

যথেষ্ট এনট্রপি চেষ্টা করার জন্য আমি পটভূমিতে প্রচুর প্রক্রিয়া চালিয়েছি, তবে আমি এখনও ব্যর্থ fail

**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**

যে কীটি কাজ করে তা উত্পন্ন করার জন্য আমার একটি পদ্ধতি প্রয়োজন, কারণ আমি যা করার চেষ্টা করছি তা স্পষ্টতই ব্যর্থ হচ্ছে।

উত্তর:


112

আপনি কি আরএনজি দেখেছেন?

ফেডোরা / আরএইচ / সেন্টোসের ধরণ: sudo yum install rng-tools

ডিবে প্রকারে: sudo apt-get install rng-toolsসেট আপ করতে।

তারপরে sudo rngd -r /dev/urandomকীগুলি উত্পন্ন করার আগে চালান ।

তথ্যসূত্র: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux-38022


4
এছাড়াও আরও গুরুতর নোটের sudo apt-get install rng-toolsভিত্তিতে আপনি sudo yum install rng-utilsফেডোরার মতো পছন্দ মতো উবুন্টুতে থাকলে আপনি ব্যবহার করতে পারেন , যেহেতু rng-utilsউবুন্টুর জন্য কোনও প্যাকেজ নেই exists
জেসন সোয়েট

4
এই প্যাকেজটির নাম rng-toolsফেডোরা এবং ইএল 6 উভয়ই দেওয়া হয়েছে, সুতরাং আমি লিঙ্কিত নিবন্ধে টাইপো সন্দেহ করি। বিটিডব্লিউ, এখানে উত্তরের প্রয়োজনীয় অংশগুলি সরবরাহ করা ভাল, এবং ভবিষ্যতে লিঙ্কটি মারা যাওয়ার ক্ষেত্রে রেফারেন্সের জন্য লিঙ্কটি দেওয়া ভাল is
মাইকেল হ্যাম্পটন

11
ইউরেনডমে কোনও "নিম্ন-মানের এনট্রপি" বা "জাল এনট্রপি" নেই। ইউরানডম একই কোডটিকে / dev / এলোমেলো হিসাবে কল করে। সিএসপিআরএনজিতে অতিরিক্ত এলোমেলোতা খাওয়ানোর দরকার নেই (বুটটাইম ব্যতীত এবং সেখানে আপনার বিতরণটি এটির যত্ন নেওয়া উচিত)। এটি একটি পৌরাণিক কাহিনী এবং প্রচার করা উচিত নয়। উদাহরণস্বরূপ sockpuppet.org/blog/2014/02/25/safely-generate-random-n নাম্বার বা এই ভিডিওটি দেখুন: মিডিয়া.সি.সি.ডি / ভি / 32 সি 3-7441
সেবাস্তিয়ান


2
সর্বাধিক ভোটপ্রাপ্ত মন্তব্য বাজে কথা; দুর্ভাগ্যক্রমে আমি এসও এ অনেক দেখতে। সতর্কতা (পুরোপুরি ভুল হয়ে গেলেও) প্রচুর ভোট পাবে এবং সেগুলি সংশোধন করার কোনও উপায় নেই (কোনও মন্তব্য ডাউনভোট বিকল্প নেই) এর অর্থ আমরা পৌরাণিক কাহিনী থেকে মুক্তি পেতে পারি না।
স্টিজন ডি উইট

28

আমি এর মাধ্যমে কী তৈরি করতে সক্ষম হয়েছি

apt-get install rng-tools

অন্য এসএসএইচ উইন্ডোতে খোলা

 gpg --gen-key

আপনার প্রথম এসএসএইচ সেশনে ফিরে যান এবং চালান

sudo rngd -r /dev/urandom

জিপিজি আপনার কী উত্পন্ন না করা পর্যন্ত এটি চালানো যাক!


9
আমি অবশ্যই /dev/urandomকোনও গুরুত্বের কী উত্পন্ন করার জন্য সর্বদা ব্যবহারের বিরুদ্ধে সুপারিশ করব ।
অ্যান্ড্রু বারবার

12
@ অ্যান্ড্রুবার্বার ননসেন্স। এটি প্রস্তাবিত পদ্ধতি।
ডেভিড শোয়ার্টজ

3
@ অ্যান্ড্রুবার্বার এটি স্পষ্টভাবে সেই উদ্দেশ্যে তৈরি করা হয়েছে। মূলত, /dev/randomএকটি নকশা ভুল। এটি কেবল সর্বদা (সর্বদা) অনুরোধে (প্রথম বুটে) অবরুদ্ধ হওয়া উচিত যখন কোনও কিছুই এখনও সংগ্রহ করা হয়নি। এটি অন্যান্য ওএসের মতো করে। পরিবর্তে আমরা এখন দুটি পুল পেয়েছি। শুধু কখনও /dev/randomএটি ব্যবহার করার কোনও সুবিধা নেই।
স্টিজন ডি উইট

@ অ্যান্ড্রুবার্বার এর পরিবর্তে আপনি কি সুপারিশ করবেন?
কডেনিনজা

13

বর্তমানে উপলব্ধ এনট্রপির বাইটের পরিমাণ পরীক্ষা করতে, ব্যবহার করুন

cat /proc/sys/kernel/random/entropy_avail

এন্ট্রপি বালতি 4096 বাইট বড়, যা খুব দ্রুত হ্রাস পেতে পারে।

এই ছোট 'রিডস্পিড' সরঞ্জামটি ব্যবহার করে ( http://1wt.eu/tools/readspeed/ ), আপনি এনট্রপি বালতিটি বিভিন্ন পদ্ধতিতে কত দ্রুত পূর্ণ হয় তা পরিমাপ করতে পারবেন।

উদাহরণস্বরূপ, আরম্ভ করুন:

$ ./readspeed < /dev/random

এবং আপনার মাউসকে চারপাশে সরান। আপনি দেখতে পাবেন যে 'রিডস্পিড' এন্ট্রপি বালতিটি পূরণ হওয়ার সাথে সাথে খালি করে দেয় এবং আপনি যখন মাউসটি সরান, এটি কিছুটা পূরণ করে।

বিভিন্ন পদ্ধতির চেষ্টা করে দেখে মনে হচ্ছে যে বালতিটি পুনরায় পূরণ করার জন্য কীবোর্ড ইনপুট এবং মাউস চলাচল সবচেয়ে কার্যকর। নেটওয়ার্ক ট্রান্সফার এবং হার্ড ড্রাইভের অনুলিপিগুলিতে খুব বেশি প্রভাব নেই।

শেষ অবধি, এন্ট্রপি প্রজন্মের ডিভাইসগুলি উপলভ্য রয়েছে যেমন: এটি: http://www.entropykey.co.uk/


4
ইউরেনডમમાં কোনও "নিম্ন-মানের এনট্রপি" নেই। ইউরানডম একই কোডটিকে / dev / এলোমেলো হিসাবে কল করে। এটি একটি পৌরাণিক কাহিনী এবং প্রচার করা উচিত নয়। উদাহরণস্বরূপ sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers বা এই ভিডিওটি দেখুন: মিডিয়া.সি.সি.ইড
সেবাস্তিয়ান

এই উত্তরটি 5 বছরের পুরনো। আমরা ভেবেছিলাম তখন ইউরেনডম এলোমেলো মতো নিরাপদ ছিল না, তবে পরিস্থিতি বদলেছে এবং ইউরেনডামকে নিরাপদ বলে মনে করা হয়।
জুলিয়েন ভেহেন্ট

1
ঘটনাটি প্রথম থেকেই নিরাপদ ছিল। সতর্কতাগুলি 7 বছর আগেও ভুল ছিল।
স্টিজন ডি উইট

8

আরএনজি-সরঞ্জামগুলির জন্য +1

আমি যেমন আছি তেমন অবস্থায় আপনি আটকে রয়েছেন - হেডলেস সার্ভারে কার্যত কোনও ইনপুট হার্ডওয়্যার (সাউন্ড কার্ড, কীবোর্ড, মাউস) সংযুক্ত নেই এমন নতুন সফ্টওয়্যার (আরএনজি-সরঞ্জাম) ইনস্টল করার অনুমতি নেই। এন্ট্রপিতে যোগ করতে আপনি এই সাধারণ কোডটি অন্য টার্মিনাল থেকে একই সার্ভারে সংযুক্ত হয়ে চালাতে পারেন run আপনি এটি শুরু করার আগে বা পরে চালানো শুরু করে কিনা তা বিবেচ্য নয়gpg --gen-key

$ nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
  let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
  echo "`date` COUNTER $COUNT"
done

প্রথম লাইনটি নিম্ন অগ্রাধিকার সহ একটি নতুন ব্যাশ শেল শুরু করা (অনেক ব্যবহারকারীর দ্বারা ভাগ করা একটি সার্ভারে আমার সুন্দর হওয়া দরকার)। লুপটি অসীম না হওয়া পর্যন্ত কীটি তৈরি হওয়ার পরে এটি ভাঙ্গতে মনে রাখবেন। এটি যা করছে তা নেটওয়ার্ক ট্র্যাফিককে এন্ট্রপি বাড়িয়ে তুলছে। এটি জিপিজির মাধ্যমে অন্যদিকে কীভাবে ভরাট হয়ে যায় এবং খালি হয়ে যায় তা দেখানোর জন্য এটি এন্ট্রপি_ওয়াইল কাউন্টারটি পর্যবেক্ষণ করে। আমার ক্ষেত্রে, কাউন্টারটি দ্রুত up৪-তে পূর্ণ হয়ে যায় এবং 0-এ ফিরে আসে (অনুমান করুন জিপিজি 64৪ এর মধ্যে রয়েছে) icks আমি সার্ভারে 3 ঘন্টা ধরে 4096 বিট কী প্রজন্মের জন্য অপেক্ষা করছিলাম। এই স্ক্রিপ্টটি চালানো শুরু করার পরে, এটি 5 মিনিটের নীচে শেষ হয়েছে।


আমারও দূরবর্তী সার্ভারে রুট অ্যাক্সেস ছিল না এবং এটি কিছু এনট্রপি তৈরিতে কাজ করেছিল। আমি মনে করি শর্তটি পরিবর্তন করা উচিত [ $COUNT -lt 0 ]। যেহেতু সত্যিই কম এনট্রপি সহ এমন একটি সিস্টেমে এটি কখনও কখনও 0 পৌঁছে যায় এবং বন্ধ হয়ে যায়। জিপিজি আসলেই ক্ষুধার্ত এনট্রপি।
অজয় ব্রহ্মক্ষত্রিয়

ধন্যবাদ, এয়ারগ্যাপেড বাক্সে কিছু এনট্রফি প্রজন্ম তৈরি করার জন্য এটি আমার পক্ষে যথেষ্ট হবে। ভবিষ্যদ্বাণীযোগ্য যেহেতু আমি তারিখটি ব্যবহার করব না
গ্রেপসডক

7

আমি 4030 জনের সাথে 4096 কী উত্পন্ন করার জন্য আমার হেডলেস উবুন্টু 14.04 সার্ভারে এন্ট্রপি তৈরি করতে বাধ্য এবং দৃ bound় প্রতিজ্ঞ ছিল gpg --gen-key

হ্যাজেড নামক এনট্রপি তৈরির জন্য একটি প্যাকেজ রয়েছে। ইনস্টলের উদাহরণ:

sudo apt-get install haveged

sudo apt-get install rng-toolsএটি ছিল যেহেতু এটি নিম্নলিখিত পরীক্ষার একটি নির্ভরতা।

এনট্রপি হ্যাজেড দ্বারা উত্পাদিত হয়েছে কিনা তা পরীক্ষার উদাহরণ:

cat /dev/random | rngtest -c 1000

যে কোনও এলোমেলো সংখ্যার জেনারেটরে খুব অল্প পরিমাণে ব্যর্থতা গ্রহণযোগ্য, তবে আপনি খুব সহজেই 998-1000 সাফল্য দেখার আশা করতে পারেন যখন overedেকে দেওয়া ব্যবহার করা হয়।

আমি এখানে একটি টিউটোরিয়ালে এটি সম্পর্কে জানতে পেরেছি:

https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

দৌড়ানোর পরে আমার কাছে এখন চাবি আছে gpg --gen-key


0

pacman-key --initখিলানের মধ্যে দৌড়ানোর সময় আমি এই ইস্যুতে ছুটে এসেছি । এখানে অন্যান্য সমাধানগুলি আমার পক্ষে ভালভাবে কাজ করে নি, তবে আমি দেখতে পেয়েছি যে কেবল আমার রাউটারটি বন্যার পিং দিয়ে সুন্দরভাবে কাজ করেছে:ping -f ip.of.my.router


0

ঠিক আছে, এখানে উপস্থাপিত সমাধানগুলির তুলনায় এটি আমি যা ভাবি তার থেকে সহজ:

ls -R /

উপরের কমান্ডের দ্বারা সরবরাহ করা এলোমেলো বাইটগুলি একটি আরএসএ / 4096 কী জুড়ি উত্পন্ন করার জন্য প্রয়োজনীয় এনট্রপি সরবরাহ করার জন্য পর্যাপ্ত ছিল।

থেকে নেওয়া: https://www.thingy-ma-jig.co.uk/blog/22-01-2010/generate-entropy-gnupg


0

havegedসর্বোত্তম উপায়, তবে আপনি যদি কিছু ইনস্টল করতে না পারেন তবে আপনি ম্যানুয়ালি এন্ট্রপি তৈরি করতে পারেন। এই পদ্ধতিটি gpg --gen-kenআমার মেশিনে 1-2 মিনিটে সম্পূর্ণ হওয়ার মঞ্জুরি দিয়েছে (সাথে 10 এর তুলনায় haveged)। সুতরাং এটি প্রায় 10x ধীর।

gpg --gen-keyচলমান অবস্থায় এটি অন্য টার্মিনালে চালান :

while true; do
    # print entropy available
    cat /proc/sys/kernel/random/entropy_avail
    # write a 1 MB stream of zeros to /tmp/foo
    # "conv=fdatasync" flushes the disk cache
    dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync
done

এক রৈখিক:

while true; do cat /proc/sys/kernel/random/entropy_avail; dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync; done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.