本文是一系列文章的第一篇,介紹和解釋了軟件編程,操作和保護(hù)參與者的應(yīng)用程序編程接口(API)安全威脅,挑戰(zhàn)和解決方案。
API安全基礎(chǔ)
研究各種API安全性替代方案可能會(huì)引起混淆,即使是經(jīng)驗(yàn)豐富的專(zhuān)家也是如此。本系列文章旨在幫助所有類(lèi)型的讀者更好地了解保護(hù)API免受網(wǎng)絡(luò)安全風(fēng)險(xiǎn)的各種現(xiàn)代方法的利弊。該材料旨在幫助企業(yè)安全和軟件開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)和維護(hù)一致的保護(hù)理念。
目標(biāo)讀者包括每天依賴(lài)和使用API的軟件開(kāi)發(fā)人員以及可能對(duì)組織中的API安全負(fù)責(zé)的技術(shù)經(jīng)理。但是,目標(biāo)讀者還包括技術(shù)人員,他們幾乎沒(méi)有使用API的經(jīng)驗(yàn),但是仍然對(duì)該重要問(wèn)題的安全性感興趣。我們嘗試以每種類(lèi)型的閱讀器都可以訪問(wèn)的方式描述API安全性概念。
API簡(jiǎn)介
網(wǎng)絡(luò)和Internet服務(wù)的典型用戶傾向于根據(jù)屏幕、鍵盤(pán)、監(jiān)視器等來(lái)考慮計(jì)算機(jī)接口。這些接口是系統(tǒng)與人類(lèi)用戶交換信息的可見(jiàn)手段,并且近年來(lái)它們發(fā)展迅速。例如,蘋(píng)果公司的觸摸屏才出現(xiàn)在十年前,而一代年輕人幾乎不記得這種有用功能存在之前的世界是什么樣。
但是計(jì)算中還存在另一種類(lèi)型的界面,對(duì)于日常用戶而言可能更隱藏。界面的另一種類(lèi)型是軟件程序之間如何通信。多年以來(lái),這個(gè)過(guò)程一直沒(méi)有得到很好的說(shuō)明,因?yàn)?a href="http://www.1cnz.cn/v/tag/1730/" target="_blank">程序員發(fā)明了所謂的進(jìn)程間通信(IPC)協(xié)議。貝爾實(shí)驗(yàn)室的早期操作系統(tǒng)Unix,現(xiàn)在作為Apple iOS和Android的基礎(chǔ),使IPC設(shè)計(jì)更加容易,但它們是非標(biāo)準(zhǔn)的。
到2000年,業(yè)界決定將這些軟件到軟件的接口變得更加開(kāi)放和標(biāo)準(zhǔn)。這樣的技術(shù)決定成為我們現(xiàn)在稱(chēng)為應(yīng)用程序編程接口或更常見(jiàn)的API的起源。認(rèn)識(shí)到API提供了一個(gè)標(biāo)準(zhǔn)接口,通過(guò)該接口兩個(gè)軟件程序(通常也稱(chēng)為進(jìn)程)可以進(jìn)行通信,共享消息或托管共享內(nèi)存。
更具體地說(shuō),API是使軟件服務(wù)可用于工作負(fù)載或應(yīng)用程序以進(jìn)行雙向通信和消息共享的接口。 API也通常用于在不同進(jìn)程之間共享內(nèi)存。 API本質(zhì)上是無(wú)狀態(tài)的,并且通常包含完成交易所需的所有信息,這與Web表單不同,Web表單可能需要多個(gè)交易來(lái)進(jìn)行用戶注冊(cè)等過(guò)程。
API安全基礎(chǔ)
圖1.通用API模型
Unix操作系統(tǒng)IPC
大約半個(gè)世紀(jì)前,貝爾實(shí)驗(yàn)室的研究人員肯·湯姆森(Ken Thomson)和丹尼斯·里奇(Dennis Ritchie)發(fā)起了一個(gè)項(xiàng)目,目的是構(gòu)建一種在AT&T內(nèi)部使用的多任務(wù)操作系統(tǒng)。盡管起初目標(biāo)相對(duì)溫和,但從那時(shí)起,他們生產(chǎn)的所謂的Unix軟件和相關(guān)的設(shè)計(jì)理念一直是幾乎所有成功的商業(yè)操作系統(tǒng)的技術(shù)基礎(chǔ)。 Linux和Android是直接派生產(chǎn)品,而iOS和Windows則受到Unix的巨大影響。
對(duì)于Unix操作系統(tǒng),一個(gè)重要的設(shè)計(jì)考慮因素是需要?jiǎng)?chuàng)建IPC機(jī)制,該機(jī)制允許在計(jì)算機(jī)程序之間進(jìn)行數(shù)據(jù)共享和消息傳遞。湯普森和里奇受到當(dāng)時(shí)計(jì)算機(jī)科學(xué)界正在設(shè)計(jì)的許多快速發(fā)展的技術(shù)概念的影響。這包括生產(chǎn)者-消費(fèi)者模型的出現(xiàn)以及分布式計(jì)算的新方法。
可以將Unix IPC方法視為解決API現(xiàn)在所涵蓋的許多問(wèn)題的早期嘗試。兩者都涉及模塊化,標(biāo)準(zhǔn)化和簡(jiǎn)化在協(xié)作過(guò)程之間共享數(shù)據(jù)或消息的方式的需求。顯然,最大的不同是現(xiàn)代API受益于Internet帶來(lái)的大規(guī)模規(guī)模。最初的Unix工作是本地的和操作系統(tǒng)特定的。
-
API
+關(guān)注
關(guān)注
2文章
1499瀏覽量
61989 -
UNIX操作系統(tǒng)
+關(guān)注
關(guān)注
0文章
13瀏覽量
15306 -
IPC
+關(guān)注
關(guān)注
3文章
347瀏覽量
51910
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論