2017年上半年信息安全工程師考試真題含答案(下午題)
更多信息,請訪問https://www.moondream.cn/?p=389
第1題
閱讀下列說明,回答問題 1 至問題 3,將解答寫在答題紙的對 應欄內。
【說明】
安全目標的關鍵是實現安全的三大要素:機密性、完整性和可用性。對於一般性的信息類型的安全分類有以下表達形式:
{ (機密性,影響等級), (完整性,影響等級), (可用性,影 響等級) }
在上述表達式中,」影響等級」的值可以取為低 (L)、中(M)、高(H) 三級以及不適用 (NA)。
【問題 1】(6 分)
請簡要說明機密性、完整性和可用性的含義。
【問題 2】(2 分)
對於影響等級」不適用」通常只針對哪個安全要素?
【問題 3 】(3 分)
如果一個普通人在它的個人 Web 伺服器上管理其公開信息。請問這種公開信息的安全分類是什麼?
【答案和解析】:
【問題 1】
(1)機密性:維護對信息訪問和公開經授權的限制,包括保護個人隱私和私有的信息。
(2)完整性:防止信息不適當的修改和毀壞,包括保證信患的不可抵賴性和真實性。(3)可用性:保證信息及時且可靠的訪問和使用。【問題2】「不適用」通常針對機密性。
【問題3】{(機密性,NA),(完整性,M),(可用性,M)}
第2題
閱讀下列說明,回答問題 1 和問題 2,將解答寫在答題紙的對 應欄內。
【說明】Windows 系統的用戶管理配置中,有多項安全設置,如圖 2-1 所示。【問題 1】(3 分)
請問密碼和帳戶鎖定安全選項設置屬於圖中安全設置的哪一項?【問題 2】(3 分)Windows 的密碼策略有一項安全策略就是要求密碼必須符合複雜 性要求,如果啟用此策略, 那麼請問:用戶 Administrator 擬選取的以下六個密碼中的哪 些符合此策略?123456 Admin123 Abcd321 Admin@ test123! 123@host【答案和解析】:
【問題 1】屬於賬號策略。
【問題2】Abcd321 test123! 123@host
第3題
【說明】
掃描技術是網路攻防的一種重要手段,在攻和防當中都有其重要意義。nmap 是一個 開放源碼的網路掃描工具,可以查看網路系統 中有哪些主機在運行以及哪些服務是開放的。 namp 工具的命令選 項: sS 用於實現 SYN 掃描,該掃描類型是通過觀察開放埠和關閉 埠對探測分組的響應來實現埠掃描的。請根據圖 3-1 回答下列 問題。
【問題 1】 (2 分)
此次掃描的目標主機的 IP 地址是多少?【問題 2】(2 分)SYN 掃描採用的傳輸層協議名字是什麼?【問題 3】 (2 分)SYN 的含義是什麼?
【問題 4】 (4 分)目標主機開放了哪幾個埠?簡要說明判斷依據。【問題 5】(3 分)
每次掃描有沒有完成完整的三次握手?這樣做的目的是什麼?【問題 6】(5 分)補全表3-1 所示的防火牆過濾器規則的空(1) – (5),達到防火牆禁止此類掃描流量進入和處出網路 ,同時又能允許網內用戶訪問外部網頁伺服器的目的。表 3-1 防火牆過濾器規則表【問題 7】 (2 分)
簡要說明為什麼防火牆需要在迸出兩個方向上對據數據包進行過濾。【答案和解析】:
【問題 1】192.168.220.1
【問題2】TCP協議
【問題3】同步信號,是TCP/IP建立連接時使用的握手信號。
【問題4】目標主機開放的埠為:135埠,139埠。
判斷依據:如果埠開放,目標主機會響應掃描主機的SYN/ ACK連接請求;如果埠關閉,則目標主機迴向掃描主機發送RST的響應。【問題5】 沒有完成,這樣做即使日誌中對掃描有所記錄,但是嘗試進行連接的記錄也要比全掃描少得多。
【問題6】(1)UDP (2)* (3)80 (4)0 (5)1
【問題7】在進入方向過濾是為了防止被人攻擊,而在出口方向過濾則是為了防止自己成為攻擊的源頭或者跳板。
第4題
【說明】
DES 是一種分組密碼,己知 DES 加密演算法的某個 S 盒如表 4-1 所示。【問題1】 (4分)
請補全該 S 盒,填補其中的空(1) – (4),將解答寫在答題紙的對應欄內。【問題 2】 (2分)如果該 S 盒的輸入為 110011,請計算其二進位輸出。【問題3】(6分)DES加密的初始置換表如下:置換時,從左上角的第一個元素開始,表示輸入的銘文的第58位置換成輸出的第1位,輸入明文的第50位置換成輸出的第2位,從左至右,從上往下,依次類推。
DES加密時,對輸入的64位明文首先進行初始置換操作。若置換輸入的明文M=0123456789ABCDEF(16進位),請計算其輸出(16進位表示)。
【問題4】(2分)如果有簡化的DES版本,其明文輸入為8比特,初始置換表IP如下:IP:2 6 3 1 4 8 5 7請給出其逆初始置換表。【問題5】(2分)DES加密演算法存在一些弱點和不足,主要有密鑰太短和存在弱密鑰。請問,弱密鑰的定義是什麼?【答案和解析】:
【問題 1】
(1)10 (2)6 (3)1 (4)11
【問題2】
0100
【問題3】
M = (0123456789ABCDEF)16 = (00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111)2經過IP置換,結果為:M』 =(11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010)2=(CC00CCFFF0AAF0AA)16
【問題4】
4 1 3 5 7 2 8 6
【問題5】
弱密鑰不受任何循環移位的影響,並且只能得到相同的子密鑰,由全0或全1組成的密鑰顯然是弱密鑰,子密鑰生成過程中被分割的兩部分分別為全0或全1時也是弱密鑰。
第5題
【說明】在公鑰體制中,每一用戶U都有自己的公開密鑰PKu和私鑰SKu。如果任意兩個用戶A和B按以下方式通信:
void Challenge(char *str)
{
char temp[9]={0};
strncpy(temp,str,8);
printf(「temp=%s
」,temp);
if(strcmp(temp」Please!@」)=O){
printf(「KEY: ****」);
}
}
int main(int argc,char *argv[])
{
char buf2[16];
int check=1;
char buf[8];
strcpy (buf2, 「give me key! !」);
strcpy(buf,argv[ 1]);
if(check=65) {
Challenge(bu f);
}
else {
printf(「Check is not 65 (%d)
Program terminated!!
」,check);
}
return 0;
}
A發給B消息[EpKB(m),,A]。
其中Ek(m)代表用密鑰K對消息m進行加密。
B收到以後,自動向A返回消息【EPkA(m),B】,以使A知道B確實收到消息m。
【問題1】(4分)
用戶C怎樣通過攻擊手段獲取用戶A發送給用戶B的消息m。
【問題2】(6分)
若通信格式變為:
A給B發消息:EPKB(ESKA(mLm,A)
B給A發消息:EpKA(EsKN(m),m,B)
這時的安全性如何?請分析A,B此時是如何相互認證並傳遞消息的。
【答案和解析】:
【問題 1】
攻擊用戶 C 可以通過以下手段獲取報文 m:
1. 用戶C截獲消息: (EPKB(m), A)2. 用戶C篡改消息: (EPKB(m), C)3. 用戶B返回消息: (EPKC(m), B)4. 用戶C成功解密,最後得到明文m。【問題2】
安全性提高了,能實現加密和認證的雙重任務。
第一步,A 發給 B 消息是 A 首先用自己的秘密鑰 SKA對消息 m 加密,用於提供數字簽名,再用接收方的公開鑰 PKB第 2 次加密,密文中包括明文的信息和 A 的身份信息。第二步,接收方 B 收到密文,用自己的私鑰先解密,再用對方的公鑰驗證發送方的身份是 A,實現了 B 對 A 的認證,並獲取了明文。第三步,B 發給 A 消息是 B 首先用自己的私鑰 SKB對消息 m 加密並簽名, 再用 A 的公開鑰 PKA第 2 次加密, 密文中包括明文的信息和 A 的身份信息, 還有 B 對接收的 m 的簽名密文。第四步,只有 A 才能用自己的私鑰打開 B 送過來的密文, 並且驗證是 B 的簽名, 實現了 A 對 B的認證,當 A 看見原樣返回的 m,就知道 B 收到了 A 發送的明文 m 了。第6題
【說明】
基於 Windows32 位系統分析下列代碼,回答相關問題 。void Challenge(char *str){char temp[9]={0};strncpy(temp,str,8);printf(「temp=%s」,temp);if(strcmp(temp」Please!@」)==0){printf(「KEY: ****」);}}int main(int argc,char *argv[ ]){
char buf2[16]
int check=1;char buf[8]strcpy (buf2, 「give me key! !」);strcpy(buf,argv[1]);if(check==65) {challenge(buf);}else {printf(「Check is not 65 (%d)Program terminated!!
」,check);}return 0;
}
【問題 1】(3 分)main 函數內的三個本地變數所在的內存區域稱為什麼?它的兩個最基本操作是什麼?【問題 2】(3分)畫出buf,check,buf2 三個變數在內存的布局圖。【問題 3】(2分)
應該給程序提供什麼樣的命令行參數值(通過argv變數傳遞)才能使程序執行流程進入判斷語句if(check=65)….然後調用challenge( )函數。【問題4】(4分)上述代碼所存在的漏洞名字是什麼,針對本例代碼,請簡要說明如何修正上述代碼以修補次漏洞。【答案和解析】:
【問題 1】
1、堆棧。2、PUSH和POP。
【問題2】
【問題3】
用戶輸入9個字元的字元串,使其滿足條件:前8個字元為任意字元和第9個字元為大寫字母A;
【問題4】
緩衝區溢出。使用安全函數strncpy()來代替strcpy()函數。
推薦閱讀:
※2018軟考信息安全工程師備考指南
※2018年軟考信息安全工程師備考指南
TAG:信息安全 | 網路與信息安全工程師 |