130 likes | 256 Views
XML 技術與電子商務期末報告 WS-Security. 指導教授:葉慶隆 老師 報告人: GI2.42 林典蔚. 簡介. WS-Security (Web 服務安全 ) 是一種在 Web 服務上有關安全的網路傳輸協議 發展 2004 年 4 月 19 日, OASIS ( Organization for the Advancement of Structured Information Standards )組織發布了 WS-Security 標準的 1.0 版本 2006 年 2 月 17 日,發布了 1.1 版本. 構成.
E N D
XML技術與電子商務期末報告WS-Security 指導教授:葉慶隆 老師 報告人:GI2.42 林典蔚
簡介 • WS-Security (Web服務安全) 是一種在Web服務上有關安全的網路傳輸協議 • 發展 • 2004年4月19日,OASIS(Organization for the Advancement of Structured Information Standards )組織發布了WS-Security標準的1.0版本 • 2006年2月17日,發布了1.1版本
構成 • SAML(Security Assertion Markup Language) • Kerberos • 認證格式(X.509)
SAML • 安全宣示標記語言(SAML)是OASIS所發展來提供XML架構下,商業交易的雙方透過Web services交換授權(authorization)及認證(authentication)的機制 • SAML定義了多個安全確認的方式: • (1) Authentication Assertion(認證) • (2) Attribute Assertion(屬性) • (3) Decision Assertion(決策) • (4) Authorization Assertion(授權) • 利用這些方法來達到提高XML架構的安全性。
應用 • SAML可以使得Web-based的安全機制能跨站台供多個公司使用,例如單一登入(single sign-on) • SAML運用了以下的標準協定及訊息架構 • XML簽章 (XML Signature) • XML加密(XML Encryption) • SOAP。
Kerberos • 源自於美國麻省理工學院實驗室 • KDC • 核心為建立一個安全的、可信任的密鑰分發中心(Key Distribution Center,KDC),每個用戶只要知道一個和KDC進行會話的密鑰就可以了,而不需要知道成百上千個不同的密鑰(session ticket)
實例說明 • A想要和B進行秘密通信 • 1. A先和KDC通信,用只有A和KDC知道的密鑰進行加密 • 2. A告訴KDC他想和B進行通信,KDC會為A和B之間的會話隨機選擇一個對話密鑰,並生成一個標籤,這個標籤由KDC和B之間的密鑰進行加密 • 3. A啟動和B對話時,A會把這個標籤交給B。這個標籤的作用是讓A確信和他交談的是B,而不是冒充者 • 因為這個標籤是由只有B和KDC知道的密鑰進行加密的,所以即使冒充者得到用戶甲發出的標籤也不可能進行解密,只有用戶乙收到後才能夠進行解密,從而確定了與用戶甲對話的人就是用戶乙
X.509 • X.509是一個被廣為應用的標準,S/MIME、SET、與IPSec等都使用了X.509標準 • X.509標準是由國際電信聯盟(ITU-T)制定的數位認證標準,使用RSA演算法的公開金錀加密技術,數位簽章方面則是使用雜湊函數
組成要素 • 使用者的一對金鑰 • 每對鑰匙由私密金鑰(Private Key)與公開金鑰(Public Key)組成。公開金鑰可以發佈到網路或給其他使用者,私密金鑰通常只能存在於使用者的電腦,只有使用者可以存取 • 公開金鑰密碼學是使用在數學上相關連的一對金鑰,如果以其中一把金鑰用來加密訊息,那就只能用另一把金鑰解開訊息;這對金鑰的其中一支稱為 Public Key(公開金鑰);另一把鑰匙稱為 Private Key(私密金鑰)
數位憑證 • 由憑證機構發出,藉以向他人確認身分。數位憑證通常包含有持有者的公開金鑰、持有者的電子郵件地址、憑證發行單位、憑證有效期限…等等 • 憑證機構(Certificate Authority:CA) • 發行與驗證憑證的組織,是屬於公正的第三方,要負責證明提出憑證發行的人身分的正確性,要保證包含在憑證裡資訊的正確性,並且需要對憑證作數位簽章
如何運作 • 公開金鑰驗證數位簽章: • 1. A先產生一對金鑰再向 CA 註冊申請,A 除了提供 CA 必要的證明文件外,也需要送上公開金鑰的副本 • 2. 當 A 的身份被驗證無誤之後,CA 將發佈結合 A 使用者公開金鑰的數位憑證,CA 會把此憑證擺在公用資料庫 • 3. 當 A 使用者想要與 B 使用者溝通時,他只需以自己的私密金鑰對文件作簽章,B 使用者這端只需透過 CA 的資料庫取得A使用者的公開金鑰即可驗證文件的確來自A使用者 • A利用雜湊函數產生一份要傳送文件的文摘,並用A的私密金鑰將之加密,連同文件一併傳給B • B收到文件後用A的公開金鑰解開文摘內容,並且也用雜湊函數產生一份文件的文摘,比對兩者是否相同即可確認文件是由A所簽署
公開金鑰加密 • 上面例子是用在簽章,若A使用者希望也能傳送加密資料給 B 使用者,必須 B 使用者也使用 PKI • A 必須先從 CA 取得包含 B 的公開金鑰的憑證,而B的憑證是以 CA 的私密金鑰作數位簽章,因此A 以 CA 的公開金鑰驗證此簽章以取得 B 的公開金鑰,接著用於傳送加密資料。
結論 • 良好的安全性是Web Services功能發展與應用的基礎,而WS-Security通訊協議主要運用了 • SAML • Kerberos • X.509 達到Web Services所要求的安全性