<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="http://causeless.seesaa.net/">
<title>不意になにかを残すブログ</title>
<link>http://causeless.seesaa.net/</link>
<description>何かをメモる場所として。</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="https://blog.seesaa.jp/" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://causeless.seesaa.net/article/390885069.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/389583474.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388565903.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566102.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566294.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566452.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566600.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566721.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566820.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388566941.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/388567020.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/375675327.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/375174298.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/375068768.html" />
<rdf:li rdf:resource="http://causeless.seesaa.net/article/374647006.html" />
</rdf:Seq>
</items>
</channel>

<item rdf:about="http://causeless.seesaa.net/article/390885069.html">
<link>http://causeless.seesaa.net/article/390885069.html</link>
<title>OpenVPNのセキュリティ周りメモ</title>
<description>OpenVPNのセキュリティ周りの動作について気になった点をメモOpenVPN 2.3系、証明書認証を前提。だいたいmanpageから。https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.htmlOpenVPNプロトコル独自プロトコルで仕様書は見当たらない。ソースを読め。単一のUDPポート上で制御チャネル（認証など）とトラフィックチャネルを扱う（一応TCP..</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2014-03-08T17:40:25+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="OpenVPN%E3%81%AE%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%91%A8%E3%82%8A%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%B0%97%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E7%82%B9%E3%82%92%E3%83%A1%E3%83%A2%3Cbr%3E%3Cbr%3EOpenVPN%202.3%E7%B3%BB%E3%80%81%E8%A8%BC%E6%98%8E%E6%9B%B8%E8%AA%8D%E8%A8%BC%E3%82%92%E5%89%8D%E6%8F%90%E3%80%82%E3%81%A0%E3%81%84%E3%81%9F%E3%81%84manpage%E3%81%8B%E3%82%89%E3%80%82%3Cbr%3Ehttps%3A%2F%2Fopenvpn.net%2Findex.php%2Fopen-source%2Fdocumentation%2Fmanuals%2F65-openvpn-20x-manpage.html%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20OpenVPN%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%3Cbr%3E*%20%E7%8B%AC%E8%87%AA%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%81%A7%E4%BB%95%E6%A7%98%E6%9B%B8%E3%81%AF%E8%A6%8B%E5%BD%93%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%92%E8%AA%AD%E3%82%81%E3%80%82%3Cbr%3E*%20%E5%8D%98%E4%B8%80%E3%81%AEUDP%E3%83%9D%E3%83%BC%E3%83%88%E4%B8%8A%E3%81%A7%E5%88%B6%E5%BE%A1%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%EF%BC%88%E8%AA%8D%E8%A8%BC%E3%81%AA%E3%81%A9%EF%BC%89%E3%81%A8%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%82%92%E6%89%B1%E3%81%86%EF%BC%88%E4%B8%80%E5%BF%9CTCP%E3%81%A7%E3%82%82%E5%8B%95%E3%81%8F%E3%81%8C%E9%81%85%E3%81%84%EF%BC%89%3Cbr%3E*%20L2%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88%E3%81%BE%E3%81%9F%E3%81%AFL3%E4%BB%AE%E6%83%B3%E5%8C%96%3Cbr%3E*%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%81%B4%E3%81%8B%E3%82%89%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%A7%E3%80%81%E3%83%AB%E3%83%BC%E3%83%88%E8%A8%AD%E5%AE%9A%E3%81%A8DHCP%E7%9B%B8%E5%BD%93%E3%82%92%E9%85%8D%E4%BF%A1%E5%8F%AF%E8%83%BD%3Cbr%3E*%20IPv6%E3%83%AB%E3%83%BC%E3%83%88%E9%80%9A%E7%9F%A5%E3%82%82%E5%8F%AF%E8%83%BD%E3%81%A0%E3%81%8C%E3%80%81IPv6%E3%81%AADNS%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AA%E3%81%A9%E3%81%AF%E3%81%BE%E3%81%A0%E9%9D%9E%E5%AF%BE%E5%BF%9C%3Cbr%3E*%20%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E6%AF%8E%E3%81%AB%E4%BB%AE%E6%83%B3%E3%83%AB%E3%83%BC%E3%82%BF%E3%81%A8%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E3%82%92%E5%88%86%E3%81%91%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81IPv4%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%B6%88%E8%B2%BB%E3%81%AF%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E6%AF%8E%E3%81%AB4%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3Cbr%3E*%20L3%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AF%E5%86%85%E9%83%A8IP%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8C%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E9%96%93%E3%81%AE%E9%9A%94%E9%9B%A2%E4%BB%A5%E5%A4%96%E3%81%AB%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%A9%9F%E8%83%BD%E3%81%AF%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81%E5%BF%85%E8%A6%81%E3%81%AA%E3%82%89%E5%86%85%E9%83%A8%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E7%84%A1%E5%8A%B9%E5%8C%96%E3%81%97%E3%81%A6iptables%E3%81%AA%E3%82%8A%E3%81%A7%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%95%E3%83%AD%E3%83%BC%3Cbr%3E1.%20%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E5%A7%8B%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E4%BA%8B%E5%89%8D%E5%85%B1%E6%9C%89%E9%8D%B5%E3%81%A7%E7%BD%B2%E5%90%8D%EF%BC%88%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%89%3Cbr%3E2.%20%E7%8B%AC%E8%87%AA%E5%AE%9F%E8%A3%85%E3%81%AETLS%20over%20UDP%E3%81%A7%E3%80%81%E7%8B%AC%E8%87%AA%E3%83%AB%E3%83%BC%E3%83%88CA%E3%81%A7%E8%AA%8D%E8%A8%BC%E3%81%97%E3%80%81%E5%88%B6%E5%BE%A1%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%3Cbr%3E3.%20%E5%AE%9F%E9%9A%9B%E3%81%AE%E9%80%9A%E4%BF%A1%E3%81%AF%E5%88%A5%E3%81%AE%E9%8D%B5%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E5%8D%98%E4%BD%8D%E3%81%A7%E6%9A%97%E5%8F%B7%E5%8C%96%E3%83%BB%E7%BD%B2%E5%90%8D%3Cbr%3E%3Cbr%3E%E5%90%84%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E5%AE%89%E5%85%A8%E3%82%88%E3%82%8A%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82ca%2C%20cert%2C%20key%E3%82%92%E6%AD%A3%E3%81%97%E3%81%8F%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8C%E3%81%B0%E3%81%97%E3%81%B0%E3%82%89%E3%81%8F%E3%81%AF%E5%95%8F%E9%A1%8C%E3%81%AA%E3%81%95%E3%81%9D%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%E5%8F%82%E8%80%83%3Cbr%3Ehttps%3A%2F%2Fopenvpn.net%2Findex.php%2Fopen-source%2Fdocumentation%2Fsecurity-overview.html%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E9%96%8B%E5%A7%8B%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E7%BD%B2%E5%90%8D%3Cbr%3E%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%82%20%E9%80%9A%E5%B8%B8OpenVPN%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AFUDP%E4%B8%8A%E3%81%A7%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AB%E3%81%A8%E3%81%A6%E3%82%82%E3%82%B3%E3%82%B9%E3%83%88%E3%81%AE%E9%AB%98%E3%81%84TLS%EF%BC%88over%20UDP%EF%BC%89%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E7%A2%BA%E7%AB%8B%E5%87%A6%E7%90%86%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%3Cbr%3E%E5%81%BD%E8%A3%85%E3%81%95%E3%82%8C%E3%81%9FUDP%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E9%80%81%E3%82%89%E3%82%8C%E3%82%8B%E3%81%A8CPU%E3%81%A8%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%92%E6%B5%AA%E8%B2%BB%E3%81%95%E3%81%9B%E3%82%8BDoS%E6%94%BB%E6%92%83%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%AE%E3%81%A7%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%AB%E3%81%AF%E5%B0%82%E7%94%A8%E3%81%AE%E5%85%B1%E9%80%9A%E9%8D%B5%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FHMAC%E6%A4%9C%E8%A8%BC%E6%A9%9F%E6%A7%8B%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%3Cbr%3E%E3%81%93%E3%81%AE%E9%8D%B5%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AF%20tls-auth%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%81%93%E3%81%A7%E4%BD%BF%E3%81%86%E9%8D%B5%E3%81%AF%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E6%AF%8E%E3%81%AB%E3%81%97%E3%81%8B%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%9A%E3%80%81%E8%A4%87%E6%95%B0%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%8C%E3%81%84%E3%82%8B%E3%81%AA%E3%82%89%E5%85%A8%E3%81%A6%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E5%85%B1%E9%80%9A%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%E3%81%93%E3%81%AE%E9%8D%B5%E3%82%92%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E6%A9%9F%E6%A7%8B%E3%81%AF%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%81%AB%E3%81%AF%E7%84%A1%E3%81%84%E3%80%82%3Cbr%3E%E6%BC%8F%E6%B4%A9%E6%99%82%E3%81%AB%E5%88%87%E3%82%8A%E5%88%86%E3%81%91%E3%81%A8%E9%8D%B5%E6%9B%B4%E6%96%B0%E3%81%8C%E9%9D%A2%E5%80%92%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E5%A4%9A%E4%BA%BA%E6%95%B0%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%81%AE%E5%88%A9%E7%94%A8%E3%81%AF%E9%9B%A3%E3%81%97%E3%81%84%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20TLS%20over%20UDP%3Cbr%3EOpenVPN%E3%81%8CUDP%E4%B8%8A%E3%81%AB%E7%8B%AC%E8%87%AA%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9FTLS%20variant%EF%BC%88%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%E3%81%AFOpenSSL%E3%81%BE%E3%81%9F%E3%81%AFGnuTLS%EF%BC%89%E3%81%A7%E3%80%81%E9%80%9A%E5%B8%B8%E3%81%AETLS%E5%90%8C%E6%A7%98%E3%81%AB%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A4%9C%E8%A8%BC%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E6%A4%9C%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%81%AETLS%E3%81%A7%E4%BD%BF%E3%81%86%E9%8D%B5%E4%BA%A4%E6%8F%9B%E3%83%BB%E6%9A%97%E5%8F%B7%E3%83%BB%E7%BD%B2%E5%90%8D%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%AF%20tls-ciphers%20%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E3%83%A9%E3%83%99%E3%83%AB%E3%81%AFopenssl%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E6%8C%87%E5%AE%9A%E6%9B%B8%E5%BC%8F%E3%81%AB%E6%BA%96%E3%81%98%E3%81%A6%E3%81%84%E3%81%A6%20openvpn%20--show-tls%E3%81%A7%E5%88%86%E3%81%8B%E3%82%8B%E3%80%82%E3%81%B2%E3%81%A9%E3%81%84%E5%91%BD%E5%90%8D%E8%A6%8F%E5%89%87%E3%81%A0%E3%80%82%3Cbr%3E%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AF%E5%85%B1%E9%80%9A%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%EF%BC%88SNI%E3%81%AF%E9%9D%9E%E5%AF%BE%E5%BF%9C%EF%BC%89%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AF%E5%80%8B%E5%88%A5%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%80%82%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%20cert%2C%20key%E3%81%A7%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%A8%E7%A7%98%E5%AF%86%E9%8D%B5%E3%82%92%E6%8C%87%E5%AE%9A%E3%80%82%3Cbr%3E%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AF%E3%80%80ca%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9FCA%E3%81%8B%E3%82%89%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E6%A4%9C%E8%A8%BC%E3%81%95%E3%82%8C%E3%80%81%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E5%90%8D%E5%89%8D%EF%BC%88CommonName%E3%81%A0%E3%81%91%E3%82%89%E3%81%97%E3%81%84%EF%BC%89%E3%81%AE%E6%A4%9C%E8%A8%BC%E3%81%A8%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E6%A4%9C%E8%A8%BC%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E5%A4%B1%E5%8A%B9%E3%81%AFCRL%EF%BC%88%E5%A4%B1%E5%8A%B9%E3%83%AA%E3%82%B9%E3%83%88%EF%BC%89%E3%81%AE%E3%81%BF%E5%AF%BE%E5%BF%9C%E3%80%81crl-verify%E3%81%A7%E6%9C%89%E5%8A%B9%E5%8C%96%E3%80%82%3Cbr%3E%3Cbr%3E%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AB%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%AD%98%E5%88%A5%E3%82%84%E3%83%AD%E3%82%B0%E3%81%AB%E8%A8%98%E9%8C%B2%E3%81%95%E3%82%8C%E3%82%8B%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E5%90%8D%E3%81%AF%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AEcommon%20name%E3%81%A7%E8%A1%8C%E3%82%8F%E3%82%8C%E3%82%8B%E3%80%82%E4%B8%80%E5%BF%9C%E4%B8%80%E9%83%A8%E6%96%87%E5%AD%97%E3%81%AF%E9%99%A4%E5%8E%BB%E3%81%95%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%A0%E3%81%8C%E3%80%81%20%E8%A8%BC%E6%98%8E%E6%9B%B8%E7%99%BA%E8%A1%8C%E5%87%A6%E7%90%86%E3%82%92%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AF%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%84%E5%81%BD%E8%A3%85%E3%81%AB%E6%B3%A8%E6%84%8F%E3%80%82%3Cbr%3E%E3%81%BE%E3%81%9F%E4%B8%80%E3%81%A4%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E4%BD%BF%E3%81%84%E3%81%BE%E3%82%8F%E3%81%97%E3%81%9F%E8%A4%87%E6%95%B0%E7%AB%AF%E6%9C%AB%E3%81%8B%E3%82%89%E5%90%8C%E6%99%82%E6%8E%A5%E7%B6%9A%E3%82%82%E8%A8%B1%E5%8F%AF%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8C%E3%80%81%E3%83%AD%E3%82%B0%E3%81%8C%E9%9D%A2%E5%80%92%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%97%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E%E9%8D%B5%E4%BA%A4%E6%8F%9B%E3%81%AFECDHE%E3%82%82%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8C%E3%80%81%E6%9B%B2%E7%B7%9A%E3%81%AE%E6%8C%87%E5%AE%9A%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%AA%E3%81%84%E3%80%82DHE%E3%81%AFdhparam%E3%81%8C%20dh%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E6%9A%97%E5%8F%B7%E5%8C%96%3Cbr%3E%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%81%AF%E5%88%B6%E5%BE%A1%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%A7%E5%85%B1%E6%9C%89%E3%81%97%E3%81%9F%E9%8D%B5%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%A8%E7%BD%B2%E5%90%8D%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%3Cbr%3E%3Cbr%3E%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E6%9A%97%E5%8F%B7%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%AF%20Blowfish%E3%80%82%20%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%8A%E3%81%A7%E3%81%AF%20cipher%20%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%20%E9%8D%B5%E9%95%B7%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8Bkeysize%E3%81%AF%E5%8F%A4%E3%81%84%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E7%94%A8%E3%81%AA%E3%81%AE%E3%81%A7%E4%BB%8A%E3%81%AF%E4%BD%BF%E3%82%8F%E3%81%9Acipher%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E7%BD%B2%E5%90%8D%E3%81%AFHMAC%E3%81%A7%E3%80%81%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AFSHA1%E3%80%82%20auth%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E6%9A%97%E5%8F%B7%E3%83%A2%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A%E3%81%AF%E5%A4%96%E5%90%91%E3%81%8D%E3%81%AB%E3%81%AE%E3%81%BF%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A8%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E5%80%8B%E5%88%A5%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%8C%E5%BF%85%E8%A6%81%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%84%E3%82%84%E3%81%93%E3%81%97%E3%81%84%E3%81%93%E3%81%A8%E3%81%ABcipher%E3%81%A7%E7%BD%B2%E5%90%8D%E3%81%A4%E3%81%8D%E3%81%AEAES-128-CBC-HMAC-SHA1%E3%82%82%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82GCM%E3%82%92%E3%81%A4%E3%81%8B%E3%81%A3%E3%81%9FAEAD%E7%BD%B2%E5%90%8D%E3%81%AF%E3%83%91%E3%83%83%E3%83%81%E3%81%AF%E3%81%82%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AE%E3%81%BE%E3%81%A0%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%E5%88%A9%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA%E6%9A%97%E5%8F%B7%E3%81%AF%20openvpn%20--show-ciphers%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3Ecomp-lzo%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7LZO%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E5%9C%A7%E7%B8%AE%E3%81%8C%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%80%81%E4%BB%96%E3%81%AB%E3%82%82%E3%83%93%E3%83%AB%E3%83%89%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7snappy%E3%80%81LZ4%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E5%9C%A7%E7%B8%AE%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%94%BB%E6%92%83%E8%80%85%E3%81%8C%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7CRIME%E6%94%BB%E6%92%83%E3%81%8C%E5%8E%9F%E7%90%86%E7%9A%84%E3%81%AB%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%3Cbr%3E%E3%81%9F%E3%81%A0%E5%9C%A7%E7%B8%AE%E3%81%AF%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E5%8D%98%E4%BD%8D%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81TLS%E4%B8%8A%E3%81%AECRIME%E5%90%8C%E6%A7%98%E5%90%8C%E4%B8%80%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E6%94%BB%E6%92%83%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%81%8C%E4%B9%97%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A8VPN%E3%81%AE%E5%87%BA%E5%8F%A3%E5%81%B4%E3%81%8C%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E5%95%8F%E9%A1%8C%E3%81%AF%E3%81%AA%E3%81%84%E3%81%AF%E3%81%9A%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E6%9A%97%E5%8F%B7%E5%8C%96%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%AF%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7%E3%81%A8sliding%20window%EF%BC%88%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A764%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%2F15%E7%A7%92%EF%BC%89%E3%81%A7%E7%AE%A1%E7%90%86%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%E3%81%A4%E3%81%BE%E3%82%8A%E7%9F%AD%E6%99%82%E9%96%93%E3%81%AE%E9%A0%86%E5%BA%8F%E5%A4%89%E5%8C%96%E3%81%A8%E9%87%8D%E8%A4%87%E3%81%AF%E8%A8%B1%E5%AE%B9%E3%81%95%E3%82%8C%E3%80%81%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%82%84%E9%87%8D%E8%A4%87%E3%81%AF%E4%B8%8A%E4%BD%8D%E3%83%AC%E3%82%A4%E3%83%A4%E3%81%AE%E5%9B%9E%E5%BE%A9%E5%87%A6%E7%90%86%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3Eno-replay%E3%81%A8no-iv%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E3%81%82%E3%82%8A%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7%E3%81%A8IV%E3%82%92%E7%9C%81%E7%95%A5%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8C%E3%80%81%E3%83%AA%E3%83%97%E3%83%AC%E3%82%A4%E3%81%A8%E6%9A%97%E5%8F%B7%E6%96%87%E4%B8%80%E8%87%B4%E6%94%BB%E6%92%83%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%87%E5%9B%9E%E5%BE%A9%EF%BC%88BEAST%E6%94%BB%E6%92%83%E3%81%A8%E5%90%8C%E3%81%98%EF%BC%89%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AB%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%A6%E3%81%AF%E3%81%84%E3%81%91%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3Efloat%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%AA%E3%81%84%E9%99%90%E3%82%8A%E3%80%81%E5%90%84%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%BB%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AF%E5%9B%BA%E5%AE%9A%E3%81%95%E3%82%8C%E4%BB%96%E3%81%AE%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%8B%E3%82%89%E3%81%AE%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%AF%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E7%AE%A1%E7%90%86%3Cbr%3E%3Cbr%3EL3%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AF%E5%86%85%E9%83%A8%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E6%A9%9F%E8%83%BD%E3%81%8C%E3%81%82%E3%82%8A%E3%80%81%E6%9C%80%E4%BD%8E%E9%99%90%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%88%E7%AE%A1%E7%90%86%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E9%96%93%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%81%AE%E5%88%86%E9%9B%A2%E3%81%8C%E5%8F%AF%E8%83%BD%E3%80%82%3Cbr%3E%3Cbr%3E%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E7%9A%84%E3%81%AA%E6%A9%9F%E8%83%BD%E3%81%AF%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81OS%E5%81%B4%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%A9%9F%E6%A7%8B%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%20%E7%89%B9%E3%81%ABL2%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AFARP%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AA%E3%81%A9%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%82%82%E5%BF%98%E3%82%8C%E3%81%9A%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E6%AF%8E%E3%81%AE%E3%83%88%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%81%AF%20status%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E5%AE%9A%E6%9C%9F%E7%9A%84%E3%81%AB%E3%83%80%E3%83%B3%E3%83%97%E5%8F%AF%E8%83%BD%E3%80%82IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%AF%20ifconfig-pool-persist%20%E3%81%A7%E5%9B%BA%E5%AE%9A%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%8C%E5%8F%AF%E8%83%BD%E3%80%82%3Cbr%3E%3Cbr%3Eshaper%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%BD%93%E3%82%8A%E3%81%AE%E5%A4%96%E5%90%91%E3%81%8D%E9%80%9F%E5%BA%A6%E5%88%B6%E9%99%90%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%A7%E3%80%81client-connect%E3%83%95%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E3%81%88%E3%81%B0%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E6%AF%8E%E3%81%AB%E7%95%B0%E3%81%AA%E3%82%8B%E9%80%9F%E5%BA%A6%E5%88%B6%E9%99%90%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%82%E5%87%BA%E6%9D%A5%E3%82%8B%E3%82%88%E3%81%86%E3%81%A0%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E5%86%85%E5%90%91%E3%81%8D%E3%81%AE%E9%80%9F%E5%BA%A6%E5%88%B6%E9%99%90%E3%81%AF%E8%A6%8B%E5%BD%93%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AB%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E5%88%A5%E3%81%AB%E7%B4%B0%E3%81%8B%E3%81%84%E8%A8%AD%E5%AE%9A%E3%82%84%E8%AA%8D%E8%A8%BC%E3%82%92%E3%81%97%E3%81%9F%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E3%83%95%E3%83%83%E3%82%AF%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E7%B5%8C%E7%94%B1%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8B%95%E7%9A%84%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%E3%81%A9%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E9%A0%85%E7%9B%AE%E3%81%8C%E5%8B%95%E7%9A%84%E7%94%9F%E6%88%90%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E8%A8%98%E8%BC%89%E3%81%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81%E5%80%8B%E5%88%A5%E3%81%AB%E6%A4%9C%E8%A8%BC%E3%81%8C%E5%BF%85%E8%A6%81%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-573701"><p style="margin: 1.2em 0px ! important">OpenVPNのセキュリティ周りの動作について気になった点をメモ</p>
<p style="margin: 1.2em 0px ! important">OpenVPN 2.3系、証明書認証を前提。だいたいmanpageから。
<a href="https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html">https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html</a></p>
<h2 id="openvpn-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em; border-bottom: 1px solid #cccccc">OpenVPNプロトコル</h2>
<ul style="margin: 1.2em 0px; padding-left: 2em">
<li style="margin: 0.5em 0px">独自プロトコルで仕様書は見当たらない。ソースを読め。</li>
<li style="margin: 0.5em 0px">単一のUDPポート上で制御チャネル（認証など）とトラフィックチャネルを扱う（一応TCPでも動くが遅い）</li>
<li style="margin: 0.5em 0px">L2イーサネットまたはL3仮想化</li>
<li style="margin: 0.5em 0px">サーバー側からコントロールチャネルで、ルート設定とDHCP相当を配信可能</li>
<li style="margin: 0.5em 0px">IPv6ルート通知も可能だが、IPv6なDNSアドレスなどはまだ非対応</li>
<li style="margin: 0.5em 0px">コネクション毎に仮想ルータとサブネットを分けているため、IPv4アドレス消費はコネクション毎に4アドレス</li>
<li style="margin: 0.5em 0px">L3モードは内部IPルーティングもできるが、クライアント間の隔離以外にフィルタ機能はないので、必要なら内部ルーティングを無効化してiptablesなりで</li>
</ul>
<h2 id="-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em; border-bottom: 1px solid #cccccc">セキュリティフロー</h2>
<ol style="margin: 1.2em 0px; padding-left: 2em">
<li style="margin: 0.5em 0px">セッション開始パケットを事前共有鍵で署名（オプション）</li>
<li style="margin: 0.5em 0px">独自実装のTLS over UDPで、独自ルートCAで認証し、制御チャネルを暗号化</li>
<li style="margin: 0.5em 0px">実際の通信は別の鍵を共有してパケット単位で暗号化・署名</li>
</ol>
<p style="margin: 1.2em 0px ! important">各設定項目はデフォルトで安全よりに設定されている。ca, cert, keyを正しく設定すればしばらくは問題なさそう。</p>
<p style="margin: 1.2em 0px ! important">参考
<a href="https://openvpn.net/index.php/open-source/documentation/security-overview.html">https://openvpn.net/index.php/open-source/documentation/security-overview.html</a></p>
<h3 id="-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em">開始パケットの署名</h3>
<p style="margin: 1.2em 0px ! important">オプション。 通常OpenVPNサーバーはUDP上で構成され、最初のパケットを処理する際にとてもコストの高いTLS（over UDP）セッションの確立処理が必要になる。
偽装されたUDPパケットを送られるとCPUとメモリを浪費させるDoS攻撃ができてしまうので、最初のパケットには専用の共通鍵を用いたHMAC検証機構がある。
この鍵ファイルは tls-auth オプションで指定する。</p>
<p style="margin: 1.2em 0px ! important">ここで使う鍵はプロセス毎にしか指定できず、複数のクライアントがいるなら全てのクライアントで共通になる。この鍵を自動更新する機構はプロトコルには無い。
漏洩時に切り分けと鍵更新が面倒になるので多人数で利用するサーバーでの利用は難しいかもしれない。</p>
<h3 id="tls-over-udp" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em">TLS over UDP</h3>
<p style="margin: 1.2em 0px ! important">OpenVPNがUDP上に独自実装したTLS variant（バックエンドはOpenSSLまたはGnuTLS）で、通常のTLS同様に、サーバー検証とクライアント検証を行う。</p>
<p style="margin: 1.2em 0px ! important">このTLSで使う鍵交換・暗号・署名アルゴリズムは tls-ciphers で設定する。対応するラベルはopensslのアルゴリズム指定書式に準じていて openvpn —show-tlsで分かる。ひどい命名規則だ。
サーバーは共通のサーバー証明書を（SNIは非対応）、クライアントは個別のクライアント証明書を利用する。それぞれ cert, keyで証明書と秘密鍵を指定。
証明書は　ca オプションで指定したCAから認証されているか検証され、オプションで名前（CommonNameだけらしい）の検証と証明書タイプの検証もできる。</p>
<p style="margin: 1.2em 0px ! important">証明書の失効はCRL（失効リスト）のみ対応、crl-verifyで有効化。</p>
<p style="margin: 1.2em 0px ! important">基本的にクライアント識別やログに記録されるクライアント名はクライアント証明書のcommon nameで行われる。一応一部文字は除去されるようだが、 証明書発行処理を自動化する際はログインジェクションや偽装に注意。
また一つのクライアント証明書を使いまわした複数端末から同時接続も許可できるが、ログが面倒になるのでおすすめしない。</p>
<p style="margin: 1.2em 0px ! important">鍵交換はECDHEも指定できるが、曲線の指定方法がない。DHEはdhparamが dh オプションで指定できる。</p>
<h3 id="-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em">トラフィック暗号化</h3>
<p style="margin: 1.2em 0px ! important">トラフィックは制御チャネルで共有した鍵を使って暗号化と署名を行っている</p>
<p style="margin: 1.2em 0px ! important">デフォルトの暗号アルゴリズムは Blowfish。 設定ファイル上では cipher で設定する。 鍵長を指定するkeysizeは古いアルゴリズム用なので今は使わずcipherで指定する。
パケット署名はHMACで、デフォルトはSHA1。 auth オプションで指定する。</p>
<p style="margin: 1.2em 0px ! important">暗号モード設定は外向きにのみ適用されるので、クライアントとサーバーの両方で個別に設定が必要。</p>
<p style="margin: 1.2em 0px ! important">ややこしいことにcipherで署名つきのAES-128-CBC-HMAC-SHA1も指定できる。GCMをつかったAEAD署名はパッチはあるもののまだ取り込まれていない。
利用可能な暗号は openvpn —show-ciphersでわかる。</p>
<p style="margin: 1.2em 0px ! important">comp-lzoオプションでLZOパケット圧縮が利用でき、他にもビルドオプションでsnappy、LZ4に対応する。
パケット圧縮を有効にすると、攻撃者がトラフィックを生成することでCRIME攻撃が原理的には可能になる。
ただ圧縮はパケット単位なので、TLS上のCRIME同様同一セッションに攻撃トラフィックが乗る必要がある。ブラウザとVPNの出口側がセキュアであれば問題はないはず。</p>
<p style="margin: 1.2em 0px ! important">暗号化パケットはシーケンス番号とsliding window（デフォルトで64パケット/15秒）で管理している。つまり短時間の順序変化と重複は許容され、パケットのドロップや重複は上位レイヤの回復処理に依存している。</p>
<p style="margin: 1.2em 0px ! important">no-replayとno-ivオプションがありシーケンス番号とIVを省略できるが、リプレイと暗号文一致攻撃による平文回復（BEAST攻撃と同じ）が可能になるため基本的に有効にしてはいけない。</p>
<p style="margin: 1.2em 0px ! important">floatオプションを指定しない限り、各コネクションのリモートIPアドレス・ポートは固定され他のアドレスからのパケットはドロップされる。</p>
<h2 id="-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.2em; border-bottom: 1px solid #cccccc">トラフィックとクライアント管理</h2>
<p style="margin: 1.2em 0px ! important">L3モードでは内部ルーティング機能があり、最低限のルート管理とクライアント間トラフィックの分離が可能。</p>
<p style="margin: 1.2em 0px ! important">ファイアウォール的な機能はないので、OS側のフィルタ機構を使う。 特にL2モードではARPフィルタなどイーサネットレベルのフィルタリングも忘れずに設定する。</p>
<p style="margin: 1.2em 0px ! important">クライアント毎のトラフィックは status オプションで定期的にダンプ可能。IPアドレス割り当ては ifconfig-pool-persist で固定割り当てが可能。</p>
<p style="margin: 1.2em 0px ! important">shaperオプションでコネクション当りの外向き速度制限が可能で、client-connectフックを使えばクライアント毎に異なる速度制限を生成することも出来るようだ。ただし内向きの速度制限は見当たらない。</p>
<p style="margin: 1.2em 0px ! important">基本的にクライアント別に細かい設定や認証をしたい場合は、フックスクリプト経由で設定ファイルを動的生成する。
どのオプション項目が動的生成に対応しているか記載がないので、個別に検証が必要。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/389583474.html">
<link>http://causeless.seesaa.net/article/389583474.html</link>
<title>HP製サーバーのユーザは今すぐファームウェアのダウンロードを</title>
<description>HPがこれまでのサポート方針を変更し、今後のファームウェアアップデートは保証期間内あるいは長期サポートの契約者にのみにアクセスが制限されることになった。 HP社のFAQ2014年1月以前に公開されたファームウェアは今のところ一般に公開されているようだが、いつまで配信が続くかは不透明だ。  PC world Proliant ML110、ML115シリーズや、MicroServerなど、HP製の安価なサーバー製品は個人で利用している人も多いと思われるが、そのほとんど全ては延長サ..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2014-02-23T23:18:30+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="HP%E3%81%8C%E3%81%93%E3%82%8C%E3%81%BE%E3%81%A7%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E6%96%B9%E9%87%9D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%80%81%E4%BB%8A%E5%BE%8C%E3%81%AE%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AF%E4%BF%9D%E8%A8%BC%E6%9C%9F%E9%96%93%E5%86%85%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E9%95%B7%E6%9C%9F%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E5%A5%91%E7%B4%84%E8%80%85%E3%81%AB%E3%81%AE%E3%81%BF%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%8C%E5%88%B6%E9%99%90%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%80%82%20%5BHP%E7%A4%BE%E3%81%AEFAQ%5D(http%3A%2F%2Fh20564.www2.hp.com%2Fportal%2Fsite%2Fhpsc%2Fpublic%2Fkb%2FdocDisplay%2F%3FdocId%3Demr_na-c04093817)%3Cbr%3E%3Cbr%3E2014%E5%B9%B41%E6%9C%88%E4%BB%A5%E5%89%8D%E3%81%AB%E5%85%AC%E9%96%8B%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8D%E4%B8%80%E8%88%AC%E3%81%AB%E5%85%AC%E9%96%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A0%E3%81%8C%E3%80%81%E3%81%84%E3%81%A4%E3%81%BE%E3%81%A7%E9%85%8D%E4%BF%A1%E3%81%8C%E7%B6%9A%E3%81%8F%E3%81%8B%E3%81%AF%E4%B8%8D%E9%80%8F%E6%98%8E%E3%81%A0%E3%80%82%C2%A0%20%5BPC%20world%5D(http%3A%2F%2Fwww.pcworld.com%2Farticle%2F2095434%2Fhp-starts-charging-for-server-firmware-updates.html)%20%3Cbr%3E%3Cbr%3EProliant%20ML110%E3%80%81ML115%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%E3%82%84%E3%80%81MicroServer%E3%81%AA%E3%81%A9%E3%80%81HP%E8%A3%BD%E3%81%AE%E5%AE%89%E4%BE%A1%E3%81%AA%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A3%BD%E5%93%81%E3%81%AF%E5%80%8B%E4%BA%BA%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E4%BA%BA%E3%82%82%E5%A4%9A%E3%81%84%E3%81%A8%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%8C%E3%80%81%E3%81%9D%E3%81%AE%E3%81%BB%E3%81%A8%E3%82%93%E3%81%A9%E5%85%A8%E3%81%A6%E3%81%AF%E5%BB%B6%E9%95%B7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AA%E3%81%A9%E5%8F%97%E3%81%91%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%A0%E3%82%8D%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E4%B8%8A%E5%BF%85%E8%A6%81%E3%81%AA%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AF%E4%BB%8A%E5%BE%8C%E3%82%82%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E3%81%93%E3%81%A8%E3%81%A0%E3%81%8C%E3%80%81%E4%BB%8A%E5%BE%8C%E5%85%AC%E5%BC%8F%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A7%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%82%BF%E4%B8%80%E8%88%AC%E5%85%AC%E9%96%8B%E3%81%8C%E5%81%9C%E6%AD%A2%E3%81%95%E3%82%8C%E3%81%9F%E5%A0%B4%E5%90%88%E3%80%81%E6%B7%B7%E4%B9%B1%E3%81%AB%E4%BE%BF%E4%B9%97%E3%81%97%E3%81%A6%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AB%E5%81%BD%E8%A3%85%E3%81%97%E3%81%9F%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9%E3%83%BB%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%95%E3%81%9B%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8C%E7%8F%BE%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%AF%E9%81%BF%E3%81%91%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%E4%BB%8A%E3%81%AE%E3%81%86%E3%81%A1%E3%81%AB%E5%85%AC%E5%BC%8F%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8B%E3%82%89%E5%AE%89%E5%85%A8%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%80%81%E6%89%8B%E5%85%83%E3%81%AB%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%93%E3%81%A8%E3%82%92%E5%BC%B7%E3%81%8F%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%82%E3%81%97%E7%AE%A1%E7%90%86%E4%B8%8B%E3%81%ABHP%E8%A3%BD%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AA%E3%82%89%E3%80%81%E4%B8%8D%E7%94%A8%E5%BF%83%E3%81%AA%E6%9C%AB%E7%AB%AF%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E5%A4%89%E3%81%AA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8B%E3%82%89%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%81%8D%E3%81%9F%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%82%BF%E3%82%82%E3%81%A9%E3%81%8D%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E3%81%82%E3%82%89%E3%81%8B%E3%81%98%E3%82%81%E6%B3%A8%E6%84%8F%E3%81%97%E3%81%A6%E3%81%8A%E3%81%84%E3%81%9F%E3%81%BB%E3%81%86%E3%81%8C%E3%81%84%E3%81%84%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/edit/input?id=389583474" id="markdown-here-wrapper-147899"><p style="margin: 0.5em 0px ! important">HPがこれまでのサポート方針を変更し、今後のファームウェアアップデートは保証期間内あるいは長期サポートの契約者にのみにアクセスが制限されることになった。 <a href="http://h20564.www2.hp.com/portal/site/hpsc/public/kb/docDisplay/?docId=emr_na-c04093817">HP社のFAQ</a></p>
<p style="margin: 0.5em 0px ! important">2014年1月以前に公開されたファームウェアは今のところ一般に公開されているようだが、いつまで配信が続くかは不透明だ。  <a href="http://www.pcworld.com/article/2095434/hp-starts-charging-for-server-firmware-updates.html">PC world</a> </p>
<p style="margin: 0.5em 0px ! important">Proliant ML110、ML115シリーズや、MicroServerなど、HP製の安価なサーバー製品は個人で利用している人も多いと思われるが、そのほとんど全ては延長サポートなど受けていないだろう。</p>
<p style="margin: 0.5em 0px ! important">セキュリティ上必要なアップデートは今後も提供されるということだが、今後公式ウェブサイトでのアップデータ一般公開が停止された場合、混乱に便乗してアップデータに偽装したウイルス・マルウェアをダウンロードさせようとするウェブサイトが現れるのは避けられない。
今のうちに公式ウェブサイトから安全なファイルをダウンロードして、手元にバックアップしておくことを強くおすすめする。</p>
<p style="margin: 0.5em 0px ! important">もし管理下にHP製のサーバーがあるなら、不用心な末端ユーザーが変なサイトからダウンロードしてきたアップデータもどきを実行することがないように、あらかじめ注意しておいたほうがいいかもしれない。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388565903.html">
<link>http://causeless.seesaa.net/article/388565903.html</link>
<title>SSD VPSのDigitalOceanがシンガポールリージョンを追加</title>
<description>VPSプロバイダのDigitalOceanがシンガポールリージョンをリリースした。DigitalOceanは標準でSSD、snapshotに対応、時間課金なのでAnsibleのテスト環境として利用している。ストレージがSSDだとテスト時間が大部分ネットワークレイテンシなので確認してみた。レイテンシ国内からのtracerouteは良い時に85msくらい。 AS133165NTT経由のときはいいけれど、telia.netに行ってしまうと西海岸経由で悲惨なことになる。経路依存なので..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2014-02-12T23:07:00+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="VPS%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80%E3%81%AE%5BDigitalOcean%5D(https%3A%2F%2Fwww.digitalocean.com%2F%3Frefcode%3Dc2fba6ffc5ef%20)%E3%81%8C%E3%82%B7%E3%83%B3%E3%82%AC%E3%83%9D%E3%83%BC%E3%83%AB%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%97%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3EDigitalOcean%E3%81%AF%E6%A8%99%E6%BA%96%E3%81%A7SSD%E3%80%81snapshot%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%80%81%E6%99%82%E9%96%93%E8%AA%B2%E9%87%91%E3%81%AA%E3%81%AE%E3%81%A7Ansible%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83%E3%81%A8%E3%81%97%E3%81%A6%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%8CSSD%E3%81%A0%E3%81%A8%E3%83%86%E3%82%B9%E3%83%88%E6%99%82%E9%96%93%E3%81%8C%E5%A4%A7%E9%83%A8%E5%88%86%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%86%E3%83%B3%E3%82%B7%E3%81%AA%E3%81%AE%E3%81%A7%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%20%E3%83%AC%E3%82%A4%E3%83%86%E3%83%B3%E3%82%B7%3Cbr%3E%E5%9B%BD%E5%86%85%E3%81%8B%E3%82%89%E3%81%AEtraceroute%E3%81%AF%E8%89%AF%E3%81%84%E6%99%82%E3%81%AB85ms%E3%81%8F%E3%82%89%E3%81%84%E3%80%82%20%5BAS133165%5D(http%3A%2F%2Fbgp.he.net%2FAS133165)%3Cbr%3E%3Cbr%3ENTT%E7%B5%8C%E7%94%B1%E3%81%AE%E3%81%A8%E3%81%8D%E3%81%AF%E3%81%84%E3%81%84%E3%81%91%E3%82%8C%E3%81%A9%E3%80%81telia.net%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%E8%A5%BF%E6%B5%B7%E5%B2%B8%E7%B5%8C%E7%94%B1%E3%81%A7%E6%82%B2%E6%83%A8%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%E7%B5%8C%E8%B7%AF%E4%BE%9D%E5%AD%98%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E5%BF%85%E8%A6%81%E3%81%AA%E5%A0%B4%E6%89%80%E3%81%8B%E3%82%89%20%60ping%20speedtest-sgp1.digitalocean.com%60%20%E3%81%97%E3%81%A6%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%9F%E3%81%BB%E3%81%86%E3%81%8C%E8%89%AF%E3%81%95%E3%81%9D%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%60%60%60%3Cbr%3E%C2%A07%C2%A0%20xe-7-4.a16.tokyjp01.jp.ra.gin.ntt.net%20(61.213.145.93)%C2%A0%2012.994%20ms%C2%A0%2013.205%20ms%C2%A0%2013.757%20ms%3Cbr%3E%C2%A08%C2%A0%20ae-6.r24.tokyjp05.jp.bb.gin.ntt.net%20(61.213.169.177)%C2%A0%2014.429%20ms%C2%A0%2013.953%20ms%C2%A0%2013.817%20ms%3Cbr%3E%C2%A09%C2%A0%20as-0.r20.sngpsi02.sg.bb.gin.ntt.net%20(129.250.4.91)%C2%A0%2076.973%20ms%C2%A0%2087.418%20ms%C2%A0%2087.652%20ms%3Cbr%3E10%C2%A0%20ae-1.r00.sngpsi02.sg.bb.gin.ntt.net%20(129.250.4.143)%C2%A0%2076.893%20ms%C2%A0%2087.259%20ms%C2%A0%2076.356%20ms%3Cbr%3E11%C2%A0%20116.51.27.150%20(116.51.27.150)%C2%A0%20101.476%20ms%C2%A0%20101.557%20ms%C2%A0%2097.790%20ms%3Cbr%3E12%C2%A0%20103.253.144.242%20(103.253.144.242)%C2%A0%2085.614%20ms%C2%A0%2094.697%20ms%C2%A0%2094.266%20ms%3Cbr%3E13%C2%A0%20***%20(***)%C2%A0%20100.764%20ms%C2%A0%2089.258%20ms%C2%A0%2088.088%20ms%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%60%60%60%3Cbr%3E%C2%A05%C2%A0%20ae-12.r24.tokyjp05.jp.bb.gin.ntt.net%20(129.250.5.92)%C2%A0%201.547%20ms%C2%A0%201.414%20ms%C2%A0%201.474%20ms%3Cbr%3E%C2%A06%C2%A0%20as-0.r20.sngpsi02.sg.bb.gin.ntt.net%20(129.250.4.91)%C2%A0%2079.530%20ms%C2%A0%2075.088%20ms%C2%A0%2075.270%20ms%3Cbr%3E%C2%A07%C2%A0%20ae-1.r00.sngpsi02.sg.bb.gin.ntt.net%20(129.250.4.143)%C2%A0%2075.647%20ms%C2%A0%2075.388%20ms%C2%A0%2075.380%20ms%3Cbr%3E%C2%A08%C2%A0%20116.51.27.150%20(116.51.27.150)%C2%A0%20229.987%20ms%C2%A0%20229.558%20ms%C2%A0%20230.153%20ms%3Cbr%3E%C2%A09%C2%A0%20103.253.144.242%20(103.253.144.242)%C2%A0%20201.196%20ms%C2%A0%20201.171%20ms%C2%A0%20201.127%20ms%3Cbr%3E13%C2%A0%20***%20(***)%C2%A0%20249.515%20ms%C2%A0%20238.729%20ms%C2%A0%20238.970%20ms%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E9%80%86%E5%90%91%E3%81%8D%E3%82%92%E8%A6%8B%E3%82%8B%E3%81%A8telia%E3%81%AE%E8%A5%BF%E6%B5%B7%E5%B2%B8%E7%B5%8C%E7%94%B1%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%3Cbr%3E%60%60%60%3Cbr%3E%C2%A03%C2%A0%20103.253.144.250%20(103.253.144.250)%C2%A0%2010.348%20ms%C2%A0%2010.335%20ms%C2%A0%2010.336%20ms%3Cbr%3E%C2%A04%C2%A0%2010ge-v107-mad-prov-ixn.airenetworks.es%20(62.115.40.169)%C2%A0%206.781%20ms%C2%A0%206.716%20ms%C2%A0%206.683%20ms%3Cbr%3E%C2%A05%C2%A0%20hnk-b2-link.telia.net%20(213.155.136.118)%C2%A0%2039.762%20ms%20hnk-b2-link.telia.net%20(80.91.245.149)%C2%A0%2039.921%20ms%C2%A0%2038.904%20ms%3Cbr%3E%C2%A06%C2%A0%20las-bb1-link.telia.net%20(213.155.132.215)%C2%A0%20205.099%20ms%C2%A0%20200.264%20ms%20las-bb1-link.telia.net%20(213.155.136.44)%C2%A0%20211.212%20ms%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E5%B8%AF%E5%9F%9F%3Cbr%3E%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8D%E3%82%B7%E3%83%B3%E3%82%AC%E3%83%9D%E3%83%BC%E3%83%AB%E5%9B%BD%E5%A4%96%E5%AE%9B%E3%81%8C%E8%A9%B0%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%80%81%E3%82%B7%E3%83%B3%E3%82%AC%E3%83%9D%E3%83%BC%E3%83%AB%E5%86%85%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%9B%B8%E6%89%8B%E3%81%A0%E3%81%A8%E5%8D%81%E5%88%86%E5%87%BA%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%BE%E3%81%9F%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%A4%E3%83%B3%E7%9B%B4%E5%BE%8C%E3%81%AA%E3%81%9B%E3%81%84%E3%81%8B%E7%9B%B4%E8%BF%91%E3%81%AE%E5%90%84%E7%A8%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%8B%E3%82%89%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%8C%E9%87%8D%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E6%A8%A1%E6%A7%98%E3%80%82%3Cbr%3E%3Cbr%3E%60%60%60%3Cbr%3EHosted%20by%20World's%20Fastest%20Indian%20(Tokyo)%20%5B5320.20%20km%5D%3A%2021.617%20ms%3Cbr%3ETesting%20download%20speed........................................%3Cbr%3EDownload%3A%2019.77%20Mbit%2Fs%3Cbr%3ETesting%20upload%20speed..................................................%3Cbr%3EUpload%3A%209.12%20Mbit%2Fs%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%60%60%60%3Cbr%3EHosted%20by%20Viewqwest%20Pte%20Ltd%20(Singapore)%20%5B7.42%20km%5D%3A%2026.385%20ms%3Cbr%3ETesting%20download%20speed........................................%3Cbr%3EDownload%3A%20151.81%20Mbit%2Fs%3Cbr%3ETesting%20upload%20speed..................................................%3Cbr%3EUpload%3A%2027.08%20Mbit%2Fs%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%23%23%20cpuinfo%3Cbr%3E%E3%83%A1%E3%83%A2%E3%83%AA512MB%E3%81%AE%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%83%AC%E3%83%83%E3%83%88%3Cbr%3E%3Cbr%3E%60%60%60%3Cbr%3Eprocessor%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%200%3Cbr%3Evendor_id%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%20GenuineIntel%3Cbr%3Ecpu%20family%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%206%3Cbr%3Emodel%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%202%3Cbr%3Emodel%20name%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%20QEMU%20Virtual%20CPU%20version%201.5.0%3Cbr%3Estepping%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%203%3Cbr%3Ecpu%20MHz%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%201999.999%3Cbr%3Ecache%20size%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%204096%20KB%3Cbr%3Efpu%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%20yes%3Cbr%3Efpu_exception%C2%A0%C2%A0%20%3A%20yes%3Cbr%3Ecpuid%20level%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%204%3Cbr%3Ewp%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%20yes%3Cbr%3Eflags%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%20fpu%20de%20pse%20tsc%20msr%20pae%20mce%20cx8%20apic%20sep%20mtrr%20pge%20mca%20cmov%20pse36%20clflush%20mmx%20fxsr%20sse%20sse2%20syscall%20nx%20lm%20up%20rep_good%20unfair_spinlock%20pni%20vmx%20cx16%20popcnt%20hypervisor%20lahf_lm%3Cbr%3Ebogomips%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%3A%203999.99%3Cbr%3Eclflush%20size%C2%A0%C2%A0%C2%A0%20%3A%2064%3Cbr%3Ecache_alignment%20%3A%2064%3Cbr%3Eaddress%20sizes%C2%A0%C2%A0%20%3A%2040%20bits%20physical%2C%2048%20bits%20virtual%3Cbr%3Epower%20management%3A%3Cbr%3E%60%60%60" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-714070"><p style="margin: 0.5em 0px ! important">VPSプロバイダの<a href="https://www.digitalocean.com/?refcode=c2fba6ffc5ef">DigitalOcean</a>がシンガポールリージョンをリリースした。</p>
<p style="margin: 0.5em 0px ! important">DigitalOceanは標準でSSD、snapshotに対応、時間課金なのでAnsibleのテスト環境として利用している。ストレージがSSDだとテスト時間が大部分ネットワークレイテンシなので確認してみた。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">レイテンシ</h2>
<p style="margin: 0.5em 0px ! important">国内からのtracerouteは良い時に85msくらい。 <a href="http://bgp.he.net/AS133165">AS133165</a></p>
<p style="margin: 0.5em 0px ! important">NTT経由のときはいいけれど、telia.netに行ってしまうと西海岸経由で悲惨なことになる。経路依存なので、必要な場所から ping speedtest-sgp1.digitalocean.com してチェックしたほうが良さそう。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"> 7  xe-7-4.a16.tokyjp01.jp.ra.gin.ntt.net (61.213.145.93)  12.994 ms  13.205 ms  13.757 ms
 8  ae-6.r24.tokyjp05.jp.bb.gin.ntt.net (61.213.169.177)  14.429 ms  13.953 ms  13.817 ms
 9  as-0.r20.sngpsi02.sg.bb.gin.ntt.net (129.250.4.91)  76.973 ms  87.418 ms  87.652 ms
