কেন এটি এলোমেলো পাসওয়ার্ডটিকে খুব সরল / পদ্ধতিগত বলে পতাকাঙ্কিত করা হচ্ছে?


37

কিভাবে র্যান্ডম স্ট্রিং হয় M1uG*xgRCthKWwjIjWc*010iSthY9bucখুব সরল হিসাবে সনাক্ত করা হচ্ছে / অনুযায়ী একটি পাসওয়ার্ড নিয়মানুগ PASSWD এবং cracklib-যাচাই ? এটি আপনার মেশিনে চেষ্টা করে দেখুন

echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check

মনে রাখবেন যে এটি আমার পাসওয়ার্ড নয়, তবে একই র্যান্ডম পাসওয়ার্ড জেনারেটর থেকে অন্য এলোমেলোভাবে উত্পন্ন স্ট্রিং যা একই ফলাফল তৈরি করে।


3
এটি বলেM1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
ধনী

কেবলমাত্র কয়েকটি সংস্করণ এটিকে সহজ হিসাবে সনাক্ত করে। এই বিষয়ে আরও তথ্যের জন্য স্ল্যামের উত্তর দেখুন।
বিউওলফনোড 42

আপনি পরিবর্তে /dev/urandomএকটি পাসওয়ার্ড তৈরি করতে ব্যবহার করবেন না কেন ?
ডেভনুল

@ দেবনুল - আপনার মনে কী ছিল তা নিশ্চিত নন তবে কীভাবে পাসওয়ার্ড তৈরি করবেন সে সম্পর্কে আমার A তে 2 টি পদ্ধতি যুক্ত করেছেন।
slm

উত্তর:


59

যেহেতু ক্র্যাকলিব ওপেন সোর্স, উত্তরটি সোর্স কোডে পাওয়া যাবে ।

"খুব সরল / পদ্ধতিগত" এর অর্থ এমন যে অনেকগুলি অক্ষর রয়েছে যা তাদের বর্ণানুক্রমিক প্রতিবেশী একের আগে রয়েছে by সুতরাং "আব" বা "বা" কে খারাপ হিসাবে বিবেচনা করা হয় তবে খ বাদ দেওয়া থেকে "এসি" বা "সিএ" ঠিক আছে b

2010-03-02-এর এই প্যাচ দেওয়ার আগে এটি সর্বাধিক চারটি অক্ষরকে এই বৈশিষ্ট্যটি প্রদর্শন করে। উদাহরণস্বরূপ, "বার12345" ব্যর্থ হবে, কারণ "a", "2", "3", "4" এবং "5" অক্ষর পূর্ববর্তী অক্ষরের বর্ণানুক্রমিক প্রতিবেশী।

এসএমএল তার উত্তরে জানতে পেরেছিল যে M1uG*xgRCthKWwjIjWc*010iSঠিক আছে, যদিও M1uG*xgRCthKWwjIjWc*010iStনেই। আসুন বিশ্লেষণ করা যাক। এখানে এমন অক্ষরগুলি যা ক্র্যাকলিব-চেক মনে করে একটি পদ্ধতিগত পাসওয়ার্ডের ইঙ্গিত দেয়:

M1uG*xgRCthKWwjIjWc*010iS
               ^^    ^^

যা সর্বোচ্চ চারটির নিচে, তবে টি যুক্ত করছে:

M1uG*xgRCthKWwjIjWc*010iSt
               ^^    ^^  ^

