MAC 碼(訊息認證碼)
MAC碼, 英文全稱為message authentication code, 是用於為一個message 提供 integrity 和authenticity 的assurance (保證)的 一段短的資訊。
所謂的integrity assurance 的意思就是避免或者檢測我們發的訊息被一個attacker 修改了。 所謂的authenticity assurence 就是確認message的來源。
MAC的原理如下:
對於上圖, 解釋如下:
sender 要向receiver 傳送一個message, 首先第一不, 這個message 需要經過一個MAC 演算法(注意需要祕鑰 key)用於產生這個message 對應的MAC碼。 然後message 和其對應的MAC碼一同發給receiver.。 接受者將收到的message同樣的經過MAC演算法, 通過使用同一個祕鑰, 產生收到的訊息對應的MAC碼。 然後將這個MAC碼和 收到的MAC碼相比, 如果相同, 說明接受者可以safely assume 收到的訊息沒有被一個attacker 改動。
然而, MAC 不能抵擋住 replay attacks(重放攻擊)。 所以, 為了抵擋住重放攻擊, 我們的message中必須含有保證this same message 只能被髮送一次的資料資訊。 例如, 我們可以使用時間戳(time stamp)。 否則an attacker could — without even understanding its content — record this message and play it back at a later time, producing the same result as the original sender.
相關文章
- 現代密碼學之加密雜湊函式與訊息認證碼密碼學加密函式
- 公鑰加密、數字簽名、訊息認證加密
- GKD認證指令碼指令碼
- redis配置認證密碼Redis密碼
- 秒懂雲通訊:號碼認證拍了拍你
- Giraph原始碼分析(三)—— 訊息通訊原始碼
- OAuth 2.0 授權碼認證OAuth
- RabbitMq之訊息確認MQ
- Rabbitmq可靠訊息投遞,訊息確認機制MQ
- Laravel——驗證碼認證學習記錄Laravel
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- 直播原始碼網站,訊息圖示在收到訊息時展示訊息條數原始碼網站
- MySQL密碼加密認證的簡單指令碼MySql密碼加密指令碼
- Redis使用認證密碼登入Redis密碼
- redis設定認證密碼操作Redis密碼
- SSH認證免密碼登入密碼
- RabbitMQ 訊息確認機制MQ
- 作業系統認證與ORACLE密碼檔案認證方式作業系統Oracle密碼
- 無密碼身份認證,跟密碼說再見!密碼
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- 微信開發中的訊息驗證與訊息回覆
- Django(64)頻率認證原始碼分析與自定義頻率認證Django原始碼
- 用程式碼理解 ObjC 中的傳送訊息和訊息轉發OBJ
- 用程式碼理解ObjC中的傳送訊息和訊息轉發OBJ
- 1.6.5. 使用密碼檔案認證密碼
- 數字認證:密碼上雲之道密碼
- SpringSecurity認證流程原始碼詳解SpringGse原始碼
- drf 認證校驗及原始碼分析原始碼
- spring security 認證原始碼跟蹤Spring原始碼
- 傳送kafka訊息的shell指令碼Kafka指令碼
- Android訊息機制原始碼分析Android原始碼
- 密碼安全和無密碼身份認證那些事兒密碼
- 密碼學系列——訊息摘要(c#程式碼實操)密碼學C#
- 訊息佇列概念與認知佇列
- Storm保證訊息處理ORM
- 訊息佇列之如何保證訊息的可靠傳輸佇列
- 訊息佇列-如何保證訊息的不被重複消費(如何保證訊息消費的冪等性)佇列
- Mac視訊轉碼器EditReady for MacMac