OWASP বিভাগ: MASVS-CRYPTO: ক্রিপ্টোগ্রাফি
ওভারভিউ
ডেটার গোপনীয়তা এবং অখণ্ডতা রক্ষার জন্য ক্রিপ্টোগ্রাফির ব্যাপক ব্যবহার সত্ত্বেও, বিকাশকারীরা অসাবধানতাবশত দুর্বল বা পুরানো ক্রিপ্টোগ্রাফিক অ্যালগরিদম প্রয়োগ করলে একটি উল্লেখযোগ্য ঝুঁকি দেখা দেয়। এই দুর্বলতা এই অ্যালগরিদমের অন্তর্নিহিত দুর্বলতাগুলি থেকে উদ্ভূত হয়, যা প্রয়োজনীয় গণনাগত ক্ষমতা বা জ্ঞানের অধিকারী দূষিত অভিনেতাদের দ্বারা কাজে লাগানো যেতে পারে। এই ধরনের শোষণের পরিণতিগুলি গুরুতর হতে পারে, সম্ভাব্য অননুমোদিত অ্যাক্সেস, ডেটা লঙ্ঘন এবং সংবেদনশীল তথ্যের হেরফের হতে পারে।
প্রভাব
সংবেদনশীল তথ্য প্রকাশ, পরিবর্তিত বা জাল হতে পারে। ভাঙা বা ঝুঁকিপূর্ণ ক্রিপ্টোগ্রাফিক অ্যালগরিদমগুলি দুর্বলতার দিকে নিয়ে যেতে পারে এবং সংবেদনশীল তথ্য ডিক্রিপ্ট করতে, ডেটার সাথে হস্তক্ষেপ করতে বা বৈধ সত্ত্বার ছদ্মবেশে অপব্যবহার হতে পারে। এই ধরনের দুর্বলতাগুলিকে কাজে লাগানোর প্রভাব ডেটা লঙ্ঘন এবং আর্থিক ক্ষতি থেকে শুরু করে সুনামগত ক্ষতি এবং ব্যবহারকারীর বিশ্বাস হারাতে পারে।
ঝুঁকি: দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন
দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলির ব্যবহার (যেমন MD5
বা SHA1
) ডেটার নিরাপত্তা এবং অখণ্ডতার জন্য একটি উল্লেখযোগ্য ঝুঁকি তৈরি করে। হ্যাশ ফাংশনগুলি ইনপুট ডেটার অনন্য, স্থির-দৈর্ঘ্যের আঙ্গুলের ছাপ (হ্যাশ) তৈরি করার জন্য ডিজাইন করা হয়েছে, যা ডেটা অখণ্ডতা যাচাইকরণ, পাসওয়ার্ড স্টোরেজ এবং ডিজিটাল স্বাক্ষর সহ বিভিন্ন উদ্দেশ্যে উপযোগী করে তোলে। যাইহোক, যখন দুর্বল বা আপোসকৃত হ্যাশ ফাংশন নিযুক্ত করা হয়, তখন বেশ কয়েকটি দুর্বলতা দেখা দিতে পারে:
- সংঘর্ষের আক্রমণ : দুর্বল হ্যাশ ফাংশন সংঘর্ষ আক্রমণের জন্য সংবেদনশীল, যেখানে একজন আক্রমণকারী দুটি ভিন্ন ইনপুট খুঁজে পায় যা একই হ্যাশ মান তৈরি করে। এটি তাদের সনাক্তকরণ ছাড়াই বৈধ ডেটার জন্য দূষিত ডেটা প্রতিস্থাপন করার অনুমতি দিতে পারে, ডেটা অখণ্ডতার সাথে আপস করে।
- ডেটা লঙ্ঘন : যদি পাসওয়ার্ডগুলি একটি দুর্বল অ্যালগরিদম দিয়ে হ্যাশ করা হয়, তাহলে একটি সিস্টেমের সফল লঙ্ঘন ব্যবহারকারীর শংসাপত্রের প্রকাশের দিকে নিয়ে যেতে পারে। আক্রমণকারীরা তখন রেইনবো টেবিল বা অন্যান্য কৌশল ব্যবহার করে পাসওয়ার্ড ক্র্যাক করতে পারে, অ্যাকাউন্টগুলিতে অননুমোদিত অ্যাক্সেস লাভ করতে পারে।
- ডিজিটাল স্বাক্ষরের প্রত্যাখ্যান : ডিজিটাল স্বাক্ষরে ব্যবহৃত দুর্বল হ্যাশ ফাংশনগুলিকে জাল স্বাক্ষর তৈরি করতে কাজে লাগানো যেতে পারে, যা নথি বা বার্তাগুলির সত্যতা এবং অখণ্ডতা নির্ধারণ করা কঠিন করে তোলে।
প্রশমন
এই ঝুঁকিগুলি প্রশমিত করার জন্য, SHA-2
বা SHA-3
মতো শক্তিশালী, ভাল-পরীক্ষিত ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি ব্যবহার করা এবং নতুন দুর্বলতাগুলি আবিষ্কৃত হওয়ার সাথে সাথে তাদের আপডেট রাখা অত্যন্ত গুরুত্বপূর্ণ৷ উপরন্তু, পাসওয়ার্ড সল্টিং এবং পাসওয়ার্ড-নির্দিষ্ট হ্যাশিং অ্যালগরিদম যেমন bcrypt
বা Argon2
ব্যবহার করার মতো সুরক্ষা অনুশীলনগুলি গ্রহণ করা ডেটা সুরক্ষাকে আরও উন্নত করতে পারে।
ঝুঁকি: দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক এনক্রিপশন ফাংশন
দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক এনক্রিপশন ফাংশনগুলির ব্যবহার (যেমন DES
বা RC4
) সংবেদনশীল ডেটার গোপনীয়তার জন্য গুরুতর ঝুঁকি তৈরি করে। এনক্রিপশন একটি অপঠিত বিন্যাসে রূপান্তরিত করে তথ্যকে সুরক্ষিত করার জন্য ডিজাইন করা হয়েছে, কিন্তু যদি এনক্রিপশন অ্যালগরিদম ত্রুটিপূর্ণ হয়, তাহলে এই সুরক্ষাগুলিকে বাইপাস করা যেতে পারে:
- ডেটা লঙ্ঘন: দুর্বল এনক্রিপশন অ্যালগরিদমগুলি বিভিন্ন আক্রমণের জন্য সংবেদনশীল, যার মধ্যে ব্রুট-ফোর্স অ্যাটাক, পরিচিত প্লেইনটেক্সট অ্যাটাক এবং ক্রিপ্টনালাইসিস কৌশল রয়েছে৷ সফল হলে, এই আক্রমণগুলি এনক্রিপ্ট করা ডেটা প্রকাশ করতে পারে, ব্যক্তিগত বিবরণ, আর্থিক রেকর্ড বা গোপনীয় ব্যবসার ডেটার মতো সংবেদনশীল তথ্যগুলিতে অননুমোদিত অ্যাক্সেসের অনুমতি দেয়।
- ডেটা ম্যানিপুলেশন এবং টেম্পারিং: এমনকি যদি কোনও আক্রমণকারী ডেটা সম্পূর্ণরূপে ডিক্রিপ্ট করতে না পারে, তবে এনক্রিপশন অ্যালগরিদম দুর্বল হলে তারা সনাক্ত না করেই এটিকে ম্যানিপুলেট করতে সক্ষম হতে পারে। এটি ডেটার অননুমোদিত পরিবর্তনের দিকে নিয়ে যেতে পারে, যার ফলে সম্ভাব্য জালিয়াতি, ভুল উপস্থাপনা বা অন্যান্য দূষিত কার্যকলাপ হতে পারে।
প্রশমন
এনক্রিপশন ফাংশনে শক্তিশালী ক্রিপ্টোগ্রাফিক অ্যালগরিদম ব্যবহার করুন
এই ঝুঁকিগুলি কমানোর জন্য, শক্তিশালী, ভাল-পরীক্ষিত ক্রিপ্টোগ্রাফিক অ্যালগরিদমগুলি ব্যবহার করা এবং মূল পরিচালনা এবং এনক্রিপশন বাস্তবায়নের জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করা অত্যন্ত গুরুত্বপূর্ণ৷ নিয়মিতভাবে এনক্রিপশন অ্যালগরিদম আপডেট করা এবং উদীয়মান হুমকি সম্পর্কে অবগত থাকাও শক্তিশালী ডেটা নিরাপত্তা বজায় রাখার জন্য অপরিহার্য।
ব্যবহার করার জন্য কিছু প্রস্তাবিত ডিফল্ট অ্যালগরিদম:
- সিমেট্রিক এনক্রিপশন:
-
AES-128
/AES-256
GCM
মোড সহ -
Chacha20
-
- অপ্রতিসম এনক্রিপশন:
-
OAEP
প্যাডিং সহRSA-2048
/RSA-4096
-
সাধারণ সমস্যাগুলি কমাতে একটি ক্রিপ্টোগ্রাফি লাইব্রেরি থেকে সুরক্ষিত আদিম ব্যবহার করুন৷
একটি উপযুক্ত এনক্রিপশন অ্যালগরিদম নির্বাচন করা অত্যন্ত গুরুত্বপূর্ণ, সত্যিকার অর্থে নিরাপত্তা দুর্বলতা কমাতে, একটি ক্রিপ্টোগ্রাফি লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন যা একটি সুবিন্যস্ত API অফার করে এবং সুরক্ষিত ডিফল্ট কনফিগারেশনের উপর জোর দেয়। এই পদ্ধতিটি শুধুমাত্র আপনার অ্যাপ্লিকেশনগুলির নিরাপত্তাকে শক্তিশালী করে না কিন্তু কোডিং ত্রুটির মাধ্যমে দুর্বলতাগুলি প্রবর্তনের সম্ভাবনাকে উল্লেখযোগ্যভাবে হ্রাস করে৷ উদাহরণ স্বরূপ, Tink দুটি স্বতন্ত্র বিকল্প প্রদান করে এনক্রিপশন পছন্দকে সহজ করে: AEAD
এবং Hybrid
এনক্রিপশন, যা ডেভেলপারদের জন্য সচেতন নিরাপত্তা সিদ্ধান্ত নেওয়া সহজ করে তোলে।
ঝুঁকি: দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক স্বাক্ষর ফাংশন
দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক স্বাক্ষর ফাংশনগুলির ব্যবহার (যেমন RSA-PKCS#1 v1.5
, বা দুর্বল হ্যাশ ফাংশনের উপর ভিত্তি করে) ডেটা এবং যোগাযোগের অখণ্ডতার জন্য মারাত্মক ঝুঁকি তৈরি করে। ডিজিটাল স্বাক্ষরগুলি প্রমাণীকরণ, অ-প্রত্যাখ্যান এবং ডেটা অখণ্ডতা প্রদানের জন্য ডিজাইন করা হয়েছে, এটি নিশ্চিত করে যে একটি বার্তা বা নথি একটি নির্দিষ্ট প্রেরকের কাছ থেকে এসেছে এবং এর সাথে হেরফের করা হয়নি। যাইহোক, যখন অন্তর্নিহিত স্বাক্ষর অ্যালগরিদম ত্রুটিপূর্ণ হয়, তখন এই আশ্বাসগুলি আপস করা যেতে পারে:
- স্বাক্ষর জাল করা : দুর্বল স্বাক্ষর অ্যালগরিদমগুলি আক্রমণের জন্য ঝুঁকিপূর্ণ হতে পারে যা দূষিত অভিনেতাদের জাল স্বাক্ষর তৈরি করতে দেয়৷ এর মানে হল তারা বৈধ সত্ত্বার ছদ্মবেশ ধারণ করতে পারে, নথি তৈরি করতে পারে, বা সনাক্ত না করেই বার্তাগুলির সাথে ছত্রভঙ্গ করতে পারে৷
- স্বাক্ষর প্রত্যাখ্যান : যদি একটি স্বাক্ষর অ্যালগরিদম ভাঙ্গা হয়, একজন স্বাক্ষরকারী মিথ্যাভাবে দাবি করতে সক্ষম হতে পারে যে তারা একটি নথিতে স্বাক্ষর করেনি, অ-অস্বীকৃতির নীতিকে দুর্বল করে এবং আইনি ও লজিস্টিক চ্যালেঞ্জ তৈরি করে।
- ডেটা ম্যানিপুলেশন এবং টেম্পারিং : এমন পরিস্থিতিতে যেখানে স্বাক্ষরগুলি ডেটার অখণ্ডতা রক্ষা করার জন্য ব্যবহার করা হয়, একটি দুর্বল অ্যালগরিদম আক্রমণকারীদের স্বাক্ষরকে বাতিল না করে ডেটা পরিবর্তন করার অনুমতি দিতে পারে, যার ফলে অজ্ঞাত টেম্পারিং এবং সমালোচনামূলক তথ্যের সম্ভাব্য আপস হতে পারে।
প্রশমন
শক্তিশালী ক্রিপ্টোগ্রাফিক স্বাক্ষর অ্যালগরিদম ব্যবহার করুন
এই ঝুঁকিগুলি কমাতে, শক্তিশালী, ভাল-পরীক্ষিত ক্রিপ্টোগ্রাফিক স্বাক্ষর অ্যালগরিদমগুলি ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ:
-
PSS
প্যাডিং সহRSA-2048
/RSA-4096
- উপবৃত্তাকার কার্ভ ডিজিটাল সিগনেচার অ্যালগরিদম (
ECDSA
) সুরক্ষিত বক্ররেখা সহ
সাধারণ সমস্যাগুলি কমাতে একটি ক্রিপ্টোগ্রাফি লাইব্রেরি থেকে সুরক্ষিত আদিম ব্যবহার করুন৷
সঠিক স্বাক্ষর অ্যালগরিদম নির্বাচন করা অপরিহার্য, কিন্তু সত্যিকার অর্থে নিরাপত্তা দুর্বলতা কমাতে, একটি ক্রিপ্টোগ্রাফি লাইব্রেরি বিবেচনা করুন যা ডিফল্টরূপে শক্তিশালী নিরাপত্তা নিশ্চয়তা প্রদান করে। Tink , উদাহরণস্বরূপ, ECDSA
এর ডিফল্ট বিকল্প হিসাবে সুরক্ষিত বক্ররেখা সহ অফার করে স্বাক্ষর পছন্দগুলিকে সরল করে, সবই একটি সহজবোধ্য এবং ব্যাপক API-এর মধ্যে৷ এই পদ্ধতিটি শুধুমাত্র নিরাপত্তা বাড়ায় না বরং জটিল কনফিগারেশন বা সিদ্ধান্ত গ্রহণের প্রয়োজনীয়তা দূর করে উন্নয়নকে স্ট্রীমলাইন করে।
সম্পদ
- টিঙ্ক ক্রিপ্টোগ্রাফি লাইব্রেরি
- অ্যান্ড্রয়েড অ্যাপের গুণমান: ক্রিপ্টোগ্রাফি
- টিঙ্ক সহ ডিজিটাল স্বাক্ষর
- Tink সঙ্গে হাইব্রিড এনক্রিপশন
- Tink সঙ্গে প্রমাণীকৃত এনক্রিপশন
- দুর্বল বা ভাঙা ক্রিপ্টোগ্রাফিক হ্যাশ এবং এনক্রিপশন ফাংশন অ্যান্ড্রয়েড সিকিউরিটি লিন্ট
- CWE-327: একটি ভাঙা বা ঝুঁকিপূর্ণ ক্রিপ্টোগ্রাফিক অ্যালগরিদমের ব্যবহার
- CWE-328: দুর্বল হ্যাশের ব্যবহার
- CWE-780: OAEP ছাড়া RSA অ্যালগরিদমের ব্যবহার
- অ��ুমোদিত হ্যাশ ফাংশন সম্পর্কে NIST পৃষ্ঠা
- অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড (উইকিপিডিয়া)
- নিরাপদ হ্যাশ অ্যালগরিদম 2 (উইকিপিডিয়া)
- নিরাপদ হ্যাশ অ্যালগরিদম 3 (উইকিপিডিয়া)
- RSA ক্রিপ্টোসিস্টেম (উইকিপিডিয়া)
- উপবৃত্তাকার কার্ভ ডিজিটাল স্বাক্ষর অ্যালগরিদম (উইকিপিডিয়া)
- স্ট্রিম সাইফার চাচা (উইকিপিডিয়া)
- সল্টিং পাসওয়ার্ড (উইকিপিডিয়া)
- হাইব্রিড ক্রিপ্টোসিস্টেম (উইকিপিডিয়া)
- প্রমাণীকৃত এনক্রিপশন