霏艺Faye 在小组 2049BBS
动态 帖子 333 评论 381 短评 0 收到的赞 送出的赞
  1. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 发表文章

    v2ray在wss協議下的代碼講解

    前面講的東西都放在品蔥了,大家自己去補課。

    開始講wss的代碼了。

    翻開課本v2ray-core\transport\internet\websocket\dialer.go

    func Dial這個函數讀起。因爲外層調用必然是 internet.Dial這樣的調用方式進來。

    注意到這行代碼

    conn, err := dialWebsocket(ctx, dest, streamSettings)
    

    我們跟進去,注意以下代碼

    dialer.TLSClientConfig = config.GetTLSConfig(tls.WithDestination(dest))
    conn, resp, err := dialer.Dial(uri, wsSettings.GetRequestHeader())
    return internet.DialSystem(ctx, dest, streamSettings.SocketSettings)
    

    一行行解釋 翻開課本 v2ray-core\transport\internet\tls\config.go

    看函數 GetTLSConfig我們重點解釋下

    config := &tls.Config 保存了重要的配置信息,我們講講各個配置是什麽

    config.CipherSuites 保存的加密套件,我個人推薦,把出現RSA,chacha,cbc等字樣的套件刪除!

    config.InsecureSkipVerify 表示是否校驗證書,必須校驗啊!不校驗就被中間人攻擊了!像這次GitHub攻擊事件

    config.Certificates 保存了各個證書。默認是系統自帶的,可以禁用。通過config.GetCertificate = getGetCertificateFunc函數設置自己的自定義證書。我個人推薦,禁用系統的,只用自己的證書。

    其他的不重要

  2. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

  3. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @小二 #20

    你的這篇文章更側重向讀者解釋DNS的工作原理。以及如何DNS劫持,最後DoH如何解決了相關問題。還有哪些問題是遺留下來。很好的科普文章!

    但是我覺得這類科普類的文章太多了,不缺我一篇。我想寫自己的原創文章,國内講科普的代碼,講源碼的太少了。我希望把自己的代碼總結給大家,讓大家知道出了問題,去什麽目錄下找什麽文件,從什麽函數開始讀起,如何定位相關問題,並解決。

    如果我的原創文章足夠多,也足夠優秀,我覺得2049bbs的PageRank自然會提升~

  4. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 发表文章

    2020年3月26日大陸GitHub事件分析

    墻内鏈接,慎點 https://www.secrss.com/articles/13373

    習近平不知道腦子出了什麽問題,為GFW辯稱說這個叫維護國家主權

    還發明了一個專有詞匯,國家網絡主權。GFW維護了國家的網絡主權。

    從那以後,邪惡國家不約而同地響應了中共的網絡主權申明!

    哪裏有什麽網絡主權啊?完全是爲了自己不要臉的合法化啊!

    分析

    本文不是針對小白的!而且需要看完我在品蔥的基礎知識講解,並閲讀本樓的墻内鏈接,才能明白我接下來説的話。

    shadowsocks不走TLS協議,所以不用考慮這次TLS攻擊的影響

    v2ray協議是跑在vmess協議的,也不受TLS影響。回過頭看看v2ray的wss方式翻墻。

    v2ray有個配置項 ,禁用操作系統的根證書,只識別自己的指定的根證書,解決這類問題

    所以,GFW這次攻擊,和翻墻沒有一分錢關係

    那麽爲什麽要做這種事情呢?我覺得單純是爲了對境外網站推行白名單!

    也就是說,訪問境外的TLS的時候,用中共自己的根證書對中國人進行無差別中間人攻擊

    原理就和你電腦裏安裝了卡巴斯基一樣。不懂的人,可以安裝一個卡巴斯基,然後看看自己的瀏覽器訪問任何網站都是卡巴斯基的證書了!這個就是中共想要的效果!也正是2010年綠壩的初衷!

    很多人沒有用過卡巴斯基,那麽可以瞭解下你怎麽抓包Android的流量的,charles也好,wireshark也好,fiddler也好,道理都是一樣的!當年,Android的安全性很差,你自己簽個根證書導入自己的手機,然後用fiddler做中間人攻擊,就可以看到微信的明文傳輸了對吧!現在這個bug已經沒有了。我們也不知道微信怎麽通信了。

    中共的中間人攻擊,就像我們抓包分析微信的協議。像卡巴斯基掃描你上網在做什麽。這樣,我們https上網就和http上網一樣的效果了,完成了監控。而中共就像卡巴斯基。

  5. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @electron8964 #13 他寫小説挺好的,可惜共產黨封殺了他寫的小説。我不希望這些小説消失,便轉載到了品蔥,希望後人可以閲讀。

    我覺得,2000年左右,還可以讀到很多很多小説,後來就大肆封殺。我現在只能讀讀日本輕小説了。當年涼宮春日的小説挺火的

  6. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @electron8964 #16

    如果你看過我在品蔥的帖子,就知道我孩子都上大學了。。。

  7. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @electron8964 #5 你也看慕容雪村的書麽?我有他親筆簽名~ 我在品蔥發了慕容雪村的小説。你可以去看看

  8. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @小二 #2

    人話版本 :

    DNS協議的功能是通過域名查找對應的IP地址。DNS協議,明文跑在UDP協議下,端口寫死是53。

    因爲端口固定是53,所以特別好劫持。因爲是明文,所以GFW可以針對性劫持。

    攻擊方法:

    用戶瀏覽器發起DNS請求,比如www.google.com的ip是什麽?GFW全網抓包端口53的UDP流量

    捕獲了你的請求,然後僞造了一個假的DNS應答報文給你,IP當然是假的了。所以就上不了Google了。

    過去對品蔥就是這種封殺,僞造DNS。這個就是DNS劫持

    解決辦法:

    自己在本地的hosts裏增加正確的record就可以了。

    DNS over HTTPS

    就是把DNS請求通過https來發送,因爲https是加密的,所以克服了剛才的所有缺點。 DoH 有兩種方式,一種是發post請求,一種是發get請求。http的應答報文的body則是DNS的應答。

    通過調用DoHEncode把請求封裝成一個二進制的buffer請求。

    如果是post方式獲取DNS,則把剛才生成的buffer放到http的body裏,通過http二進制傳輸發送請求。

    如果是get方式獲取DNS,則把剛才的buffer通過base64編碼,放到http的查詢URI裏發送。

    得到的http應答報文根據DoHDecode函數,解析DNS應答,並返回給瀏覽器真實的ip地址。有效防止了DNS泄露,DNS劫持,等n多問題

    因爲大部分代碼都在拼http報文的head部分,就不去探究了。我們只用關心DOHEncode和DOHDecode兩個函數就好了。這兩個就是dns協議的拼裝和解析。其實也不用過度解讀。。。

  9. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @Phragmites #8 蒹葭蒼蒼?看頭像猜的。 你好啊

  10. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    @梅菲斯特 #6 那是因爲我沒葱發文章,才發水樓。發一個35葱,都沒法回本。

  11. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    SSLExp_EnableESNI

    tls13_ClientSetupESNI

    tls13_ServerDecryptEsniXtn

    再談下ESNI這個代碼,我不知道和TRR有什麽關聯,必須TRR打開,ESNI功能才能使用。感覺明明是獨立的兩個功能。

  12. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 回复文章

    火狐DoH和ESNI代碼講解

    GFW的問題,我這裏網絡不好,發文章比較卡。。

    通過TRR::OnDataAvailable函授收到應答報文,只看代碼On200Response,先不考慮異常情況

    DohDecode會解析應答報文,放到mDNS裏

    最後調用TRR::ReturnData 返回查詢結果,mHostResolver->CompleteLookup

    網絡不好,排版很累,沒法預覽。我不明白,這個地方爲什麽開啓了TRR才可以使用esni,不使用的話esni沒法啓用。爲什麽呢?

  13. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 发表文章

    火狐DoH和ESNI代碼講解

    吐槽1: 我不明白ESJ爲什麽要和真白萌發生衝突?

    吐槽2: 拜GFW所賜,我下了7個小時22次才完成火狐源碼下載

    因爲代碼剛下好,還來不及細讀,我先給個框架吧

    首先是DoH代碼部分

    參考代碼 netwerk/dns/TRR.cppTRR::SendHTTPRequest() 函數,

    雖然代碼很長,但是實際工作的就是拼一個https報文

    分兩種情況,只能選其中一種

    情況1:你選擇發送Get請求,DohEncode生成一個tmp,對tmp 進行base64編碼,追加到uri裏,調用httpChannel->AsyncOpen(this);發送HTTP請求

    情況2:你選擇發送Post請求,DohEncode生成一個body,通過uploadChannel->ExplicitSetUploadStream放到http的body部分,調用httpChannel->AsyncOpen(this);發送HTTP請求

  14. 霏艺Faye 图书管理员
    霏艺Faye   在小组 2049BBS 发表文章

    宇多田ヒカル 「First Love」

    youtu.be/NuKluSrbHik

    大家好,我是立紗Lisa !

    这些天,我老是想起自己的初恋,心情久久不能平复。我忘不了自己的过去,活在失恋的痛苦中出不来。每天醒来就和当初刚失恋一般。

    我不希望让自己的情绪在品葱影响其他人,我就临时离开品葱了,我也不知道自己什么时候回去。

    我只是觉得自己很难过,很难过。想找个地方说下自己的感受! 就是发泄下。

    我觉得爱情是一个很难形容的东西,如果可以两个人在一起,她是糖,很甜,回忆的都是暖暖的甜味。如果不能在一起,那么爱情就像毒药,每次回忆都痛苦无比。而且不论哪种结果,爱情的记忆,都是刻入灵魂,想忘忘不了。

    小二,记得当初是想给你留言,才打算注册品葱。

    当年品葱有个帖子,关于中国人是不是值得救。你说的话,我觉得很有道理。不论是不是中国人值得救,楼主他也没有为救中国人做过什么。我们都是*普通人*,不是任何人的*救世主*。我们没有救过任何人,有什么资格评价谁值得救,谁不值得救?我们也没有打算成为救世主去努力,不过就是网上发个帖子,碎碎念一下。

    但是真的去注册的时候,你已经不在了。。。