在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于 Unicode 所有開發者都應該知道的前五件事 并用來防止欺詐

Linux愛好者 ? 2018-02-02 11:41 ? 次閱讀

2017年11月 BBC 報道了一個假冒 WhatsApp 的新聞。假應用似乎與官方應用屬于同一個開發者名下。原來這些騙子通過在開發者名字中加入 Unicode 的非打印空格(nonprintable space),繞開驗證。在 Google Play 維護人員發現之前,下載假應用超過 100 萬人。

Unicode 是極其有價值的標準,使得電腦智能手機和手表,在全球范圍內以同樣的方式顯示同樣的消息。不幸的是,它的復雜性使其成為了騙子和惡作劇者的金礦。如果像 Google 這樣的巨頭都不能抵御 Unicode 造成的基本問題,那對小一點的公司來說,這可能就像是必輸的戰役了。然而,大多數這些問題都是圍繞著幾個漏洞利用的。以下是關于 Unicode 所有開發者都應該知道的前五件事,并用來防止欺詐。

1. 很多 Unicode 代碼點是不可見的

Unicode 中有一些零寬度代碼點,例如零寬度連接器(U+200D)和零寬度非連接器(U+200C),它們都暗示了連字符工具。零寬度代碼點對屏幕顯示沒有可見的影響,但是它們仍會影響字符串比較。這也是假 WhatApp 應用的騙子能這么長時間不被發現的原因。這些字符大多數都在一般標點符號區(從 U+2000 到 U+206F)。一般來說,沒有理由允許任何人在標識符中使用這個區的代碼點,所以它們是最不易過濾的。但是該區域外也有部分其他不可見的特別代碼,比如蒙古文元音分隔符(U+180E)。

一般來說,用 Unicode 對唯一性約束做簡單的字符串比較,這很危險的。有一個可能的解決方法,限制允許用作標識符及其他任何能被騙子濫用的數據的字符集。不幸的是,這并非該問題的徹底解決方法。

2. 很多代碼點看起來很相似

Unicode 努力覆蓋全世界書寫語言中的所有符號,必然有很多看起來相似的字符。人類甚至無法把它們區分開來,但是電腦能毫不費力地識別出差別。對這個問題的一種令人驚訝的濫用是擬態(Mimic)。擬態是一項有趣的應用,將軟件開發所使用的常見符號,例如冒號和分號,替換成相似的 Unicode 字符。這能在代碼編譯工具中制造混亂,留下一臉懵逼的開發者。

關于 Unicode 所有開發者都應該知道的前五件事 并用來防止欺詐

相似符號帶來的問題,遠不止是簡單的惡作劇。花哨的叫法是 homomorphic attacks(同態攻擊)。利用這些漏洞,會導致嚴重的安全問題。在 2017 年 4 月,一位安全研究員通過混合不同字符集中的字母,成功地注冊了一個看起來與 apple.com 非常相似的域名,甚至為它拿到了 SSL 證書。各大瀏覽器都愉快地顯示了 SSL 掛鎖,將該域名列為安全域名。

與混合可見字符和不可見字符相似,沒有道理允許標識符,尤其是域名,使用混合字符集名。大多數瀏覽器已經采取了行動,將混合字符集域名顯示為十六進制的 unicode 值以對其進行處罰,這樣用戶就不會輕易地被迷惑。如果你向用戶顯示標識符,比如說在搜索結果中,考慮類似的方法來避免混淆。但是,這也不是完美的解決方法。某些域名可以輕易地用一個非拉丁字符集中的單單一個區來構建,比如 ap.com 或者 chase.com。

Unicode 協會出版了一張易混淆字符表,可能作為自動檢查潛在詐騙的好參考。另一方面,如果你想找一個快速創造疑惑的方法,看看Shapecatcher吧。它是一個奇妙工具,列舉了視覺上像圖畫的 Unicode 符號。

3. 規范化并不那么規范

規范化對像用戶名這樣的標識符來說非常重要,幫助人們用不同的方法輸入值,但是用一致的方法來處理。規范標識符的一個常見方法是把所有字符都轉變成小寫,確保 JamesBond 和 jamesbond 是一樣的。

因為有如此多的相似字符和交叉集,不同的語言或者 unicode 處理庫,可能應用不同的規范化策略。如果在若干地方進行了規范化,會潛在地帶來安全風險。簡單來說,不要假設小寫轉換在應用軟件中的不同部分是一樣的。來自 Spotify 的 Mikael Goldmann 在他們的一名用戶發現了一個盜用賬戶的方法后,于 2013 年針對這個問題寫了一份事件分析。攻擊者可以注冊其他人用戶名的變體,比如 BIGBIRD,會轉換成標準的賬戶名 bigbird。該應用軟件的不同層對單詞的規范化不同,使得人們能夠注冊模仿賬號,而重置目標賬戶的密碼。

4. 屏幕顯示長度和內存大小無關

