HTTPS SSL 用戶端程式的錯誤判斷處理
這篇文章主要講解用戶端程式需要處理 HTTPS 錯誤的四種類型
HTTPS (SSL/TLS)的普及, 解決對於認證網站真實性的判別與傳輸過程中數據的加密,
但是, 另一方面, SSL 必須仰賴於 Certificate 證書的有效性與合法性,
瀏覽器內建常見的 HTTPS 錯誤警告處理, 告知使用者CA證書的有效性,
但是如果使用者只是忽略跳過, 還是會遭受到釣魚網站的攻擊,
同樣情況, 對於用戶端程式或是手機App開發也是, 如果開發人員只是忽略HTTPS所回傳的錯誤,
當遇到駭客中間人攻擊, 偽造Certificate 證書時, HTTPS所防護的網站認證機制與加密傳輸其實自然被駭客攻破了
1. Certificate 證書已經過期失效或是尚未啟動
2. 證書的Host Name與URL不符
3. CA不可信任
4. 未知的錯誤
Android Java 處理範例程式
[pastacode lang=”java” message=”” highlight=”” provider=”manual”]
private String createErrorMessage(SslError error) {
SslCertificate cert = error.getCertificate();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
StringBuilder result = new StringBuilder().append("The site's certification is NOT valid. Connection was disconnected.¥n¥nError:¥n");
switch (error.getPrimaryError()) {
case SslError.SSL_EXPIRED:
result.append("The certificate is no longer valid.¥n¥nThe expiration date is ").append(dateFormat.format(cert.getValidNotAfterDate()));
return result.toString();
case SslError.SSL_IDMISMATCH:
result.append("Host name doesn't match. ¥n¥nCN=").append(cert.getIssuedTo().getCName());
return result.toString();
case SslError.SSL_NOTYETVALID:
result.append("The certificate isn't valid yet.¥n¥nIt will be valid from ").append(dateFormat.format(cert.getValidNotBeforeDate()));
return result.toString();
case SslError.SSL_UNTRUSTED:
result.append("Certificate Authority which issued the certificate is not reliable.¥n¥nCertificate Authority¥n").append(cert.getIssuedBy().getDName());
return result.toString();
default:
result.append("Unknown error occured. ");
return result.toString();
}
}
}
[/pastacode]
請問您知道keylib是什麼嗎???
我上網搜尋但還是不太明白….
你好
我的理解 KeyLib 也是自動化測試工具的一種
跟 FireFox Selnium IDE是同一種類型的工具
請問您怎麼看到這工具的呢
公司有需要…
但我不了解Keylib
所以算是比較好用嗎???
因為網路上也沒有範例可以參考
要如何比較FireFox跟Keylib哪個好用
(頭痛ING….)