套用透明性(application transparency)是指從網路的任何一個接入點都能獲取一組公用套用的能力。
透明性是指套用與安全協定之間相互作用的程度以及是否必須改進套用以利用協定所提供的服務,通常,下移協定堆疊會使安全變得更透明。從套用的觀點來看,當安全服務是作為協定堆疊的一部分的時候,在傳輸層實現的安全很少要求套用的改進。
中文名稱 | 套用透明性 |
英文名稱 | application transparency |
定 義 | 從網路的任何一個接入點都能獲取一組公用套用的能力。 |
套用學科 | 通信科技(一級學科),通信原理與基本技術(二級學科) |
基本介紹
- 中文名:套用透明性
- 外文名:application transparency
- 定 義:獲取一組公用套用的能力
- 套用學科:通信科技,通信原理與基本技術
套用透明性的概念,套用透明性的工作原理,易於集成,配置和策略設定,
套用透明性的概念
套用透明性(application transparency)是指從網路的任何一個接入點都能獲取一組公用套用的能力。
透明性是指套用與安全協定之間相互作用的程度以及是否必須改進套用以利用協定所提供的服務,通常,下移協定堆疊會使安全變得更透明。從套用的觀點來看,當安全服務是作為協定堆疊的一部分的時候,在傳輸層實現的安全很少要求套用的改進(注意,主作業系統會管理協定堆疊)。例如,考慮協定堆疊內的一個在傳輸層實現的安全協定,它能保證多個套用通過使用同一傳輸層協定(TCP或UDP)實現通信,並對用戶透明。網路層操作的一個安全協定能保證占用不同傳輸層通信協定的多重套用,並對用戶透明。例如,IPSec能保護TCP和UDP通信,而不需要更改套用或是傳輸層協定。進一步考慮這一概念,在網路層之下運行的安全協定能保證任意數目通過不同傳輸層和網路層通信協定來實現通信的套用。
至此,我們已假定所有操作於傳輸層或傳輸層之下的安全服務由一個協定堆疊提供。然而,當在協定堆疊之外實現保密時,其透明性將會在很大程度上取決於安全協定和要求的安全服務。例如,大多數安全套接層(SSL)和傳輸層安全(TLS)的實現都是在套用層和傳輸層操作的。這使得我們無需改變協定堆疊就可以將SSL/TLS的機能添加到套用中。但是,SSL/TLS都要求對套用做小小的修改以獲得提供的安全。這種改動通常要通過調用一個SSL/TLS軟體開發工具包(SDK)來更換套用中所有的TCP套接調用。SDK執行所有用密碼編寫的操作,並為每個由套用創建的SSL/TLS對話保持對話狀態的所有信息。
套用透明性的工作原理
易於集成
集成一個安全協定的難易程度常常和協定操作的所在層有關。在套用層或套用層和傳送層邊界執行的協定,比如S/MIME和大多數SSL和TLS的實現,要求修改套用以獲得協定提供的安全服務。對一個有經驗的程式設計師來說,在得到套用的原始碼,並有合適的開發工具時,這些改動相對要容易一些,所有的套用必須分開啟動。就像在套用透明性那一部分提到的那樣,很多SSL/TLS軟體包可用於向套用添加加密、集成、校驗服務。在使用這些軟體包時,無需修改協定堆疊,因為軟體包在傳輸層的邊緣執行。因此,當得證一個或少量的套用的安全是,套用層協定常常是最簡單並易於實現的。
集成網路層安全協定,如IPSec,常常要設計對已有協定堆疊的修改。這些改動要求直接獲得堆疊的原始碼,並掌握開發協定堆疊的專門技術。另一個辦法不涉及對協定堆疊的修改,但必須使用一個墊片層以銜接網路層和鏈路層間的協定堆疊。IPSec軟體包,比如RSA Security的BSAFE IPSEC-C和SSH的IPSec Express,通過使用一個墊片層實現IPSec(通常包含一組截取)。我們會在後面的安全協定實現那一部分討論這種技術。
鏈路層安全協定常常在網路接口卡(NIC)的設備驅動內部實現。設備驅動控制NIC的操作,並負責鏈路層的執行過程,如在NIC把上層數據轉換為物理信號之前,添加報頭和尾。儘管鏈路層協定對網路層透明,但並不要求修改已有的TCP/IP堆疊,而是要求掌握對設備驅動開發的低層次知識。可以看到,協定堆疊越往下移,將一個安全嵌入一個系統所需要的知識就越專業。
配置和策略設定
當下移協定堆疊時,配置和策略設定變得更通用,也就是說,它們將適用於更高層的通信協定和套用。例如,SSL的諸如驗證方法和密碼設定,被用於一個套用內部的通信對話。另一方面,IPSec的配置設定能同時用所有更高層的協定和套用。這種靈活性部分是因為IP的連線屬性。連線協定將每個數據包當作一個自主單元。這使得安全協定對經過主機的所有數據包加密,而不必考慮數據包屬於哪個對話或套用。此外,IPSec策略設定能套用於多重高層協定和套用。因為IPSec對數據包屬性的能見度高於高層協定(高層協定含有更多協定報頭以獲得信息),它能提供一套詳細的過濾組選項。IPSec能根據數據包的源地址、源連線埠和目的地址、目的連線埠以及傳輸層協定、用戶名或系統名對數據包進行過濾。