配套課件-計算機網絡安全技術教程_第1頁
配套課件-計算機網絡安全技術教程_第2頁
配套課件-計算機網絡安全技術教程_第3頁
配套課件-計算機網絡安全技術教程_第4頁
配套課件-計算機網絡安全技術教程_第5頁
已閱讀5頁,還剩569頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機網絡安全技術教程第1章

網絡安全概述

網絡安全的基本內容、網絡面臨的主要威脅網絡安全的基本技術與策略常用的網絡協議、網絡服務、網絡命令較為詳細的介紹了實驗環境的配置本章學習要點網絡安全(NetworkSecurity)是一門涉及計算機科學、網絡技術、通信技術、密碼技術、信息安全技術、應用數學、數論、信息論等多種學科的綜合性科學。從總體上,網絡安全可以分成兩大方面:網絡攻擊技術和網絡防御技術,只有全面把握兩方面的內容,才能真正掌握計算機網絡安全技術。網絡安全“理論聯系實際,并有所發展”是本書的指導方針:(1)“理論”即計算機網絡以及網絡安全的理論。(2)“實際”即眾多的網絡安全攻防工具。(3)“發展”即利用編程技術編寫一些網絡安全工具。本書指導方針:為數據處理系統建立和采用的技術和管理的安全保護,保護計算機硬件、軟件和數據不因偶然和惡意的原因遭到破壞、更改和泄露。由此可以這樣理解計算機網絡的安全:通過采用各種技術和管理措施,使網絡系統正常運行,從而確保網絡數據的可用性、完整性和保密性。所以,建立網絡安全保護措施的目的是確保經過網絡傳輸和交換的數據不會發生增加、修改、丟失和泄露等。

網絡安全的定義:

從廣義上說,網絡安全包括網絡硬件資源及信息資源的安全性。硬件資源包括通信線路、通信設備(交換機、路由器等)、主機等。要實現信息快速、安全的交換,一個可靠的物理網絡是必不可少的。信息資源包括維持網絡服務運行的系統軟件和應用軟件以及在網絡中存儲和傳輸的用戶信息數據等。信息資源的保密性、完整性、可用性、真實性等是網絡安全研究的重要課題,也是本書涉及的重點內容。

網絡安全的定義:1.網絡設備安全包括設備上運行的網絡軟件的安全性,使其能夠正常地提供網絡服務。2.網絡數據安全在網絡中存儲和傳輸的信息的安全性,即網絡系統的信息安全。確保網絡系統的信息安全是網絡安全的重要目標。

網絡安全的主要內容1.可用性可用性是指得到授權的實體在需要時可以得到所需要的網絡資源和服務。2.機密性機密性是指網絡中的信息不被非授權實體(包括用戶和進程等)獲取與使用。3.完整性完整性是指網絡信息的真實可信性,即網絡中的信息不會被偶然或者蓄意地進行刪除、修改、偽造、插入等破壞,保證授權用戶得到的信息是真實的。網絡安全的目標4.可靠性可靠性是指系統在規定的條件下和規定的時間內,完成規定功能的概率。可靠性是網絡安全最基本的要求之一。5.不可抵賴性不可抵賴性也稱為不可否認性。是指通信的雙方在通信過程中,對于自己所發送或接收的消息不可抵賴。即發送者不能抵賴他發送過消息的事實和消息的內容,而接收者也不能抵賴其接收到消息的事實和內容。網絡安全的目標在信息化社會中,計算機通信網絡在政治、軍事、金融、商業、交通、電信、文教等方面的作用日益增大。社會對計算機網絡的依賴也日益增強,尤其是計算機技術和通信技術相結合所形成的信息基礎設施建設已經成為反映信息社會特征最重要的基礎設施建設。人們建立了各種各樣完備的信息系統,使得人類社會的一些機密和“財富”高度集中于計算機中。但是這些信息系統都是依靠計算機網絡接收和處理信息,實現其相互間的聯系和對目標的管理、控制。網絡安全問題的重要性

隨著網絡的開放性、共享性、互連程度擴大,特別是Internet網的出現,網絡的重要性和對社會的影響也越來越大。隨著網絡上各種新業務的興起,比如電子兩務(ElectronicCommerce)、電子現金(ElectronicCash)、數字貨幣(DigitalCash)、網絡銀行(NetworkBank)等,以及各種專用網的建設,比如金融網等,使得安全問題顯得越來越重要,成了關鍵之所在。因此網絡安全成了數據通信領域研究和發展的一個重要方向,對網絡安全技術的研究成了現在計算機和通信界的一個熱點,并且成為信息科學的一個重要研究領域,正日益受到人們的關注。網絡安全問題的重要性網絡的安全威脅來自于網絡中存在的不安全因素,網絡不安全的因素來自兩個方面,一方面是網絡本身存在的安全缺陷,主要因素有:網絡操作系統的脆弱性、TCP/IP協議的安全性缺陷、數據庫管理系統安全的脆弱性、網絡資源共享、數據通信、計算機病毒等。另一方面是人為因素和自然因素,即人為的入侵和破壞。計算機網絡面臨的威脅1.人為的無意失誤(1)安全配置不當造成的安全漏洞。系統管理員設置資源訪問控制的失誤,而導致一些資源被偶然或故意地破壞,造成網絡信息保密性的破壞。(2)無意的信息泄露。合法用戶進入安全進程后中途離開而給非法用戶提供可乘之機,口令密鑰等保管不善而為他人非法獲得,用戶安全意識不強、口令選擇不慎、將自己的賬號隨意轉借或與別人共享等都會給網絡安全造成威脅。(3)操作失誤。刪除文件、格式化硬盤、線路拆除等操作失誤,系統掉電,“死機”等系統崩潰引起信息缺失,從而造成網絡信息完整性和可用性的破壞。人為因素的威脅2.人為的惡意攻擊(1)非授權訪問。(2)信息泄露或丟失。(3)破壞數據完整性。(4)拒絕服務攻擊。(5)利用網絡傳播木馬和病毒。人為因素的威脅1.網絡操作系統的脆弱性2.TCP/IP協議的安全性缺陷3.數據庫管理系統安全的脆弱性4.系統軟硬件故障引起泄密非人為的威脅1.端口掃描技術網絡安全掃描技術是為使系統管理員能夠及時了解系統中存在的安全漏洞,并采取相應防范措施,從而降低系統的安全風險而發展起來的一種安全技術。2.網絡嗅探技術網絡嗅探是利用計算機的網絡接口截獲目的地及其他計算機數據報文的一種技術。它工作在網絡的最底層,把網絡傳輸的全部數據記錄下來。以幫助網絡管理員查找網絡漏洞和檢測網絡性能,還可以分析網絡的流量,以便找出所關心的網絡中潛在的問題。網絡安全的常用技術3.數據加密技術加密是所有信息保護技術措施中最古老、最基本的一種手段。加密的主要目的是防止信息的非授權泄漏。4.數字簽名技術數字簽名機制提供了一種鑒別方法,以解決偽造、抵賴、冒充和篡改等安全問題。網絡安全的常用技術5.鑒別技術鑒別的目的是驗明用戶或信息的正身。對實體聲稱的身份進行唯一地識別,以便驗證其訪問請求或保證信息來自或到達指定的源和目的。6.訪問控制技術訪問控制的目的是防止非法訪問。訪問控制是采取各種措施保證系統資源不被非法訪問和使用。一般采用基于資源的集中式控制、基于源和目的地址的過濾管理以及網絡簽證技術等技術來實現。網絡安全的常用技術7.安全審計技術計算機安全審計是通過一定的策略,利用記錄和分析歷史操作事件發現系統的漏洞并改進系統的性能和安全。8.防火墻技術防火墻技術是建立在現代通信網絡技術和信息安全技術基礎上的應用性安全技術,越來越多地應用于專用網絡與公用網絡的互連環境中。網絡安全的常用技術9.入侵檢測技術網絡入侵檢測技術也叫網絡實時監控技術,它通過硬件或軟件對網絡上的數據流進行實時檢查,并與系統中的入侵特征數據庫進行比較,一旦發現有被攻擊的跡象,立刻根據用戶所定義的動作做出反應,如切斷網絡連接,或通知防火墻系統對訪問控制策略進行調整,將入侵的數據包過濾掉等。網絡安全的常用技術10.病毒診斷與防治技術病毒對計算機及網絡造成的威脅是極大的,一個安全的計算機網絡系統,必須要有強大的病毒診斷能力和防范措施。網絡安全的常用技術為了能夠有效了解用戶的安全需求,選擇各種安全產品和策略,有必要建立一些系統的方法來進行網絡安全防范。網絡安全防范體系的科學性、可行性是其可順利實施的保障。如圖1-1所示,給出了基于擴展的一個網絡三維安全防范技術體系框架結構。第一維是安全服務,給出了八種安全屬性。第二維是系統單元,給出了信息網絡系統的組成。第三維是結構層次,給出并擴展了國際標準化組織ISO的開放系統互聯(OSI)模型。網絡安全的層次結構網絡安全的層次結構框架結構中的每一個系統單元都對應于某一個協議層次,需要采取若干種安全服務才能保證該系統單元的安全。網絡平臺需要有網絡節點之間的認證、訪問控制,應用平臺需要有針對用戶的認證、訪問控制,需要保證數據傳輸的完整性、保密性,需要有抗抵賴和審計的功能,需要保證應用系統的可用性和可靠性。網絡安全的層次結構1.IP協議在網絡協議中,IP是面向非連接的協議,所以它是不可靠的數據報協議。IP協議主要負責在主機之間尋址和選擇路由。IP數據報的結構為:IP頭+數據,IP頭有一個20字節的固定長度部分和一個可選任意長度部分.常用的網絡協議2.TCP協議TCP是傳輸層協議,專門設計用于在不可靠的因特網上提供可靠的、端到端的字節流通信的協議。發送方和接收方TCP實體以數據段(Segment)的形式交換數據。一個數據段包含一個固定發送和接收方TCP實體以數據段(Segment)的形式交換數據。常用的網絡協議3.UDP協議UDP向應用程序提供了一種無連接的服務,通常用于每次傳輸量較小或有實時需要的程序,在這種情況下,使用UDP開銷較少,避免頻繁建立和釋放連接的麻煩。一個UDP數據段包括一個8字節的頭和數據部分。常用的網絡協議4.ICMP協議ICMP稱為因特網控制消息協議。通過ICMP協議,主機和路由器可以報告錯誤并交換相關的狀態信息。常用的網絡協議1.Telnet

