![](/img/trans.png)
[英]How to get only data (exported) fields from protobuf struct with reflect?
[英]How secure the protobuf is to get some of the data out?
沒有任何加密,如果收件人有序列化的Protobuf文件但沒有生成的Protobuf類(他們無法訪問定義其結構的.proto文件),他們是否有可能獲得Protobuf中的任何數據二進制文件?
如果他們可以訪問.proto文件的一部分(例如,文件中只有一個相關的message
),他們是否可以從整個文件中獲取部分數據,同時跳過其他未知部分?
protoc
工具可以幫助解決這個問題(參見:-- --decode_raw
), https : --decode_raw
也是如此 - 所以它根本不應該被視為“安全” protobuf不是安全設備; 對於擁有正確工具的人來說,它與xml或json一樣可讀,但有一個小問題是如何解釋某些值; 但是:你可以推斷,猜測和逆向工程
好的,我找到了這個頁面https://developers.google.com/protocol-buffers/docs/encoding
該消息丟棄所有名稱,只是一對鍵號和值。 生成的類可能會為安全讀取這些數據提供一些保護,並且無法讀取未知數據。 (果然,因為生成的類是從已知結構生成的.proto
文件)
但如果我是攻擊者,我可以引用Encoding頁面並嘗試找出二進制文件中的哪個區域對應於哪些數據。 例如,在更改某些數據后,很容易發現varint。 然后繼續編寫我自己的.proto
文件來攻擊這個未知數據,甚至可以選擇性地讀取部分二進制文件的自定義二進制閱讀器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.