分類
CISSP

憑證(certificate)

憑證(certificate)只是有寫主體(subject)名字的公鑰。憑證由申請者提出憑證簽發申請(CSR),經過身分核實後,再由憑證管理中心(CA)簽發。

CSR包含申請者公鑰及基本資料,但不包含私鑰(因為私鑰是秘密,不能給別人)。

要了解憑證如何運作,用OpenSSL玩一次就知道了(但不要用微軟的東西,它們很方便但隱藏太多細節,學不到技術內涵)

分類
Cissp-WentzWu

3A

存取控制(Access Control)只是安全控制措施(Security Controls)的一個大類。上課談的存取控制主要針對電腦系統上邏輯的存取控制,也就是主體(Subject)對客體(Object)的存取必須受到安全核心(Security Kernel)的3A管制。
• 3A就是指驗證身份(Authentication)、檢查授權(Authorization)及記錄行為(Accounting)。存取控制必須以識別(Identity)為基礎,因此Domain 5的口訣為I+3A。
• 主體是主動方,客體是被動方;主體對客體的存取動作分為簡單的讀取(Read)動作及其它的動作,如寫入(Write)。
安全核心的任務就是存取控制。安全核心的實作必須夠強壯,不能隨意就被入侵(Tamper Proof)、必須完整控制(不能作半套),且必須夠小(以免影響效能)。

分類
CISSP

穿隧協議

穿隧協議(英語:Tunneling Protocol)[1]是一種網路協定,在其中,使用一種網路協定(傳送協定),將另一個不同的網路協定,封裝在負載部份。使用隧道的原因是在不相容的網路上傳輸資料,或在不安全網路上提供一個安全路徑。

隧道則是對比分層式的模型,如OSI模型TCP/IP。穿隧協議通常(但並非總是)在一個比負載協定還高的層級,或同一層。要了解協定堆疊,負載和傳送協定都須了解。傳統的分層式協定,如OSI模型TCP/IP模型,HTTP協定 ,並不被認為是穿隧協議。隧道是在相隔甚遠的客戶端和伺服器兩者之間進行中轉,並保持雙方通信連接的應用程式。

通用路由封裝是一種跑在 IP (IP 號碼為 47)的協定,身為網路層上的網路層的例子,通常是用帶有公開位址的 IP 封包來攜帶帶有 RFC 1918 私用位址的 IP 封包來穿越網際網路。在此例上,傳送和負載協定是相容的,但負載位址和傳送網路是不相容的。

穿隧協議可能使用資料加密來傳送不安全的負載協定。

資料來源:https://zh.wikipedia.org/wiki/%E9%9A%A7%E9%81%93%E5%8D%8F%E8%AE%AE

分類
CISSP

傳輸層安全性協定

傳輸層安全性協定(英語:Transport Layer Security,縮寫:TLS)及其前身安全通訊協定(英語:Secure Sockets Layer,縮寫:SSL)是一種安全協定,目的是為網際網路通訊提供安全及資料完整性保障。網景公司(Netscape)在1994年推出首版網頁瀏覽器網景領航員時,推出HTTPS協定,以SSL進行加密,這是SSL的起源。IETF將SSL進行標準化,1999年公布TLS 1.0標準檔案(RFC 2246)。隨後又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在瀏覽器電子郵件即時通訊VoIP網路傳真等應用程式中,廣泛使用這個協定。許多網站,如GoogleFacebookWikipedia等也以這個協定來建立安全連線,傳送資料。目前已成為網際網路上保密通訊的工業標準。

SSL包含記錄層(Record Layer)和傳輸層,記錄層協定確定傳輸層資料的封裝格式。傳輸層安全協定使用X.509認證,之後利用非對稱加密演算來對通訊方做身分認證,之後交換對稱金鑰作為會談金鑰(Session key)。這個會談金鑰是用來將通訊兩方交換的資料做加密,保證兩個應用間通訊的保密性和可靠性,使客戶與伺服器應用之間的通訊不被攻擊者竊聽。

