※ 引述《[email protected] (蛋捲廣場)》之銘言:
: 《 在 [email protected] (啦啦:)我是好in2) 的大作中提到: 》
: : 理論上不行.
: : 因為 FreeBSD, Windows儲存密碼都是單向加密的,
: : 妳沒有辦法取得原來的密碼.
: : 所以頂多把所有的帳號轉來轉去,
: : 不可能把密碼一起轉過去。
: 對於單向加密這個問題一直覺得很好玩
: 單向加密是不是連設計加密方法的人都解不出來呢?
: 或者是說因為單向加密的加密方式因為沒公開,所以沒法子解?
: 還是說需要花很多時間才能解?
: thanks
這樣子講好了...
大致上,這種所謂的“單向性密碼”有一個特色
通常都會有一個“加密原則”這項是固定的...
比如 123 加密後 會變成 234(加1)
這樣子是可以反運算的
但是如果我在加個“加密字串”如“3”
那 123 加密後 會變成 456
另一種方式是利用運算後得到一串值
如 123 加密後 會變成 AbcdEfghIjk
但是 AbcdEfghIjk 反運算回來之後,不一定是123,也可能是456
目前之所以說,是單向性的
1. 無法還原: 因為是經由運算之後的字串,經由反運算後不見得能獲得原本的字串
2. 加密字串不同: 甲電腦用 用1做加密字串、乙電腦用 3做加密字串
同樣的密碼,獲得的加密結果並不一樣。
所以有所謂的爆力解密法
把所有文字的組合拿去驗證,看能不能幸運的拿到正確的原始密碼
(所以一般而言,完全不建議拿字典裡的字、ID、生日做密碼)
在簡言之...
一般完全採用預設值,架設的二台同系統的OS
他們的密碼檔可能是用同樣的編碼
那麼他們的密碼檔能夠互通
但是管理員如果沒有利用特別的方式(如直接紀錄每個login時打進的字串)
是無法拿到user的原始密碼的。
題外話:
SSH 連線,也是類似的方式... 主機一組加密、用戶端一組加密字串
如果沒同時拿到這二組,那麼得到的結果就不會是正確的了...
以上如有膠誤,請來信指正 謝謝...
--
想找Linux 或是 FreeBSD 的資料?
到 http://www.study-area.org 找找吧!
by Study-Area 團隊 梁楓
--
㊣Origin:《 成大計中 BBS 站 》[bbs.ncku.edu.tw] 來源:[PC1.brain-c.com]
> -------------------------------------------------------------------------- <
發信人: [email protected] (無言無言到處晃), 看板: FreeBSD
標 題: Re: 請問要怎麼把user跟group轉到windows2000上
發信站: 成大計中BBS (Wed Jun 19 08:29:44 2002)
轉信站: Ptt!news.ntu!spring!news.nctu!news.nsysu!news.ccns.ncku!ccnews.ncku!nc
: 上面這段, 其實我看不太懂 :~
就只是加密的方式而己
裡面講的 123 加密後是456 其實不過是把所有的數字加上3
所以照推算密碼如果是 456 那結果就是 789了
一般加密都會有一個加密原則,只是這個原則一不一樣而己。
: > 目前之所以說,是單向性的
: > 1. 無法還原: 因為是經由運算之後的字串,經由反運算後不見得能獲得原本的字串
: 通常不是反運算後不同, 而是根本找不到反函數可以逆推回來
: > 2. 加密字串不同: 甲電腦用 用1做加密字串、乙電腦用 3做加密字串
: > 同樣的密碼,獲得的加密結果並不一樣。
: 這跟 one-way function 有什麼關係 ?
這二個合在一起講...
就算是不能反推回去的密碼,一定要有固定的加密原則
否則無法比對使用者輸入的密碼是否正確
這點應該是無庸置疑的吧? 除非你的一次性加密連往後都不需要驗證。
所以,您講的“根本找不到反函數可以逆推回來”
hmm.... 我不能完全認同,至少我們用固定的加密原則的話
每次得到的結果會是一樣的
ex. 一個程式語言用來加密的話,如perl是crypt的方式加密
我曾經寫過一個程式是“更變所有User的密碼”就是以這個函式為主
先利用 RedHat 7.2 做一次實驗:
Password 是 1234,加密字串是ab,結果是:abWMpd9uBwR.g
Password 是 2345,加密字串是ab,結果是:abMcHhdS/ZmJo
Password 是 3456,加密字串是ab,結果是:abuqMTW.acYGA
Password 是 5678,加密字串是ab,結果是:abFxQCo2p0du.
在到FreeBSD 4.5 做一次實驗:
Password 是 1234,加密字串是ab,結果是:abWMpd9uBwR.g
Password 是 2345,加密字串是ab,結果是:abMcHhdS/ZmJo
Password 是 3456,加密字串是ab,結果是:abuqMTW.acYGA
Password 是 5678,加密字串是ab,結果是:abFxQCo2p0du.
是否有發現,結果都是一樣的?
在來一個,我們只更改加密字串:
Password 是 1234,加密字串是ab,結果是:abWMpd9uBwR.g
Password 是 1234,加密字串是ac,結果是:acjaUf8m.3i1U
所以上面我才特別申名,除非你是特意的去變更加密字串
否則不同的主機,密碼加密後的結果可能是完全一樣的
但是你反解回去的時候,並不表示結果就會一樣
就像前面的文章說的,所謂一次性的加密法,也許沒有“逆向函式”的功能
但是如果你能先做出一個資料庫,在去比對出結果是否有可能一樣
這種單向加密的優點,是無法了解“最初的原始密碼”長什麼樣
但是如果單純要能破解密碼,使用想用的系統的話,並不是做不到的...
記得,只要結果相同,就無所謂是不是利用“逆向函式”處理的,都一樣的危險
那還是有機會被破解的,所以爆力破解法一直是許多人的最愛 :p 。
我就有朋友寫了個程式,想要把1~0 a~b A~B 加密字串ab的結果全算出來...
然後就等著拿到人家的shadow or master.passwd了 :p