Telnet是一種因特網遠程終端訪問服務。它能夠以字符方式模仿遠程終端,登錄遠程服務器,訪問服務器上的資源。2.FTP文件傳輸協議FTP的主要作用,是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP服務器程序)察看遠程計算機有哪些文件,然后把文件從遠程計算機上下載到本地計算機,或把本地計算機的文件上傳到遠程計算機去。FTP服務的端口為21。常用的網絡服務3.E-mail

E-mail服務使用的兩個主要協議是簡單郵件傳輸協議(SimpleMailTransferProtocol,SMTP)和郵局協議(PostOfficeProtocol,POP)。SMTP默認占用25端口,用來發送郵件,POP占用110端口,用來接收郵件。常用的網絡服務4.Web服務Web服務是目前最常用的服務,使用HTTP協議,默認端口為80。在Windows下一般使用IIS作為Web服務器。5.DNS域名服務(DNS—DomainNameService)用于映射網絡地址,即尋找Internet域名并將它轉化為IP地址。常用的網絡服務1.安裝虛擬機VMware的版本號為Vmware-workstation6.0.5,運行安裝程序,出現下面的界面。VMware虛擬機安裝

安裝結束后,系統提示輸入用戶名和VM的注冊號,輸入正確后,出現安裝完畢的界面,如圖1-17所示。

安裝結束后,系統提示是否重啟動計算機,重新啟動Vmware后才能使用。重啟計算機后,打開Vmware程序,主界面如圖1-18所示。VMware虛擬機安裝

VMware虛擬機安裝

2.配置VMware虛擬機安裝完VMware虛擬機后,還需要為虛擬機安裝操作系統。選擇虛擬機界面上的“NewVirtualMachine”,出現如圖1-20所示。VMware虛擬機安裝

選擇“MicosoftWindows”單選按鈕,安裝Windows系列操作系統,在下面的“Version”下面選擇要安裝的操作系統版本,在下面的下拉列表中選擇要安裝的系統。如圖1-22所示,上面是要安裝的操作系統版本,下面是要安裝的目錄。VMware虛擬機安裝VMware虛擬機安裝3.安裝虛擬機操作系統單擊綠色的啟動按鈕來啟動虛擬機,就和一臺單獨的計算機啟動類似。啟動后,在光驅中放入XP安裝光盤,開始安裝操作系統。VMware虛擬機安裝這樣,兩套操作系統就成功安裝好了。啟動成功后,進入操作系統,配制虛擬機上的操作系統的IP地址,使之能與主機通信。如圖1-28所示,虛擬機的IP地址是:192.168.1.9;主機的IP地址是:。VMware虛擬機安裝配置好IP地址后,主機和虛擬機在同一個網段,可以用Ping命令來測試是否連通。在主機的DOS窗口中輸入“ping”,如圖1-29所示。VMware虛擬機安裝1.SnifferPro的安裝和啟動在主機上安裝一個SnifferPro,版本好為SnifferPro_4_70_530,雙擊安裝程序,進入安裝向導,如圖1-30所示。Sniffer網絡協議分析軟件

2.Sniffer的啟動和配置SnifferPro安裝好以后,從“開始”一“程序”一“SnifferPro”來啟動,出現如圖1-32所示的主界面。在進行流量捕獲之前,首先要選擇網絡適配器,確定從計算機的哪個網絡適配器上接收數據。Sniffer網絡協議分析軟件

Sniffer網絡協議分析軟件

選擇File菜單下的SellectSettings,彈出Settings對話框,如圖1-33所示,選擇要監聽的網卡,選中LogOn,單擊“確定”按鈕,Sniffer變成“LogOn”狀態,此時就可以開始使用它了。Sniffer網絡協議分析軟件

設置過濾器:選擇主菜單“Capture”一“DefineFilter”,彈出如圖1-34所示的定義過濾器對話框,共包括5個標簽頁,下面分別加以說明。Sniffer網絡協議分析軟件3.報文捕獲解析

