天天看點

NTLM 網絡安全認證程式設計實作(VC)

                                              NTLM 網絡安全認證程式設計實作(VC)

                                               □   深圳遠客 ([email protected])

   為什麼你的基于TCP/IP的應用軟體在開發調試時好好的,到了使用者手上就有的就不行?原因是你的應用軟體沒法通過NTLM 認證。

  NTLM 是基于WindowNT 作業系統的網絡安全認證管理機制的一種協定。随着網絡資源的互訪共享,網絡安全問題被MS作業系統當作一項重要的任務在日溢加強,從早期的LM認證到NTLM 再到NTLMV2,NTLM網絡安全認證也讓網絡通路的安全有最強的保障,于是很多公司,大企業都會采用基于NTLM 認證的伺服器加強内部系統資源互訪的安全。非法使用者很難在非受權情況下進入系統,也不能通路外部資,比較流行的HTTP 代理服器就是應用廣泛的例子 ,如果你公司網絡管理者設定了代理伺服器,那麼你的任何網絡通路都要經過代理伺服器NTLM認證,當然在IExploer 中經過簡單的設定你就可以上網了,因為IExploer内部也經有內建了NTLM子產品(NT作業系統中都有NTLM子產品)。 雖然 NTLM網絡安全認證管理機制能保證網絡安全,但給很多的應用軟體通路網絡資源帶來了麻煩。因為,你的應用軟體要合法通路就得先通過NTLM的把關,象下載下傳軟體,聊天軟體,網絡遊戲,網絡監制,Mail管理軟體,WEB應用軟體等,如果說是一個優秀的軟體,都必須要能夠實作這種功能。因些在本文中,我将給大家介紹如用C++代碼實作NTLM認證。 一、NTLM認證過程 NTLM認證分3個步驟:   a.第一步是協商過程,由Client發起,主要任務是Client 通知Server ,Client要進行認證,并告訴Server 是采用何種認證方式NTLM 、LM 或NTLMV2以及其它相關的資訊(主要有:字元格式、Client的作業系統等,詳見NTLM通訊協定)。Server   收到Client發出的協商内容後會按照本次協商作出回應。   b.第二步是Server按照上步Client要求作出回應,在回應的資訊中會給出8位元組的挑戰(chellange )資訊。挑戰資訊是給Client的用來作第三步認證回應Server用的。   c. 第三步是Client 用挑戰資訊經過嚴格加密算法,來回應Server的挑戰。如果Server認為你挑戰成功,就在一切OK。     這三個過程沒有哪步不重要,步步關鍵,稍有不慎,前功盡棄!                             

NTLM 網絡安全認證程式設計實作(VC)

  下面我會從NTLM協定着手,從3個過程詳細來實作。 (待繼續。。。。)