顯示具有 IoT 標籤的文章。 顯示所有文章
顯示具有 IoT 標籤的文章。 顯示所有文章

2015年3月26日 星期四

開源的語音辨識WIT.ai

    今年的2015元旦剛過不了一個星期,Facebook便宣佈收購了語音辨識公司WIT.ai,這家公 司為一新創公司,成立雖僅18個月,但其語音技術根據百度(Baidu Inc.)的測試結果,比起蘋果的Siri、微軟的Cortana還要更加精確,相當接近百度(自家作的調查,當然要充胖一下)或 Google Google now語音助手的表現,無怪乎祖克伯要以迅雷不及掩耳的速度收購這家剛誔生的公司,作為與Apple和Google在語音AI領域相對抗的武器。
http://www.wired.com/wp-content/uploads/2014/10/witaiteam-1024x680.jpg
WIT.ai強調的是開放與免費使用,並利用使用者回饋的數據作為改善的參考;截至目前統計,已經有6000多位開發者透過WIT.ai所免費提供的API,在其程式中加入語音辨識的功能,以便開發出各式類型的App與應用環境,而其語音識別技術與資料庫在免費提供user使用的情況下,利用使用者與開發者自主回饋的資訊,作為WIT.ai自我改良的方式、並使其語音識別效率更加精確。


WIT.ai能作什麼?

    在WIT.ai首頁上,直接開宗明義的列出它能協助完成的事:
  1. Mobile apps:如果你是App開發者,可以使用WIT.ai的語音服務,讓你的App具有語音控制的功能,讓使用者能夠透過手機發送或執行語音相關命令。
  2. Home automation:當WIT.ai成功解析了你所送出的語音命令,那麼就可以透過智慧家居設備來執行相對應的動作。
  3. Wearable devices:穿戴式設備由於體積小,與使用者的輸出入介面受到限制,因此高度依賴語音命令的動作方式。
  4. Robots:無論是在工廠生產線或家庭、娛樂用的機器人,皆可透過語音方式讓機器人去執行相對應的行為,讓人感覺機器人似乎擁有聽覺與智慧的能力。
  5. Messenger Agents:目前各科技大廠皆推出語音助手的服務,透過對話的方式處理部份help desk的工作,並提供即時性的協助;只要在個人的console上建立完善的語音命令資料庫,WIT.ai也可以作到這點。

WIT.ai為何免費?

  最可貴的一點:WIT.ai是免費的,想想看,一般人若要建置一套自有的語音識別系統,往往要從零開始搜集龐大的語音樣本資料庫,並進行後續的處理、分析訓練、建置模型等等,這些都需要龐大的時間與人力門檻,因此限制住了像個人開發者、中小型企業等對於語音相關領域的開發與投入。
然而透過免費提供給眾多開發者應用在各種領域的專案,並將結果集中維護到線上的資料庫,這樣大量透過開發者在console對於語音識別結果的回饋,WIT.ai經由這樣集體智慧的概念,具備了自我學習並自動改良語音識別的能力,因此其辨識的準確度不下於諸如Google now、Apple Siri、Microsot Cortana、Amazon Echo等等科技大廠語音助手的識別能力。
  它的作法是,使用者(開發人員)需要先收集一系列希望讓電腦能夠識別的字串和口語,集中在一個稱為「Expressions」的資料夾中,然後提供眾多的語音樣本訓練電腦讓它知道這些語音都是屬於該「Expressions」,因為不同人有不同的腔調發音與口吻,因此,愈多的樣本與「Expressions」資料愈能讓識別結果更精確。因此和GitHub 這類的程式分享平台相同,WIT.ai亦充分的利用了網路的分享功能,藉由免費提供語音識別功能給開發者,同步的要求開發人員必須分享彼此的「grammar」和樣本以增進識別精確度,而達到一舉兩得的效果。
  不過,由於需要回到線上的資料庫分析取用並回饋,因此,我們可以預想到WIT.ai的一大缺點,就是必須要先連網才能使用相關的語音控制功能,如果沒有網路連線或設備不具連網功能,那麼就無法使用WIT.ai了,坦白說,這是一個致命的缺點,也是WIT.ai目前無法廣泛流行的原因,因為若需要設備在使用時必須先連網、或者必須持續的連網,那麼,它的使用範疇和應用環境就會大大的受限,而且也增加了開發的成本與功能複雜性。事實上,如果WIT.ai考量的是為了維護一套集中的資料庫、避免被自由散發利用、或者可立即更新、資料回饋等等,其實可考慮將龐大的語音資料庫預先分門別類,各別開放讓使用者依需求類型下載,且其下載的語音資料庫是經過加密無法反解譯的,或者乾脆考慮下載資料庫不連網使用者需付費等方式,應該都是可行的方向。

開始試用看看

  1. 登入GitHub帳號:WIT.ai使用GitHub來認證並建立個人專屬的控制平台(Wit console),因此必須要先擁有GitHub帳號才行,若您還沒有GitHub帳號可以到https://github.com申請,成功登入後,您便擁有專屬的Wit console(網址https://wit.ai/{您的GitHub帳號})。
下方是我的Wit console,點擊右上方的帳號名稱可新增一個instance。
  1. 建立Instance和Expression:這是比較複雜的部份,在建立所有的expression之前,我們必須先思考,想要用聲音來啟動什麼命令?
有兩個方式:
  1. 想像一下一個人應該說什麼話,然後將這個話語對應到什麼設備應作出什麼反映。
  2. 看看設備上的功能,能用什麼適當的指令來啟動它?要用什麼口語聲音來啟用這些指令?
例如,我們想要控制溫度,所以我們可能會說:
        「What's the current temperature?」
        「I want to set the temperature to 71 degrees.」
        「Is it me or it is hot here?」
        「Set the temperature to 64 degrees at 10pm.」
        「I am hot!」
    以上這些都可算是口語上想要控制溫度的指令,所以我們把它們都輸入到expression當中,Intent則輸入:Temperature。
