亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        NTLM身份鑒別機(jī)制及在 T0Net系統(tǒng)中的應(yīng)用

        2011-01-12 12:25:02桂兵祥
        關(guān)鍵詞:機(jī)制用戶系統(tǒng)

        桂兵祥

        (武漢工業(yè)學(xué)院計(jì)算機(jī)與信息工程系,湖北武漢 430023)

        NTLM是一個(gè)身份鑒別協(xié)議[1],由 NTLMSSP(NTLM Security Support Provider)支持,主要應(yīng)用于不同的微軟網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)中。其早期應(yīng)用于 DCE/RPC的安全鑒別與協(xié)商,其還作為一個(gè)單一簽名機(jī)制整合于無(wú)處不在的微軟系統(tǒng)中。其使用了基于挑戰(zhàn) -響應(yīng)機(jī)制的鑒別方法,該機(jī)制中,客戶端能在不發(fā)送用戶密碼給服務(wù)器的情況下就能實(shí)現(xiàn)用戶的身份鑒別,其通常由協(xié)商 (negotiation)、挑戰(zhàn) (challenge)和鑒別 (authentication)三類消息組成。

        1 NTLM身份鑒別機(jī)制基本原理

        NTLM是一個(gè)身份鑒別機(jī)制,其基本原理如圖1所示。

        第一步:客戶端首先創(chuàng)建并發(fā)送第一類消息(協(xié)商 negotiation)給服務(wù)器,該消息中主要包含服務(wù)器端所要求的客戶端的特征列表。

        第二步:服務(wù)器接收并分析該消息,然后創(chuàng)建第二類消息 (挑戰(zhàn) challenge)并發(fā)往客戶端,以此與客戶端建立協(xié)商,并對(duì)之提出挑戰(zhàn),其可能隨意性地包含鑒別對(duì)象特征列表中的一些信息。

        第三步:客戶端創(chuàng)建第三類消息 (鑒別 authentication)對(duì)第二類挑戰(zhàn)消息做出響應(yīng),以實(shí)現(xiàn)鑒別功能,該消息不用直接發(fā)送密碼也能顯示出客戶端特定的身份信息。

        圖1 挑戰(zhàn)響應(yīng)機(jī)制原理示意圖

        對(duì)于服務(wù)器發(fā)來(lái)的挑戰(zhàn),客戶端可以創(chuàng)建一個(gè)或多個(gè)響應(yīng)消息,這些響應(yīng)消息共分以下五類:①LM(LAN Manager)響應(yīng)——大多數(shù)客戶端發(fā)出此類響應(yīng),其也是最原始的響應(yīng)類型;②NTLM響應(yīng)——此類響應(yīng)主要由基于 NT構(gòu)架的客戶端發(fā)出,包括 Windows 2000和 XP;③NTLMv2響應(yīng)——這是一個(gè)新的響應(yīng)類型,Windows NT Service Pack 4對(duì)此有所介紹。在激活的 NTLM version 2系統(tǒng)中,其代替了 NTLM響應(yīng);④LMv2響應(yīng)——在 NTLM version 2系統(tǒng)中,其是 LM響應(yīng)的替代者;⑤NTLM2會(huì)話響應(yīng)—其用于無(wú) NTLMv2鑒別情況下的 NTLM2會(huì)話安全協(xié)商過(guò)程中,此策略對(duì) LM響應(yīng)和NTLM響應(yīng)的語(yǔ)義有所改變。

        大多數(shù)客戶端發(fā)出的是 LM響應(yīng)類,這一策略早于 NTLM響應(yīng),安全性不如 NTLM,當(dāng)新一代的客戶端支持 NTLM時(shí),其往往將此兩類響應(yīng)一并發(fā)送,以實(shí)現(xiàn)與不同合法的服務(wù)器間的兼容性,因此,在很多LM響應(yīng)類型客戶端、盡管其支持 NTLM響應(yīng),但安全缺陷依然存在。而NTLM響應(yīng)是由新一代客戶端發(fā)出,這一策略在安全性方面較 LM響應(yīng)有很大的改進(jìn)。

        2 應(yīng)用于Window系統(tǒng)的 NTLM實(shí)用技術(shù)—NTLMSSP和 SSPI

        Windows系統(tǒng)提供了一個(gè)用戶身份鑒別框架,就是著名的 SSPI(the Security Support Provider Interface),類似于微軟的 GSS-API(Generic Security Service Application Program Interface),它提供了應(yīng)用于網(wǎng)絡(luò)協(xié)議上層、具有獨(dú)立機(jī)制的身份鑒別方式。SSPI支持幾個(gè)潛在的服務(wù)供應(yīng)商,NTLMSSP(NTLM Security Support Provider)就是其中之一,它提供了NTLM鑒別機(jī)制,上面已有所提及。

        SSPI提供了十分靈活的 API,用于處理非透明的、特殊提供者的鑒別令牌,前面提到的 NTLM的各類消息就是這樣的令牌,其細(xì)節(jié)由 NTLMSSP處理。SSPI提供的 API對(duì) NTLM的所有細(xì)節(jié)進(jìn)行了精簡(jiǎn),應(yīng)用開(kāi)發(fā)人員甚至不需要意識(shí)到正在應(yīng)用 NTLM。這里僅簡(jiǎn)要地描述應(yīng)用于 NTLM中的 SSPI鑒別握手過(guò)程 (如圖2所示)。

        圖2 NTLM中的 SSPI鑒別握手過(guò)程

        (1)客戶端通過(guò) SSPI的 Acquire Credentials Handle函數(shù)獲得為用戶設(shè)置的信用描述信息,然后調(diào)用SSPI的 Initialize Security Context函數(shù)以獲得一個(gè)鑒別請(qǐng)求令牌,如前述中的第一類消息。最后發(fā)送此令牌給服務(wù)器端,Initialize Security Context函數(shù)返回值指明鑒別過(guò)程將要求多步操作才能完成。

        (2)服務(wù)器端接收從客戶端發(fā)來(lái)的令牌,以此作為輸入,調(diào)用 SSPI的 Accept Security Context函數(shù),由此在服務(wù)器端創(chuàng)建了本地安全上下文,描述客戶端。然后產(chǎn)生一個(gè)鑒別響應(yīng)令牌,如前述中的第二類消息,發(fā)往客戶端。Accept Security Context函數(shù)的返回值指明有必要進(jìn)一步從客戶端獲取信息,以完成鑒別過(guò)程。

        (3)客戶端接收由服務(wù)器端發(fā)來(lái)的響應(yīng)令牌,以此做為輸入,再次調(diào)用 Initialize Security Context函數(shù),產(chǎn)生另一個(gè)鑒別請(qǐng)求令牌,如前述中的第三類消息,其返回值指明安全上下文已被成功地初始化,然后將此鑒別請(qǐng)求令牌發(fā)往服務(wù)器端。

        (4)服務(wù)器端接收由客戶端發(fā)來(lái)的令牌,以此作為輸入,再次調(diào)用 Accept Security Context函數(shù),其返回值指明上下文已被成功地接收,不再產(chǎn)生新的令牌,鑒別過(guò)程到此完成了。

        3 NTLM身份鑒別機(jī)制在 T0Net系統(tǒng)實(shí)際開(kāi)發(fā)中的應(yīng)用

        3.1 T0Net系統(tǒng)概述

        T0Net系統(tǒng)主要功能是為不同的局域網(wǎng)之間的通信提供安全、透明的通訊平臺(tái)。目前,局域網(wǎng)應(yīng)用已十分普遍,尤其是局域網(wǎng)內(nèi)的通信、遠(yuǎn)程控制與交互式協(xié)作非常方便。但是,隨著經(jīng)濟(jì)的全球化,企業(yè)的地域界限早已被打破,集中式的辦公方式已為分布式的辦公方式所取代,這就要求在不同的局域網(wǎng)之間能進(jìn)行安全、便捷的通信,然而,幾乎所有的局域網(wǎng)為了安全都裝有防火墻,這給局域網(wǎng)和局域網(wǎng)之間 (通過(guò) INTERNET)通信的便捷性、遠(yuǎn)程控制與交互式協(xié)作造成很大的障礙[2]。T0Net網(wǎng)絡(luò)系統(tǒng)能穿透防火墻、為企業(yè)與企業(yè)之間、企業(yè)與客戶之間建立起安全、便捷、交互式的通訊平臺(tái),實(shí)現(xiàn)了應(yīng)用級(jí)的共享。

        T0Net系統(tǒng)能將分布式的局域網(wǎng)通過(guò) INTER-NET連接成一個(gè)大的虛擬局域網(wǎng),實(shí)現(xiàn)安全、透明的訪問(wèn)。與任何系統(tǒng)一樣,用戶在登錄使用該服務(wù)之前,都有一個(gè)身份認(rèn)證與鑒別過(guò)程。通常的方法是先為每個(gè)用戶建立一個(gè)用戶名和密碼,然后,用戶使用該用戶名和密碼登錄,服務(wù)器通過(guò)比較鑒別以確定該用戶是否合法。該方法中,用戶名和密碼無(wú)論是以明文還是加密傳輸,都不能提供足夠的安全性。而作為基于挑戰(zhàn) -響應(yīng)的新型用戶鑒別機(jī)制,NTLM技術(shù)在身份認(rèn)證與鑒別方面,具有更高的安全性。在 T0Net系統(tǒng)就使用了這種機(jī)制。

        3.2 NTLM在 T0Net系統(tǒng)中的應(yīng)用

        根據(jù)面向?qū)ο蟪绦蛟O(shè)計(jì)思想[3]:首先創(chuàng)建了一個(gè)基類 class CXNTLMPdu;然后在此基礎(chǔ)上派生三個(gè)消息類:class CXNTLMNegotiationPdu;class CXNTLMChallengePdu class和CXNTLMAuthenticationP-du;最后,因?yàn)?NT LM各類消息是通過(guò) http協(xié)議來(lái)傳輸?shù)?故還創(chuàng)建了一個(gè)類 class CXNTLMOverHttpMgr。具體NTLM類圖創(chuàng)建及繼承關(guān)系如圖3所示。

        圖3 NTLM類圖及繼承關(guān)系示意圖

        部分代碼框架如下。

        基類 class CXNTLMPdu:

        class CXNTLMPdu

        {

        ………

        public:

        BOOL Encode (CXCharStr&strBase64Serialized);

        static CXNTLMPdu* Decode(CXCharStr&str-Base64Serialized);

        ………

        public:

        static void NTLMS wap(void* pData,int size);

        static void SerializeWStrTo(CXByteStream&os,CXWCharStr&wstr);

        static void SerializeWStrFrom(LPBYTE lpBuf,WORD wByteLength,

        CXWCharStr&wstr);

        static void SerializeStrFrom (LPBYTE lpBuf,WORD wByteLength,

        CXCharStr&str);

        static void Serialize Blob From(LPBYTE lpBuf,WORD wByte Length,

        CXBlob&blob);

        ………

        };

        三個(gè)派生消息類:

        1)協(xié)商 (negotiation)-class CXNTLMNegotiationPdu;

        classCXNTLMNegotiationPdu:publicCXNTLMPdu

        {

        ………

        public:

        virtual int GetPduType(){return XNTLM_NEGOT IAT ION_PDU;}

        virtual DWORD Get Serial Length();

        virtual DWORD Serialize To(LPBYTE lp Buffer,DWORD dw Length);

        virtual DWORD Serialize From(LPBYTE lp Buffer,DWORD dw Length);

        ………

        };

        2)挑戰(zhàn) (challenge)-class CXNTLMChallengeP-du;

        class CXNTLMChallengePdu:public CXNTLMP-du

        {

        ………

        public:

        virtual int GetPduType(){return XNTLM_CHALLENGE_PDU;}

        virtualDWORD Get SerialLength();

        virtual DWORD SerializeTo(LPBYTE lpBuffer,DWORD dw Length);

        virtualDWORD SerializeFrom(LPBYTE lpBuffer,DWORD dw Length);

        ………

        BYTE m_abChallenge[8];

        BYTE m_abContext[8];

        CXPtr Listm_aTarget Info List;

        };

        3)鑒別 (authentication)-class CXNTLM Authentication Pdu;

        class CXNTLM Authentication Pdu:public CXNTLMPdu

        {

        ………

        public:

        virtual int GetPduType(){return XNTLM_AUTHENTICAT ION_PDU;}

        virtualDWORD GetSeria lLength();

        virtual DWORD SerializeTo(LPBYTE lpBuffer,DWORD dwLength);

        virtualDWORD SerializeFrom(LPBYTE lpBuffer,DWORD dwLength);

        public:

        //pChalenge points to 8-byte challenge from NTLM type-2 message

        //pHash points to a 24-byte buffer

        static BOOL GenerateLMHash(LPCSTR lpszPassword,

        LPBYTE pChallenge,LPBYTE pHash);

        static BOOL GenerateNTLMHash(LPCSTR lpsz-Pass word,

        LPBYTE pChallenge,LPBYTE pHash);

        static BOOL GenerateHash(LPBYTE ab3Keys,

        LPBYTE pChallenge,LPBYTE pHash);

        static void SetupDESKey(unsigned char* key_56,

        des_key_schedule&ks);

        public:

        CXBlob&RefLMResponse(){returnm_blobLMResponse;}

        CXBlob&RefNTLMResponse(){return m_blobNTLMResponse;}

        ………

        CXBlob m_blobLMResponse;

        CXBlob m_blobNTLMResponse;

        ………

        };

        最后,NTLM各類消息是通過(guò) http協(xié)議來(lái)傳輸?shù)?故還創(chuàng)建了一個(gè)類 class CXNTLMOverHttpMgr;

        class CXNTLMOverHttpMgr

        {

        public:

        CXNTLMOverHttpMgr();

        virtual~CXNTLMOverHttpMgr();

        ………

        public:

        void Initiate();

        BOOL GetNTLM Http Request(CXCharStr&strRequest);

        BOOL Process NTLMHttpResponse (LPCSTR lpszResponse);

        void Reset();

        public:

        virtual void Get Authentication Info(

        ………

        CXBlobm_blob Challenge;

        CXCharStrm_str Target Name;

        };

        4 結(jié)束語(yǔ)

        目前,C/S模式中,大多數(shù)客戶端發(fā)出的是 LM響應(yīng)類,這一策略早于 NTLM響應(yīng),安全性不如 NTLM,當(dāng)新一代的客戶端支持 NTLM時(shí),其往往將此兩類響應(yīng)一并發(fā)送,以實(shí)現(xiàn)與不同的合法服務(wù)器間的兼容性,因此,在很多 LM響應(yīng)類型客戶端、盡管其支持NTLM響應(yīng),但安全缺陷依然存在。而NTLM響應(yīng)是由新一代客戶端發(fā)出,這一策略在安全性方面較LM響應(yīng)有大的改進(jìn)。然而,眾所周知,網(wǎng)絡(luò)安全具有相對(duì)性,NT LM也并非無(wú)懈可擊,當(dāng) NTLM響應(yīng)連帶LM響應(yīng)一并發(fā)出時(shí),此算法上的脆弱性還是可能被黑客所利用,以獲得NTLM響應(yīng)所用的相關(guān)密碼。盡管如此,NT LM身份認(rèn)真與鑒別機(jī)制仍然具有較高的安全性,能滿足絕大多數(shù)用戶的的需求。T0Net系統(tǒng)現(xiàn)已投入使用,取得了較好的實(shí)用效果。

        [1] Eric Glass.The NTLM Authentication Protocol[EB/OL].[2009-12-15].http://davenport.sourceforge.net/ntlm.html.

        [2] 袁津生.計(jì)算機(jī)網(wǎng)絡(luò)安全基礎(chǔ) [M].北京:人民郵電出版社,2008.

        [3] 張海潘.面向?qū)ο蟮某绦蛟O(shè)計(jì) [M].北京:清華大學(xué)出版社,2008.

        猜你喜歡
        機(jī)制用戶系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        自制力是一種很好的篩選機(jī)制
        文苑(2018年21期)2018-11-09 01:23:06
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        破除舊機(jī)制要分步推進(jìn)
        如何獲取一億海外用戶
        亚洲av最新在线网址| 亚洲中文字幕一区二区在线| 色婷婷av一区二区三区久久| 50岁退休熟女露脸高潮| 一区二区日韩国产精品| 日本高清中文一区二区三区| 日韩欧美精品有码在线观看| 中文字幕亚洲乱亚洲乱妇| 我的极品小姨在线观看| 中文字幕亚洲精品在线免费| 18禁裸男晨勃露j毛网站| 无遮无挡爽爽免费毛片| 欧美成人中文字幕| 亚洲午夜无码久久久久软件| 91一区二区三区在线观看视频| 亚洲人成网线在线播放va蜜芽| 国产成人综合久久精品免费| 噜噜噜色97| 国产综合开心激情五月| 丁香五月亚洲综合在线| 日韩成人极品在线内射3p蜜臀| 午夜福利视频男同女同| 成人男性视频在线观看| 亚洲国产成人极品综合| 国产精选污视频在线观看| 亚洲三级香港三级久久| 色婷婷精品大在线视频| 丰满少妇按摩被扣逼高潮| 国产绳艺sm调教室论坛| 国产99页| 免费啪啪av人妻一区二区| 国产婷婷色一区二区三区深爱网| 国产无人区码一码二码三mba| 久久中文字幕日韩无码视频 | 亚洲VA不卡一区| 亚洲国产精品免费一区| 国产日产亚洲系列首页| 天天爽夜夜爽人人爽| 国产精品 视频一区 二区三区| 亚洲av乱码一区二区三区女同| 人妖av手机在线观看|