PAM 身份鑑別深度測試

吐槽一下,本身在word上整理的,發現不能直接拷貝到CSDN,有些序號也改變了,很無奈。。

Test1~9,主要針對minlen、ucredit、lcredit、dcredit、ocredit、minclass這幾個參數的測試

Test10,主要針對difok參數的設置

Test11~13,主要對minlen測試

Teset1

 

  1. Ab1-kk   √
  2. Ab1-k    ×(score爲9,應該是由於字符個數小於6個導致的)

 

Teset2

 

  1. Ab1-kkkk√value=4*2+4=12
  2. Ab1-kkk    ×    value=4*2+3=11
  3. Ab1kkkkkk  ×字符種類不滿足

 

Teset3

 

  1. Ab1-kkkk   √    value=4*2+4+1=13,”*2”表示四類字符,額外+1;
  2. Ab1-kkk    √value=4*2+3+1=12,加1原因紅色框,當小於等於2個小寫時候,有幾個就額外加幾!!!
  3. Ab1-kk×value=4*2+3+1=11

 

   Ab1kkkkkk  ×

 

Teset4

 

  1. Ab1kkkkkk  ×(雖然score爲13,但是缺少特殊字符,minclass其實沒用)

 

 

Teset5

Teset6

 

  1. Ab1-kkkk  ×value=8(不會額外加1)

 

  1. Ab1-kkkkkkk   ×    value=11(不會額外加1)

 

  1. Ab1-kkkkkkkk  √value=12

Teset7

 

  1. qwertyuiopas√(不會校驗字符類別,但是會校驗不同的字符,具體密碼允許幾個不同字符還未知)
  2. qqqqqqqqqqqq    x(應該有另外一條規則限定密碼都是相同字符的情況)

 

  1. q1q1q1q1q1q1 x

 

  1. qwerqwerqwer     x(有4個不同字符失敗)
  2. qwertqwertqw√(有5個不同字符成功)

Teset8(驗證minclass)

含義是密碼所含有字符類型的個數。

  • 如果四種字符都設置爲0,且minclass=2,則表示密碼至少含有2種字符。
  • 如果四種字符都設置爲非0,且minclass=2,四種字符非0要求密碼有4種類型,而minclass=2要求至少有2種類型,綜合兩者,密碼需要四種類型。

 

  1. qwertyuiopasx(只有1種類型是失敗的,但如果不設置minclass=2,則是成功的)
  2. qwertyuiopaS√(兩種字符類型,則成功)

Teset9

 

  1. Ab1-x

 

  1. Ab1-kx

 

  1. abcdef—321    x (三類字符,所以失敗)

 

  1. Ab1-kk     √   密碼至少包含6個字符,pam默認規則;也必須包含四種字符。

Teset10(difok測試)

 

  1. 初始密碼qazwsxeedcRFV
  2. 改爲qazwsxedcRGB,x(2個字符不同)

 

  1. 改爲qazwsxedcTGB,  √(3個字符不同)

Teset11

 

  1. 設置密碼qazwsxEDx(有點奇怪,score8爲啥失敗了??
  2. 設置密碼qazwsxedcR√(score得分爲10纔可以,感覺minlen8失效了)

Teset12

 

  1. qazwsxedcx(score爲9)
  2. qazwsxedcr√(score爲10)

如果ucredit、lcredit、dcredit、ocredit都爲0,貌似pam要求score得分至少爲10,這有待確認。如果是這樣的話,minlen小於10無效。

Teset13

 

  1. qazwsxedcrfvtgx(score爲14)
  2. qazwsxedcrfvtgb√(score爲15)

與test12比較,如果ucredit、lcredit、dcredit、ocredit都設置爲0,minlen大於10是可以的生效的,測試的是15

總結:

  1. 密碼總共有四種字符
  2. 不具體設置ucredit、lcredit、dcredit、ocredit四種字符的個數,則默認爲1
  3. minlen不是所設置密碼的最小位數,實際是最小scores,pam會根據規則計算所設置密碼的“得分”情況;
  4. ucredit、lcredit、dcredit、ocredit的個數N,可見test3。
  • 如果大於0,說明會存在extra add 1的情況,舉例

若ucredit=2lcredit=2dcredit=2ocredit=2,密碼爲”aaBB11-cD”,得分爲:

Value=密碼個數(9) +ucredit(2)+ lcredit(2)+dcredit (2)+ocredit(1) = 16

注1網上各種博客所說的“N>0表示最多出現的次數”是不恰當的,實際表示的意思爲最多額外加的score,比如上述的的例子ucredit=2,所設置密碼有3個大寫字母,那麼score最多額外加2,這纔是“最多”的真正含義,當然ocredit=1,實際密碼出現了一個特殊字符,那麼也就額外加1了。

  • 如果小於0,表示所設置的密碼至少存在N個,沒有額外加1的動作;
  1. Pam_cracklib.so還有隱含規則
  • 密碼最小個數爲6
  • 將四種字符個數都設置爲0的情況下,經過測試,密碼設置需要有至少5個不同字符。
  1. Minclass是要求最小類別的數量,如果ucredit、lcredit、dcredit、ocredit都非0,則該參數設置與否是失效的,因爲密碼要求四種字符。
  2. 參考文檔

http://www.linux-pam.org/Linux-PAM-html/sag-pam_cracklib.html

http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章