然後,我們可以先用keyin文字的方式來測試WIT.ai可否辨識;請在Console中的文字欄,輸入剛剛expressions中的任一句,例如「It’s cold」,你會發現WIT.ai告訴我們這句話的意圖是”Temperature”,由於透過文字而省略了語音的因此,如果是透過語音方式,我們必須提供愈多的樣本愈好,才能抓到正確的意圖。
另外要注意的是,這些我們自己透過語音來測訓並訓練的結果是會自動提供給其它WIT.ai會員使用的,如果你不想公開,那麼就必須付費才不會公開給外界。

WIT.ai支援那些開發工具?

  1. WEB API:我們可以透過cURL,使用HTTP URL語法、或以JQuery來傳送命令並接收回傳結果,這種方式可用於大部份的環境,如網站、WEB App、iOS、Android、Windows…等等。
Ex:JQuery+JSON的範例,送出” set an alarm in 10min”的命令,此段亦可為一個語音物件.

收到的回應亦是json格式,intent是”alarm_set”,”entities”的值是”on”,有一個”datetime”的值是”2015-03-16T23:22:13.000-07:00 ~ 2015-03-16T23:22:14.000-07:00 “,因此,我們會發現,當我們告訴WIT.ai ” set an alarm in 10min”這句話,它能夠正確的告訴我們詳細的資訊:alarm_set、on以及一組相距十分鐘的時間值,我們就可以在程式中依使用者的語音作出正確的人工智慧行為,而且個人開發者或小公司就可以作到。





  1. 其它分別針對不同平台的API或SDK:如iOS API、Android SDK、Windows API、WEB API、Raspberry Pi API、Node.js API、Ruby SDK、Python SDK、C API、Rust API等等。

2015年3月12日 星期四

談談Apple HomeKit

  昨天3/9,是全球引領期盼Apple Watch發佈的日子,副總裁Kevin Lynch在即時轉播的現場用Apple Watch示範了如何遠端開啟家中車庫的門鎖,甚至能即時的看見車門開啟狀況,執行這段作業的App是由alarm.com(一間居家安全及自動化的公司)所開發,它結合了Apple Watch與智慧家居平台HomeKit, 勾畫出一個充滿科技與想像力的未來世界,這也讓我們想到發佈已半年多,卻仍猶抱琵琶半遮面的HomeKit。
http://attach.mobile01.com/attach/201503/mobile01-5af7457e2311bd3348cf134279090660.jpg
http://attach.mobile01.com/attach/201503/mobile01-cb4dff4a4b0061914ea7909952010061.jpg
  因此讓我們來看看Elyse Betters的文章「Apple HomeKit explained: What is it, and how does it work?」,他在文章中對於HomeKit作了簡要的介紹。
本文內容譯自Elyse Betters 2015/1/22發表於pocket-lint.com網站的文章
「Apple HomeKit explained: What is it, and how does it work?」,並佐以部份其它來源的資訊及圖表。
http://blog.azoft.com/wp-content/uploads/2014/06/apple-homekit-for-secure-and-reliable-smart-home.jpg
  隨著智慧家居的潮流,蘋果也推出了稱為「HomeKit」的智慧家庭平台,期望透過無線方式針對各式家居設備進行遠端控制。
  雖然蘋果在之前的全球開發者大會上曾揭露了一些相關訊息,但實際上,目前消費者還無法購買到HomeKit的相關產品,不過我們仍期待並且想知道它是如何工作並進行控制的。

HomeKit是什麼?

  HomeKit不是一個硬體,它是一個平台規範和開發工具框架,因此,它面向的不是消費者而是製造商和開發者,它主要針對的市場是家居自動化這塊領域。
  蘋果藉由發展HomeKit希望能簡化並統一目前雜亂的家庭自動化市場,方式是建立一個通用的平台讓所有來自不同廠商的智慧物件彼此都能相互溝通支援,同時搭配蘋果的另一項功能「Siri」(語音助手),透過語音操控的方式來控制所有設備。
  想像一個房子裏頭塞滿了來自不同廠商(如Honeywell或奇異)的智能物件(如燈泡或煙霧偵測器),它們彼此間正進行溝通和合作,而你可以透過iOS設備上的Siri功能告訴它們要作什麼。
HomeKit想要作的便是讓這樣的使用情境更加的友善化。

製造商的支援

  製造商必須在它們的智能設備中加入對HomeKit的支援,才能被視為HomeKit-enabled產品,此類的認證稱為Made For iPhone(MFi);當初蘋果在2014六月首度公開HomeKit之後,就已經知會了大部份的製造商,如iHome、海爾、Withings、菲利浦、iDevices、、Kwikset.、貝爾金、Kwikset等等公司相關訊息。
  第一批HomeKit認證產品剛剛在今年度的CES 2015發表,從智能插座到智能門鎖都有,例如Chamberlain公司的MyQ Smart Garage、Elgato的系列smart sensors、iHome的iSP5 SmartPlug、以及Insteon公司的Insteon Hub。

iOS 8

  iOS 8內建的HomeKit系統可以引導你從設定和更名所有家中的HomeKit設備以及房間編號,以家庭自動化為前提之下,提供您能夠從遠端來控制每個房間設備的能力,如此一來,就不需要切換不同的APP來操控不同的智能設備,因為iPhone預設就能夠控制所有HomeKit認證的設備。

Apple TV

  蘋果悄悄的在iOS 8.1和Apple TV 7.0.1版本中加入了HomeKit的支援,因此一些報導皆認為Apple TV將作為Hub的居中角色,讓所有的HomeKit認證設備皆透過Apple TV控管,正如同Google將Nest的智能恒溫器作為智能設備的控制中心一樣。
當我們出門在外時,使用Siri發送命令回家時,它會先經過家中的Apple TV再告知被控的HomeKit設備,不過完整的HomeKit生態一定需要Apple TV作為中介或者是控制中心嗎?目前我們尚無法確認,不過看來,Apple TV若在HomeKit中參一腳,那麼它的角色不僅會像是一個集中所有智能設備的Hub,更像是一個智慧居家網路的入口,負責將指令轉送到各個HomeKit設備,因此這台Apple TV需要擁有個人的認證,也就是你的Apple ID要事先提供給它。

HomeKit如何工作?

