[閒聊] 自然人憑證與node.js

作者: erspicu (.)   2017-11-08 23:20:57
政治正確下,總是要順應潮流批判一下ie和老舊的activex或是javaapplet技術...
都說不安全,過時的東西,偏偏很多時候就是需要透過它們來讀讀卡機,
因此很多時候還是得改設定把功能用回來,
一直到win10仍然有舊版ie存在大概就是顧慮這個問題.
但最近卻出現了號稱跨平台且不限瀏覽器的讀卡方案,
原本以為是不是webusb這種東西,但似乎還沒成熟,且不是通用方案.
最後發現了是滿奇特的作法,透過安裝一款獨立的clinet軟體提頁面服務
(類似當成網頁與client端硬體溝通的proxy,因為是client端軟體所以當然沒沙箱問題)
來存取自然人憑證或是晶片卡等等....
但我總是以為這種東西大概是rd會寫一個微型服務,自幹一個簡單的http服務server才對,
結果自然人憑證的作法是直接把node.js打包入內,
裡面直接有node.js直譯器和精簡化的必要模組,
透過node.js建立http server來給網頁call api用.... 裡面的sources也是都直接攤開,
不過硬體底層的控制應該還是透過c/c++之類的去處理,這樣的做法是可以達到效果,
但說真的也好像不是很ok....activex跟javaapplet被人批評的是如果散布者有惡意,
它給予的服務就有危險性....同樣的老問題,讓user去安裝一款獨立的client軟體,
且安裝還跟你要管理者權限(更大尾),只能仰賴軟體本身沒惡意企圖.
所以其實搞了半天,批評activex跟javaapplet的點也是有點問題,
還不是都仰賴服務來源夠不夠讓人信賴罷了....
至始至終不變的是要做進階底層的事情跳過沙箱,你就一定得給予權限,
不管是被批評的老技術,或是現在的做法,
那給予權限必定就代表開發者若不懷好意用啥方式都會有問題.
有在玩node.js好奇的,可以安裝HiPKILocalSignServer這東西,
自己去它程式目錄內研究一下服務的js sources看看.
作者: ssccg (23)   2017-11-09 10:26:00
不太對,browser plugin的攻擊手法通常是裝正常版+連上攻擊者的網頁,就可以透過漏洞入侵吧? 裝程式的話不管是plugin還是獨立的都是要信任來源這是基本的吧另外這種client軟體方案早就有了,不限於讀卡、也跟node.js關係不大,很多應用都用這招來做網頁-本機的溝通只是這個例子的client是用node.js來實作而已
作者: ripple0129 (perry tsai)   2017-11-09 12:09:00
最常看到這手法的大概就是IDE的Debug模式

Links booklink

Contact Us: admin [ a t ] ucptt.com