• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            戰魂小筑

            討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

            最近接入pp助手的服務器端支付, 按照PP官方提供的文檔來看, 需要服務器做RSA的驗證.

            首先我們來看下

            RSA的幾個標準用法

            非對稱加密解密

            假設A要把內容傳輸給B

            1. B生成RSA的公鑰和密鑰, 這是成對出現的, 密鑰由B保存, 把公鑰告訴A

            2. A用B的公鑰加密內容, 并把密文內容傳輸給B

            3. B用密鑰解密

            驗證

            證明某個內容是你發的, 而不是被別人冒名頂替, 例如git的push中就帶有這個功能

            假設A有內容,  B要驗證內容確實由A發出

            1. A生成公鑰和密鑰

            2. A將內容做一個hash, 把hash碼用自己的密鑰加密并把這段密文發給B

            3. B用A的公鑰對密文進行驗證, 即可確認密文是否由A發出

             

            可以看出, 兩種用法都是典型的非對稱用法

            但PP助手卻干了件神奇的事情:

            非對稱當對稱算法加解密

            在PP SDK官方文檔里, 我們找到了PHP語言的驗證方法, 方法里使用了這樣一個API

            openssl_public_decrypt

            從官方文檔看得出這個使用openssl的算法庫

             

            類似的, 還有Java, C++, Python語言的處理方法

            其中, C++也是用的openssl, Python則是需要預編譯C庫,在Ubuntu下需要手工patch M2Crypto的_ssl.c文件.

             

            先不說這些非正規的編譯,patch方法會造成多大的問題, 單就這個用公鑰解密就很蛋疼

            從之前的RSA算法中了解, 只有對公鑰進行驗證的方法, 也就是只能得到是還是不是的結果. 但PP的SDK則要求必須用公鑰解密…

            解出的數據為一段json, 以對比是否有訂單篡改.

             

            那么這種做法就等效于, 用最簡單的異或+一個公鑰進行訂單加密, 然后同樣用這個公鑰進行解密

            只不過用RSA感覺很高級…

            這種做法一旦公鑰在PP助手服務器或者玩家的開發服務器, 甚至源代碼泄露, 那么馬上就有很大的偽造訂單的危險

             

            我把這個做法發給朋友看, 他們說, 其實PP助手的開發者只管用了RSA, 跟傳輸不是明文就好了, 至于什么信息安全, 都是屁!

            posted on 2015-10-12 14:27 戰魂小筑 閱讀(3295) 評論(3)  編輯 收藏 引用 所屬分類: 游戲開發技術網絡 服務器技術

            評論

            # re: pp助手服務器端支付的RSA的奇葩公鑰解密設計 2015-10-18 22:35 非仙
            不對吧?以前研究過RSA,確實可以用私鑰加密 公鑰解密的,并且可以防止篡改  回復  更多評論
              

            # re: pp助手服務器端支付的RSA的奇葩公鑰解密設計 2015-10-28 19:11 溪流
            具體“PP助手”的方案是什么,文中沒有具體說呀
            如果是要防止被改,確實應該私鑰加密公鑰解密,因為別人造不出你手頭的公鑰能解的數據(其實相當于簽名啦,只是沒有先hash而已);如果要防止被偷看,那就應該是公鑰加密私鑰解密,因為別人解不出可讀數據  回復  更多評論
              

            # re: pp助手服務器端支付的RSA的奇葩公鑰解密設計 2015-10-29 10:50 戰魂小筑
            公鑰加密也是可以做的, 最后只有按照他們的方法來做, 雖然我們不是太愿意在golang里引入cgo帶openssl公鑰解密  回復  更多評論
              

            亚洲AV无码一区东京热久久| 亚洲国产天堂久久久久久| 无码人妻久久一区二区三区免费 | 亚洲乱亚洲乱淫久久| 蜜臀av性久久久久蜜臀aⅴ | 无码人妻久久一区二区三区 | 亚洲午夜精品久久久久久app| 久久精品国产福利国产琪琪| 蜜桃麻豆www久久国产精品| 亚洲国产一成久久精品国产成人综合| 波多野结衣久久一区二区| 久久久久久久久无码精品亚洲日韩 | 国内精品久久久久久久久| 中文字幕久久亚洲一区| 97精品伊人久久大香线蕉app| 久久天天躁狠狠躁夜夜2020老熟妇| 亚洲一区精品伊人久久伊人| 久久大香香蕉国产| 一本色道久久综合| 久久狠狠一本精品综合网| 狠狠色丁香久久综合五月| 亚洲国产成人久久综合一区77| 中文字幕一区二区三区久久网站| 久久夜色精品国产亚洲| 97精品伊人久久久大香线蕉| 久久99精品久久只有精品| 99精品国产综合久久久久五月天 | 国产精品99久久久久久宅男小说| 精品久久久久久久久午夜福利| 香蕉99久久国产综合精品宅男自| 狠狠久久亚洲欧美专区 | 久久亚洲国产精品成人AV秋霞| 久久香蕉一级毛片| 国产成人精品久久二区二区| 久久永久免费人妻精品下载| 久久久久久久久波多野高潮| 久久久久亚洲AV无码专区首JN| 久久亚洲AV无码精品色午夜麻豆 | 国产激情久久久久影院老熟女免费 | 久久天天婷婷五月俺也去| 久久99精品久久久久久秒播|