• HTTPS SSL 用戶端程式的錯誤判斷處理

    這篇文章主要講解用戶端程式需要處理 HTTPS 錯誤的四種類型

     

    HTTPS (SSL/TLS)的普及, 解決對於認證網站真實性的判別與傳輸過程中數據的加密,

    但是, 另一方面, SSL 必須仰賴於 Certificate 證書的有效性與合法性,

    瀏覽器內建常見的 HTTPS 錯誤警告處理, 告知使用者CA證書的有效性,

    但是如果使用者只是忽略跳過, 還是會遭受到釣魚網站的攻擊,

    同樣情況, 對於用戶端程式或是手機App開發也是, 如果開發人員只是忽略HTTPS所回傳的錯誤,

    當遇到駭客中間人攻擊, 偽造Certificate 證書時, HTTPS所防護的網站認證機制與加密傳輸其實自然被駭客攻破了

    1. Certificate  證書已經過期失效或是尚未啟動

     

    Certificate CA

    2. 證書的Host Name與URL不符

    3. CA不可信任

    4. 未知的錯誤

    Android Java 處理範例程式

    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();
       }
    }
    }

    Posted by Tony @ 7:12 am

  • 3 Responses

      • 你好
        我的理解 KeyLib 也是自動化測試工具的一種
        跟 FireFox Selnium IDE是同一種類型的工具
        請問您怎麼看到這工具的呢

    • 公司有需要…
      但我不了解Keylib
      所以算是比較好用嗎???
      因為網路上也沒有範例可以參考
      要如何比較FireFox跟Keylib哪個好用
      (頭痛ING….)

    Leave a Reply

    Your email address will not be published.