'Check if the protocol specified in freq is https and fetch the same URL
using http. ie:
- input: https://w3af.org/
- check: http://w3af.org/
:param freq: A FuzzableRequest'

def audit(self, freq, orig_response):

    if (not self._should_run):
        return
    initial_uri = freq.get_uri()
    if (initial_uri.get_port() not in {80, 443}):
        self._should_run = False
        return
    insecure_uri = initial_uri.copy()
    secure_uri = initial_uri.copy()
    insecure_uri.set_protocol('http')
    insecure_fr = copy.deepcopy(freq)
    insecure_fr.set_url(insecure_uri)
    secure_uri.set_protocol('https')
    secure_fr = copy.deepcopy(freq)
    secure_fr.set_url(secure_uri)
    send_mutant = self._uri_opener.send_mutant
    kwargs = {'grep': False, 'error_handling': False}
    try:
        insecure_response = send_mutant(insecure_fr, **kwargs)
        secure_response = send_mutant(secure_fr, **kwargs)
    except (HTTPRequestException, ScanMustStopException):
        self._should_run = False
    else:
        if ((insecure_response is None) or (secure_response is None)):
            self._should_run = False
            return
        if self._redirects_to_secure(insecure_response, secure_response):
            return
        if ((insecure_response.get_code() == secure_response.get_code()) and relative_distance_boolean(insecure_response.get_body(), secure_response.get_body(), 0.95)):
            desc = 'Secure    content    can    be    accessed    using    the    insecure    HTTP    protocol.    The    vulnerable    URLs    used    to    verify    this    vulnerability    are:\n    -    %s\n    -    %s\n'
            desc %= (secure_uri, insecure_uri)
            response_ids = [insecure_response.id, secure_response.id]
            v = Vuln.from_fr('Secure    content    over    insecure    channel', desc, severity.MEDIUM, response_ids, self.get_name(), freq)
            self.kb_append(self, 'un_ssl', v)
            self._should_run = False