10  ae-1.r00.sngpsi02.sg.bb.gin.ntt.net (129.250.4.143)  76.893 ms  87.259 ms  76.356 ms
11  116.51.27.150 (116.51.27.150)  101.476 ms  101.557 ms  97.790 ms
12  103.253.144.242 (103.253.144.242)  85.614 ms  94.697 ms  94.266 ms
13  *** (***)  100.764 ms  89.258 ms  88.088 ms
</pre><pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"> 5  ae-12.r24.tokyjp05.jp.bb.gin.ntt.net (129.250.5.92)  1.547 ms  1.414 ms  1.474 ms
 6  as-0.r20.sngpsi02.sg.bb.gin.ntt.net (129.250.4.91)  79.530 ms  75.088 ms  75.270 ms
 7  ae-1.r00.sngpsi02.sg.bb.gin.ntt.net (129.250.4.143)  75.647 ms  75.388 ms  75.380 ms
 8  116.51.27.150 (116.51.27.150)  229.987 ms  229.558 ms  230.153 ms
 9  103.253.144.242 (103.253.144.242)  201.196 ms  201.171 ms  201.127 ms
13  *** (***)  249.515 ms  238.729 ms  238.970 ms
</pre><p style="margin: 0.5em 0px ! important">逆向きを見るとteliaの西海岸経由している</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"> 3  103.253.144.250 (103.253.144.250)  10.348 ms  10.335 ms  10.336 ms
 4  10ge-v107-mad-prov-ixn.airenetworks.es (62.115.40.169)  6.781 ms  6.716 ms  6.683 ms
 5  hnk-b2-link.telia.net (213.155.136.118)  39.762 ms hnk-b2-link.telia.net (80.91.245.149)  39.921 ms  38.904 ms
 6  las-bb1-link.telia.net (213.155.132.215)  205.099 ms  200.264 ms las-bb1-link.telia.net (213.155.136.44)  211.212 ms
