ソースを参照

Help & about

new-scoring
aeris 2年前
コミット
4356d4d761

バイナリ
app/assets/images/bitcoin.png ファイルの表示


+ 112
- 0
app/assets/images/check-empty.svg ファイルの表示

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
width="364.167"
height="318.333"
viewBox="0 0 364.167 318.333"
overflow="visible"
enable-background="new 0 0 364.167 318.333"
xml:space="preserve"
sodipodi:docname="Tick_green_modern.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata47"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs45"><linearGradient
id="XMLID_65_"
gradientUnits="userSpaceOnUse"
x1="20.841299"
y1="160.21581"
x2="338.67969"
y2="160.21581"><stop
offset="0"
style="stop-color:#5C6470"
id="stop5" /><stop
offset="1"
style="stop-color:#797F8D"
id="stop7" /></linearGradient><linearGradient
id="XMLID_66_"
gradientUnits="userSpaceOnUse"
x1="178.3188"
y1="19.8276"
x2="178.3188"
y2="269.08029"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop12" /><stop
offset="0.6685"
style="stop-color:#06AD4D"
id="stop14" /><stop
offset="1"
style="stop-color:#055448"
id="stop16" /></linearGradient><linearGradient
id="XMLID_67_"
gradientUnits="userSpaceOnUse"
x1="121.9199"
y1="-31.549801"
x2="192.1555"
y2="164.10899"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop21" /><stop
offset="0.6348"
style="stop-color:#06AD4D"
id="stop23" /><stop
offset="0.7442"
style="stop-color:#0C864E"
id="stop25" /><stop
offset="0.8524"
style="stop-color:#096A4C"
id="stop27" /><stop
offset="0.9414"
style="stop-color:#045A49"
id="stop29" /><stop
offset="1"
style="stop-color:#055448"
id="stop31" /></linearGradient></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1143"
id="namedview43"
showgrid="false"
inkscape:zoom="0.74136201"
inkscape:cx="-41.15427"
inkscape:cy="159.1665"
inkscape:window-x="1680"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><filter
id="AI_GaussianBlur_4"><feGaussianBlur
stdDeviation="4"
id="feGaussianBlur2" /></filter><path
d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
id="path10"
style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
inkscape:connector-curvature="0" /><path
d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
id="path34"
style="fill:url(#XMLID_67_)"
inkscape:connector-curvature="0" /><rect
style="fill:none"
y="0"
x="0"
id="rect38"
height="318.33301"
width="364.16699" /></svg>

+ 116
- 0
app/assets/images/check-full.svg ファイルの表示

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
width="364.167"
height="318.333"
viewBox="0 0 364.167 318.333"
overflow="visible"
enable-background="new 0 0 364.167 318.333"
xml:space="preserve"
sodipodi:docname="Tick_green_modern.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata47"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs45"><linearGradient
id="XMLID_65_"
gradientUnits="userSpaceOnUse"
x1="20.841299"
y1="160.21581"
x2="338.67969"
y2="160.21581"><stop
offset="0"
style="stop-color:#5C6470"
id="stop5" /><stop
offset="1"
style="stop-color:#797F8D"
id="stop7" /></linearGradient><linearGradient
id="XMLID_66_"
gradientUnits="userSpaceOnUse"
x1="178.3188"
y1="19.8276"
x2="178.3188"
y2="269.08029"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop12" /><stop
offset="0.6685"
style="stop-color:#06AD4D"
id="stop14" /><stop
offset="1"
style="stop-color:#055448"
id="stop16" /></linearGradient><linearGradient
id="XMLID_67_"
gradientUnits="userSpaceOnUse"
x1="121.9199"
y1="-31.549801"
x2="192.1555"
y2="164.10899"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop21" /><stop
offset="0.6348"
style="stop-color:#06AD4D"
id="stop23" /><stop
offset="0.7442"
style="stop-color:#0C864E"
id="stop25" /><stop
offset="0.8524"
style="stop-color:#096A4C"
id="stop27" /><stop
offset="0.9414"
style="stop-color:#045A49"
id="stop29" /><stop
offset="1"
style="stop-color:#055448"
id="stop31" /></linearGradient></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1143"
id="namedview43"
showgrid="false"
inkscape:zoom="0.74136201"
inkscape:cx="-41.15427"
inkscape:cy="159.1665"
inkscape:window-x="1680"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><filter
id="AI_GaussianBlur_4"><feGaussianBlur
stdDeviation="4"
id="feGaussianBlur2" /></filter><path
d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
id="path10"
style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
inkscape:connector-curvature="0" /><path
d="m 277.949,13.479 -3.35,4.491 -130.757,176.454 -0.965,0.528 -1.017,-0.339 -68.624,-60.441 -43.14,52.561 108.058,90.533 c 2.562,2.562 6.376,4.111 10.497,4.111 l 9.81,-3.413 C 159.172,277.181 323.404,56.203 323.404,56.203 l 3.137,-4.226 z"
id="path19"
style="fill:url(#XMLID_66_)"
inkscape:connector-curvature="0" /><path
d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
id="path34"
style="fill:url(#XMLID_67_)"
inkscape:connector-curvature="0" /><rect
style="fill:none"
y="0"
x="0"
id="rect38"
height="318.33301"
width="364.16699" /></svg>

