Ke hana ʻana i kahi kulekele ʻōlelo huna ma Linux

Aloha hou mai! Hoʻomaka nā papa ma ka hui papa hou i ka lā ʻapōpō "Ka Luna Hoʻokele Linux", e pili ana i kēia, ke hoʻopuka nei mākou i kahi ʻatikala kūpono e pili ana i ke kumuhana.

Ke hana ʻana i kahi kulekele ʻōlelo huna ma Linux

Ma ke kumu aʻo mua ua haʻi mākou iā ʻoe pehea e hoʻohana ai pam_cracklibe hana paʻakikī i nā ʻōlelo huna ma nā ʻōnaehana Papale ʻulaʻula 6 a i ʻole CentOS. Ma Red Hat 7 pam_pwquality ua panai ʻia cracklib e like me pam module paʻamau no ka nānā ʻana i nā ʻōlelo huna. Module pam_pwquality kākoʻo pū ʻia ma Ubuntu a me CentOS, a me nā OS ʻē aʻe he nui. He mea maʻalahi kēia module i ka hana ʻana i nā kulekele ʻōlelo huna e hōʻoia i ka ʻae ʻana o nā mea hoʻohana i nā kūlana ikaika o kāu ʻōlelo huna.

No ka manawa lōʻihi, ʻo ke ala maʻamau i nā ʻōlelo huna e koi aku i ka mea hoʻohana e hoʻohana i ka poʻokela, ka liʻiliʻi, nā helu, a i ʻole nā ​​​​hōʻailona ʻē aʻe. Ua hoʻolaha nui ʻia kēia mau lula kumu no ka paʻakikī o ka ʻōlelo huna i nā makahiki he ʻumi i hala. Ua nui nā kūkākūkā e pili ana inā he hana maikaʻi kēia a ʻaʻole paha. ʻO ka hoʻopaʻapaʻa nui e kūʻē i ka hoʻonohonoho ʻana i nā kūlana paʻakikī ʻo ia ka mea e kākau ai nā mea hoʻohana i nā ʻōlelo huna ma nā ʻāpana pepa a mālama pono ʻole.

ʻO kekahi kulekele hou i nīnau ʻia e koi i nā mea hoʻohana e hoʻololi i kā lākou ʻōlelo huna i kēlā me kēia x lā. Aia kekahi mau haʻawina i hōʻike ʻia he mea pōʻino kēia i ka palekana.

Ua kākau ʻia nā ʻatikala he nui e pili ana i ke kumuhana o kēia mau kūkākūkā, e hōʻoiaʻiʻo ana i kekahi manaʻo a i ʻole kekahi. Akā ʻaʻole kēia ka mea a mākou e kūkākūkā ai ma kēia ʻatikala. E kamaʻilio kēia ʻatikala pehea e hoʻonohonoho pono ai i ka paʻakikī o ka ʻōlelo huna ma mua o ka mālama ʻana i ke kulekele palekana.

Hoʻonohonoho Kulekele ʻōlelo huna

Ma lalo ʻoe e ʻike ai i nā koho kulekele password a me kahi wehewehe pōkole o kēlā me kēia. ʻO ka nui o lākou e like me nā ʻāpana o ka module cracklib. ʻO kēia ala e maʻalahi ai ka lawe ʻana i kāu mau kulekele mai ka ʻōnaehana hoʻoilina.

  • difok - Ka helu o nā huaʻōlelo i kāu ʻōlelo huna hou ʻaʻole pono e loaʻa i kāu ʻōlelo huna kahiko. (Paʻamau 5)
  • minlen – Ka lōʻihi o ka ʻōlelo huna. (Paʻamau 9)
  • ucredit – ʻO ka helu kiʻekiʻe o nā hōʻaiʻē no ka hoʻohana ʻana i nā huaʻōlelo kiʻekiʻe (inā ʻo ka palena > 0), a i ʻole ka helu haʻahaʻa i koi ʻia o nā huaʻōlelo kiʻekiʻe (inā ʻo ka palena <0). ʻO 1 ka paʻamau.
  • l'aie — ʻO ka helu kiʻekiʻe loa o nā hōʻaiʻē no ka hoʻohana ʻana i nā huaʻōlelo liʻiliʻi (inā ʻo ka palena > 0), a i ʻole ka helu haʻahaʻa i koi ʻia o nā hua liʻiliʻi liʻiliʻi (inā hoʻohālikelike <0). ʻO 1 ka paʻamau.
  • dcredit — Ka helu kiʻekiʻe loa o nā hōʻaiʻē no ka hoʻohana ʻana i nā huahelu (inā ʻo ka palena > 0), a i ʻole ka helu liʻiliʻi i koi ʻia o nā huahelu (inā ʻo ka palena <0). ʻO 1 ka paʻamau.
  • hōʻaiʻē — ʻO ka helu kiʻekiʻe loa o nā hōʻailona no ka hoʻohana ʻana i nā hōʻailona ʻē aʻe (inā ʻo ka palena > 0), a i ʻole ka helu liʻiliʻi i koi ʻia o nā hōʻailona ʻē aʻe (inā ʻo ka palena <0). ʻO 1 ka paʻamau.
  • minclass - Hoʻonohonoho i ka helu o nā papa e pono ai. Aia nā papa i nā ʻāpana i luna (nā huaʻōlelo luna, nā huaʻōlelo haʻahaʻa, nā helu, nā huaʻōlelo ʻē aʻe). ʻO 0 ka paʻamau.
  • maxrepeat - ʻO ka helu kiʻekiʻe o nā manawa i hiki ke hana hou ʻia kahi ʻano ma kahi ʻōlelo huna. ʻO 0 ka paʻamau.
  • maxclassrepeat — Ka helu kiʻekiʻe loa o nā huaʻōlelo i ka papa hoʻokahi. ʻO 0 ka paʻamau.
  • hoʻokolo - Nānā inā loaʻa i ka ʻōlelo huna kekahi mau huaʻōlelo mai nā kaula GECOS o ka mea hoʻohana. (ʻIke mea hoʻohana, ʻo ia hoʻi. inoa maoli, wahi, a me nā mea ʻē aʻe) ʻo 0 ka paʻamau.
  • dictpath - E hele kāua i nā puke wehewehe ʻōlelo cracklib.
  • badwords - Nā huaʻōlelo i hoʻokaʻawale ʻia e pāpā ʻia i nā ʻōlelo huna (inoa ʻoihana, ka huaʻōlelo "password", etc.).

