為 QR Code 提供一種透明又安全的防護措施
- 9DO
- 3月20日
- 讀畢需時 6 分鐘
今天想要與大家分享一款方便且好用的工具軟體,這是一款可以應用在指定對象需求,或者較敏感不方便公開的資訊,也可以應用在行銷廣告或者是有價票券的安全防護,該工具可以達到票券的擁有者產生專屬使用的效果。如果您對於安全性的議題感興趣,也許以下的技術與內容對您有幫助。許多人都有搭過高鐵,高鐵去年也公布預計 2025 上半年全線 12 座車站的人工售票窗口將全面發售新式 QR Code 票券,預計將以光學感應的票卡取代昔日磁感應式的乘車票券,相信未來高鐵也有可能將紙本票券全面數位化,以落實政府努力推動車票無紙化的環保目標。一次性使用的乘車票券,除了倚賴法律條款的約束外,有價證券系統的開發商,對於 QR Code 內容資料的加密與保護的方法,應該也會有嚴格的思考與衡量,防止有心人士使用未販售的車票,享受免費的高鐵運輸服務。從資料使用安全的角度,因為票券本身不需要對外公開條碼中的資訊,或許開發商可以考慮使用一款私有規格的二維條碼,如同中央銀行印製鈔票時不會公布鈔票防偽秘方,可以有效防止心存歹念的歹徒利用市面上技術成熟、免費的 QR Code 產生器生成有價票券,讓乘車票券的使用安全多一層防護。