CaptureStart:啟動捕獲引擎。sniffer能夠實時監控主機、協議、應用程式、不同包類型等的分布情況。Decode:對每個數據包進行解碼,能夠看到整個包的結構及從鏈路層到應用層的信息,事實上,sniffer的使用中大部分的時間都花費在這上面的分析,同時也對使用者在網絡的理論及實踐經驗上提出較高的需要。素質較高的使用者借此工具便可看穿網絡問題的結癥所在。Sniffer網絡協議分析軟件本章結束第2章網絡安全程序設計基礎學習的必要性1、網絡安全中存在著“攻”與“防”兩種相互矛盾而又相互依存的技術,“攻”與“防”并不只是簡單的使用他人提供好的現成工具就可以了,還應該深入了解其中的原理,不但“知其然”,還要“知其所以然”。2、只有我們了解網絡安全攻擊與防范的一些基本原理以及相應的程序實現之后,我們才能更進一步加深對相關知識的理解與掌握程度,也才能更進一步地增強我們防范網絡攻擊和動手解決實際網絡安全問題的能力。Windows程序的工作機制消息機制是Windows應用程序的核心,Windows是一個以消息為導向的系統1.Windows消息的分類(1)標準的Windows消息除了WM_COMMAND消息,所有以WM_為前綴的消息都是標準的Windows消息

①鍵盤消息,舉例:WM_KEYDOWN②鼠標消息,舉例:WM_MOUSEMOVE(2)控件消息:控件和子窗口向父窗口發出WM_COMMAND消息(3)命令消息:操作菜單項、工具欄按鈕、快捷鍵等用戶界面對象發出的WM_COMMAND消息。Windows消息循環Windows程序的進行依靠外部事件來驅動,也就是說,程序不斷等待(利用一個while循環),等待任何可能的輸入,然后做判斷,然后再做適當的處理。每一個Windows程序都應該有一個如下的循環:MSGmsg;while(GetMessage(&msg,NULL,NULL,NULL))

{//從消息隊列中取得消息

TranslateMessage(&msg);

//檢索并生成字符消息WM_CHAR

DispatchMessage(&msg);

//將消息發送給相應的窗口函數

}消息,也就是上面的MSG結構,其實就是Windows內部的一種定義好的數據結構:TypedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}WindowsSDK程序開發SDK是SoftwareDevelopmentKit的縮寫,中文意思是“軟件開發工具包”。WindowsSDK包含了開發該Windows版本所需的Windows函數和常數定義、API函數說明文檔、相關工具和示例。用VC++編寫Windows程序有兩種方式:WindowsC方式(SDK)和C++方式(對SDK函數進行包裝,如VC++中的MFC(MicrosoftFoundationClass)),SDK編程就是直接用WindowsAPI進行編程。API由上千個API函數組成,而MFC是API的封裝,結合面向對象的繼承、多態組成一個個類,共有一百多個類組成。幾個概念API,也就是ApplicationProgrammingInterface,其實就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的API而使操作系統去執行應用程序的命令(動作)。DLL,即DynamicLinkLibrary(動態鏈接庫)。其實Windows的三大模塊就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了API函數的執行代碼。為了使用API函數,我們就要有跟API所對應的.H和.LIB文件,而SDK正是提供了一整套開發Windows應用程序所需的相關文件、范例和工具的“工具包”WindowsSDK程序的開發流程簡單的Windows程序示例一個Win32應用程序框架主要由初始化窗口類、窗口注冊類、窗口的創建以及窗口消息函數等組成。結合教材分析:程序范例2-1:簡單的Win32窗口程序Socket通信程序設計套接字(Socket)起初來源于UNIX,是加利福尼亞大學Berkeley分校開發的UNIX操作系統下的網絡通信接口。90年代初期,由SunMicrosystems、Microsoft等幾家公司聯合制定了一套Windows下套接字編程的規范,稱為WindowsSockets規范。常用winsock函數(1)WSAStartup()功能:Winsock.DLL模塊初始化函數。(2)socket()功能:建立Socket。(3)bind()功能:指定

Socket的本地地址

(LocalAddress)。(4)listen()功能:設定Socket為監聽狀態,準備接受連接請求。常用winsock函數(5)connect()功能:Client向Server正式發出連接請求。(6)accept()功能:接受某Client的連接要求,以完成StreamSocket的連接。(7)closesocket()功能:關閉Socket。(8)WSACleanup()功能:結束WindowsSocketsDLL的使用。(9)send()功能:使用已連接(connected)的Socket發送數據。(10)recv()功能:從Socket接收數據。winsock編程步驟

服務器端:(1)創建服務器套接字(socket)。(2)服務器套接字進行信息綁定(bind),并開始監聽連接(listen)。(3)接受來自用戶端的連接請求(accept)。(4)開始數據傳輸(send/receive)。(5)關閉套接字(closesocket)。客戶端:(1)創建用戶套接字(socket)。(2)與遠程服務器進行連接(connect),如被接受則創建接收進程。(3)開始數據傳輸(send/receive)。(4)關閉套接字(closesocket)。網絡安全程序設計

2.3.1注冊表操作1.注冊表概述注冊表到底是什么東西?Windows的注冊表包含了Windows的系統配置、計算機機的硬件配置、Win32應用程序和用戶的其他設置信息。在程序中使用注冊表,不外乎創建、打開、讀取、設置、刪除這五個常規操作。注冊表操作常用函數(1)RegCreateKeyEx。功能:通過RegCreateKeyEx函數可以在注冊表中創建鍵,如果需要創建的鍵已經存在了,則打開鍵。(2)RegOpenKeyEx。功能:RegOpenKeyEx函數可以打開一個指定的鍵。(3)RegQueryValueEx。功能:通過RegQueryValueEx函數可以從一個已經打開的鍵中讀取數據。(4)RegSetValueEx。功能:RegSetValueEx函數可以設置注冊表中鍵的值。(5)RegDeketeKey。功能:函數RegDeketeKey刪除一個鍵及所有的子鍵。注冊表操作范例在VisualC++6.0中新建一基于對話框的工程,設置了兩個命令按鈕,名為“查詢注冊表”和“修改注冊表”,用來查詢和修改注冊表中書名和作者名稱。假定書和作者的信息位于系統注冊表中\\HKEY_LOCAL_MACHINE\\Software\\UESTC\\NETWORK\\的位置,鍵值名BookName和BookAuthor分別表示書籍的名稱和書籍的作者。具體程序代碼參加教材:程序范例2-2:注冊表查詢進程隱藏技術三個相關的概念:進程,線程和服務。進程:一個正常的Windows應用程序,在運行之后,都會在系統之中產生一個進程,進程是資源分配的基本單位;同時,每個進程,分別對應了一個不同的PID(ProgressID,進程標識符)這個進程會被系統分配一個虛擬的內存空間地址段,一切相關的程序操作,都會在這個虛擬的空間中進行。線程:一個進程可以包含一個或多個線程,線程是CPU調度分配的基本單位,線程之間同步執行多種操作,一般地,線程之間是相互獨立的,當一個線程發生錯誤的時候,并不一定會導致整個進程的崩潰。服務:一個進程當以服務的方式工作的時候,它將會在后臺工作,不會出現在任務列表中,但是,在WindowsNT/2000下,你仍然可以通過服務管理器檢查任何的服務程序是否被啟動運行。進程隱藏技術的一個典型應用就是特洛伊木馬,特洛伊木馬實際上是一種基于遠程控制的黑客工具,具有隱蔽性和非授權性的特點。一般情況下,Windows下的木馬程序,服務器端沒有進程,沒有端口,開機自動運行,可以接收客戶端發來的文件并執行文件,只有不被發現的木馬才具有實質的意義。關于特洛伊木馬的詳細介紹,請教材第4章,本部分將重點從程序設計的角度來討論一下木馬程序如何隱藏進程的問題。想要隱藏木馬的服務器端,可以偽隱藏,也可以是真隱藏。偽隱藏,就是指程序的進程仍然存在,只不過是讓他消失在進程列表里。真隱藏則是讓程序徹底的消失,不以一個進程或者服務的方式工作。進程偽隱藏技術偽隱藏的方法,是比較容易實現的,只要把木馬服務器端的程序注冊為一個服務就可以了,這樣,程序就會從任務列表中消失了,因為系統不認為他是一個進程,當按下Ctrl+Alt+Delete的時候,也就看不到這個程序。程序范例2-4:進程隱藏技術:偽隱藏