資料來源:https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E6%80%A7%E5%8D%94%E5%AE%9A

分類
CISSP

擴展認證協議

可擴展身份驗證協議(英語:Extensible Authentication Protocol,縮寫為 EAP),是一個在無線網絡點對點協議中普遍使用的認證框架。它被定義在 RFC 3748 中,並且取代了舊版協議 RFC 2284,後來被新版協議 RFC 5247 取代。EAP 不僅可以用於無線區域網,還可以用於有線區域網,但它在無線區域網中使用的更頻繁。最近,WPA 和 WPA2 標準已經正式採納了5類EAP作為正式的認證機制。

EAP 是一個認證框架,不是一個特殊的認證機制。EAP 提供一些公共的功能,並且允許協商所希望的認證機制。這些機制被叫做 EAP 方法,現在大約有 40 種不同的方法。IETF 的 RFC 中定義的方法包括:EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM 和 EAP-AKA,還包括一些廠商提供的方法和新的建議。無線網絡中常用的方法包括 EAP-TLS、EAP-SIM、EAP-AKA、PEAP、LEAP 和 EAP-TTLS。

當 EAP 被基於 IEEE 802.1X 的網絡接入設備(諸如 802.11a/b/g,無線接入點)調用時,現代的 EAP 方法可以提供一個安全認證機制,並且在用戶和網絡接入伺服器之間協商一個安全的 PMK。該 PMK 可以用於使用 TKIP 和 AES 加密的無線會話。

資料來源:https://zh.wikipedia.org/wiki/%E6%89%A9%E5%B1%95%E8%AE%A4%E8%AF%81%E5%8D%8F%E8%AE%AE

分類
CISSP

虛擬區域網路擴展(Virtual Extensible LAN:VXLAN)

虛擬區域網路 (VLAN)
https://ithelp.ithome.com.tw/upload/images/20210905/20132160yVhs9wEOyW.jpg
-VLAN 組(來源:Cisco Press)

虛擬 LAN (VLAN) 是在數據鏈路層(OSI 第 2 層)的計算機網絡中劃分和隔離的任何廣播域。
資料來源:維基百科
目前的VLAN數量有限,為4094,無法滿足數據中心或雲計算的需求,具有基於租戶隔離網絡的共同特點。例如,Azure 或 AWS 的客戶遠多於 4094。

私有VLAN
https://ithelp.ithome.com.tw/upload/images/20210905/20132160rGnrhFAheb.jpg
-酒店專用 VLAN
專用 VLAN,也稱為端口隔離,是計算機網絡中的一種技術,其中 VLAN 包含受限制的交換機端口,因此它們只能與給定的上行鏈路進行通信。受限端口稱為專用端口。每個專用 VLAN 通常包含許多專用端口和一個上行鏈路。上行鏈路通常是連接到路由器、防火牆、服務器、提供商網絡或類似中央資源的端口(或鏈路聚合組)。
專用 VLAN 的典型應用是酒店或乙太網到家庭網絡,其中每個房間或公寓都有一個用於 Internet 訪問的端口。
資料來源:維基百科

VXLAN 問題陳述(VXLAN Problem Statement)
VXLAN (RFC 7348) 就是為了解決這個問題而設計的。VXLAN 問題陳述突出了以下問題:

  1. 生成樹(Spanning Tree)和 VLAN 範圍施加的限制
  2. 多租戶環境(Multi-tenant)
  3. ToR(架頂式)交換機的表尺寸不足
    它還寫道:“VXLAN(虛擬可擴展區域網路)解決了在多租戶環境中存在虛擬機的情況下第 2 層和第 3 層數據中心網絡基礎設施的上述要求。”

VXLAN 作為覆蓋網絡(VXLAN as Overlay Network)
VXLAN 將傳統的 VLAN 幀封裝為 IP 負載或 MAC-over-IP,以支持主幹交換機和葉交換機之間的通信。所述葉脊架構採用葉片開關和主幹交換機組成的兩層的網絡拓撲。
https://ithelp.ithome.com.tw/upload/images/20210905/20132160a4WkntnsZQ.png