+ 125
- 0
app/assets/images/check-grey.svg ファイルの表示

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
width="364.167"
height="318.333"
viewBox="0 0 364.167 318.333"
overflow="visible"
enable-background="new 0 0 364.167 318.333"
xml:space="preserve"
sodipodi:docname="check-ok.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata47"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs45"><linearGradient
id="XMLID_65_"
gradientUnits="userSpaceOnUse"
x1="20.841299"
y1="160.21581"
x2="338.67969"
y2="160.21581"><stop
offset="0"
style="stop-color:#5C6470"
id="stop5" /><stop
offset="1"
style="stop-color:#797F8D"
id="stop7" /></linearGradient><linearGradient
id="XMLID_66_"
gradientUnits="userSpaceOnUse"
x1="178.3188"
y1="19.8276"
x2="178.3188"
y2="269.08029"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop12" /><stop
offset="0.6685"
style="stop-color:#06AD4D"
id="stop14" /><stop
offset="1"
style="stop-color:#055448"
id="stop16" /></linearGradient><linearGradient
id="XMLID_67_"
gradientUnits="userSpaceOnUse"
x1="121.9199"
y1="-31.549801"
x2="192.1555"
y2="164.10899"><stop
offset="0"
style="stop-color:#6ABD45"
id="stop21" /><stop
offset="0.6348"
style="stop-color:#06AD4D"
id="stop23" /><stop
offset="0.7442"
style="stop-color:#0C864E"
id="stop25" /><stop
offset="0.8524"
style="stop-color:#096A4C"
id="stop27" /><stop
offset="0.9414"
style="stop-color:#045A49"
id="stop29" /><stop
offset="1"
style="stop-color:#055448"
id="stop31" /></linearGradient><filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Greyscale"
id="filter4502"><feColorMatrix
values="0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0 0 0 1 0 "
id="feColorMatrix4500"
result="fbSourceGraphic" /><feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix4504" /><feColorMatrix
id="feColorMatrix4506"
values="0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0 0 0 1 0 "
in="fbSourceGraphic" /></filter></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1143"
id="namedview43"
showgrid="false"
inkscape:zoom="0.74136201"
inkscape:cx="-265.7409"
inkscape:cy="159.1665"
inkscape:window-x="1680"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><filter
id="AI_GaussianBlur_4"><feGaussianBlur
stdDeviation="4"
id="feGaussianBlur2" /></filter><path
d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
id="path10"
style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
inkscape:connector-curvature="0" /><path
d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
id="path34"
style="fill:url(#XMLID_67_);filter:url(#filter4502)"
inkscape:connector-curvature="0" /><rect
style="fill:none"
y="0"
x="0"
id="rect38"
height="318.33301"
width="364.16699" /></svg>

