জিপিজিতে ইতিমধ্যে এনক্রিপ্ট করা ফাইলটিতে কোনও প্রাপককে যুক্ত করা কি সম্ভব?


12

ধরে নিচ্ছি আমি জিপিজি ব্যবহার করে একটি (সম্ভবত বড়) ফাইল এনক্রিপ্ট করেছি; যেমন

gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt

প্রথমে ফাইলটি ডিক্রিপ্ট না করে, অন্য একটি এনক্রিপশন অনুসরণ না করে অন্য প্রাপককে যুক্ত করা কি সম্ভব?

gnupg 

আপনি "কিছু নাম" এর সর্বজনীন কী দিয়ে ফাইলটি এনক্রিপ্ট করেছেন। এবং এটি অন্য প্রাপকের জন্য কী ব্যবহার করবে?
অট--

6
@ অট: এটি কীভাবে কাজ করে তা পুরোপুরি নয় (এএফআইএইকি)। পিজিপি কোনও প্রাপক পাবলিক কী দিয়ে নয়, একটি প্রতিসম কী দিয়ে ফাইলটি এনক্রিপ্ট করে। তারপরে এটি প্রতিটি প্রাপকের পাবলিক কী ব্যবহার করে বিচ্ছিন্নভাবে সেই প্রতিসম-কীটির বেশ কয়েকটি অনুলিপি এনক্রিপ্ট করে।
রেডগ্রিটিব্রিক

@ রেডগ্রিটি ব্রিক আমি পিজিপি সম্পর্কে জানিনা, তবে জিপিজি এটির --symmetricজন্য ব্যবহার করে। --recipientএটির সাথে প্রাপকের পাবলিক কী ব্যবহার করা হয়। 1 টিরও বেশি প্রাপক থাকতে পারে তবে এটি অবশ্যই একটি কমান্ডে করা উচিত, 2 পৃথক কমান্ডে নয়।
অট--

3
@ott: আমি পড়েছি যে " ফর্মের কমান্ডের মাধ্যমে বহু সংখ্যক প্রাপককে একসাথে কোনও ফাইল এনক্রিপ্ট করা সম্ভবgpg -e -r <name1> -r <name2> ... <file> " যদিও আমি নিজে এটি চেষ্টা করি নি। এটি বহু বছর আগে ক্রিপ্টো সম্পর্কে যা শিখেছিলাম তার সাথে এটি খাপ খায় যা হ'ল বার্তাটির পাঠ্যটি এনক্রিপ্ট করার জন্য দ্রুত প্রতিসম আলগরিদম ব্যবহার করা প্রায় সবসময়ই বেশি দক্ষ। ধীর অসম্পূর্ণ এনক্রিপশন ব্যবহার করে কেবল বার্তা কীটি এনক্রিপ্ট করা হয়।
রেডগ্রিটিব্রিক

উত্তর:


8

সংক্ষিপ্ত উত্তর: না

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

ধরে নিই যে আপনি একজন প্রাপক, এটি প্রযুক্তিগতভাবে সম্ভব। ফাইলটি আসলে একটি সেশন কী দিয়ে এনক্রিপ্ট করা হয় এবং সেশন কীটি আপনার সার্বজনীন কী দিয়ে এনক্রিপ্ট করা হয়, সুতরাং আপনি তত্ত্বীয়ভাবে সেশন কীটি ডিক্রিপ্ট করে অন্য ব্যক্তির কীতে পুনরায় এনক্রিপ্ট করতে পারেন, এবং তারপরে একটি ফাইলের মধ্যে সবকিছু একসাথে প্যাকেজ করুন যেমন আপনি মূলত দস্তাবেজটি উভয়কেই এনক্রিপ্ট করেছে।

তবে, জিপিজির এই ক্ষমতা নেই । জিপিজির সাথে আপনি যে সবচেয়ে কাছেরটি পেতে পারেন তা হ'ল

  1. --show-session-keyসেশন কীটি পেতে বিকল্পটি ব্যবহার করুন (যা ফাইলটি ডিক্রিপ্ট করে বলে মনে হয়, এই ক্ষেত্রে বিন্দুটি অনুপস্থিত)
  2. অন্য কারও পাবলিক কীতে সেই সেশন কীটি এনক্রিপ্ট করুন (আসলে এটি একটি নতুন সেশন কী তৈরি করে এবং আসল কীটি মূল সেশন কীটি এনক্রিপ্ট করার জন্য ব্যবহার করে)
  3. উভয় ফাইল প্রেরণ করুন।
  4. প্রাপক সেশন কী --override-session-keyডিক্রিপ্ট করতে এবং মূল বার্তাটি ডিক্রিপ্ট করতে ব্যবহার করতে পারে।

3

