Contents ...
udn網路城邦
辨識核心DLL的軟體保護機制終於有解了!
2020/07/02 06:30
瀏覽703
迴響0
推薦3
引用0

稍早寫過一篇文章:我不會再賣DLL主要是說明辨識核心針對不同使用情境優化參數很難讓客戶自己調整,調不好就算了,可能還會越調越糟!所以我之前的主要產品模式是用外部軟體包裝辨識核心,每一種產品基本上就已經針對:道路(高速多車)、停車場(低速單車)與路邊手拍(靜態單張影像)三種模式予以最佳化,賣出後還可以替客戶微調優化辨識效能。

但是老實說,如果我反正都要提供客製化的服務,優化調整參數設定在辨識核心模組(DLL)的裡面與外面是沒太大差異的!反正我給每一客戶的軟體都不一樣,都是用獨立的專案目錄持續管理維護的!那如果客戶堅持要DLL模式的產品,我就直接將優化設定寫進DLL裡面給他一個獨家的DLL也不是不行,就是為每一個客戶建立一個預設的參數組合而已。

但其實還有一個敏感的原因讓我很不願意直接賣DLL,一般客戶會想要買DLL通常是自認他們的軟體技術夠好,用我的DLL就可以比較方便組裝包裝成他們的自有軟體,現在多數軟體工程師不都是這樣?每個軟體專案都會包裝幾十個DLL!但我的DLL是要賣錢的!執行時如何認證是有出錢跟我買的合法使用者?靠的就是如下圖的一個USB的軟體鎖了!

因為USB畢竟是個機械裝置,讀取內容驗證金鑰等需要大約0.1~0.2秒的時間,這已經跟辨識一張影像的時間差不多了!所以如果每次辨識一張影像就去驗證一次,感覺上辨識速度就會慢一倍!潛在的問題可能還有軟體鎖讀取次數過於頻繁,可能會損耗過大提早報銷,我又已經答應客戶,Key壞掉是可以免費更換的,買Key的錢我自行吸收!客戶即使不用花錢,但這個部分常故障也是很困擾的!

那我自己的軟體為何可以一秒辨識幾十次呢?其實是用軟體內部的機制控制,譬如認證一次就記下時間,15分鐘有效期間內繼續辨識時就不去讀KEY了!如果是DLL呢?我之前試過寫出有時限的憑證檔案,持續辨識時讀檔案認證的速度比讀Key快很多!但是這樣就有機會被駭客破解那個只有簡單加密的檔案,如果破解成功就可以自由盜版使用了!

兩年前有間好大的停車場管理公司,堅持要跟我買DLL,不要我的完整版軟體,但又希望可以辨識很多影像還要很快!我只好給他們寫了有時限的憑證檔模式的DLL產品。結果就是他們很詭異的,證實產品真的好用之後,就不再與我聯繫了?甚至對我的Line訊息都已讀不回?當然也沒有繼續跟我買產品了,是不是很奇怪啊?有必要這麼沒禮貌嗎?

這是甚麼狀況?正面思考是他們找到了比我更好的其他車牌辨識產品,當然就不想理我了!負面思考呢?就是他們已經破解了我只有簡單加密的憑證檔,可以自己寫程式產生憑證檔,就不必繼續跟我買授權(軟體鎖,USB KEY)了!如果真的是這樣,那我的車牌辨識實質「市占率」就會忽然變得好高了!但是完全賺不到錢,哈哈!

所以在沒有想到安全保護我的DLL產品之前,我當然不願意再賣這種東西,讓我的技術處於被盜版的高風險之下!這不是杞人憂天,更早之前就已經發生過,該公司最後與我和解,以數十萬元買斷那個舊版DLL,到現在他們還繼續在市場上賣哦!我卻分不到錢了!

所以啦!前兩次賣DLL都確定,或疑似被盜版了!現在面對第三個客戶,我就一直很掙扎!之前的協議是我只准讓他們每次辨識都要讀Key認證,他們也同意了!但是漸漸的又開始對辨識速度不滿意了!還說我刻意調降了辨識速度?其實是他們之前的工程師偷雞,宣告過的辨識物件重複使用就不必每次認證了,這當然比較快?但同一物件多次使用就會產生物件內的殘留參數衝突而當掉!

怎麼辦?產品已經賣出去了,也不好意思撒手不管?他們哇哇叫說如果不能完成驗收就會被按日罰錢了云云…。昨天下班開車回家在暴雨中終於讓我想到了解套的方式!就是把DLL作成這樣:每次呼叫宣告新辨識物件時當然要認證USB KEY,但重複使用時我幫忙排除障礙,避免未適當重設的一些參數讓後續的辨識案例失敗。

但是這樣不就可以認證一次永遠使用了嗎?他們可以只在開機時插上USB KEY,不管多少台機器,都只要開機時使用認證,之後不關機就會有無限多台機器同時使用我的辨識功能,我就無法繼續賣更多授權了!解決方式是建立物件內的計數或計時機制,同一物件宣告之後有使用次數或時間的限制,次數時限到了就會自動尋找USB KEY作認證,找不到Key的話這個物件就罷工了!

這樣作因為沒有外露的憑證檔案,或可以攔截的網路封包訊息,被破解的風險就很小了!測試OK之後眼前客戶的問題就解決了!也讓我想到以此模式推出DLL產品就不會那麼容易被破解盜拷了!雖然可能已經被盜的軟體,一時之間很難釐清事實,但應該緊張的不是我!有空再去查案吧?真的有做虧心事的人就剉著等吧!一定要等我哦!

如果你是想買車牌辨識系統的客戶,也不想因為買到盜版日後有麻煩,就一定要問廠商車牌辨識核心的來源!在台灣有「」車牌辨識系統的廠商應該有幾百家,有「」車牌辨識系統(或軟體)的廠商也有幾十家,但是真正自己開發還繼續更新維護車牌辨識核心的廠商呢?一隻手五根指頭就數得完!我確定是其中的一家!希望就是那根大拇指啦!哈哈!

其實目前台灣市場上的辨識核心,來自歐美與大陸的還比台灣自製的多!使用舶來品不是大問題,只是售後服務比較難叫而已,但買到盜版的,以後如果東窗事發,賣你的廠商跑路了,你就慘了!

有誰推薦more

限會員,要發表迴響,請先登入