Linux 信息安全和滲透測試

蔡冰

  • 出版商: 清華大學
  • 出版日期: 2023-09-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 496
  • 裝訂: 平裝
  • ISBN: 7302641072
  • ISBN-13: 9787302641070
  • 相關分類: LinuxPenetration-test
  • 立即出貨

  • Linux 信息安全和滲透測試-preview-1
  • Linux 信息安全和滲透測試-preview-2
  • Linux 信息安全和滲透測試-preview-3
Linux 信息安全和滲透測試-preview-1

買這商品的人也買了...

商品描述

《Linux信息安全和滲透測試》詳細闡述Linux下的信息安全和網絡滲透技術,內容涵蓋各大主流加解密算法的原理,用Linux C/C++語言自主實現這些技術的方法,以及Linux內核開發技術和IPSec VPN的系統實現,這些都是以後打造自己信息安全工具所需的基本知識。最後介紹網絡滲透技術Kail Linux,通過該環境可以瞭解常用的現成工具。本書共11章,內容包括Linux基礎和網絡優化、搭建Linux C和C++安全開發環境、對稱密碼算法、雜湊函數和HMAC、非對稱算法RSA的加解密、身份認證和PKI、實戰PKI、IPSec VPN基礎知識、VPN實戰、SSL-TLS編程、內核和文件系統、Kali Linux的滲透測試研究、DPDK開發環境的搭建等。 《Linux信息安全和滲透測試》適合Linux信息安全工程師或開發者閱讀,也適合高等院校和培訓機構相關專業的師生作為教學參 考書。

目錄大綱

目    錄

第 1 章  搭建Linux安全開發環境 1

1.1  準備虛擬機環境 1

1.1.1  在VMware下安裝Linux 1

1.1.2  開啟登錄時的root賬號 4

1.1.3  解決Ubuntu上的vi方向鍵問題 5

1.1.4  關閉防火牆 6

1.1.5  配置安裝源 6

1.1.6  安裝網絡工具包 6

1.1.7  安裝基本開發工具 7

1.1.8  啟用SSH 7

1.1.9  創建一個快照 8

1.1.10  連接虛擬機Linux 9

1.1.11  通過終端工具連接Linux虛擬機 18

1.1.12  與虛擬機互傳文件 20

1.1.13  支持圖形軟件的終端工具MobaXterm 21

1.2  搭建Samba網絡文件共享服務 22

1.3  在VMware中添加一塊硬盤 24

1.4  在Linux下搭建C/C++開發環境 27

1.5  在Windows下搭建Linux C/C++開發環境 28

1.5.1  Windows下非集成式的Linux C/C++開發環境 28

1.5.2  Windows下集成式的Linux C/C++開發環境 32

1.6  安全密碼庫OpenSSL 35

1.6.1  OpenSSL源代碼模塊結構 36

1.6.2  OpenSSL加密庫調用方式 37

1.6.3  OpenSSL支持的對稱加密算法 37

1.6.4  OpenSSL支持的非對稱加密算法 38

1.6.5  OpenSSL支持的信息摘要算法 38

1.6.6  OpenSSL密鑰和證書管理 38

1.6.7  面向對象與OpenSSL 38

1.6.8  BIO接口 40

1.6.9  EVP接口 41

1.6.10  在Linux下編譯安裝OpenSSL 1.0.2 42

1.6.11  使用OpenSSL命令並查看版本號 51

1.7  國產密碼函數庫GmSSL 51

1.7.1  GmSSL的特點 52

1.7.2  GmSSL的一些歷史 52

1.7.3  什麽是國密算法 52

1.7.4  GmSSL的下載 53

1.7.5  在Linux下編譯安裝GmSSL 53

1.7.6  默認編譯安裝GmSSL 57

1.7.7  在舊版本的Linux下編譯和安裝GmSSL 60

第 2 章  對稱密碼算法 64

2.1  基本概念 64

2.2  流加密算法 65

2.2.1  基本概念 65

2.2.2  流密碼和分組密碼的比較 66

2.2.3  RC4算法 66

2.3  分組加密算法 76

2.3.1  工作模式 76

2.3.2  短塊加密 84

2.3.3  DES和3DES算法 84

2.3.4  SM4算法 102

2.4  利用OpenSSL進行對稱加解密 119

2.4.1  基本概念 119

2.4.2  對稱加解密相關函數 119

第 3 章  雜湊函數和HMAC 128

3.1  雜湊函數概述 128

3.1.1  什麽是雜湊函數 128

3.1.2  密碼學和雜湊函數 129

3.1.3  雜湊函數的發展 129

3.1.4  雜湊函數的設計 130

3.1.5  雜湊函數的分類 130

