
因為業務需要近來在對接一個線上的電子簽章平臺, 簽完的效果就是在PDF上蓋一個紅色的章,內部程序溝通中發現,對這個紅色章背后的證明邏輯,技術原理,能夠了解的比較清楚的人還是很少的,甚至連鍋叔自己,對其中的一些細節也感覺有些模糊不清,經常一時想不起,不能對答如流-_-||,
簽名證書類的技術博文其實很多, 但有個問題,很多只提技術原理,不提證明邏輯,證明邏輯需要自己去領悟, 于是在這里再回憶梳理下,會著重從證明邏輯來說,補充下其他博主日常省略的部分-_-|| ,做個分享,也順便備忘,
一、簽字畫押的邏輯
日常生活中大家應該都有簽字,按手印的經驗,對簽字按手印的意義也十分清楚,就是對簽字內容的認可,接受,不接受的合同肯定不能隨便簽,手印也不能隨便按,例如“你欠我幾十個W”這種,肯定是不會隨便簽的,同樣我寫一個“你欠我幾十個W”這樣的欠條如果沒有你的簽字,法官大人是不會認可的,如果我幫你簽一個字,筆跡鑒定多半會被識破,我更沒有你的指紋,這其中其實就隱含了一個證明邏輯問題,
因為:
1. 別人的簽字,指紋與你的不可能相同
2. 簽字,指紋不可能在紙張上被復制,粘貼
3. 這張紙上有你的簽字,手印
所以:
你本人肯定是接觸過這張紙,看過了紙上的內容,簽字表示了對內容的認可,
抽象概括下:
1. 筆跡與指紋是唯一的,并且與簽字畫押的人是天然系結的,不可分離的,即可以代表本人
2. 按的指印,寫的簽名,與紙張上的其他內容,是系結的(因為同一張紙上,無法拼接,復制), 即 簽名與內容是系結的
因此,可能證明筆記指紋所屬人,對紙上上內容的認可,
二、一些安全基礎
1.非對稱加密
一種基于數學原理(不需要懷疑)的演算法,生成一對秘鑰A,a,特性:
- A與a 不相同
- 由A加密的內容,能且只能被a成功解密,反之亦然,
- 由A不能得出a,反之亦然,
2.數字摘要
一種基于數學原理(不需要懷疑)的演算法,對任意長度的內容 A 進行計算后,得出一個固定長度的內容B ,特性:
- 當A內容發生變化后,用該演算法重新計算得出的b,與B一定不同,
- 由B 不能計算出A
上面兩個東西可以理解為客觀規律,下面兩個是對上面客官規律的利用,用于解決實際問題,
3.數字簽名
作用:與紙質簽名對應, 期望實作紙張上簽字畫押的效果, 即證明生物上的一個人,對電子檔案內容的認可,
實作邏輯:
1. 小明自己偷偷的生成一對兒秘鑰AB,然就他對其他人說 “我生成了一對非對稱秘鑰AB,B除了我本人誰都不會知道,打死我,我也不會說”,即B這個秘鑰只有小明知道,對于不認識小明的人來說,可以認為掌握秘鑰B的人就是小明,
2. 對電子檔案的內容執行 數字摘要演算法,得到摘要 H, 這個H 與檔案內容即唯一系結,
3. 小明使用自己藏好的秘鑰B,對上面的摘要結果 H,進行加密,得到了一個秘鑰B加密摘要H后的加密摘要 HB. 并把HB附在了檔案后面. 代表小明的秘鑰B,與代表檔案內容的H被關聯到了一起,因為只有小明可以用B對H進行加密,所以HB的產生,代表了小明對檔案內容認可,
4. 其他人拿到這個據說是小明“簽過字”的檔案后,拿出前面小明公開給大家的B的對應秘鑰A,用公鑰A去解密負載檔案后的加密摘要HB, 根據非對稱加密的特性,如果能成功解密,則證明該密文一定是A的配對秘鑰B加密的,而B只有小明知道,所以這個簽名肯定是小明本人簽的,
5.小明簽字的內容即H對應的內容,其他人會再對檔案做一次摘要計算,得到一個當前檔案摘要h, 如果解密后的摘要H 與 當前檔案內容的摘要h一致則證明,小明用私鑰B加密(簽名)的內容就是這份檔案, 如果h 與 H 不同,根據 數字摘要的特性,證明,檔案已經被修改過了,小明簽的檔案內容不是現在的這一個,
4.數字證書
作用: 筆跡,指紋與其所屬的人的關系是不需要證明的,天然一體,無法分離,不可能被盜被搶,但上面說的數字簽名的邏輯中,對代表小明的私鑰B 與小明并不是無法分割的,在實際生活中,小明簽完了,說這個秘鑰B,不是我所有的,跟我沒關系,這個秘鑰對AB是小芳生成持有的, 你們有問題去找小芳去,或者,對于一些不認識小明的人,他們也無法識別,面前的這個小明是不是就是傳說中的小明,所以需要有一種機制來固定“秘鑰與持有人的關系”,數字證書與公司公章體系對應,擁有公司公章的,就代表公司行為,同樣,持有證書中公鑰所對應私鑰的人,就是向我申請證書的小明——注意與現實中證書,證件含義不同,是持有私鑰的,而不是擁有證書的,電子證書是數字形式,是可以任意復制分發的,證書中不含私鑰,
實作邏輯:
1: 小明為了廣而告之“上面擁有B秘鑰的就是小明我本人”,這件事,小明把它的公鑰A 和 他的身份證 和錢,戶口本提交給了一個全球說了算很有威望的組織,這個組織檢查了下材料,確認小明確實是 小明,而且驗證了小明確實掌握所提交的公鑰A對應的私鑰B后,于是給他了一份證明, 證明上說,茲證明, 小明 持有 公鑰A 對應的私鑰B——有私鑰B的就是傳說中的小明, 他的身份證戶口本我都檢查過了,
2:在小明申請證書前,這個全球很有威望的組織,自己也生成一對秘鑰對,X/Y. 其中的Y 打死也不跟其他人說,其中的公鑰X,通過各種非常可靠的渠道,通知到各國各省各轄區派出所,已經讓世界上所有人相信,擁有公鑰X對應的私鑰Y的人,就是這個全球權威組織,
3:權威組織在給小明生成的證書上,也有他的私鑰X結合證書內容摘要H,生成了HX的數字簽名,
4:人民群眾看到這個證書時,可以像驗證小明簽名一樣驗證權威機構的簽名,如果驗證沒問題,那證明,小明擁有A公鑰對應的B私鑰這件事情,是有一個非常可信的人給他背書的,不需要懷疑——即固定了小明與私鑰B的關聯,
* 證書的驗證實際情況會涉及多層CA,即證書鏈,會附有多個證書,依次證明,最頂層的證書是自簽名,自己簽發給自己,其公鑰是通過可靠途徑通知給所有人的,證書鏈的中間證書需要秘鑰用途包含 Certificate Signing(證書簽發)——權威機構授權的可以簽發證書的機構的數字證書,需要驗證證書的場景,如瀏覽器,閱讀器,會將頂層的根證書預先放置于程式內,
三、PDF電子簽章原理(云簽)