覆蓋和底層網絡(Overlay and Underlay Networks)
底層網絡 或所謂的 物理網絡 ,傳統協議在其中發揮作用。底層網絡是物理基礎設施,在其上構建覆蓋網絡。它是負責跨網絡傳輸數據包的底層網絡。
 底層協議:BGP、OSPF、IS-IS、EIGRP
一個 覆蓋網絡 是一個 虛擬的網絡 被路由在底層網絡基礎設施之上,路由決定將發生在軟件的幫助。
 覆蓋協議:VXLAN、NVGRE、GRE、OTV、OMP、mVPN
覆蓋網絡是一種使用軟件創建網絡抽象層的方法,可用於在物理網絡之上運行多個獨立的、離散的虛擬化網絡層,通常提供新的應用程序或安全優勢。
來源:Underlay Network 和 Overlay Network

攻擊向量(Attack Vector)
VXLAN 是一個 MAC-over-IP 覆蓋網絡,它繼承了第 2 層和第 3 層攻擊向量,因此它擴展了第 2 層網絡的攻擊向量。
傳統上, 第 2 層網絡 只能被惡意端點從“內部”攻擊——要么:
. 通過不當訪問 LAN 和窺探流量,
. 通過注入欺騙性數據包來“接管”另一個 MAC 地址,或
. 通過氾濫並導致拒絕服務。
用於傳送第 2 層流量的 MAC-over-IP 機制顯著擴展了此攻擊面。 這可能是由於流氓將自己注入網絡而發生的:
. 通過 訂閱一個或多個 承載 VXLAN 網段廣播流量的多播組,以及
. 通過將 MAC-over-UDP 幀發送 到傳輸網絡以注入虛假流量,可能是為了劫持 MAC 地址。
本文檔不包含針對此類攻擊的具體措施,而是依賴於 IP 之上的其他傳統機制。相反,本節概述了 VXLAN 環境中一些可能的安全方法。
. 通過限制在 VXLAN 環境中部署和管理虛擬機/網關的人員的管理和管理範圍,可以減輕流氓端點的傳統第 2 層攻擊。此外,此類管理措施可能會通過 802.1X 之類的方案得到加強,以對單個端點進行准入控制。此外,使用基於 UDP 的 VXLAN 封裝可以在物理交換機中配置和使用基於 5 元組的 ACL(訪問控制列表)功能。
. 可以使用 IPsec 等傳統安全機制保護 IP 網絡上的隧道流量,這些機制對 VXLAN 流量進行身份驗證和可選加密。當然,這需要與授權端點的身份驗證基礎設施相結合,以獲取和分發憑據。
. VXLAN 覆蓋網絡是在現有 LAN 基礎設施上指定和運行的。為確保 VXLAN 端點及其 VTEP 在 LAN 上獲得授權,建議為 VXLAN 流量指定一個 VLAN,服務器/VTEP 通過此 VLAN 發送 VXLAN 流量以提供安全措施。
. 此外,VXLAN 需要在這些覆蓋網絡中正確映射 VNI 和 VM 成員資格。期望使用現有安全方法完成此映射並將其傳送到 VTEP 和網關上的管理實體。
來源:RFC 7348

區域網路上的 EAP(EAP over LAN)
https://ithelp.ithome.com.tw/upload/images/20210905/20132160KESGUnQzve.jpg
-EAP 和 802.1X
IEEE 802.1X 是基於端口的網絡訪問控制 (PNAC) 的 IEEE 標準。它是 IEEE 802.1 網絡協議組的一部分。它為希望連接到 LAN 或 WLAN 的設備提供身份驗證機制。
IEEE 802.1X 定義了基於 IEEE 802.11 的可擴展身份驗證協議 (EAP) 的封裝,稱為“EAP over LAN”或 EAPOL。EAPOL 最初是為 802.1X-2001 中的 IEEE 802.3 以太網設計的,但在 802.1X-2001 中被闡明以適合其他 IEEE 802 LAN 技術,例如 IEEE 802.11 無線和光纖分佈式數據接口(ANSI X3T9.5/X3T12 和 ISO 9314) . 在 802.1X-2010 中,EAPOL 也經過修改以與 IEEE 802.1AE(“MACsec”)和 IEEE 802.1AR(安全設備身份,DevID)一起使用,以支持內部 LAN 段上的服務識別和可選的點對點加密。
資料來源:維基百科