+ 166
- 0
app/assets/images/cross-orange.svg ファイルの表示

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
height="205"
width="205"
version="1.0"
sodipodi:docname="cross-orange.svg"
inkscape:version="0.92.1 r15371">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1143"
id="namedview23"
showgrid="false"
inkscape:zoom="1.1512195"
inkscape:cx="-41.260593"
inkscape:cy="102.5"
inkscape:window-x="1680"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<metadata
id="metadata2248">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs4">
<filter
id="filter3157">
<feGaussianBlur
id="feGaussianBlur3159"
stdDeviation="5" />
</filter>
<linearGradient
id="linearGradient4094"
y2="174.94"
gradientUnits="userSpaceOnUse"
x2="205"
gradientTransform="translate(-102.5,-62.5)"
y1="85"
x1="205">
<stop
id="stop9083"
stop-color="#fff"
offset="0" />
<stop
id="stop9085"
stop-color="#fff"
stop-opacity="0"
offset="1" />
</linearGradient>
<radialGradient
id="radialGradient4097"
gradientUnits="userSpaceOnUse"
cy="212.5"
cx="205"
gradientTransform="matrix(1 0 0 .50262 -102.5 43.194)"
r="95.5">
<stop
id="stop7292"
stop-color="#fff"
stop-opacity=".71134"
offset="0" />
<stop
id="stop7294"
stop-color="#fff"
stop-opacity="0"
offset="1" />
</radialGradient>
<radialGradient
id="radialGradient4100"
gradientUnits="userSpaceOnUse"
cy="230.01"
cx="157.25"
gradientTransform="translate(-54.75,-62.5)"
r="95.5">
<stop
id="stop4611"
stop-color="#fff"
offset="0" />
<stop
id="stop4613"
stop-color="red"
offset="1" />
</radialGradient>
<linearGradient
id="linearGradient4102"
y2="261"
gradientUnits="userSpaceOnUse"
x2="205"
gradientTransform="translate(-102.5,-62.5)"
y1="69"
x1="205">
<stop
id="stop4048"
stop-color="#5d0000"
offset="0" />
<stop
id="stop4050"
stop-color="red"
offset="1" />
</linearGradient>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Color Shift"
id="filter6064">
<feColorMatrix
type="hueRotate"
values="50"
result="color1"
id="feColorMatrix6060" />
<feColorMatrix
type="saturate"
values="1"
result="color2"
id="feColorMatrix6062" />
</filter>
</defs>
<path
id="path9984"
d="m43 13l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z"
fill-opacity=".68047"
fill-rule="evenodd"
filter="url(#filter3157)" />
<path
id="path3712"
d="m37.5 7.5l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z"
fill-rule="evenodd"
stroke="url(#linearGradient4102)"
stroke-width="2"
fill="url(#radialGradient4100)"
style="filter:url(#filter6064)" />
<path
id="path3722"
d="m72.5 102.5l5 5-60 60 20 20 65-65 65 65 20-20-60-60 5-5 65 65-30 30-65-65-65 65-30-30 65-65z"
fill-rule="evenodd"
fill="url(#radialGradient4097)" />
<path
id="path8186"
d="m37.5 22.5l-15 15 80.04 74.94 79.96-74.94-15-15-65 65-65-65z"
fill-rule="evenodd"
fill="url(#linearGradient4094)" />
</svg>

+ 37
- 0
app/assets/images/cross-red.svg ファイルの表示

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="205" width="205" version="1.0" xmlns:cc="http://web.resource.org/cc/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata2248">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs4">
<filter id="filter3157">
<feGaussianBlur id="feGaussianBlur3159" stdDeviation="5"/>
</filter>
<linearGradient id="linearGradient4094" y2="174.94" gradientUnits="userSpaceOnUse" x2="205" gradientTransform="translate(-102.5,-62.5)" y1="85" x1="205">
<stop id="stop9083" stop-color="#fff" offset="0"/>
<stop id="stop9085" stop-color="#fff" stop-opacity="0" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient4097" gradientUnits="userSpaceOnUse" cy="212.5" cx="205" gradientTransform="matrix(1 0 0 .50262 -102.5 43.194)" r="95.5">
<stop id="stop7292" stop-color="#fff" stop-opacity=".71134" offset="0"/>
<stop id="stop7294" stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<radialGradient id="radialGradient4100" gradientUnits="userSpaceOnUse" cy="230.01" cx="157.25" gradientTransform="translate(-54.75,-62.5)" r="95.5">
<stop id="stop4611" stop-color="#fff" offset="0"/>
<stop id="stop4613" stop-color="red" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient4102" y2="261" gradientUnits="userSpaceOnUse" x2="205" gradientTransform="translate(-102.5,-62.5)" y1="69" x1="205">
<stop id="stop4048" stop-color="#5d0000" offset="0"/>
<stop id="stop4050" stop-color="red" offset="1"/>
</linearGradient>
</defs>
<path id="path9984" d="m43 13l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z" fill-opacity=".68047" fill-rule="evenodd" filter="url(#filter3157)"/>
<path id="path3712" d="m37.5 7.5l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z" fill-rule="evenodd" stroke="url(#linearGradient4102)" stroke-width="2" fill="url(#radialGradient4100)"/>
<path id="path3722" d="m72.5 102.5l5 5-60 60 20 20 65-65 65 65 20-20-60-60 5-5 65 65-30 30-65-65-65 65-30-30 65-65z" fill-rule="evenodd" fill="url(#radialGradient4097)"/>
<path id="path8186" d="m37.5 22.5l-15 15 80.04 74.94 79.96-74.94-15-15-65 65-65-65z" fill-rule="evenodd" fill="url(#linearGradient4094)"/>
</svg>