pdf 的電子簽章,顯然那個紅色的圖形章,只是一個形式,是不具有任何效力的,因為誰都可以做一個圖形加上去,背后顯然也是依賴于數字簽名和證書技術的,但目前的電子簽章平臺,已經封裝的非常高級了, 使用程序中基本不涉及數字簽名底層技術,可以對數字簽名,數字證書完全無感,但方便的同時,也帶來了隱患,后面會討論,
PDF云簽的流程原理:
1. 百度電子簽章,選個電子簽章平臺進去注冊賬號,企業實名認證,
—— 平臺用你提供的資訊,幫你自動去CA 申請了對應的數字證書,私鑰保存在了簽章平臺,
2. 發起一個簽署流程,提供一個待簽署 pdf檔案 以及 涉及到的簽署方的聯系人,
—— 上傳的pdf 檔案會通過短信等方式,引導需要簽檔案的各方到平臺鏈接,進行簽署操作,相關的簽署方,都要有相應的數字證書(么有的,在流程中引導認證),平臺使用各簽署方私鑰對檔案內容摘要進行簽名,同時將數字證書和加密摘要附在PDF檔案的簽名區域中,pdf 檔案格式是支持數字簽名的, 可以保證符合規范的pdf 閱讀器,都能正常的顯示,校驗簽署資訊,同時,檔案上也會加上一個視覺形式上的圖章圖片,
3. 取回簽署檔案,pdf瀏覽器打開,驗證簽名,
—— pdf 檔案閱讀器打開簽名檔案后對簽名及證書進行驗證,通過證書證明,簽署方的真實身份及確實持有對應公鑰,用簽署方公鑰驗證,簽署方私鑰正確及摘要未修改,
四、電子簽章效力風險
從上面的PDF 云簽流程中可以看出,整個流程中基本沒有體現數字簽名的摘要及加密簽署程序,都是平臺封裝完成的,鍋叔認為對應的也引入了風險,
1. 數字證書并非由本人直接申請,如果在用戶協議中沒有很好的約定及取證,在證明用戶與證書關聯性方面可能存在瑕疵,用戶可以否認從未申請過數字證書,
2. 私鑰由簽章平臺生成并保管,理論上可以代表用戶隨意簽署任何檔案,私鑰不是僅由用戶掌握,
《中華人民共和國電子簽名法》
第十三條電子簽名同時符合下列條件的,視為可靠的電子簽名: (一)電子簽名制作資料用于電子簽名時,屬于電子簽名人專有; (二)簽署時電子簽名制作資料僅由電子簽名人控制; (三)簽署后對電子簽名的任何改動能夠被發現; (四)簽署后對資料電文內容和形式的任何改動能夠被發現,
寫到這里,歡迎討論,指正, ;-)
本文來自博客園,作者:鍋叔
轉載請注明原文鏈接:https://www.cnblogs.com/uncleguo/p/16542731.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/500780.html
標籤:其他
上一篇:紅藍對抗經驗分享:CS免殺姿勢
下一篇:Kubernetes 筆記
