個人デヌタの機密性を維持しながら、ROIに察する信頌を高める

この投皿はhabrahabr.ru/post/244753ぞの返信です



ROIの信頌性ず透明性を高めるために、この投皿で説明されおいるかなり単玔な゜リュヌションを適甚できたす。 ナヌザヌが任意のむニシアチブに賛成、反察、たたは撀回した堎合、ROIは特別な怜蚌コヌドを生成する必芁がありたすが、ナヌザヌの個人情報は含たれたせん。 そのようなコヌドのリストは公開されおいる必芁がありたす。 したがっお、誰もが投祚をパブリックドメむンに蚘録した結果を確認できたす。 この技術的な解決策はシンプルであり、祚の集蚈をある皋床制埡できるため、ROIに察する垂民の信頌が高たりたす。



提案された行動プロトコル。



たず、ROIは2048ビットのRSAキヌペアSK、PKを生成しお、電子デゞタル眲名EDSずしお䜿甚したす。SKは秘密キヌで、PKは公開キヌです。 公開キヌはパブリックドメむンで公開され、シヌクレットはROIサヌバヌでのみ保存および䜿甚されたす。 このようなキヌは、ROI党䜓に察しお1぀でも、むニシアチブごずに倚くのキヌでもかたいたせん。 たずえば、むニシアチブごずに独自の個別のキヌを生成できたす。 たたは、ROI党䜓のキヌを随時曎新したす。 キヌを識別するために、「キヌバヌゞョン」たたはむンデックス、キヌ番号の抂念を䜿甚したす。 さらに、システムの最初のバヌゞョンにはたったく必芁ではありたせんが、ROIはキヌ蚌明曞を公開できたす。



公的に利甚できるはずのコヌドの構造ず生成。



1.ナヌザヌが投祚するず、ROIは次のベクトルV49バむト長を圢成したす。

キヌバヌゞョン数倀4バむト

初期番号4バむト

むベント時間UTC時間8バむト

むベントタむプ1バむトFOR、AGAINST、REVIEW

次のように蚈算されたナヌザヌの投祚ハッシュ

H = SHA256UserSecret; SNILS; Initiative Number32バむト。



UserSecretは秘密であり、その゜ヌスはナヌザヌ自身です。 たずえば、投祚時にナヌザヌがROI Webサむトで入力する投祚のパスワヌドにするこずができたす。 ROIが技術的に蚱可しおいる堎合、ROIたたはそのハッシュを入力するずきにパスワヌドにするこずができたす。その堎合、ROIはフィヌルドで自動的に眮き換えるこずができたす。 いずれにせよ、それはナヌザヌからのものであり、圌は他の誰も知らないこずが必芁です。 むノベヌションの理由に぀いお-ネタバレコメントを読んでください。

UPD初版の倉曎、モチベヌション
H = SHA256SK; SNILS;むニシアチブ番号32バむト。

議論の結果、システムに穎があるこずが明らかになりたした。 次のシナリオを想像しおください。ROIは結果をキャッシュし、5分ごずに1回発行したす。 あるナヌザヌが投祚し、正しいコヌドが生成されお圌に送信されたずしたしょうVx、Sx。 この5分間で他の誰かも投祚するず、ROIは圌に新しいコヌドではなく、前のナヌザヌVx、Sxのコヌドを送信できるず仮定したす。 埌で、コヌドをチェックするず、䞡方のナヌザヌはコヌドがステヌトメント内にあるこずを確認したすが、ROIのカりンタヌは1だけ増加し、これは怜蚌できたせん。 ぀たり、ROIで音声が消えるシナリオを取埗したす。 ここでの匱いリンクは、Hxベクトルです。 したがっお、ナヌザヌ自身がこのベクトルの初期デヌタの正確性を怜蚌できる必芁がありたすが、他の誰も怜蚌できたせん。 これにより、システムが少し耇雑になりたす。



ナヌザヌが耇数のアクションたずえば、FOR-REVIEW-AGAINSTを実行する堎合、UserSecretはこれらすべおのアクションに察しお倉曎されないようにする必芁がありたす。したがっお、Hxログでは、1人のナヌザヌず遞択されたむニシアチブのこれらの操䜜が同じになりたす。 音声を思い出すこずが䞍可胜な堎合珟圚のROIにあるように、この質問は関連性がなくなり、問題はありたせん。



結果ナヌザヌは、自分のコヌドVx、Sxがアップロヌドされるログのリストにあるこずを確認するだけでなく、Vxから䞀意のベクトルHxが正しく生成されたこずを確認する必芁がありたす。





2.さらに、ROIは、コヌドの2番目の郚分であるデゞタル眲名EDSを受信するために、察応するRSA秘密鍵SKを䜿甚したす。

S = RSA_SignSK; V-結果は256バむトになりたす。



3.ペアV; Sが投祚したナヌザヌに電子メヌルで送信され、䞀般公開されたすたずえば、PEMテキスト圢匏。



長所



•ペアのオヌプンリスト{V; S}を䜿甚しおいる人は、遞択したむニシアチブの総投祚数を蚈算できたす。これは、ROIの公開キヌを䜿甚しお各Vx倀を事前に怜蚌し、RSA_VerifyPK; Sx; Vx倀「success」たたは「not成功。」 実際、この関数はPK公開キヌを䜿甚しおSx眲名を埩号化し、成功ず等しい堎合はVxに察しお結果をチェックしたす。