在安全防護上,多數使用 QR Code 的支付業者都會參閱「金融機構提供 QR Code 掃描支付應用安全控管規範」,業者也都會在服務中實作「被掃模式採用交易指示類 QR Code 者,因係屬使用者產生授權資訊同意扣款性質,應設定 QR Code 合理使用時效,且在時效內以使用一次為限。」這樣的機制,在金融上確實發揮一定的保護功效,但是對於已經付過款的票券,如果也採用這樣的保護措施,卻會帶給使用者使用上的不方便,造成使用上的困擾。觀察家不妨回到實體紙本票券的使用情境進行思考,當使用者購買票券之後,票券上的序號與票券上印刷的內容應該不會再發生改變,如果票券上的序號必須在使用前的 5 分鐘重新產生,理由是 QR Code 的安全弱點需要以此措施補強其安全性,因此要求消費者改變原有票券的使用行為,也許這可能就不是一個好的解決方案。QR Code 內所存放的資訊本來就應該是公開、透明,QR Code 的目的只是減少消費者的輸入縮短訊息的傳遞時間,某些情況本來就不適合使用 QR Code 來解決,許多人在開發應用上對技術本質的不熟悉,導致使用了 QR Code 卻產生出更多需要被解決的問題。
再舉一個近期遇到的案例,現在許多的公司因為成本與消費者使用上的便利性,所以開始將實體的儲值卡片逐漸數位化,但是多數品牌仍擔心貿然僅提供數位化版本會影響到既有客戶的使用方式,因此多數都會先採用實體卡片與數位並行的模式,降低使用者的進入門檻。某一個品牌於數年前開始使用手機軟體經營會員,透過各種行銷優惠活動,多數消費者陸續安裝了這款手機軟體,現在品牌希望將某一張具有儲值功能的優惠卡片綁進這款手機軟體,業者在販售儲值卡時,除了提供實體卡片外,另外也提供了一組綁定序號,加上使用銀漆遮蔽的一組密碼,使用者刮開銀漆後,可以在特定的手機軟體輸入序號與密碼進行卡片資料與軟體的綁定,這樣就能讓原本手機軟體的使用者也能享受這張卡片額外帶來的好處。該品牌業者也貼心考慮到使用者資料輸入的便利性,特別在序號與密碼上方印上一個 QR Code, 減少使用者輸入序號與密碼的不方便,推測該 QR Code 可能使用 base 64 的編碼將實體卡片資料進行編碼,存放與主機連線的路徑,讓使用者透過特定軟體掃描後,完成帳號綁定。這一連串的流程看似沒有問題,但是實際體驗之後,卻讓人感覺到有一點不太對勁,掃描 QR Code 之後就完成卡片綁定,那麼銀漆遮蔽的那一組密碼究竟是什麼用途呢?難道使用銀漆遮蔽資料不需要額外成本嗎?既然掃描 QR Code 就完成卡片綁定,何必特別準備銀漆遮蔽的那一組密碼呢?進一步思考,或許有些人的手機沒有相機功能,例如軍事單位禁止擁有相機功能的手機,或者老人機可能多半也缺乏相機,因此特別準備銀漆遮蔽的那一組密碼給輸入卡號的使用者使用,想到這裡可能一切又都變得合情合理,說得通了。針對掃描 QR Code 之後就完成卡片綁定,這一件事情,似乎還產生一個問題,就是當使用者丟棄了這張含有 QR Code 的卡片,被人撿走後,因為銀漆遮蔽的那一組密碼尚未使用,是否意味著還可以再數位綁定一次呢?消費者表明尚未使用這一組密碼,而銀漆也還沒有被刮開,造成第三者不容易判別這組資料是否已經被使用了。較佳的解決方式,也許掃描 QR Code 之後,要求使用者刮開銀漆並且輸入密碼,先確認使用者為完整的資料的用有者後,再完成卡片的綁定,也許多了這個步驟,就可以讓銷售者快速辨識卡片資料是否已經被使用過了,也不用請消費者出示實體卡片作為證明。
今天與大家分享的這款工具軟體可以應用在許多情境,因為這個工具允許使用者使用事前約定好的密碼進行通訊,只有約定好之後,雙方才能共享 QR Code 內所包含的所有訊息,在不知道密碼或者沒有提供正確密碼的情況下,使用者僅能從 QR Code 中獲得雜亂的訊息。如果您想要把祕密放在公開的區域,並且只希望某個特定對像可以得到資料,也許您可以這麼做:先和對方約定一組密碼,像是貓咪的生日、雙方初次見面的日期或者任何有意義的一串資料,然後使用今天分享的這款工具軟體,產生一個加密的 QR Code 之後,想方設法將 QR Code 傳送到對方手中,對方利用雙方先前約定的密碼取得 QR Code 內有意義的訊息。這款工具軟體在沒有網路連線的環境下就可以使用,因此對於有敏感性資料的傳遞者,透過這種方式將資料送給接收者,而解密後得到的明文,也不會因為網路連線而外洩。有人將這樣的工具使用在密室逃脫的遊戲中,遊戲參與者也可以利用這款工具驗證取得的密碼是否正確,只有拿到正確的密碼,參與者才能取得下一個關卡的提示訊息,而遊戲設計者,可以提供隱藏各種假的密鑰增加遊戲的難度,讓參與者可以不斷的挑戰與尋找線索。以下簡單的提供一個使用案例給大家參考,假設您想要約同是下午三點在公司樓下星巴克喝一杯咖啡,而且希望這個訊息不會讓第三方知道,可行的解決方案有很多種,您也能使用今天所提到的這款工具,產生一個加密的 QR Code ,因為只有您的同事才知道解秘的方法,當同事輸入她的生日之後,她就可以得到 QR Code 內的完整的資訊,而您的同事也可以採用同樣的方式回覆訊息,也許透過這樣的機制就不會被第三方知道您與同事之間的約定。如果有人希望在行銷活動或者是遊戲中想要以這樣的方式使用 QR Code,歡迎與我們聯繫獲得更多的協助與討論。
在票券方面,除了一開始提到使用一款私有規格的二維條碼解決安全性的議題外,或許這種具有加密性質的 QR Code 也是另外一種解決方案,票券業者可以每天變更一組密碼,在某個班次以後的乘客,以另一種解密方式讀取票券上的訊息,利用後台設定販售票券的加解密碼而不需要修改原先開發好的系統程式,透過加解密的機制也可以達到資料保護的目的。
Comments