一、 計算機網絡核心考點
軟件設計師考試中,計算機網絡部分重點圍繞OSI/RM與TCP/IP體系結構展開,要求掌握各層協議、功能與服務。
1. 網絡體系結構與協議
- OSI七層模型:需熟記物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層的名稱、順序及核心功能(如網絡層的路由與尋址,傳輸層的端到端可靠傳輸)。
- TCP/IP四層模型:對應關系(網絡接口層、網際層、傳輸層、應用層)及與OSI的對比是高頻考點。
- 核心協議簇:
- 網際層:IP(IPv4地址分類、子網劃分、CIDR)、ICMP(ping/traceroute)、ARP/RARP。
- 傳輸層:TCP(三次握手、四次揮手、滑動窗口、可靠機制)、UDP(特點、適用場景)。
- 應用層:HTTP/HTTPS、FTP、DNS、DHCP、SMTP/POP3的原理與端口號。
2. 網絡設備與拓撲
- 了解交換機(數據鏈路層,基于MAC地址)、路由器(網絡層,基于IP地址)的工作原理與區別。
- 掌握常見的網絡拓撲結構(星型、環型、總線型)及其特點。
二、 網絡安全基礎與威脅
網絡安全是軟件設計師考試的重中之重,強調對基本概念、常見攻擊與防護的理解。
1. 安全目標(CIA三元組)
- 保密性:防止信息泄露給未授權實體。技術:加密。
- 完整性:防止信息被未授權篡改。技術:散列函數(如MD5、SHA)、數字簽名。
- 可用性:確保授權用戶能及時訪問信息與服務。威脅:拒絕服務攻擊(DoS/DDoS)。
2. 常見攻擊與防護
- 被動攻擊:竊聽、流量分析。防護:加密。
- 主動攻擊:
- 篡改:消息完整性遭破壞。防護:消息認證碼(MAC)、數字簽名。
- 重放攻擊:重復發送有效數據。防護:時間戳、序列號、挑戰/應答。
- 拒絕服務(DoS/DDoS):耗盡資源。防護:流量清洗、限流。
- 惡意軟件:病毒、蠕蟲、特洛伊木馬、勒索軟件。防護:防病毒、最小權限原則。
- 其他重要攻擊:SQL注入、跨站腳本(XSS)、中間人攻擊(MITM)、DNS欺騙/緩存投毒。
3. 密碼學基礎
- 對稱加密(私鑰加密):DES、3DES、AES。特點:加解密速度快,密鑰分發困難。
- 非對稱加密(公鑰加密):RSA、ECC。特點:速度慢,用于密鑰交換和數字簽名。
- 散列函數:MD5、SHA系列。特點:單向性,用于完整性校驗。
- 數字簽名:結合散列與非對稱加密(私鑰簽名,公鑰驗證),實現認證、完整性和不可否認性。
- 數字證書與PKI:CA(證書頒發機構)頒發數字證書,綁定公鑰與身份,建立信任鏈。
三、 信息安全軟件開發實踐要點
此部分要求將安全理念融入軟件開發生命周期(SDLC),是設計與案例分析題的常見背景。
1. 安全開發原則
- 最小權限原則:每個模塊/用戶只擁有完成其任務所必需的最小權限。
- 縱深防御:在多個層次部署安全措施,避免單點失效。
- 默認安全:系統默認配置應是安全的。
- 隱私保護:默認不收集,數據最小化,告知同意。
2. 安全開發生命周期(SDL/Secure SDLC)
- 需求階段:識別安全需求,建立安全目標與隱私要求。
- 設計階段:進行威脅建模(如STRIDE模型),設計安全架構(如身份認證、訪問控制、日志審計)。
- 編碼階段:遵循安全編碼規范(如防范緩沖區溢出、注入攻擊),進行代碼安全審查。
- 測試階段:進行滲透測試、漏洞掃描、模糊測試。
- 部署與維護:安全配置管理,定期漏洞評估與補丁更新。
3. 關鍵安全機制在開發中的實現
- 身份認證與訪問控制:
- 認證方式:口令、動態令牌、生物特征、多因素認證(MFA)。
- 訪問控制模型:自主訪問控制(DAC)、強制訪問控制(MAC)、基于角色的訪問控制(RBAC)——最常用。
- 輸入驗證與輸出編碼:對所有用戶輸入進行嚴格驗證(白名單原則),對輸出到瀏覽器的數據進行編碼以防XSS。
- 安全通信:使用TLS/SSL保障傳輸層安全(HTTPS),禁用老舊、不安全的協議(如SSL 2.0/3.0)。
- 安全日志與審計:記錄關鍵安全事件(登錄、權限變更、敏感操作),確保日志的完整性、保密性和可用性。
- 會話管理:使用安全的、隨機的會話ID,設置合理的會話超時時間,提供安全的注銷功能。
4. 典型安全漏洞與防范(對應編碼與測試)
- 注入類(SQL、OS命令、LDAP):使用參數化查詢或預編譯語句,避免拼接。
- 跨站腳本(XSS):對輸出進行HTML編碼。
- 跨站請求偽造(CSRF):使用CSRF Token驗證。
- 不安全的直接對象引用:進行訪問權限檢查。
- 安全配置錯誤:遵循官方安全配置指南,移除默認賬戶和示例代碼。
四、 備考
軟件設計師考試的網絡與安全部分,理論考查注重對協議、攻擊、密碼學原理的理解;實踐考查則側重于將安全原則、機制與軟件開發過程相結合,分析設計場景中的安全方案或識別漏洞。備考時,應在理解核心概念的基礎上,多做歷年真題中的相關案例分析,體會“安全思維”在軟件設計中的具體應用。務必掌握從網絡底層協議到應用層安全開發的完整知識鏈條。