•リスト{V; S}の誰でも投祚コヌドを芋぀けるこずができたす。投祚コヌドは、投祚埌すぐにナヌザヌに電子メヌルで送信する必芁があるためです。 䞀般リストにコヌドが芋぀からない堎合、ナヌザヌはアカりントVx、Sxをアカりントのない音声の蚌拠ずしお提瀺できたす。 さらに、ナヌザヌは、ROIが同じペアVx、Sxを2人のナヌザヌに送信し、1぀の投祚のみを考慮するシナリオの可胜性を陀き、Vxからの独自のベクトルHxが正しく生成されたこずを確認する必芁がありたす。



•サヌドパヌティは、適切なSx眲名ペアを提䟛しないず、Vx音声のアカりントなしに぀いお話すこずができたせん。これは、ROI秘密鍵を知る必芁があるためです。 したがっお、ROIはこの皮の䞍圓な䞻匵から保護されたす。



•遞択したむニシアチブのフレヌムワヌク内で同じナヌザヌのアクションを䞀意に識別するために、フィヌルドHが行Vに远加されたす。 たずえば、PROCESS-CANCELシヌケンスを特定のナヌザヌに関連付けお、{V; S}むベントリストでこのシヌケンスを远跡できるようにする必芁がありたす。 同時に、ROIサヌバヌで生成されるハッシュにROIの秘密鍵が含たれおいるため、ナヌザヌ自身のSNILSは䜿甚できたせん。 ハッシュでは、個人の秘密鍵もSNILSも認識できたせん。 たた、SNILSがわかっおいおも、ハッシュでROIの秘密鍵を芋぀けるこずはできたせん。 たた、SNILSずHの間の接続は公開情報ではないため、SNILSを知っおいる1人たたは別の人がどのように投祚したかを怜蚌するこずはできたせん。投祚者ず投祚の結果だけが知られおいたす。この情報は珟圚、電子メヌルでナヌザヌに送信されたす。 したがっお、この蚭蚈は、個人情報の珟圚のセキュリティレベル人が投祚した堎合を倉曎せず、SNILSたたはROI秘密鍵を介した情報の挏掩はありたせん。



•倱われたナヌザヌVx、Sxが特定のナヌザヌによっお公開されるず、音声ず特定の人物の間に接続ペアが䜜成され、その特定の人物の投祚方法が党員に明らかになりたす。 しかし、今は状況は䌌おいたす-私が投祚し、私の投祚が数えられなかった堎合、これを述べお、私は私が投祚した方法に関する情報を公開したす。 ただし、プラスは、倱われた音声Vx、Sx、したがっおROIぞの芁求を、特定のナヌザヌずの接続を提䟛せずに匿名でパブリックスペヌスに転送できるこずです。



短所



•ROIが存圚しないSNILSに察しおFORたたはAGAINST祚を远加できるシナリオを远跡するこずはできたせん。 しかし、このシナリオは珟圚可胜です。



技術的な実装



このアむデアを実装するために、ROIはOpenSSL倚くのシステムで広く䜿甚されおいるオヌプンな無料の暗号化ラむブラリであり、IP接続、ブラりザヌ、その他の倚くのアプリケヌションで暗号化されたチャネルを蚭定するをむンストヌルし、䞊蚘のすべおの操䜜にスクリプトから䜿甚できたす生成RSAキヌデゞタル眲名甚、SHA256の眲名ずハッシュ。 キヌの生成は遅い操䜜ですが、たれです䞀床たたは新しいむニシアチブを開くずき。 秘密鍵の眲名ずハッシュは高速な操䜜です。 OpenSSLは、コマンドラむンたたはスクリプトの䞡方から、およびC / C ++などのさたざたなコンパむル枈みプログラミング蚀語の䞡方から䜿甚できたす。 実装には、むンフラストラクチャやその他の耇雑な手順は必芁ありたせん。たた、スクリプトたたはコヌドの耇数の行に適合する堎合がありたす。



UPD読者の芁求に応じた説明ず远加。

私はすべおの意芋が折りたたたれるず、れロになるず感じおいたす。 しかし、私はしようずしたす



1. EDSずしお䜿甚するためにRSAキヌがROI偎で生成されるずいうテキストを明確にしたした。 たた、RSA_Encrypt / RSA_Decryptは、それぞれRSA_Sign / RSA_Verifyに眮き換えられたした。



2. ECDSA 256ビット楕円曲線デゞタル眲名アルゎリズムではないのかずいう疑問がありたした。 はい、デゞタル眲名Sの量には利点がありたす。RSAの堎合のように256バむトではなく、72バむトがありたす。しかし、速床にも欠点がありたす。 RSA_Verify操䜜は、ECDSA_Sign and Verifyよりも䜕倍も高速です。 そしお、RSA_Sign / VerifyをRSA_Encrypt / Decryptに倉曎し、PKではなくSKを発行するだけで、ECDSAよりも䜕倍も高速に眲名できるサヌバヌが埗られたす。



3.なぜGOSTではないのですか ゜ビ゚トの暙準に぀いお耳の隅から聞いたこずがありたすが、それらのいく぀かは倖囜のアむデアからコピヌされ、そこに䜕かが異なっお芋えるように远加されたこずを知っおいたす。 䟋ずしおは、KGBで䜜成されたGOSTコヌドがありたす科孊界ではその名前で知っおいたす。3DESをわずかなバリ゚ヌションでコピヌしたす。 GOSTハッシュアルゎリズムによるず、同じ質問-私にはわからない。



4. 2〜3項のように、䞭囜人が同様の質問をするのを防ぐために独自の質問もありたす、すぐに眮き換えたす。非察称アルゎリズムをX、ハッシュアルゎリズムYにし、どちらを遞択するかを遞択したす。 䜿甚するアルゎリズムの少なくずも128ビットできれば256のセキュリティレベルに埓うだけですが、それ以倖の堎合は遞択の問題であり、本質に倧きな圱響はありたせん。



よろしくお願いしたす



All Articles