3.1.6  雜湊函數的碰撞 130

3.2  SM3雜湊算法 131

3.2.1  常量和函數 131

3.2.2  填充 131

3.2.3  迭代壓縮 132

3.2.4  雜湊值 133

3.2.5  一段式SM3算法的實現 133

3.2.6  三段式SM3算法的實現 138

3.2.7  GmSSL實現SM3算法 145

3.3  HMAC 148

3.3.1  什麽是HMAC 148

3.3.2  產生背景 148

3.3.3  設計目標 149

3.3.4  算法描述 149

3.3.5  獨立自主實現HMAC-SM3 150

3.4  SHA系列雜湊算法 152

3.4.1  SHA算法概述 152

3.4.2  SHA的發展史 153

3.4.3  SHA系列算法的核心思想 153

3.4.4  單向性 153

3.4.5  主要用途 153

3.4.6  SHA256算法原理解析 153

3.4.7  SHA384和SHA512算法 168

3.5  更通用的基於OpenSSL的哈希運算 192

3.5.1  獲取摘要算法的函數EVP_get_digestbyname 192

3.5.2  創建結構體並初始化的函數EVP_MD_CTX_create 192

3.5.3  銷毀摘要上下文結構體的函數EVP_MD_CTX_destroy 193

3.5.4  摘要初始化的函數EVP_DigestInit_ex 193

3.5.5  摘要Update的函數EVP_DigestUpdate 194

3.5.6  摘要Final的函數EVP_Digest_Final_ex 194

3.5.7  單包摘要計算的函數EVP_Digest 194

第 4 章  非對稱算法RSA的加解密 197

4.1  非對稱密碼體制概述 197

4.2  RSA概述 199

4.3  RSA的數學基礎 199

4.3.1  素數 199

4.3.2  素性檢測 199

4.3.3  倍數 200

4.3.4  約數 200

4.3.5  互質數 200

4.3.6  質因子 200

4.3.7  強素數 201

4.3.8  因子 201

4.3.9  模運算 201

4.3.10  模運算的操作與性質 202

4.3.11  單向函數 202

4.3.12  費馬定理和歐拉定理 203

4.3.13  冪 203

4.3.14  模冪運算 204

4.3.15  同餘符號≡ 204

4.3.16  歐拉函數 204

4.3.17  最大公約數 204

4.3.18  實現歐幾里得算法 205

4.3.19  擴展歐幾里得算法 207

4.4  RSA算法描述 214

4.5  RSA算法實例 215

4.5.1  查找法計算私鑰d 216

4.5.2  簡便法計算私鑰d 218

4.5.3  擴展歐幾里得算法計算私鑰d 220

4.5.4  加密字母 221

4.5.5  分組加密字符串 221

4.6  實戰前的幾個重要問題 225

4.6.1  明文的值不能大於模值N 225

4.6.2  明文的長度 226

4.6.3  密鑰長度 227

4.6.4  密文長度 227

4.7  熟悉PKCS#1 227

4.7.1  PKCS#1填充 228

4.7.2  OpenSSL中的RSA填充 230

4.7.3  PKCS#1中的RSA私鑰語法 232

4.8  在OpenSSL命令中使用RSA 233

4.8.1  生成RSA公私鑰 233

4.8.2  提取私鑰的各個參數 234

4.8.3  使用RSA公鑰加密一個文件 236

4.8.4  使用私鑰解密一個文件 237

4.9  基於OpenSSL庫的RSA編程 237

4.9.1  OpenSSL的RSA實現 238

4.9.2  主要數據結構 239

4.9.3  主要函數 240

4.10  隨機大素數的生成 248

4.11  RSA算法的攻擊及分析 248

4.11.1  因子分解攻擊 248

4.11.2  選擇密文攻擊 249

4.11.3  公共模數攻擊 249

4.11.4  小指數攻擊 249

第 5 章  身份認證和PKI 250

5.1  身份認證概述 250

5.1.1  網絡安全與身份認證 250

5.1.2  網絡環境下身份認證所面臨的威脅 251

5.1.3  網絡身份認證體系的發展現狀 252

5.2  身份認證技術基礎 254

5.2.1  用戶名/密碼認證 254

5.2.2  智能卡認證 254

5.2.3  生物特徵認證 255

5.2.4  動態口令 255

5.2.5  USB Key認證 255

5.2.6  基於沖擊響應的認證模式 255

5.2.7  基於PKI體系的認證模式 256

5.3  PKI概述 256

5.3.1  PKI的國內外應用狀態 257

5.3.2  PKI的應用前景 258

5.3.3  PKI存在的問題及發展趨勢 258