WINAPIWinMain(HINSTANCE,HINSTANCE,LPSTR,int)

{

try

{

DWORDdwVersion=GetVersion();//取得Windows的版本號

if(dwVersion>=0x80000000)//Windows9x隱藏任務列表

{

int(CALLBACK*rsp)(DWORD,DWORD);

HINSTANCEdll=LoadLibrary("KERNEL32.DLL");//裝入KERNEL32.DLLrsp=(int(CALLBACK*)(DWORD,DWORD))GetProcAddress(dll,"RegisterServiceProcess");//找到RegisterServiceProcess的入口

rsp(NULL,1);//注冊服務

FreeLibrary(dll);//釋放DLL模塊

}

}

catch(Exception&exception)//處理異常事件

{

//處理異常事件

}

return0;

}

進程真隱藏技術我們可以不把木馬做成一個應用進程,而把他做成一個線程,一個其他應用程序的線程,把自身注入其他應用程序的地址空間。而這個應用程序對于操作系統系統來說,被認為是一個絕對安全的程序。這樣,就達到了進程徹底隱藏的效果,這樣的結果,將導致了查殺黑客程序難度大大增加。因此,把木馬程序作為其他安全進程中的一個線程運行,這樣在Windows任務管理器的進程中就看不到了。最簡單易用的方法就是把木馬程序放在一個dll(動態鏈接庫)中,另有一個程序負責將這個dll注入到其他進程,比如Explorer.exe進程中。負責注入dll的程序先用VirtualAllocEx(hRemoteProcess,...)在目標進程中分配一塊兒內存,用WriteProcessMemory向該內存中寫入要注入的dll的路徑和名稱,然后利用CreateRemoteThread在目標進程中創建一個線程,這個線程執行LoadLibraryW,并以剛才分配的那塊內存中的dll的路徑和名稱為參數。這樣就使dll載入了目標進程的地址空間,dll的載入將執行dll。進程隱藏范例下面給出一個說明這種隱藏方法的程序,程序分為兩部分,負責注入的叫NoProcessExe.exe,被注入的dll叫做NoProcessDll.dll。NoProcessExe.exe負責把NoProcessDll.dll注入到Explorer.exe進程中,NoProcessDll.dll中的程序首先獲得所在進程的Pid(進程標識符),然后用MessageBox打印出來,以證明它是在Explorer.exe進程中運行的。注意一下NoProcessDll.dll,NoProcessExe.exe要放在同一目錄下,下面給出核心代碼:程序范例2-5:進程隱藏技術:真隱藏端口掃描一個端口就是一個潛在的通信通道,也就是一個入侵通道,對目標計算機進行端口掃描,可以得到許多有用的信息,從而發現系統的安全漏洞。進行掃描的方法很多,可以是手工進行掃描,也可以用端口掃描軟件進行。端口掃描器是一種自動檢測遠程或本地主機安全性弱點的程序,通過使用掃描器你可以不留痕跡的發現遠程服務器的各種TCP端口的分配及提供的服務和它們的軟件版本!這就能讓我們間接的或直觀的了解到遠程主機所存在的安全問題。端口掃描器工作原理如下:掃描器通過選擇遠程主機TCP/IP不同的端口的服務,并記錄目標主機給予的回答,通過這種方法,可以搜集到很多關于目標主機的各種有用的信息需要注意的是,掃描器并非一個直接的攻擊網絡漏洞的程序,它僅僅能幫助我們發現目標主機的某些內在的弱點。一個好的掃描器能對它得到的數據進行分析,幫助我們查找目標主機的漏洞,但它一般不會提供入侵一個系統的詳細步驟。掃描器應該有三項功能:(1)發現一個主機或網絡的能力;(2)一旦發現一臺主機,有發現什么服務正運行在這臺主機上的能力;(3)通過測試這些服務,發現漏洞的能力。編寫掃描器程序需要我們前面學過的Socket通信編程的知識,下面給出一個較為簡單的單線程掃描器程序的C語言源碼,通過這個例子的學習,可以幫助我們進一步加深對Socket通信編程的理解。程序范例2-7:單線程端口掃描器程序網頁病毒網頁病毒(又稱網頁惡意代碼)是利用網頁來進行破壞的病毒,它使用一些腳本(Script)語言編寫的一些惡意代碼利用瀏覽器的漏洞來實現病毒植入。當用戶登錄某些含有網頁病毒的網站時,網頁病毒便被悄悄激活,這些病毒一旦激活,可以利用系統的一些資源進行破壞。WSH,是“WindowsScriptingHost”的縮略形式,其通用的中文譯名為“Windows腳本宿主”。實際上,網頁惡意代碼的技術基礎就是WSH,通過用戶雙擊執行它,這時,系統就會自動調用一個適當的程序來對它進行解釋并執行。惡意的腳本語言經常會被植入網頁之中(其中包括Html頁面客戶端和ASP等頁面服務器端)。對于植入Html頁面的腳本,其所需要的解析引擎會由IE這樣的網頁瀏覽器載入;對于植入ASP服務器端的腳本,其所需要的引擎由WEB服務器(如IIS)提供。而對于出現在HTML和ASP頁面之外的腳本(它們常常以獨立的文件形式存在),就需要由WSH來處理,WSH在工作時會調用IE中的VBScript和JavaScript解析引擎。就這樣,當瀏覽了含有惡意腳本代碼的網頁時,腳本就會被WSH解釋執行,攻擊者就達到了攻擊的目的。用戶受了攻擊之后有什么現象?(1)更改IE標題。(2)更改默認主頁。(3)連續打開無數個窗口。(4)使瀏覽器崩潰。(5)永無休止的單擊,迫使IE關閉。(6)消耗內存。(7)使IE拒絕服務。(8)共享你的硬盤。(9)開機彈出一個窗口。(10)修改注冊表。(11)禁止運行注冊表編輯器。程序范例2-8:打開多個IE窗口程序范例2-9:無休止的對話框程序范例2-10:修改注冊表網絡監聽與數據包過濾網絡監聽(也被稱之為網絡嗅探)與包過濾技術是網絡入侵的核心技術之一,也是網絡安全協議技術研究的核心技術之一。網絡監聽和過濾也成了黑客使用最多的技術,主要用于監視他人的網絡狀態、攻擊網絡協議、竊取敏感信息等目的。最簡單的監聽程序包括內核部分和用戶分析部分,其中內核部分負責從網絡中捕獲和過濾數據,用戶分析部分負責界面、數據轉化與處理、格式化、協議分析,如果在內核沒有過濾數據包,在這里還要對數據進行過濾。一個較為完整的基于網絡監聽和過濾的程序一般包括以下步驟:數據包捕獲、數據包過濾與分解、數據分析。winpcap概述Winpcap(Windowspacketcapture)是Windows平臺下一個免費、公共的網絡訪問系統。開發Winpcap這個項目的目的在于為win32應用程序提供訪問網絡底層的能力。Winpcap提供了以下的各項功能:(1)捕獲原始數據包,包括在共享網絡上各主機發送/接收的數據包以及相互之間交換的數據包。(2)在數據包發往應用程序之前,按照自定義的規則將某些特殊的數據包過濾掉。(3)在網絡上發送原始的數據包。(4)收集網絡通信過程中的統計信息。Winpcap函數(1)intpcap_findalldevs(pcap_if_t**,char*)

