一個隨機碼認證功能的分享

12 views
Skip to first unread message

hellobest

unread,
Dec 10, 2009, 3:40:02 AM12/10/09
to Taiwan Asterisk Users' Group - www.osslab.org.tw
各位版友好

我想分享一下之前和A.Lang大一起討論的隨機碼認證的功能,應用在Voice SPAM上

前言
首先要談談垃圾語音,他廣義的定義其實就是說,當一個電話是你不願意接到的,都可以歸類為垃圾語音,舉凡語音廣告等等。因此這個實驗主要是實做
一個小小的功能出來,希望能夠對於現今垃圾郵件的氾濫程度,思考未來網路語音的時代來臨,是否會出現同樣的問題。但是就以目前來說,語音辨識的技術可能
已經可以破解這個功能了,不過還是實做出來,讓大家可以玩一下,也希望可以藉由這個去思考,未來如何防堵垃圾語音。

功能與目的
透過人與電話系統的互動模式,當撥打方撥通電話後,必須仔細聆聽系統所提示的數字,利用電話的按鍵來送出正確的數字,方能接通至受話方,如此可以有效防
堵機器所產生的垃圾語音電話。

理論來源
本概念的方法叫做Turing Test (圖林測試),最初是由Alan Turing (1950)提出,其應用範圍非常廣泛,主要是為了能夠辨別
受試方是人或是人工智慧(程式)。由於Spam攻擊往往由程式產生,所以我們可以利用Turing Test的概念,來測試是否為程式所發起的Spam
攻擊。

實驗步驟:
本實驗是用Elastix,我們必須要寫入一個Dialplan,其撰寫Dialplan規則如下,
並放入/etc/asterisk/extensions_custom.conf檔案中。


[custom-auth]
exten => _XXXX,1,Answer
exten => _XXXX,2,Wait(3)
exten => _XXXX,3,Set(pin=${RAND(1000,9999)})
exten => _XXXX,4,Playback(your)
exten => _XXXX,5,Playback(access-code)
exten => _XXXX,6,Playback(is)
exten => _XXXX,7,SayDigits(${pin})
exten => _XXXX,8,Authenticate(${pin})
exten => _XXXX,9,WaitExten(5|m(radio))
exten => _XXXX,10, Dial(SIP/${EXTEN})
exten => _XXXX,n,Hangup


其大致的步驟解釋如下

Step 1:系統接起電話。
Step 2:系統亂數產生四個數字認證碼。
Step 3:播放語音:Your access code is XXXX。
Step 4:認證使用者輸入的號碼與系統產生的認證碼。
Step 5:認證成功後,播放轉接語音五秒。
Step 6:接通至受話方。

實驗測試
所使用的軟體網路電話測試軟體為X-Lite,假設當Alice(分機1122)撥打至Bob(分機1009)時,會先聽到一段「請輸入
XXXX四位數字認證碼」的語音,當Alice(分機1122)經由X-Lite上面的鍵盤回覆正確的四位數字認證碼後,即可聽到一段五秒鐘的轉接音
樂,而後接通至受話方Bob(分機1009)。


以上分享,若有更新的點子,歡迎大家一起來討論
或是有任何錯誤,請大家可以一起來除錯
感謝各位版友

Ansonsblee

unread,
Dec 13, 2009, 10:29:04 AM12/13/09
to Taiwan Asterisk Users' Group - www.osslab.org.tw
HI 樓主
我想這個應該可以放在 voice conference ma?

進入會議室
-> 撥打本地電話
-> 輸入已知的conference room no.
-> 輸入再輸入 邀請者 :手機號碼
-> 聽到提示音 再講自己名字.
-> 成功進入會議室

Reply all
Reply to author
Forward
0 new messages