ලිනක්ස් හි මුරපද ප්‍රතිපත්තියක් නිර්මාණය කිරීම

නැවතත් ආයුබෝවන්! නව පාඨමාලා කණ්ඩායමේ පන්ති හෙට ආරම්භ වේ "ලිනක්ස් පරිපාලක", මේ සම්බන්ධයෙන්, අපි මාතෘකාව පිළිබඳ ප්රයෝජනවත් ලිපියක් ප්රකාශයට පත් කරමු.

ලිනක්ස් හි මුරපද ප්‍රතිපත්තියක් නිර්මාණය කිරීම

කලින් පාඩම් මාලාවේදී අපි ඔබට භාවිතා කරන ආකාරය කියා දුන්නා pam_cracklibපද්ධතිවල මුරපද වඩාත් සංකීර්ණ කිරීමට Red Hat 6 හෝ CentOS. Red Hat 7 හි pam_pwquality ප්රතිස්ථාපනය කරන ලදි cracklib ලෙස pam මුරපද පරීක්ෂා කිරීම සඳහා පෙරනිමි මොඩියුලය. මොඩියුලය pam_pwquality Ubuntu සහ CentOS, මෙන්ම වෙනත් බොහෝ OS වලද සහය දක්වයි. මෙම මොඩියුලය පරිශීලකයන් ඔබගේ මුරපද ප්‍රමිතීන් පිළිගන්නා බව සහතික කිරීම සඳහා මුරපද ප්‍රතිපත්ති නිර්මාණය කිරීම පහසු කරයි.

දිගු කලක් තිස්සේ මුරපද සඳහා පොදු ප්‍රවේශය වූයේ විශාල අකුරු, කුඩා අකුරු, අංක හෝ වෙනත් සංකේත භාවිතා කිරීමට පරිශීලකයාට බල කිරීමයි. මුරපද සංකීර්ණත්වය සඳහා වූ මෙම මූලික නීති පසුගිය වසර දහය තුළ පුළුල් ලෙස ප්‍රවර්ධනය කර ඇත. මෙය හොඳ ක්‍රියාවක් ද නැද්ද යන්න පිළිබඳව බොහෝ කතාබහට ලක්ව ඇත. එවැනි සංකීර්ණ කොන්දේසි සැකසීමට එරෙහි ප්‍රධාන තර්කය වූයේ පරිශීලකයන් කඩදාසි කැබලිවල මුරපද ලියා ඒවා අනාරක්ෂිත ලෙස ගබඩා කිරීමයි.

මෑතකදී ප්‍රශ්න කරන ලද තවත් ප්‍රතිපත්තියක් පරිශීලකයින්ට සෑම දින x කට වරක් ඔවුන්ගේ මුරපද වෙනස් කිරීමට බල කරයි. මෙය ආරක්‍ෂාවට ද අහිතකර බව ඇතැම් අධ්‍යයනවලින් හෙළි වී ඇත.

මෙම සාකච්ඡා වල මාතෘකාව මත බොහෝ ලිපි ලියා ඇති අතර එය එක් හෝ තවත් දෘෂ්ටිකෝණයක් සනාථ කරයි. නමුත් අපි මෙම ලිපියෙන් සාකච්ඡා කරන්නේ මෙය නොවේ. ආරක්ෂක ප්‍රතිපත්තිය කළමනාකරණය කරනවාට වඩා මුරපද සංකීර්ණත්වය නිවැරදිව සකසන්නේ කෙසේද යන්න පිළිබඳව මෙම ලිපියෙන් කතා කරනු ඇත.

මුරපද ප්‍රතිපත්ති සැකසීම්