功能:用來獲得網卡的列表。(2)voidpcap_freealldevs(pcap_if_t*)功能:與intpcap_findalldevs(pcap_if_t**,char*)配套使用,當不再需要網卡列表時,用此函數free釋放空間。(3)pcap_t*pcap_open_live(constchar*device,intsnaplen,intpromisc,intto_ms,charebuf*)功能:被用來得到一個包抓取得描述符。(4)intpcap_loop(pcap_t*p,intcnt,pcap_handlercallback,u_char*user)功能:捕獲數據包,而不會響應pcap_open_live()中設置的超時時間。(5)intpcap_dispatch(pcap_t*p,intcnt,pcap_handler,u_char*user)功能:捕獲數據包,但可以不被阻塞。(6)intpcap_next_ex(pcap_t*p,structpcap_pkthdr**pkt_header,u_char**pkt_data)功能:捕獲數據包,與pcap_dispatch()和pcap_loop()很相似。pcap_next_ex()允許直接調用來接收包,它的參數和pcap_loop()相同:有一個網卡描述符和兩個指針,這兩個指針會被初始化并返回給用戶,一個是pcap_pkthdr結構,另一個是接收數據的緩沖區。(7)intpcap_setfilter(pcap_t*p,structbpf_program*fp)

功能:pcap_setfilter()用來聯系一個在內核驅動上過濾的過濾器,這時所有網絡數據包都將流經過濾器,并拷貝到應用程序中.(8)intpcap_sendpacket(pcap_t*p,u_char*buf,intsize)功能:人為主動發送一個數據包。這個函數需要的參數:一個裝有要發送數據的緩沖區,要發送的長度,一個適配器。注意緩沖區中的數據將不被內核協議處理,只是作為最原始的數據流被發送,所以我門必須填充好正確的協議頭以便正確的將數據發送。(9)pcap_send_queue*pcap_sendqueue_alloc(u_intmemsize);功能:給數據包隊列分配空間。(10)intpcap_sendqueue_queue(pcap_send_queue*queue,conststructpcap_pkthdr*pkt_header,constu_char*pkt_data)功能:填充準備發送的數據隊列。(11)u_intpcap_sendqueue_transmit(pcap_t*p,pcap_send_queue*queue,intsync)功能:發送隊列中的數據。(12)voidpcap_sendqueue_destroy(pcap_send_queue*queue);說明:釋放隊列。Winpcap應用舉例基于Winpcap庫的基本使用流程比較規范,一般為:第一步:使用pcap_lookupdev獲取設備。第二步:使用pcap_lookupnet獲取網絡地址和子網掩碼。第三步:使用pcap_open_live打開設備。第四步:使用pcap_complile編譯過濾規則。第五步:使用pcap_setfilter設置過濾規則。第六步:使用pcap_loop循環捕獲數據包,在其中調用相應處理函數。第七步:使用pcap_close關閉設備句柄。程序范例2-11:數據包捕獲程序范例2-12:發送數據包本章結束第3章

信息加密原理與技術密碼學的基本概念。介紹加密領域中兩種主流的加密技術:DES加密(DataEncryptionStandard)RSA加密(Rivest-Shamir-Adleman)并用程序實現這兩種加密技術的算法。最后介紹目前常用的加密工具PGP(PrettyGoodPrivacy),使用PGP產生密鑰,加密文件和郵件。本章學習要點計算機密碼學是研究計算機信息加密、解密及其變換的科學,是數學和計算機的交叉學科,也是一門新興的學科。隨著計算機網絡和計算機通訊技術的發展,計算機密碼學得到前所未有的重視并迅速普及和發展起來。在國內外,它已成為計算機安全主要的研究方向。密碼學概述密碼學主要研究通信保密,主要用于計算機及其保密通信,它的基本思想就是偽裝信息,使未授權者不能理解它的含義。密碼學的基本概念明文加密加密密鑰

密文不安全媒介密文傳輸信道監聽/竊聽密文解密明文解密密鑰偽裝前的原始信息稱為明文(Plaintext),偽裝后信息稱為密文(cippertext)、偽裝的過程稱為加密(Encryption),加密要在加密密鑰(Kcy)的控制下進行,用于對信息進行加密的一組數學變換稱為加密算法。發信者將明文數據加密成密文,然后將密文數據送入計算機網絡或存入計算機文件。授權的接收者收到密文數據之后、進行與加密相逆的變換,去掉密文的偽裝,恢復明文,這個過程稱為解密(Decryption)。加密解密過程以最簡單的凱撒密碼為例,如果用數字0、1、2、24、25分別表示字母A、B、C、…、Y、Z相對應。則密文字母σ可以用明文字母φ表示如下:σ=φ+3(mod26)(式2-1)例如,明文字母為Y,即φ=24時,σ=1。(σ=24+3=27mod26=1),因此,密文字母為B。凱撒密碼任何—個加密系統,無論形式多么復雜,都至少應包含以下5個部分:(1)明文空間M,是待加密的全體報文的集合。(2)密文空間C,是加密后全體報文的集合。(3)密鑰空間K,是全體密鑰的集合,可以是數字、字符、單詞或語句。其中,每一個密鑰,Ki均由加密密鑰Ke和解密密鑰組成Kd,即Ki=(Ke,Kd)。(4)加密算法E,是—組由M到C的加密變換。(5)解密算法D,是一組由C到M的解密變換。加密系統組成如果一個密碼體制的Ke=Kd,即加密密鑰能夠從解密密鑰中推算出來,反過來也成立、我們稱之為對稱密鑰密碼算法(SymmetricEncryptionAlgorithms)。對稱密鑰密碼算法也可稱為對稱算法或傳統算法,包括換位加密、代替加密、乘積加密和綜合加密等。在大多數對稱密鑰密碼算法中,加密密鑰和解密密鑰是相同的。對稱密鑰算法