1) এই পরিস্থিতিতে কেন কোনও ফাইল নিজের কাছে এনক্রিপ্ট করা (সেইসাথে উদ্দেশ্যপ্রাপ্ত প্রাপকগণ) সর্বদা একটি ভাল ধারণা। রেডগ্রিটিব্রাইক জিপিজি এবং পিজিপি কীভাবে কাজ করে তা বর্ণনা করার উপরে উপরে সঠিক, যা উপরের নাথংয়ের উত্তরে প্রবাহিত হয়।

২) তবে, আপনার কাছে যদি আসল ফাইল থাকে তবে নতুন প্রাপকের কাছে কেবল নতুন এনক্রিপ্ট করা ফাইল তৈরি করা আপনার পক্ষে সেরা।

ধরে নিচ্ছি নাথংয়ের পরামর্শ থেকে আপনি সেশন কী পথে যেতে চান না, যদি আপনি প্রথমে নিজের ফাইলটি (যেমন # 1 এর উপরে) এনক্রিপ্ট করেন তবে এটি ডিক্রিপ্ট করুন এবং তারপরে উপরের পদক্ষেপ # 2 অনুসরণ করুন।

যদি আপনার কাছে না আসল থাকে বা এটিকে নিজের কাছে এনক্রিপ্ট করা না থাকে তবে আপনি তথ্যটি ফিরে পেতে পারবেন না এবং প্রথম প্রাপক আপনাকে অনুলিপি না পাঠিয়ে অন্য কারও কাছে এটি এনক্রিপ্ট করতে পারবেন না cannot


1
আসলে, এটি সবসময় একটি ভাল ধারণা নয়। পিজিপি দেখুন : প্রাপক হিসাবে আপনার সর্বজনীন কীটি অন্তর্ভুক্ত করছেন? কোন কম সুরক্ষিত? পক্ষে এবং বিপক্ষে কিছু যুক্তির জন্য তথ্য সুরক্ষা স্ট্যাক এক্সচেঞ্জে
একটি সিভিএন

0

প্রথমে ফাইলটি ডিক্রিপ্ট না করে, অন্য একটি এনক্রিপশন অনুসরণ না করে অন্য প্রাপককে যুক্ত করা কি সম্ভব?

একেবারে ডিক্রিপ্ট না করেই এটি সম্ভব নয় তবে মনে হয় কোনও ফাইলের ডিক্রিপ্ট না করেই এটি সম্ভব হওয়া উচিত :

gpg -d this_file.gpg | gpg -e -r "Some Name" -r "Another Name" -o this_file.gpg

বাদে এর ফলে একটি দূষিত ফাইলের ফলাফল দেখা যাচ্ছে (কমপক্ষে কখনও কখনও) কারণ gpgএকই সাথে একই ফাইলে পড়া এবং লেখা উভয়ই:

পরিবর্তে, ডিক্রিপ্ট করা ফাইল পরিচালনা করার প্রয়োজন এড়াতে আপনি নিম্নলিখিত (একটি স্ক্রিপ্টে) করতে পারেন:

gpg -d -o this_file.txt this_file.gpg

gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg \
    --batch --yes \
    this_file.txt

shred -u this_file.txt

shredসঙ্গে -uবিকল্প, নিরাপদে ডাটা মুছে ফেলা হয় এবং তারপর আপনি যে ফাইলটি উল্লেখ মুছে ফেলা হবে। অন্যান্য প্ল্যাটফর্মের জন্য srmম্যাক ওএস এক্সের মতো অনুরূপ প্রোগ্রাম উপস্থিত রয়েছে ।

অথবা আপনি কোনও স্ক্রিপ্টে ডিক্রিপ্টেড ডেটা সংরক্ষণ করার প্রয়োজন এড়াতে এই জাতীয় স্ক্রিপ্টটি ( ডেভ_্থমপসন_085 এর সৌজন্যে ) লিখতে পারেন :

gpg -d this_file.gpg \
| gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg.new \
    --batch --yes

mv -f this_file.gpg.new this_file.gpg

2
যদি আপনি অস্থায়ীভাবে এনক্রিপ্ট করা জায়গায়: বা এর আয়না ফেলে রাখেন তবে আপনাকে একটি পরিষ্কার টেম্প ফাইল লিখতে হবে না । অথবা (সম্ভবত খুব) চালাকি করে শুধু পুরাতন রাখা inode :gpg -d file.gpg | gpg -e ... -o file.new; mv file.new file.gpgmv file.gpg file.old; gpg -d file.old | gpg -e ... -o file.gpg{ rm file.gpg; gpg -d /dev/fd/3; } 3<file.gpg | gpg -e ... -o file.gpg
dave_thompson_085

@ dave_thompson_085 আকর্ষণীয় - ধন্যবাদ!
কেনে এভিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.