පහත ඔබට මුරපද ප්‍රතිපත්ති විකල්ප සහ එක් එක් කෙටි විස්තරයක් පෙනෙනු ඇත. ඒවායින් බොහොමයක් මොඩියුලයේ පරාමිතීන්ට සමාන වේ cracklib. මෙම ප්‍රවේශය ඔබේ ප්‍රතිපත්ති ලෙගසි සිස්ටම් වෙතින් තොට පහසු කරයි.

  • මට කණගාටුයි - ඔබගේ පැරණි මුරපදයේ නොතිබිය යුතු ඔබගේ නව මුරපදයේ අක්ෂර ගණන. (පෙරනිමි 5)
  • මිනි - අවම මුරපද දිග. (පෙරනිමි 9)
  • ණය – ලොකු අකුරු භාවිතා කිරීම සඳහා උපරිම බැර ගණන (පරාමිතිය > 0 නම්), හෝ අවශ්‍ය අවම කැපිටල් අකුරු ගණන (පරාමිතිය < 0 නම්). පෙරනිමිය 1 වේ.
  • ණය — කුඩා අකුරු භාවිතා කිරීම සඳහා උපරිම බැර ගණන (පරාමිතිය > 0 නම්), හෝ අවශ්‍ය අවම කුඩා අකුරු ගණන (පරාමිතිය < 0 නම්). පෙරනිමිය 1 වේ.
  • ණය — ඉලක්කම් භාවිතා කිරීම සඳහා උපරිම ණය ගණන (පරාමිතිය > 0 නම්), හෝ අවශ්‍ය අවම ඉලක්කම් ගණන (පරාමිතිය < 0 නම්). පෙරනිමිය 1 වේ.
  • ඔහු විශ්වාස කරයි — වෙනත් සංකේත භාවිතා කිරීම සඳහා උපරිම ණය ගණන (පරාමිතිය > 0 නම්), හෝ අවශ්‍ය අවම අනෙකුත් සංකේත ගණන (පරාමිතිය < 0 නම්). පෙරනිමිය 1 වේ.
  • minclass - අවශ්‍ය පන්ති ගණන සකසයි. පන්තිවලට ඉහත පරාමිතීන් ඇතුළත් වේ (ඉහළ අකුරු, කුඩා අකුරු, අංක, වෙනත් අක්ෂර). පෙරනිමිය 0 වේ.
  • maxrepeat - මුරපදයක අක්ෂරයක් පුනරාවර්තනය කළ හැකි උපරිම වාර ගණන. පෙරනිමිය 0 වේ.
  • maxclassrepeat — එක් පන්තියක අඛණ්ඩ උපරිම අනුලකුණු ගණන. පෙරනිමිය 0 වේ.
  • gecoscheck – මුරපදයේ පරිශීලකයාගේ GECOS තන්තු වලින් වචන තිබේදැයි පරීක්ෂා කරයි. (පරිශීලක තොරතුරු, එනම් සැබෑ නම, ස්ථානය, ආදිය) පෙරනිමිය 0 (අක්‍රිය) වේ.
  • dictpath – අපි cracklib ශබ්දකෝෂ වෙත යමු.
  • නරක වචන - මුරපද වල තහනම් කර ඇති අවකාශයෙන් වෙන් වූ වචන (සමාගමේ නම, "මුරපදය" යන වචනය, ආදිය).

ණය සංකල්පය අමුතු දෙයක් නම්, එය කමක් නැත, එය සාමාන්ය දෙයක්. අපි මේ ගැන වැඩි විස්තර පහත කොටස් වලින් කතා කරමු.

මුරපද ප්‍රතිපත්ති වින්‍යාසය

ඔබ වින්‍යාස ගොනු සංස්කරණය කිරීම ආරම්භ කිරීමට පෙර, මූලික මුරපද ප්‍රතිපත්තියක් කල්තියා ලිවීම හොඳ පුරුද්දකි. උදාහරණයක් ලෙස, අපි පහත දුෂ්කරතා නීති භාවිතා කරන්නෙමු:

  • මුරපදයේ අවම දිග අක්ෂර 15ක් තිබිය යුතුය.
  • මුරපදයේ එකම අක්ෂරය දෙවරකට වඩා නැවත නැවත නොකළ යුතුය.
  • මුරපදයකින් අක්ෂර පන්ති හතර වතාවක් දක්වා නැවත නැවතත් කළ හැක.
  • මුරපදයේ එක් එක් පන්තියේ අක්ෂර අඩංගු විය යුතුය.
  • පැරණි එකට සාපේක්ෂව නව මුරපදයට නව අක්ෂර 5ක් තිබිය යුතුය.
  • GECOS පරීක්ෂාව සබල කරන්න.
  • "මුරපදය, පාස්, වචනය, පුටෝරියස්" යන වචන තහනම් කරන්න