5.4  基於X.509證書的PKI認證體系 260

5.4.1  數字證書 261

5.4.2  數字信封 264

5.4.3  PKI體系結構 264

5.4.4  基於X.509證書的身份認證 269

第 6 章  實戰PKI 271

6.1  只有密碼算法是不夠的 271

6.2  利用OpenSSL實現CA的搭建 273

6.2.1  準備實驗環境 273

6.2.2  熟悉CA環境 274

6.2.3  創建所需要的文件 276

6.2.4  CA自簽名證書(構造根CA) 276

6.2.5  根CA為子CA頒發證書 278

6.2.6  普通用戶向子CA申請證書 281

6.3  基於OpenSSL的證書編程 283

6.3.1  把DER編碼轉換為內部結構體的d2i_X509函數 284

6.3.2  獲得證書版本的X509_get_version函數 285

6.3.3  獲得證書序列號的X509_get_serialNumber函數 285

6.3.4  獲得證書頒發者信息的X509_get_issuer_name函數 285

6.3.5  獲得證書擁有者信息的X509_get_subject_name函數 286

6.3.6  獲得證書有效期的起始日期的X509_get_notBefore函數 286

6.3.7  獲得證書有效期的終止日期的X509_get_notAfter函數 286

6.3.8  獲得證書公鑰的X509_get_pubkey函數 286

6.3.9  創建證書存儲區上下文環境的X509_STORE_CTX函數 286

6.3.10  釋放證書存儲區上下文環境的X509_STORE_CTX_free函數 287

6.3.11  初始化證書存儲區上下文環境的X509_STORE_CTX_init函數 287

6.3.12  驗證證書的X509_verify_cert函數 287

6.3.13  創建證書存儲區的X509_STORE_new函數 287

6.3.14  釋放證書存儲區的X509_STORE_free函數 288

6.3.15  向證書存儲區添加證書的X509_STORE_add_cert函數 288

6.3.16  向證書存儲區添加證書弔銷列表的X509_STORE_add_crl函數 288

6.3.17  釋放X.509結構體的X509_free函數 288

6.4  證書編程實戰 289

第 7 章  IPSec VPN基礎知識 295

7.1  概述 295

7.1.1  IPSec VPN技術現狀 296

7.1.2  國密VPN現狀 296

7.2  IPSec協議研究 297

7.2.1  IPSec體系結構 297

7.2.2  傳輸模式和隧道模式 299

7.2.3  AH協議概述 299

7.2.4  AH數據包封裝 300

7.2.5  ESP協議概述 301

7.2.6  ESP數據包封裝 302

7.2.7  安全聯盟 304

7.2.8  安全策略數據庫和安全聯盟數據庫 305

7.3  IKE協議 306

7.3.1  IKE概述 306

7.3.2  IKE的安全機制 307

7.3.3  ISAKMP 308

7.4  IKEv1協議 309

7.4.1  第一階段 310

7.4.2  第二階段 312

7.4.3  主模式和快速模式的9個包分析 312

7.5  IKEv2協議 320

7.5.1  IKEv2概述 320

7.5.2  初始交換 321

7.5.3  創建子SA交換 326

7.5.4  通知交換 326

7.6  IKEv1與IKEv2的區別 326

7.7  IKEv2的優點 327

第 8 章  VPN實戰 328

8.1  準備網絡環境 328

8.2  strongSwan實戰 333

8.2.1  編譯安裝strongSwan 333

8.2.2  常用程序概述 339

8.2.3  配置文件概述 342

8.2.4  使用ipsec.conf文件 343

8.2.5  使用swanctl.conf 353

8.2.6  strongSwan簽發證書 357

8.3  OpenSwan實戰 364

8.3.1  OpenSwan概述 364

8.3.2  OpenSwan的整體架構 364

8.3.3  OpenSwan的下載和編譯 365

8.3.4  OpenSwan連接方式 367

8.3.5  OpenSwan的認證方式 367

8.3.6  配置文件ipsec.conf 367

第 9 章  SSL-TLS編程 378

9.1  SSL協議規範 378

9.1.1  SSL協議的優點 378

9.1.2  SSL協議的發展 378

9.1.3  SSLv3/TLS提供的服務 379

9.1.4  SSL協議層次結構模型 380

9.1.5  SSL記錄協議層 380

9.1.6  SSL握手協議層 382

9.2  OpenSSL中的SSL編程 385

9.3  SSL函數 386

9.3.1  初始化SSL算法庫的函數SSL_library_init 386

9.3.2  初始化SSL上下文環境變量的函數SSL_CTX_new 386

9.3.3  釋放SSL上下文環境變量的函數SSL_CTX_free 387

