信安通用基礎知識

文章目錄

  • 密碼學經典誤區
  • PGP優良保密協議
  • 信安經典
  • 其它安全手段
  • XSS與CSRF cross site request forgery
    • CSRF的利用邏輯
    • CSRF示例
    • CSRF防范
      • 檢查Referer字段
      • 添加校驗token
    • XSS cross site scripting
  • common weakness enumeration
  • 常見密碼api誤用(摘自畢設參考文獻)
    • 對稱加密
    • hash
    • 非對稱加密
      • Improper Certificate Validation
    • 密鑰管理
  • 安全建議

密碼學經典誤區

口令和密碼不應誤用。口令不涉及加解密,也不是密文。整個過程只涉及hash。
密鑰而不是密碼算法決定安全性。
古典加密的特征是,加密字符而非比特。

PGP優良保密協議

在這里插入圖片描述

信安經典

可靠性,天災人禍時還能不能用。
可用性,四個九。
保密性,只有該看的人能看見。
完整性,傳輸錯誤、人為篡改。
不可抵賴,你發過、你收過、你說過。
可控性,信息不會到不該去的地方。

其它安全手段

除了上圖的對稱/非對稱加密、摘要、簽名等密碼學手段,
主要的安全手段還有正確配置(比如不允許root遠程登錄,關閉不必要端口等),正確使用加密api(認證函數要自己實現不要留一段注釋然后return true,使用合適的密碼學算法,正確生成參數等),安全審計(日志),版本更新(如漏洞修補,放棄兼容有安全問題的舊版本等),用戶管理(如臨時權限,定期更換密碼等)。

XSS與CSRF cross site request forgery

