視覺安全 資料庫 機密洩漏 資訊隱藏 偽裝解碼

ASCII碼編造句化為雜訊圖 影像重疊偽裝解碼取出訊息

視覺安全結合偽裝機制 重要密文無懼攔截放心傳送

偽裝與視覺安全的技術,可加強資料庫中的重要資料。偽裝的運用能夠讓圖像就算洩漏也看不出祕密訊息,視覺安全則將圖像分為多張做為資訊隱藏,透過人眼去辨識出疊合後的圖像便能看出解密效果,而資料傳輸過程採用分散式傳輸。

一般系統中的認證方式,基本上都是透過使用者ID和密碼進行驗證。這種方式的好處在於只要發送驗證密碼即可進行比對,不過必須透過電腦繁雜的演算進行加密,且還是有機會遭惡意人士攻擊竊取資料。此外,多數人們使用帳號密碼時,對於密碼的管理習慣都是不安全的,主要原因是使用的密碼過短或過於簡單。近年來,就有研究針對密碼管理不良的習慣進行分析,發現大眾的密碼還是有密碼長度偏短、少有更新密碼等問題,如圖1所示。還有許多企業對於重要資料存放的資料庫缺乏安全性,一旦資料庫遭受攻擊,就可能會有機密洩漏的問題,所以這裡將提出一種解決方案,無論是密碼的管理還是資料庫的存放,都能更加安全地處理。

圖1  密碼管理不良方式。

相關背景知識介紹

以下介紹何謂視覺安全、偽裝機制,以及什麼是ASCII碼。

何謂視覺安全

先說明視覺安全的原理,再介紹其相關的應用。

視覺安全的原理

視覺安全可以將想要傳達的訊息分享成多個影像,讓每個參與者都拿到一部分的資訊,若單獨看到被分享到的一部分,也沒辦法知道內容是甚麼。必須讓所有獲得分享的資料疊合在一起,才能完美浮現出最初的資料。這樣的方法並非需要繁雜的算法才能進行合併,只要將所分享的資訊進行重複的疊合即可。接著,說明視覺安全的案例。

以圖2的例子來說,可以看到原先的影像先將其分享成兩個看似亂碼的影像,分別為共享1、共享2,若單看其中一個共享圖像,是無法看出甚麼端倪的,只不過就是一張充滿雜訊的一張影像。但是若將這兩個共享圖片在進行疊合合併,就可以看到當初所分享的影像。這樣的例子可以簡單地分析出視覺安全有什麼樣的特點:

圖2  視覺安全範例。

1. 不需要有太複雜的算法,只須靠疊合就能解出原先的影像。

2. 安全性俱佳,若其中一個共享圖片被偷走,也不會有洩漏秘密的問題。

3. 以上述例子來說是共享於兩份,任何一份都無法預先知道影像內容,也代表確保隱私性。

不過,視覺安全的做法也有缺點,上述提到的例子都需要先將文字轉成圖像,圖像所佔據的電腦空間也遠比文字來得大。還有,即使本來儲存的檔案是圖像,但做共享檔案也會將圖像一分為好幾張,對於資料庫的存放也會有成本考量。此外,未來資料庫的管理員若需要進行權限管理,較不易將單一的使用者取消權限。

視覺安全的應用

視覺安全除了可以運用在實體的透明膠片外,還能將視覺安全運用在許多不同的應用上。舉例來說,醫學影像的傳遞過程觸及隱私,用視覺安全的方式傳送,可確保不被不當人士擷取;或是銀行線上支付系統,可透過視覺加密讓用戶與商家共三方順利達成交易;又或者在相關政府單位,用此加密方法來進行人臉或指紋識別辨識。以上等等例子都有很好的資安科技應用。

認識偽裝機制

偽裝機制屬於一種資料隱藏的方式,主要是在傳送資訊的過程中,不讓任何人知道傳遞資料的事件及內容。若沒有使用此方法,加密後的密文可能是亂碼,容易引起攻擊者注意。簡單來說,偽裝會將密文藏於看似正常的圖像或聲音當中,不易讓攻擊者察覺。圖3為偽裝的基本案例,可以從中看見原先的圖片中完全看不出所要藏匿的資訊,或許藏匿訊息中是張圖片也可以是文字。至今已有許多偽裝的方法,各自有各自藏匿資訊的規則去做變化,本文將基於文字造句來藏匿真正秘密文字訊息。