Apple-Homekit-Hierarchy

定義名稱

  在HomeKit中的任何物件,例如房子、房間、設備、功能、設定等等,都必須擁有獨立的名稱並儲存在一個共用可被Siri讀取的資料庫中,讓Siri能夠識別使用者語音所要控制的對象。
  例如,若你分別同時擁有一獨棟透天和一間公寓,那麼這兩間房子必須被指定不同的名稱(例如就叫作房子和公寓,從上表中位於Zone此層中),但不能都同樣被命名為「家」,同樣的,每個房間也必須賦予不同的名稱,注意,在不同的房子名稱下可各有相同的「廚房」名稱,但是,同一個房子名稱下則不能有兩個相同的「廚房」名稱。
  因此在同一個房子下,這些HomeKit設備會透過您的iOS設備來同步和設定,它們不僅擁有獨一無二的名稱,每項啟用在設備上的功能服務(Service)也需有特定的名稱,舉例來說,當你想要煮一杯咖啡,你可以將咖啡機命名為「Coffee pot」,煮咖啡的功能則為「Brew」。只要Siri能夠識別並匹配您口中的指令和資料庫中預先定義好的各項名稱,它就能夠替你操控相關的設備。

群組

  可以想像得到,未來對於一些智慧家居的愛好者,他們的HomeKit名稱定義可能會高達數百項,包含了房間、設備以及各項服務功能定義,為了能夠更方便的管理,蘋果的HomeKit提供群組功能,最上層的群組稱為Zones。
  群組可以讓你透過一個命令便關閉房子裏全部的電燈,換句話說, Siri不需要一個個命令每棟房子裏的燈泡逐一關閉,此外,群組也包含了功能動作群組,稱為「動作集(Action Sets)」或「場景(Scenes)」,所以我們可以分開控制相同或不同種類物件所組成的群體。
  想像你建立了一個稱為「睡覺時間到了」的場景,並且設定了一些裝置和動作到此場景中(例如房間門上鎖、關閉電燈、設定鬧鈴等等),當你告訴Siri「睡覺時間到了!」時,HomeKit的群組功能將會知會你的智慧門鎖、智慧燈泡、以及鬧鐘去作設定的動作(注意此群組功能並沒有特定的順序)。

安全性

  依蘋果的說法,HomeKit有提供穩私及安全性的設置,以預防並避免裝置被誤用。
  具體來說,HomeKit在裝置與iOS設備之間具有點對點的加密(end-to-end encryption),而它所釋放給開發人員的HomeKit API中也要求,針對智慧型設備所開發的App,除了蘋果原廠,其它第三方廠商皆必須限制App僅能在前景執行,也就是說,它不能偷偷摸摸的在背景執行,必須讓使用者明確的知道目前那一個App正在控制家中的設備。

網路協定內容

  HomeKit的協定稱為「HAP」(HomeKit Accessory Protocol),它主要是運作在BLE/Bluetooth Smart藍牙協定之上,但也可支援HTTP/TCP/IP,如果一個設備不支援HAP,那麼它就需要一個橋接設備的支援(後文會提到)。
http://qph.is.quoracdn.net/main-qimg-7b2c9e8019564f37e78777c67d48cdbb?convert_to_webp=true

HomeKit何時會正式開始?

  HomeKit在去年(2014)秋天隨著iOS8在發表會上亮相,但它一直沒有被正式的推出過,蘋果僅先釋出相關資料給一些相關的合作夥伴,如HomeKit配件製造商或晶片開發商,讓他們在這段等待期間可以先開發或升級相關支援HomeKit的產品。
  在剛剛結束的CES展上,大部份HomeKit認證的產品尚未開始販售,因此蘋果的HomeKit居家智慧平台其實還沒正式開始,我們也不確定那一家廠商會先量產搶先進入市場,大部份他們的說法都是「快了」、或者是「今年春季左右」。

有官方正式的App出現了嗎?

  目前還看不到任何的HomeKit App。HomeKit看來會是一個iOS 8的背景服務,透過Siri或點擊地圖上裝置的所在位置,就能直接或間接的來控制它們。

關於橋接設備

  蘋果宣稱將會開放那些使用ZigBee或Z-Wave的非HomeKit認證設備也能相容於HomeKit。
  在去年蘋果提到,那些非HomeKit認證的產品也有機會透過Bridge方式連到HomeKit,但截至目前為止尚未有更明確的說明,但我們猜想,這種橋接設備應可協助非HomeKit設備連到iOS平台,讓它們也能接受HomeKit的Siri命令。
  這類的HomeKit橋接硬體會使用HAP協定與iOS連線,然後再透過非蘋果官方的其它協定(如ZigBee或Z-Wave等)與其它非HomeKit設備溝通,不過蘋果對於這種透過橋接硬體的方式還是給了一些限制,例如它僅接受Bluetooth LE的設備,卻排除使用Wi-Fi連線的裝置,像是Google旗下的Nest Thermostat(恒溫器)。
  蘋果排除對於Wi-Fi設備的橋接很明顯的是出於安全的考量(因為駭客很容易透過Wi-Fi侵入);此外值得一提的是,這些橋接器可以堆疊,也就是橋接到另一台橋接器讓它可以支援更多數量的設備,每一部橋接器能夠同時連線到100個被控裝置。

除了HomeKit還有其它的選擇嗎?

  蘋果的HomeKit目前來說沒有明顯的對手,Samsung有一個稱為「Samsung Smart Home」的家居自動化平台,但也是在2014上旬剛推出,它有一個極為漂亮的平台外觀,和一個稱為SmartThings的App(SmartThings於2014/8被三星以2億美元收購),可以把你的手機變成家居智能設備的遠端遙控器。
http://o.aolcdn.com/hss/storage/adam/d0e2771ab7ac725e764f351a8f5f9011/samsung-connected-home-2014-04-02-01.jpg
  除了Samsung的SmartThings之外,蘋果也需要注意一下Google,這家來自山景城的公司在購併了Nest Labs之後,有極大的潛力顛覆HomeKit並且一統智慧家居市場:

Nest Labs