+ 2
- 0
app/assets/images/donate.svg ファイルの表示

@@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" width="83" height="30"><rect id="back" fill="#f6c915" x="1" y=".5" width="82" height="29" rx="4"/><svg viewBox="0 0 80 80" height="16" width="16" x="7" y="7"><g transform="translate(-78.37-208.06)" fill="#1a171b"><path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"/><path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"/></g></svg><text fill="#1a171b" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif"
font-weight="700" font-size="14" x="50" y="20">Donate</text></svg>

バイナリ
app/assets/images/donorbox.png ファイルの表示


+ 55
- 0
app/assets/images/paypal.svg ファイルの表示

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="127.769px" height="31.5px" viewBox="0 0 127.769 31.5" enable-background="new 0 0 127.769 31.5" xml:space="preserve">
<g>
<g>
<g>
<path fill="#009CDE" d="M98.396,6.933H91.37c-0.479,0-0.89,0.35-0.964,0.824l-2.841,18.015c-0.056,0.355,0.219,0.676,0.579,0.676
h3.604c0.335,0,0.622-0.244,0.674-0.576l0.807-5.107c0.074-0.474,0.483-0.824,0.964-0.824h2.223c4.628,0,7.298-2.239,7.996-6.678
c0.314-1.941,0.014-3.467-0.896-4.535C102.518,7.553,100.746,6.933,98.396,6.933z M99.207,13.512
c-0.384,2.522-2.31,2.522-4.173,2.522h-1.061l0.744-4.708c0.045-0.285,0.29-0.495,0.578-0.495h0.485c1.269,0,2.467,0,3.084,0.723
C99.234,11.986,99.347,12.626,99.207,13.512z"/>
<path fill="#003087" d="M48.288,6.933h-7.025c-0.481,0-0.89,0.35-0.965,0.824l-2.841,18.015
c-0.056,0.355,0.219,0.676,0.579,0.676h3.354c0.48,0,0.889-0.349,0.964-0.823l0.767-4.86c0.075-0.474,0.484-0.824,0.964-0.824
h2.223c4.627,0,7.298-2.239,7.997-6.678c0.314-1.941,0.012-3.467-0.896-4.535C52.409,7.553,50.638,6.933,48.288,6.933z
M49.099,13.512c-0.384,2.522-2.31,2.522-4.173,2.522h-1.06l0.743-4.708c0.045-0.285,0.291-0.495,0.579-0.495h0.486
c1.268,0,2.466,0,3.083,0.723C49.126,11.986,49.238,12.626,49.099,13.512z"/>
<path fill="#003087" d="M69.286,13.432h-3.363c-0.289,0-0.534,0.209-0.579,0.494l-0.147,0.94l-0.236-0.341
c-0.728-1.058-2.352-1.41-3.973-1.41c-3.716,0-6.891,2.816-7.509,6.766c-0.322,1.971,0.135,3.854,1.252,5.169
c1.026,1.208,2.492,1.71,4.237,1.71c2.995,0,4.657-1.924,4.657-1.924l-0.15,0.935c-0.056,0.355,0.218,0.677,0.578,0.677h3.03
c0.48,0,0.889-0.349,0.965-0.822l1.817-11.517C69.921,13.752,69.646,13.432,69.286,13.432z M64.598,19.979
c-0.325,1.923-1.851,3.212-3.797,3.212c-0.976,0-1.757-0.314-2.259-0.907c-0.498-0.59-0.685-1.429-0.527-2.363
c0.303-1.905,1.854-3.237,3.771-3.237c0.955,0,1.73,0.316,2.243,0.917C64.543,18.205,64.746,19.05,64.598,19.979z"/>
<path fill="#009CDE" d="M119.394,13.432h-3.363c-0.288,0-0.533,0.209-0.578,0.494l-0.148,0.94l-0.235-0.341
c-0.729-1.058-2.352-1.41-3.973-1.41c-3.718,0-6.893,2.816-7.51,6.766c-0.321,1.971,0.135,3.854,1.252,5.169
c1.026,1.208,2.492,1.71,4.237,1.71c2.995,0,4.657-1.924,4.657-1.924l-0.15,0.935c-0.057,0.355,0.219,0.677,0.578,0.677h3.03
c0.479,0,0.889-0.349,0.964-0.822l1.818-11.517C120.029,13.752,119.754,13.432,119.394,13.432z M114.706,19.979
c-0.325,1.923-1.851,3.212-3.797,3.212c-0.976,0-1.757-0.314-2.26-0.907c-0.496-0.59-0.685-1.429-0.526-2.363
c0.304-1.905,1.853-3.237,3.77-3.237c0.956,0,1.731,0.316,2.243,0.917C114.651,18.205,114.854,19.05,114.706,19.979z"/>
<path fill="#003087" d="M87.204,13.432h-3.382c-0.323,0-0.626,0.16-0.808,0.427l-4.664,6.87l-1.978-6.601
c-0.123-0.414-0.504-0.696-0.935-0.696h-3.324c-0.401,0-0.683,0.395-0.555,0.774l3.724,10.929l-3.502,4.941
C71.506,30.464,71.784,31,72.259,31h3.379c0.319,0,0.619-0.157,0.802-0.42l11.246-16.229
C87.954,13.962,87.676,13.432,87.204,13.432z"/>
<path fill="#009CDE" d="M123.359,7.427l-2.883,18.344c-0.057,0.355,0.218,0.676,0.578,0.676h2.9c0.48,0,0.889-0.349,0.964-0.822
l2.843-18.016c0.056-0.355-0.219-0.677-0.578-0.677h-3.246C123.65,6.933,123.404,7.143,123.359,7.427z"/>
</g>
</g>
<g>
<path fill="#009CDE" d="M23.675,7.876c0.378-2.412-0.002-4.053-1.307-5.539C20.932,0.701,18.338,0,15.019,0H5.384
C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948l-0.411,2.604
C6.295,30.603,6.635,31,7.08,31h5.014c0.593,0,1.098-0.432,1.191-1.018l0.049-0.255l0.944-5.989l0.061-0.331
c0.093-0.586,0.598-1.019,1.191-1.019h0.75c4.857,0,8.66-1.972,9.771-7.68c0.465-2.384,0.225-4.375-1.003-5.774
C24.676,8.512,24.214,8.162,23.675,7.876L23.675,7.876"/>
<path fill="#012169" d="M23.675,7.876c0.378-2.412-0.002-4.053-1.307-5.539C20.932,0.701,18.338,0,15.019,0H5.384
C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948l1.494-9.475l-0.046,0.298
c0.106-0.671,0.678-1.164,1.357-1.164h2.827c5.552,0,9.899-2.256,11.17-8.779C23.614,8.247,23.646,8.061,23.675,7.876"/>
<path fill="#003087" d="M9.875,7.908c0.063-0.403,0.322-0.733,0.67-0.9c0.158-0.076,0.335-0.118,0.521-0.118h7.553
c0.895,0,1.729,0.059,2.492,0.182c0.218,0.035,0.43,0.075,0.636,0.121c0.206,0.045,0.406,0.096,0.6,0.153
c0.097,0.028,0.192,0.058,0.286,0.089c0.375,0.125,0.724,0.271,1.044,0.441c0.378-2.412-0.002-4.053-1.307-5.539
C20.932,0.701,18.338,0,15.019,0H5.384C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948
l1.494-9.475L9.875,7.908z"/>
</g>
</g>
</svg>