對稱密鑰算法對稱密鑰密碼算法的加密和解密表示為:E(M,K)=CD(C,K)=M對稱加密算法的特征:(1)通常計算速度非常快。(2)基于簡單的數學計算,所以可以通過硬件加速。(3)密鑰管理比較麻煩。(4)通常用來做整段數據加密,塊加密(blockciphers),流加密(streamciphers),消息完整性驗證(messageauthenticationcodes)。對稱密鑰算法如果密碼體制的Ke≠Kd,即用作加密的密鑰不同于用作解密的密鑰,而且解密密鑰不能根據加密密鑰計算出來(至少在合理假定的長時間內),我們稱之為公鑰算法(AsymmetricEncryptionAlgorithms)。公鑰算法用公開密鑰Ke加密表示為:E(M,Ke)=C用相應私人密鑰Kd解密可表示為:D(C、Kd)=M有時消息用私人密鑰加密而用公開密鑰解密,這用于數字簽名。加密算法的特性:(1)相對于對稱加密算法,速度比較慢。(2)基于硬件計算,密鑰管理簡單。(3)通常用做少量數據的加密(如數字簽名,對稱加密算法的密鑰交換)。公鑰算法IBM公司從20世紀60年代末即看到通信網對于加密標準算法的需求,因而投入了相當的研究力量進行開發,成立了以Tuchman博士為領導,包括.A.Konkeim、E.Grossman、N.Coppersmith和L.Simth等人(后二人做實現工作)的研究新密碼體制小組,由H.Fistel進行設計,并在1971年完成的LUCIFFER密碼(64bit分組,代換一置換,128bit密鑰)的基礎上,改進成為建議的DES體制。NSA組織有關專家對IBM的算法進行了鑒定,而成為DES的基礎。DES對稱加密技術1975年3月17日,NBS公布了這種算法,并說明要以它作為聯邦信息處理標準,征求各方意見。1977年1月15日,建議被批準為聯邦標準[FIPSPUB46],并設計推出DES芯片。DES開始在銀行、金融界廣泛應用。1981年美國ANSI將其作為標準,稱之為DEA[ANSIX3.92]。1983年國際標準化組織(ISO)采用它作為標準,稱做DEA-1。DES對稱加密技術雖然DES不會長期地作為數據加密標準算法,但它仍是迄今為止得到最廣泛應用的一種算法,也是一種最有代表性的分組加密體制。因此,詳細地研究這一算法的基本原理、設計思想、安全性分析,以及實際應用中的有關問題,對于掌握分組密碼理論和當前的實際應用都是很有意義的。DES對稱加密技術DES算法正式公開發表以后,引起了一場激烈的爭論。1977年Diffie和Hellman提出了制造一個每秒能測試106個密鑰的大規模芯片,這種芯片的機器大約一天就可以搜索DES算法的整個密鑰空間,制造這樣的機器需要兩千萬美元。1993年,R.Session和M.Wiener給出了一個非常詳細的密鑰搜索機器的設計方案,它基于并行的密鑰搜索芯片,此芯片每秒測試5Χ107個密鑰,當時這種芯片的造價是10.5美元,5760個這樣的芯片組成的系統需要10萬美元,這一系統平均1.5天即可找到密鑰,如果利用10個這樣的系統,費用是100萬美元,但搜索時間可以降到2.5小時。可見這種機制是不安全的。DES算法的安全性世界在Internet面前變得不安全起來了。Internet僅僅應用了閑散的資源,毫無代價地破解了DES的密碼,這是對密碼方法的挑戰,也是Internet超級計算能力的顯示。盡管DES有這樣那樣的不足,但是作為第一個公開密碼算法的密碼體制成功地完成了它的使命,它在密碼學發展歷史上具有重要的地位。DES算法的安全性DES是一種對二元數據進行加密的算法,數據分組長度為64bit(8byte),密文分組長度也是64Bit,沒有數據擴展。密鑰長度為64Bit,其中有8bit奇偶校驗,有效密鑰長度為56bit。DES的整個體制是公開的,系統的安全性全靠密鑰的保密實現。算法的構成框圖如圖3-4所示。算法主要包括初始置換P、16輪迭代的乘積交換、逆初始置換IP-1及16個子密鑰產生器。DES算法步驟1、初始置換IP

初始置換IP可將64bit明文的位置進行置換,得到一個亂序的64bit明文組,而后分成左右兩段,每段為32bit,以L0和R0表示,如圖3-5所示。由圖3-5可知,IP中各列元素位置號數相差為8,相當于將原明文各字節按列寫出,各列比特經過偶采樣和奇采樣置換后,再對各行進行逆序。將陣中元素按行讀出構成置換輸出。DES算法步驟2、逆初始置換IP-1

將16輪迭代后給出的64bit組進行置換,得到輸出的密文組,如圖3-6所示。輸出為陣中元素按行讀得的結果。IP和IP-1在密碼意義上作用不大,因為輸入組x與其輸出組y=IP(x)(或IP-l(x))是已知的一一對應關系。它們的作用在于打亂原來輸入x的ASCII碼字劃分的關系,并將原來明文的校驗位x8,x16…,x64變成為IP輸出的一個字節。DES算法步驟3、乘積變換將經過IP置換后的數據分成32bit的左右兩組,在迭代過程中彼此左右交換位置。每次迭代時只對右邊的32bit進行一系列的加密變換,在此輪迭代即將結束時,把左邊的32bit與右邊得到的32bit逐位模2相加,作為下一輪迭代時右邊的段,并將原來右邊未經變換的段直接送到左邊的寄存器中作為下一輪迭代時左邊的段。在每一輪迭代時,右邊的段要經過選擇擴展運算E、密鑰加密運算、選擇壓縮運算S、置換運算P和左右混合運算。DES算法步驟4、選擇擴展運算選擇擴展運算下可將輸入的32bitRi-1擴展成48bit的輸出,其變換表如圖3-8所示。令s表示E原輸入數據比特的原下標,則E的輸出是將原下標s≡0或1(mod4)的各比特重復一次得到的,即對原第32,1,4,5,8,9,12,13,16,17,20,21,24,25,28,29各位都重復一次,實現數據擴展。將變換表中數據按行讀出得到48bit輸出。DES算法步驟5、密鑰加密運算密鑰加密運算可將子密鑰產生器輸出的48bit子密鑰ki與選擇擴展運算E輸出的48bit數據按位模2相加。6、選擇壓縮運算選擇壓縮運算可將前面送來的48bit數據從左至右分成8組,每組為6bit。而后并行送入8個S盒,每個S盒為一非線性代換網絡,有4個輸出。DES算法步驟7、置換運算P置換運算可對S1-S8盒輸出的32bit數據進行坐標置換,置換P輸出的32bit數據與左邊32bit即Ri-1逐位模2相加,所得到的32bit作為下一輪迭代用的右邊的數字段,并將Ri-1并行送到左邊的寄存器,作為下一輪迭代用的左邊的數字段。DES算法步驟8、子密鑰產生器子密鑰產生器可將64bit初始密鑰經過置換選擇PC1、循環移位置換、置換選擇PC2給出每次迭代加密用的子密鑰島。在64bit初始密鑰中有8位為校驗位,其位置序號為8,16,32,48,56和64,其余56位為有效位,用于子密鑰計算。1977年,由Rivest、Shamir、Adleman三人提出了第一個比較完善的公鑰密碼算法,這就是著名的RSA算法。RSA算法的理論基礎是一種特殊的可逆模指數運算,它的安全性是基于分解大整數n的困難性。RSA公鑰加密算法1.算法描述RSA體制可以簡單描述如下:(1)、生成兩個大素數p和q。(2)、計算這兩個素數的乘積n=p×q。(3)、計算小于n并且與n互質的整數的個數,即歐拉函數φ(n)=(p-1)(q-1)。(4)、選擇一個隨機數b滿足1<b<φ(n),并且b和φ(n)互質,即gcd(b,φ(n))=1。(5)、計算ab=1modφ(n)。(6)、保密a,p和q,公開n和b。RSA公鑰加密算法2.實現步驟步驟如下:(1)首先,設n是2個不同的、較大的奇素數P和q之乘積,即:n=pq,P=C=Zn,Φ(n)=(p-1)(q-1),其中,P和C分別表示明文空間和密文空間。(2)然后,定義密鑰空間K為:K={(n,e,d)|ed≡1(modΦ(n))},對于每一個密鑰K=(n,e,d),定義加密變換為:Ek(x)=xemodn;解密變換為:Dk(y)=ydmodn。公開n和e,保密P、q和d。RSA公鑰加密算法3.舉例說明(1)選取兩個質數:P=47,q=71(2)計算:n=pq=3337Φ(n)=(47-1)(71-1)=3220(3)e必須與Φ(n)互質,選取e=79。(4)計算:ed=lmodΦ(n)=1mod(3220)d=1019將e、n公布,d保密,p、q銷毀。RSA公鑰加密算法目前已有多家公司制造出了RSA加密芯片,如:AT&T、AlpherTechn、CNET、Cryptech、英國電信等。硬件實現RSA比DES慢大約1000倍,最快的實現512bit模數的芯片可達1Mbps。在智能卡中已大量實現RSA,這些實現都比較慢。軟件實現時,RSA大約比DES慢100倍,這些情況隨著技術發展可能有所改觀,但RSA的速度永遠不會達到對稱算法的加密速度。RSA的速度及安全性1、公開鑰匙的分發問題需要解決。、2、RSA算法的安全性基于數論中大數分解的難度。但隨著分解算法不斷改進和計算能力的不斷增強,模數小的算法越來越不安全。110位十進制數早已能分解。RSA的速度及安全性PGP(PrettyGoodPrivacy)加密技術的創始人是美國的PhilZimmermann。他創造性地把RSA公鑰體系和傳統加密體系結合起來,因此PGP成為目前幾乎最流行的公鑰加密軟件包。由于RSA算法計算量極大,在速度上不適合加密大量數據,所以PGP實際上用來加密的是采用傳統加密算法IDEA,IDEA加解密的速度比RSA要快得多。PGP隨機生成一個密鑰,用IDEA算法對明文加密,然后用RSA算法對密鑰加密。收件人同樣是用RSA解出隨機密鑰,再用IDEA解出原文。這樣的鏈式加密既有RSA算法的保密性和認證性(Authentication),又保持了IDEA算法速度快的優勢。PGP加密技術

