17 changed files with 457 additions and 167 deletions
@ -0,0 +1 @@ |
|||
2.3.3-cryptcheck |
@ -0,0 +1,156 @@ |
|||
<div class="container"> |
|||
<div class="row"> |
|||
<div class="col-sm-11"> |
|||
<h1> |
|||
[<%= self.type.to_s.upcase %>] <%= @host %> <span class="small">(<%= l @result.date %>)</span> |
|||
</h1> |
|||
</div> |
|||
<% if Time.now - @result.date >= Rails.configuration.refresh_delay %> |
|||
<div class="col-sm-1"> |
|||
<%= link_to t('Refresh'), {action: :refresh}, class: %i(btn btn-default) %> |
|||
</div> |
|||
<% end %> |
|||
</div> |
|||
<% |
|||
@result.hosts.each do |host| |
|||
if host.error |
|||
error, host = host.error, host.host |
|||
%> |
|||
<div class="row"> |
|||
<div class="col-sm-12"> |
|||
<h2><%= host.name %> - <%= host.ip %> : <%= host.port %></h2> |
|||
<%= t 'Error during analysis:' %> |
|||
<span class="label label-error"><%= error %></span> |
|||
</div> |
|||
</div> |
|||
<% |
|||
else |
|||
host, grade, handshake = host.host, host.grade, host.handshake |
|||
%> |
|||
<div class="row"> |
|||
<div class="col-sm-12"> |
|||
<h2><%= host.name %> - <%= host.ip %> : <%= host.port %></h2> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-sm-6"> |
|||
<table class="table table-bordered table-condensed table-striped"> |
|||
<thead> |
|||
<tr> |
|||
<th colspan="2"> |
|||
Scores |
|||
<%= rank_label grade.rank %> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<% |
|||
{ 'Protocol' => 'protocol', |
|||
'Key exchange' => 'key_exchange', |
|||
'Cipher' => 'cipher_strengths', |
|||
'Overall' => 'score'}.each do |name, v| %> |
|||
<tr> |
|||
<th class="col-sm-4"><%= t name %></th> |
|||
<td class="col-sm-8"><%= score_progress grade.details[v] %></td> |
|||
</tr> |
|||
<% end %> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div class="col-sm-6"> |
|||
<table class="table table-bordered table-condensed table-striped"> |
|||
<tbody> |
|||
<tr> |
|||
<th class="col-sm-4"><%= t 'Protocols' %></th> |
|||
<td class="col-sm-8"><%= protocol_labels handshake.protocols %></td> |
|||
</tr> |
|||
<tr> |
|||
<th><%= t 'Keys' %></th> |
|||
<td> |
|||
<p><%= t 'Certificates:' %> <%= key_label handshake[:key] %></p> |
|||
<p>Diffie Hellman : <%= key_labels handshake.dh %></p> |
|||
</td> |
|||
</tr> |
|||
<% { 'Good practices' => :success, |
|||
'Warning' => :warning, |
|||
'Critical' => :danger, |
|||
'Fatal' => :error }.each do |name, color| |
|||
names = grade[color] |
|||
next if names.nil? or names.empty? |
|||
%> |
|||
<tr> |
|||
<th><%= t name %></th> |
|||
<td> |
|||
<% names.each do |name| %> |
|||
<span class="label label-<%= color %>"><%= name.upcase %></span> |
|||
<% end %> |
|||
</td> |
|||
</tr> |
|||
<% end %> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-sm-12"> |
|||
<table class="table table-bordered table-condensed table-striped center"> |
|||
<thead> |
|||
<tr> |
|||
<th rowspan="2"><%= t 'Name' %></th> |
|||
<th colspan="2"><%= t 'Key exchange' %></th> |
|||
<th colspan="2"><%= t 'Authentication' %></th> |
|||
<th colspan="4"><%= t 'Encryption' %></th> |
|||
<th colspan="2"><%= t 'MAC' %></th> |
|||
<th rowspan="2"><%= t 'PFS' %></th> |
|||
</tr> |
|||
<tr> |
|||
<th><%= t 'Type' %></th> |
|||
<th><%= t 'Key size' %></th> |
|||
<th><%= t 'Type' %></th> |
|||
<th><%= t 'Key size' %></th> |
|||
<th><%= t 'Type' %></th> |
|||
<th><%= t 'Key size' %></th> |
|||
<th><%= t 'Block size' %></th> |
|||
<th><%= t 'Mode' %></th> |
|||
<th><%= t 'Type' %></th> |
|||
<th><%= t 'Size' %></th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<% CryptCheck::Tls::Server::EXISTING_METHODS.each do |protocol| |
|||
ciphers = CryptCheck::Tls::Cipher.sort(handshake.ciphers.select { |c| c.protocol == protocol.to_s } |
|||
.collect { |c| CryptCheck::Tls::Cipher.new protocol, [c.name, nil, c[:size]], c.dh, handshake[:key] }) |
|||
unless ciphers.empty? %> |
|||
<tr> |
|||
<th colspan="12"><%= protocol_label protocol %></th> |
|||
</tr> |
|||
<% ciphers.each do |cipher| |
|||
params = cipher.params |
|||
kex = params[:kex] |
|||
auth = params[:auth] |
|||
enc = params[:enc] |
|||
mac = params[:mac] |
|||
pfs = params[:pfs] |
|||
%> |
|||
<tr> |
|||
<th><%= cipher_name_label cipher %></th> |
|||
<%= cipher_kex_type_cell kex&.first %> |
|||
<%= cipher_kex_size_cell kex&.last %> |
|||
<%= cipher_auth_type_cell auth&.first %> |
|||
<%= cipher_auth_size_cell auth&.last %> |
|||
<%= cipher_enc_type_cell enc&.first %> |
|||
<%= cipher_enc_key_size_cell enc&.[] 1 %> |
|||
<%= cipher_enc_block_size_cell enc&.[] 2 %> |
|||
<%= cipher_enc_mode_cell enc&.last %> |
|||
<%= cipher_mac_type_cell mac&.first %> |
|||
<%= cipher_mac_size_cell mac&.last %> |
|||
<%= cipher_pfs_cell pfs %> |
|||
</tr> |
|||
<% end end end %> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
<% end |
|||
end %> |
|||
</div> |
@ -1,3 +1,4 @@ |
|||
#!/bin/bash |
|||
DIR="$(readlink -m "$(dirname "$0")")" |
|||
LD_LIBRARY_PATH="${DIR}/../../cryptcheck/lib" "${0}.rb" $* |
|||
DIR="$(readlink -e "$(dirname "${0}")")" |
|||
export LD_LIBRARY_PATH="$(readlink -e "${DIR}/../../cryptcheck/lib")" |
|||
"${0}.rb" $* |
|||
|
Loading…
Reference in new issue