</pre><h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">帯域</h2>
<p style="margin: 0.5em 0px ! important">今のところシンガポール国外宛が詰まっているようで、シンガポール内のサーバー相手だと十分出ている。</p>
<p style="margin: 0.5em 0px ! important">またサービスイン直後なせいか直近の各種リポジトリからのパッケージダウンロードが重くなっている模様。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">Hosted by World&#39;s Fastest Indian (Tokyo) [5320.20 km]: 21.617 ms
Testing download speed........................................
Download: 19.77 Mbit/s
Testing upload speed..................................................
Upload: 9.12 Mbit/s
</pre><pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">Hosted by Viewqwest Pte Ltd (Singapore) [7.42 km]: 26.385 ms
Testing download speed........................................
Download: 151.81 Mbit/s
Testing upload speed..................................................
Upload: 27.08 Mbit/s
</pre><h2 id="cpuinfo" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">cpuinfo</h2>
<p style="margin: 0.5em 0px ! important">メモリ512MBのドロップレット</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 2
model name      : QEMU Virtual CPU version 1.5.0
stepping        : 3
cpu MHz         : 1999.999
cache size      : 4096 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 4
wp              : yes
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm up rep_good unfair_spinlock pni vmx cx16 popcnt hypervisor lahf_lm
bogomips        : 3999.99
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:
</pre></div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566102.html">
<link>http://causeless.seesaa.net/article/388566102.html</link>
<title>ツイッターのお気に入りリンク共有fav2markを公開</title>
<description>Twitterのお気に入り（ふぁぼったツイートのリスト）からリンクを抽出して、はてなブックマークで共有するOAuthアプリを作ってみた。https://fav2mark.usb0.net/conohaが開催しているこのこんというのに応募しようと思って約3日で作ったもの。基本機能はテストしているものの、実アカウントが少ないので絶賛人柱募集中。とにかくPythonでアプリ、プロセス管理、サーバー管理まで揃えている。応募用にSlideShareでまとめ（？）たもの↓    Fav2..</description>
<dc:subject>Python</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-12-31T21:22:06+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="Twitter%E3%81%AE%E3%81%8A%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%8A%EF%BC%88%E3%81%B5%E3%81%81%E3%81%BC%E3%81%A3%E3%81%9F%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%EF%BC%89%E3%81%8B%E3%82%89%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%97%E3%81%A6%E3%80%81%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%A7%E5%85%B1%E6%9C%89%E3%81%99%E3%82%8BOAuth%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3Ehttps%3A%2F%2Ffav2mark.usb0.net%2F%3Cbr%3E%3Cbr%3Econoha%E3%81%8C%E9%96%8B%E5%82%AC%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%AE%E3%81%93%E3%82%93%E3%81%A8%E3%81%84%E3%81%86%E3%81%AE%E3%81%AB%E5%BF%9C%E5%8B%9F%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E6%80%9D%E3%81%A3%E3%81%A6%E7%B4%843%E6%97%A5%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE%E3%80%82%E5%9F%BA%E6%9C%AC%E6%A9%9F%E8%83%BD%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AE%E3%80%81%E5%AE%9F%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%8C%E5%B0%91%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E7%B5%B6%E8%B3%9B%E4%BA%BA%E6%9F%B1%E5%8B%9F%E9%9B%86%E4%B8%AD%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%E3%81%A8%E3%81%AB%E3%81%8B%E3%81%8FPython%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%80%81%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%AE%A1%E7%90%86%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%AE%A1%E7%90%86%E3%81%BE%E3%81%A7%E6%8F%83%E3%81%88%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%E5%BF%9C%E5%8B%9F%E7%94%A8%E3%81%ABSlideShare%E3%81%A7%E3%81%BE%E3%81%A8%E3%82%81%EF%BC%88%EF%BC%9F%EF%BC%89%E3%81%9F%E3%82%82%E3%81%AE%E2%86%93%3Cbr%3E%3Cbr%3E%26lt%3Biframe%20src%3D%22http%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2F29489213%22%20width%3D%22427%22%20height%3D%22356%22%20frameborder%3D%220%22%20marginwidth%3D%220%22%20marginheight%3D%220%22%20scrolling%3D%22no%22%20style%3D%22border%3A1px%20solid%20%23CCC%3Bborder-width%3A1px%201px%200%3Bmargin-bottom%3A5px%22%20allowfullscreen%26gt%3B%20%26lt%3B%2Fiframe%26gt%3B%20%26lt%3Bdiv%20style%3D%22margin-bottom%3A5px%22%26gt%3B%20%26lt%3Bstrong%26gt%3B%20%26lt%3Ba%20href%3D%22https%3A%2F%2Fwww.slideshare.net%2Fcause_less%2Ffav2mark%22%20title%3D%22Fav2mark%20%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%83%A1%E3%83%A2%22%20target%3D%22_blank%22%26gt%3BFav2mark%20%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%83%A1%E3%83%A2%26lt%3B%2Fa%26gt%3B%20%26lt%3B%2Fstrong%26gt%3B%20from%20%26lt%3Bstrong%26gt%3B%26lt%3Ba%20href%3D%22http%3A%2F%2Fwww.slideshare.net%2Fcause_less%22%20target%3D%22_blank%22%26gt%3Bcause_less%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fstrong%26gt%3B%20%26lt%3B%2Fdiv%26gt%3B%3Cbr%3E%3Cbr%3E%3Cbr%3E%E6%99%82%E9%96%93%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%AF%E3%81%A0%E3%81%84%E3%81%9F%E3%81%84OAuth%E3%81%A8MongoEngine%E3%81%AE%E3%81%9B%E3%81%84%E3%80%82%3Cbr%3EMongoEngine%E3%81%AE%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA%E3%81%8C%E5%A4%89%E3%81%AA%E3%81%AE%E3%81%A7%E3%83%A2%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%91%E3%83%83%E3%83%81%E3%81%97%E3%81%A6%E6%80%A7%E8%83%BD%E3%82%92%E7%A8%BC%E3%81%84%E3%81%A7%E3%81%84%E3%81%9F%E3%82%8A%E3%81%A8%E3%80%81%E5%86%85%E9%83%A8%E7%9A%84%E3%81%AB%E3%81%AF%E4%BD%99%E3%82%8A%E7%BE%8E%E3%81%97%E3%81%8F%E3%81%AA%E3%81%84%E3%81%91%E3%82%8C%E3%81%A9%E3%80%81%E3%81%9D%E3%81%93%E3%81%9D%E3%81%93%E3%81%AE%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92openvz%E3%81%AAVPS%E3%81%A7%E3%82%82%E8%A3%81%E3%81%91%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABgevent%E3%80%81celery%E3%80%81redis%20%E3%81%A7%E9%A0%91%E5%BC%B5%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E5%85%B1%E6%9C%89%E5%85%88%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AF%20http%3A%2F%2Fb.hatena.ne.jp%2Fcauseless%2Fbookmark%3Cbr%3E%EF%BC%88%E3%83%AA%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%97%E3%81%9F%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E5%85%B1%E6%9C%89%E3%81%A8%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E5%8C%96%E6%9C%89%E5%8A%B9%EF%BC%89%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%202013-03-01%E8%BF%BD%E8%A8%98%3Cbr%3E%3Cbr%3E*%20%E5%86%85%E9%83%A8%E7%9A%84%E3%81%AB%E8%89%B2%E3%80%85%E3%81%A8%E5%A4%89%E6%9B%B4%E3%80%81%E5%85%A8%E3%81%A6%E3%81%AE%E7%9F%AD%E7%B8%AEURL%E3%82%92%E5%B1%95%E9%96%8B%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/edit/input?id=388566102&amp;finished_from_edit=1&amp;finished=1" id="markdown-here-wrapper-58919"><p style="margin: 0.5em 0px ! important">Twitterのお気に入り（ふぁぼったツイートのリスト）からリンクを抽出して、はてなブックマークで共有するOAuthアプリを作ってみた。</p>
<p style="margin: 0.5em 0px ! important"><a href="https://fav2mark.usb0.net/">https://fav2mark.usb0.net/</a></p>
<p style="margin: 0.5em 0px ! important">conohaが開催しているこのこんというのに応募しようと思って約3日で作ったもの。基本機能はテストしているものの、実アカウントが少ないので絶賛人柱募集中。</p>
<p style="margin: 0.5em 0px ! important">とにかくPythonでアプリ、プロセス管理、サーバー管理まで揃えている。
応募用にSlideShareでまとめ（？）たもの↓</p>
<p style="margin: 0.5em 0px ! important"><iframe src="http://www.slideshare.net/slideshow/embed_code/29489213" marginwidth="0" marginheight="0" style="border-style: solid; border-color: #cccccc; -moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-border-left-colors: none; border-image: none; border-width: 1px 1px 0px; margin-bottom: 5px" frameborder="0" height="356" scrolling="no" width="427"> </iframe> </p><div style="margin-bottom: 5px"> <strong> <a href="https://www.slideshare.net/cause_less/fav2mark" target="_blank" title="Fav2mark アプリ開発メモ">Fav2mark アプリ開発メモ</a> </strong> from <strong><a href="http://www.slideshare.net/cause_less" target="_blank">cause_less</a></strong> </div><p style="margin: 0.5em 0px ! important">&#160;</p>
<p style="margin: 0.5em 0px ! important">時間がかかったのはだいたいOAuthとMongoEngineのせい。
MongoEngineのシリアライズが変なのでモンキーパッチして性能を稼いでいたりと、内部的には余り美しくないけれど、そこそこのアカウントをopenvzなVPSでも裁けるようにgevent、celery、redis で頑張ってみた。</p>
<p style="margin: 0.5em 0px ! important">共有先サンプルは <a href="http://b.hatena.ne.jp/causeless/bookmark">http://b.hatena.ne.jp/causeless/bookmark</a>
（リツイートしたリンクの共有とツイートのコメント化有効）</p>
<h3 id="2013-03-01-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">2013-03-01追記</h3>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">内部的に色々と変更、全ての短縮URLを展開するように</li>
</ul>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566294.html">
<link>http://causeless.seesaa.net/article/388566294.html</link>
<title>uWSGIで複数バージョンのPythonを動かす</title>
<description>今のところuWSGIはvirtualenvで作ったアプリ別のモジュールをロードすることは出来るものの、システムのlibpython.soを直接使っているため、そのままではビルド時のPythonしか動かない。異なるバージョンのpythonを含むvirutalenvに入ろうとすると、PYTHONPATHが違うためimport siteの時点でモジュールのロードに失敗する。Python version: 2.6.6 (r266:84292, Nov 22 2013, 12:16:2..</description>
<dc:subject>Python</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-12-05T21:58:20+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8DuWSGI%E3%81%AFvirtualenv%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E5%88%A5%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%87%BA%E6%9D%A5%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AE%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AElibpython.so%E3%82%92%E7%9B%B4%E6%8E%A5%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A7%E3%81%AF%E3%83%93%E3%83%AB%E3%83%89%E6%99%82%E3%81%AEPython%E3%81%97%E3%81%8B%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEpython%E3%82%92%E5%90%AB%E3%82%80virutalenv%E3%81%AB%E5%85%A5%E3%82%8D%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81PYTHONPATH%E3%81%8C%E9%81%95%E3%81%86%E3%81%9F%E3%82%81%60import%20site%60%E3%81%AE%E6%99%82%E7%82%B9%E3%81%A7%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E3%83%AD%E3%83%BC%E3%83%89%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%60%60%60%3Cbr%3EPython%20version%3A%202.6.6%20(r266%3A84292%2C%20Nov%2022%202013%2C%2012%3A16%3A22)%C2%A0%20%5BGCC%204.4.7%2020120313%20(Red%20Hat%204.4.7-4)%5D%3Cbr%3E...%3Cbr%3ESet%20PythonHome%20to%20%2Fpath%2Fto%2Fpy27env%3Cbr%3E'import%20site'%20failed%3B%20use%20-v%20for%20traceback%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E4%BB%96%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEpython%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AB%E3%81%AF%E3%80%81%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8Bpython%E3%81%A8python%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E5%AF%BE%E5%BF%9C%E3%81%AEuWSGI%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%97%E7%9B%B4%E3%81%99%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%20%E3%83%93%E3%83%AB%E3%83%89%E6%89%8B%E9%A0%86%3Cbr%3E%3Cbr%3E%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%81%BE%E3%81%BEpip%E3%81%AA%E3%81%A9%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81python%E4%BB%96%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E5%85%A8%E9%83%A8%E5%85%A5%E3%82%8A%E3%81%AEuwsgi%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AF%E3%81%9A%E3%80%82%3Cbr%3E%EF%BC%88pip%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8C%E3%81%B0%60%2Ftmp%2Fpip-build-root%2Fuwsgi%60%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E5%B1%95%E9%96%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E3%81%93%E3%82%8C%E3%82%92%E5%85%83%E3%81%AB%E3%83%93%E3%83%AB%E3%83%89%EF%BC%89%3Cbr%3E%3Cbr%3Euwsgi%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AEbuildconf%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%81%AF%E3%80%81uwsgi%E6%9C%AC%E4%BD%93%E3%83%93%E3%83%AB%E3%83%89%E7%94%A8%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3Epython%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%60buildconf%2Fnolang.ini%60%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E3%81%8B%E3%80%81%60main_plugin%3D%60%E3%81%8B%E3%82%89python%E3%81%A8gevent%E3%82%92%E6%8A%9C%E3%81%84%E3%81%A6%E3%81%8A%E3%81%8F%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%EF%BC%88gevent%E3%82%82python%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%83%93%E3%83%AB%E3%83%89%E5%87%BA%E6%9D%A5%E3%81%AA%E3%81%84%EF%BC%89%3Cbr%3E%60%60%60%3Cbr%3Epython%20uwsgiconfig.py%20--build%20nolang%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E6%AC%A1%E3%81%AB%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A0%E3%81%8C%E3%80%81uwsgiconfig.py%E3%81%AF%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%99%E3%82%8Blibpython.so%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E6%99%82%E3%81%AEPython%E7%92%B0%E5%A2%83%E3%81%8B%E3%82%89%E6%8E%A2%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%89%E3%81%97%E3%81%8F%E3%80%81%E3%81%BB%E3%81%97%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEshared%E3%81%AApython%E3%81%A8libpython%E3%81%8C%E3%82%BB%E3%83%83%E3%83%88%E3%81%A7%E5%BF%85%E8%A6%81%E3%80%82%3Cbr%3E%E3%81%95%E3%82%89%E3%81%AB%E9%9D%A2%E5%80%92%E3%81%AA%E3%81%93%E3%81%A8%E3%81%ABpython%E3%83%93%E3%83%AB%E3%83%89%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AEpythonz%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E3%81%AFshared%E3%81%AA%E3%83%93%E3%83%AB%E3%83%89%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8C%E3%81%AA%E3%81%84%E3%80%82%EF%BC%88OSX%E3%81%AF%E5%88%A5%EF%BC%9F%EF%BC%89%3Cbr%3E%3Cbr%3E%E4%B8%80%E5%BF%9Cconfigure%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%B8%A1%E3%81%99%E3%81%93%E3%81%A8%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%80%81%3Cbr%3E%60%60%60shell%3Cbr%3Epythonz%20install%202.7.6%20--verbose%20--configure%3D'--enable-shared%20LDFLAGS%3D%22-Wl%2C-rpath%20-Wl%2C%5C%5C%24%24ORIGIN%2F..%2Flib%22'%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E6%89%8B%E5%8B%95%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%3Cbr%3E%60%60%60shell%3Cbr%3E.%2Fconfigure%20--prefix%3D%2Fusr%2Flocal%2Fpython27%20--enable-shared%20LDFLAGS%3D%22-Wl%2C-rpath%20%2Fusr%2Flocal%2Fpython27%2Flib%22%3Cbr%3Emake%3Cbr%3Esudo%20make%20altinstall%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%3Cbr%3E%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEshared%E3%81%AApython%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%A7%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%80%82plugins%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%8C%E5%85%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%60%60%60%3Cbr%3Epython2.7%20uwsgiconfig.py%20--plugin%20plugins%2Fpython%20nolang%20python27%3Cbr%3Epython2.7%20uwsgiconfig.py%20--plugin%20plugins%2Fgevent%20nolang%20gevent27%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E3%81%93%E3%82%8C%E3%81%A7uwsgi%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%A8%60*_plugin.so%60%E3%81%8C%E5%87%BA%E6%9D%A5%E3%82%8B%E3%81%AE%E3%81%A7%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%81%88%E3%80%82%3Cbr%3E%60%60%60%3Cbr%3Esudo%20cp%20uwsgi%20%2Fusr%2Fbin%2Fuwsgi%3Cbr%3Esudo%20mkdir%20-p%20%2Fusr%2Flib%2Fuwsgi%3Cbr%3Esudo%20cp%20*.so%20%2Fusr%2Flib%2Fuwsgi%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%3Cbr%3E%60%60%60ini%3Cbr%3E%5Buwsgi%5D%3Cbr%3Eplugins-dir%3D%2Fusr%2Flib%2Fuwsgi%3Cbr%3Eplugin%3Dpython27_plugin.so%3Cbr%3Evirtualenv%3D%2Fpath%2Fto%2Fpy27env%3Cbr%3Echdir%3D%2Fpath%2Fto%2Fpy27app%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%A8%E3%83%AD%E3%83%BC%E3%83%89%E3%81%95%E3%81%9B%E3%82%8C%E3%81%B0python2.7%E3%82%92%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E5%90%8C%E6%A7%98%E3%81%ABphp-embedded%E3%81%AE%E5%85%A5%E3%81%A3%E3%81%9F%E7%92%B0%E5%A2%83%E3%81%A7%3Cbr%3E%60%60%60%3Cbr%3Epython%20uwsgiconfig.py%20--plugin%20plugins%2Fphp%20nolang%20php%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%A7php%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%82%E3%83%93%E3%83%AB%E3%83%89%E3%81%A7%E3%81%8D%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E3%82%82%E3%81%AE%E3%81%99%E3%81%94%E3%81%8F%E9%9D%A2%E5%80%92%E3%81%AA%E3%81%AE%E3%81%A7uwsgi%E5%81%B4%E3%81%A7virtualenv%E3%81%8B%E3%82%89%E8%87%AA%E5%8B%95%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%81%8B%E3%80%81libpython.so%E3%82%92plugins-dir%E3%81%AB%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E5%BD%93%E3%81%A6%E3%81%9F%E3%81%84%E2%80%A6%E2%80%A6%3Cbr%3E%3Cbr%3E%E5%8F%82%E8%80%83%EF%BC%9Ahttp%3A%2F%2Fprojects.unbit.it%2Fuwsgi%2Fwiki%2FMultiPython%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-215258"><p style="margin: 0.5em 0px ! important">今のところuWSGIはvirtualenvで作ったアプリ別のモジュールをロードすることは出来るものの、システムのlibpython.soを直接使っているため、そのままではビルド時のPythonしか動かない。</p>
<p style="margin: 0.5em 0px ! important">異なるバージョンのpythonを含むvirutalenvに入ろうとすると、PYTHONPATHが違うためimport siteの時点でモジュールのロードに失敗する。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">Python version: 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
...
Set PythonHome to /path/to/py27env
&#39;import site&#39; failed; use -v for traceback
</pre><p style="margin: 0.5em 0px ! important">他のバージョンのpythonを使うには、対応するpythonとpythonプラグイン対応のuWSGIをビルドし直す必要がある。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">ビルド手順</h2>
<p style="margin: 0.5em 0px ! important">デフォルトのままpipなどでインストールすると、python他プラグイン全部入りのuwsgiバイナリが出来ているはず。
（pipで入れていれば/tmp/pip-build-root/uwsgiに必要なファイルが展開されているので、これを元にビルド）</p>
<p style="margin: 0.5em 0px ! important">uwsgiソースのbuildconfディレクトリには、uwsgi本体ビルド用の設定ファイルが含まれている。
pythonを含まないバイナリを作るには、buildconf/nolang.iniを使ってビルドするか、main_plugin=からpythonとgeventを抜いておく必要がある。（geventもpythonに依存しているためビルド出来ない）</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">python uwsgiconfig.py --build nolang
</pre><p style="margin: 0.5em 0px ! important">次にプラグインをビルドするのだが、uwsgiconfig.pyはリンクするlibpython.soをビルド時のPython環境から探しているらしく、ほしいバージョンのsharedなpythonとlibpythonがセットで必要。
さらに面倒なことにpythonビルドツールのpythonzはデフォルトではsharedなビルドを作ってくれない。（OSXは別？）</p>
<p style="margin: 0.5em 0px ! important">一応configureオプションを渡すことでビルドは可能で、</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">pythonz install 2.7.6 --verbose --configure=&#39;--enable-shared LDFLAGS=&quot;-Wl,-rpath -Wl,\\$$ORIGIN/../lib&quot;&#39;
</pre>
<p style="margin: 0.5em 0px ! important">あるいは手動でインストール</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">./configure --prefix=/usr/local/python27 --enable-shared LDFLAGS=&quot;-Wl,-rpath /usr/local/python27/lib&quot;
make
sudo make altinstall
</pre>
<p style="margin: 0.5em 0px ! important">必要なバージョンのsharedなpythonバイナリでプラグインをビルド。pluginsディレクトリにプラグインのテンプレートが入っている。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">python2.7 uwsgiconfig.py --plugin plugins/python nolang python27
python2.7 uwsgiconfig.py --plugin plugins/gevent nolang gevent27
</pre><p style="margin: 0.5em 0px ! important">これでuwsgiバイナリと*_plugin.soが出来るのでバイナリを置き換え。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">sudo cp uwsgi /usr/bin/uwsgi
sudo mkdir -p /usr/lib/uwsgi
sudo cp *.so /usr/lib/uwsgi
</pre><p style="margin: 0.5em 0px ! important">アプリの設定ファイルから</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"><span style="color: #990000; font-weight: bold" class="title">[uwsgi]</span>
<span class="setting">plugins-dir=<span class="value">/usr/lib/uwsgi</span></span>
<span class="setting">plugin=<span class="value">python27_plugin.so</span></span>
<span class="setting">virtualenv=<span class="value">/path/to/py27env</span></span>
<span class="setting">chdir=<span class="value">/path/to/py27app</span></span>
</pre>
<p style="margin: 0.5em 0px ! important">とロードさせればpython2.7を利用できる。</p>
<p style="margin: 0.5em 0px ! important">同様にphp-embeddedの入った環境で</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">python uwsgiconfig.py --plugin plugins/php nolang php
</pre><p style="margin: 0.5em 0px ! important">でphpプラグインもビルドできた。</p>
<p style="margin: 0.5em 0px ! important">ものすごく面倒なのでuwsgi側でvirtualenvから自動ロードするか、libpython.soをplugins-dirに持ってくるようにパッチを当てたい……</p>
<p style="margin: 0.5em 0px ! important">参考：<a href="http://projects.unbit.it/uwsgi/wiki/MultiPython">http://projects.unbit.it/uwsgi/wiki/MultiPython</a></p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566452.html">
<link>http://causeless.seesaa.net/article/388566452.html</link>
<title>OpenVZゲストでNative IPv6とIPv6トンネルのデュアルルートを作る</title>
<description>DTIのserversman VPSをx86_64化してIPv6がいくらか動くようになったのでOpenVPNサーバーにしてみた。前提OpenVZのVPSゲスト、CentOS6.x + OpenVPN 2.3.xdev venet0:0 にNative IPv6が1つ（/128）だけ割り当て済み。可能ならこのルートを使う。He.netのIPv6トンネルから/64の割り当てを受けてOpenVPNのクライアントへ割り当てる。dev tun0 をOpenVPN tun-ipv6 で作..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-11-26T20:02:46+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="DTI%E3%81%AEserversman%20VPS%E3%82%92x86_64%E5%8C%96%E3%81%97%E3%81%A6IPv6%E3%81%8C%E3%81%84%E3%81%8F%E3%82%89%E3%81%8B%E5%8B%95%E3%81%8F%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%A7OpenVPN%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20%E5%89%8D%E6%8F%90%3Cbr%3E-%20OpenVZ%E3%81%AEVPS%E3%82%B2%E3%82%B9%E3%83%88%E3%80%81CentOS6.x%20%2B%20OpenVPN%202.3.x%3Cbr%3E-%20dev%20venet0%3A0%20%E3%81%ABNative%20IPv6%E3%81%8C1%E3%81%A4%EF%BC%88%2F128%EF%BC%89%E3%81%A0%E3%81%91%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E6%B8%88%E3%81%BF%E3%80%82%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%89%E3%81%93%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%3Cbr%3E-%20He.net%E3%81%AEIPv6%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%8B%E3%82%89%2F64%E3%81%AE%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%92%E5%8F%97%E3%81%91%E3%81%A6OpenVPN%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%B8%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B%E3%80%82%3Cbr%3E-%20dev%20tun0%20%E3%82%92OpenVPN%20tun-ipv6%20%E3%81%A7%E4%BD%9C%E6%88%90%3Cbr%3E-%20dev%20tb%20%E3%82%92%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB%20tb_tun%20%E3%81%A7%E4%BD%9C%E6%88%90%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%A8%E3%83%AB%E3%83%BC%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90%3Cbr%3E%3Cbr%3E%E3%81%BE%E3%81%9AOpenVZ%E4%B8%8A%E3%81%A7%E3%81%AF%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%82%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81sit%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%A7%E5%87%A6%E7%90%86%E3%81%99%E3%82%8Btb_tun%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3Ehttp%3A%2F%2Fcode.google.com%2Fp%2Ftb-tun%2F%3Cbr%3E%3Cbr%3E%60%60%60sh%3Cbr%3Esetsid%20tb_userspace%20tb%20%7B%7Btunnel_server%7D%7D%20any%20sit%20%26gt%3B%20%2Fvar%2Flog%2Ftunnel.log%202%26gt%3B%26amp%3B1%20%26amp%3B%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3Etb%E3%81%ABIPv6%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%80%82%3Cbr%3E%60%60%60sh%3Cbr%3Eifconfig%20tb%20up%3Cbr%3Eifconfig%20tb%20inet6%20add%20%7B%7Btunnel_client_ipv6%7D%7D%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%3Cbr%3Evenet%E3%82%92%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81metric%E3%82%92%E5%A2%97%E3%82%84%E3%81%97%E3%81%A6%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%60%60%60sh%3Cbr%3Eip%20-f%20inet6%20route%20add%20default%20metric%2010%20dev%20tb%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E4%BB%96%E3%81%AEOpenVZ%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%EF%BC%88SolusVM%EF%BC%89%E3%81%A7%E3%81%AFIPv6%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%8C%E7%84%A1%E3%81%84%E3%81%AE%E3%81%AB%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%83%AB%E3%83%BC%E3%83%88%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%E3%81%9D%E3%81%AE%E5%A0%B4%E5%90%88%E5%89%8A%E9%99%A4%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%60%60%60sh%3Cbr%3Eip%20-f%20inet6%20route%20del%20default%20metric%201%20dev%20venet0%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3Eiptables%E3%81%A7-p%2041%E3%81%AEINPUT%2FOUTPUT%E3%82%92%E9%80%9A%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E4%BA%8B%E3%82%92%E5%BF%98%E3%82%8C%E3%81%9A%E3%81%AB%E3%80%82%3Cbr%3E%60%60%60sh%3Cbr%3Eiptables%20-A%20INPUT%20-p%2041%20-s%20%7B%7Btunnel_server%7D%7D%20-j%20ACCEPT%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7%E3%81%A7%E3%83%88%E3%83%B3%E3%83%8D%E3%83%ABIPv6%E3%81%AF%E5%88%B0%E9%81%94%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AB-VPN%E9%96%93%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%3Cbr%3E%3Cbr%3EIPv6%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96%3Cbr%3E%60%60%60ini%3Cbr%3Enet.ipv6.conf.all.forwarding%20%3D%201%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%3Cbr%3EHe.net%E3%82%92%E7%B5%8C%E7%94%B1%E3%81%95%E3%81%9B%E3%82%8BRouted%E3%81%AA%E3%82%BD%E3%83%BC%E3%82%B9%E7%AF%84%E5%9B%B2%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E3%83%AB%E3%83%BC%E3%83%AB%E4%BB%98%E3%81%8D%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%80%81%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%83%AB%E3%83%BC%E3%83%88%E3%81%AB%E6%8C%87%E5%AE%9A%3Cbr%3E%60%60%60sh%3Cbr%3Eip%20-f%20inet6%20rule%20add%20src%20%7B%7Btunnel_routed%7D%7D%20table%2010%3Cbr%3Eip%20-f%20inet6%20route%20add%20default%20metric%201%20dev%20tb%20table%2010%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3Eip6tables%E3%81%AEFORWARD%E3%82%92%E8%A8%B1%E5%8F%AF%3Cbr%3E%60%60%60sh%3Cbr%3Eip6tables%20-A%20FORWARD%20-i%20tun0%20-s%20%7B%7Btunnel_routed%7D%7D%20-j%20ACCEPT%3Cbr%3Eip6tables%20-A%20FORWARD%20-i%20tb%C2%A0%C2%A0%20-d%20%7B%7Btunnel_routed%7D%7D%20-j%20ACCEPT%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3EServersMan%40VPS%E3%81%AFopenvz%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%8C%E5%8F%A4%E3%81%99%E3%81%8E%E3%81%A6ip6tables%E3%81%AEconntrack%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%E5%B8%B8%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AA%E3%82%89%E3%82%82%E3%81%A3%E3%81%A8%E3%81%BE%E3%81%A8%E3%82%82%E3%81%AA%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%8C%E5%BF%85%E8%A6%81%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20OpenVPN%E5%81%B4%3Cbr%3E%3Cbr%3Erouted%E3%81%AAIPv6%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B%E3%80%82%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AB%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%83%AB%E3%83%BC%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6push%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%60%60%60%3Cbr%3Eserver-ipv6%20%7B%7Btunnel_routed%7D%7D%3Cbr%3Epush%20%22route-ipv6%20%3A%3A%2F0%22%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E6%AE%8B%E5%BF%B5%E3%81%AA%E3%81%8C%E3%82%89%E3%80%81openvpn%202.3.6%E3%81%A7%E3%81%AF%E3%81%BE%E3%81%A0IPv6%20DNS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92push%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%E3%81%9D%E3%81%AE%E3%81%9F%E3%82%81AAAA%20filtering%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84He.net%E6%8F%90%E4%BE%9B%E3%81%AEIPv4%20DNS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%8B%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E5%81%B4%E3%81%A7%E4%B8%8A%E6%9B%B8%E3%81%8D%E3%81%97%E3%81%A6%E3%82%82%E3%82%89%E3%81%86%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%B2%E3%81%A8%E3%81%BE%E3%81%9A%E3%81%93%E3%82%8C%E3%81%A7native%E3%81%AEIPv6%E3%82%92%E7%94%9F%E3%81%8B%E3%81%97%E3%81%9F%E3%81%BE%E3%81%BEIPv6%20over%20OpenVPN%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-427206"><p style="margin: 0.5em 0px ! important">DTIのserversman VPSをx86_64化してIPv6がいくらか動くようになったのでOpenVPNサーバーにしてみた。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">前提</h3>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">OpenVZのVPSゲスト、CentOS6.x + OpenVPN 2.3.x</li>
<li style="margin: 0.3em 0px 0.5em">dev venet0:0 にNative IPv6が1つ（/128）だけ割り当て済み。可能ならこのルートを使う。</li>
<li style="margin: 0.3em 0px 0.5em">He.netのIPv6トンネルから/64の割り当てを受けてOpenVPNのクライアントへ割り当てる。</li>
<li style="margin: 0.3em 0px 0.5em">dev tun0 をOpenVPN tun-ipv6 で作成</li>
<li style="margin: 0.3em 0px 0.5em">dev tb をユーザースペーストンネル tb_tun で作成。</li>
</ul>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">トンネルとルートの作成</h3>
<p style="margin: 0.5em 0px ! important">まずOpenVZ上ではカーネルもジュールを導入できないので、sitトンネルを使えない。
トンネルパケットをユーザースペースで処理するtb_tunがあるのでサービスとして起動する。
<a href="http://code.google.com/p/tb-tun/">http://code.google.com/p/tb-tun/</a></p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">setsid tb_userspace tb {{tunnel_server}} any sit &gt; /var/log/tunnel.log 2&gt;&amp;1 &amp;
</pre>
<p style="margin: 0.5em 0px ! important">tbにIPv6アドレスを割り当て。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">ifconfig tb up
ifconfig tb inet6 add {{tunnel_client_ipv6}}
</pre>
<p style="margin: 0.5em 0px ! important">venetをデフォルトにするためmetricを増やして追加しておく。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">ip -f inet6 route add default metric 10 dev tb
</pre>
<p style="margin: 0.5em 0px ! important">他のOpenVZマネージャ（SolusVM）ではIPv6割り当てが無いのにデフォルトルートが設定されている。その場合削除しておく。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">ip -f inet6 route del default metric 1 dev venet0
</pre>
<p style="margin: 0.5em 0px ! important">iptablesで-p 41のINPUT/OUTPUTを通しておく事を忘れずに。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">iptables -A INPUT -p 41 -s {{tunnel_server}} -j ACCEPT
</pre>
<p style="margin: 0.5em 0px ! important">ここまででトンネルIPv6は到達可能になった。</p>
<h3 id="-vpn-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">トンネル-VPN間のルーティング</h3>
<p style="margin: 0.5em 0px ! important">IPv6ルーティングを有効化</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">net.ipv6.conf.all.forwarding = 1
</pre>
<p style="margin: 0.5em 0px ! important">He.netを経由させるRoutedなソース範囲に対してルール付きのテーブルを作成、デフォルトルートに指定</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">ip -f inet6 rule add src {{tunnel_routed}} table 10
ip -f inet6 route add default metric 1 dev tb table 10
</pre>
<p style="margin: 0.5em 0px ! important">ip6tablesのFORWARDを許可</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">ip6tables -A FORWARD -i tun0 -s {{tunnel_routed}} -j ACCEPT
ip6tables -A FORWARD -i tb   -d {{tunnel_routed}} -j ACCEPT
</pre>
<p style="margin: 0.5em 0px ! important">ServersMan@VPSはopenvzカーネルが古すぎてip6tablesのconntrackが機能していない。
常用するならもっとまともなフィルタルールが必要。</p>
<h3 id="openvpn-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">OpenVPN側</h3>
<p style="margin: 0.5em 0px ! important">routedなIPv6を割り当てる。クライアントにはデフォルトルートとしてpushする。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">server-ipv6 {{tunnel_routed}}
push &quot;route-ipv6 ::/0&quot;
</pre><p style="margin: 0.5em 0px ! important">残念ながら、openvpn 2.3.6ではまだIPv6 DNSサーバーアドレスをpushすることができない。
そのためAAAA filteringされていないHe.net提供のIPv4 DNSサーバーを指定するか、クライアント側で上書きしてもらう必要がある。</p>
<p style="margin: 0.5em 0px ! important">ひとまずこれでnativeのIPv6を生かしたままIPv6 over OpenVPNが出来た。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566600.html">
<link>http://causeless.seesaa.net/article/388566600.html</link>
<title>Ansibleのtemplateにカスタムフィルタを追加する方法</title>
<description>Ansibleのtemplateモジュールではjinja2が使われているため、カスタムフィルタを登録して好きな処理を書ける。templateはplaybookのパース時にも使われるので、Ansibleロード時点でグローバルなプラグインとして導入する必要がある。今のところロードするフィルタの切り替えはansible.cfgで切り替えるしか無いようだ。(ドキュメントには ./libraryに置くことでロードできるらしいのだがcfgで上書きされているっぽい)フィルタの登録はFilt..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-11-20T20:26:40+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="Ansible%E3%81%AEtemplate%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%AFjinja2%E3%81%8C%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%97%E3%81%A6%E5%A5%BD%E3%81%8D%E3%81%AA%E5%87%A6%E7%90%86%E3%82%92%E6%9B%B8%E3%81%91%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3Etemplate%E3%81%AFplaybook%E3%81%AE%E3%83%91%E3%83%BC%E3%82%B9%E6%99%82%E3%81%AB%E3%82%82%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81Ansible%E3%83%AD%E3%83%BC%E3%83%89%E6%99%82%E7%82%B9%E3%81%A7%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%81%AA%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A8%E3%81%97%E3%81%A6%E5%B0%8E%E5%85%A5%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8D%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%AFansible.cfg%E3%81%A7%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B%E3%81%97%E3%81%8B%E7%84%A1%E3%81%84%E3%82%88%E3%81%86%E3%81%A0%E3%80%82%3Cbr%3E(%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E3%81%AF%20.%2Flibrary%E3%81%AB%E7%BD%AE%E3%81%8F%E3%81%93%E3%81%A8%E3%81%A7%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%89%E3%81%97%E3%81%84%E3%81%AE%E3%81%A0%E3%81%8Ccfg%E3%81%A7%E4%B8%8A%E6%9B%B8%E3%81%8D%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A3%E3%81%BD%E3%81%84)%3Cbr%3E%3Cbr%3E%3Cbr%3E%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E7%99%BB%E9%8C%B2%E3%81%AF%60FilterModule().filters()%60%E3%81%8C%E8%BF%94%E3%81%99%E8%BE%9E%E6%9B%B8%E3%80%82%3Cbr%3E%3Cbr%3E%60%60%60python%3Cbr%3Eimport%20socket%3Cbr%3Eclass%20FilterModule(object)%3A%3Cbr%3E%C2%A0%C2%A0%C2%A0%20def%20filters(self)%3A%3Cbr%3E%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20return%20%7B%22A%22%3A%20socket.gethostbyname%7D%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%93%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%81%A9%E5%BD%93%E3%81%AA%E5%90%8D%E5%89%8D%E3%81%A7filter_plugins%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AB%E7%BD%AE%E3%81%8F%E3%81%A8ansible%E3%83%AD%E3%83%BC%E3%83%89%E4%B8%AD%E3%81%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%82%8C%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E5%AE%9F%E9%9A%9B%E3%81%AE%E3%83%91%E3%82%B9%E6%8C%87%E5%AE%9A%E3%81%AFansible.cfg%E3%81%AE%3Cbr%3E%60%60%60ini%3Cbr%3Efilter_plugins%C2%A0%C2%A0%C2%A0%C2%A0%20%3D%20%2Fusr%2Fshare%2Fansible_plugins%2Ffilter_plugins%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E5%8F%82%E7%85%A7%EF%BC%9A%20https%3A%2F%2Fgithub.com%2Fansible%2Fansible-examples%2Fblob%2Fmaster%2Flanguage_features%2Ffilter_plugins%2Fcustom_plugins.py%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-296573"><p style="margin: 0.5em 0px ! important">Ansibleのtemplateモジュールではjinja2が使われているため、カスタムフィルタを登録して好きな処理を書ける。</p>
<p style="margin: 0.5em 0px ! important">templateはplaybookのパース時にも使われるので、Ansibleロード時点でグローバルなプラグインとして導入する必要がある。今のところロードするフィルタの切り替えはansible.cfgで切り替えるしか無いようだ。
(ドキュメントには ./libraryに置くことでロードできるらしいのだがcfgで上書きされているっぽい)</p>
<p style="margin: 0.5em 0px ! important">フィルタの登録はFilterModule().filters()が返す辞書。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"><span style="color: #333333; font-weight: bold" class="keyword">import</span> socket
<span style="color: #445588; font-weight: bold" class="class"><span style="color: #333333; font-weight: bold" class="keyword">class</span> <span style="color: #445588; font-weight: bold" class="title">FilterModule</span><span class="params">(object)</span>:</span>
    <span class="function"><span style="color: #333333; font-weight: bold" class="keyword">def</span> <span style="color: #990000; font-weight: bold" class="title">filters</span><span class="params">(self)</span>:</span>
        <span style="color: #333333; font-weight: bold" class="keyword">return</span> {<span style="color: #dd1144" class="string">&quot;A&quot;</span>: socket.gethostbyname}
</pre>
<p style="margin: 0.5em 0px ! important">このファイルを適当な名前でfilter_pluginsフォルダに置くとansibleロード中に読み込まれる。</p>
<p style="margin: 0.5em 0px ! important">実際のパス指定はansible.cfgの</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"><span class="setting">filter_plugins     = <span class="value">/usr/share/ansible_plugins/filter_plugins</span></span>
</pre>
<p style="margin: 0.5em 0px ! important">参照： <a href="https://github.com/ansible/ansible-examples/blob/master/language_features/filter_plugins/custom_plugins.py">https://github.com/ansible/ansible-examples/blob/master/language_features/filter_plugins/custom_plugins.py</a></p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566721.html">
<link>http://causeless.seesaa.net/article/388566721.html</link>
<title>Robots.txtチェッカーを作ってみた</title>
<description>http://forbiddenrobots.usb0.net/Googleのrobots.txtとmetaタグ仕様https://developers.google.com/webmasters/control-crawl-index/docs/robots_txtに準じているつもり。Flask＋uwsgi-emperor＋MongoEngineを試すのがメインだったので、コアはFlask、サーバーはnginx＋uwsgiでuwsgi-emperorでプロセス管理、バックエ..</description>
<dc:subject>Python</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-11-11T23:58:58+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="http%3A%2F%2Fforbiddenrobots.usb0.net%2F%3Cbr%3E%3Cbr%3EGoogle%E3%81%AErobots.txt%E3%81%A8meta%E3%82%BF%E3%82%B0%E4%BB%95%E6%A7%98%3Cbr%3Ehttps%3A%2F%2Fdevelopers.google.com%2Fwebmasters%2Fcontrol-crawl-index%2Fdocs%2Frobots_txt%3Cbr%3E%E3%81%AB%E6%BA%96%E3%81%98%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A4%E3%82%82%E3%82%8A%E3%80%82%3Cbr%3E%3Cbr%3EFlask%EF%BC%8Buwsgi-emperor%EF%BC%8BMongoEngine%E3%82%92%E8%A9%A6%E3%81%99%E3%81%AE%E3%81%8C%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%A0%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%3Cbr%3E%E3%82%B3%E3%82%A2%E3%81%AFFlask%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AFnginx%EF%BC%8Buwsgi%E3%81%A7uwsgi-emperor%E3%81%A7%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%AE%A1%E7%90%86%E3%80%81%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%E3%81%ABMemcached%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%A8MongoEngine%E3%80%82%3Cbr%3Ehttp%E3%81%ABpython-requests%E3%80%81html%E3%83%91%E3%83%BC%E3%82%B5%E3%81%AFBeautifulSoup4%E3%81%A8%E3%81%84%E3%81%86%E6%99%AE%E9%80%9A%E3%81%AA%E6%A7%8B%E6%88%90%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%B2%E3%81%A8%E3%81%BE%E3%81%9A%E5%8B%95%E3%81%8F%E3%81%A8%E3%81%93%E3%82%8D%E3%81%BE%E3%81%A7%E5%87%BA%E6%9D%A5%E3%81%9F%E3%81%91%E3%82%8C%E3%81%A9%E3%80%81gevent%E5%8C%96%E3%82%84mongodb%E3%81%AE%E5%88%86%E6%95%A3%E3%81%A8%E3%81%8B%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%81%84%E3%80%82%3Cbr%3E%E3%81%84%E3%81%BE%E3%81%A0%E3%81%ABgevent%E3%82%92windows%E7%92%B0%E5%A2%83%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%99%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%81%B0%E3%82%89%E3%81%8F%E6%8E%9B%E3%81%8B%E3%82%8A%E3%81%9D%E3%81%86%E3%81%A0%E3%81%91%E3%81%A9%E3%80%82" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-982660"><p style="margin: 0.5em 0px ! important"><a href="http://forbiddenrobots.usb0.net/">http://forbiddenrobots.usb0.net/</a></p>
<p style="margin: 0.5em 0px ! important">Googleのrobots.txtとmetaタグ仕様
<a href="https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt">https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt</a>
に準じているつもり。</p>
<p style="margin: 0.5em 0px ! important">Flask＋uwsgi-emperor＋MongoEngineを試すのがメインだったので、
コアはFlask、サーバーはnginx＋uwsgiでuwsgi-emperorでプロセス管理、バックエンドにMemcachedキャッシュとMongoEngine。
httpにpython-requests、htmlパーサはBeautifulSoup4という普通な構成。</p>
<p style="margin: 0.5em 0px ! important">ひとまず動くところまで出来たけれど、gevent化やmongodbの分散とか実装してみたい。
いまだにgeventをwindows環境で動かすことができていないのでしばらく掛かりそうだけど。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566820.html">
<link>http://causeless.seesaa.net/article/388566820.html</link>
<title>CentOS6.4＋NginxでECDHEを有効にしてForward Secrecy取得までのメモ</title>
<description>昨日は鍵共有を甘く見て爆死したためCentOS＋NginxのサーバーをWindows環境に対応させてみる。RPMに慣れていた都合上、主なサーバーにCentOS6を使っている。CentOS/RHEL6.4では2013年10月時点で、標準のOpenSSLは1.0.0、Nginxは1.0系が導入される。Nginxには公式リポジトリもあるが、openssl-1.0.0を前提にビルドされている。これらはコミュニティサポートのあるRPMで提供されているものの、NginxでHTTPSサーバ..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-10-19T19:11:30+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="%E6%98%A8%E6%97%A5%E3%81%AF%E9%8D%B5%E5%85%B1%E6%9C%89%E3%82%92%E7%94%98%E3%81%8F%E8%A6%8B%E3%81%A6%E7%88%86%E6%AD%BB%E3%81%97%E3%81%9F%E3%81%9F%E3%82%81CentOS%EF%BC%8BNginx%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92Windows%E7%92%B0%E5%A2%83%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%95%E3%81%9B%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3ERPM%E3%81%AB%E6%85%A3%E3%82%8C%E3%81%A6%E3%81%84%E3%81%9F%E9%83%BD%E5%90%88%E4%B8%8A%E3%80%81%E4%B8%BB%E3%81%AA%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%ABCentOS6%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3ECentOS%2FRHEL6.4%E3%81%A7%E3%81%AF2013%E5%B9%B410%E6%9C%88%E6%99%82%E7%82%B9%E3%81%A7%E3%80%81%E6%A8%99%E6%BA%96%E3%81%AEOpenSSL%E3%81%AF1.0.0%E3%80%81Nginx%E3%81%AF1.0%E7%B3%BB%E3%81%8C%E5%B0%8E%E5%85%A5%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82Nginx%E3%81%AB%E3%81%AF%E5%85%AC%E5%BC%8F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%82%E3%81%82%E3%82%8B%E3%81%8C%E3%80%81openssl-1.0.0%E3%82%92%E5%89%8D%E6%8F%90%E3%81%AB%E3%83%93%E3%83%AB%E3%83%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%82%8C%E3%82%89%E3%81%AF%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E3%81%82%E3%82%8BRPM%E3%81%A7%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AE%E3%80%81Nginx%E3%81%A7HTTPS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E5%BB%BA%E3%81%A6%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81TLS%E3%81%AFv1.0%20%E3%81%BE%E3%81%A7%E3%80%81%E5%AF%BE%E5%BF%9Ccipher%E3%81%AFDHE-RSA-AES-SHA%E3%81%BE%E3%81%A7%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81Qualsys%E3%81%AE%5BSSL%E3%83%86%E3%82%B9%E3%83%88%5D(https%3A%2F%2Fwww.ssllabs.com%2Fssltest%2F)%E3%81%A7%E3%81%AF%E8%89%B2%E3%80%85%E3%81%A8%E6%8C%87%E6%91%98%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%20%E5%95%8F%E9%A1%8C%E7%82%B9%3Cbr%3E%3Cbr%3E%E6%97%A2%E5%AD%98%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%A7%E5%AF%BE%E7%AD%96%E4%B8%8D%E8%83%BD%E3%81%AA%E3%81%AE%E3%81%AF%E3%80%81TLS1.2%E5%AF%BE%E5%BF%9C%EF%BC%88%E5%85%BCBEAST%E5%AF%BE%E7%AD%96%EF%BC%89%E3%81%A8RSA%E9%8D%B5%E5%85%B1%E6%9C%89%E3%80%82%3Cbr%3E%3Cbr%3EBEAST%E3%81%AF%E6%9C%AA%E5%AF%BE%E7%AD%96%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8CTLSv1.0%E4%BB%A5%E5%89%8D%E3%81%AECBC%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E9%80%9A%E4%BF%A1%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AB%E7%99%BA%E7%94%9F%E3%81%97%E3%81%86%E3%82%8B%E3%80%82%E4%B8%80%E6%99%82%E7%9A%84%E3%81%AA%E5%AF%BE%E7%AD%96%E3%81%A8%E3%81%97%E3%81%A6%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E6%9A%97%E5%8F%B7%E3%81%AERC4%E3%81%8C%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8C%E3%80%81TLSv1.2%E3%81%A7%E3%81%AFCBC%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%8C%E8%A7%A3%E6%B6%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81TLSv1.2%E3%81%A7%E5%B0%8E%E5%85%A5%E3%81%95%E3%82%8C%E3%81%9F%E6%9A%97%E5%8F%B7%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E3%81%88%E3%81%B0%E5%95%8F%E9%A1%8C%E3%81%AF%E7%84%A1%E3%81%84%E3%80%82%E3%81%97%E3%81%8B%E3%81%97%E3%80%81TLSv1.2%E3%81%AFopenssl-1.0.0%E3%81%AB%E3%81%AF%E5%85%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%80%82%3Cbr%3E%3Cbr%3E%E5%B0%86%E6%9D%A5%E8%A7%A3%E8%AA%AD%E3%81%95%E3%82%8C%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%EF%BC%88RSA%EF%BC%89%E9%8D%B5%E5%85%B1%E6%9C%89%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%80%81%E3%81%A8%E3%81%84%E3%81%86Forward%20Secrecy%E3%81%AF%E5%90%84%E6%89%80%E3%81%A7%E6%97%A2%E3%81%AB%E8%A1%8C%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82RSA%E9%8D%B5%E5%85%B1%E6%9C%89%E3%81%AB%E6%9B%BF%E3%82%8F%E3%82%8B%E3%82%82%E3%81%AE%E3%81%A8%E3%81%97%E3%81%A6%E3%80%81%E5%A4%9A%E3%81%8F%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AFDH%E9%8D%B5%E5%85%B1%E6%9C%89%E3%83%BBECDH%E9%8D%B5%E5%85%B1%E6%9C%89%E3%81%8C%E5%AE%9F%E8%A3%85%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3ECentOS%E3%81%AEopenssl%E3%81%A7%E3%82%82%E6%9C%89%E5%8A%B9%E3%81%AADH%E9%8D%B5%E5%85%B1%E6%9C%89%E3%82%92%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%AE%E3%81%A0%E3%81%8C%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E5%81%B4%E3%80%81%E4%BE%8B%E3%81%88%E3%81%B0Windows%EF%BC%8BIE%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AFDHE-RSA%E3%81%8C%E7%84%A1%E3%81%84%E3%81%9F%E3%82%81%E3%81%ABRSA%E9%8D%B5%E5%85%B1%E6%9C%89%E3%81%8C%E5%84%AA%E5%85%88%E3%81%95%E3%82%8C%E3%80%81Forward%20Secrecy%E3%82%92%E4%BF%9D%E8%A8%BC%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%82%92%E3%81%94%E6%8C%87%E6%91%98%E9%A0%82%E3%81%84%E3%81%9F%E3%80%82%EF%BC%88Win7%EF%BC%8BIE%E3%81%A7%5B%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AECipher%E3%83%86%E3%82%B9%E3%83%88%5D(https%3A%2F%2Fcc.dcsec.uni-hannover.de%2F)%E3%81%BF%E3%82%8B%E3%81%A8DHE-DSS%E3%81%AF%E5%AE%9F%E8%A3%85%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%ABDHE-RSA%E3%81%8C%E7%84%A1%E3%81%84%EF%BC%89%20%3Cbr%3E%3Cbr%3EWindows%EF%BC%8BIE%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%81%AF%E3%80%81ECDH%E9%8D%B5%E5%85%B1%E6%9C%89%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82Google%E3%81%AA%E3%81%A9%E5%A4%9A%E3%81%8F%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AF%E6%97%A2%E3%81%ABECDHE-RSA%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E3%83%93%E3%83%AB%E3%83%89%E6%89%8B%E9%A0%86%3Cbr%3ETLSv1.2%E3%81%A8%E3%80%81%E5%A4%9A%E3%81%8F%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7RSA%E9%8D%B5%E5%85%B1%E6%9C%89%E4%BB%A5%E5%A4%96%E3%82%92%E4%BD%BF%E3%81%8A%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81OpenSSL%E3%81%A8Nginx%E3%82%92%E3%83%AA%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%81%A3%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AEopenssl%E3%82%92%E3%81%84%E3%81%98%E3%82%8B%E3%81%AE%E3%81%A7VM%E3%81%AA%E3%81%A9%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E7%94%A8%E3%82%B5%E3%83%B3%E3%83%89%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E7%92%B0%E5%A2%83%E3%81%A7%E8%A6%81%E6%A4%9C%E8%A8%BC%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%BE%E3%81%9A%E3%80%811.0.1%E3%81%AEopenssl-devel%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%80%82%20CentOS6%E3%81%A7%E3%81%AEopenssl-1.0.1e%20%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E6%89%8B%E9%A0%86%E3%81%AF%20http%3A%2F%2Fwww.ptudor.net%2Flinux%2Fopenssl%2F%20%E3%81%8C%E3%81%A8%E3%81%A6%E3%82%82%E8%A9%B3%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%80%82%3Cbr%3E%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9FRPM%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%60openssl%20version%60%20%E3%81%8C1.0.1e%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81%60openssl%20cipher%20-v%20'HIGH'%60%20%E3%81%A7Kx%3DECDH%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%8B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%3Cbr%3ENginx%E3%81%AFmainline%201.5.6%E3%81%AESRPM%E3%82%92%E3%83%AA%E3%83%93%E3%83%AB%E3%83%89%E3%80%82%E8%87%AA%E5%8B%95%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81nginx.spec%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%60Requires%3A%20openssl%20%26gt%3B%3D%201.0.1e%60%20%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%E5%87%BA%E6%9D%A5%E3%81%9F%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AFopenssl-1.0.1e%E3%81%AEcipher%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AF%E3%81%9A%E3%80%82%20%E4%BE%8B%E3%81%88%E3%81%B0%20%3Cbr%3E%60%60%60%3Cbr%3E%C2%A0%20ssl_protocol%20TLSv1.2%3B%3Cbr%3E%C2%A0%20ssl_ecdh_curve%20secp384r1%3B%3Cbr%3E%C2%A0%20ssl_ciphers%20EECDH%2BaRSA%2BAESGCM%3B%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%8C%E9%80%9A%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%20%E5%AE%9F%E9%9A%9B%E3%81%AEciphers%E6%8C%87%E5%AE%9A%3Cbr%3E%3Cbr%3E%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E6%98%8E%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%60%60%60nginx%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl%20on%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_protocols%20SSLv3%20TLSv1%20TLSv1.1%20TLSv1.2%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_prefer_server_ciphers%20on%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20%23%20RC4%E7%84%A1%E3%81%97%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_ciphers%20EECDH%2BHIGH%3AEDH%2BHIGH%3AHIGH%3A%2B3DES%3A!RC4%3A!MD5%3A!aNULL%3A!eNULL%3A!LOW%3A!EXP%3A!PSK%3A!SRP%3A!DSS%3A!KRB5%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20%23%20RC4%E6%9C%89%E3%82%8A%3Cbr%3E%C2%A0%C2%A0%C2%A0%20%23%20ssl_ciphers%20EECDH%2BAESGCM%3AEECDH%2BSHA384%3AEECDH%2BSHA256%3AEECDH%2BRC4%3AEECDH%2BHIGH%3AEDH%2BAESGCM%3AEDH%2BSHA384%3AEDH%2BSHA256%3AEDH%2BRC4%3AEDH%2BHIGH%3AAESGCM%3ASHA384%3ASHA256%3ARC4%3AHIGH%3A%2B3DES%3A!MD5%3A!aNULL%3A!eNULL%3A!LOW%3A!EXP%3A!PSK%3A!SRP%3A!DSS%3A!KRB5%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_ecdh_curve%20prime256v1%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_dhparam%20%2Fpath%2Fto%2Fdhparam2048.pem%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_certificate%20%2Fpath%2Fto%2Fserver.crt%3Cbr%3E%C2%A0%C2%A0%C2%A0%20ssl_certificate_key%20%2Fpath%2Fto%2Fprivate.key%3Cbr%3E%60%60%60%3Cbr%3E-%20ECDHE%EF%BC%9EDHE%EF%BC%9ERSA%E3%82%92%E6%98%8E%E7%A4%BA%E3%81%99%E3%82%8B%E3%80%82OpenSSL%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%82%BD%E3%83%BC%E3%83%88%E3%81%AF%E3%80%81%E3%82%BD%E3%83%BC%E3%83%88%E9%A0%86%E3%81%8CEnc%E2%86%92Kx%E3%81%AA%E3%81%AE%E3%81%A7Kx%E3%81%8C%E4%BA%A4%E4%BA%92%E3%81%AB%E4%B8%A6%E3%82%93%E3%81%A7%E3%81%97%E3%81%BE%E3%81%86%E3%80%82%3Cbr%3E-%20%E5%B0%86%E6%9D%A5%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%8CRSA%E3%81%8B%E3%82%89ECDSA%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%82%8F%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%60grep%20Au%3DRSA%60%E3%80%81%60grep%20Au%3DECDSA%60%E3%81%A7%E9%A0%86%E5%BA%8F%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%89%E3%82%88%E3%81%86%E3%81%AB%E4%B8%A6%E3%81%B9%E3%82%8B%E3%80%82%3Cbr%3E-%20GCM%EF%BC%9ESHA-2%EF%BC%9ERC4%EF%BC%9ESHA-1%E3%81%AA%E3%81%AE%E3%81%AF%E3%80%81SHA-2%E6%9C%AA%E5%AF%BE%E5%BF%9C%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AFTLSv1.0%E3%81%A7%E3%81%82%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%80%81BEAST%E5%AF%BE%E7%AD%96%E3%81%AA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%AA%E3%81%84%E3%81%8B%E3%82%89%E3%80%82%3Cbr%3E-%20MD5%E3%81%AFSSL3.0%E3%81%AA%E3%82%89SHA-1%E5%BF%85%E9%A0%88%E3%81%AA%E3%81%AE%E3%81%A7%E6%8A%9C%E3%81%8F%E3%80%82%3Cbr%3E-%20RC4%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E6%8A%9C%E3%81%8F%E3%81%A8WinXP%2BIE%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81cipher%E3%81%AE%E6%9C%80%E5%BE%8C%E3%81%AB%2B3DES%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E-%20EC%E9%96%A2%E6%95%B0%E3%81%AEsecp384r1%E3%81%AF%E4%BA%92%E6%8F%9B%E6%80%A7%E3%81%8B%E3%82%89%E6%B8%9B%E7%82%B9%E3%81%95%E3%82%8C%E3%82%8B%E6%A8%A1%E6%A7%98%3Cbr%3E-%20ECDH%E3%81%AF256bit%E4%BB%A5%E4%B8%8A%E3%80%81DH%E3%81%AF2048bit%E4%BB%A5%E4%B8%8A%E3%81%8C%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82Nginx%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AF1.5.6%E3%81%A7%E3%82%82DH1024bit%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A0%E3%81%A3%E3%81%9F%E3%80%82%3Cbr%3E-%20!aNULL%E4%BB%A5%E9%99%8D%E3%81%AF%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8Bcipher%E5%89%8A%E6%B8%9B%E3%81%AE%E3%81%9F%E3%82%81%E3%80%82%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AF%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%AA%E3%81%84%E3%81%8B%E3%81%9D%E3%82%8C%E8%87%AA%E4%BD%93%E8%84%86%E5%BC%B1%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%84%3Cbr%3E-%20%E6%80%A7%E8%83%BD%E4%B8%8A%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AF%E7%84%A1%E8%A6%96%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%82%8C%E3%81%A7%E3%81%BB%E3%81%BC%E5%85%A8%E3%81%A6%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%5B%E5%AF%BE%E5%BF%9C%E3%81%A7%E3%81%8D%E3%81%9F%5D(https%3A%2F%2Fwww.ssllabs.com%2Fssltest%2Fanalyze.html%3Fd%3Dapp.usb0.net%26amp%3BhideResults%3Don)%E3%81%AF%E3%81%9A%E3%80%82%20%3Cbr%3E%60%60%60%3Cbr%3EForward%20Secrecy%20%C2%A0%C2%A0%20%C2%A0Yes%20(with%20most%20browsers)%C2%A0%C2%A0%20ROBUST%20(more%20info)%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%26lt%3B!--%20more%20--%26gt%3B%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E3%83%AC%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%EF%BC%9F%3Cbr%3E%3Cbr%3E%E4%BB%96%E4%BA%BA%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E3%81%97%E3%81%9Fopenssl%E3%82%92%E8%A9%A6%E3%81%99%E7%84%A1%E8%AC%80%E3%81%AA%E6%96%B9%E3%81%AF%3Cbr%3E%60%60%60%3Cbr%3Ehttp%3A%2F%2Fyumrepo.usb0.net%2FGPG-KEY%3Cbr%3Epub%C2%A0%C2%A0%204096R%2F848C083D%202013-11-17%3Cbr%3E%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%E6%8C%87%E7%B4%8B%20%3D%20D11E%2088FF%203FC0%204339%20EE1D%C2%A0%20BBA4%204F1E%20A7EE%20848C%20083D%3Cbr%3Euid%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20causeless%20(myrepo%20sign%20key)%20%26lt%3Bcauseless%40gmail.com%26gt%3B%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%60%60%60ini%3Cbr%3E%5Bmyrepo%5D%3Cbr%3Egpgcheck%20%3D%201%3Cbr%3Eenabled%20%3D%200%3Cbr%3Ename%20%3D%20My%20Repo%20-%20%24basearch%3Cbr%3Ebaseurl%20%3D%20http%3A%2F%2Fyumrepo.usb0.net%2FRPMS%2F%24basearch%2F%3Cbr%3E%5Bmyrepo-noarch%5D%3Cbr%3Egpgcheck%20%3D%201%3Cbr%3Eenabled%20%3D%200%3Cbr%3Ename%20%3D%20My%20Repo%20-%20noarch%3Cbr%3Ebaseurl%20%3D%20http%3A%2F%2Fyumrepo.usb0.net%2FRPMS%2Fnoarch%2F%3Cbr%3E%5Bmyrepo-source%5D%3Cbr%3Egpgcheck%20%3D%201%3Cbr%3Eenabled%20%3D%200%3Cbr%3Ename%20%3D%20My%20Repo%20-%20noarch%3Cbr%3Ebaseurl%20%3D%20http%3A%2F%2Fyumrepo.usb0.net%2FRPMS%2Fsource%2F%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/regist/input" id="markdown-here-wrapper-4662"><p style="margin: 0.5em 0px ! important">昨日は鍵共有を甘く見て爆死したためCentOS＋NginxのサーバーをWindows環境に対応させてみる。</p>
<p style="margin: 0.5em 0px ! important">RPMに慣れていた都合上、主なサーバーにCentOS6を使っている。
CentOS/RHEL6.4では2013年10月時点で、標準のOpenSSLは1.0.0、Nginxは1.0系が導入される。Nginxには公式リポジトリもあるが、openssl-1.0.0を前提にビルドされている。</p>
<p style="margin: 0.5em 0px ! important">これらはコミュニティサポートのあるRPMで提供されているものの、NginxでHTTPSサーバーを建てようとすると、TLSはv1.0 まで、対応cipherはDHE-RSA-AES-SHAまでになり、Qualsysの<a href="https://www.ssllabs.com/ssltest/">SSLテスト</a>では色々と指摘される。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">問題点</h2>
<p style="margin: 0.5em 0px ! important">既存のパッケージで対策不能なのは、TLS1.2対応（兼BEAST対策）とRSA鍵共有。</p>
<p style="margin: 0.5em 0px ! important">BEASTは未対策のブラウザがTLSv1.0以前のCBCモードで通信する場合に発生しうる。一時的な対策としてストリーム暗号のRC4が使われているが、TLSv1.2ではCBCモードの問題が解消されているためTLSv1.2で導入された暗号モードを使えば問題は無い。しかし、TLSv1.2はopenssl-1.0.0には入っていない。</p>
<p style="margin: 0.5em 0px ! important">将来解読される可能性がある（RSA）鍵共有を使わない、というForward Secrecyは各所で既に行われている。RSA鍵共有に替わるものとして、多くのブラウザはDH鍵共有・ECDH鍵共有が実装されている。
CentOSのopensslでも有効なDH鍵共有を利用できればいいのだが、クライアント側、例えばWindows＋IE環境ではDHE-RSAが無いためにRSA鍵共有が優先され、Forward Secrecyを保証できないことをご指摘頂いた。（Win7＋IEで<a href="https://cc.dcsec.uni-hannover.de/">ブラウザのCipherテスト</a>みるとDHE-DSSは実装されているのにDHE-RSAが無い） </p>
<p style="margin: 0.5em 0px ! important">Windows＋IEに対応するためには、ECDH鍵共有を有効にする必要がある。Googleなど多くのサービスは既にECDHE-RSAを有効にしている。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">ビルド手順</h2>
<p style="margin: 0.5em 0px ! important">TLSv1.2と、多くのブラウザでRSA鍵共有以外を使おうとすると、OpenSSLとNginxをリビルドする必要があった。</p>
<p style="margin: 0.5em 0px ! important">システムのopensslをいじるのでVMなどのビルド用サンドボックス環境で要検証。</p>
<p style="margin: 0.5em 0px ! important">まず、1.0.1のopenssl-develをビルド環境にインストールする。 CentOS6でのopenssl-1.0.1e のビルド手順は <a href="http://www.ptudor.net/linux/openssl/">http://www.ptudor.net/linux/openssl/</a> がとても詳しいのでそのまま。
生成されたRPMをインストールしてopenssl version が1.0.1eになり、openssl cipher -v &#39;HIGH&#39; でKx=ECDHが含まれるかチェックしておく。</p>
<p style="margin: 0.5em 0px ! important">Nginxはmainline 1.5.6のSRPMをリビルド。自動インストールするのであれば、nginx.specファイルでRequires: openssl &gt;= 1.0.1e のバージョンを指定しておく。
出来たバイナリはopenssl-1.0.1eのcipherに対応しているはず。 例えば </p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">  ssl_protocol TLSv1.2;
  ssl_ecdh_curve secp384r1;
  ssl_ciphers EECDH+aRSA+AESGCM;
</pre><p style="margin: 0.5em 0px ! important">が通るか確認。</p>
<h2 id="-ciphers-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">実際のciphers指定</h2>
<p style="margin: 0.5em 0px ! important">次のように明示しておく。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">    <span style="color: #990000; font-weight: bold" class="title">ssl</span> <span style="color: #0086b3" class="built_in">on</span>;
    <span style="color: #990000; font-weight: bold" class="title">ssl_protocols</span> SSLv3 TLSv1 TLSv1.<span style="color: #009999" class="number">1</span> TLSv1.<span style="color: #009999" class="number">2</span>;
    <span style="color: #990000; font-weight: bold" class="title">ssl_prefer_server_ciphers</span> <span style="color: #0086b3" class="built_in">on</span>;
    <span style="color: #999988; font-style: italic" class="comment"># RC4無し</span>
    <span style="color: #990000; font-weight: bold" class="title">ssl_ciphers</span> EECDH+HIGH:EDH+HIGH:HIGH:+3DES:!RC4:!MD5:!aNULL:!eNULL:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5;
    <span style="color: #999988; font-style: italic" class="comment"># RC4有り</span>
    <span style="color: #999988; font-style: italic" class="comment"># ssl_ciphers EECDH+AESGCM:EECDH+SHA384:EECDH+SHA256:EECDH+RC4:EECDH+HIGH:EDH+AESGCM:EDH+SHA384:EDH+SHA256:EDH+RC4:EDH+HIGH:AESGCM:SHA384:SHA256:RC4:HIGH:+3DES:!MD5:!aNULL:!eNULL:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5;</span>
    <span style="color: #990000; font-weight: bold" class="title">ssl_ecdh_curve</span> prime256v1;
    <span style="color: #990000; font-weight: bold" class="title">ssl_dhparam</span> /path/to/dhparam2048.pem;
    <span style="color: #990000; font-weight: bold" class="title">ssl_certificate</span> /path/to/server.crt
    ssl_certificate_key /path/to/private.key
</pre>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">ECDHE＞DHE＞RSAを明示する。OpenSSLのデフォルトのソートは、ソート順がEnc→KxなのでKxが交互に並んでしまう。</li>
<li style="margin: 0.3em 0px 0.5em">将来証明書がRSAからECDSAに切り替わった時のために、grep Au=RSA、grep Au=ECDSAで順序が変わらように並べる。</li>
<li style="margin: 0.3em 0px 0.5em">GCM＞SHA-2＞RC4＞SHA-1なのは、SHA-2未対応のクライアントはTLSv1.0である可能性があり、BEAST対策なされていないかもしれないから。</li>
<li style="margin: 0.3em 0px 0.5em">MD5はSSL3.0ならSHA-1必須なので抜く。</li>
<li style="margin: 0.3em 0px 0.5em">RC4をそのまま抜くとWinXP+IEで接続できなくなるので、cipherの最後に+3DESを追加する。</li>
<li style="margin: 0.3em 0px 0.5em">EC関数のsecp384r1は互換性から減点される模様</li>
<li style="margin: 0.3em 0px 0.5em">ECDHは256bit以上、DHは2048bit以上が推奨されている。Nginxのデフォルトは1.5.6でもDH1024bitのままだった。</li>
<li style="margin: 0.3em 0px 0.5em">!aNULL以降は表示されるcipher削減のため。利用するクライアントは存在しないかそれ自体脆弱と考えていい</li>
<li style="margin: 0.3em 0px 0.5em">性能上の問題は無視している。</li>
</ul>
<p style="margin: 0.5em 0px ! important">これでほぼ全てのブラウザで<a href="https://www.ssllabs.com/ssltest/analyze.html?d=app.usb0.net&amp;hideResults=on">対応できた</a>はず。 </p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">Forward Secrecy     Yes (with most browsers)   ROBUST (more info)
</pre><!-- more -->

<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">レポジトリ？</h2>
<p style="margin: 0.5em 0px ! important">他人のビルドしたopensslを試す無謀な方は</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"><a href="http://yumrepo.usb0.net/GPG-KEY" target="_blank">http://yumrepo.usb0.net/GPG-KEY</a>
pub   4096R/848C083D 2013-11-17
      指紋 = D11E 88FF 3FC0 4339 EE1D  BBA4 4F1E A7EE 848C 083D
uid                  causeless (myrepo sign key) &lt;causeless@gmail.com&gt;
</pre><pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em"><span style="color: #990000; font-weight: bold" class="title">[myrepo]</span>
<span class="setting">gpgcheck = <span class="value"><span style="color: #009999" class="number">1</span></span></span>
<span class="setting">enabled = <span class="value"><span style="color: #009999" class="number">0</span></span></span>
<span class="setting">name = <span class="value">My Repo - $basearch</span></span>
<span class="setting">baseurl = <span class="value"><a href="http://yumrepo.usb0.net/RPMS/$basearch/" target="_blank">http://yumrepo.usb0.net/RPMS/$basearch/</a></span></span>
<span style="color: #990000; font-weight: bold" class="title">[myrepo-noarch]</span>
<span class="setting">gpgcheck = <span class="value"><span style="color: #009999" class="number">1</span></span></span>
<span class="setting">enabled = <span class="value"><span style="color: #009999" class="number">0</span></span></span>
<span class="setting">name = <span class="value">My Repo - noarch</span></span>
<span class="setting">baseurl = <span class="value"><a href="http://yumrepo.usb0.net/RPMS/noarch/" target="_blank">http://yumrepo.usb0.net/RPMS/noarch/</a></span></span>
<span style="color: #990000; font-weight: bold" class="title">[myrepo-source]</span>
<span class="setting">gpgcheck = <span class="value"><span style="color: #009999" class="number">1</span></span></span>
<span class="setting">enabled = <span class="value"><span style="color: #009999" class="number">0</span></span></span>
<span class="setting">name = <span class="value">My Repo - noarch</span></span>
<span class="setting">baseurl = <span class="value"><a href="http://yumrepo.usb0.net/RPMS/source/" target="_blank">http://yumrepo.usb0.net/RPMS/source/</a></span></span>
</pre>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388566941.html">
<link>http://causeless.seesaa.net/article/388566941.html</link>
<title>パスワード認証を脆弱にする10の方法とアンチパターン</title>
<description>いかにしてパスワード認証を脆弱にするか。プログラミング黎明期からずっとデベロッパーの頭を悩ませ続ける問題です。ここでは脆弱なパスワード認証を実現するための方法を紹介します。パスワード自動入力の禁止不届きなブラウザがパスワードを記憶してしまうことがあります。 パスワードは間違いの無いように、ひともじひともじ、人間が入力するべきです。&amp;lt;input name=&amp;quot;pw&amp;quot; type=&amp;quot;password&amp;quot; autocomplete=&amp;quot..</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-29T22:45:01+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="%3Cbr%3E%E3%81%84%E3%81%8B%E3%81%AB%E3%81%97%E3%81%A6%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%82%92%E8%84%86%E5%BC%B1%E3%81%AB%E3%81%99%E3%82%8B%E3%81%8B%E3%80%82%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E9%BB%8E%E6%98%8E%E6%9C%9F%E3%81%8B%E3%82%89%E3%81%9A%E3%81%A3%E3%81%A8%E3%83%87%E3%83%99%E3%83%AD%E3%83%83%E3%83%91%E3%83%BC%E3%81%AE%E9%A0%AD%E3%82%92%E6%82%A9%E3%81%BE%E3%81%9B%E7%B6%9A%E3%81%91%E3%82%8B%E5%95%8F%E9%A1%8C%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E8%84%86%E5%BC%B1%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%96%B9%E6%B3%95%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%87%AA%E5%8B%95%E5%85%A5%E5%8A%9B%E3%81%AE%E7%A6%81%E6%AD%A2%3Cbr%3E%E4%B8%8D%E5%B1%8A%E3%81%8D%E3%81%AA%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8C%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%A8%98%E6%86%B6%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%84%E3%81%AE%E7%84%A1%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E3%81%B2%E3%81%A8%E3%82%82%E3%81%98%E3%81%B2%E3%81%A8%E3%82%82%E3%81%98%E3%80%81%E4%BA%BA%E9%96%93%E3%81%8C%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%60%60%60html%3Cbr%3E%26lt%3Binput%20name%3D%22pw%22%20type%3D%22password%22%20autocomplete%3D%22off%22%20%2F%26gt%3B%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%A8%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%5B%E5%B8%B8%E8%AD%98%5D(https%3A%2F%2Fwww.google.co.jp%2Fsearch%3Fq%3Dautocomplete%2Boff)%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E7%AE%A1%E7%90%86%E6%A9%9F%E8%83%BD%E3%82%88%E3%82%8A%E3%80%81%E8%84%B3%E5%86%85%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E6%96%B9%E3%81%8C%E3%81%9A%E3%81%A3%E3%81%A8%E5%AE%89%E5%BF%83%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E-%20%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92%E5%8B%95%E7%9A%84%E7%94%9F%E6%88%90%E3%80%81Ajax%E3%81%A7POST%3Cbr%3E-%20%60cursor%3A%20text%60%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%A7%E5%81%BDinput%3Cbr%3E%3Cbr%3E%E3%81%AA%E3%81%A9%E3%81%A7%E3%80%81%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E4%BF%9D%E5%AD%98%E3%82%92%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%81%AE%E7%A6%81%E6%AD%A2%3Cbr%3E%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%82%E8%87%AA%E5%8B%95%E5%85%A5%E5%8A%9B%E3%81%A8%E5%90%8C%E7%BD%AA%E3%81%A7%E3%81%99%E3%80%82%60onpaste%60%E5%B1%9E%E6%80%A7%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%3Cbr%3E%60%60%60html%3Cbr%3E%26lt%3Binput%20name%3D%22pw%22%20type%3D%22password%22%20autocomplete%3D%22off%22%3Cbr%3E%C2%A0%20onpaste%3D%22javascript%3Afunction()%7Breturn%20false%3B%7D%22%20%2F%26gt%3B%3Cbr%3E%60%60%60%3Cbr%3E%E3%82%82%E3%81%97%E3%81%8F%E3%81%AFjavascript%E3%81%A7%E3%80%81%60onpaste%60%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%AE%E5%8C%BF%E5%90%8D%E3%83%AA%E3%82%B9%E3%83%8A%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%8C%E3%83%A1%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%AE%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%E4%BB%96%E3%81%AB%E3%82%82%E3%80%81%E3%82%84%E3%82%84%E9%9D%A2%E5%80%92%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%8A%E7%92%B0%E5%A2%83%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%3Cbr%3E%3Cbr%3E-%20%E7%94%BB%E5%83%8F%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E4%BB%AE%E6%83%B3%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%95%E3%81%9B%E3%82%8B%3Cbr%3E-%20onkeydown%E3%82%84%E9%80%8F%E9%81%8Einput%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A7%8B%E7%AF%89%3Cbr%3E-%20%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%AE%E9%80%9F%E5%BA%A6%E3%82%92%E7%9B%A3%E8%A6%96%E3%81%99%E3%82%8B%3Cbr%3E%3Cbr%3E%E3%81%AA%E3%81%A9%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%82%92%E9%98%B2%E3%81%90%E6%96%B9%E6%B3%95%E3%82%82%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%E5%8F%A4%E5%85%B8%E7%9A%84%E3%81%AB%E3%81%AF%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%82%92%E7%A6%81%E6%AD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%82%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E8%BF%91%E9%A0%83%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AF%E7%84%A1%E8%A6%96%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E5%A4%9A%E3%81%84%E3%81%AE%E3%81%A7%E4%B8%8D%E5%8D%81%E5%88%86%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%E5%88%B6%E9%99%90%3Cbr%3Ejavascript%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AA%E3%83%95%E3%82%A3%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%60%60%60html%3Cbr%3E%26lt%3Binput%20name%3D%22pw%22%20type%3D%22password%22%20autocomplete%3D%22off%22%3Cbr%3E%C2%A0%20maxlength%3D%228%22%20onpaste%3D%22javascript%3Afunction()%7Breturn%20false%3B%7D%22%20%2F%26gt%3B%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%AE%E3%82%88%E3%81%86%E3%81%ABmaxlength%E3%81%AF%E5%A4%9A%E3%81%8F%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%81%AE%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%92%E4%BB%95%E6%A7%98%E3%81%AE%E6%AE%B5%E9%9A%8E%E3%81%A7%E6%98%8E%E7%A2%BA%E5%8C%96%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E7%94%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%AF%20%60CHAR(8)%60%20%E3%81%A8%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%E9%95%B7%E3%81%99%E3%81%8E%E3%82%8B%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AFRDB%E5%81%B4%E3%81%A7%E7%84%A1%E8%A6%96%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E5%85%A5%E5%8A%9B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E5%80%A4%E3%82%92%E5%88%B6%E9%99%90%3Cbr%3E%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%83%81%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89%E3%80%81%E7%92%B0%E5%A2%83%E3%82%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%81%AF%E6%9C%9F%E5%BE%85%E9%80%9A%E3%82%8A%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%AA%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E3%81%82%E3%82%8B%E3%80%81%E3%81%AA%E3%82%93%E3%81%A6%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8C%E9%80%81%E3%82%89%E3%82%8C%E3%81%A6%E3%81%8F%E3%82%8B%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%E3%81%8A%E3%81%8B%E3%81%97%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E5%85%A5%E5%8A%9B%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E7%84%A1%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E5%85%A5%E5%8A%9B%E3%81%AE%E6%AE%B5%E9%9A%8E%E3%81%A7%E3%81%95%E3%81%AB%E3%81%9F%E3%81%84%E3%81%9A%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%60%60%60javascript%3Cbr%3E%24(%22input%22).bind(%22change%22%2C%20function(e)%20%7B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20if%20(%24(this).val().match(%2F%5B%5Ea-zA-Z0-9.-%5D%7CSELECT%7CDROP%2F))%20%7B%3Cbr%3E%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20alert(%22%E4%B8%8D%E6%AD%A3%E3%81%AA%E6%96%87%E5%AD%97%E5%88%97%22)%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%24(this).val(%22%22)%3B%3Cbr%3E%C2%A0%C2%A0%C2%A0%20%7D%3Cbr%3E%7D)%3B%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E9%95%B7%E3%81%84%E3%81%AE%E3%81%A7jQuery%E3%81%AB%E9%A0%BC%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E5%A4%B1%E6%95%97%E3%81%AF%E8%87%B4%E5%91%BD%E7%9A%84%E3%81%AA%E3%81%AE%E3%81%A7%E4%BB%95%E6%96%B9%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%E5%95%8F%E9%A1%8C%E3%81%8C%E8%B5%B7%E3%81%8D%E3%81%9D%E3%81%86%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AF%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E3%82%92%E5%87%BA%E3%81%97%E3%81%A6%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%AB%E9%81%A9%E5%88%87%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%A6%E3%82%82%E3%82%89%E3%81%84%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E5%86%8D%E5%88%A9%E7%94%A8%E3%82%92%E7%A6%81%E6%AD%A2%3Cbr%3E%3Cbr%3E%E5%90%8C%E3%81%98%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E5%9B%9E%E3%81%97%E3%82%92%E9%98%B2%E3%81%90%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AF%E5%85%A8%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8D%E3%80%81%E5%A4%89%E6%9B%B4%E3%81%AE%E9%9A%9B%E3%81%AB%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%A9%E3%82%93%E3%81%AA%E3%81%AB%E5%8F%A4%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E3%82%82%E9%81%A1%E3%81%A3%E3%81%A6%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E7%94%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%84%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E7%B4%90%E3%81%A4%E3%81%91%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E4%B8%87%E4%B8%80%E6%B6%88%E3%81%88%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%E6%9C%AC%E4%BA%BA%E3%81%95%E3%81%88%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%82%89%E3%81%9A%E5%8F%96%E3%82%8A%E8%BF%94%E3%81%97%E3%81%8C%E3%81%A4%E3%81%8B%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81DB%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AF%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%ABPC%E3%81%AB%E3%81%A8%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E5%AE%9A%E6%9C%9F%E7%9A%84%E3%81%AA%E5%A4%89%E6%9B%B4%3Cbr%3E%3Cbr%3E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AF%E5%AE%9A%E6%9C%9F%E7%9A%84%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%EF%BC%81%20**%E5%AE%89%E5%85%A8%5B%E8%AA%B0%E3%81%AE%EF%BC%9F%5D**%E3%81%AE%E3%81%9F%E3%82%81%E3%80%81**%E6%95%B0%E3%83%B6%E6%9C%88%E3%81%AB%E4%B8%80%E5%BA%A6%E3%81%AF%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%95%E3%81%9B%E3%82%8B%E3%81%B9%E3%81%8D%5B%E8%A6%81%E5%87%BA%E5%85%B8%5D**%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%80%82%20%E3%81%93%E3%81%AE%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%81%AF%E3%81%84%E3%81%BE%E3%82%84%E6%A5%AD%E7%95%8C%E6%A8%99%E6%BA%96%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%93%E3%82%8C%E3%81%AF%E5%90%8C%E6%99%82%E3%81%AB%E3%80%81%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E8%84%86%E5%BC%B1%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%81%AE%E9%87%8D%E8%A6%81%E6%80%A7%E3%82%92%E6%80%9D%E3%81%84%E5%87%BA%E3%81%97%E3%81%A6%E3%82%82%E3%82%89%E3%81%86%E8%89%AF%E3%81%84%E6%A9%9F%E4%BC%9A%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%E4%BD%95%E5%BA%A6%E3%82%82%E4%BD%95%E5%BA%A6%E3%82%82%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%80%83%E3%81%88%E3%81%95%E3%81%9B%E3%82%8C%E3%81%B0%E3%80%81%E3%82%88%E3%82%8A%E8%A6%9A%E3%81%88%E3%82%84%E3%81%99%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E7%B7%A8%E3%81%BF%E5%87%BA%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E7%A7%98%E5%AF%86%E3%81%AE%E8%B3%AA%E5%95%8F%E3%82%92%E8%A8%AD%E5%AE%9A%3Cbr%3E%3Cbr%3E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E6%80%9D%E3%81%84%E5%87%BA%E3%81%99%E3%81%AE%E3%81%8C%E5%84%84%E5%8A%AB%E3%81%AA%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%E7%A7%98%E5%AF%86%E3%81%AE%E8%B3%AA%E5%95%8F%E3%82%92%E7%94%A8%E6%84%8F%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%E8%B3%AA%E5%95%8F%E5%86%85%E5%AE%B9%E3%81%AF%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E6%B1%BA%E3%82%81%E3%81%95%E3%81%9B%E3%82%8B%E3%82%88%E3%82%8A%E3%80%81%E3%81%82%E3%82%89%E3%81%8B%E3%81%98%E3%82%81%E3%82%88%E3%81%8F%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%9F%E8%B3%AA%E5%95%8F%E3%82%92%E9%81%B8%E6%8A%9E%E5%BC%8F%E3%81%AB%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E3%80%81%E5%BF%98%E3%82%8C%E3%81%AB%E3%81%8F%E3%81%8F%E9%96%93%E9%81%95%E3%81%84%E3%81%8C%E5%B0%91%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%E3%81%9F%E3%81%A8%E3%81%88%E3%81%B0%E8%A6%AA%E3%81%AE%E6%97%A7%E5%A7%93%E3%82%84%E3%80%81%E5%8F%94%E7%88%B6%E3%81%AE%E5%90%8D%E5%89%8D%E3%80%81%E5%8D%92%E6%A5%AD%E3%81%97%E3%81%9F%E5%B0%8F%E5%AD%A6%E6%A0%A1%E3%81%AA%E3%81%A9%E3%80%81%E6%8C%87%E7%B4%8B%E5%90%8C%E6%A7%98%E7%94%9F%E6%B6%AF%E5%A4%89%E5%8C%96%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%AA%E3%81%84%E3%82%82%E3%81%AE%E3%81%AB%E3%81%99%E3%82%8B%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%99%E3%80%82%E3%82%82%E3%81%97%E3%81%8F%E3%81%AF%E3%80%81%E3%83%9A%E3%83%83%E3%83%88%E3%81%AE%E5%90%8D%E5%89%8D%E3%80%81%E5%A5%BD%E3%81%8D%E3%81%AA%E6%AD%8C%E6%89%8B%E3%80%81%E4%B9%97%E3%82%8A%E6%8F%9B%E3%81%88%E3%82%8B%E9%A7%85%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E8%AA%B0%E3%81%A7%E3%82%82%E4%BD%95%E5%BA%A6%E3%81%A8%E3%81%AA%E3%81%8F%E8%80%B3%E3%81%AB%E3%81%99%E3%82%8B%E5%90%8D%E5%89%8D%E3%82%92%E4%BD%BF%E3%81%86%E3%81%93%E3%81%A8%E3%82%82%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E5%85%88%E3%81%BB%E3%81%A9%E7%94%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%8A%E3%81%84%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AA%E3%81%8F%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%A7%E9%80%81%E3%82%8B%E4%BA%8B%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E8%A8%AD%E8%A8%88%E3%82%92%E5%8E%B3%E6%A0%BC%E3%81%AB%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E3%80%81%E3%81%93%E3%82%93%E3%81%AA%E5%8A%B9%E6%9E%9C%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E5%BE%A9%E6%97%A7%3Cbr%3E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%BF%98%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E6%9C%80%E5%BE%8C%E3%81%AB%E9%A0%BC%E3%82%8B%E3%81%AE%E3%81%AF%E9%9B%BB%E8%A9%B1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%A2%E3%83%8A%E3%82%AF%E3%83%AD%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%99%E3%80%82%E4%BA%BA%E4%BB%B6%E8%B2%BB%E3%81%8C%E9%AB%98%E3%82%B3%E3%82%B9%E3%83%88%E8%A6%81%E5%9B%A0%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%81%AE%E3%81%A7%E3%81%8D%E3%82%8BJava%E3%82%A2%E3%83%97%E3%83%AC%E3%83%83%E3%83%88%E3%82%84ActiveX%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E4%BD%BF%E3%81%84%E3%80%81%E6%B5%B7%E5%A4%96%E3%81%AB%E3%82%A2%E3%82%A6%E3%83%88%E3%82%BD%E3%83%BC%E3%82%B7%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8C%E3%81%B0%E6%AF%94%E8%BC%83%E7%9A%84%E5%AE%89%E4%B8%8A%E3%81%8C%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%90%8D%E3%81%A8%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%8C%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E5%85%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%80%81%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%8F%A3%E9%A0%AD%E3%82%84%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E4%BC%9D%E3%81%88%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9%E9%99%90%E3%82%92%E4%B8%8E%E3%81%88%E3%80%81%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E9%A0%85%E7%9B%AE%E3%82%92%E6%9C%80%E5%B0%8F%E9%99%90%E3%81%AB%E6%8A%91%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%8B%E3%81%8B%E3%82%8B%E6%99%82%E9%96%93%E3%81%8C%E7%9F%AD%E3%81%8F%E3%81%AA%E3%82%8A%E3%82%B3%E3%82%B9%E3%83%88%E5%89%8A%E6%B8%9B%E3%81%AB%E7%B9%8B%E3%81%8C%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%83%BBOS%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%B8%E3%81%AE%E6%9C%80%E9%81%A9%E5%8C%96%3Cbr%3E%E4%B8%80%E8%88%AC%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%91%E3%81%91%E3%81%AE%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A7%E3%81%AF%E9%9B%A3%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%A4%E3%81%A4%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81IE6%E3%81%A8Windows%20XP%E3%81%A8%E3%81%84%E3%81%A3%E3%81%9F%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B8%E3%83%B3%E3%82%B0%E7%92%B0%E5%A2%83%E3%82%92%E9%99%90%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%80%81%E9%8A%80%E8%A1%8C%E6%A5%AD%E5%8B%99%E3%81%AA%E3%81%A9%E7%A2%BA%E5%AE%9F%E6%80%A7%E3%81%AE%E6%B1%82%E3%82%81%E3%82%89%E3%82%8C%E3%82%8B%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%A0%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%A7%E3%81%99%E3%80%82%E7%AC%AC%E4%B8%89%E8%80%85%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%82%88%E3%81%8F%E7%A0%94%E7%A9%B6%E3%81%95%E3%82%8C%E3%81%9F%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A8%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%9FOS%E3%81%AB%E3%80%81%E9%AB%98%E5%BA%A6%E3%81%AB%E6%9C%80%E9%81%A9%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E6%97%A5%E3%80%85%E3%81%AE%E6%A5%AD%E5%8B%99%E3%82%92%E6%94%AF%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E9%AB%98%E5%BA%A6%E3%81%AB%E6%9C%80%E9%81%A9%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%80%81%E6%9C%80%E6%96%B0%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%A9%9F%E8%83%BD%EF%BC%88%E4%BA%92%E6%8F%9B%E3%83%A2%E3%83%BC%E3%83%89%EF%BC%89%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E4%B8%8D%E6%AD%A3%E3%81%AB%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E4%BA%8B%E3%81%8C%E9%9B%A3%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8A%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%81%97%E3%81%B0%E3%81%97%E3%81%B0%E9%9B%A3%E8%A7%A3%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%8C%E9%87%8D%E8%A6%81%E3%81%AA%E6%83%85%E5%A0%B1%E3%82%92%E8%A7%A3%E8%AA%AD%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%81%AB%E3%81%8B%E3%81%8B%E3%82%8B%E6%99%82%E9%96%93%E3%81%8C%E5%BC%95%E3%81%8D%E4%BC%B8%E3%81%B0%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E7%A7%98%E5%8C%BF%E3%81%AB%E3%82%88%E3%82%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AF%E9%95%B7%E3%81%84%E5%AE%9F%E7%B8%BE%E3%81%AB%E8%A3%8F%E4%BB%98%E3%81%91%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E5%A4%89%E7%A8%AE%E3%81%A8%E3%81%97%E3%81%A6%E3%80%81%E7%B0%A1%E6%98%93%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E5%86%85%E8%94%B5%E3%81%AE%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%9B%E3%82%8B%E3%80%81%E3%81%A8%E3%81%84%E3%81%86%E6%96%B9%E6%B3%95%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%84%E3%81%9A%E3%82%8C%E3%81%AB%E3%81%9B%E3%82%88%E3%80%81%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E8%A7%A3%E9%87%88%E3%82%84UI%E3%82%92%E9%96%8B%E7%99%BA%E8%80%85%E5%81%B4%E3%81%A7%E5%88%B6%E9%99%90%E3%81%99%E3%82%8B%E4%BA%8B%E3%81%8C%E9%87%8D%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%87%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1%E6%B5%81%E5%87%BA%E3%82%92%E9%81%BF%E3%81%91%E3%82%8B%3Cbr%3E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AA%E3%81%A9%E3%81%AE%E6%83%85%E5%A0%B1%E3%81%AE%E6%B5%81%E5%87%BA%E3%81%8C%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%A8%E3%81%84%E3%81%86%E6%83%85%E5%A0%B1%E3%81%AE%E6%B5%81%E5%87%BA%E3%82%92%E9%81%BF%E3%81%91%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%A8%E3%81%A6%E3%82%82%E9%87%8D%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%E3%81%B2%E3%81%A8%E3%81%9F%E3%81%B3%E6%83%85%E5%A0%B1%E6%B5%81%E5%87%BA%E3%81%8C%E9%9C%B2%E8%A6%8B%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%A7%98%E3%80%85%E3%81%AA%E6%89%8B%E6%B3%95%E3%81%A7%E4%BD%8E%E3%82%B3%E3%82%B9%E3%83%88%E3%81%A7%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%8B%E3%81%A4%E8%84%86%E5%BC%B1%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%81%8C%E3%80%81%E4%B8%8D%E5%AE%89%E3%82%92%E7%85%BD%E3%82%8B%E8%87%AA%E7%A7%B0%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%B0%82%E9%96%80%E5%AE%B6%E3%81%AE%E3%81%9B%E3%81%84%E3%81%A7%E3%80%81%E8%A4%87%E9%9B%91%E3%81%A7%E4%B8%8D%E4%BE%BF%E3%81%A7%E9%AB%98%E3%82%B3%E3%82%B9%E3%83%88%E3%81%AA%E8%AA%8D%E8%A8%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%B8%E3%81%AE%E3%83%AA%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E3%82%92%E8%BF%AB%E3%82%89%E3%82%8C%E3%82%8B%E4%BA%8B%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E5%86%85%E9%83%A8%E3%81%A7%E5%95%8F%E9%A1%8C%E3%81%8C%E7%99%BA%E8%A6%9A%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E5%BF%85%E8%A6%81%E3%81%AA%E5%AF%BE%E7%AD%96%E3%81%8C%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%81%AF%E4%BE%A1%E5%80%A4%E3%81%82%E3%82%8B%E9%A1%A7%E5%AE%A2%E3%81%AB%E3%81%AE%E3%81%BF%E9%9B%BB%E8%A9%B1%E3%81%AA%E3%81%A9%E5%AE%89%E5%85%A8%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%A7%E9%80%A3%E7%B5%A1%E3%81%97%E3%80%81%E4%B8%80%E8%88%AC%E5%90%91%E3%81%91%E3%81%AE%E6%83%85%E5%A0%B1%E3%81%AF%E5%AF%BE%E7%AD%96%E5%AE%8C%E4%BA%86%E5%BE%8C%E3%81%AB%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3%E7%94%BB%E5%83%8F%E3%81%8B%E3%82%89%E7%94%9F%E6%88%90%E3%81%97%E3%81%9FPDF%E3%81%A8%E3%81%97%E3%81%A6%E7%9F%AD%E6%99%82%E9%96%93%E6%8E%B2%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8C%E6%87%B8%E5%91%BD%E3%81%A7%E3%81%99%E3%80%82%E5%86%8D%E9%85%8D%E5%B8%83%E3%82%92%E7%A6%81%E3%81%98%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E6%84%8F%E5%8C%A0%E3%81%A8%E8%91%97%E4%BD%9C%E6%A8%A9%E8%A1%A8%E7%A4%BA%E3%82%92%E4%BB%98%E3%81%91%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AErobots.txt%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6Internet%20Archive%E3%82%84%E3%82%A6%E3%82%A7%E3%83%96%E9%AD%9A%E6%8B%93%E3%81%AB%E5%8F%96%E5%BE%97%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E9%81%BF%E3%81%91%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%26lt%3Bspan%20style%3D%22color%3A%20%23990000%22%26gt%3B%E3%82%A2%E3%83%B3%E3%83%81%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%26lt%3B%2Fspan%26gt%3B%3Cbr%3E%3Cbr%3E%E8%84%86%E5%BC%B1%E3%81%A7%E3%81%AA%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E6%81%90%E3%82%8C%E3%81%8C%E3%81%82%E3%82%8B%E3%80%81%E3%81%93%E3%82%93%E3%81%AA%E5%AE%89%E5%9C%B0%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%8C%E7%9F%A5%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%BE%9E%E6%9B%B8%E3%83%BB%E3%83%AA%E3%82%B9%E3%83%88%3Cbr%3E%E5%A4%9A%E3%81%8F%E3%81%AE%E4%BA%BA%E3%81%8C%E3%82%88%E3%81%8F%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%BE%9E%E6%9B%B8%E3%81%AB%E8%BC%89%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%8C%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%82%92%E8%AD%A6%E5%91%8A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E3%81%84%E3%81%9F%E3%81%9A%E3%82%89%E3%81%AB%E4%B8%8D%E5%AE%89%E3%81%AB%E3%81%95%E3%81%9B%E3%81%BE%E3%81%99%E3%80%82%E4%BA%BA%E3%81%AF%E8%87%AA%E5%88%86%E3%81%AF%E4%BB%96%E4%BA%BA%E3%81%A8%E9%81%95%E3%81%86%E3%81%A8%E6%80%9D%E3%81%84%E8%BE%BC%E3%81%BF%E3%81%9F%E3%81%8C%E3%82%8B%E7%94%9F%E3%81%8D%E7%89%A9%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%82%E3%81%A3%E3%81%A8%E3%82%82%E3%80%81%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E8%BE%9E%E6%9B%B8%E3%82%84%E3%81%A9%E3%81%93%E3%81%8B%E3%82%89%E3%81%8B%E6%B5%81%E5%87%BA%E3%81%97%E3%81%9F%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AB%E8%BC%89%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%A8%E3%81%84%E3%81%86%E4%BA%8B%E5%AE%9F%E3%82%92%E3%80%81%E5%AE%9A%E6%9C%9F%E7%9A%84%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E5%A4%89%E6%9B%B4%E3%81%AE%E3%81%9F%E3%82%81%E3%80%81%E3%81%A8%E8%A1%A8%E7%8F%BE%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%83%9E%E3%83%8A%E3%83%BC%E3%81%AE%E4%B8%80%E3%81%A4%E3%81%AA%E3%81%AE%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%82%BD%E3%83%AB%E3%83%88%E4%BB%98%E3%81%8D%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%3Cbr%3E%E7%94%9F%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E7%A0%B4%E6%A3%84%E3%81%97%E3%81%A6%E3%82%BD%E3%83%AB%E3%83%88%E4%BB%98%E3%81%8D%E3%81%AE%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E3%80%81%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%A7%E3%81%99%E3%82%89%E5%BF%98%E3%82%8C%E3%81%9F%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AF%E5%BE%A9%E5%85%83%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E5%9B%9E%E5%BE%A9%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E5%85%A8%E3%81%8F%E6%96%B0%E3%81%97%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E5%90%8C%E4%B8%80%E3%81%AE%E3%82%BD%E3%83%AB%E3%83%88%E3%82%92%E4%BD%BF%E3%81%84%E5%9B%9E%E3%81%95%E3%81%AA%E3%81%84%E9%99%90%E3%82%8A%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%82%82%E7%B7%8F%E5%BD%93%E3%82%8A%E3%81%8C%E3%83%92%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E7%A2%BA%E7%8E%87%E3%81%AF%E5%A4%89%E3%82%8F%E3%82%89%E3%81%AA%E3%81%84%E3%80%81%E3%81%A8%E3%81%84%E3%81%86%E8%AA%AC%E3%82%92%E4%BF%A1%E3%81%98%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%E4%BA%BA%E3%81%AF%E5%A4%9A%E3%81%8F%E3%80%81%E3%81%97%E3%81%B0%E3%81%97%E3%81%B0%E7%90%86%E8%A7%A3%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%E3%83%AB%E3%83%BC%E3%83%AC%E3%83%83%E3%83%88%E3%81%AE%E5%90%8C%E3%81%98%E7%9B%AE%E3%81%AB%E8%B3%AD%E3%81%91%E7%B6%9A%E3%81%91%E3%82%8B%E6%88%A6%E7%95%A5%E3%81%A8%E3%80%81%E6%AF%8E%E5%9B%9E%E9%81%95%E3%81%86%E7%9B%AE%E3%81%AB%E8%B3%AD%E3%81%91%E3%82%8B%E6%88%A6%E7%95%A5%E3%81%A7%E3%81%AF%E3%80%81%E5%84%B2%E3%81%91%E3%81%AB%E5%A4%A7%E3%81%8D%E3%81%AA%E5%B7%AE%E3%81%8C%E3%81%82%E3%82%8B%E3%81%A8%E6%84%9F%E3%81%98%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%A8%E3%81%A6%E3%82%82%E8%87%AA%E7%84%B6%E3%81%AA%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E4%BA%92%E6%8F%9B%E6%80%A7%E3%82%82%E5%BF%83%E9%85%8D%E3%81%A7%E3%81%99%E3%80%82%5Bcrypt%5D(http%3A%2F%2Fwww.akkadia.org%2Fdrepper%2FSHA-crypt.txt)%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E3%81%82%E3%82%8B%E7%A8%8B%E5%BA%A6%E8%A6%8F%E6%A0%BC%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E7%9F%AD%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%A7%E3%81%AF%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E6%95%B0%E3%81%99%E3%82%89%E5%85%A5%E3%82%8A%E3%81%8D%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E8%A4%87%E9%9B%91%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%88%E3%82%8A%E3%82%82%E9%95%B7%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%3Cbr%3E%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97%E3%82%92%E5%90%AB%E3%82%808%E6%96%87%E5%AD%97%E3%82%88%E3%82%8A10%E6%96%87%E5%AD%97%E3%81%AE%E5%A4%A7%E5%B0%8F%E8%8B%B1%E6%95%B0%E5%AD%97%E3%81%AE%E6%96%B9%E3%81%8C%E7%B7%8F%E5%BD%93%E3%82%8A%E8%80%90%E6%80%A7%E3%81%8C%E9%AB%98%E3%81%84%E3%81%AA%E3%82%93%E3%81%A6%E3%80%811000%E5%9B%9E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E5%A4%89%E3%81%88%E3%82%8B%E3%82%88%E3%82%8A%E3%82%822%E6%96%87%E5%AD%97%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AA%E8%8B%B1%E6%95%B0%E5%AD%97%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%96%B9%E3%81%8C%E5%BC%B7%E3%81%84%E3%81%AA%E3%82%93%E3%81%A6%E3%80%81%E3%81%AB%E3%82%8F%E3%81%8B%E3%81%AB%E3%81%AF%5B%E4%BF%A1%E3%81%98%E3%82%89%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%5D(http%3A%2F%2Fwww.dit.co.jp%2Fservice%2Freport%2Fsecurity-threat_v3.html)%E3%80%82%3Cbr%3E%3Cbr%3E%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97%E3%81%AE%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%84%5BUnicode%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96%5D(http%3A%2F%2Fja.wikipedia.org%2Fwiki%2FUnicode%25E6%25AD%25A3%25E8%25A6%258F%25E5%258C%2596)%E5%87%A6%E7%90%86%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E6%80%A7%E3%81%99%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E8%A8%80%E3%81%86%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%3Cbr%3E%E3%81%9B%E3%81%84%E3%81%9C%E3%81%84%E8%91%89%E6%9B%B8%E4%B8%80%E6%9E%9A%E3%81%A7%E3%81%99%E3%82%80%E3%83%9E%E3%83%88%E3%83%AA%E3%82%AF%E3%82%B9%E8%AA%8D%E8%A8%BC%E3%81%A8%E9%81%95%E3%81%A3%E3%81%A6%E3%80%81%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%82%92%E8%B3%BC%E5%85%A5%E3%83%BB%E9%80%81%E4%BB%98%E3%81%99%E3%82%8B%E3%82%B3%E3%82%B9%E3%83%88%E3%81%AF%E6%B4%92%E8%90%BD%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%3Cbr%3E%5BRFC6238%5D(http%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6238)%20%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%81%AA%E5%AE%9F%E8%A3%85%E3%81%AF%E3%80%81%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%8C%E5%85%AC%E9%96%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8C%E5%BF%83%E9%85%8D%E3%81%A7%E3%81%99%E3%81%97%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7ntpd%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%AA%E3%82%93%E3%81%A6%E9%9D%A2%E5%80%92%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%83%AA%E3%82%B9%E3%82%AF%E6%A4%9C%E5%87%BA%E3%81%AB%E3%82%88%E3%82%8B%E5%86%8D%E8%AA%8D%E8%A8%BC%E3%83%BB%E3%83%AD%E3%83%83%E3%82%AF%E3%83%BB%E9%80%9A%E7%9F%A5%3Cbr%3E%E9%81%95%E3%81%86%E5%9B%BD%E3%81%8B%E3%82%89%E9%80%A3%E7%B6%9A%E3%81%97%E3%81%A6%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%8C%E3%81%82%E3%81%A3%E3%81%9F%E3%82%8A%E3%80%81%E7%AA%81%E7%84%B6%E3%82%B9%E3%83%91%E3%83%A0%E8%A1%8C%E7%82%BA%E3%82%92%E5%A7%8B%E3%82%81%E3%81%9F%E3%82%8A%E3%80%81%E4%BB%96%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8B%E3%82%89%E6%BC%8F%E6%B4%A9%E3%81%97%E3%81%9F%E8%84%86%E5%BC%B1%E3%81%AA%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%81%E3%81%9D%E3%82%93%E3%81%AA%E8%84%86%E5%BC%B1%E3%81%95%E3%81%8C%E6%98%8E%E7%99%BD%E3%81%AA%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%82%88%E3%81%8F%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E7%84%A1%E5%8A%B9%E5%8C%96%E3%81%97%E3%81%9F%E3%82%8A%E3%80%81%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E4%B8%80%E6%99%82%E7%9A%84%E3%81%AB%E5%87%8D%E7%B5%90%E3%81%97%E3%81%9F%E3%82%8A%E3%80%81%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E6%8E%A8%E5%A5%A8%E3%81%99%E3%82%8B%E9%80%9A%E7%9F%A5%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%80%81%E6%BD%9C%E5%9C%A8%E7%9A%84%E3%81%AA%E3%83%AA%E3%82%B9%E3%82%AF%E3%82%92%E7%99%BD%E6%97%A5%E3%81%AE%E4%B8%8B%E3%81%AB%E6%99%92%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E6%9C%80%E6%96%B0%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%3Cbr%3E%E6%96%B0%E3%81%97%E3%81%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%BB%E3%81%A9%E3%80%81%E6%97%A7%E6%9D%A5%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E9%AB%98%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E7%A6%81%E6%AD%A2%E7%A6%81%E6%AD%A2%E3%81%97%E3%81%8B%E3%82%8A%E3%80%81%E6%9C%80%E8%BF%91%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%E3%81%AF%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E3%82%92%E5%88%B6%E5%BE%A1%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E9%9B%A3%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8A%E3%80%81%E3%81%BE%E3%81%9F%E3%81%A9%E3%81%AE%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%E3%82%82%E4%BC%BC%E3%81%9F%E3%82%88%E3%81%86%E3%81%AA%E5%A4%96%E8%A6%B3%E3%83%BB%E6%8C%99%E5%8B%95%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%80%81%E8%93%84%E3%81%88%E3%81%9F%E3%83%8E%E3%82%A6%E3%83%8F%E3%82%A6%E3%81%AB%E3%82%88%E3%82%8B%E5%B7%AE%E5%88%A5%E5%8C%96%E3%81%8C%E9%9B%A3%E3%81%97%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%82%82%E3%81%A3%E3%81%A8%E3%82%82%E3%80%81%E3%83%95%E3%83%A5%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%95%E3%82%A9%E3%83%B3%E3%82%84%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8C%E6%89%93%E3%81%A1%E5%88%87%E3%82%89%E3%82%8C%E3%81%9F%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AA%E3%81%A9%E3%80%81%E3%81%BE%E3%81%A0%E3%81%BE%E3%81%A0%E8%A6%8B%E3%81%9B%E6%89%80%E3%81%AF%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E5%AE%89%E5%BF%83%E3%81%A7%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%23%20%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%87%E3%83%B3%E3%83%88%E7%99%BA%E7%94%9F%E6%99%82%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%3Cbr%3E%E4%B8%87%E4%B8%80%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E4%BE%B5%E5%85%A5%E3%81%95%E3%82%8C%E3%80%81%E3%81%9D%E3%82%8C%E3%81%8C%E9%9C%B2%E8%A6%8B%E3%81%99%E3%82%8C%E3%81%B0%E3%80%81%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%E3%81%93%E3%82%8C%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%80%81%E3%81%A9%E3%82%8C%E3%81%A0%E3%81%91%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%8B%E6%9C%AA%E7%9F%A5%E6%95%B0%E3%81%A7%E3%81%99%E3%80%82%E7%89%B9%E3%81%AB%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AA%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E5%B0%91%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%E8%87%B4%E5%91%BD%E5%82%B7%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%88%E3%81%BE%E3%81%99%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E3%81%BE%E3%81%A8%E3%82%81%E3%81%AB%3Cbr%3E%E7%B0%A1%E5%8D%98%E3%81%AB%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%A7%E3%81%8D%E3%82%8B%E6%89%8B%E6%B3%95%E3%82%92%E3%81%BE%E3%81%A8%E3%82%81%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E6%97%A2%E3%81%AB%E5%AE%9F%E8%B7%B5%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%A6%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%9F%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%86%E6%96%B9%E3%81%8C%E5%A4%9A%E3%81%84%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%82%E3%81%97%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E8%AA%8D%E8%A8%BC%E3%82%92%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%83%E3%83%81%E3%81%A7%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E6%A9%9F%E4%BC%9A%E3%81%8C%E3%81%82%E3%81%A3%E3%81%9F%E3%82%89%E3%80%81%E3%81%9C%E3%81%B2%E3%81%93%E3%81%93%E3%81%AB%E6%8C%99%E3%81%92%E3%81%9F%E3%82%A2%E3%83%B3%E3%83%81%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AB%E6%B0%97%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%82%88%E3%82%8A%E3%82%88%E3%81%84%E8%AA%8D%E8%A8%BC%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3Cbr%3E%3Cbr%3E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%82%92%E3%82%88%E3%82%8A%E5%8A%B9%E7%8E%87%E3%82%88%E3%81%8F%E8%84%86%E5%BC%B1%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E3%81%9C%E3%81%B2%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/edit/input?id=388566941" id="markdown-here-wrapper-666398"><p style="margin: 0.5em 0px ! important">いかにしてパスワード認証を脆弱にするか。プログラミング黎明期からずっとデベロッパーの頭を悩ませ続ける問題です。</p>
<p style="margin: 0.5em 0px ! important">ここでは脆弱なパスワード認証を実現するための方法を紹介します。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワード自動入力の禁止</h3>
<p style="margin: 0.5em 0px ! important">不届きなブラウザがパスワードを記憶してしまうことがあります。 パスワードは間違いの無いように、ひともじひともじ、人間が入力するべきです。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">&lt;input name=&quot;pw&quot; type=&quot;password&quot; autocomplete=&quot;off&quot; /&gt;
</pre>
<p style="margin: 0.5em 0px ! important">とするのは<a href="https://www.google.co.jp/search?q=autocomplete+off">常識</a>ですね。ブラウザのパスワード管理機能より、脳内の文字列の方がずっと安心です。</p>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">フォームを動的生成、AjaxでPOST</li>
<li style="margin: 0.3em 0px 0.5em">cursor: textスタイルで偽input</li>
</ul>
<p style="margin: 0.5em 0px ! important">などで、ブラウザのパスワード保存をスキップする方法もあります。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワード貼り付けの禁止</h3>
<p style="margin: 0.5em 0px ! important">貼り付けも自動入力と同罪です。onpaste属性を利用して</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">&lt;input name=&quot;pw&quot; type=&quot;password&quot; autocomplete=&quot;off&quot;
  onpaste=&quot;javascript:function(){return false;}&quot; /&gt;
</pre>
<p style="margin: 0.5em 0px ! important">もしくはjavascriptで、onpasteイベントの匿名リスナを登録する方法がメジャーのようです。
他にも、やや面倒だったり環境依存しますが、</p>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">画像化された仮想キーボードをクリックさせる</li>
<li style="margin: 0.3em 0px 0.5em">onkeydownや透過inputを読んで文字列を構築</li>
<li style="margin: 0.3em 0px 0.5em">タイピングの速度を監視する</li>
</ul>
<p style="margin: 0.5em 0px ! important">など、ペーストを防ぐ方法もいくつかあります。
古典的には右クリックを禁止する方法も使われましたが、近頃のブラウザは無視してしまうことが多いので不十分です。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワードの長さを制限</h3>
<p style="margin: 0.5em 0px ! important">javascriptが無効なフィーチャーフォンに対応しなければならないこともあります。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">&lt;input name=&quot;pw&quot; type=&quot;password&quot; autocomplete=&quot;off&quot;
  maxlength=&quot;8&quot; onpaste=&quot;javascript:function(){return false;}&quot; /&gt;
</pre>
<p style="margin: 0.5em 0px ! important">のようにmaxlengthは多くのブラウザでサポートされています。</p>
<p style="margin: 0.5em 0px ! important">このポリシーを仕様の段階で明確化するため、データベースの生パスワードを保存しているカラムは CHAR(8) と定義しましょう。長すぎるパスワードはRDB側で無視することが出来ます。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">入力フォームの値を制限</h3>
<p style="margin: 0.5em 0px ! important">デバッグチームから、環境やブラウザによっては期待通りに動作しないパスワードがある、なんてレポートが送られてくるかもしれません。
おかしなパスワードが入力されることが無いように、入力の段階でさにたいずしましょう。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">$(<span style="color: #dd1144" class="string">&quot;input&quot;</span>).bind(<span style="color: #dd1144" class="string">&quot;change&quot;</span>, <span class="function"><span style="color: #333333; font-weight: bold" class="keyword">function</span><span class="params">(e)</span> {</span>
    <span style="color: #333333; font-weight: bold" class="keyword">if</span> ($(<span style="color: #333333; font-weight: bold" class="keyword">this</span>).val().match(<span style="color: #009926" class="regexp">/[^a-zA-Z0-9.-]|SELECT|DROP/</span>)) {
        alert(<span style="color: #dd1144" class="string">&quot;不正な文字列&quot;</span>);
        $(<span style="color: #333333; font-weight: bold" class="keyword">this</span>).val(<span style="color: #dd1144" class="string">&quot;&quot;</span>);
    }
});
</pre>
<p style="margin: 0.5em 0px ! important">ちょっと長いのでjQueryに頼っていますが、ログイン失敗は致命的なので仕方がありません。
問題が起きそうなパスワードではアラートを出してユーザに適切なパスワードを入力してもらいましょう。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワードの再利用を禁止</h3>
<p style="margin: 0.5em 0px ! important">同じパスワードの使い回しを防ぐために、過去のパスワードは全て保存しておき、変更の際にチェックしましょう。</p>
<p style="margin: 0.5em 0px ! important">どんなに古いパスワードでも遡ってチェックできるように、生パスワードをアカウントやメールアドレスと紐つけてデータベースに保存しておきます。万一消えてしまうと本人さえ覚えておらず取り返しがつかないので、DBオペレーターはバックアップをローカルPCにとっておくべきですね。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワードの定期的な変更</h3>
<p style="margin: 0.5em 0px ! important">パスワードは定期的に変更しましょう！ <strong>安全[誰の？]</strong>のため、<strong>数ヶ月に一度は強制的に変更させるべき[要出典]</strong>でしょう。 このポリシーはいまや業界標準となっています。</p>
<p style="margin: 0.5em 0px ! important">これは同時に、ユーザーに脆弱なパスワード認証の重要性を思い出してもらう良い機会です。
何度も何度もパスワードを考えさせれば、より覚えやすいパスワードを編み出してくれることでしょう。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">秘密の質問を設定</h3>
<p style="margin: 0.5em 0px ! important">パスワードを思い出すのが億劫なユーザーのために、秘密の質問を用意しておきましょう。</p>
<p style="margin: 0.5em 0px ! important">質問内容はユーザーに決めさせるより、あらかじめよく検討した質問を選択式にしておくと、忘れにくく間違いが少なくなります。
たとえば親の旧姓や、叔父の名前、卒業した小学校など、指紋同様生涯変化することがないものにするべきです。もしくは、ペットの名前、好きな歌手、乗り換える駅のように、誰でも何度となく耳にする名前を使うことも検討してみましょう。</p>
<p style="margin: 0.5em 0px ! important">先ほど生パスワードを保存しておいたので、パスワードを変更することなくメールで送る事ができます。データベース設計を厳格にしておくと、こんな効果もあります。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">オペレーターによるパスワードの復旧</h3>
<p style="margin: 0.5em 0px ! important">パスワードを忘れてしまったユーザーが最後に頼るのは電話のようなアナクロな方法です。人件費が高コスト要因ですが、チャットのできるJavaアプレットやActiveXプラグインを使い、海外にアウトソーシングすれば比較的安上がりです。</p>
<p style="margin: 0.5em 0px ! important">ユーザーのアカウント名とメールアドレスがデータベースに入っているか、オペレータが確認してパスワードを口頭やチャットでユーザーに伝えることができます。オペレータにデータベースへのアクセス権限を与え、チェック項目を最小限に抑えておくことで、対応にかかる時間が短くなりコスト削減に繋がります。</p>
<h3 id="-os-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">ブラウザ・OSバージョンへの最適化</h3>
<p style="margin: 0.5em 0px ! important">一般ユーザー向けのウェブサイトでは難しくなりつつありますが、IE6とWindows XPといったブラウジング環境を限定するのは、銀行業務など確実性の求められるウェブアプリを実現する方法としていまだ一般的です。第三者によってよく研究されたブラウザと安定したOSに、高度に最適化されたソフトウェアが日々の業務を支えています。</p>
<p style="margin: 0.5em 0px ! important">高度に最適化されたアプリケーションは、最新のブラウザのエミュレーション機能（互換モード）によって不正に利用する事が難しくなり、アプリケーションはしばしば難解でプログラマが重要な情報を解読するまでにかかる時間が引き伸ばします。アルゴリズム秘匿によるセキュリティは長い実績に裏付けられています。</p>
<p style="margin: 0.5em 0px ! important">変種として、簡易ブラウザ内蔵のスマートフォンアプリを使わせる、という方法もあります。いずれにせよ、ブラウザの解釈やUIを開発者側で制限する事が重要です。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">インシデント情報流出を避ける</h3>
<p style="margin: 0.5em 0px ! important">パスワードなどの情報の流出がおきたという情報の流出を避けるのはとても重要です。
ひとたび情報流出が露見すると、様々な手法で低コストでシンプルかつ脆弱になったパスワード認証が、不安を煽る自称セキュリティ専門家のせいで、複雑で不便で高コストな認証システムへのリプレースを迫られる事になります。</p>
<p style="margin: 0.5em 0px ! important">内部で問題が発覚したら、必要な対策が終了するまでは価値ある顧客にのみ電話など安全な方法で連絡し、一般向けの情報は対策完了後にスキャン画像から生成したPDFとして短時間掲示するのが懸命です。再配布を禁じるために意匠と著作権表示を付け、サーバーのrobots.txtを設定してInternet Archiveやウェブ魚拓に取得されることは避けなければなりません。</p>
<h2 id="-span-style-color-990000-span-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc"><span style="color: #990000">アンチパターン</span></h2>
<p style="margin: 0.5em 0px ! important">脆弱でないパスワードを実装してしまう恐れがある、こんな安地パターンが知られています。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">パスワード辞書・リスト</h3>
<p style="margin: 0.5em 0px ! important">多くの人がよく使われるパスワード辞書に載っているパスワードを使いたがります。これを警告することはユーザーをいたずらに不安にさせます。人は自分は他人と違うと思い込みたがる生き物です。</p>
<p style="margin: 0.5em 0px ! important">もっとも、パスワードが辞書やどこからか流出したリストに載っているため、という事実を、定期的なパスワード変更のため、と表現することはマナーの一つなので覚えておきましょう。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">ソルト付きハッシュ</h3>
<p style="margin: 0.5em 0px ! important">生のパスワードを破棄してソルト付きのハッシュを保存していると、オペレータですら忘れたパスワードは復元することが出来ません。アカウントへのアクセスを回復するには、全く新しいパスワードを設定することになります。</p>
<p style="margin: 0.5em 0px ! important">同一のソルトを使い回さない限りパスワードを変更しても総当りがヒットする確率は変わらない、という説を信じられない人は多く、しばしば理解が得られません。
ルーレットの同じ目に賭け続ける戦略と、毎回違う目に賭ける戦略では、儲けに大きな差があると感じるのはとても自然なことです。</p>
<p style="margin: 0.5em 0px ! important">互換性も心配です。<a href="http://www.akkadia.org/drepper/SHA-crypt.txt">crypt</a>のように、ある程度規格化された方法がありますが、短いパスワードカラムではラウンド数すら入りきりません。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">複雑なパスワードよりも長いパスワード</h3>
<p style="margin: 0.5em 0px ! important">特殊文字を含む8文字より10文字の大小英数字の方が総当り耐性が高いなんて、1000回パスワードを変えるよりも2文字ランダムな英数字を追加する方が強いなんて、にわかには<a href="http://www.dit.co.jp/service/report/security-threat_v3.html">信じられません</a>。</p>
<p style="margin: 0.5em 0px ! important">特殊文字のエスケープや<a href="http://ja.wikipedia.org/wiki/Unicode%E6%AD%A3%E8%A6%8F%E5%8C%96">Unicodeの正規化</a>処理を実装する必要性すらないと言うのでしょうか？</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">ワンタイムパスワード</h3>
<p style="margin: 0.5em 0px ! important">せいぜい葉書一枚ですむマトリクス認証と違って、ワンタイムパスワードトークンを購入・送付するコストは洒落になりません。</p>
<p style="margin: 0.5em 0px ! important"><a href="http://tools.ietf.org/html/rfc6238">RFC6238</a> のようなオープンな実装は、アルゴリズムが公開されているのが心配ですし、サーバーでntpdを動かすなんて面倒です。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">リスク検出による再認証・ロック・通知</h3>
<p style="margin: 0.5em 0px ! important">違う国から連続してアクセスがあったり、突然スパム行為を始めたり、他のサイトから漏洩した脆弱なパスワードが使われている、そんな脆弱さが明白なアカウントが見つかることはよくあります。</p>
<p style="margin: 0.5em 0px ! important">セッションを無効化したり、アカウントを一時的に凍結したり、パスワードの変更を推奨する通知メールを送ることは、潜在的なリスクを白日の下に晒してしまいます。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">最新のブラウザ</h3>
<p style="margin: 0.5em 0px ! important">新しいブラウザほど、旧来の仕様が変更されている可能性が高くなります。</p>
<p style="margin: 0.5em 0px ! important">右クリック禁止禁止しかり、最近のブラウザではウェブアプリがユーザーインターフェースを制御することが難しくなり、またどのブラウザでも似たような外観・挙動になってしまい、蓄えたノウハウによる差別化が難しくなっています。もっとも、フューチャーフォンやメーカーサポートが打ち切られたスマートフォンなど、まだまだ見せ所は残っているので安心です。</p>
<h3 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">インシデント発生時のパスワードリセット</h3>
<p style="margin: 0.5em 0px ! important">万一データベースに侵入され、それが露見すれば、アカウントのパスワードをリセットすることになります。
これによって、どれだけのユーザーがアカウントにアクセスできなくなるのか未知数です。特にアクティブなユーザーが少ない場合、致命傷になりえます。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">まとめに</h2>
<p style="margin: 0.5em 0px ! important">簡単にチェックできる手法をまとめたので、既に実践されていて役に立たないという方が多いかもしれません。</p>
<p style="margin: 0.5em 0px ! important">もしアカウント認証をスクラッチで実装する機会があったら、ぜひここに挙げたアンチパターンに気をつけて実装してみてください。よりよい認証を実装できるかもしれません。</p>
<p style="margin: 0.5em 0px ! important">パスワード認証をより効率よく脆弱にする方法がありましたら、ぜひお知らせください。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/388567020.html">
<link>http://causeless.seesaa.net/article/388567020.html</link>
<title>SSL中間CA証明書の確認方法メモ</title>
<description>先日、久しく寝かせていたレンタルサーバーを使おうと思い、メールアカウントを設定したのだが、SSL通信に失敗した。原因はよくある、中間証明書の設定ミス。POPS/SMTPSサーバーにインストールされた証明書セットが間違っていた。HTTPSの設定確認はQualys Labのチェックツールが日本語化されていてわかりやすい。ただ、任意のポートを楽にチェックしてくれるサービスが見つからなかったので、opensslを使った方法をメモしておく。opensslによるチェックコマンドは$ op..</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-28T22:28:00+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="%E5%85%88%E6%97%A5%E3%80%81%E4%B9%85%E3%81%97%E3%81%8F%E5%AF%9D%E3%81%8B%E3%81%9B%E3%81%A6%E3%81%84%E3%81%9F%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%8A%E3%81%86%E3%81%A8%E6%80%9D%E3%81%84%E3%80%81%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%AE%E3%81%A0%E3%81%8C%E3%80%81SSL%E9%80%9A%E4%BF%A1%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%9F%E3%80%82%E5%8E%9F%E5%9B%A0%E3%81%AF%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E3%80%81%E4%B8%AD%E9%96%93%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%9F%E3%82%B9%E3%80%82POPS%2FSMTPS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%9F%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%BB%E3%83%83%E3%83%88%E3%81%8C%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3EHTTPS%E3%81%AE%E8%A8%AD%E5%AE%9A%E7%A2%BA%E8%AA%8D%E3%81%AF%5BQualys%20Lab%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%84%E3%83%BC%E3%83%AB%5D(https%3A%2F%2Fsslcheck.globalsign.com%2Fja)%E3%81%8C%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%A6%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E3%80%82%E3%81%9F%E3%81%A0%E3%80%81%E4%BB%BB%E6%84%8F%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E6%A5%BD%E3%81%AB%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81openssl%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%96%B9%E6%B3%95%E3%82%92%E3%83%A1%E3%83%A2%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20openssl%E3%81%AB%E3%82%88%E3%82%8B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%3Cbr%3E%3Cbr%3E%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AF%3Cbr%3E%60%60%60shell%3Cbr%3E%24%20openssl%20s_client%20-connect%20app.usb0.net%3A443%20-showcerts%20%26lt%3B%20%2Fdev%2Fnull%3Cbr%3ECONNECTED(00000003)%3Cbr%3Edepth%3D2%20C%20%3D%20BE%2C%20O%20%3D%20GlobalSign%20nv-sa%2C%20OU%20%3D%20Root%20CA%2C%20CN%20%3D%20GlobalSign%20Root%20CA%3Cbr%3Everify%20return%3A1%3Cbr%3Edepth%3D1%20O%20%3D%20AlphaSSL%2C%20CN%20%3D%20AlphaSSL%20CA%20-%20G2%3Cbr%3Everify%20return%3A1%3Cbr%3Edepth%3D0%20OU%20%3D%20Domain%20Control%20Validated%2C%20CN%20%3D%20*.usb0.net%3Cbr%3Everify%20return%3A1%3Cbr%3E---%3Cbr%3ECertificate%20chain%3Cbr%3E%C2%A00%20s%3A%2FOU%3DDomain%20Control%20Validated%2FCN%3D*.usb0.net%3Cbr%3E%C2%A0%C2%A0%20i%3A%2FO%3DAlphaSSL%2FCN%3DAlphaSSL%20CA%20-%20G2%3Cbr%3E%C2%A01%20s%3A%2FO%3DAlphaSSL%2FCN%3DAlphaSSL%20CA%20-%20G2%3Cbr%3E%C2%A0%C2%A0%20i%3A%2FC%3DBE%2FO%3DGlobalSign%20nv-sa%2FOU%3DRoot%20CA%2FCN%3DGlobalSign%20Root%20CA%3Cbr%3E---%3Cbr%3EServer%20certificate%3Cbr%3E-----BEGIN%20CERTIFICATE-----%3Cbr%3EMIIEmzCCA4OgAwIBAgISESF%2FE%2F8j4rVO8kDXSzgoA5hEMA0GCSqGSIb3DQEBBQUA%3Cbr%3E%E7%95%A5%3Cbr%3E%60%60%60%3Cbr%3E%3Cbr%3E%E6%9C%80%E5%88%9D%E3%81%AE%20%60depth%3DX%60%20%E3%81%AF%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%920%E3%81%A8%E3%81%97%E3%81%9F%E3%80%81openssl%E3%81%AE%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E8%BE%BF%E3%81%A3%E3%81%9F%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E6%B7%B1%E3%81%95%E3%80%82%3Cbr%3E2013%E5%B9%B4%E7%8F%BE%E5%9C%A8%E3%80%81%E6%99%AE%E9%80%9A%E3%81%AE%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%8C%E4%BD%BF%E3%81%86%E5%AE%89%E4%BE%A1%E3%81%AA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AA%E3%82%89%E3%80%81%E4%B8%AD%E9%96%93CA%E3%81%8C%E3%83%AB%E3%83%BC%E3%83%88CA%E3%81%A8%E3%81%AE%E9%96%93%E3%81%AB1%E6%AE%B5%E6%8C%9F%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81depth%3D2%E3%81%8C%20%60OU%20%3D%20Root%20CA%60%20%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%E6%AC%A1%E3%81%AE%60Certificate%20chain%60%E3%81%A8%60Server%20certificate%60%E3%81%AF%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89%E9%80%81%E3%82%89%E3%82%8C%E3%81%A6%E6%9D%A5%E3%81%9F%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%80%82%3Cbr%3E%E9%80%9A%E5%B8%B8%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%87%AA%E8%BA%AB%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%20(%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E3%80%81%20%60CN%3D*.usb0.net%60)%20%E3%81%A8%E3%80%81%E4%B8%AD%E9%96%93%E8%A8%BC%E6%98%8E%E6%9B%B8%20(%60O%3DAlphaSSL%2FCN%3DAlphaSSL%20CA%20-%20G2%60)%20%E3%81%8C%E3%80%81%E9%80%81%E4%BF%A1%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%AD%A3%E3%81%97%E3%81%8F%E4%B8%AD%E9%96%93CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%A8%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%8C%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%A6%E3%80%81%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%88CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%8C%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8C%E3%81%B0%E3%80%81%3Cbr%3E%60%60%60%3Cbr%3E%C2%A0%C2%A0%C2%A0%20Verify%20return%20code%3A%200%20(ok)%3Cbr%3E%60%60%60%3Cbr%3E%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AE%E9%80%9F%E3%81%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%84%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E4%B8%AD%E9%96%93CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%82%E4%BF%A1%E9%A0%BC%E6%B8%88%E3%81%BF%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AB%E5%90%AB%E3%82%81%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E4%B8%AD%E9%96%93%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%8C%E6%AD%A3%E3%81%97%E3%81%8F%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%8F%E3%81%A6%E3%82%82%E3%80%81Verify%E3%81%AB%E6%88%90%E5%8A%9F%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%3Cbr%3E%E3%83%AB%E3%83%BC%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8%EF%BC%88issuer%E3%81%AE%60OU%20%3D%20Root%20CA%60%EF%BC%89%E4%BB%A5%E5%A4%96%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%E5%85%A8%E3%81%A6%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AB%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%23%23%23%20%E4%B8%AD%E9%96%93CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E6%9C%9F%E9%99%90%E5%88%87%E3%82%8C%3Cbr%3E%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BCID%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%88%E3%82%8A%E3%82%82%E4%B8%AD%E9%96%93CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E6%96%B9%E3%81%8C%E6%9C%9F%E9%99%90%E3%81%8C%E9%95%B7%E3%81%84%E5%A0%B4%E5%90%88%E3%81%8C%E5%A4%9A%E3%81%84%E3%81%AE%E3%81%A7%E6%99%AE%E9%80%9A%E3%81%AF%E6%B0%97%E3%81%AB%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E7%84%A1%E3%81%84%E3%81%8C%E3%80%81%E8%A8%BC%E6%98%8E%E6%9B%B8%E6%9B%B4%E6%96%B0%E3%81%AE%E9%9A%9B%E3%81%AB%E4%B8%80%E7%B7%92%E3%81%AB%E4%B8%AD%E9%96%93CA%E3%82%82%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E5%BF%98%E3%82%8C%E3%81%9A%E3%81%AB%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E4%B8%8D%E8%A6%81%E3%81%AA%E3%83%AB%E3%83%BC%E3%83%88CA%E8%A8%BC%E6%98%8E%E6%9B%B8%3Cbr%3E%E3%81%97%E3%81%B0%E3%81%97%E3%81%B0%E3%83%AB%E3%83%BC%E3%83%88CA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E5%90%AB%E3%82%80%E4%B8%8D%E9%81%A9%E5%88%87%E3%81%AA%E8%A8%AD%E5%AE%9A%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8C%E3%80%81%E3%83%AB%E3%83%BC%E3%83%88CA%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89%E9%80%81%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%AF%E3%81%AA%E3%81%84%E3%80%82%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E9%80%81%E3%82%8B%E5%B8%AF%E5%9F%9F%E3%81%8C%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%82%E3%81%9F%E3%82%8A1KB%E3%81%8F%E3%82%89%E3%81%84%E7%84%A1%E9%A7%84%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%E7%89%B9%E3%81%AB%E3%80%81%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%83%AB%E3%83%BC%E3%83%88CA%E8%A8%BC%E6%98%8E%E6%9B%B8%EF%BC%88%E3%83%86%E3%82%B9%E3%83%88%E7%94%A8%E8%AA%8D%E8%A8%BC%E5%B1%80%E3%81%AA%E3%81%A9%EF%BC%89%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81HTTPS%E3%82%92%E3%82%88%E3%81%8F%E7%90%86%E8%A7%A3%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E5%8D%B1%E9%99%BA%E3%81%AB%E6%99%92%E3%81%99%E4%BA%8B%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E7%9B%B4%E3%81%A1%E3%81%AB%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%3Cbr%3E%3Cbr%3E%3Cbr%3E%23%23%20%E5%8F%82%E8%80%83%3Cbr%3E%3Cbr%3E-%20https%3A%2F%2Fwww.verisign.co.jp%2Fssl%2Fhelp%2Ffaq%2F110089%2F%3Cbr%3E-%20http%3A%2F%2Fwww.toritonssl.com%2Fsupport%2Fmanual%2F10-3.html%3Cbr%3E%3Cbr%3E" class="markdown-here-wrapper" data-md-url="http://blog.seesaa.jp/cms/article/edit/input?id=388567020&amp;finished_from_regist=1&amp;finished=1" id="markdown-here-wrapper-613334"><p style="margin: 0.5em 0px ! important">先日、久しく寝かせていたレンタルサーバーを使おうと思い、メールアカウントを設定したのだが、SSL通信に失敗した。原因はよくある、中間証明書の設定ミス。POPS/SMTPSサーバーにインストールされた証明書セットが間違っていた。</p>
<p style="margin: 0.5em 0px ! important">HTTPSの設定確認は<a href="https://sslcheck.globalsign.com/ja">Qualys Labのチェックツール</a>が日本語化されていてわかりやすい。ただ、任意のポートを楽にチェックしてくれるサービスが見つからなかったので、opensslを使った方法をメモしておく。</p>
<h2 id="openssl-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">opensslによるチェック</h2>
<p style="margin: 0.5em 0px ! important">コマンドは</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">$ openssl s_client -connect app.usb0.net:443 -showcerts &lt; /dev/null
CONNECTED(00000003)
depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
verify return:1
depth=1 O = AlphaSSL, CN = AlphaSSL CA - G2
verify return:1
depth=0 OU = Domain Control Validated, CN = *.usb0.net
verify return:1
---
Certificate chain
 0 s:/OU=Domain Control Validated/CN=*.usb0.net
   i:/O=AlphaSSL/CN=AlphaSSL CA - G2
 1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEmzCCA4OgAwIBAgISESF/E/8j4rVO8kDXSzgoA5hEMA0GCSqGSIb3DQEBBQUA