1.PGP的安裝PGP的安裝很簡單,和普通軟件安裝一樣,只須按提示一步步操作完成即可。在安裝過程中,可以選擇要安裝的選件,如果選擇了PGPmailforMicrosoftOutlookExpress或者PGPmailforMicrosoftOutlook,就可以在OutlookExpress或Outlook中直接用PGP加密郵件的內容PGP加密技術

PGP加密技術2.PGP密鑰對的生成使用PGP之前,首先需要生成一對密鑰(公鑰和私鑰),公鑰分發給朋友或者在服務器上公開發布,讓他們用這個密鑰來加密文件,另一個稱為私鑰,這個密鑰由你自己保存,用它來解開加密文件。打開“開始”菜單中PGP的子菜單PGPkeys,可看到如圖3-15所示的界面。PGP加密技術PGP加密技術3.發布和導入公鑰發布指的是把自己的公鑰分發給他人,有兩種方式,一種是導出為文字文件,通過安全渠道發送到對方;一種是發布到公開服務器上。從安全的角度來說,個人的PGP公鑰最好是透過安全的管道傳送給自己的親朋好友,讓對方用來加密文件傳給自己,當然也可以把自己的公鑰發布到服務器上,開放給任何人下載,但是,這種公開的方式隱含了安全問題,因為可能會有人假造他人的公鑰傳送到KeyServer上,從而截取他人的私密信息。PGP加密技術PGP加密技術4、使用PGP加密文件使用PGP可以加密本地文件,用鼠標右鍵單擊要加密的文件,選擇“PGP"菜單項中的Encrypt”選項,系統自動出現對話框,讓用戶選擇要使用的加密密鑰,選中一個密鑰,單擊“OK"按鈕。目標文件被加密,在當前目錄下自動產生一個新的文件。打開加密后的文件時,程序自動要求輸入密碼,輸入建立該密鑰時的密碼。PGP加密技術PGP加密技術PGP加密技術單向散列函數,也叫壓縮函數、收縮函數、哈希函數,它是現代密碼學的中心,是許多協議的另一個結構模塊。散列函數長期以來一直在計算機科學中使用,散列函數是把可變長度的輸入串(預映射)轉換成固定長度的輸出串(散列值)的一種函數。單向散列函數單向散列函數是在一個方向上工作的散列函數,即從預映射的值很容易計算出散列值,但要從一個特定的散列值得出預映射的值則非常難。單向散列函數利用散列函數的這些特性,可以為消息生成完整性驗證碼(MIC)或稱消息的指紋。單向散列函數的使用為實現數據的完整性驗證提供了非常有效的方法。單向散列函數是公開的,對處理過程不用保密,其安全性來自于它的單向性。單向散列函數的輸出不依賴于輸入,輸入串的變化很小,但輸出串的變化可能很大。一般來說,如果輸入串中的一位發生變化,就能導致輸出串中一半以上的位發生變化。單向散列函數單向散列函數的應用散列函數主要可以解決以下兩個問題:在某一特定的時間內,無法查找經散列函數操作后生成特定散列函數值的原報文;也無法查找兩個經散列函數操作后生成相同哈希值的不同報文。這樣,在數字簽名中就可以解決驗證簽名和用戶身份驗證、不可抵賴性的問題。單向散列函數(1)Alice寫一條消息,并且把該消息經過哈希運算得到指紋信息(消息摘要)。(2)Alice將原始消息和指紋信息一同發送給Bob。(3)Bob收到消息后,將消息和指紋信息分開,并且將消息再次經過哈希運算,然后把結果同收到的指紋信息進行比較。(4)如果比較結果相同,那么可以確信消息是未被篡改過的。單向散列函數1數字簽名所謂“數字簽名”就是通過某種密碼運算生成一系列符號及代碼組成電子密碼進行簽名,來代替書寫簽名或印章,對于這種電子式的簽名還可進行技術驗證,其驗證的準確度是一般手工簽名和圖章的驗證而無法比擬的。數字簽名與數字信封數字簽名必須保證以下3點,假定A發送一個簽了名的信息M給B,則A的數字簽名應該滿足下述條件:(1)B能夠證實A對信息M的簽名;(2)任何人,包括B在內,都不能偽造A的簽名;(3)如果A否認對信息M的簽名,可以通過仲裁解決A和B之間的爭議。數字簽名與數字信封數字簽名具有通常簽名的特點。數字簽名實際上是附加在數據單元上的一些數據或是對數據單元所作的密碼變換,這種數據或變換能使數據單元的接收者確認數據單元的來源和數據的完整性,并保護數據,防止被人(如接收者)偽造。數字簽名與數字信封如果文件被改動,或者有人在沒有私有密鑰的情況下冒充簽字,都將使數字簽名的鑒定過程失敗。其基本協議過程如下:(1)Alice用其私鑰對文件加密,從而對文件簽名;(2)Alice將簽名后的文件傳給Bob;(3)Bob用Alice的公鑰解密文件,從而驗證簽名。數字簽名與數字信封在實際過程中,這種做法的準備效率太低了。為節省時間,數字簽名協議常常與單向哈希函數一起使用。Allce并不對整個文件簽名,而是只對文件的哈希值簽名。在下面的協議中,單向哈希函數和數字簽名算法是事先協商好的,過程如下:(1)Alice產生文件的單向哈希值;(2)Alice用她的私人密鑰對哈希加密,以此表示對文件的簽名;(3)Alice將文件和哈希簽名送給Bob;(4)Bob用Alice發送的文件產生文件的單向哈希值,同時用Alice的公鑰對簽名的哈希解密;如果簽名的哈希值與自己產生的哈希值匹配,簽名是有效的。數字簽名與數字信封2數字信封所謂數字信封,就是信息發送端用接收端的公鑰,將一個通信密鑰(SymmentricKey,簡稱SK),即對稱密鑰給予加密,形成一個數字信封(DE),然后傳送給接收端。只有指定的接收方才能用自己的私鑰打開數字信封,獲取該對稱密鑰(SK),用它來解讀傳送來的信息。數字簽名與數字信封其工作過程如下:(1)將要傳輸的信息經密碼雜湊函數運算后,得到一個雜湊值MD,MD=Hash(信息)。(2)發送者A用自己的私鑰PVA對雜湊值MD進行加密,得到A的數字簽名。(3)發送者A將信息明文、數字簽名和他的證書上的公鑰3項信息,通過對稱算法,用對稱密鑰SK進行加密,得到密文E。(4)發送者A在發送信息之前,必須事先得到接收方B的證書公鑰PBB,用PBB加密密鑰SK,形成一個數字信封DE。(5)E+DE就是將密文與數字信封連接起來,即A所發送的內容。數字簽名與數字信封(6)接收者B用自己的私鑰PVB解開所收到的數字信封DE,并從中取出A所用過的對稱密鑰SK。(7)接收者B用SK將密文E解密還原成原信息明文、數字簽名和A的證書公鑰。(8)B將數字簽名用A證書中的公鑰PBA進行解密,將數字簽名還原成雜湊值MD。(9)B再對已收到的信息明文,用同樣的密碼雜湊函數算法進行雜湊運算,得到一個新的雜湊值MD。(10)對數字簽名進行校驗,比較收到已還原的MD和新產生的MD是否相等,二者必須相等無誤,否則不接收這個數據信息。數字簽名與數字信封數字證書就是互聯網通訊中標志通訊各方身份信息的一系列數據,提供了一種在Internet上驗證您身份的方式,其作用類似于司機的駕駛執照或日常生活中的身份證。它是由一個由權威機構CA機構,又稱為證書授權(CertificateAuthority)中心發行的.數字證書數字證書采用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己設定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)并由本人公開,為一組用戶所共享,用于加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。數字證書2數字證書的應用從證書的用途來看,數字證書可分為簽名證書和加密證書。簽名證書主要用于對用戶信息進行簽名,以保證信息的真實性和不可否認性;加密證書主要用于對用戶傳送信息進行加密,以保證信息的保密性和完整性。數字證書數字證書可以應用于公眾網絡上的商務活動和行政作業活動,包括支付型和非支付型電子商務活動,其應用范圍涉及需要身份認證及數據安全的各個行業,包括傳統的商業、制造業、流通業的網上交易,以及公共事業、金融服務業、工商稅務海關、政府行政辦公、教育科研單位、保險、醫療等網上作業系統。數字證書3數字證書的格式目前的數字證書類型主要包括:個人身份證書、企業或機構身份證書、支付網關證書、服務器證書、企業或機構代碼簽名證書、安全電子郵件證書、個人代碼簽名證書。最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的數字簽名。一般情況下證書中還包括密鑰的有效時間,發證機關(證書授權中心)的名稱,該證書的序列號等信息,證書的格式遵循ITUTX.509國際標準。數字證書數字證書1、什么是PKI?