參考
虛擬可擴展區域網路 (VXLAN):在第 3 層網絡上覆蓋虛擬化第 2 層網絡的框架 (RFC 7348)
虛擬可擴展 LAN(維基百科)
什麼是 VXLAN?(Juniper)
底層網絡和覆蓋網絡
網絡工程師對虛擬可擴展區域網路 (VXLAN) 的看法
TOR、EOR 和 MOR 是什麼意思?
數據中心架構中流行的 ToR 和 ToR 交換機
虛擬區域網路 | 第 1 部分 – VxLAN 的工作原理 (YouTube)
VXLAN 介紹 (YouTube)
SD-WAN 的基礎知識
私有VLAN
虛擬可擴展區域網路
RFC 7348:虛擬可擴展區域網路 (VXLAN):在第 3 層網絡上覆蓋虛擬化第 2 層網絡的框架

資料來源: Wentz Wu QOTD-20210804

分類
CISSP

受保護的可擴展身份驗證協議 (PEAP) 是對 VPN 服務器的客戶端進行身份驗證的最佳身份驗證協議

https://ithelp.ithome.com.tw/upload/images/20220602/20132160bbn2SmNEVV.jpg
-VPN 和 EAP
VPN 服務器可以在沒有 RADIUS 服務器支持的情況下作為身份驗證服務器運行,RADIUS 服務器與 RADIUS 客戶端(VPN 服務器)而不是 VPN 客戶端進行通信。VPN 客戶端可以通過 PEAP 對 VPN 服務器進行身份驗證,“PEAP 是一種將 可擴展身份驗證協議 (EAP) 封裝在加密和經過身份驗證的 傳輸層安全 (TLS) 隧道中的協議”。(維基百科)
802.1X 也稱為 EAP over Lan (EAPoL),用於局域網訪問控制,特別是有線乙太網路或 WI-FI 網路。802.1X 不是為遠程訪問身份驗證或 VPN 設計的。
“可擴展身份驗證協議 ( EAP ) 是一種經常用於網路和 Internet 連接的身份驗證框架。” (維基百科)EAP 不是用於認證主體的認證協議,而是一種擴展認證協議的協議。
參考
誤用案例
集成測試
系統測試

資料來源: Wentz Wu QOTD-20211025

分類
CISSP

API 是什麼? RESTful API 又是什麼?

API 是什麼?

API,全名 Application Programming Interface (應用程式介面),簡單來說,是品牌開發出的一種接口,讓第三方可以額外開發、應用在自身的產品上的系統溝通介面。

來看個短短的、清楚直白的敘述影片:API 就是你的餐廳服務生💁

https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FzvKadd9Cflc%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DzvKadd9Cflc&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FzvKadd9Cflc%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=youtube

以實際應用的範例而言,Google Map API 就很好理解了,常常可以在各式不同的網站看見 Google Map 應用,很多都是接 Google Map API 的範例,營運考量上,有可能 API 會限制一定使用流量以內免費,超過即收費,Google map 也是如此。

點我查看 Google Maps API 收費標準

在 RESTful API 之前,要再理解一下 HTTP,HTTP 是一種協定,全名 Hypertext Transfer Protocol(超文本傳輸協定),網路世界其實就分為客戶端、伺服器端,舉例說,客戶端就是我,伺服器端就是 Yahoo,我要看 Yahoo 的首頁,我就是向 Yahoo 的伺服器端傳送了這個要求,Yahoo 再回應資源給我。為了讓要求和回應統一規範,就有了 HTTP。