Inā ʻano ʻē ka manaʻo o ka loans, ʻaʻohe mea maʻamau. E kamaʻilio hou mākou e pili ana i kēia ma nā ʻāpana aʻe.

ʻO ka hoʻonohonoho kulekele ʻōlelo huna

Ma mua o kou hoʻomaka ʻana e hoʻoponopono i nā faila hoʻonohonoho, he hana maikaʻi ke kākau ʻana i kahi kulekele ʻōlelo huna ma mua. No ka laʻana, e hoʻohana mākou i nā lula pilikia:

  • Pono ka ʻōlelo huna he 15 ka lōʻihi.
  • ʻAʻole pono e hana hou ʻia ke ʻano like ma mua o ʻelua i ka ʻōlelo huna.
  • Hiki ke hana hou ʻia nā papa ʻano a hiki i ʻehā mau manawa ma kahi ʻōlelo huna.
  • Pono nā huaʻōlelo i loko o kēlā me kēia papa.
  • Pono ka ʻōlelo huna hou he 5 mau huaʻōlelo hou i hoʻohālikelike ʻia me ka ʻōlelo kahiko.
  • E ho'ā i ka nānā GECOS.
  • E pāpā i nā huaʻōlelo "password, pass, word, putorius"

I kēia manawa ua waiho mākou i ke kulekele, hiki iā mākou ke hoʻoponopono i ka faila /etc/security/pwquality.confe hoʻonui i nā koi paʻakikī ʻōlelo huna. Aia ma lalo kahi waihona laʻana me nā manaʻo no ka hoʻomaopopo maikaʻi ʻana.

# 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

E like me kāu i ʻike ai, ʻoi aku ka nui o kekahi mau ʻāpana i kā mākou faila. No ka laʻana, ka palena minclass ʻoi aku ka nui no ka mea ua hoʻohana mua mākou i ʻelua mau huaʻōlelo mai ka papa e hoʻohana ana i nā kahua [u,l,d,o]credit. ʻO kā mākou papa inoa o nā huaʻōlelo ʻaʻole hiki ke hoʻohana ʻia he mea ʻē aʻe, ʻoiai ua pāpā mākou i ka hana hou ʻana i kekahi papa 4 mau manawa (ua kākau ʻia nā huaʻōlelo āpau i kā mākou papa inoa ma nā huaʻōlelo liʻiliʻi). Ua hoʻokomo wau i kēia mau koho e hōʻike i ka hoʻohana ʻana iā lākou e hoʻonohonoho i kāu kulekele ʻōlelo huna.
Ke hana ʻoe i kāu kulekele, hiki iā ʻoe ke koi i nā mea hoʻohana e hoʻololi i kā lākou mau ʻōlelo huna i ka manawa a lākou e komo ai. ʻōnaehana.

ʻO kekahi mea ʻē aʻe āu i ʻike ai, ʻo ia nā māla [u,l,d,o]credit loaʻa i kahi helu ʻino. ʻO kēia no ka mea ʻoi aku ka nui a i ʻole like me 0 e hāʻawi i ka hōʻaiʻē no ka hoʻohana ʻana i ke ʻano i kāu ʻōlelo huna. Inā loaʻa i ka mahina kahi helu maikaʻi ʻole, ʻo ia ka mea e koi ʻia kahi nui.

