簡體   English   中英

protobuf獲取一些數據的安全性如何?

[英]How secure the protobuf is to get some of the data out?

  1. 沒有任何加密,如果收件人有序列化的Protobuf文件但沒有生成的Protobuf類(他們無法訪問定義其結構的.proto文件),他們是否有可能獲得Protobuf中的任何數據二進制文件?

  2. 如果他們可以訪問.proto文件的一部分(例如,文件中只有一個相關的message ),他們是否可以從整個文件中獲取部分數據,同時跳過其他未知部分?

  1. 是的,一點沒錯; protoc工具可以幫助解決這個問題(參見:-- --decode_raw ), https--decode_raw也是如此 - 所以它根本不應該被視為“安全”
  2. 是的,絕對 - 這是協議中內置的關鍵部分,允許消息可擴展,以便他們可以解碼他們理解的位,並忽略或僅存儲(對於往返或“擴展”字段)它們不是的位了解

protobuf不是安全設備; 對於擁有正確工具的人來說,它與xml或json一樣可讀,但有一個小問題是如何解釋某些值; 但是:你可以推斷,猜測和逆向工程

好的,我找到了這個頁面https://developers.google.com/protocol-buffers/docs/encoding

該消息丟棄所有名稱,只是一對鍵號和值。 生成的類可能會為安全讀取這些數據提供一些保護,並且無法讀取未知數據。 (果然,因為生成的類是從已知結構生成的.proto文件)

但如果我是攻擊者,我可以引用Encoding頁面並嘗試找出二進制文件中的哪個區域對應於哪些數據。 例如,在更改某些數據后,很容易發現varint。 然后繼續編寫我自己的.proto文件來攻擊這個未知數據,甚至可以選擇性地讀取部分二進制文件的自定義二進制閱讀器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM