ক্রিপ্টোগ্রাফি সম্পর্কে ওয়েব প্রোগ্রামারদের কী জানা উচিত? [বন্ধ]


27

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

আমার এটির দরকার নেই তবে আমি ভাবছি যে আমি যদি কিছু মিস করছি। পাসওয়ার্ডগুলি এনক্রিপ্ট করার জন্য আমি লবণ + এমডি 5 হ্যাশ ব্যবহার করেছি এবং আমি ওয়েবসার্সকে এসএসএল ব্যবহার করতে বলি। এর বাইরেও, আমি বলতে পারি না আমি অন্য অনেকগুলি ব্যবহার করেছি, না এই পন্থাগুলি কতটা নিরাপদ তা আমি কোনও দৃty়তার সাথে বলতে পারি না । আমি কেবল সেগুলি ব্যবহার করি কারণ অন্য লোকেরা দাবি করে যে তারা নিরাপদ।

এই দুটি সাধারণ উদাহরণ বাদ দিয়ে কি কখনও আপনি ওয়েব প্রোগ্রামিংয়ে ক্রিপ্টোগ্রাফি ব্যবহার করার প্রয়োজন খুঁজে পেয়েছেন?


4
তাদের এটি করা উচিত নয় তা জানার জন্য তাদের যথেষ্ট পরিমাণে জানা উচিত।
স্ল্যাक्स

@ এসএলক্স: +1 100% সম্মত। এটি কেন তা প্রসারিত করার জন্য আমি এই থ্রেডের উত্তর লিখেছিলাম।
ক্রিস জেস্টার-ইয়ং

উত্তর:


41

ওয়েব প্রোগ্রামারদের জানা উচিত যে তারা কখনও নিজেরাই ক্রিপ্টোগ্রাফি বাস্তবায়নের চেষ্টা করা উচিত নয়

বিশেষত, এর অর্থ হ'ল কোনও সুরক্ষার-বিশেষজ্ঞকে সরাসরি কোনও ক্রিপ্টোগ্রাফিক আদিমকে স্পর্শ করা উচিত নয়। তারা এইএস, এসএএএ -1 ইত্যাদি স্তরে চিন্তা করা উচিত নয় পরিবর্তে, তাদের বার্তাগুলি এনক্রিপ্ট করতে এবং স্বাক্ষর করতে এবং "হ্যাশ" পাসওয়ার্ডের জন্য উচ্চ-স্তরের ফাংশন ব্যবহার করা উচিত।

কেন? কারণ অন্যথায়, লোকেরা এই ভেবে ভ্রষ্ট হয় যে:

  • এএস-256 হ'ল "দুর্দান্ত এনক্রিপশন", যদিও তারা এটি ইসিবি মোডে ব্যবহার করছে, বা নন-এলোমেলো আইভি মানগুলি ব্যবহার করছে ইত্যাদি। (কিছু মোডে, নন-এলোমেলো তবে স্বতন্ত্র আইভিও ঠিক আছে others অন্যদের ক্ষেত্রেও না অনেক.)
  • তারা একাধিক বার্তাগুলি এনক্রিপ্ট করার জন্য একই প্রতিসাম্য কী ব্যবহার করতে পারে (বা আরও খারাপ, সরাসরি ব্যবহারের জন্য কোডে প্রতিসম কীটি সংরক্ষণ করুন)।
    • এমনকি তারা কোনও কী ডেরাইভেশন ফাংশন ব্যবহার না করে সরাসরি কী হিসাবে পাসফ্রেজ ব্যবহার করার সিদ্ধান্ত নিতে পারে।
  • তারা সরাসরি ডেটা এনক্রিপ্ট করতে আরএসএ ব্যবহার করতে পারে।
  • এগুলি সুরক্ষিত রাখতে তারা কেবল তাদের পাসওয়ার্ডগুলি "নুন এবং MD5" করতে পারেন। (যদি আপনি ভাবেন যে রংধনু টেবিলগুলি সবচেয়ে দুর্বল লিঙ্ক, তবে আবার চিন্তা করুন ))