এটি সীমা ছাড়িয়ে যায়, যেহেতু টি এস অনুসরণ করে (এটি প্রদর্শিত হয় টেস্টটি সংবেদনশীল।

প্যাচ সর্বাধিক সীমা পরিবর্তন করে যাতে এটির মতো ভুল ধনাত্মকতা এড়াতে মোট পাসওয়ার্ডের দৈর্ঘ্যের উপর নির্ভর করে।


1
010 কে ইতিমধ্যে 3 হিসাবে গণনা করা উচিত নয়? দুর্দান্ত উত্তর যদিও।
জন ভি।

1
সঠিক উত্স কোডের পার্থক্য দেওয়ার জন্য দুর্দান্ত উত্তর এবং ধন্যবাদ। যাইহোক, এই ফাইলটিকে ফ্যাসিস্ট.সি বলা হওয়ার কোনও কারণ নেই?
বিজয়ী

@ this.lau_ - আমি অনুমান করছি: en.wikipedia.org/wiki/Fascism
SLM

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

এটি ছোট বা উচ্চতর না হতে পারে তবে এটি একই ( Ww) হতে পারে এমন কোনও কারণ আছে কি ?
জেরোইন ভেনেভেল

31

ফেডোরা 19-তে

আমি যখন এটি চালাব আমি ঠিক হয়ে উঠছি। আমি ফেডোরা 19-এ আছি।

$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK

সংস্করণ তথ্য এখানে:

$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version     : 2.8.22
Release     : 3.fc19

দ্রষ্টব্য: আমি এটি ডাবল কোটোর পরিবর্তে একক উদ্ধৃতি দিয়ে চেষ্টা করে দেখছি যেহেতু আপনার সাথে ডিল *করা হচ্ছে তারা আপনার উপর অদ্ভুত উপায়ে প্রসারিত হতে পারে।

CentOS 5 এবং 6

CentOS 6 এ আপনার উদাহরণ চেষ্টা করা ভাল ছিল, ঠিক আছে, তবে আপনি CentOS 5.9 তে বর্ণিত হিসাবে এটি ব্যর্থ হয়েছিল।

$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: it is too simplistic/systematic

ভার্সন সম্পর্কিত তথ্য:

$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version     : 2.8.9                  
Release     : 3.3

একটি বাগ?

আপনি যা হোঁচট খেয়েছেন তা একটি বাগ বলে মনে হবে। আপনি যদি আপনার স্ট্রিংটি নিয়ে যান এবং আপনার স্ট্রিংয়ের আরও বেশি cracklib-checkকিছু চালিয়ে যান তবে আপনি লক্ষ্য করবেন যে 26 তম চরিত্রটি পেয়ে গেলে এটি ব্যর্থ হতে শুরু করে:

# 25    
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iS"
M1uG*xgRCthKWwjIjWc*010iS: OK

# 26
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSt"
M1uG*xgRCthKWwjIjWc*010iSt: it is too simplistic/systematic

এটিকে আরও গভীরভাবে খনন করা যদি আমি tবলি vএটির কাজটি অবিরত থেকে শেষ চরিত্রটি পরিবর্তন করে ।

$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK

সুতরাং এটি মনে হয় সংস্করণটি cracklib-checkস্ট্রিংয়ের সাথে ঝুলতে চলেছে Sth

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

$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic

একই স্ট্রিং ফেডোরা 19 এবং সেন্টস 6-এও সমস্যা সৃষ্টি করে!

আপডেট # 1

@ ওয়াক্সউইংয়ের খুব সুন্দর শোথিংয়ের উপর ভিত্তি করে , আমরা এখন জানি যে ব্যবহারিত হিউরিস্টিকগুলি যদি> 4 টি চরিত্র একে অপরের সাথে খুব বেশি সংলগ্ন থাকে তবে বিভক্ত হয়ে উঠছিল। একটি প্যাচ চালু করা হয়েছিল যা এই তাত্ত্বিক পরিবর্তন করেছিল যাতে এই ভ্রান্ত ইতিবাচকতা দূর করতে বিবেচনাধীন পাসওয়ার্ডের সামগ্রিক দৈর্ঘ্য বিবেচনায় নেওয়া হয়।

উপসংহার?

আমার কিছু সীমিত পরীক্ষার ভিত্তিতে এটি প্রদর্শিত হবে যে এখানে খেলতে কিছু অদ্ভুত হিউরিস্টিকস রয়েছে। আপাতদৃষ্টিতে সূক্ষ্ম কিছু নির্দিষ্ট স্ট্রিংগুলি এটি ট্রিপ আপ করছে।

আপনি এই সংকেত লিপিবদ্ধ করার চেষ্টা করছেন তবে আমি প্রজন্ম & একটি পাসওয়ার্ড মূল্যায়ন মোড়কে এবং তারপর লুপ খুঁজে ভঙ্গ একবার একটি পাসওয়ার্ড তৈরি করা হয়েছে যে appeases সুপারিশ করবে cracklib-check

অথবা খুব কমপক্ষে আমি একটি নতুন সংস্করণে আপগ্রেড করার পরামর্শ দিচ্ছি যা @ ম্যাক্সউইং তার উত্তরে উল্লিখিত ফিক্সগুলি অন্তর্ভুক্ত করে।

পাসওয়ার্ড জেনার বিকল্প

pwgen

আমি যুক্ত করব যে আমি সাধারণত pwgenপাসওয়ার্ড তৈরি করতে ব্যবহার করি । এটি আপনার এখানেও সহায়ক হতে পারে।

$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
urandom

এছাড়াও আপনি সাথে একটু স্ক্রিপ্টিং জাদু ব্যবহার করতে পারেন tr, /dev/urandomএবং foldএকটি অত্যন্ত উচ্চ মানের র্যান্ডম পাসওয়ার্ড পেতে।

$ tr -dc '[:graph:]' </dev/urandom | fold -w 32 | head -n 1
;>$7\`Hl$=zn}R.b3h/uf7mY54xp}zSF

foldকমান্ড দৈর্ঘ্য নিয়ন্ত্রণ করতে পারেন। বিকল্প হিসাবে আপনি এটিও করতে পারেন:

$ echo $(tr -dc '[:graph:]' </dev/urandom | head -c 32)
/_U>s[#_eLKAl(mrE@oo%X~/pcg$6-kr

আমি এটি ক্র্যাকলিব-২.৮.৯-৩.১.সিআরসি.আরপিএম-এর সাথে সেন্টস 5.5-এ চালাচ্ছিলাম। উভয় ক্ষেত্রেই যদিও এত দীর্ঘ এলোমেলো স্ট্রিং খুব সহজ হতে পারে?
বিউওলফনোড 42

@ বিউওলফনোড 42 - এটি নয়। দেখে মনে হচ্ছে আপনি কোনও বাগ খুঁজে পেয়েছেন বা খুব কমপক্ষে বাস্তবায়নের সীমাবদ্ধতা রয়েছে।
slm

স্ট্রেঞ্জ। তবুও একটি স্ট্রিং Tm7U:n=@*+4$*gf$6hOngEHJ;mnh$+R6একই মেশিনে পুরোপুরি ঠিক আছে।
বিউওলফনোড 42

1
ডবল কোট না উল্লিখিত glob সম্প্রসারণ প্রতিরোধ। স্ট্রিংয়ে ডলারের চিহ্ন, ব্যাকটিকস ইত্যাদি রয়েছে তবে একক উদ্ধৃতি এখনও আরও ভাল ধারণা
ডেনিস

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