簡體   English   中英

Apache中每個HTTP請求的不可否認性

[英]Non-repudiation of each HTTP request in Apache

出於科研項目的目的,我想在Apache中為來自遠程客戶端的每個HTTP請求實現不可否認的安全服務。 為此,我想使用非對稱密碼學。 我假設Apache服務器存儲每個合法客戶端的證書(帶有公鑰)。 客戶端安全地存儲其私鑰。

在請求中,在選定的HTTP標頭字段(例如IP地址,請求的URL)上將有客戶端的簽名。 簽名將放置在GET或POST參數中。 在每個請求之后,都必須將不可否認記錄寫入日志(我選擇了Apache的access.log-默認情況下,它存儲了請求的URL,IP地址,時間等)。

為了執行簽名檢查和訪問控制,我想將Mod_rewrite模塊與RewriteMap和外部腳本一起使用來完成簽名實現和訪問控制。 這是我到目前為止所做的:

mod_rewrite規則:

    RewriteEngine on
    RewriteMap d2u "prg:/var/www/script/map-script2.pl"
    RewriteCond "${d2u:%{QUERY_STRING}}" =false
    RewriteRule ^ - [F]

map-script2.pl:

#!/usr/bin/perl
$| = 1; # Turn off I/O buffering
while (<STDIN>) {

#here will be signature and other data extraction from the query string and veryfication

     if( signature verification result ){
        print "true\n";
     }
     else{
        print "false\n";
     }
}

還有其他方法可以做到這一點(使用外部腳本可能存在效率問題)?

您是否看到我的HTTP請求不可否認性解決方案的任何缺點?

那將是相對較低的性能。 以C作為apache模塊或以Lua作為mod_lua腳本,會更加復雜,但性能更高。

暫無
暫無

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

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