কেবল একই পৃষ্ঠায় থাকতে, উপরের আইটেমগুলির কোনওোটাই ঠিক নেই । যদি আপনি এটি না পান, তবে আপনার 10 ফুট ফুটের সাথে ক্রিপ্টো স্পর্শ করা উচিত নয়! (AES-256 হ'ল দুর্দান্ত এনক্রিপশন, তবে কেবলমাত্র আপনি এটি সঠিকভাবে ব্যবহার করলেই হয় "" এটি যে আকারের তা গুরুত্বপূর্ণ নয়, এটি আপনি এটিই করেন "" :-))

আমি কোন ধরণের উচ্চ-স্তরের ফাংশনগুলির বিষয়ে বলছি? আমি ব্যক্তিগতভাবে একটি ওপেনজিপি (বিশ্রামের ডেটার জন্য) বা এসএসএল (গতিযুক্ত ডেটার জন্য) লাইব্রেরি ব্যবহারের পরামর্শ দিই। এই প্রোটোকলগুলি দৃym়ভাবে অসমমিতি, প্রতিসাম্য এবং হ্যাশ অ্যালগরিদমের সঠিক ব্যবহার নির্দিষ্ট করে। উদাহরণস্বরূপ, ওপেনজিপি সহ:

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

সংক্ষিপ্তসার: আপনি যদি কোনও সুরক্ষা বিশেষজ্ঞ না হন এবং আপনি এইএস, বা এসএএএ -1, বা (স্বর্গ নিষিদ্ধ) এমডি 5 এর স্তরে চিন্তা করছেন , আপনি এটি ভুল করছেন । সুরক্ষা বিশেষজ্ঞদের দ্বারা রচিত একটি লাইব্রেরি ব্যবহার করুন (যেমন বাউন্সি ক্যাসল), যা নিজের নিজস্ব রোলিংয়ের পরিবর্তে সুরক্ষা বিশেষজ্ঞদের দ্বারা নকশাকৃত প্রোটোকল (যেমন এনক্রিপশনের জন্য ওপেনজিপি, বা পাসওয়ার্ড হ্যাশিংয়ের জন্য বিক্রিপ্ট বা স্ক্রিপ্ট) প্রয়োগ করে।

আমি কোনও উপায়ে ক্রিপ্টো বিশেষজ্ঞ নই, তবে আমি নিজের অ্যাড-হক প্রোটোকলগুলি ডিজাইনের চেষ্টা না করার জন্য যথেষ্ট জানি। কেবল স্পষ্ট করে বলতে গেলে, এই সম্পূর্ণ পোস্টটি হ'ল ক্রিপ্টোগ্রাফি 101 উপাদান । সুতরাং যদি এই পোস্টটি আপনার জন্য 100% বোঝায় না, তবে অবশ্যই আপনি ক্রিপ্টোগ্রাফির কাছে কোথাও পাবেন না।


4
অসাধারণ. "আবার ভাবুন" এর সাথে লিঙ্কযুক্ত ব্লগ পোস্টটি পছন্দ করেছিল। chargen.matasano.com/chargen/2007/9/7/…
ডেভিডাসকিনস

+1, তবে একই প্রতিসাম্য কী একাধিকবার ব্যবহার করা ভাল। আইভি এটির জন্য (অন্যথায় আপনার এটির প্রয়োজন হবে না)।
orip

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

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

1
@ অজয় ​​আমি আরও প্রাসঙ্গিক এমন কোনও লিঙ্কটি পরিবর্তন করেছি।
ক্রিস জেস্টার-ইয়ং

14

ক্রিপ্টোগ্রাফি সম্পর্কে খুব মূল বিষয়গুলি ছাড়া আপনার আর কিছু জানতে হবে না (হ্যাশ কী, নুন কী, মোটামুটি এই এনক্রিপশনটি তত্ক্ষণিকভাবে শক্ত করে তোলা এবং এটি এবং এই জাতীয়) তবে আপনাকে সুরক্ষা সম্পর্কে মোটামুটি কিছু জানতে হবে সাধারণ.

মূল সুরক্ষার ক্ষেত্রগুলি আপনাকে অবশ্যই ওয়েব বিকাশকারী হিসাবে সচেতন হতে হবে:

  1. এসকিউএল ইনজেকশন. এটি সম্ভবত একমাত্র সবচেয়ে বিপজ্জনক গর্ত যা কোনও ওয়েব বিকাশকারী কোনও সিস্টেমে পাঞ্চ করতে পারে।
  2. ক্রস-সাইট স্ক্রিপ্টিং এবং কুকিজ।
  3. স্প্যামবট এবং ক্যাপচা
  4. এসকিউএল ইনজেকশন. এটি কতটা জরুরী তা যথেষ্ট জোর দেওয়া যায় না।

আপনি যা করছেন সে সম্পর্কে কিছু না বোঝা অত্যন্ত বিপজ্জনক। একটি বার্তা হজম হ্যাশ এবং একটি ক্রিপ্টোগ্রাফিক হ্যাশ মধ্যে পার্থক্য কি জানেন না তা আপনাকে নষ্ট করতে পারে। কীভাবে লবণ দিতে হয় তা আপনার ক্ষতি করতে পারে না।
ছদ্মবেশে

@ user1525 এটাই আমি হ'ল ক্রিপ্টোগ্রাফির একেবারে বেসিক। কোনও এনক্রিপশন অ্যালগরিদম আসলে কীভাবে কাজ করে তা আপনার অবশ্যই জেনে রাখা উচিত নয়।
বিজিকলপ

আমি প্রতিক্রিয়াটির প্রশংসা করি এবং আমি এসকিউএল ইঞ্জেকশন এবং অন্যান্য আক্রমণ সম্পর্কে সম্মত হই, তবে আমি সত্যিই ক্রিপ্টোগ্রাফি সম্পর্কে জিজ্ঞাসা করছিলাম।
ডেভিডাসকিন্স

2
হ্যাঁ, ডেভিডাসকিন্স হ্যাঁ, আমি কেবল এটি দেখানো মূল্যবান বলে মনে করেছি, কারণ প্রতিটি স্তর পূর্ববর্তীটির উপর ভিত্তি করে তৈরি করে। আপনি যদি আরও প্রাথমিক স্তরে আপনার অ্যাপ্লিকেশনটি সুরক্ষিত করতে ব্যর্থ হন তবে এএস কীভাবে কাজ করে তা জেনে রাখার পক্ষে মূল্য নেই। আমার অভিজ্ঞতায় এনক্রিপশনে মনোনিবেশ করার জন্য এবং সুরক্ষার দীর্ঘ শৃঙ্খলে এর ভূমিকার দৃষ্টি আকর্ষণ করতে অনেক বিকাশকারীই এর ফাঁদে পড়ে (আমি এটি বেশ কয়েকবার করেছিলাম) did
বিজিকলপ

4

আমার মনে আছে সুরক্ষা সম্পর্কে কোথাও জানতে প্রতিটি ইঞ্জিনিয়ারের প্রয়োজন এবং এইটি কোথায় শিখতে হবে , এই বক্তৃতাটি দেখেছি , স্পিকারটি হলেন নীল দাশওয়ানি এবং এটি তিনি দিয়েছেন গুগল টেক টক, এটি শুরু করার জন্য ভাল জায়গা হতে পারে!

যদিও কেবল ওয়েব প্রোগ্রামারদের ক্ষেত্রেই প্রযোজ্য নয়, সম্ভবত এই প্রশ্নটির নতুন শিরোনাম হওয়া উচিত "প্রোগ্রামারদের সুরক্ষা সম্পর্কে কী জানা উচিত?" যেহেতু তাদেরকে ক্রিপ্টোগ্রাফি সম্পর্কে বেসিকগুলির চেয়ে বেশি জানতে হবে না (এটি যতটা আকর্ষণীয়)


2

ক্রিপ্টো অনেক পরিস্থিতিতে কাজে আসে। একটি উদাহরণ আমরা ব্যবহার করেছি একটি ল্যাম্প হোস্টে ব্যবহার করার জন্য একটি উইন / আইআইএস হোস্ট দ্বারা তৈরি এবং সেট করা একটি সেশন কুকি এনক্রিপ্ট করা।

আপনি যদি এনক্রিপশন (এমডি 5 / শ 1 হ্যাশিংয়ের বিপরীতে) প্রয়োগ করতে চান তবে কিছু প্রাথমিক শর্তাবলী গুরুত্বপূর্ণ - যেমন প্রতিসাম্য এবং অসমমিতিক এনক্রিপশনের মধ্যে পার্থক্য। দুজনের মধ্যে পার্থক্য বোঝার পাশাপাশি, ওয়েব বিকাশকারী হিসাবে ডিক্রিপশন কীগুলি সঠিকভাবে সংরক্ষণ এবং সুরক্ষিত করার জন্য আপনার কী করা উচিত তা বোঝার বিকাশ করা উচিত। উদাহরণস্বরূপ, কোনও অ্যাপ্লিকেশন বিকাশ করা যদি কোনও হোস্টে স্থাপন করা হয় যার উপরে আপনার সম্পূর্ণ প্রশাসনিক নিয়ন্ত্রণ নেই, যেমন একটি ভাগ করা হোস্টের মতো বনাম, এমন সার্ভারে মোতায়েন যেখানে সমস্ত প্রশাসক পরিচিত এবং বিশ্বস্ত।


2

আমার মতে, আপনার কোডটিতে আক্রমণকারী কেউ জানতে পারবে যে ক্রিপ্টোগ্রাফি সম্পর্কে আপনার সমস্ত কিছু জানা উচিত। আপনার হ্যাশগুলি, লবণ, এলোমেলোভাবে নন-র্যান্ডম, প্রধান এনক্রিপশন অ্যালগরিদমগুলি (আরএসএ, 3 ডিইএস, এইএস, ইত্যাদি), এসএএএ -1 / এমডি -5 / এট ইত্যাদি বুঝতে হবে। আপনাকে এগুলি মুখস্ত করতে হবে না, তবে কমপক্ষে আপনার জানা উচিত যে একটি হ্যাশ অ্যালগরিদমের কার্যকারিতা এবং কীভাবে এটি আরও শক্তিশালী করা যায়। সংঘর্ষগুলি এবং মিথ্যা ধনাত্মকগুলি কী তা আপনার জানা উচিত। আপনি এনক্রিপশন অ্যালগরিদমগুলি আবৃত্তি করতে সক্ষম হবেন না, তবে তাদের মানদণ্ডগুলির সাথে আপনার পরিচিত হওয়া উচিত, কোনটি কোন পরিস্থিতির জন্য আদর্শ। আপনার প্রতিসম বনাম অসমমিতিক এনক্রিপশন বর্ণনা এবং ব্যাখ্যা করতে সক্ষম হওয়া উচিত এবং কখন ব্যবহার করতে হবে। আপনার জানা উচিত যে পিকেআই কী এবং এটি কীভাবে ব্যবহৃত হয়। শংসাপত্র কর্তৃপক্ষ কী এবং আপনার সার্ভারের সাথে এটি কীভাবে যোগাযোগ করে তা আপনার জানা উচিত।

সমস্ত কিছুর ইনস এবং আউটগুলি জানা এটির পটভূমি জানার মতো গুরুত্বপূর্ণ নয়। নির্দিষ্ট জিনিসের মানদণ্ডগুলি কী কী (কত দ্রুত, কত শক্তিশালী, দুর্বলতা ইত্যাদি)।

এই সুপারিশগুলি সিনিয়র বা স্থপতি স্তরের তথ্যের জন্য। যদি আপনি কেবল একটি ওয়েব বানরটি বেঁধে চলেছেন তবে আপনাকে এগুলির কোনওটি জানতে হবে না। আপনার স্থপতি এই জিনিস জানতে হবে। যদি আপনি সাইটের দায়িত্বে থাকেন, এটি ডিজাইনিং, এটিকে বাস্তবায়ন করা ইত্যাদি ... তবে আপনার এই সমস্ত ধারণার সাথে পরিচিত হওয়া উচিত এবং সেগুলি সম্পর্কে বুদ্ধিমানের সাথে কথোপকথন করতে সক্ষম হওয়া উচিত। আপনি এটি শেখাতে সক্ষম হবেন না, কেবল এটি সম্পর্কে তথ্য গ্রহণ করুন এবং প্রচার করুন।


2

আপনার এমডি 5 এর চেয়ে পাসওয়ার্ড সঞ্চয় করতে bcrypt (ব্লোফিশ) ব্যবহার করা উচিত ; এটি অনেক ধীর গতির অ্যালগরিদম , যার অর্থ হ্যাকারের পক্ষে অনুমান করা এবং পরীক্ষা করা অনেক কঠিন। এছাড়াও, bcrypt একটি প্যারামিটার হিসাবে একটি কাজের ফ্যাক্টর নেয় , এর অর্থ এটি আরও নতুন ধীরে ধীরে কম্পিউটারগুলি প্রবর্তন করার সাথে ধীরে ধীরে পেতে পারে, সুতরাং এতে অন্তর্নির্মিত ভবিষ্যতের প্রুফিং রয়েছে।

দেখুন কিভাবে নিরাপদে দোকান একটি পাসওয়ার্ড আরও তথ্যের জন্য।


0

এই ধরণের প্রশ্নের একটি দুর্দান্ত সাধারণ উত্তর হিসাবে আমি সর্বদা মনে করি যে আপনি যা করেন তা দূরবর্তীভাবে সম্পর্কিত যে কোনও কিছু সম্পর্কে আপনার প্রাথমিক বোঝার চেষ্টা করা উচিত। অবশ্যই আপনি আসলে কী কাজ করছেন তার নির্দিষ্ট বিশদ জ্ঞান প্রয়োজন। একটি নির্দিষ্ট অঞ্চল কীভাবে বিকশিত হতে চলেছে, "ফ্যাশনে" কী হতে চলেছে বা ভবিষ্যতে আপনার কী প্রয়োজন হবে তা অনুমান করা খুব কঠিন, সুতরাং আপনার কমপক্ষে "শুনেছেন" এমন একটি বিস্তৃত ক্ষেত্র রাখলে তা বজায় থাকবে অনেক দরজা খোলা।

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

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