+ 1
- 0
app/assets/javascripts/application.coffee ファイルの表示

@@ -1,2 +1,3 @@
##= require jquery
##= require bootstrap/dropdown
##= require_tree .

app/assets/stylesheets/application.scss → app/assets/stylesheets/application.scss.erb ファイルの表示

@@ -35,11 +35,17 @@ body {
background-color: #000;
}

table.center td {
text-align: center;
.label-critical, .progress-bar-critical {
background-color: #000;
}

table.center {
td, th {
text-align: center;

&.left {
text-align: left;
&.left {
text-align: left;
}
}
}

@@ -51,10 +57,13 @@ td.primary {
background-color: $state-info-bg;
}

<% unless Rails.env == 'production' %>
.translation_missing {
border: 1px solid red;
}

<% end %>

.progress-bar-default {
background-color: $label-default-bg;
}
@@ -79,45 +88,70 @@ $color-great: #5cb85c;
.label-state-critical {
background-color: $color-critical;
}

.label-state-error {
background-color: $color-error;
}

.label-state-warning {
background-color: $color-warning;
color: $text-color;
}

.label-state-good {
background-color: $color-good;
color: $text-color;
}

.label-state-best {
background-color: $color-best;
}

.label-state-great {
background-color: $color-great;
}

.label-state-default {
//background-color: #008000;
background-color: $label-default-bg;
}

.label-state-success {
background-color: $label-success-bg;
}

.alert-critical, .alert-error {
background-color: $alert-danger-bg;
color: $alert-danger-text;
border-color: $alert-danger-border
$lighten-alert: 35%;
.alert-critical {
background-color: lighten($color-critical, $lighten-alert);
color: $color-critical;
border-color: $color-critical;
}

.alert-error {
background-color: lighten($color-error, $lighten-alert);
color: $color-error;
border-color: $color-error;
}

.alert-warning {
background-color: $alert-warning-bg;
color: $alert-warning-text;
border-color: $alert-warning-border
background-color: lighten($color-warning, $lighten-alert);
color: $color-warning;
border-color: $color-warning;
}
.alert-good, .alert-great, .alert-best {
background-color: $alert-success-bg;
color: $alert-success-text;
border-color: $alert-success-border

.alert-good {
background-color: lighten($color-good, $lighten-alert);
color: $color-good;
border-color: $color-good;
}

.alert-best {
background-color: lighten($color-best, $lighten-alert);
color: $color-best;
border-color: $color-best;
}

.alert-great {
background-color: lighten($color-great, $lighten-alert);
color: $color-great;
border-color: $color-great;
}

+ 0
- 0
app/assets/stylesheets/site.scss ファイルの表示


+ 32
- 0
app/assets/stylesheets/site.scss.erb ファイルの表示

@@ -0,0 +1,32 @@
#about, #help {
margin-bottom: 20px;
p {
font-size: 1.25em;
}
}

#donorbox {
background: #2d81c5 url(<%= image_path 'donorbox.png' %>) no-repeat 18px center;
color: #fff;
text-decoration: none;
font-family: Verdana, sans-serif;
display: inline-block;
font-size: 16px;
padding: 13px 17px 13px 56px;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
box-shadow: 0 1px 0 0 #1f5a89;
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
}

#liberapay, #donorbox, #paypal {
img {
height: 50px;
max-width: 140px;
}
}

table.scoring img {
width: 30px;
}

+ 8
- 0
app/controllers/site_controller.rb ファイルの表示

@@ -34,4 +34,12 @@ class SiteController < ApplicationController
@suite = params[:id] || params.require(:suite)
@ciphers = CryptCheck::Tls::Cipher.list @suite
end

def help

end

def about

end
end

+ 2
- 1
app/helpers/check_helper.rb ファイルの表示

@@ -54,7 +54,8 @@ module CheckHelper
end

def rank_label(rank)
label rank, rank_color(rank)
l = %i(V T).include? rank
label rank, rank_color(rank), !l
end

def protocol_label(protocol)

+ 2
- 0
app/views/application/_headers.erb ファイルの表示

@@ -14,6 +14,8 @@
<ul class="nav navbar-nav navbar-right">
<li><%= link_to t('User agent compatibility'), suite_path %></li>
<li><%= link_to t('Supported cipher suites'), ciphers_path %></li>
<li><%= link_to t('Help'), help_path %></li>
<li><%= link_to t('About'), about_path %></li>
<!--
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">

+ 90
- 0
app/views/site/about.html.erb ファイルの表示

@@ -0,0 +1,90 @@
<div id="about" class="container">
<div class="row">
<div class="col-sm-12">
<h1>About</h1>

<p>
This service is developed by
<a href="https://imirhil.fr/" target="_blank">aeris</a>.
</p>

<p>
Source code is available under
<a href="https://www.gnu.org/licenses/agpl-3.0.html" target="_blank">AGPL
v3</a>
license :
</p>
<ul>
<li>
Engine:
<a href="https://git.imirhil.fr/aeris/cryptcheck" target="_blank">
https://git.imirhil.fr/aeris/cryptcheck
</a>
</li>
<li>
Frontend:
<a href="https://git.imirhil.fr/aeris/cryptcheck-rails" target="_blank">
https://git.imirhil.fr/aeris/cryptcheck-rails
</a>
</li>
</ul>

<p>
This project contributes to improve Ruby too.
</p>
<ul>
<li>
<a href="https://github.com/ruby/openssl/commit/bd6a4954382b7b742575d5688bd9b93a597bcc24" target="_blank">Access TLS session ephemeral key</a>
</li>
<li>
<a href="https://github.com/ruby/openssl/pull/165" target="_blank">Support for TLS fallback signaling (SCSV)</a>
</li>
<li>
<a href="https://github.com/ruby/openssl/pull/166" target="_blank">Allow multiple certificates for TLS server</a>
</li>
<li>
<a href="https://github.com/ruby/ruby/pull/1732" target="_blank">CAA RR DNS support</a>
</li>
</ul>

<p>
Icons used:
</p>
<ul>
<li>
<a href="https://commons.wikimedia.org/wiki/File:Tick_green_modern.svg" target="_blank">Tick green modern</a>
by <a href="https://commons.wikimedia.org/wiki/User:Jossifresco" target="_blank">Jossifresco</a> (public domain)
</li>
<li>
<a href="https://commons.wikimedia.org/wiki/File:Crystal_128_error.svg" target="_blank">Crystal 128 error</a>
by <a href="https://commons.wikimedia.org/wiki/User:RedHotHeat" target="_blank">RedHotHeat</a>
(<a href="https://www.gnu.org/copyleft/lesser.html" target="_blank">LGPL</a>)
</li>
</ul>

<h1>Support</h1>
<p>
You can support development and hosting for this service:
</p>

<p id="contribute">
Bitcoin <a href="bitcoin:1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd?label=cryptcheck">1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd</a><br/>
<a id="bitcoin" href="bitcoin:1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd?label=cryptcheck">
<%= image_tag 'bitcoin.png', alt: 'Donate using Bitcoin' %>
</a>
<br/>

Liberapay, for recurring donation, require a account (but respect your privacy)<br/>
<a id="liberapay" href="https://liberapay.com/aeris/donate" target="_blank"><%= image_tag 'donate.svg', alt: 'Donate using Liberapay' %></a>
<br/>

Donorbox, for recurring and one-shot donation, doesn't require an account<br/>
<a id="donorbox" href="https://donorbox.org/cryptcheck" target="_blank">Donate</a>
<br/>

Paypal, what to say about this service and your privacy, but already used by most of the world<br/>
<a id="paypal" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&currency_code=EUR&business=aeris@imirhil.fr&item_name=CryptCheck%20donation" target="_blank"><%= image_tag 'paypal.svg', alt: 'Donate using Paypal' %></a>
</p>
</div>
</div>
</div>

+ 257
- 0
app/views/site/help.html.erb ファイルの表示

@@ -0,0 +1,257 @@
<div id="help" class="container">
<div class="row">
<div class="col-sm-12">
<h1>Scoring</h1>

<p>
Currently, CryptCheck gives note from <%= rank_label :G %> for the
worst sites to <%= rank_label :'A+' %> for the best ones.
</p>

<p>
Scoring is based on the fact that TLS handshake is <b>not</b>
authenticated, and so an attacker can force to use whatever
cipher he wants as soon as both client and server support it,
with a downgrade attack as simple as modify TCP packets on the
fly.
</p>

<p>
Such downgrade attack doesn't require heavy resources and can be
made with standard computer or phone.<br/>
The only difficult part is to be in position to modify the
traffic between the client and the server.
This is the case if the attacker is connected on the same network
as the client (hotspot, 3G…) with simple
<a href="https://en.wikipedia.org/wiki/ARP_spoofing">ARP spoofing</a>,
doable with tools like
<a href="https://forum.xda-developers.com/showthread.php?t=1593990">Droid Sheep</a>.<br/>
</p>

<p>
As client support can't be guessed, CryptCheck considers the
<b>weakest</b> suite supported server side.
This way, a connection to the scored service can't lead to a
negociated handshake with a worse score than the one given to
the service, whatever your client supports and whatever an
attacker is present or not.
</p>

<table class="scoring table table-bordered table-condensed center table-striped">
<thead>
<tr>
<th rowspan="2">Score</th>
<td rowspan="2"></td>
<td colspan="3">Protection</td>
<td colspan="3">Weakness</td>
</tr>
<tr>
<td>Best</td>
<td>Great</td>
<td>Good</td>

<td>Future</td>
<td>Weak</td>
<td>Deprecated</td>
</tr>
</thead>
<tbody>
<tr>
<th><%= rank_label :'A+' %></th>
<td class="left">
Seriously take security into account and invest a lot on it.<br/>
Whatever the cost, encryption safety is implemented.
You can be proud!
</td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :A %></th>
<td class="left">
Seriously take security into account and invest a lot on it.
</td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :'B+' %></th>
<td class="left">
Seriously take security into account and invest on it.
</td>
<td></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :B %></th>
<td class="left">
Take security into account and invest on it.
</td>
<td></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :'C+' %></th>
<td class="left">
Take security into account and invest a little on it.
</td>
<td></td>
<td></td>
<td><%= image_tag 'check-full.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :C %></th>
<td class="left">
Take security into account but don't spend too much for it.
</td>
<td></td>
<td></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :D %></th>
<td class="left">
Take security into account. Minimaly.<br/>
This is the worst score a decent service must have today.
</td>
<td></td>
<td></td>
<td></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :E %></th>
<td class="left">
Take security into account. A little. Or not.
</td>
<td></td>
<td></td>
<td></td>
<td><%= image_tag 'cross-red.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :F %></th>
<td class="left">
Just don't take security into account.
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><%= image_tag 'cross-red.svg' %></td>
<td><%= image_tag 'check-empty.svg' %></td>
</tr>
<tr>
<th><%= rank_label :G %></th>
<td class="left">
Just don't take security into account at all.<br/>
What the fuck you do, dude?
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><%= image_tag 'cross-red.svg' %></td>
</tr>
<tr>
<th><%= rank_label :V %></th>
<td class="left">
Invalid certificate (wrong domain, expired…)
</td>
<td colspan="6"></td>
</tr>
<tr>
<th><%= rank_label :T %></th>
<td class="left">
Unstrusted certificate. Not issued by a trusted
<a href="https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport">certificate authority</a>.
</td>
<td colspan="6"></td>
</tr>
</tbody>
</table>
<table class="scoring table table-bordered table-condensed">
<tr>
<td>
For protection:<br/>
<%= image_tag 'check-full.svg' %> Fully implemented
<%= image_tag 'check-empty.svg' %> Partially implemented<br/>

Good: simple to implement, small protection<br/>
Great: quiet hard to implement, middle protection<br/>
Best: hard to implement, strong protection
</td>
<td>
For weakness:<br/>
<%= image_tag 'check-empty.svg' %> Not vulnerable
<%= image_tag 'cross-red.svg' %> Vulnerable<br/>

Future: known weakness, but no practical attack known<br/>
Weak: known weakness, pratical attack exist<br/>
Deprecated: known weakness, merely equivalent or equal to plain text
</td>
</tr>
</table>


<p>
<i>Note</i>: Unlike HTTPS or XMPP, SMTP uses
<a href="https://en.wikipedia.org/wiki/Opportunistic_TLS">opportunistic encryption</a>.<br/>
When you send an email, the server used to forward the mail
(the <a href="https://en.wikipedia.org/wiki/Message_transfer_agent">MTA</a>)
to the recipient has no way to guess in advance if recipient MTA
supports or not encryption and which cipher suite will be
available.
To avoid your email returning to you in case of failure, the
standard for email encryption
(<a href="https://tools.ietf.org/html/rfc3207">RFC 3207</a>)
requires to retry <b>in plain text</b> in case of encryption
handshake failure.<br/>
So, for SMTP, there is a compromise to make between strong
configuration, leading to plain text fallback for old or badly
configured MTA, and compatibility with such MTA to use weak
encryption better than plain text but allowing downgrade attack
on stronger MTA.<br/>
Given email is a real nightmare for security, with multiple way
to force a connection to fallback to plain text
(<a href="https://www.eff.org/fr/deeplinks/2014/11/starttls-downgrade-attacks">STARTTLS stripping</a>,
<a href="https://labs.ripe.net/Members/stephane_bortzmeyer/dns-censorship-dns-lies-seen-by-atlas-probes">MX lying</a>…),
CryptCheck scores SMTP as HTTPS or XMPP and doesn't care about
compatibility trouble. This way, weak people are still weak, but
strong people can (not too much) hope strong encryption under
normal condition.<br/>
Be advice than strong score here for SMTP means compatibility
troubles.
Or fucked service which doesn't take care of your security.
I don't know, you turn to judge.
</p>
</div>
</div>
</div>

+ 1
- 0
config/application.rb ファイルの表示

@@ -1,5 +1,6 @@
require File.expand_path('../boot', __FILE__)

require 'rails'
%w(
action_controller
action_view

+ 2
- 0
config/routes.rb ファイルの表示

@@ -26,6 +26,8 @@ Rails.application.routes.draw do
get ':id/refresh', action: :refresh, as: :refresh
end

get 'help' => 'site#help'
get 'about' => 'site#about'
get 'ciphers' => 'site#ciphers'
get 'suite' => 'site#suite_index'
get 'suite/:id' => 'site#suite'

読み込み中…
キャンセル
保存