(CSRF有關內容均來自CSRF百度百科https://baike.baidu.com/item/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0/13777878)
XSS 利用的是用戶對指定網站的信任,CSRF 利用的是網站對用戶網頁瀏覽器的信任。

CSRF的利用邏輯

簡單的身份驗證只能保證請求發自某個用戶的瀏覽器,卻不能保證請求本身是用戶自愿發出的。

CSRF示例

假如一家銀行用以運行轉賬操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一個惡意攻擊者可以在另一個網站上放置如下代碼: <img src=“http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman”>
如果有賬戶名為Alice的用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄信息尚未過期,那么她就會損失1000資金。
這種惡意的網址可以有很多種形式,藏身于網頁中的許多地方。此外,攻擊者也不需要控制放置惡意網址的網站。例如他可以將這種地址藏在論壇,博客等任何用戶生成內容的網站中。這意味著如果服務端沒有合適的防御措施的話,用戶即使訪問熟悉的可信網站也有受攻擊的危險。
透過例子能夠看出,攻擊者并不能通過CSRF攻擊來直接獲取用戶的賬戶控制權,也不能直接竊取用戶的任何信息。他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義運行操作。

CSRF防范

檢查Referer字段

HTTP頭中有一個Referer字段,這個字段用以標明請求來源于哪個地址。在處理敏感數據請求時,通常來說,Referer字段應和請求的地址位于同一域名下。以上文銀行操作為例,Referer字段地址通常應該是轉賬按鈕所在的網頁地址,應該也位于www.examplebank.com之下。而如果是CSRF攻擊傳來的請求,Referer字段會是包含惡意網址的地址,不會位于www.examplebank.com之下,這時候服務器就能識別出惡意的訪問。
這種辦法簡單易行,工作量低,僅需要在關鍵訪問處增加一步校驗。但這種辦法也有其局限性,因其完全依賴瀏覽器發送正確的Referer字段。雖然http協議對此字段的內容有明確的規定,但并無法保證來訪的瀏覽器的具體實現,亦無法保證瀏覽器沒有安全漏洞影響到此字段。并且也存在攻擊者攻擊某些瀏覽器,篡改其Referer字段的可能。

添加校驗token

由于CSRF的本質在于攻擊者欺騙用戶去訪問自己設置的地址,所以如果要求在訪問敏感數據請求時,要求用戶瀏覽器提供不保存在cookie中,并且攻擊者無法偽造的數據作為校驗,那么攻擊者就無法再運行CSRF攻擊。這種數據通常是窗體中的一個數據項。服務器將其生成并附加在窗體中,其內容是一個偽隨機數。當客戶端通過窗體提交請求時,這個偽隨機數也一并提交上去以供校驗。正常的訪問時,客戶端瀏覽器能夠正確得到并傳回這個偽隨機數,而通過CSRF傳來的欺騙性攻擊中,攻擊者無從事先得知這個偽隨機數的值,服務端就會因為校驗token的值為空或者錯誤,拒絕這個可疑請求。

XSS cross site scripting

https://www.jianshu.com/p/4fcb4b411a66
(我的描述非常不嚴謹,純粹是為了好記。原理、 示例、防范可參考上面的鏈接)
反射型XSS,比如,在搜索框里輸入了js代碼,如果網站沒有防范,會執行這個代碼。
存儲型XSS,如果用戶的輸入會被存儲到文件/數據庫中,且用戶輸入是js代碼,那么其它用戶訪問網站時,由于也會加載文件/數據庫,每次訪問都會執行這個代碼。

common weakness enumeration

https://cwe.mitre.org/

常見密碼api誤用(摘自畢設參考文獻)

對稱加密

Use a Non-Random IV for CBC Encryption (字典攻擊)
Use ECB-Mode for Encryption (選擇明文攻擊。在java/android中,cipher.getinstance如果不指定模式和IV,會默認使用ECB模式
Insufficient Key Length (128位以下的密鑰面臨暴力破解)
Use a Risk or Broken Algorithm for Symmetric Encryption (如DES)
Use the Same Cryptographic Key Multiple Times or Hard-Coded Crptographic Keys for Encryption

hash

Use a Risk or Broken Algorithm (如MD4,MD5)

非對稱加密

Inadequate Key Length (比如RSA,現在推薦2048位)
RSA Algorithm without OAEP (Optimal Asymmetric Encryption Padding,若不支持會削弱安全性)

Improper Certificate Validation

Missing Validation of Certificate
Improper Check for Certificate Revocation(撤銷)
Improper Validation of Certificate Expiration
Improper Validation of Certificate with Host Mismatch
Improper Following of a Certificate’s Chain of Trust

密鑰管理

Reusing a Nonce, Key Pair in Encryption (重放攻擊)
Use of a Key Past its Expiration Date (擴大了攻擊窗口)

安全建議

如選用基于口令的算法或在用戶輸入密碼時,請避免使用String來引用,使用char[],用完立刻置空char[],避免內存攻擊,如heap dump分析等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42041.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42041.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42041.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“深入探究JVM內部機制:如何實現Java程序的運行環境?“

標題&#xff1a;深入探究JVM內部機制&#xff1a;如何實現Java程序的運行環境&#xff1f; 摘要&#xff1a;本文將深入探究Java虛擬機&#xff08;JVM&#xff09;的內部機制&#xff0c;重點討論JVM如何實現Java程序的運行環境。我們將從JVM的結構、類加載、內存管理、垃圾…

01 Python 網絡爬蟲:爬蟲技術的核心原理

不夸張地說&#xff0c;現在哪怕是初中生&#xff0c;只要花點兒時間、精力稍微按「網絡爬蟲」的開發步驟學習了解一下&#xff0c;也能把它玩得賊溜。 聽起來感覺是很高大上的東西&#xff0c;但實際上并不復雜&#xff0c;也就是使用了某種編程語言按照一定步驟、規則主動通…

用Java實現原神抽卡算法

哈嘍~大家好&#xff0c;好久沒有更新了&#xff0c;也確實遇到了很多事&#xff0c;這篇開始恢復更新&#xff0c;喜歡的話&#xff0c;可以給個的三連&#xff0c;什么&#xff1f;你要白嫖&#xff1f;那可以給個免費的贊麻。 &#x1f947;個人主頁&#xff1a;個人主頁??…

七月 NFT 行業解讀:游戲和音樂 NFT 引領增長,Opepen 掀起熱潮

作者&#xff1a;lesleyfootprint.network 2023 年 7 月&#xff0c;NFT 市場的波動性持續存在&#xff0c;交易量呈下降趨勢。然而&#xff0c;游戲和音樂 NFT 等領域的增長引人注目。參與這些細分領域的獨立用戶數量不斷增加&#xff0c;反映了這些領域的復蘇。 本綜合報告…

lvs負載均衡群集

lvs組成 1、lvs基于內核態的netfilter框架實現的IPVS功能&#xff0c;工作在內核態用戶配置VIP等相關信息并且傳遞到IPVS 就需要用到IPVSadm工具。 2、ipvsadm&#xff1a;IPVSadm是lvs用戶態的配套的工具&#xff0c;可以實現VIP和RS 增刪改查。 IPVSadm就是類似于iptables…

侯捷 八部曲 C++面向對象高級開發(上)+(下)【C++學習筆記】 超詳細 萬字筆記總結 筆記合集

文章目錄 Ⅰ C part1 面向對象編程1 頭文件與類的聲明1.1 c vs cpp關于數據和函數1.2 頭文件與類1.2.1 頭文件1.2.2 class的聲明1.2.3 模板初識 2 構造函數2.1 inline 函數2.2 訪問級別2.3 ctor 構造函數2.3.1 ctor 的寫法2.3.2 ctor/函數 重載2.3.3 ctor 放在 private 區 2.4 …

記vite打包vue項目內存溢出問題解決

出現問題 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory解決方法一&#xff1a; 1.根據網上的資料是通過全局下載npm包increase-memory-limit&#xff1a; npm install -g increase-memory-limit2.在項目目錄執…

學習Vue:路由參數與查詢參數傳遞

在Vue.js中&#xff0c;路由與導航不僅涉及到頁面之間的切換&#xff0c;還包括了向頁面傳遞參數以及獲取查詢參數的功能。本文將詳細介紹如何在Vue Router中傳遞路由參數和查詢參數&#xff0c;幫助您更好地理解和使用這些功能。 路由參數的傳遞 路由參數是指在URL中的動態片…

K8s內部的網路模式實現理解

overlay 網絡模式 在 Kubernetes 中&#xff0c;overlay 網絡模式被用于實現容器之間的網絡通信。 K8s 使用了一種稱為容器網絡接口&#xff08;Container Network Interface&#xff0c;簡稱CNI&#xff09;的規范&#xff0c;該規范定義了容器如何進行網絡連接。實際上&…

SDP 與Rtcp-fb

1、sdp介紹 SDP&#xff08;Session Description Protocol&#xff09;是一種用于描述多媒體會話的協議&#xff0c;它在會話層起著重要的作用。SDP的主要功能是提供會話的元數據和配置信息&#xff0c;以便參與者能夠協商和建立一致的會話。 以下是SDP在會話層的作用&#x…

生活隨筆,記錄我的日常點點滴滴.

前言 &#x1f618;個人主頁&#xff1a;曲終酣興晚^R的小書屋&#x1f971; &#x1f615;作者介紹&#xff1a;一個莽莽撞撞的&#x1f43b; &#x1f496;專欄介紹&#xff1a;日常生活&往事回憶 &#x1f636;?&#x1f32b;?每日金句&#xff1a;被人暖一下就高熱&…

catboost推理開GPU加速

核心設置 model.predict(feature, task_type‘GPU’) 代碼參考 # 訓練配置 params {"catboost": {"n_estimators": 7000,"learning_rate": 0.03,"eval_metric": "AUC","loss_function": "RMSE",&qu…

【sgDragSize】自定義拖拽修改DIV尺寸組件,適用于窗體大小調整

核心原理就是在四條邊、四個頂點加上透明的div&#xff0c;給不同方向提供按下移動鼠標監聽 &#xff0c;對應計算寬度高度、坐標變化 特性&#xff1a; 支持設置拖拽的最小寬度、最小高度、最大寬度、最大高度可以雙擊某一條邊&#xff0c;最大化對應方向的尺寸&#xff1b;再…

一次Linux中的木馬病毒解決經歷(6379端口---newinit.sh)

病毒入侵解決方案 情景 最近幾天一直CPU100%,也沒有注意看到了以為正常的服務調用,直到騰訊給發了郵件警告說我的服務器正在入侵其他服務器的6379端口,我就是正常的使用不可能去入侵別人的系統的,這是違法的. 排查 既然入侵6379端口,就懷疑是通過我的Redis服務進入的我的系統…

Vue基礎-1.知識導航

知識導航&#xff08;就問全不全&#xff09; 當學習 Vue.js 時&#xff0c;除了基本的 HTML、CSS 和 JavaScript 知識外&#xff0c;還有一些其他的技術和語法需要了解&#xff0c;例如 ES6 和 TypeScript。以下是您可能需要學習的一些基礎知識和對應的學習資源&#xff0c;我…

css中變量和使用變量和運算

變量&#xff1a; 語法&#xff1a;--css變量名&#xff1a;值&#xff1b; --view-theme: #1a99fb; css使用變量&#xff1a; 語法&#xff1a;屬性名&#xff1a;var( --css變量名 )&#xff1b; color: var(--view-theme); css運算&#xff1a; 語法&#xff1a;屬性名…

vue3 rouer params傳參的問題

route.params在頁面刷新的時候數據會丟失&#xff0c;所以vue3 棄用了params方式&#xff01; 但是&#xff0c;vue3又更新了一個替代params的方式&#xff1a;history API import { useRouter } from "vue-router" const router userRouter; // 跳轉路由&#xff…

JDBC封裝與設計模式

什么是 DAO &#xff1f; Data Access Object(數據存取對象) 位于業務邏輯和持久化數據之間實現對持久化數據的訪問 DAO起著轉換器的作用&#xff0c;將數據在實體類和數據庫記錄之間進行轉換。 ----------------------------------------------------- DAO模式的組成部分 …

數據結構--拓撲排序

數據結構–拓撲排序 AOV? A O V ? \color{red}AOV? AOV?(Activity On Vertex NetWork&#xff0c;?頂點表示活動的?)&#xff1a; ? D A G 圖 \color{red}DAG圖 DAG圖&#xff08;有向?環圖&#xff09;表示?個?程。頂點表示活動&#xff0c;有向邊 < V i , V j …

計算機網絡的性能指標

計算機網絡的性能指標 1. 速率 速率是指數據在網絡中傳送的速度&#xff0c;通常用比特率或數據率來表示&#xff0c;單位是b/s&#xff0c;或bit/s&#xff0c;即比特每秒&#xff0c;或者bps(bit per second)。 速率單位&#xff1a;1 Ybps 10^24 bps(堯), 1 Zbps 10^21…