2010年9月11日 星期六

跨平臺電腦螢幕廣播工具 iTALC : 安全建議及 slax 模組

iTALC 是一套廣播軟體, 可以:

  1. 廣播教師的螢幕給學生
  2. 監控學生螢幕
  3. 用遙控的方式, 協助學生操作他的電腦
  4. ...

最重要的兩點: (1) 它是跨平臺的 (2) 它可跨越區網。 請想像它對 偏鄉教育宅急便 或是一般遠距教學的幫助。 但是, 從安全性的角度來看, iTALC 的學生電腦自願地將掌控權交給教師電腦, 允許教師電腦從遠端監視學生畫面﹑ 操作學生滑鼠﹑ 老師關掉學生的機器﹑ ...。 這產生一些安全性的問題。

[2014/5/11: 如果你只需要廣播功能, 改推薦比較簡單的做法: 用 vnc 當廣播教學軟體]

首先, 學生怎麼確認進來遙控的是老師呢? 看起來 iTALC 採用 「非對稱式加解密」。 也就是說, 老師必須把他的 public key 交給學生。

其次, 學生如果把某位老師的 public key 放在 iTALC 指定的地方, 那就表示他將掌控權交給這位老師了。 換句話說, 我若是學生, 會很小心地不要隨便將陌生人的 key 貼到 /etc/italc/keys/public/teacher/key 這裡面。 (下詳) 事實上我若是學生, 甚至連 ica 這支系統服務都不會隨便啟動 -- 除非老師要求 -- 因為就是 ica 在檢查上述檔案, 並允許這位指定的老師進來遙控我的電腦。

最後, 老師應小心, 不要隨便亂公告自己的 private key, 不然任何一位學生都可以假冒老師的身份, 遙控同學的電腦。 網路上的 iTALC 教學文件, 多半沒注意到這一點。

ok, 現在再請讀者略讀 螢幕廣播軟體 iTALC (自由軟體) View, Control, Instruct with iTalc。 以下是 「很少圖片、 Linux 自主/安全/解釋原因版」 的安裝與設定說明:

[教師機]:

  1. 安裝 italc-master (ubuntu 還會自動拉入 italc-client 跟 libitalc; slax 的話請下載 iTALC 模組)
  2. 替老師產生一對金鑰: ica -role teacher -createkeypair 分別會自動放在 /etc/italc/keys/public/teacher/key 和 /etc/italc/keys/private/teacher/key
  3. 啟動必備的背景服務 ica。 請先檢查系統是否已經有 ica 在執行: ps ax | grep '\<ica\>' 若僅出現一列 "含有 grep" 的結果, 就表示尚未有 ica 在執行, 應該要手動下: ica &。 若出現 grep 自己之外的其他程序, 就表示已有 ica 在執行, 不必另外手動啟動, 像這樣:
     8878 pts/2    Sl     0:00 ica
     8885 pts/2    S      0:00 /usr/bin/ica -rx11vs -nosel -nosetclipboard -rfbport 5900 -rx11vs -isdport 5800 -role other
     8907 pts/2    S+     0:00 grep \<ica\>
    
  4. 把 public key 公告在網頁上, 請學生將它貼到學生機同一個位置的檔案。
  5. 打 sudo italc 啟動主監控畫面。 注意: 系統會問密碼, 所以一開始不能丟到背景去。 需要加 sudo, 主要是因為教師機啟動時, 必須先去讀私密的 private key, 這樣當它試圖連線去操控學生機時, 學生機的 ica 背景服務質問教師機確認身份時, 它才答得出來。 如果直接打 italc 的話, 有可能出現 "no authentication keys were found" 之類的錯誤訊息, 看起來好像說沒有金鑰, 其實也可能是已產生但卻讀不到。 (權限不足) 當然, 如果你的系統並未預先設定開放讓你的帳號執行 sudo italc 的權限, 那就還必需先 簡單設定一下 /etc/sudoers。 如果你用的是 ubuntu 最當初安裝系統時所設的帳號, 或是 slax-cyut 的預設帳號 cyut, 那麼不必設定 /etc/sudoers 就可使用 sudo italc, 因為這兩個版本的這兩個帳號都預先設好了。