දැන් අපි ප්‍රතිපත්තිය සකස් කර ඇති බැවින්, අපට ගොනුව සංස්කරණය කළ හැක /etc/security/pwquality.confමුරපද සංකීර්ණතා අවශ්‍යතා වැඩි කිරීමට. වඩා හොඳ අවබෝධයක් සඳහා අදහස් සහිත උදාහරණ ගොනුවක් පහත දැක්වේ.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

ඔබ දැක ඇති පරිදි, අපගේ ගොනුවේ සමහර පරාමිති අතිරික්ත වේ. උදාහරණයක් ලෙස, පරාමිතිය minclass අපි දැනටමත් ක්ෂේත්‍ර භාවිතා කරමින් පන්තියෙන් අවම වශයෙන් අක්ෂර දෙකක් භාවිතා කරන බැවින් අතිරික්ත වේ [u,l,d,o]credit. ඕනෑම පන්තියක් 4 වතාවක් පුනරාවර්තනය කිරීම අප විසින් තහනම් කර ඇති බැවින් (අපගේ ලැයිස්තුවේ ඇති සියලුම වචන කුඩා අකුරු වලින් ලියා ඇත) භාවිතා කළ නොහැකි අපගේ වචන ලැයිස්තුවද අතිරික්ත වේ. මම මෙම විකල්ප ඇතුළත් කර ඇත්තේ ඔබේ මුරපද ප්‍රතිපත්තිය වින්‍යාස කිරීමට ඒවා භාවිතා කරන ආකාරය පෙන්වීමට පමණි.
ඔබ ඔබේ ප්‍රතිපත්තිය නිර්මාණය කළ පසු, ඊළඟ වතාවේ ලොග් වන විට ඔවුන්ගේ මුරපද වෙනස් කිරීමට පරිශීලකයින්ට බල කළ හැක. පද්ධතිය.

ඔබ දැක ඇති තවත් අමුතු දෙයක් නම් කුඹුරු [u,l,d,o]credit සෘණ අංකයක් අඩංගු වේ. මක්නිසාද යත්, 0 ට වඩා වැඩි හෝ සමාන සංඛ්‍යා ඔබේ මුරපදයේ අක්ෂරය භාවිතා කිරීම සඳහා ගෞරවය ලබා දෙන බැවිනි. ක්ෂේත්‍රයේ සෘණ අංකයක් තිබේ නම්, එයින් අදහස් වන්නේ යම් ප්‍රමාණයක් අවශ්‍ය බවයි.

ණය මොනවාද?

මම ඒවා ණය ලෙස හඳුන්වන්නේ එය ඔවුන්ගේ අරමුණ හැකිතාක් නිවැරදිව ප්‍රකාශ කරන බැවිනි. පරාමිති අගය 0 ට වඩා වැඩි නම්, ඔබ මුරපදයේ දිගට "x" ට සමාන "අක්ෂර බැර" ගණනාවක් එක් කරන්න. උදාහරණයක් ලෙස, සියලු පරාමිතීන් නම් (u,l,d,o)credit 1 ලෙස සකසා, අවශ්‍ය මුරපද දිග 6 විය, එවිට දිග අවශ්‍යතාවය සපුරාලීමට ඔබට අක්ෂර 6ක් අවශ්‍ය වනු ඇත, මන්ද එක් එක් විශාල අකුරු, කුඩා අකුර, ඉලක්කම් හෝ වෙනත් අක්ෂර ඔබට එක් ණයක් ලබා දෙනු ඇත.