略
</pre>
<p style="margin: 0.5em 0px ! important">最初の depth=X はサーバーの証明書を0とした、opensslのバリデータが辿った証明書の深さ。
2013年現在、普通のウェブサービスが使う安価な証明書なら、中間CAがルートCAとの間に1段挟まれるので、depth=2が OU = Root CA になっている。</p>
<p style="margin: 0.5em 0px ! important">次のCertificate chainとServer certificateはサーバーから送られて来た証明書。
通常、サーバー自身の証明書 (ここでは、 CN=*.usb0.net) と、中間証明書 (O=AlphaSSL/CN=AlphaSSL CA - G2) が、送信されている。</p>
<p style="margin: 0.5em 0px ! important">サーバーに正しく中間CA証明書とサーバー証明書がインストールされていて、対応するルートCA証明書がシステムにインストールされていれば、</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; white-space: pre-wrap; background-color: #f8f8f8; overflow-x: auto; border-radius: 10px; border: 1px solid #cccccc; padding: 0.3em 0.5em; margin: 1em 0px 0.8em">    Verify return code: 0 (ok)
</pre><p style="margin: 0.5em 0px ! important">となる。</p>
<p style="margin: 0.5em 0px ! important">ただし、アップデートの速いブラウザやディストリビューションは中間CA証明書も信頼済みリストに含めている場合があるので、中間証明書が正しく提供されていなくても、Verifyに成功してしまうことがある。
ルート証明書（issuerのOU = Root CA）以外の証明書全て、サーバーにインストールされクライアントに提供されることを確認する。</p>
<h3 id="-ca-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px dashed #cccccc">中間CA証明書の期限切れ</h3>
<p style="margin: 0.5em 0px ! important">サーバーID証明書よりも中間CA証明書の方が期限が長い場合が多いので普通は気にする必要が無いが、証明書更新の際に一緒に中間CAも更新することを忘れずに。</p>
<h2 id="-ca-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">不要なルートCA証明書</h2>
<p style="margin: 0.5em 0px ! important">しばしばルートCA証明書を含む不適切な設定のサーバーがあるが、ルートCAの証明書ををサーバーから送る必要はない。証明書を送る帯域がコネクションあたり1KBくらい無駄になる。</p>
<p style="margin: 0.5em 0px ! important">特に、間違ったルートCA証明書（テスト用認証局など）を送信している場合は、HTTPSをよく理解していないユーザーを危険に晒す事になるので、直ちに削除する必要がある。</p>
<h2 id="-" style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em; border-bottom: 1px solid #cccccc">参考</h2>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em"><a href="https://www.verisign.co.jp/ssl/help/faq/110089/">https://www.verisign.co.jp/ssl/help/faq/110089/</a></li>
<li style="margin: 0.3em 0px 0.5em"><a href="http://www.toritonssl.com/support/manual/10-3.html">http://www.toritonssl.com/support/manual/10-3.html</a></li>
</ul>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/375675327.html">
<link>http://causeless.seesaa.net/article/375675327.html</link>
<title>DjangoのドキュメントがSession Fixationに脆弱な件</title>
<description>Djangoフレームワークのドキュメントを信用しない、大抵の開発者には無関係な話。PythonのウェブフレームワークDjangoは他のフレームワーク同様、cookieによるセッション機能が実装されている。セッションのハイジャック手法の一つにSession Fixation攻撃があり、対策としては、セッションIDに紐ついた権限の変更（または昇格）時にセッションIDを再生成するのが一般的と思う。DjangoのSession周りのドキュメントにも、Session Fixation対..</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-24T20:44:52+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="Djangoフレームワークのドキュメントを信用しない、大抵の開発者には無関係な話。&lt;br&gt;&lt;br&gt;---&lt;br&gt;&lt;br&gt;PythonのウェブフレームワークDjangoは他のフレームワーク同様、cookieによるセッション機能が実装されている。&lt;br&gt;セッションのハイジャック手法の一つにSession Fixation攻撃があり、対策としては、セッションIDに紐ついた権限の変更（または昇格）時にセッションIDを再生成するのが一般的と思う。&lt;br&gt;&lt;br&gt;Djangoの[Session周りのドキュメント](https://docs.djangoproject.com/en/dev/topics/http/sessions/)にも、Session Fixation対策が示唆されているのだが、あたかもフレームワーク側で対策済みかのように書かれている。&lt;br&gt;&amp;gt; In order to prevent session fixation attacks, sessions keys that don’t exist are regenerated:&lt;br&gt;&lt;br&gt;しかし、有効なセッションIDは攻撃者が普通にウェブアプリにアクセスすれば手に入るので、存在しないIDを無視するだけではFixation対策にならない。これではサブドメインやディレクトベースでアカウント管理される共用サ―バーのようにFixationが起こせる条件下では、攻撃者は誘導されてログインしたユーザーの権限を乗っ取ることができてしまう。&lt;br&gt;&lt;br&gt;実際にDjango 1.5.2で試すと、セッションミドルウェア実装はセッションオブジェクト（dict）を明示的に変更しても、IDが変化しないようだ。安全よりも性能側に振ってあるのだろう。&lt;br&gt;&lt;br&gt;自前でIDの再生成を実装しているユーザーには全く影響しないが、ドキュメントをチュートリアルとしてそのまま実装すると、Session Fixationに脆弱かつ可搬性の高いコードが出来上がることになる。&lt;br&gt;ちなみに、Django組み込みのadminアプリはログイン時にIDを再生成しているので問題はない。ただ、セッションIDを明示的に再生成するAPIが見当たらない……&lt;br&gt;&lt;br&gt;個人的にはセッションの再生成はフレームワーク側でサポートするべきだと思う（セッションストアの更新時にIDも変更するだけ）し、少なくともドキュメントは正しく防御方法を示すべきだ。再生成による性能劣化が問題なら再生成の必要がないことを明示するAPIを用意すればいい。&lt;br&gt;&lt;br&gt;&lt;br&gt;PHPのStrict Session関連でもそうだが、存在しないIDを無視するという&quot;Fixation対策&quot;は英語圏でも蔓延しているのだろうか？" class="markdown-here-wrapper" id="markdown-here-wrapper-210241"><p style="margin: 0.7em 0px ! important">Djangoフレームワークのドキュメントを信用しない、大抵の開発者には無関係な話。</p>
<hr />
<p style="margin: 0.7em 0px ! important">PythonのウェブフレームワークDjangoは他のフレームワーク同様、cookieによるセッション機能が実装されている。
セッションのハイジャック手法の一つにSession Fixation攻撃があり、対策としては、セッションIDに紐ついた権限の変更（または昇格）時にセッションIDを再生成するのが一般的と思う。</p>
<p style="margin: 0.7em 0px ! important">Djangoの<a href="https://docs.djangoproject.com/en/dev/topics/http/sessions/">Session周りのドキュメント</a>にも、Session Fixation対策が示唆されているのだが、あたかもフレームワーク側で対策済みかのように書かれている。</p>
<blockquote style="margin: 1em 0px 0.8em; border-left: 4px solid #dddddd; padding: 0px 1em; color: #777777; quotes: none">
<p style="margin: 0.7em 0px ! important">In order to prevent session fixation attacks, sessions keys that don’t exist are regenerated:</p>
</blockquote>
<p style="margin: 0.7em 0px ! important">しかし、有効なセッションIDは攻撃者が普通にウェブアプリにアクセスすれば手に入るので、存在しないIDを無視するだけではFixation対策にならない。これではサブドメインやディレクトベースでアカウント管理される共用サ―バーのようにFixationが起こせる条件下では、攻撃者は誘導されてログインしたユーザーの権限を乗っ取ることができてしまう。</p>
<p style="margin: 0.7em 0px ! important">実際にDjango 1.5.2で試すと、セッションミドルウェア実装はセッションオブジェクト（dict）を明示的に変更しても、IDが変化しないようだ。安全よりも性能側に振ってあるのだろう。</p>
<p style="margin: 0.7em 0px ! important">自前でIDの再生成を実装しているユーザーには全く影響しないが、ドキュメントをチュートリアルとしてそのまま実装すると、Session Fixationに脆弱かつ可搬性の高いコードが出来上がることになる。
ちなみに、Django組み込みのadminアプリはログイン時にIDを再生成しているので問題はない。ただ、セッションIDを明示的に再生成するAPIが見当たらない……</p>
<p style="margin: 0.7em 0px ! important">個人的にはセッションの再生成はフレームワーク側でサポートするべきだと思う（セッションストアの更新時にIDも変更するだけ）し、少なくともドキュメントは正しく防御方法を示すべきだ。再生成による性能劣化が問題なら再生成の必要がないことを明示するAPIを用意すればいい。</p>
<p style="margin: 0.7em 0px ! important">PHPのStrict Session関連でもそうだが、存在しないIDを無視するという“Fixation対策”は英語圏でも蔓延しているのだろうか？</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/375174298.html">
<link>http://causeless.seesaa.net/article/375174298.html</link>
<title>レスポンス比較によるDNS Anti-spoofing</title>
<description>Twistedの勉強がてら、並列にN回(以上)クエリをして、結果がTTLを除き一致することを確認するスプーフィング対策を考えてみた。（商用DNSアプライアンスとかでは既に実装されてたりするんだろうか？）前提現在の主なDNSのspoofing手法は、リゾルバの使うUDPソースポート番号やクエリ先ネームサーバーを様々な方法で予測あるいは強制して、クエリIDがヒットするまで偽のパケットを送り続ける。ポート番号のようなDNSの外側に付加された追加エントロピーを攻略されると、DNSパケ..</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-18T22:49:08+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="Twistedの勉強がてら、並列にN回(以上)クエリをして、結果がTTLを除き一致することを確認するスプーフィング対策を考えてみた。&lt;br&gt;（商用DNSアプライアンスとかでは既に実装されてたりするんだろうか？）&lt;br&gt;&lt;br&gt;### 前提&lt;br&gt;現在の主なDNSのspoofing手法は、リゾルバの使うUDPソースポート番号やクエリ先ネームサーバーを様々な方法で予測あるいは強制して、クエリIDがヒットするまで偽のパケットを送り続ける。&lt;br&gt;ポート番号のようなDNSの外側に付加された追加エントロピーを攻略されると、DNSパケットのクエリIDは16ビットしか無い。しかもしばしば攻撃者はブラウザやメーラー経由で能動的に好きなタイミングでクエリを発生させることができる。そのため、DNSSECなどで保護されていないDNSレスポンスは比較的短時間で攻撃成功率が現実的になる。&lt;br&gt;そのため、[0x20](http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00)のような追加エントロピーや、攻撃を検出してTCPで問い合わせる、といった方法があるようだ。&lt;br&gt;&lt;br&gt;クエリIDの長さが足りないのなら、複数回クエリして、その全てが同じ内容であることを確認すればいい。N個のレスポンスを比較すれば、その全てのパケットが擬装されている可能性は`2^(-16*N)`になる。&lt;br&gt;つまり、N個の相同なレスポンスを得るまでリゾルバ側がクエリをリトライする。（あるいはTCPにフォールバックする）&lt;br&gt;&lt;br&gt;以下の場合、クエリIDを長くすることでスプーフィングを防ぐ事ができる。&lt;br&gt;&lt;br&gt;* リモートのDNSサーバーは信頼出来る&lt;br&gt;* リモートまでの経路は確率的には信頼出来る&lt;br&gt;* 以下の場合は対象外&lt;br&gt;&amp;nbsp;* 通信経路が攻撃者に掌握されている（認証されていないWLANやホームルーター、経路ハイジャックなど）&lt;br&gt;&amp;nbsp;* ネームサーバーが攻撃者に掌握されている&lt;br&gt;&amp;nbsp;* DNSクエリIDが予測可能&lt;br&gt;&amp;nbsp;* IPフラグメントが予測可能（恒常的な2ndフラグメンテーションハイジャック）&lt;br&gt;&amp;nbsp;* TCPシーケンスが予測可能&lt;br&gt;&lt;br&gt;### 利点&lt;br&gt;* クライアント側実装ですむ。サーバーは変更なし&lt;br&gt;* 攻撃パケットを監視する必要がない&lt;br&gt;* DNSSECに比べれば軽い&lt;br&gt;&lt;br&gt;### 欠点&lt;br&gt;* ラウンドロビンでレコードが随時変わる場合には組み合わせが発散するので、相同かチェックできない。&lt;br&gt;&amp;nbsp; - この場合通常のTCP resolverにデグレードしてしまう。&lt;br&gt;* UDPクエリ負荷がN倍程度になる&lt;br&gt;* エラーレートと遅延が大きくなる&lt;br&gt;* TCPクエリが増える&lt;br&gt;&lt;br&gt;### ラウンドロビン&lt;br&gt;ほとんどの場合ではN回のリクエストで済んでしまうが、AnycastやGeoDNSやラウンドロビンなど、レスポンスRRsetがそもそも変化する状況では、リクエスト数がより大きくなる。たとえば`N=2`として所要パケット数は、レスポンスの組み合わせの平方根程度になる。&lt;br&gt;&lt;br&gt;TCPへのフォールバックを使わない対処法としては、レスポンス全体ではなく、リソースレコード単位で比較して、共通部分のみをレスポンスとして再構成する方法も考えられる。&lt;br&gt;ネームサーバーが`m&amp;gt;&amp;gt;1`種類のリソースから`k`個のレコードをランダム抽出してラウンドロビンしていると仮定すると、`m!/k!`大雑把に`m^k`通りのレスポンスが得られ、2回一致するには`(m^k)^(1/2)`程度のリクエストが必要になる。一方、個々のRR毎に二回一致すればいいのであれば、 `(m/k)^(1/2)`程度で一つは共通するRRが見つかる。&lt;br&gt;リゾルバが得られるRRsetが変化してしまうのでRFCに反するが、少なくともA/AAAA/NSレコードではリゾルバはそのうちの一つを任意に選んで使って良いので実用上の問題にはならない。（RRSetの完全性が必要なタイプは個別に実装するか、DNSSECを使う）&lt;br&gt;このRR単位で比較するdegradedな場合、だいたい4回クエリすれば、 `k*4^2`サーバー程度のRRラウンドロビンから共通のレコードを探すことが出来る。たとえば`dig google.com A` は11レコードを返すので、背後でバランスされているIPアドレスが160程度なら4～5クエリで解決出来ると期待できる。&lt;br&gt;&lt;br&gt;&lt;br&gt;#### 多段のCNAME&lt;br&gt;一番の問題になりうるのは多段階のCNAMEでバランシングされている場合で、`c`段CNAMEの連鎖が発生している場合、その全てに一つずつレスポンスを得るためには`m^(c/2)`のオーダーのクエリが必要になってしまう。この手法を取り入れようとすると、実質毎回TCPでクエリすることになり効率が悪い。&lt;br&gt;&lt;br&gt;実際には局所性を高めるために（GeoIPなど）、クエリソースIP範囲に対してある程度決まったレスポンスを返すだろうから、極端に悪くなることはなさそうだが。&lt;br&gt;&lt;br&gt;### TTL&lt;br&gt;この方式でもレスポンスのうちTTLは攻撃者が`1/2^16`で操作可能になる。&lt;br&gt;ランダムにレスポンスの一つからTTLを採用してしまうと、極端に短いTTLによるDoSと、極端に長いTTLによるDoS・リバインディングを排除できない。&lt;br&gt;&lt;br&gt;短いTTLでのDoSは単にリトライすれば（RR内容の改竄はこの検査を通らないので）若干の遅延だけで解決できるので、検査したレスポンスのうち最小のTTLを採用してしまうのがよさそう。&lt;br&gt;&lt;br&gt;### 負荷&lt;br&gt;ネームサーバー側の負荷はリトライ数倍になるが、上限リトライ数を数回でキャップするのは通常のクエリと同じなのと、Androidのようにブラウザの同一ページ並列ロードですらキャッシュせずパラレルにクエリする実装もあるのでこの方法自体がDoSとみなされることも無いだろう。BINDのRRLでリミットされていても遅延をかけたリトライなら成功する。（クライアント側が攻撃対象のDoSなら防ぎようがないが）&lt;br&gt;&lt;br&gt;truncateされないクエリに対してもTCPでクエリする場合が増えるので、TCP負荷は増加する。今のところ（truncateの必要のない）TCPクエリをrefuseするネームサーバーは少ないだろうが、ルートネームサーバのように問題になるかもしれない。&lt;br&gt;最悪の場合、TCPを使わず標準準拠なUDPクエリを（と透過な最後のリトライ）採用することになる。&lt;br&gt;&lt;br&gt;### スタブリゾルバ実装&lt;br&gt;[Twistedのスタブリゾルバ実装](http://twistedmatrix.com/documents/current/api/twisted.names.html)をモンキーパッチしてminimalなフォワーダを実装してみた。並列クエリとリトライのみで、RRsetの編集やTCPへのフォールバックは実装していない。&lt;br&gt;（フルリゾルバ出口用にUDPプロキシとして書きなおしているけれどいつになるやら……）&lt;br&gt;&lt;br&gt;`N=2`で通常通りのブラウジングしてみたところ、`8.8.8.8`にフォーワードした場合で大雑把に5%ほどの追加クエリが発生した。&lt;br&gt;&amp;gt; retrystats: [1100, 42, 5, 1, 2] #リトライ数0からインデックスした配列&lt;br&gt;&lt;br&gt;リトライはだいたいTTLが短い上に複数のCDNを使っている`platform.twitter.com`&lt;br&gt;&lt;br&gt;自分で運用している単独のリゾルバ相手なら（キャッシュテーブルが一つなので当然だが）キャッシュが消える瞬間以外エラーはでていないようだ。Unboundの自動リキャッシュ機能を使えばゼロに出来るだろうか？&lt;br&gt;&lt;br&gt;少なくともこの方法でリモートのリゾルバとローカルの間でspoofingを受ける心配はなくなると思われる。&lt;br&gt;&lt;br&gt;" class="markdown-here-wrapper" id="markdown-here-wrapper-883522"><p style="margin: 0.5em 0px ! important">Twistedの勉強がてら、並列にN回(以上)クエリをして、結果がTTLを除き一致することを確認するスプーフィング対策を考えてみた。
（商用DNSアプライアンスとかでは既に実装されてたりするんだろうか？）</p>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">前提</h3>
<p style="margin: 0.5em 0px ! important">現在の主なDNSのspoofing手法は、リゾルバの使うUDPソースポート番号やクエリ先ネームサーバーを様々な方法で予測あるいは強制して、クエリIDがヒットするまで偽のパケットを送り続ける。
ポート番号のようなDNSの外側に付加された追加エントロピーを攻略されると、DNSパケットのクエリIDは16ビットしか無い。しかもしばしば攻撃者はブラウザやメーラー経由で能動的に好きなタイミングでクエリを発生させることができる。そのため、DNSSECなどで保護されていないDNSレスポンスは比較的短時間で攻撃成功率が現実的になる。
そのため、<a href="http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00">0x20</a>のような追加エントロピーや、攻撃を検出してTCPで問い合わせる、といった方法があるようだ。</p>
<p style="margin: 0.5em 0px ! important">クエリIDの長さが足りないのなら、複数回クエリして、その全てが同じ内容であることを確認すればいい。N個のレスポンスを比較すれば、その全てのパケットが擬装されている可能性は2^(-16*N)になる。
つまり、N個の相同なレスポンスを得るまでリゾルバ側がクエリをリトライする。（あるいはTCPにフォールバックする）</p>
<p style="margin: 0.5em 0px ! important">以下の場合、クエリIDを長くすることでスプーフィングを防ぐ事ができる。</p>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">リモートのDNSサーバーは信頼出来る</li>
<li style="margin: 0.3em 0px 0.5em">リモートまでの経路は確率的には信頼出来る</li>
<li style="margin: 0.3em 0px 0.5em">以下の場合は対象外<ul style="margin: 0px; padding-left: 1em">
<li style="margin: 0.3em 0px 0.5em">通信経路が攻撃者に掌握されている（認証されていないWLANやホームルーター、経路ハイジャックなど）</li>
<li style="margin: 0.3em 0px 0.5em">ネームサーバーが攻撃者に掌握されている</li>
<li style="margin: 0.3em 0px 0.5em">DNSクエリIDが予測可能</li>
<li style="margin: 0.3em 0px 0.5em">IPフラグメントが予測可能（恒常的な2ndフラグメンテーションハイジャック）</li>
<li style="margin: 0.3em 0px 0.5em">TCPシーケンスが予測可能</li>
</ul>
</li>
</ul>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">利点</h3>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">クライアント側実装ですむ。サーバーは変更なし</li>
<li style="margin: 0.3em 0px 0.5em">攻撃パケットを監視する必要がない</li>
<li style="margin: 0.3em 0px 0.5em">DNSSECに比べれば軽い</li>
</ul>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">欠点</h3>
<ul style="margin: 1em 0px 0.8em; padding-left: 2em">
<li style="margin: 0.3em 0px 0.5em">ラウンドロビンでレコードが随時変わる場合には組み合わせが発散するので、相同かチェックできない。<ul style="margin: 0px; padding-left: 1em">
<li style="margin: 0.3em 0px 0.5em">この場合通常のTCP resolverにデグレードしてしまう。</li>
</ul>
</li>
<li style="margin: 0.3em 0px 0.5em">UDPクエリ負荷がN倍程度になる</li>
<li style="margin: 0.3em 0px 0.5em">エラーレートと遅延が大きくなる</li>
<li style="margin: 0.3em 0px 0.5em">TCPクエリが増える</li>
</ul>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">ラウンドロビン</h3>
<p style="margin: 0.5em 0px ! important">ほとんどの場合ではN回のリクエストで済んでしまうが、AnycastやGeoDNSやラウンドロビンなど、レスポンスRRsetがそもそも変化する状況では、リクエスト数がより大きくなる。たとえばN=2として所要パケット数は、レスポンスの組み合わせの平方根程度になる。</p>
<p style="margin: 0.5em 0px ! important">TCPへのフォールバックを使わない対処法としては、レスポンス全体ではなく、リソースレコード単位で比較して、共通部分のみをレスポンスとして再構成する方法も考えられる。
ネームサーバーがm&gt;&gt;1種類のリソースからk個のレコードをランダム抽出してラウンドロビンしていると仮定すると、m!/k!大雑把にm^k通りのレスポンスが得られ、2回一致するには(m^k)^(1/2)程度のリクエストが必要になる。一方、個々のRR毎に二回一致すればいいのであれば、 (m/k)^(1/2)程度で一つは共通するRRが見つかる。
リゾルバが得られるRRsetが変化してしまうのでRFCに反するが、少なくともA/AAAA/NSレコードではリゾルバはそのうちの一つを任意に選んで使って良いので実用上の問題にはならない。（RRSetの完全性が必要なタイプは個別に実装するか、DNSSECを使う）
このRR単位で比較するdegradedな場合、だいたい4回クエリすれば、 k*4^2サーバー程度のRRラウンドロビンから共通のレコードを探すことが出来る。たとえばdig google.com A は11レコードを返すので、背後でバランスされているIPアドレスが160程度なら4～5クエリで解決出来ると期待できる。</p>
<h4 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.05em">多段のCNAME</h4>
<p style="margin: 0.5em 0px ! important">一番の問題になりうるのは多段階のCNAMEでバランシングされている場合で、c段CNAMEの連鎖が発生している場合、その全てに一つずつレスポンスを得るためにはm^(c/2)のオーダーのクエリが必要になってしまう。この手法を取り入れようとすると、実質毎回TCPでクエリすることになり効率が悪い。</p>
<p style="margin: 0.5em 0px ! important">実際には局所性を高めるために（GeoIPなど）、クエリソースIP範囲に対してある程度決まったレスポンスを返すだろうから、極端に悪くなることはなさそうだが。</p>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">TTL</h3>
<p style="margin: 0.5em 0px ! important">この方式でもレスポンスのうちTTLは攻撃者が1/2^16で操作可能になる。
ランダムにレスポンスの一つからTTLを採用してしまうと、極端に短いTTLによるDoSと、極端に長いTTLによるDoS・リバインディングを排除できない。</p>
<p style="margin: 0.5em 0px ! important">短いTTLでのDoSは単にリトライすれば（RR内容の改竄はこの検査を通らないので）若干の遅延だけで解決できるので、検査したレスポンスのうち最小のTTLを採用してしまうのがよさそう。</p>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">負荷</h3>
<p style="margin: 0.5em 0px ! important">ネームサーバー側の負荷はリトライ数倍になるが、上限リトライ数を数回でキャップするのは通常のクエリと同じなのと、Androidのようにブラウザの同一ページ並列ロードですらキャッシュせずパラレルにクエリする実装もあるのでこの方法自体がDoSとみなされることも無いだろう。BINDのRRLでリミットされていても遅延をかけたリトライなら成功する。（クライアント側が攻撃対象のDoSなら防ぎようがないが）</p>
<p style="margin: 0.5em 0px ! important">truncateされないクエリに対してもTCPでクエリする場合が増えるので、TCP負荷は増加する。今のところ（truncateの必要のない）TCPクエリをrefuseするネームサーバーは少ないだろうが、ルートネームサーバのように問題になるかもしれない。
最悪の場合、TCPを使わず標準準拠なUDPクエリを（と透過な最後のリトライ）採用することになる。</p>
<h3 style="margin: 1.5em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1.1em; border-bottom: 1px dashed #cccccc">スタブリゾルバ実装</h3>
<p style="margin: 0.5em 0px ! important"><a href="http://twistedmatrix.com/documents/current/api/twisted.names.html">Twistedのスタブリゾルバ実装</a>をモンキーパッチしてminimalなフォワーダを実装してみた。並列クエリとリトライのみで、RRsetの編集やTCPへのフォールバックは実装していない。
（フルリゾルバ出口用にUDPプロキシとして書きなおしているけれどいつになるやら……）</p>
<p style="margin: 0.5em 0px ! important">N=2で通常通りのブラウジングしてみたところ、8.8.8.8にフォーワードした場合で大雑把に5%ほどの追加クエリが発生した。</p>
<blockquote style="margin: 1em 0px 0.8em; border-left: 4px solid #dddddd; padding: 0px 1em; color: #777777; quotes: none">
<p style="margin: 0.5em 0px ! important">retrystats: [1100, 42, 5, 1, 2] #リトライ数0からインデックスした配列</p>
</blockquote>
<p style="margin: 0.5em 0px ! important">リトライはだいたいTTLが短い上に複数のCDNを使っているplatform.twitter.com</p>
<p style="margin: 0.5em 0px ! important">自分で運用している単独のリゾルバ相手なら（キャッシュテーブルが一つなので当然だが）キャッシュが消える瞬間以外エラーはでていないようだ。Unboundの自動リキャッシュ機能を使えばゼロに出来るだろうか？</p>
<p style="margin: 0.5em 0px ! important">少なくともこの方法でリモートのリゾルバとローカルの間でspoofingを受ける心配はなくなると思われる。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/375068768.html">
<link>http://causeless.seesaa.net/article/375068768.html</link>
<title>NginxのSSL設定メモ(obsolute)</title>
<description>このssl_ciphersだとWindows＋IEでRSA鍵共有が優先されてしまう問題が有ったのでobsolute&amp;nbsp;理由が記載されていない設定例しか見当たらなかったのでメモしておく。2013/9時点の理解。Apacheでも名前の読替えで全て同じ設定が可能。    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;    ssl_ciphers AESGCM:SHA384:SHA256:@STRENGTH:RC4:HIGH:!EXP:..</description>
<dc:subject>サーバー</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-17T19:45:41+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="&lt;div&gt;理由が記載されていない設定例しか見当たらなかったのでメモしておく。2013/9時点の理解。&lt;br&gt;Apacheでも名前の読替えで全て同じ設定が可能。&lt;br&gt;&lt;br&gt;```nginx&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_ciphers AESGCM:SHA384:SHA256:@STRENGTH:RC4:HIGH:!EXP:!LOW:!MD5:!aNULL:!eNULL:!KRB5:!PSK:!SRP;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_prefer_server_ciphers on;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_stapling on;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add_header Strict-Transport-Security max-age=31536000;&lt;br&gt;```&lt;br&gt;&lt;br&gt;##### ssl_ciphers&lt;br&gt;* RC4 ＞ CBC （BEASTの方が重大と考える）なら、上記の通り。&lt;br&gt;* CBC ＞ RC4 （RC4の危殆化が重大と考える）なら&lt;br&gt;```nginx&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_ciphers HIGH:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;&lt;br&gt;```&lt;br&gt;* クライアントの構成から、SSLv3とRC4を無効にできるなら、&lt;br&gt;```nginx&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;&lt;br&gt;```&lt;br&gt;&lt;br&gt;&lt;br&gt;ciphersの記述を細分すると、&lt;br&gt;```&lt;br&gt;AESGCM:SHA384:SHA256:@STRENGTH&lt;br&gt;```&lt;br&gt;TLSv1.2以降で導入された方式をMACでリストアップして、暗号強度順に並べている。これらに対応しているクライアントはTLSv1.2で接続しているはず。デフォルト有効ではないものの、メジャーブラウザは実装済み。&lt;br&gt;なお、&lt;br&gt;```&lt;br&gt;TLSv1.2:!eNULL&lt;br&gt;```&lt;br&gt;でも同じ結果になるはずだが、1.0.1eより前では`TLSv1.2`という一括指定は使えないようだ。&lt;br&gt;&lt;br&gt;```&lt;br&gt;RC4:HIGH:!EXP:!LOW&lt;br&gt;```&lt;br&gt;BEAST未対策かつTLSv1.2非対応の古いブラウザ向けにRC4-128bitを優先する。米国輸出規制対応の弱いRC4は!EXPで排除される。(64bitのRC4が実装された時のために!LOWをいれておく)&lt;br&gt;RC4が無効化されていればそれ以外に128bit以上の暗号を使う。&lt;br&gt;&lt;br&gt;```&lt;br&gt;!MD5&lt;br&gt;```&lt;br&gt;今のところ弱衝突はでていないが、MD5が必須なのはSSLv2以下のブラウザだけなので無効にして構わない。SHA1に非対応のブラウザは流石に無いと考えていい。&lt;br&gt;&lt;br&gt;```&lt;br&gt;!aNULL:!eNULL:!KRB5:!PSK:!SRP&lt;br&gt;```&lt;br&gt;署名なし、暗号化なしは無効。また古い形式と事前共有など。使われることは無いだろうが `ssl_prefer_server_ciphers on` なので念のため無効にしておく&lt;br&gt;&lt;br&gt;これらのルールは&lt;br&gt;```shell&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl ciphers -v 'ciphersuites'&lt;br&gt;```&lt;br&gt;で利用される順序が確認できる。&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;##### ssl_session_cache&lt;br&gt;トラフィックが少ないのでワーカー毎キャッシュを無効にして、全て共有。&lt;br&gt;&lt;br&gt;&lt;br&gt;##### ssl_stapling&lt;br&gt;OCSP応答をサーバー側にキャッシュする。最初のセッション確立までの遅延を減らせる。nginxの場合、resolverを明示的に設定が必要&lt;br&gt;&lt;br&gt;&lt;br&gt;##### Strict-Transport-Security&lt;br&gt;同じくトラフィックが少ないのでブラウザにSSLの利用を強制する。&lt;br&gt;&lt;br&gt;&lt;/div&gt;" class="markdown-here-wrapper" id="markdown-here-wrapper-713665"><p style="margin: 0.3em 0px ! important">このssl_ciphersだとWindows＋IEでRSA鍵共有が優先されてしまう問題が有ったのでobsolute</p><p style="margin: 0.3em 0px ! important">&nbsp;</p><p style="margin: 0.3em 0px ! important"><strike>理由が記載されていない設定例しか見当たらなかったのでメモしておく。2013/9時点の理解。
Apacheでも名前の読替えで全て同じ設定が可能。</strike></p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">    <span style="color: #990000; font-weight: bold" class="title">ssl_protocols</span> SSLv3 TLSv1 TLSv1.<span style="color: #009999" class="number">1</span> TLSv1.<span style="color: #009999" class="number">2</span>;
<strike>    <span style="color: #990000; font-weight: bold" class="title">ssl_ciphers</span> AESGCM:SHA384:SHA256:<span style="color: #008080" class="variable">@STRENGTH</span>:RC4:HIGH:!EXP:!LOW:!MD5:!aNULL:!eNULL:!KRB5:!PSK:!SRP;</strike>
    <span style="color: #990000; font-weight: bold" class="title">ssl_prefer_server_ciphers</span> <span style="color: #0086b3" class="built_in">on</span>;
    <span style="color: #990000; font-weight: bold" class="title">ssl_stapling</span> <span style="color: #0086b3" class="built_in">on</span>;
    <span style="color: #990000; font-weight: bold" class="title">add_header</span> Strict-Transport-Security max-age=<span style="color: #009999" class="number">31536000</span>;</pre>