圖3  偽裝機制基本概念圖。

ASCII碼簡介

目前電腦中最為廣泛的編碼是美國國家標準局(ANSI)制定的ASCII碼(American Standard Code for Information Interchange,美國標準資訊交換碼),它已被國際標準化組織(ISO)訂為國際標準,稱為ISO 646標準文字來源(https://zh.wikipedia.org/wiki/ASCII),適用於所有拉丁文字字母(圖4)。本文運用此標準進行編碼與解碼,將英文字母透過ASCII碼轉換成二進制。

圖4  ASCII碼表示。

實際操作導引

這裡以一個視覺安全的模式說明如何將視覺安全與偽裝結合,來達到安全傳送密文的目的。先將所要做視覺安全的圖片加入偽裝,等同於做共享完後就算疊合而成也無法正確知道真正祕密訊息為何。至於如何將祕密圖像做偽裝的運用再將秘密圖像進行加密分享於多個圖像,將列出執行流程與步驟來說明。先介紹如何進行偽裝的編碼與解碼再使用視覺安全參與應用,以便能把原始圖像經由秘密共享,重疊回來仍然可見原始圖像。最後,將重疊的圖像透過偽裝解碼的方法來取出真正祕密訊息。

編碼階段

透過英文字母來藏匿所需的訊息,據分析,每個英文單字所使用的英文字母頻率不同,將每個英文字母所出現的頻率對應到製作的表格(圖5)中,表格中0~15是為了放進4位元(bit)裡。

圖5  依字母頻率排出空間為4位元對照表。

接下來運用ASCII碼來對照所要藏匿的祕密訊息,圖6表示所有藏匿的祕密訊息英文字母所對照的ASCII碼。

圖6  祕密訊息轉為二進制表示。

由於ASCII碼是以8位元轉為二進制,所以可將轉換過後的二進制碼將4位元切開來看,然而從中依上述依字母出現頻率來對照是哪些英文字母(圖7)。

圖7  祕密訊息進行編碼。

最後步驟是,把這些已進行編碼對照後的英文字母隨機編造一個英文句子,或是編造成方便使用者記憶密碼的句子。英文字母當每個單字的字首,編造句子的過程中,可加較無不重要的副詞、介係詞或連接詞來增加句子的通順,也不限於大小寫,不過不會將這些視為藏匿的資訊(圖8)。完成上述的所有步驟,即可將編造句子進行視覺安全產生出共享圖片。

圖8  祕密訊息隱藏於隨意編造句子中。

黑白圖像進行視覺祕密共享

為了視覺加密的方便性,先將1×1像素大小擴張成2×2的像素大小,這樣可以確保有足夠的空間進行加密,也可得知原始圖像只有進行加密的圖像四分之一。然後,將上述所產生的文字共享成兩張無意義的雜訊圖(圖9)。

圖9  將圖像進行視覺祕密共享。

疊合過程

知道如何呈現共享圖像後,會將視覺安全所共享出來的兩張雜訊圖進行疊合。在電腦中可透過編寫程式直接進行疊合,顯現出來即可用肉眼辨識原先的祕密圖像(圖10),若是實體操作,這兩張共享圖像可運用印表機與透明膠片將其印出,最終把兩張圖像互相疊合,即可顯現出原先視覺加密的影片。兩張在疊合時,不須有順序,哪張在下面都是沒有問題的。看起來可能會誤以為疊合起來底色變身而已,其實是因為將圖像縮小而造成視覺上看不出一些雜訊,將圖像放回原圖擷取一部分,即可看出細節(圖11)。

圖10  圖像疊合過程。
圖11  疊合後圖像擷取部分內容。

解碼階段

上述恢復祕密圖像後,由於先前做過視覺安全的編碼,所以仍然看不出真正的祕密訊息,圖像中的文字只是一個無關緊要的句子而已。將那個句子再透過原先字母出現頻率的表進行解碼。首先取出句子中的字首,然後依將每個字首所對照的表依序排列出來,最後將排列出來的數列對照ASCII碼進行解碼,即可解出真正藏匿的祕密訊息(圖12)。

圖12  偽裝完整解碼過程。

情境模擬示範

有一家知名上市銀行為北達銀行,近年來的發展可以說是越來多元化,除了本身銀行該有的業務外,也漸漸衍生出相關金融的產品。其中,信用卡的選擇可以說是琳琅滿目,許多企業也開始爭先恐後地想要與銀行合作推出聯名信用卡,知名電信業者中華之星就與北達銀行共同推出聯名的信用卡。這樣一來,這兩家公司都需要客戶的相關資本資料與身分驗證,過去都是使用帳號密碼來綁定客戶的基本訊息。

可是就在某一天,中華之星的系統發生故障,經由內部的技術工程師維修後,驚覺系統早已被人駭入,導致所有客戶的基本訊息全部都被一網打盡。正當中華之星認為此事件已平息,系統也已修復好,又傳出新聞只要與中華之星合作的公司,客戶的資料全都洩漏出去,北達銀行當然也無法倖免,導致北達銀行的聲譽與資安可信度遭人質疑。

阿哲是北達銀行內部的資深工程師,專門維護銀行系統的資訊安全。經由這次的聯名事件,阿哲不斷地在思考該如何去做修正,後來想起過去就讀研究所時有探討過的論文,曾經使用視覺安全的加密方式就是將一個秘密分成兩份。阿哲決定將視覺安全的方法應用於此事件,不過做事謹慎的阿哲想要再加入偽裝的方法來增加資料的安全性。阿哲先請用戶註冊,將註冊後的密碼進行偽裝方法,產生一句毫無意義的句子,然後將句子製作成圖像檔,藉由圖像進行視覺加密,產生出兩張共享圖像。以下說明阿哲整體建構流程:

先將用戶註冊的密碼進行偽裝,透過編碼隨機組成一個句子(圖13),然後將句子製作成圖像檔進行視覺祕密共享(圖14)。

圖13  將用戶密碼進行編碼。
圖14  圖像祕密共享成兩張。

這兩張共享圖像如果單用肉眼去看,是看不見任何內容的。阿哲打算將這兩張共享圖像分別給用戶與中華之星,兩方皆有共享圖像(圖15)。

圖15  共享圖像分別傳送給用戶與電信公司。

這樣共享圖像分別在用戶與中華之星,銀行端則擁有偽裝解碼方法。惡意人士必須要一次將兩張共享圖像一網打盡,且還需要知道北達銀行是如何進行偽裝的編碼,要不然是無法獲取用戶認證密碼。這時,用戶與中華之星分別有一張共享圖像。當用戶要與中華之星進行交易時,中華之星須透過用戶所傳的ID與北達銀行進行驗證,當驗證成功後即可發送驗證碼給用戶,確保用戶與中華之星雙方屬實身分,如圖16所示。

圖16  銀行獲取共享圖片進行解碼流程。

當中華之星傳送自己的共享圖像時,北達銀行向該用戶取得另一張共享圖像後,即可進行疊合(圖17)。最後,銀行端這邊再進行解碼流程,如圖18所示。

圖17  將索取共享圖像進行疊合。
圖18  疊合圖像進行偽裝解碼。

阿哲向銀行提出了這個方法,這樣既可保障銀行的資料外洩,也可保障用戶與中華之星。

銀行技術部顧問也認為此方法相當不錯,這樣就不用擔心自家銀行及影響到合作的廠商,以及合作廠商因資安技術不足而影響銀行的財產。於是,就提拔阿哲擔任技術部的主管,並且年終獎金將發放四十個月。

結語

未來網路上重要資訊的存放與傳遞將越來越廣泛,過去身分識別與認證的手法也都有不斷地加強安全性。但使用這種視覺加密的方式,除了能夠大大降低傳統密碼那種繁雜的算法外,還可以確保惡意人士無法從單一的圖像竊取重要資訊。

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)國立台北大學密碼編碼與計算理論實驗室,創立於2009年,主持人為資訊工程學系特聘教授張仁俊,實驗室的研究領域除包含與資訊安全相關的密碼技術、編碼技術、計算理論外,也涵蓋車載資通訊安全、網路安全、數位影像處理與版權保護、醫學影像、數據分析等領域。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!