ඔබ ස්ථාපනය කරන්නේ නම් dcredit 2 ට, ඔබට න්‍යායාත්මකව අක්ෂර 9 ක් දිග මුරපදයක් භාවිතා කළ හැකි අතර අංක සඳහා අක්ෂර 2 බැර කිරීම් ලබා ගත හැකිය, එවිට මුරපදයේ දිග දැනටමත් 10 විය හැකිය.

මේ උදාහරණය බලන්න. මම මුරපදයේ දිග 13 ට, dcredit 2 ට සහ අනෙක් සියල්ල 0 ට සකසමි.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

මුරපදය අක්ෂර 13 ට වඩා අඩු බැවින් මගේ පළමු චෙක්පත අසාර්ථක විය. ඊළඟ වතාවේ මම “I” අකුර “1” අංකයට වෙනස් කළ අතර අංක සඳහා බැර දෙකක් ලැබුණි, එමඟින් මුරපදය 13 ට සමාන විය.

මුරපදය පරීක්ෂා කිරීම

පැකේජය libpwquality ලිපියේ විස්තර කර ඇති ක්රියාකාරිත්වය සපයයි. එය වැඩසටහනක් සමඟ ද පැමිණේ pwscore, මුරපද සංකීර්ණත්වය පරීක්ෂා කිරීම සඳහා නිර්මාණය කර ඇත. අපි එය ණය පරීක්ෂා කිරීමට ඉහත භාවිතා කළෙමු.
උපයෝගීතාව pwscore සිට කියවයි stdin. උපයෝගීතාව ධාවනය කර ඔබගේ මුරපදය ලියන්න, එය දෝෂයක් හෝ 0 සිට 100 දක්වා අගයක් පෙන්වයි.

මුරපදයේ ගුණාත්මක ලකුණු පරාමිතියට සම්බන්ධ වේ minlen වින්‍යාස ගොනුවේ. සාමාන්‍යයෙන්, ලකුණු 50 ට වඩා අඩු අගයක් “සාමාන්‍ය මුරපදයක්” ලෙස සලකනු ලබන අතර, ඊට ඉහළ අගයක් “ශක්තිමත් මුරපදයක්” ලෙස සැලකේ. තත්ත්ව පරීක්ෂාවන් සමත් ඕනෑම මුරපදයක් (විශේෂයෙන් බලහත්කාර සත්‍යාපනය cracklib) ශබ්ද කෝෂ ප්‍රහාරවලට ඔරොත්තු දිය යුතු අතර, සැකසීම සමඟ ලකුණු 50 ට වඩා වැඩි මුරපදයක් minlen පෙරනිමියෙන් පවා brute force පහර දෙනවා.

නිගමනය

ගැලපුම් pwquality - භාවිතයේ ඇති අපහසුතාවයට සාපේක්ෂව එය පහසු සහ සරල ය cracklib සෘජු ගොනු සංස්කරණය සමඟ pam. මෙම මාර්ගෝපදේශය තුළ, Red Hat 7, CentOS 7, සහ Ubuntu පද්ධතිවල පවා මුරපද ප්‍රතිපත්ති සැකසීමේදී ඔබට අවශ්‍ය සියල්ල අපි ආවරණය කර ඇත. අපි ණය පිළිබඳ සංකල්පය ගැන ද කතා කළෙමු, එය විස්තරාත්මකව ලියා ඇත්තේ කලාතුරකිනි, එබැවින් මෙම මාතෘකාව බොහෝ විට කලින් හමු නොවූ අයට අපැහැදිලි විය.

මූලාශ්ර:

pwquality මිනිසා පිටුව
pam_pwquality මිනිසා පිටුව
pwscore මෑන් පිටුව

ප්‍රයෝජනවත් සබැඳි:

ආරක්ෂිත මුරපද තේරීම - Bruce Schneier
Lorrie Faith Cranor CMU හි ඇගේ මුරපද අධ්‍යයනය ගැන සාකච්ඡා කරයි
එන්ට්‍රොපි පිළිබඳ කුප්‍රකට xkcd කාටූනය

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න