Nest Labs被Google以32億美元購併是去年(2014)物聯網的大事,也讓Google擠身跨入了智能家居市場的賽局,雖然這家公司的產品不多僅僅只有兩種:智慧型恒溫器和智慧型煙霧偵測器,但光這兩樣智能設備就已讓它名聞國際,像這個智慧型恒溫器,它標榜能省下5%不必要的能源浪費,而且隨著時日前進,它會自動記下你所喜歡的溫度、在什麼時間點會想要什麼樣的溫度,並且會注意到您外出旅遊之類長時間不在家的情況。
http://www.appguru.com.tw/appguru/wp-content/uploads/2014/01/nest02.jpg
  2014年六月,Google隨即發表了「Works with Nest」的開發者計劃,提供一系列的API給製造商讓他們應用在智慧型產品中,讓使用者能夠透過Android遠端連接及控制,並且與Nest和Google相關的產品整合。
不過,如果我們有注意YouTube上相關Nest產品的影片,或者連上Nest開發者頁面,都看不到Google或Android的相關資訊,這是因為Google希望把Nest這個品牌獨立區隔,讓它能夠單獨的面對客戶(因此相信Nest最終也會支援蘋果的HomeKit)。

2014年10月24日 星期五

關於物聯網的標準

大型主機說:「全球大概只需要五台電腦就夠了」
PC主機說:「每個家庭的桌面上都應該有一台電腦」
Pocket PC說:「太大了,應該每人口袋裡放一台」
物聯網說:「每粒沙子都應該有一台電腦。」

  還記得最早的網路的起源嗎?最早可回溯到1980年代的時候,美國國防部通訊署制定了TCP/IP通訊協定,除了使用在軍方自己的DARPA網路上也提供給學術界試用,讓各大學有了一個很好的網路發展環境;持續發展到了1987年,美國國家科學基金會已經在全美各地設立了七個以TCP/IP做為通訊協定的超級電腦中心,除了提供學術界免費使用外,也酌收使用費讓企業界也可以使用這個網路,成為現代人生活上不可或缺的網際網路的基礎。
從Internet的發展歷程上我們可以發現,它和電腦主機的發展史如此的緊密,一開始是為數相當少的大型主機,接著是散居政府機關、學校、企業的微電腦群組,再來是深入各個家庭的PC和筆電,到了最近幾年則是各種個人化的手持裝置爆炸性開花並取代了一部份的PC筆電,緊接著下來,現信會是你我週遭為數更多的各種物品正準備聯上網路形成物聯網IoT的時代,所以有些人開始把IoT稱作IoE(Internet of Everything)。
但是當愈來愈多的物品連上了網路,有一個顯而易見的問題跟著浮上了檯面:就是它們彼此都不認識,因為它們說的都不是同一種語言,或許你已經發現,手上的Apple Watch無法控制Panasonic智慧型冷氣、而Panasonic冷氣開啟時無法自動關閉TripleShield防盜門窗、而TripleShield防盗系統則聯絡不上Sony智慧電視而無法顯示警報訊息,像這類標榜著智慧型物件卻又彼此無法相互溝通運作的情況,正限制著物聯網未來的應用與發展。
  由於全球對物聯網的標準尚未統一,有能力制定規則的IT大廠們莫不提出自己的標準希望能成為市場採用的唯一主流,導致目前物聯網技術主要有四大陣營:AllSeen 、OIC、Thread Group以及蘋果主導的HomKit,因為物聯網技術的應用並非單一業者所能掌握,所以各聯盟都積極招兵買馬,擴張勢力。
本文主要是說明及介紹各個物聯網聯盟以及他們的技術,最後則是探討各聯盟技術在物聯架構中的差異。

物聯網的基本架構

  在開始本文之前,我們先複習一下物聯網的基本架構:從結構來看,我們知道物聯網在概念上如上圖般可以分成三個層次,由底層至上層分別為感測層、網路層與應用層(如下圖),這3層各司其職同時又環環相扣,缺一不可:
  感測層用來識別、感測與控制末端物體的各種狀態,透過感測網路將資訊蒐集並傳遞至網路層。
網路層則是為了將感測資訊傳遞至應用層的應用系統。
應用層則是結合各種資料分析技術,以及子系統重新整合,來滿足企業不同的業務需求。

三層架構是大家的共識,但是語言尚未統一

標準化之爭

目前不同產業各自發展出各式各樣的物聯網型態,這些型態各異的物聯網之間由於欠缺標準介面與共通語言,導致彼此間各自獨立無法溝通整合,在這種模式下每種型態的物聯網規模與應用都將會受到限制而無法持續發展,因此推動物聯網的標準化是一件刻不容緩的事。
不過技術的標準化可不是件簡單的任務,尤其是針對一項新興產業的標準化!就以物聯網目前使用的無線技術為例,目前市場上已經存在許多的無線標準,包括藍牙、Wi-Fi、ZigBee、Z-Wave,甚至於手機通訊的蜂巢式技術 (CDMA、GSM、LTE…)以及DECT等等,它們都已經過一段時間的應用與改良,並且應用在物聯網當中,而底層的通訊協定也是一樣,包括了TCP/IP、MQTT、HTTP、CoAP等等一系列已經在使用中的標準,然而,直到目前終究還沒有一項技術能夠脫穎而出成為大家認同的通用標準,原因或許是這些技術本身還存在著不可忽略的缺點,例如Wi-Fi的耗電問題、Bluetooth尚在持續發展、Z-Wave太過封閉、ZigBee版本太多等等,因此,目前產業界仍然持續針對物聯網提出新的標準和架構,希望能成為物聯網的主流。

目前檯面上的四大標準

