• <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>

            戰(zhàn)魂小筑

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

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

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

            首先我們來看下

            RSA的幾個標(biāo)準(zhǔn)用法

            非對稱加密解密

            假設(shè)A要把內(nèi)容傳輸給B

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

            2. A用B的公鑰加密內(nèi)容, 并把密文內(nèi)容傳輸給B

            3. B用密鑰解密

            驗證

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

            假設(shè)A有內(nèi)容,  B要驗證內(nèi)容確實由A發(fā)出

            1. A生成公鑰和密鑰

            2. A將內(nèi)容做一個hash, 把hash碼用自己的密鑰加密并把這段密文發(fā)給B

            3. B用A的公鑰對密文進(jìn)行驗證, 即可確認(rèn)密文是否由A發(fā)出

             

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

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

            非對稱當(dāng)對稱算法加解密

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

            openssl_public_decrypt

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

             

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

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

             

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

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

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

             

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

            只不過用RSA感覺很高級…

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

             

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


            評論

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

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

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

            无码AV中文字幕久久专区| 国产精品一区二区久久国产| 久久天天日天天操综合伊人av| 尹人香蕉久久99天天拍| 99久久99久久| 99精品国产免费久久久久久下载 | 精品久久777| 国产成人综合久久精品红| 97久久超碰成人精品网站| 国产精品久久久香蕉| 国产精品成人99久久久久 | 很黄很污的网站久久mimi色 | 久久青青草视频| 久久本道久久综合伊人| 99久久免费国产精精品| 亚洲级αV无码毛片久久精品| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久精品免费大片国产大片| 国内精品九九久久久精品| 久久国产免费直播| 国产欧美久久久精品影院| 久久久91人妻无码精品蜜桃HD| 99久久精品国产免看国产一区| 亚洲精品国产美女久久久| 国产精品乱码久久久久久软件 | 漂亮人妻被黑人久久精品| 国产一区二区久久久| 欧美久久综合九色综合| 久久无码精品一区二区三区| 久久精品国产一区二区电影| 天天爽天天爽天天片a久久网| 国产精品久久久久9999| 久久精品国产亚洲网站| 99久久精品免费看国产一区二区三区 | 人妻无码αv中文字幕久久| 亚洲女久久久噜噜噜熟女| 久久久久久精品免费免费自慰| 亚洲精品乱码久久久久久自慰| 久久久久亚洲精品无码蜜桃| 成人免费网站久久久| 久久久WWW成人免费精品|