<h5 style="margin: 1em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em">ssl_ciphers</h5>
<ul style="margin: 1em 0px; padding-left: 2em">
<li style="margin: 0.5em 0px">RC4 ＞ CBC （BEASTの方が重大と考える）なら、上記の通り。</li>
<li style="margin: 0.5em 0px">CBC ＞ RC4 （RC4の危殆化が重大と考える）なら<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">  <span style="color: #990000; font-weight: bold" class="title">ssl_ciphers</span> HIGH:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;</pre>
</li>
<li style="margin: 0.5em 0px">クライアントの構成から、SSLv3とRC4を無効にできるなら、<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">  <span style="color: #990000; font-weight: bold" class="title">ssl_protocols</span> TLSv1 TLSv1.<span style="color: #009999" class="number">1</span> TLSv1.<span style="color: #009999" class="number">2</span>;
  <span style="color: #990000; font-weight: bold" class="title">ssl_ciphers</span> HIGH:!RC4:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;</pre>
</li>
</ul>
<p style="margin: 0.3em 0px ! important">ciphersの記述を細分すると、</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">AESGCM:SHA384:SHA256:@STRENGTH</pre>
<p style="margin: 0.3em 0px ! important">TLSv1.2以降で導入された方式をMACでリストアップして、暗号強度順に並べている。これらに対応しているクライアントはTLSv1.2で接続しているはず。デフォルト有効ではないものの、メジャーブラウザは実装済み。
なお、</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">TLSv1.2:!eNULL</pre>
<p style="margin: 0.3em 0px ! important">でも同じ結果になるはずだが、1.0.1eより前ではTLSv1.2という一括指定は使えないようだ。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">RC4:HIGH:!EXP:!LOW</pre>
<p style="margin: 0.3em 0px ! important">BEAST未対策かつTLSv1.2非対応の古いブラウザ向けにRC4-128bitを優先する。米国輸出規制対応の弱いRC4は!EXPで排除される。(64bitのRC4が実装された時のために!LOWをいれておく)
RC4が無効化されていればそれ以外に128bit以上の暗号を使う。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">!MD5</pre>
<p style="margin: 0.3em 0px ! important">今のところ弱衝突はでていないが、MD5が必須なのはSSLv2以下のブラウザだけなので無効にして構わない。SHA1に非対応のブラウザは流石に無いと考えていい。</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">!aNULL:!eNULL:!KRB5:!PSK:!SRP</pre>
<p style="margin: 0.3em 0px ! important">署名なし、暗号化なしは無効。また古い形式と事前共有など。使われることは無いだろうが ssl_prefer_server_ciphers on なので念のため無効にしておく</p>
<p style="margin: 0.3em 0px ! important">これらのルールは</p>
<pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1em 0px">    <span style="color: #990000; font-weight: bold" class="title">openssl</span> ciphers -v <span style="color: #dd1144" class="string">&#39;ciphersuites&#39;</span></pre>
<p style="margin: 0.3em 0px ! important">で利用される順序が確認できる。</p>
<h5 style="margin: 1em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em">ssl_session_cache</h5>
<p style="margin: 0.3em 0px ! important">トラフィックが少ないのでワーカー毎キャッシュを無効にして、全て共有。</p>
<h5 style="margin: 1em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em">ssl_stapling</h5>
<p style="margin: 0.3em 0px ! important">OCSP応答をサーバー側にキャッシュする。最初のセッション確立までの遅延を減らせる。nginxの場合、resolverを明示的に設定が必要</p>
<h5 style="margin: 1em 0px 0.3em 0.3em; padding: 0px; font-weight: bold; font-size: 1em">Strict-Transport-Security</h5>
<p style="margin: 0.3em 0px ! important">同じくトラフィックが少ないのでブラウザにSSLの利用を強制する。</p>
</div><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://causeless.seesaa.net/article/374647006.html">
<link>http://causeless.seesaa.net/article/374647006.html</link>
<title>NginxのSSL設定メモ</title>
<description>次の記事でMarkDownで書きなおしてみた&amp;nbsp;&amp;nbsp;</description>
<dc:subject>セキュリティ</dc:subject>
<dc:creator>ko-zu</dc:creator>
<dc:date>2013-09-12T22:49:33+09:00</dc:date>
<content:encoded><![CDATA[
<div data-md-original="[次の記事](http://causeless.seesaa.net/article/375068768.html)でMarkDownで書きなおしてみた" class="markdown-here-wrapper" id="markdown-here-wrapper-431751"><p style="margin: 0.5em 0px ! important"><a href="http://causeless.seesaa.net/article/375068768.html">次の記事</a>でMarkDownで書きなおしてみた</p><p style="margin: 0.5em 0px ! important">&nbsp;</p><hr /><p style="margin: 0.5em 0px ! important">&nbsp;</p><br /></div><a name="more"></a><br />理由が記載されていない設定例しか見当たらなかったのでメモしておく。2013/9時点の理解。<br />Apacheでも名前の読替えで全て同じ設定が可能。<br data-mce-bogus="1" /><br /><div><br /></div><blockquote><div>ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;<br />ssl_ciphers AESGCM:SHA384:SHA256:@STRENGTH:RC4:HIGH:!EXP:!LOW:!MD5:!aNULL:!eNULL:!KRB5:!PSK:!SRP;</div>ssl_prefer_server_ciphers on;<br />ssl_stapling on;<br />add_header Strict-Transport-Security max-age=31536000;<br clear="none" /></blockquote><div><br /></div>暗号方式は<br />・RC4 ＞ CBC （BEASTの方が重大と考える）なら、上記の通り。<br />・CBC ＞ RC4 （RC4の危殆化が重大と考える）なら<br /><blockquote>ssl_ciphers HIGH:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;<br /></blockquote>・クライアントの構成から、SSLv3とRC4を無効にできるなら、<br /><blockquote>ssl_protocols TLSv1 TLSv1.1 TLSv1.2;<br clear="none" />ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!EXP:!KRB5:!PSK:!SRP;</blockquote><div><br clear="none" /><br />ciphersの記述を細分すると、<br /><br clear="none" /><br /><strong>AESGCM:SHA384:SHA256:@STRENGTH</strong></div>TLSv1.2以降で導入された方式をMACでリストアップして、暗号強度順に並べている。これらに対応しているクライアントはTLSv1.2で接続しているはず。デフォルト有効ではないものの、メジャーブラウザは実装済み。<br />なお、<br />TLSv1.2:!eNULL<br />でも同じ結果になるが、1.0.1eより前ではTLSv1.2という一括指定は使えないようだ。<div><br clear="none" /><br /><strong>RC4:HIGH:!EXP:!LOW</strong><br clear="none" />BEAST未対策かつTLSv1.2非対応の古いブラウザ向けにRC4-128bitを優先する。米国輸出規制対応の弱いRC4は!EXPで排除される。(64bitのRC4が実装された時のために!LOWをいれておく)<br />RC4が無効化されていればそれ以外に128bit以上の暗号を使う。</div><div><br clear="none" /><br /><strong>!MD5</strong><br clear="none" />今のところ弱衝突はでていないが、MD5が必須なのはSSLv2以下のブラウザだけなので無効にして構わない。SHA1に非対応のブラウザは流石に無いと考えていい。<br clear="none" /><br /><strong>!aNULL:!eNULL:!KRB5:!PSK:!SRP</strong><br clear="none" />署名なし、暗号化なしは無効。また古い形式と事前共有など。使われることは無いだろうがssl_prefer_server_ciphers onなので念のため無効にしておく<br clear="none" /><br />これらのルールは<br data-mce-bogus="1" /><br /><blockquote><div align="left">openssl ciphers -v &#39;ciphersuites&#39;<br clear="none" /></div></blockquote>で利用される順序が確認できる。<br data-mce-bogus="1" /><br /><br data-mce-bogus="1" /><br /><br data-mce-bogus="1" /><br /><strong>ssl_session_cache</strong><br /></div><div>トラフィックが少ないのでワーカー毎キャッシュを無効にして、全て共有。<br /></div><br clear="none" /><br /><strong>ssl_stapling</strong><br />OCSP応答をサーバー側にキャッシュする。最初のセッション確立までの遅延を減らせる。nginxの場合、resolverを明示的に設定が必要<br /><br clear="none" /><br /><strong>Strict-Transport-Security</strong><br />同じくトラフィックが少ないのでブラウザにSSLの利用を強制する。<br data-mce-bogus="1" /><br /><br data-mce-bogus="1" /><br /><br data-mce-bogus="1" />

]]><![CDATA[
]]></content:encoded>
</item>
</rdf:RDF>