使用基礎拉丁字符集和大多數歐洲字符集時,一段文本在屏幕或者紙上所占的空間大致與符號數成比例,大致與文本的內存大小成比例。這也是 EM 和 EN 成為流行長度單位的原因。但使用 Unicode 時,像這樣任何種類的假設都會變得危險。有像 Bismallah Ar-Rahman Ar-Raheem (U+FDFD)這樣可愛的字符,單單一個字符就比大多數英文單詞都要長,能夠輕易地超過網頁上假定的視覺外框。這意味著基于字符串字符長度的任何種類的自動換行,或者文本中斷算法都能輕易被愚弄。大多數終端程序要求固定寬度的字體,所以在這些程序中顯示的話,你會看到右引號完全標在了錯誤的位置上。

關于 Unicode 所有開發者都應該知道的前五件事 并用來防止欺詐

該問題一種濫用是 zalgo 文本生成器,它在一段文本周圍加上垃圾,讓這些東西占據了更多的垂直空間。

當然了,整個不可見代碼點的問題導致屏幕長度和內存大小無關。所以與輸入區恰好合適的東西可能長到能摧毀一個數據庫區。過濾不可見字符來規避問題還不夠,因為還有很多不占用它們自己空間的其他例子。

混合占據前一個字母上的空間的拉丁字符(比如U+036B 和 U+036C),這樣你能在一行文本行中寫多行文本(Nu036BOu036C 產生 N?O?)。吟誦標記是用來示意吟唱希伯來圣經經文的語調的。這些吟誦標記能夠在同樣的視覺空間中無限堆疊,意味著他們能被輕易地濫用,將大量信息編寫進屏幕上的一個字符空間。Martin Kleppe 用吟誦標記為瀏覽器編碼了Conway’s Game of Life 的實現。看看該頁面的源代碼吧,你會感到震驚的。

5. Unicode 遠不止是被動數據

有些代碼點是用來影響輸出字符的顯示方式的,意味著用戶不僅可以復制粘貼數據,也能鍵入處理指令。一個常見惡作劇是,使用右到左覆蓋(U+202E)來轉變文本方向。例如,用谷歌地圖搜索 Ninjas。該查詢字符串實際上轉換了搜索單詞的方向,盡管頁面上的搜索區域顯示著“ninjas”,但是實際上搜索的是“sajnin”。

這種漏洞利用非常流行,XKCD漫畫網站上有一張相應漫畫。

混合數據和處理指令——可有效執行的代碼——不是個好主意,尤其是如果用戶可以直接鍵入。這對任何在頁面顯示中包括的用戶鍵入來說都是大問題。大多數網頁開發者知道通過移除 HTML 標簽來清理用戶鍵入,但是也需要注意鍵入中的 Unicode 控制字符。這是個應對任何臟話或者內容過濾器的簡單方法——只要把單詞倒轉過來,在開始加上右到左覆蓋。

右到左(Right-to-left)hack 可能無法嵌入惡意代碼,但是如果你不小心的話,它能擾亂內容或者翻轉整個頁面。抵御這個問題,常見方法是把用戶提供的內容放進一個輸入區域或者文本區域,這樣處理指令不會影響頁面。

處理指令對顯示的另一個特別問題是字型變換選取器。為了避免為每種顏色的 emoji 創造單獨的代碼,Unicode 允許使用字型變換選取器來混合基本符號和顏色。白旗,字型變換選取器和彩虹正常會產生彩虹顏色的旗。但是并不是所有變換都可行。在 2017 年1 月,iOS unicode 處理中的一個 bug 允許惡作劇者,僅僅發送一條特制信息就遠程導致 iPhone 癱瘓。該信息包括白旗,字型變換選取器和一個零。iOS CoreText 陷入了恐慌模式,想要挑出正確的變換,導致了 OS 的癱瘓。這個惡作劇在直接信息,群聊甚至分享聯系人名片中都奏效。這個問題也影響了 iPad,甚至部分 MacBook。該惡作劇針對的目標人群,面對系統崩潰,無能為力。

相似的 bug 每幾年就發生一次。在 2013 年,出現了一個阿拉伯字符處理 bug,它能使 OSX 和 iOS 崩潰。所有這些 bug 都深深埋藏在 OS 文本處理模塊里,所以典型客戶端應用開發者根本無法躲開它們。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210399
  • Unicode
    +關注

    關注

    0

    文章

    24

    瀏覽量

    12591