[學生機]:

  1. 安裝 italc-client (ubuntu 還會自動拉入 libitalc; slax 的話, 同老師機, 下載同一個 italc 套件)。
  2. 把老師給的金鑰內容貼到 /etc/italc/keys/public/teacher/key 這個檔案去。
  3. 同老師機, 檢查是否已有 ica 在執行? 若無, 則啟動。

italc 主控畫面 至於老師機啟動 iTALC 主監控畫面之後, 要如何操作? 在空白地方按滑鼠右鍵, 亂試一下就知道了。 簡單說, 要 (1) 用 nmap -sP 列出區域網路內的所有電腦清單 (2) 新增一個教室 (3) 在教室內新增一部欲監控的學生機。 學生的螢幕一字排開, 隨時更新; 老師可以廣播自己的螢幕也可以廣播特定學生的營幕; 老師可以操作學生的營幕; ... 很方便哦。 右圖當中, 老師開了一間 drgeo 教室, 收了三位學生。 ck-eeepc 正在練習畫拋物線; z9100 打開老師給的重力加速度範例; rb-eeepc 正在... 喂, 上課不要打 game 看相片!

italc 12位同學成功連線 [2011/4/21 補充]: 若無法連線, 請注意學生機啟動 ica 時有沒有這一類錯誤訊息: "invalid key" 或 "error while reading public key"。 這表示 /etc/italc/keys/public/teacher/key 這個檔案不正確。 修改正確後, 再重新啟動 ica。 若出現 「.. 已佔用窗口 ...」 之類的簡體中文訊息, 就表示舊的 ica 程序還在跑。 此時請先用 ps ax | grep '\' 查出舊的 ica 程序 的 pid (最左邊的數字), 然後用 kill -9 數字 砍掉舊的 ica 程序, 再重新啟動 ica。 右圖為上課實際教同學操作, 12 位同學成功連線的畫面。 (一開始好長一段時間 0 人連線成功, 我還以為是教師機設定錯誤...)

軟體廣播教學軟體, 註定要靠學生的配合。 (DRM? 別傻了 -- 請搜尋 「遙控數位枷鎖」 或 「見不得人的 DRM」) 因此我認為 iTALC 當初設計時, 根本就可以直接假設學生會自願配合。 應該讓學生端有一個很簡單的畫面可以設定他要允許那一位 (那幾位) 老師操作他的電腦, 把老師的 public key 填寫到一個 (自己有讀寫權限, 非 root 擁有的) 檔案去。 要向學生解釋 iTALC 運作的機制, 告訴學生沒事別亂啟動 ica, 更別把陌生人的 public key 加入信任檔。

取消 italc 自動啟動 另外, 只要使用過一次之後, 以後重開機, ica 都會自動啟動。 雖然很方便, 但從安全的角度來看, 這不太妙。 以 ubuntu 而言, 可以從 「系統」 => 「偏好設定」 => 「作業階段」 選 「初始啟動程式」, 把 iTalc client 取消或移除。 以 slax 而言, 下次我打包 slax-cyut 時, 會把 italc.lzm 放在 optional/ 底下, 而不是放在 modules/ 底下。 需要時再手動啟動。

若您成功地在課堂上使用 iTALC, 請留言 (或留連結) 分享經驗與心得吧!

2 則留言:

  1. 老師您好:以前使用italc時不會出現什麼問題?但是現在出現問題了,如圖所示http://techapp.ctust.edu.tw/ezfiles/54/1054/img/16/italc.png,懇請幫忙。謝謝!

    回覆刪除
  2. 已經很久沒用 italc 了說~~ 本來想說等有空玩一玩再回覆; 不過總是有其他事情的優先順序排在前面... 真的很抱歉啊~

    回覆刪除