## page was renamed from DNS/1/TCP/UDP <> ---- <> = DNS/1/UDP = https://www.ietf.org/rfc/rfc768.txt User Datagram Protocol (発信元IPアドレスなどを)騙り易いUDPを使えるので、信用するとまずいことが起きる。 http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch29lev1sec7.html Examining the UDP Checksum Field そして、[[/fragmentation]]が起こせると、... (IP-IDが予測可能だと最悪) {{attachment:Screenshot from 2016-01-31 15_51_48.png}} == FreeBSD man == [[/man]] udp_var.h http://www.leidinger.net/FreeBSD/dox/netinet/html/d0/d4f/udp__var_8h_source.html udps_nosum にカウントされているようだが、見るにはどうするのか。 == tcpdump == http://www.markhneedham.com/blog/2012/07/15/tcpdump-learning-how-to-read-udp-packets/ {{{ tcpdump -nvv -i eth0 port 53 }}} ubuntu : eth0; freebsd : em0 == checksum == RFC 768: User Datagram Protocol (UDP checksumの説明) Checksum is the 16-bit one's complement of the one's complement sum of a pseudo header of information from the IP header, the UDP header, and the data, padded with zero octets at the end (if necessary) to make a multiple of two octets.  Source Port(16bits)が含まれているので、random化されていれば、複雑化は増す。 checksumをしないと、危険です。 https://www.dns-oarc.net/files/workshop-201110/observations-on-checksum-errors.pdf https://www.ietf.org/proceedings/94/slides/slides-94-dnsop-5.pdf http://www.scs.stanford.edu/10au-cs144/notes/l3-print.pdf http://www.freesoft.org/CIE/RFC/1122/79.htm (RFC 1122) 4.1.3.4 UDP Checksums A host MUST implement the facility to generate and validate UDP checksums. An application MAY optionally be able to control whether a UDP checksum will be generated, but it MUST default to checksumming on. If a UDP datagram is received with a checksum that is non- zero and invalid, UDP MUST silently discard the datagram. An application MAY optionally be able to control whether UDP datagrams without checksums should be discarded or passed to the application. checksumの対象がなにかが問題になる。-- ToshinoriMaeno <>  IPアドレスは分かっているから、port, txid が含まれているかどうかが鍵だ。    https://www.iajapan.org/ipv6/summit/SAPPORO2014/pdf/JPRS_SAPPORO2014.pdf no cksum query host {{{ 185.35.62.207.60041 185.35.62.231.60123 }}} http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch29lev1sec7.html https://tools.ietf.org/html/draft-muks-dnsop-dns-message-checksums-01 == fragmentation == [[DNS/毒盛/2012]] Fragmentation Considered Poisonous   http://arxiv.org/pdf/1205.4011.pdf https://ja.wikipedia.org/wiki/IPv4 IPパケットの識別子(16ビット)のランダム性も問題に。 https://www.iajapan.org/ipv6/summit/SAPPORO2014/pdf/JPRS_SAPPORO2014.pdf  この時点ではchecksumについての考察は見当たらない。 {{{ DNS応答の同定に使える要素が、最初のフラグメントにしか存在しない リアセンブリーにおいて使用されるIdentificationフィールド  IPv4では16ビットしかない (RFC 791) Identificationを予測可能な実装もある }}} {{{ 偽フラグメントを一つ目のフラグメントよりも先に送り込む「先回り」攻撃が可能 キャッシュDNSサーバーの応答ログには、攻撃の痕跡が残らない }}} 参考:   http://senz.hatenablog.com/entry/2014/03/24/000442 https://lists.dns-oarc.net/pipermail/dns-operations/2014-January/011249.html