舉例,假設我要吃滷味:

  • 在瀏覽器輸入 Yahoo 網址,按下 enter,送出 request (跟老闆說我要切兩塊百頁豆腐)
  • 伺服器收到 request 檢查該網址是否存在(老闆轉身看百頁豆腐還有沒有)
  • 伺服器發 response 回來(百頁豆腐切好了)

跟老闆點餐的方式,有一定的規範跟方式,像是我一定要用講的,不可以用比的,我要說中文,不可以說英文,這就是 HTTP 協定。

如果伺服器發現網址不存在(老闆發現百頁豆腐賣完了),就會回傳 HTTP status code 狀態碼 404:

狀態碼又會再分為下幾種:

2xx = Success(成功)
3xx = Redirect(重定向)
4xx = User error(客戶端錯誤)
5xx = Server error(伺服器端錯誤)

在 HTTP 中,會有很多種 method 做為請求的方法,常用的幾個動作分別為:GET / POST / PUT / DELETE,正好會對應到資料庫基本操作 CRUD 增刪查改。

CRUD 為 Create(新增)、Read(讀取)、Update(更新)與Delete(刪除)的縮寫

那 RESTful API 又是什麼?

先來看是誰發明的↓

Roy Thomas Fielding,他是HTTP協議(1.0版和1.1版)的主要設計者、Apache服務器軟件的作者之一、Apache基金會的第一任主席,REST這個詞是他在2000年的博士論文中提出的。

REST,全名 Representational State Transfer( 表現層狀態轉移),他是一種設計風格,RESTful 只是轉為形容詞,像是 peace 和平這名詞,轉成形容詞是 peaceful,RESTful 則形容以此規範設計的 API,稱為 RESTful API。

先用白話來說,以剛剛 API 影片中的餐廳服務生為例,如果使用一般的 API 點菜,我要加點查看已點菜色修改已點菜色取消已點菜色,都需要不同的服務生替我服務,可能加點的服務生是 John、查看已點菜色是 Annie….等,RESTful API,就是讓這些動作,都可以由同一位服務生完成。

RESTful API 主要由三種元件組成:

  1. Nouns 名詞:定義資源位置的 URL,每個資源在網路上都會有唯一的位置,就如每戶人家都有唯一的地址一樣。
  2. Verbs 動詞:對資源要做的動作。
  3. Content Types 資源呈現方式:API 資源可以以多種方式表現,最常用的是 JSON,較輕,也較好處理。

一般的 API,可能會是這樣:

獲得資料GET    /getData
新增資料POST /createData
刪除資料DELETE /deleteData/1

不同公司,不一樣的工程師,設計的名稱都會不一樣,沒有統一的命名方式,造成在引用各家 API 時,都需要詳讀 API 文件,理解所有設計命名規則後,才可使用。

若以 RESTful API 風格開發的話:

獲得資料GET     /data
新增資料POST /data
刪除資料DELETE /data/1

就是用一個唯一的 URL 定位資源,將動作藏在 HTTP 的 method 裡面。

所以使用 RESTful 風格設計的 API,就有了以下幾種優點及限制:

1. 有唯一的URL表示資源位置,統一的 API 接口。(Uniform Interface)

2. 無狀態。(Stateless)

RESTful 的狀態,意即 HTTP 的請求狀態,一般 Web 服務中,Server 端和 Client 端交互的資訊,會存在 Server 端的 Session (例如:已登入狀態),在 Client 端再次發送請求的時候,Server 端透過保存在 Server 端的 Session,去執行 request。無狀態的意思,即 Client 端自行保存狀態,在請求 Server 的時候,一併附上給 Server 端,Server 端無保存 Client 端的狀態資訊。

