diff options
Diffstat (limited to 'draft-schanzen-gns.txt')
-rw-r--r-- | draft-schanzen-gns.txt | 274 |
1 files changed, 165 insertions, 109 deletions
diff --git a/draft-schanzen-gns.txt b/draft-schanzen-gns.txt index dbfbae6..16330d4 100644 --- a/draft-schanzen-gns.txt +++ b/draft-schanzen-gns.txt | |||
@@ -75,13 +75,13 @@ Table of Contents | |||
75 | 5. Internationalization and Character Encoding . . . . . . . . . 13 | 75 | 5. Internationalization and Character Encoding . . . . . . . . . 13 |
76 | 6. Record Resolution . . . . . . . . . . . . . . . . . . . . . . 13 | 76 | 6. Record Resolution . . . . . . . . . . . . . . . . . . . . . . 13 |
77 | 6.1. Entry Zone . . . . . . . . . . . . . . . . . . . . . . . 14 | 77 | 6.1. Entry Zone . . . . . . . . . . . . . . . . . . . . . . . 14 |
78 | 6.2. Recursive Resolution . . . . . . . . . . . . . . . . . . 14 | 78 | 6.2. Recursive Resolution . . . . . . . . . . . . . . . . . . 15 |
79 | 7. Namespace Revocation . . . . . . . . . . . . . . . . . . . . 14 | 79 | 7. Namespace Revocation . . . . . . . . . . . . . . . . . . . . 15 |
80 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 80 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 |
81 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 81 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 |
82 | 10. Test Vectors . . . . . . . . . . . . . . . . . . . . . . . . 14 | 82 | 10. Test Vectors . . . . . . . . . . . . . . . . . . . . . . . . 15 |
83 | 11. Normative References . . . . . . . . . . . . . . . . . . . . 16 | 83 | 11. Normative References . . . . . . . . . . . . . . . . . . . . 17 |
84 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | 84 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 |
85 | 85 | ||
86 | 1. Introduction | 86 | 1. Introduction |
87 | 87 | ||
@@ -732,13 +732,68 @@ Internet-Draft The GNU Name System July 2019 | |||
732 | 732 | ||
733 | 6.1. Entry Zone | 733 | 6.1. Entry Zone |
734 | 734 | ||
735 | There are three sources from which the entry zone can be determined: | 735 | There are three sources from which the entry zone can be determined |
736 | which MUST be queried in this order: | ||
736 | 737 | ||
737 | * Local zone store | 738 | 1. Check if top-level domain maps to a local zone key. |
738 | 739 | ||
739 | * External prefix to zone key mappings | 740 | 2. Check if top-level domain maps to a local zone name. |
740 | 741 | ||
741 | * Zone key TLD | 742 | 3. Check if a configuration exists that maps a prefix to an external |
743 | zone key. | ||
744 | |||
745 | If the TLD is a Base32-encoded public zone key "zk", the entry zone | ||
746 | of the resolution process is implicitly given by the name. | ||
747 | |||
748 | Example name: www.example.<Base32(zk)> | ||
749 | => Entry zone: zk | ||
750 | => Name to resolve from entry zone: www.example | ||
751 | |||
752 | Each local zone is associated with a single GNS label. If this label | ||
753 | is the top-level domain (TLD) of the name to resolve, resolution MUST | ||
754 | start from this local zone. | ||
755 | |||
756 | Example name: www.example.gnu | ||
757 | Local zones: | ||
758 | fr = (d0,zk0) | ||
759 | gnu = (d1,zk1) | ||
760 | com = (d2,zk2) | ||
761 | ... | ||
762 | => Entry zone: zk1 | ||
763 | => Name to resolve from entry zone: www.example | ||
764 | |||
765 | If no matching local zone for the TLD is found, external prefix to | ||
766 | zone mappings are checked. External prefix to zone key mapping | ||
767 | SHOULD be configurable through the GNS implementation. A mapping has | ||
768 | the form "prefix = public zone key". The prefix may consist of | ||
769 | multiple GNS labels concatenated with a ".". If multiple prefixes | ||
770 | match the name to resolve, the longest prefix is chosen. The prefix | ||
771 | length of two results cannot be equal, as this would indicate a | ||
772 | misconfiguration. | ||
773 | |||
774 | |||
775 | |||
776 | |||
777 | |||
778 | |||
779 | |||
780 | |||
781 | |||
782 | |||
783 | |||
784 | Schanzenbach, et al. Expires 24 January 2020 [Page 14] | ||
785 | |||
786 | Internet-Draft The GNU Name System July 2019 | ||
787 | |||
788 | |||
789 | Example name: www.example.gnu | ||
790 | Local prefix mappings: | ||
791 | gnu = zk0 | ||
792 | example.gnu = zk1 | ||
793 | example.com = zk2 | ||
794 | ... | ||
795 | => Entry zone: zk1 | ||
796 | => Name to resolve from entry zone: www | ||
742 | 797 | ||
743 | 6.2. Recursive Resolution | 798 | 6.2. Recursive Resolution |
744 | 799 | ||
@@ -759,118 +814,118 @@ Internet-Draft The GNU Name System July 2019 | |||
759 | The following represents a test vector for a record of type MX with a | 814 | The following represents a test vector for a record of type MX with a |
760 | priority of 10 and the mail hostname mail.example.com. | 815 | priority of 10 and the mail hostname mail.example.com. |
761 | 816 | ||
762 | label := "mail" | 817 | label := "mail" |
763 | 818 | ||
764 | d := | 819 | d := |
765 | 71199f7b287cc77a | 820 | 71199f7b287cc77a |
766 | 0d21b5e40a77cb1d | 821 | 0d21b5e40a77cb1d |
767 | f89333903b284fe8 | 822 | f89333903b284fe8 |
768 | 1878bf47f3b39da0 | 823 | 1878bf47f3b39da0 |
769 | 824 | ||
770 | zk (public zone key) := | 825 | zk (public zone key) := |
771 | dff911496d025d7e | 826 | dff911496d025d7e |
772 | 0885c03d19153e99 | 827 | 0885c03d19153e99 |
773 | 4f213f23ea719eca | 828 | 4f213f23ea719eca |
774 | 17fc32dc410e082e | 829 | 17fc32dc410e082e |
775 | 830 | ||
776 | h := | 831 | h := |
777 | 2af3275a9cf90e54 | 832 | 2af3275a9cf90e54 |
778 | f2dbf7930be76fb9 | 833 | f2dbf7930be76fb9 |
779 | 5e7c80b1416f8ca6 | 834 | 5e7c80b1416f8ca6 |
780 | dc50ce8e1fb759b9 | 835 | dc50ce8e1fb759b9 |
836 | fedcdcf546c17e9b | ||
781 | 837 | ||
782 | 838 | ||
783 | 839 | ||
784 | Schanzenbach, et al. Expires 24 January 2020 [Page 14] | 840 | Schanzenbach, et al. Expires 24 January 2020 [Page 15] |
785 | 841 | ||
786 | Internet-Draft The GNU Name System July 2019 | 842 | Internet-Draft The GNU Name System July 2019 |
787 | 843 | ||
788 | 844 | ||
789 | fedcdcf546c17e9b | 845 | 4c4f23632855c053 |
790 | 4c4f23632855c053 | 846 | 6668e9f684f4dc33 |
791 | 6668e9f684f4dc33 | 847 | 6d656b27392b0fee |
792 | 6d656b27392b0fee | 848 | |
793 | 849 | d_h := | |
794 | d_h := | 850 | 01fb61f482c17633 |
795 | 01fb61f482c17633 | 851 | 77611c4c2509e0f3 |
796 | 77611c4c2509e0f3 | 852 | 81b0e7e4405c10bd |
797 | 81b0e7e4405c10bd | 853 | 0017c802f7d32e18 |
798 | 0017c802f7d32e18 | 854 | |
799 | 855 | q (query key) := | |
800 | q (query key) := | 856 | 6fce4deddc5ad681 |
801 | 6fce4deddc5ad681 | 857 | f4e29a3310767e3b |
802 | f4e29a3310767e3b | 858 | 8b38bc1b276ce2ba |
803 | 8b38bc1b276ce2ba | 859 | 9bf1b49df1e120a3 |
804 | 9bf1b49df1e120a3 | 860 | 20ecc9dffb68416f |
805 | 20ecc9dffb68416f | 861 | 11729ad878ad3bdf |
806 | 11729ad878ad3bdf | 862 | d0b4db2626b620d7 |
807 | d0b4db2626b620d7 | 863 | 8e0604e4393c66a3 |
808 | 8e0604e4393c66a3 | 864 | |
809 | 865 | AES_KEY := | |
810 | AES_KEY := | 866 | afefd21a087a150d |
811 | afefd21a087a150d | 867 | 6757741a4eda02a5 |
812 | 6757741a4eda02a5 | 868 | 65df7ca86ba44b21 |
813 | 65df7ca86ba44b21 | 869 | 3f8106c0071eaf01 |
814 | 3f8106c0071eaf01 | 870 | |
815 | 871 | AES_IV := | |
816 | AES_IV := | 872 | a808b929bc9fad7a |
817 | a808b929bc9fad7a | 873 | 686bbe3432bed77a |
818 | 686bbe3432bed77a | 874 | |
819 | 875 | TWOFISH_KEY := | |
820 | TWOFISH_KEY := | 876 | c9d0089df01d0bf4 |
821 | c9d0089df01d0bf4 | 877 | e4c8db4b2ccc7328 |
822 | e4c8db4b2ccc7328 | 878 | 3425e8a811ae59d2 |
823 | 3425e8a811ae59d2 | 879 | 99e2747285d2a479 |
824 | 99e2747285d2a479 | 880 | |
825 | 881 | TWOFISH_IV := | |
826 | TWOFISH_IV := | 882 | 071be189a9d236f9 |
827 | 071be189a9d236f9 | 883 | b4a3654bb8c281d4 |
828 | b4a3654bb8c281d4 | 884 | |
829 | 885 | RDATA := | |
830 | RDATA := | 886 | 0000000100059412 RR COUNT | EXPIRA- |
831 | 0000000100059412 RR COUNT | EXPIRA- | 887 | 09ddea0f00000014 -TION | DATA SIZE (20) |
832 | 09ddea0f00000014 -TION | DATA SIZE (20) | 888 | 0000000f00000000 TYPE (15=MX) | FLAGS (0) |
833 | 0000000f00000000 TYPE (15=MX) | FLAGS (0) | 889 | 000a046d61696c07 Priority (10) |4 | mail | 7 |
834 | 000a046d61696c07 Priority (10) |4 | mail | 7 | 890 | 6578616d706c6503 example | 3 |
835 | 6578616d706c6503 example | 3 | 891 | 636f6d0000000000 com | \0 | Followed by |
836 | 636f6d0000000000 com | \0 | Followed by | 892 | 0000000000000000 24 bytes of padding to 2^6 |
837 | 893 | ||
838 | 894 | ||
839 | 895 | ||
840 | Schanzenbach, et al. Expires 24 January 2020 [Page 15] | 896 | Schanzenbach, et al. Expires 24 January 2020 [Page 16] |
841 | 897 | ||
842 | Internet-Draft The GNU Name System July 2019 | 898 | Internet-Draft The GNU Name System July 2019 |
843 | 899 | ||
844 | 900 | ||
845 | 0000000000000000 24 bytes of padding to 2^6 | 901 | 0000000000000000 |
846 | 0000000000000000 | 902 | 00000000 |
847 | 00000000 | 903 | |
848 | 904 | ||
849 | 905 | BLOCK := | |
850 | BLOCK := | 906 | 055cb070e05fe6de SIGNATURE |
851 | 055cb070e05fe6de SIGNATURE | 907 | ad694a50e5b4dedd |
852 | ad694a50e5b4dedd | 908 | b9fdcbdbae004f65 |
853 | b9fdcbdbae004f65 | 909 | afc99ba9c5a3bb54 |
854 | afc99ba9c5a3bb54 | 910 | 07e731a34680ee33 |
855 | 07e731a34680ee33 | 911 | ae0de7bfeda7d2b7 |
856 | ae0de7bfeda7d2b7 | 912 | 8c6b854a008b1b54 |
857 | 8c6b854a008b1b54 | 913 | 10df4f39f5ba9f46____________ |
858 | 10df4f39f5ba9f46____________ | 914 | 8cb514a56c0eaae0 zk_h |
859 | 8cb514a56c0eaae0 zk_h | 915 | 56745158a63ee4dd |
860 | 56745158a63ee4dd | 916 | 76853cb9545e326e |
861 | 76853cb9545e326e | 917 | 76d7fa920f818291____________ |
862 | 76d7fa920f818291____________ | 918 | 000000540000000f SIZE (=84) | PURPOSE (=15) |
863 | 000000540000000f SIZE (=84) | PURPOSE (=15) | 919 | 0005941209dde25b EXPIRATION |
864 | 0005941209dde25b EXPIRATION | 920 | d99d08fa123da096 BDATA |
865 | d99d08fa123da096 BDATA | 921 | 66c2fb9bf020a85d |
866 | 66c2fb9bf020a85d | 922 | e80818d0a84059a8 |
867 | e80818d0a84059a8 | 923 | 5eee901a66459e5e |
868 | 5eee901a66459e5e | 924 | 3d1a10b29a5b8354 |
869 | 3d1a10b29a5b8354 | 925 | 1b58636781166b9a |
870 | 1b58636781166b9a | 926 | 642920eee8e7a65a |
871 | 642920eee8e7a65a | 927 | 001fd19a6406a721 |
872 | 001fd19a6406a721 | 928 | 713f0a0d |
873 | 713f0a0d | ||
874 | 929 | ||
875 | 11. Normative References | 930 | 11. Normative References |
876 | 931 | ||
@@ -893,7 +948,8 @@ Internet-Draft The GNU Name System July 2019 | |||
893 | 948 | ||
894 | 949 | ||
895 | 950 | ||
896 | Schanzenbach, et al. Expires 24 January 2020 [Page 16] | 951 | |
952 | Schanzenbach, et al. Expires 24 January 2020 [Page 17] | ||
897 | 953 | ||
898 | Internet-Draft The GNU Name System July 2019 | 954 | Internet-Draft The GNU Name System July 2019 |
899 | 955 | ||
@@ -949,7 +1005,7 @@ Authors' Addresses | |||
949 | 1005 | ||
950 | 1006 | ||
951 | 1007 | ||
952 | Schanzenbach, et al. Expires 24 January 2020 [Page 17] | 1008 | Schanzenbach, et al. Expires 24 January 2020 [Page 18] |
953 | 1009 | ||
954 | Internet-Draft The GNU Name System July 2019 | 1010 | Internet-Draft The GNU Name System July 2019 |
955 | 1011 | ||
@@ -1005,4 +1061,4 @@ Internet-Draft The GNU Name System July 2019 | |||
1005 | 1061 | ||
1006 | 1062 | ||
1007 | 1063 | ||
1008 | Schanzenbach, et al. Expires 24 January 2020 [Page 18] | 1064 | Schanzenbach, et al. Expires 24 January 2020 [Page 19] |