我們的客廳裡有著各式各樣的遙控器用來控制不同的TV、錄放影機、音響等等設備,如果有一支萬用遙控器就可以控制所有的設備那不是很方便嗎?問題是,大家都知道標準化的好處,但是大家都不希望主控權是在別人的遙控器上。
    因此九月6日的經濟學人(http://www.economist.com/news/technology-quarterly/21615067-more-and-more-devices-are-becoming-connected-will-they-speak-same)就指出了目前物聯網所面臨的問題:沒有統一的溝通語言將成為物聯網發展的絆腳石,而目前各大廠之間彼此互結聯盟各自建立物聯網標準的現象,將形同以往的VHS、BETA以及Blu-ray、HD-DVD之爭,牽絆著物聯網的發展。
  下面介紹一下四個目前檯面上聲勢最大的物聯網標準:


ASA聯盟

http://www.etcentric.org/wp-content/uploads/2014/07/AllSeen_Alliance_Logo.png
  目前勢力最大的應該是AllSeen Alliance(簡稱ASA聯盟,以下稱為AllSeen),該聯盟在2013年12月由Linux基金會成立,成員包含了來自半導體、白色家電、消費電子、下游零售商的巨頭們,例如高通、微軟以及中國的海爾、韓國LG、日本松下、Sharp等等共有五十多家公司,他們擁立的技術稱為「AllJoyn」,這個技術是由高通所開發並免費轉移給ASA聯盟。
  AllJoyn是一套開放開源的軟體SDK,可支援不同的作業系統,如Android、iOS、Windows等,也相容於各式的網路系統,例如Wi-Fi、藍芽、Zigbee等等,它強調任何開發者皆可免費下載進行開發,由於只需要將其SDK嵌入軟體中即可,因此可以在不同的製造商、操作系統之間跨平台運作;AllJoyn強調開放與相容,我們只要連上AllSeen Alliance的網站,便可在下載頁面上找到支援不同平台的AllJoyn版本來進行開發。
  由於AllJoyn需經過硬體來解譯執行,因此它可能需要較強大的處理器而無法直接應用在強調低秏能、體積細小且低成本的晶片上,它在物聯網的架構中比較偏向網路層的應用。

OIC聯盟

http://openinterconnect.org/wp-content/uploads/2014/01/OIC_colour_logo_medium.png
  原本大家以為Intel會跟隨並加入AllSeen的陣營,但出人意料的,Intel在今年(2014年) 7月聯合了AT&T、 Cisco、奇異、三星、Broadcom、IBM 和等等公司成立Open Interconnect Consortium(簡稱OIC)希望主導制定物聯網通訊的標準;目前OIC 聯盟並沒有透露其技術細節,在OIC的網站上也還沒有相關的技術說明及文件,只是聲稱可以相容於iOS、Android、Linux 和其他操作系統,且同時可以封裝多種不同的無線聯網標準,未來也將與AllJoyn相同也採開放原碼方式發展,並會額外加入認證測試制度。
  雖然OIC廠商數量目前僅約AllSeen Alliance的二成左右,但也都是屬於一線的世界級公司,因此聲勢不小,大有分庭抗禮的趨勢。
  此外,依據最近10/3的新聞,宏碁、聯發科等台系大廠也宣布加入了OIC陣營,陣容開始壯大。

Thread聯盟

http://cnet4.cbsistatic.com/hub/i/r/2014/07/14/45425a38-5a67-4951-9488-167fca4ba5a8/resize/270xauto/08151588a9a2312491d151680c8b1c76/thread-group-vert.jpg
  其實早在2011年的Google I/O大會上,Google便曾經提出Android@Home 的計畫,希望把Android可以控制的裝置,從原先的智慧型手機、平板,再擴張到家電裝置,不過後來整個計劃沉寂不了了之。
  這次Google透過旗下的Nest捲土重來,在今年(2014年) 7月成立Thread聯盟(大約晚了OIC聯盟一個星期),其所定義的新物聯網標準名稱亦稱為Thread,目前參與成員有三星、安謀、飛思卡爾(Freescale Semiconductor)、芯科(Silicon Labs)、風扇商Big Ass Fans、門鎖商 Yale Security 等等,雖然成員還不多,但以Google在Android的能力以及結合Nest深耕物聯網的實力,外界普遍認為Thread大有與其它聯盟一搏的實力,此外我們注意到三星電子除加入Allseen之外也加入了Thread陣營,不希望押錯寶的心態相當濃厚。
  Thread標準是基於既有的ZigBee技術並加以改造的一種衍生協定,但是它卻不相容於原有的ZigBee設備,因此它需要業者更新設備韌體之後才能使用,與其它聯盟的標準比較起來,Thread更接近於底層作為取代類似ZigBee的另一種網路協定,但是也代表其它聯盟也可以將Thread標準納入而與其相容。
        很明顯的,Thread在物聯網的架構中是屬於較底層的感知層應用,似乎Google希望能直接透過Thread從底層來統一所有協定。

Apple Homekit

在6月3日蘋果的2014年全球開發者大會(WWDC)上,蘋果推出了智慧家居平臺HomeKit。
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcT9EpRVy2C4P9TU2rkwZsRZ_3kqdIOjztLs1TVcfpW--4qNTMLL8Q
HomeKit對於硬體有特殊的要求,硬體商必需將特殊的無線晶片和軟體整合在硬體設備裡面,經過MadeforiPhone(MFi)認證後才能由開發人員透過HomeKit API去開發相關的應用,最終的使用者將透過iOS平台,利用Siri的語音控制去進行操控,因此,我們可以看得出來,蘋果的物聯網方案是「聯網物品 + iOS + Apps + Siri」的一個組合,然而這也限制了它的發展,因為你無法使用非iOS的設備來操控Homekit平台。
  但是為了擴大Homekit支援的範圍,雖然蘋果當初要求相關設備需要經過MFi的認證才能加入HomeKit,最近也開放了讓其它非MFi認證設備也可透過介面轉換方式相容於HomeKit,不過可能在安全性支援與其它設備資訊的分享上無法與MFi認證設備相同而有所限制。因此我們可以看出,Homekit是架構在物聯網中最上方應用層的一種應用,只要是經過Homekit認證的設備,便能接受Homekit的監控、指揮及調度。

四大標準在物聯網架構所處的位置:

  以上這四大相互競爭的物聯網標準,我們可以看出其實它們彼此都具有差異:OIC目前我們還不清楚他們的架構與作法,因此暫且不論;AllSeen繼承了Linux的開源精神選擇走最開放的路線,包容所有的協定與系統平台,應用在物聯網架構中的網路層,至於Thread呢?它衍生自Zigbee並應用在物聯網架構的感知層,預期它未來也會與AllSeen一樣採開放的方式,它們兩者關心的重點都是在如何整合物與物之間的如何相連,其中Thread自己本身就屬於底層的物聯網協定,且忽略其它協定僅針對Thread協定本身進行處理,而AllSeen則是包容並解譯所有的網路協定,這是兩者之間最大的差異所在。
  至於HomeKit呢?它屬於蘋果自家的軟體平臺,定位在物聯網架構的應用層,它所選擇的角色完全不同於AllJoyn與Thread,HomeKit不去理會物與物之間是如何相連的,而只是站在所有物物必經的樞紐位置(應用層)要求所有物件聽它指揮。
  由於AllSeen、Thread與HomeKit這三種標準在物聯網中所佔據的高度並不相同(從低至高Thread→ AllSeen→HomeKit),因此理論上,在實際應用時它們是可以彼此相容而不會相互干擾,因此目前的物聯網標準之爭,預期將會持續下去,只是並不致於像以往的Beta v.s. VHS或Blu Ray v.s. HD DVD之爭一樣,最終只能有一種標準能夠勝出。
  有一句話說的好,「物聯網(The Internet of Things;IOT)真正的大餅不在那數百億顆感測器、也不在單純的連結服務!真正的獲利泉源是來自於分析解讀、使用感測器而創造出的龐大數據。」,目前各大聯盟競逐物並押寶各種聯網的標準,其最終目的並不在於標準技術的規範,而是在於更能方便利用自己的標準來掌控使用者數據的流向與最終的數據。

2014年8月1日 星期五

Home, hacked home

  本週(7/12)經濟學人網站上有一篇關於物聯網安全的文章,標題是「Home, hacked home」,該文主要是針對目前方興未艾的物聯網風潮,提出尚末被廠商所重視的物聯網安全性問題以及可能發生的潛藏性風險,若有興趣的話可以看看原文:http://www.economist.com/news/special-report/21606420-perils-connected-devices-home-hacked-home,我在本文介紹了該文的一些重點,並加入一些額外的資訊和觀點。

實際案例:網路攝影機

    文章首先介紹一個案例,這是去年四月在美國Ohio州所發生的真實事件,一個父親發現他用來監看二歲女兒的web camera竟然傳來陌生男人的叫聲「醒來啊,寶貝!」,他立刻趕去女兒房間查看,那台可自動旋轉的web camera在發覺有人靠近後,鏡頭立刻轉向他身上,並且發出一連串不堪入耳的怒駡聲。
    查閱了相關的報導,案例中這台web camera是屬於還蠻常見的家居無線網路攝影機,多用於監看嬰兒和老人的動態,由一家專門製作監視攝影機的Foscam公司所開發販售,這台攝影機具備自動的聯網功能,內建網頁伺服器及影像壓縮串流播放,可透過網頁登入方式來接受控制並傳送目前的影音畫面,駭客唯一可入侵的方式便是破解網頁密碼,但是Foscam寫在firmware的使用者帳號管理系統被發現有個弱點,當你在登入畫面上不輸入任何的字串而連續不斷的按壓Submit按鈕,就可以取得觀看影音畫面以及執行CGI指令的權限,此外,一些相關的論壇及討論區也指出,只要一些電腦發起簡單的阻斷式攻擊(denial of service attacks)就可以讓它內建的伺服器癱瘓。事後雖然Foscam緊急釋出了更新firmware的程式,並採取了一些必要的作法來提醒及呼籲使用者進行升級動作,但根據安全專家的指出,後續追蹤記錄的46,000台foscam當中,只有約6,000台升級了更新程式,一般民眾完全不曉得或疏於防範此類的安全問題,由此可見當大量生產並廣泛使用的物品發生了安全性問題之後,要讓使用者自行去升級作防範的動作有多麼困難。Foscam homepage

物聯網正方興未艾

    現今網路的發達讓我們的生活變得更加的便利,例如智慧型汽車可以在開車時替我們收信並閱讀信件內容,智慧型冰箱會留意耗電的情況妥善的替我們保存並且管理食物的種類和數量,遠距醫療器材讓醫生不用在現場也能進行診斷及開刀,智慧型電視會注意我們的收視習慣並自動搜集相關節目資訊,而在網路發達的國家如南韓,每個城市都急於讓轄內的各項基礎設施都能連網路,以便提供方便的服務並且更有效率的運作。
  在為數眾多只具備單純網路功能的物品連上Internet並開始傳遞資料之後,上述的安全問題可能會愈來愈常見且頻繁發生,依據網設備公司Cisco的報告指出,從現在開始的未來十年期間,將會有500億個連網功能的物品接上網路,其中有相當比例是屬於居家的消費性用品,從3C用品的相機到交通工具類的汽車、廚房的電冰箱到客廳的電視等等;這些產品雖具備網路的功能,但廠商和民眾都忽略了聯網之後的安全性問題,使得這些附加了網路功能的產品在設計上幾乎或沒有資安方面的防護機制,使得這些產品就像初入叢林的兔子,在危機四伏的網路世界中成了駭客眼中的肥羊。http://cdn.static-economist.com/sites/default/files/imagecache/original-size/images/print-edition/20140712_SRC179.png


物聯網的資安問題

    專家們對此萬物皆聯網所帶來可能的危機莫不感到憂心並提出警告,有一個以促進公眾對於新興資安威脅認知為宗旨的團體「I Am The Cavalry」,其轄下的資安專家Joshua Corman指出,其實物聯網的安全議題並不完全等同於我們一般認知的資安問題,「如果你的PC被駭客攻擊了,的確會產生一些困擾和麻煩,但如果對象是汽車,那麼可能你會連性命都沒了。」
    這目前聽來可能有些危言聳聽,但是資安專家們已經實驗過並示範目前一些汽車系統對於駭客的攻擊其實是束手無策的;目前高科技的汽車都是一些微電腦加上各式操控開關的混合物,尤其在輪胎、引擎、煞車等等重要的系統上更是常見,Chris Valasek 和 Mathew Solnik這兩位專家便已作過測試,示範了駭客要取得這些系統的控制權並且接管你的汽車是有可能的。
他們進行了包含了讓行駛中的方向盤突然轉向另一側、引擎在無預警的情況下被關閉等等實驗,這些實測招來了很多汽車製造商的注意,由於目前不同廠牌之間的汽車控制系統並沒有統一規格的設計,所以針對不同車型有不同的破解方法,而且破解的步驟過程相當複雜,必須先針對汽車硬體部份做過更動及修改才能成功駭入,由此看來,或至少在目前而言,我們還不用太擔心自己的汽車會被駭客攻擊,但是科技發展一日千里,誰能保證未來駭客無法潛入您的汽車電腦?
其實就在今年不久前,新加坡有兩個研究員Miller和Valasek就展示了一個跟手機一樣大小的汽車駭客工具,這個叫做「CAN Hacking Tools (CHT)」的工具,總共零件花費不到$25美元,它號稱能輕易取得汽車的控制系統,從窗戶、大燈到油門以及煞車系統等等都能在它的掌握之下,目前該工具是利用Bluetooth進行網路傳輸,但Miller和Valasek宣稱他們正在研發使用GSM方式,可以從好幾公里外就能控制汽車;如果您有興趣的話,可以在這個網頁上看到相關的新聞http://www.forbes.com/sites/andygreenberg/2013/07/24/hackers-reveal-nasty-new-car-attacks-with-me-behind-the-wheel-video/。
我們來看看這個汽車駭客工具CAN Hacking Tools所用到的零件:
  1. Arduino mini pro. (MCU)  x1
  2. S19241/MC33290 (ISO-9141 level converter)   x1
  3. LM7805 (Voltage regulator)   x1
  4. i2C 20x4 LCD   x1
  5. Push button+resistors  x4
  6. RJ-45 Female connector   x1
  7. OBD2 connector   x1
  8. 1mt Cat 5/6e Ethernet cable   x1
  9. SD card Breakout board + 2GB SD   x1
  10. Plastic case   x1
http://blogs-images.forbes.com/andygreenberg/files/2014/02/Screen-Shot-2014-02-05-at-7.35.52-PM2-e1391650802638.png
這個駭客工具使用了Arduino這塊便宜的I/O介面控制開發板作為主要的平台,一個電壓轉換器將12V降為Arduino需要的5V電壓,此外還有SD卡讀取槽以及小型的LCD螢幕,搭配Arduino版子上的藍芽模組,使用者可以透過手機或其它的手持裝置來進行近距離的無線控制,在使用時,必須要將該板子與汽車的CAN-bus(Controller Area Network 控制器區域網路)作實體的接觸,板子會透過網路使用CAN-bus的通訊協定K-line與汽車進行溝通並嘗試入侵,因此它其實並沒有我們想像中的那麼強大,這個駭客工具不能隔空對汽車進行入侵的動作,必須先將它的板子與汽車的控制系統連結才行。
除此之外,一些連線到網路的醫療設備也存在安全的顧慮,Jay Radcliffe,一個負責資安的研究員,剛好他自己本身也是糖尿病患者,他發現這些由電腦控制的胰島素幫浦機器存在一些漏洞,讓駭客可以透過無線網路遠端控制胰島素的劑量,他也透過實作並證明這件事的可能性(如左圖,Jay Radcliffe正在示範如何侵入胰島素幫浦並且關閉系統),Jay Radcliffe在最近的文章中,也發出警告說,目前的醫藥科技對於物聯網帶來的安全威脅簡直是脆弱不堪,毫無防範能力。Researcher Jay Radcliffe demonstrates how he can remotely disable his insulin pump.
一些資安專家同意Jay Radcliffe的看法,在他們眼中,一些連網醫療器材設備漏洞的破解方式超級簡單,一位任職於Qualys(為一家專業的企業資安漏洞軟體公司)的資安專家Billy Rios,他和同事就發現了為數眾多的醫療設備存在後門(back doors)的漏洞,這個漏洞的產生大部份是來自於技術人員用來升級系統的預設密碼被駭客利用作為後門來取得破解系統,系統被破解後駭客就可以暗中調整X光機的放射劑量,但是在螢幕上卻還是顯示正常的劑量值。

只知道連網的設備是智慧還是愚蠢?

其實不止汽車或醫療等複雜的設備,就連我們生活週遭的簡單物品,例如燈泡和門鎖也都透過簡單的網路模組連上了網路,問題就在於這些設備構造及設計相當簡單,對於數位攻擊和電腦病毒的防護能力相當薄弱,,而且製造這類家居日常用品的廠商多屬於微利多銷的中小型企業,並無太多資安防護相關的資源與預算投資,而且,若他們沒有與專業的資安公司合作,本身的能力也不足以設計出足夠符合安全性的聯網產品,還有一點最重要的,由於這類的產品都是批量生產,在天生就無防護能力的疑慮下,大量製造又無能力進行事後的升級與修補的後果,便可能讓物聯網世界的資安問題愈滾愈大。
就在上個月(六月份)美國的資安公司TrapX Security就發現有一種惡意程式稱為「Zonbie Zero」暗藏在一家中國廠商生產的掌上型條碼掃瞄器中,它藉由預先載入的Windows Embedded XP系統夾帶「Zonbie Zero」惡意程式,雖然這款機器號稱有資安的認證,但其實只是跟惡意程式一起擺著好看的,一旦機器啟動並偵測到無線網路之後,會藉機偷錄文件再回傳到位於中國本土的伺服器,並且在進入企業的網路後開始搜尋內網中所有名稱帶有”finance”字串的主機,以竊取相關的財務、客戶、售價、出貨等等資料,而這還只是該惡意程式的第一波行動,接下來,該惡意程式還會進行第二波攻擊,它連回位於中國的主機(報告中稱為command-and-control server),下載更多的後門及病毒,並且嘗試在企業內部把已經受到控制的主機也設定為command-and-control server,以逐步的跨大其影響範圍,而這一切禍患的源頭,只是因為用了一台具有聯網功能的掌上型條碼掃瞄器而引起(此相關報導可見:http://www.pcworld.com/article/2453100/malware-hidden-in-chinese-inventory-scanners-targeted-logistics-shipping-firms.html)。
另一個案例是2014年初美國Team Cymru(一家資安公司)發現分佈在全球約30萬台左右的家用無線路由器,包含了D-Link, Micronet, Tenda, TP-Link等品牌,曾經被來自巴西的駭客入侵並竊取了大量的銀行帳號;駭客是利用一種稱為跨站請求偽造的漏洞(cross-site request forgery簡稱為CSRF),方法是先透過區域網路內部的一台PC經由網路下載了惡意的Javascript程式碼,並更改了路由器的DNS設定,往後任何透過該路由器的設備皆會取得不正確的DNS資訊,例如當使用者要連上網路銀行時,他連上的並不是正確的網路銀行位址,而是經過假造的、導向駭客所另外架設、專用用以竊取銀行的帳號密碼的主機,其步驟方式如下:

  1. 使用者在不知情的情況下,誤上了惡意的網站並執行了有病毒的Javascript程式碼,該程式碼具有修改路由器DNS的能力。http://cdn.arstechnica.net/wp-content/uploads/2014/03/csrf-router-attack.jpg
  2. 路由器會回覆經過假造的DNS給所有經由該路由器的DNS詢問封包,相關設備收到DNS回覆後並以此IP資訊連上假冒的網站。
  3. 該站台可能為假冒的網站銀行或各種需要登入的網頁,使用者在不知情的情況下便輸入了自已的帳號密碼,並傳送到駭客的資料庫中。
除了上述的兩個已為人知的例子,現在還有很多的家電設備在附加了微型的處理器後便號稱智慧化並開始出現在民眾的家中,它們在網路上相互連結並交換資訊,有些還會透過一種稱為家庭自動化的系統來集中控制與管理所有的智慧型家電,這種透過集中化管理的環境若有任何的漏洞與缺失反而會造成更大的安全問題;今年一月便有一家稱為「Proofpoint」的資安公司宣稱他們發現大量的家用路由器、智慧型電視和冰箱被駭客控制用來發送大量的垃圾郵件,如果只是這樣還好,但如果是意欲縱火的駭客控制了瓦斯爐會如何呢?前述的那位資安專長說他還另外更發現了數萬個企業的線上供熱、空調以及通風控制系統藏有缺陷,很容易讓駭客發現並攻擊。

Broadcom的BCM20737 SoC

針對物聯網安全性的需求,也有廠商看到了此類的商機,像是Broadcom便在今年5/21推出一款型號為BCM20737 的WICED(嵌入式無線網路連結裝置)Smart 系統單晶片(SoC),該晶片具有Bluetooth功能,支援RSA加解密以及Apple的iBeacon技術,只要將把該晶片整合在原有的手機、平板、健康健身設備以及穿戴式設備上,就能讓原本對於資安威脅毫無招架能力的產品揺身一變立即百毒不侵而且不影響原本的功能和運作方式。
http://img.technews.tw/wp-content/uploads/2014/05/50005_PR_Chip_Images_BCM20737-624x624.jpg
Broadcom BCM20737 主要功能:(此部份內容摘自Computex 2014新聞網站)
  • 高電源轉換效率-AC 轉 DC 的效率高達 88%
  • 高效能-比傳統 USB 與壁式充電器更快的充電速度,最高可達 7.5W
  • 支援 Boost 模式-減少 50% 的充電電壓
  • 自動選擇充電標準,支援標準或是單一模式作業
  • 可與 NFC 共存-提供高品質的 NFC 效能
  • 製造靈活性-可用於智慧型手機主機板或電池蓋上
  • 不占 PCB 空間-在單一標準元件的空間中提供多重標準的支援
  • 低成本-低物料成本。除了 WICED Smart 晶片外,無須其他外部主動元件   
Broadcom BCM20737的重要特色:(此部份內容摘自Computex 2014新聞網站)
  • 加密、解密、憑證簽章、驗證與各種可加強隱私的演算法
  • 支援 iBeacon 技術
  • 支援 A4WP Rezence 無線充電
  • 內建可直接與 NFC 標籤連線的軟體
  • 可支援高達八個同步作業的主從連線
  • 透過 Bluetooth Smart 晶片支援音效功能,讓玩具、遙控器等裝置具備語音功能
  • 高整合度的 ARM Cortex M3 應用處理器,可降低解決方案體積與成本
  • 卓越的接收敏感度,讓藍牙周邊設備獲得最大的距離與覆蓋率
  • 內建多頻道類比數位轉換器 (ADC),可測量感測器輸入與電池電力等狀態
  • 在晶片上提供內建許多 Profile 的堆疊,省去使用外部堆疊的需要
  • 支援通用非同步收發器 (UART)、序列周邊介面 (SPI) 與博通序列控制介面,可與外接的非揮發性記憶體、周邊整合晶片與感測器通訊

最後

目前所謂的資訊安全專家,他們所宣稱的物聯網安全威脅言論在部份人士耳裏可能會覺得過於危言聳聽,例如在我們的實際生活中,至少截至目前為止,還沒有真正發生過汽車因受到駭客控制而在路上突然停車,或者有任何的醫療設備因駭客入侵而失去控制等等造成你我的人身安全直接受到威脅的情況,因此這些資安專家所宣稱另人驚恐的言論及進行的各種誇大測試,很有可能是為了其背後所屬的相關資安咨詢、設備、服務等等公司龐大的利益所考量的商業行為。
不過我們還是必須承認,雖然現在的網路交易已經相當發達普遍,但是還是有很多人出於安全考量而拒絕在網路上消費,或許他們可能過於謹慎小心,但這些人的存在就證明了安全的使用環境是一個產業運作發展是否良好的重要指標與基礎,既然物聯網號稱以打造一個智慧的生活環境為號召,那麼我們在開發相關的產品時,也應將其安全性放置於首位,將它們設計成真正是具有「智慧」的物聯網產品,而非僅止是「聯網」的物品,這樣消費者能夠放心的使用它們並交託給它們相關的任務,物聯網產業才能真正興旺。