舉例來說,可能在用戶登錄系統時,Server 產生 token 紀錄 user 已登錄系統,然後把 token 還給 Client,在 Client 再次發送請求的時候,把 token 一起發給 Server,這樣 Server 就知道這一個 Client 是已經處於登錄的狀態。

意即所有的資源都可以 URI 定位,而且這個定位與其他資源無關,也不會因為其他資源的變化而變化,資源相互的依賴性降低。

舉一個白話一點的例子:查詢員工工資:
第一步:登錄系統。
第二步:進入查詢工資的頁面。
第三步:搜索該員工。
第四步:點擊姓名查看工資。

這樣的操作流程就是有狀態的,查詢工資的每一個步驟都依賴於前一個步驟,只要前置操作不成功,後續操作就無法執行。如果輸入一個URL就可以直接得到指定員工的工資,這種情況就是無狀態的,因為獲取工資不依賴於其他資源或狀態,這種情況下,員工工資是一個資源,由一個 URL 與之對應可以通過 HTTP 中的 GET 方法得到資源,這就是典型的 RESTful 風格。

3. 可更高效利用快取來提高回應速度 (Cachable)

在 server-side,GET 過的資源,如果沒有被變更過,可以利用 cache 機制減少 request。
在 client-side,透過 client 端 cache 紀錄 cache 版本,若向 server 要求資源時發現 server 最新版與 cache 相同,則 client 端直接取用本地資源即可,不需要再做一次查詢

4. 分層系統架構 (Layered System)

5. 客戶端服務器分離 (Client-Server)

6. 充份利用 HTTP protocal(GET/POST/PUT/DELETE) (Manipulation of resources through representations)

7. 可執行程式碼的設計,像是 JavaScript(非必要實作項目) Code-On-Demand (optional)

參考文章:
https://zh.wikipedia.org/wiki/%E8%A1%A8%E7%8E%B0%E5%B1%82%E7%8A%B6%E6%80%81%E8%BD%AC%E6%8D%A2
https://tw.alphacamp.co/blog/2016-10-25-coding-basics-for-marketers-1
https://ithelp.ithome.com.tw/articles/10157431
https://www.itread01.com/content/1544242329.html
https://progressbar.tw/posts/53
https://blog.csdn.net/hjc1984117/article/details/77334616
https://www.zhihu.com/question/28557115
https://blog.csdn.net/hjc1984117/article/details/77334616
http://www.ruanyifeng.com/blog/2011/09/restful.html
https://blog.toright.com/posts/5523/restful-api-%E8%A8%AD%E8%A8%88%E6%BA%96%E5%89%87%E8%88%87%E5%AF%A6%E5%8B%99%E7%B6%93%E9%A9%97.html
https://blog.csdn.net/Jmilk/article/details/50461577
https://blog.csdn.net/matthew_zhang/article/details/63410421

資料來源:https://medium.com/itsems-frontend/api-%E6%98%AF%E4%BB%80%E9%BA%BC-restful-api-%E5%8F%88%E6%98%AF%E4%BB%80%E9%BA%BC-a001a85ab638

分類
WUSON Coah

Bruce &alex & Steven – cissp lunch party-20220523

分類
CISSP

歐盟-美國隱私護盾

歐盟-美國隱私護盾是監管歐盟美國之間出於商業目的跨大西洋交換個人數據的法律框架。[1]其目的之一是使美國公司能夠根據旨在保護歐盟公民的歐盟隱私法更輕鬆地從歐盟實體接收個人數據。[2]歐盟-美國隱私護盾在獲得歐盟委員會批准後於 2016 年 7 月 12 日生效。它取代了被歐洲法院宣布無效的國際安全港隱私原則2015 年 10 月。[3]歐洲法院於 2020 年 7 月 16 日宣佈歐盟-美國隱私護盾無效,案件稱為Schrems II[4] 2022 年,美國和歐盟領導人宣布已同意一個名為跨大西洋數據隱私框架的新數據傳輸框架,以取代隱私盾。

資料來源:https://en.wikipedia.org/wiki/EU%E2%80%93US_Privacy_Shield