背景
開放 API 介面如果沒有經過安全處理,則很容易出現三類安全問題,包括資訊截獲、篡改與泄露,
首先是用戶密碼容易被截獲,比如某家公司在開發開放式 API 時,沒有對其進行安全控制,那么該公司的客戶資訊很容易被黑客截獲,黑客在掌握客戶的用戶名、密碼等相關資訊與資料后,便能夠利用客戶的身份來登錄,使得客戶的隱私資訊泄露,黑客便可以輕易地盜刷客戶信用卡,使得客戶承受損傷;其次是表單資料很容易被篡改,比如某家公司所開發的開放 API 并沒有進行過防篡改控制,有客戶在購買1000 元產品后,其提交表單被黑客利用技術手段篡改為 10 塊錢,從而使得公司產生了經濟損失,
開放 API 介面安全問題解決方案
針對開放 API 平臺存在的上述安全問題,可以使用非對稱加密、MD5 摘要以及令牌機制進行預防和阻擊,使用Eolinker Api 測驗工具對API介面資訊進行加密,使得介面呼叫更加安全放心,
如圖1 ,Eolinker API介面測驗工具提供多種加密方式,
圖1
非對稱加密的加密與解密流程
開放 API 平臺生成公鑰和私鑰,并將公鑰對外公布,提供給需要對接 API 的人員,對接 API 的人員將用戶的資料使用公鑰進行加密傳輸,即使有黑客使用抓包工具截取到了報文,但是由于解密用戶資料只能使用 API 平臺自己擁有的私鑰才能解密,所以即使報文資料泄露,由于沒有鑰匙解開傳輸的資訊,黑客獲得了報文也無可奈何,非對稱加密解決了用戶傳輸用戶名、密碼等敏感資訊泄露的問題,
RSA 與 HTTPS 的對比
如果條件允許,建議開放 API 介面都使用 HTTPS 協議傳輸資料,使用 HTTPS 傳輸相較于 RSA 加密更安全,HTTPS顧名思義,即安全的 HTTP,HTTPS 的主要作用是確認雙方的身份和建立安全通道,保證傳輸資料的安全,
HTTPS 既用到了非對稱加密,也用到了對稱加密,相較于 RSA 加密,RSA 加密實作的,HTTPS 都能實作,但是 HTTPS 存在維護成本高、服務器開銷大、需要購買證書、性能相對低的問題,所以出于成本的考慮不能使用 HTTPS,使用 RSA 加密演算法是最優的選擇,使用Eolinker API介面測驗工具選擇HTTPS方式進行介面測驗,如圖2,
圖2
令牌鑒權
令牌可以理解為通行證,開放 API 介面暴露在公網之后就相當于一個敞開大門一樣,所有人都可以隨意進出,對于豪宅內的財產而言,這是很不安全的,
這時就需要一個保安查看進出人員的通行證,只有獲得通行許可的人員可以進出,沒有通行證的人員一律會被攔在大門外,不得進入,
同樣對于開放 API 介面而言,如果沒有令牌機制,所有人都可以通過介面獲取資料,造成平臺資料流失,給公司和客戶造成不可估量的損失,所以使用令牌進行鑒權是非常有必要的,
開放 API 呼叫方需要在每一次介面呼叫中都攜帶令牌,服務器則在過濾器中進行令牌的校驗,包含校驗令牌是否存在、令牌是否已經過期等,如果令牌在 REDIS 快取服務器中不存在,或者令牌已過期,則介面服務器直接回傳例外資訊,由介面呼叫方進行捕獲,強制客戶重新登錄獲取新的令牌,再進行后續操作,
總結
隨著硬體設備分布式計算能力的不斷提升、大資料處理能力的完善,也許現在還算先進的防護措施,在不久的將來就會變得不堪一擊,資料安全的攻防勢必是一場持久戰,只有不斷總結、改進,才能保護核心資料和客戶的權益,
文中演示工具為Eolink,支持在線使用,感興趣者可直接訪問:www.eolink.com使用!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/445324.html
標籤:其他