9.3.4  以文件形式設置SSL證書的函數SSL_CTX_use_certificate_file 387

9.3.5  以結構體方式設置SSL證書的函數SSL_CTX_use_certificate 387

9.3.6  以文件形式設置SSL私鑰的函數SSL_CTX_use_PrivateKey_file 387

9.3.7  以結構體方式設置SSL私鑰的函數SSL_CTX_use_PrivateKey 387

9.3.8  檢查SSL私鑰和證書是否匹配的函數SSL_CTX_check_private_key 388

9.3.9  創建SSL結構的函數SSL_new 388

9.3.10  釋放SSL套接字結構體的函數SSL_free 388

9.3.11  設置讀寫套接字的函數SSL_set_fd 388

9.3.12  設置只讀套接字的函數SSL_set_rfd 388

9.3.13  設置只寫套接字的函數SSL_set_wfd 389

9.3.14  啟動TLS/SSL握手的函數SSL_connect 389

9.3.15  接受SSL連接的函數SSL_accept 389

9.3.16  獲取對方的X.509證書的函數SSL_get_peer_certificate 389

9.3.17  向TLS/SSL連接寫數據的函數SSL_write 390

9.3.18  從TLS/SSL連接上讀取數據的函數SSL_Read 390

9.4  準備SSL通信所需的證書 390

9.4.1  準備實驗環境 390

9.4.2  熟悉CA環境 391

9.4.3  創建根CA的證書 391

9.4.4  生成服務端的證書請求文件 393

9.4.5  簽發服務端證書 393

9.4.6  生成客戶端的證書請求文件 394

9.4.7  簽發客戶端證書 395

9.5  實戰SSL網絡編程 396

第 10 章  內核和文件系統 404

10.1  認識QEMU 405

10.1.1  QEMU的兩種執行模式 405

10.1.2  QEMU的用途 406

10.1.3  使用QEMU虛擬機的幾種選擇 406

10.2  安裝Linux版的QEMU 407

10.3  下載和編譯內核 410

10.4  製作簡易的文件系統 413

10.4.1  BusyBox簡介 414

10.4.2  編譯和安裝BusyBox 415

10.4.3  製作根文件系統的映像文件 417

10.5  非嵌入式方式啟動內核 419

10.5.1  BusyBox啟動過程簡要分析 423

10.5.2  在新內核系統中運行C程序 425

10.6  基本功能的完善 426

10.6.1  掛載proc支持ifconfig 426

10.6.2  掛載sysfs支持lspci 428

10.6.3  實現文件系統可寫 433

10.7  QEMU的用戶網絡模式 433

10.7.1  不使用-net選項 434

10.7.2  使用-net選項 437

10.8  QEMU橋接網絡模式 438

10.8.1  網橋的概念 439

10.8.2  TUN/TAP的工作原理 439

10.8.3  帶TAP的QEMU系統架構 440

10.8.4  brctl命令的簡單用法 442

10.8.5  3個網絡配置選項 444

10.8.6  實戰橋接模式網絡 445

10.8.7  手工命令創建TAP網卡 450

10.8.8  使用qemu-ifup 452

10.9  QEMU運行國產操作系統 453

10.9.1  安裝Windows版的QEMU 454

10.9.2  UEFI固件下載 454

10.9.3  安裝麒麟操作系統 455

10.9.4  運行麒麟系統 457

10.10  開發一個內核模塊 458

第 11 章  Kali Linux的滲透測試研究 461

11.1  滲透測試的概念 461

11.2  滲透測試的分類 464

11.2.1  基於信息量的測試 464

11.2.2  基於攻擊強度的測試 465

11.2.3  基於範圍的測試 465

11.2.4  基於方法的測試 466

11.2.5  基於技術的測試 466

11.2.6  基於初始攻擊點的測試 467

11.3  滲透測試的局限性 467

11.4  滲透測試方法 468

11.4.1  開源安全測試方法手冊 468

11.4.2  信息系統安全評估框架 469

11.4.3  信息安全測試與評估技術指南 469

11.4.4  開放式Web應用程序安全項目 469

11.4.5  滲透測試執行標準 469

11.5  滲透測試過程 470

11.5.1  計劃與準備階段 470

11.5.2  發現階段 471

11.5.3  評估階段 472

11.5.4  攻擊階段 472

11.5.5  報告階段 473

11.6  滲透測試平臺與工具 473

11.6.1  Kali Linux 473

11.6.2  Metasploit 474

11.6.3  Nmap 475

11.6.4  OpenVAS 476

11.6.5  VMware Workstation 477

11.6.6  VirtualBox 478

11.7  實驗平臺的設計 478

11.8  實驗過程設計 480