原文標題:這種 Unicode 符號,讓百萬人中招下了假應用……

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    2016關于物聯網應該知道的7件事

    物聯網在實際應用上的開展需要各行各業的參與,并且需要國家政府的主導以及相關法規政策上的扶助,物聯網的開展具有規模性、廣泛參與性、管理性、技術性、物的屬性等等特征,關于物聯網2016我們應該知道的7
    發表于 08-10 17:21 ?1004次閱讀

    [原創]每天做好一件事

    你,假如你每天都能做好一件事,每天你就會有一粒種子的收獲和快樂。可是,當你想把所有的事情都擠到一起來做,反而連一粒種子也收獲不到了。" [此貼子已經被summao于2010-5-31 14:04:26編輯過]
    發表于 05-31 11:55

    什么叫做“每天6件事”,如何落實“每天6件事

    這六件事每天完成六件事,會有驚人的發現。放下這本書,寫下明天最優先做的六件事。如此實行三周,若你真的想成功,你的生活將不復以往。七、只要二十一天只要求三星期,這三個星期你每晚寫下明天最重要的
    發表于 04-21 13:40

    調節 PID 都應該學習labview哪方面的內容

    本人想做個上位機 可之前沒接觸過LABVIEW我要實現的功能就是顯示期望 與實際數據的曲線用來調節 PID都應該學習labview哪方面的內容啊求指導{:23:}
    發表于 09-22 14:38

    15 年代碼經驗,總結出提升 10 倍效率的三件事

    。最重要的是,知道工作的目的和什么會使工作成功是很關鍵的。水平差的開發者會在一個項目的錯誤方向上花幾個小時而不問任何問題。他們就是我所說的 負10倍效率的開發人員,因為他們一無成,浪
    發表于 10-14 17:35

    嵌入式驅動開發者設計都應該了解的5個知識

    (DMA)。Bit bang模式:當微控制器沒有內外設去執行功能的時候,或者當所有的內外設都已經被使用了,而此時又有一個新的請求,那么開發者應該選擇Bit bang設計模式。Bit bang模式
    發表于 12-06 19:22

    每一個嵌入式驅動開發者設計都應該了解的5個竅門

    和直接存儲器訪問(DMA)。Bit bang模式:當微控制器沒有內外設去執行功能的時候,或者當所有的內外設都已經被使用了,而此時又有一個新的請求,那么開發者應該選擇Bit bang設計模式。Bit
    發表于 12-18 11:03

    移動開發者應該知道的 8 個盈利技巧

    如果你是一個移動開發者,擁有不少的手機應用程序,肯定特別想知道廣告是否可以通過應用幫你賺錢。下面為移動開發者們揭曉 8 個你不得不知的盈利技巧,把手機應用程序兌換成赤
    發表于 08-01 08:24 ?605次閱讀

    更新iOS 10之前應該知道的六件事

    不敢下載。我們都有過這種情況。蘋果手機的新操作系統提供了很多新體驗,也有很多舊功能得到了改進。以下是升級時應牢記的六件事
    發表于 01-06 15:49 ?671次閱讀

    整理了所有數據專家都應該會的七款Python工具

    我咨詢了我們真正的數據專家,收集整理了他們認為所有數據專家都應該會的七款 Python 工具。The Galvanize Data Science 和 GalvanizeU 課程注重讓學生們花大
    的頭像 發表于 01-15 10:21 ?4265次閱讀

    硬件工程師都應該掌握防反接電路,你都Get到了嗎?

    硬件工程師都應該掌握的防反接電路,你都Get到了嗎?
    的頭像 發表于 02-03 15:05 ?4620次閱讀

    GitHub重向伊朗開發者打開大門

    」的其中之一。 ? 當時,這件事情在 twitter和 reddit上面掀起了軒然大波。 ? 當時,Github的工作人員表示: ? 「所有開發人員都應該免費使用GitHub,不管他們
    的頭像 發表于 01-12 11:25 ?1933次閱讀

    關于MIMO技術您應該知道的10件事

    關于MIMO技術您應該知道的10件事
    發表于 06-16 09:32 ?17次下載

    為ADAS構建時需要考慮的6件事說明

    為ADAS構建時需要考慮的6件事說明。
    發表于 09-22 17:06 ?1次下載

    關于隔離器件,你需要知道的三件事

    關于隔離器件,你需要知道的三件事
    發表于 10-28 12:00 ?0次下載
    <b class='flag-5'>關于</b>隔離器件,你需要<b class='flag-5'>知道</b>的三<b class='flag-5'>件事</b>
    主站蜘蛛池模板: 深夜视频在线免费 | 国产一级做a爱免费观看 | 俺要操| 色综合精品 | 97一本大道波多野吉衣 | 国产免费好大好硬视频 | 国产专区青青草原亚洲 | 国产私密 | 色婷婷99综合久久久精品 | 亚洲黄色激情网 | 精品无码三级在线观看视频 | 国产激情久久久久影院小草 | 午夜亚洲福利 | 亚洲第一黄色网 | 国产亚洲精品aa在线看 | 久久www免费人成高清 | 午夜在线视频免费 | 亚洲a网站| 久久国产高清视频 | 色六月丁香 | 日本人69xxxxxxxx69 | 九色视频播放 | 免费看黄色录像 | 日韩在线一区视频 | 国产午夜精品久久久久免费视小说 | 视频亚洲一区 | 伊人久久亚洲综合 | 亚洲韩国日本欧美一区二区三区 | 亚洲视频一区在线观看 | 成人久久网 | 亚洲电影在线播放 | 黄色国产视频 | 黄网站在线观看永久免费 | 在线小毛片 | 老师下面很湿很爽很紧 | 色免费视频 | 特黄特黄特色大片免费观看 | 久久香蕉国产线看观看亚洲片 | 久久综合九色综合欧洲 | 色婷婷综合久久久 | 午夜丁香影院 |