PKI就是PublicKeyInfrastructure的縮寫,翻譯過來就是公開密鑰基礎設施。它是利用公開密鑰技術所構建的,解決網絡安全問題的,普遍適用的一種基礎設施。美國政府的一個報告中把PKI定義為全面解決安全問題的基礎結構,從而大大擴展了PKI的概念。說PKI是基礎設施,就意味著它對信息網絡的重要。公鑰基礎設施PKI2、PKI的服務

PKI通過延伸到用戶本地的接口,為各種應用提供安全的服務,如認證、身份識別、數字簽名、加密等。有了PKI,安全應用程序的開發者不用再關心那些復雜的數學運算和模型,而直接按照標準使用一種插座(接口)。用戶也不用關心如何進行對方的身份鑒別而可以直接使用標準的插座,正如在電力基礎設施上使用電吹風一樣。用戶可利用PKI平臺提供的服務進行安全的電子交易、通信和互聯網上的各種活動。公鑰基礎設施PKI3、PKI的組成

PKI中最基本的元素就是數字證書。所有安全的操作主要通過證書來實現。PKI的硬設備還包括簽置這些證書的證書機構(CA),登記和批準證書簽置的登記機構(RA),以及存儲和發布這些證書的電子目錄。PKI中還包括證書策略,證書路徑以及證書的使用者。所有這些都是PKI的基本元素。許多這樣的基本元素有機地結合在一起就構成了PKI。公鑰基礎設施PKI4、部署PKI的意義

PKI是目前唯一的能夠基本全面解決安全問題的可能的方案。PKI通過電子證書以及管理這些電子證書的一整套設施,維持網絡世界的秩序;通過提供一系列的安全服務,為網絡電子商務、電子政務提供有力的安全保障。各國政府和許多民間機構都在紛紛研究和開發PKI產品,以望走在信息安全的前列。公鑰基礎設施PKI5、PKI的應用

PKI技術的廣泛應用能滿足人們對網絡交易安全保障的需求。當然,作為一種基礎設施,PKI的應用范圍非常廣泛,并且在不斷發展之中。(1)虛擬專用網(VPN);(2).安全電子郵件;(3).Web安全;(4).電子商務。公鑰基礎設施PKI本章結束第4章網絡入侵與攻擊技術

黑客攻擊的基本步驟和主要的攻擊方法網絡掃描與網絡監聽技術ARP欺騙、DOS攻擊、緩沖區溢出、IP欺騙、DNS欺騙等主要攻擊技術在網絡中隱藏真實IP地址的網絡隱身技術本章學習要點黑客攻擊和網絡安全的是緊密結合在一起的,研究網絡安全不研究黑客攻擊技術簡直是紙上談兵,研究攻擊技術不研究網絡安全就是閉門造車。某種意義上說沒有攻擊就沒有安全,系統管理員可以利用常見的攻擊手段對系統進行檢測,并對相關的漏洞采取措施。黑客攻擊概述網絡攻擊可分為三個階段:一是尋找目標,收集信息;二是探測系統安全弱點,獲得初始的訪問權和特權;三是攻擊其他系統。

攻擊的范圍從簡單地使某服務器無效到完全破壞服務器,使網絡上成功實施的攻

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論