He aha nā hōʻaiʻē?

Kāhea wau iā lākou he mau hōʻaiʻē no ka mea e hōʻike pololei ana i kā lākou kumu. Inā ʻoi aku ka nui o ka helu hoʻohālikelike ma mua o 0, e hoʻohui ʻoe i kekahi helu o nā "hōʻaiʻē ʻano" like me "x" i ka lōʻihi o ka ʻōlelo huna. No ka laʻana, inā nā ʻāpana āpau (u,l,d,o)credit hoʻonoho ʻia i ka 1 a ʻo ka lōʻihi o ka ʻōlelo huna he 6, a laila pono ʻoe i 6 mau huaʻōlelo e hoʻokō ai i ka lōʻihi koi no ka mea e hāʻawi kēlā me kēia huahelu nui, lalo, huahelu a i ʻole nā ​​mea ʻē aʻe i hoʻokahi hōʻaiʻē.

Inā hoʻokomo ʻoe dcredit ma 2, hiki iā ʻoe ke hoʻohana i ka ʻōlelo huna he 9 mau huaʻōlelo ka lōʻihi a loaʻa iā ʻoe nā hōʻaiʻē 2 no nā helu, a laila hiki i ka 10 ka lōʻihi o ka ʻōlelo huna.

E nānā i kēia laʻana. Hoʻonoho au i ka lōʻihi o ka ʻōlelo huna i ka 13, hoʻonoho i ka dcredit i 2, a me nā mea ʻē aʻe i 0.

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

$ pwscore
 Th1sistwelve
 18

ʻAʻole i hāʻule kaʻu nānā mua no ka mea ʻoi aku ka lōʻihi o ka ʻōlelo huna ma mua o 13 mau huaʻōlelo. I ka manawa aʻe ua hoʻololi au i ka leka "I" i ka helu "1" a loaʻa iaʻu nā hōʻaiʻē ʻelua no nā helu, a ua like ka ʻōlelo huna me 13.

Hoʻāʻo ʻōlelo huna

Hoʻolapala libpwquality hāʻawi i ka hana i wehewehe ʻia ma ka ʻatikala. Hele pū me kahi papahana pwscore, i hoʻolālā ʻia e nānā i ka paʻakikī o ka ʻōlelo huna. Ua hoʻohana mākou ma luna e nānā i nā hōʻaiʻē.
Mea hoʻohana pwscore heluhelu mai stdin. E holo wale i ka pono a kākau i kāu ʻōlelo huna, e hōʻike ana i kahi hewa a i ʻole kahi waiwai mai 0 a 100.

Pili ka helu ʻōlelo huna i ka ʻāpana minlen ma ka waihona hoʻonohonoho. Ma keʻano laulā, ua manaʻo ʻia ka helu ma lalo o 50 he "hua'ōlelo maʻamau", a ʻo ka helu ma luna aʻe i manaʻo ʻia he "hua'ōlelo ikaika". ʻO kēlā me kēia ʻōlelo huna e hāʻawi i nā loiloi maikaʻi (ʻoi aku ka hōʻoia koi ʻia cracklib) pono e kū i ka hoʻouka puke wehewehe ʻōlelo, a me ka ʻōlelo huna me ka helu ma luna o 50 me ka hoʻonohonoho minlen ʻoiai ma ka paʻamau brute force hoouka kaua.

hopena

hoʻoponopono pwquality - he maʻalahi a maʻalahi hoʻi i ka pilikia o ka hoʻohana cracklib me ka hoʻoponopono faila pololei pam. Ma kēia alakaʻi, ua uhi mākou i nā mea āpau āu e pono ai ke hoʻonohonoho i nā kulekele ʻōlelo huna ma Red Hat 7, CentOS 7, a me nā ʻōnaehana ʻo Ubuntu. Ua kamaʻilio pū mākou e pili ana i ka manaʻo o nā hōʻaiʻē, ka mea i kākau ʻole ʻia e pili ana i nā kikoʻī, no laila ua maopopo ʻole kēia kumuhana i ka poʻe i ʻike ʻole ma mua.

Nā kumuhana:

ʻaoʻao kanaka pwquality
ʻaoʻao kanaka pam_pwquality
ʻaoʻao kanaka pwscore

Hoʻohui pono:

Ke koho ʻana i nā ʻōlelo huna palekana - Bruce Schneier
Kūkākūkā ʻo Lorrie Faith Cranor i kāna mau ʻōlelo huna ma CMU
ʻO ke kiʻi kiʻi xkcd Infamous ma Entropy

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka