[英]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.