summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6677.txt
blob: fe8d48b6d6aca4f327a513e4980c63496fedb560 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
Internet Engineering Task Force (IETF)                   S. Hartman, Ed.
Request for Comments: 6677                             Painless Security
Category: Standards Track                                      T. Clancy
ISSN: 2070-1721                                            Virginia Tech
                                                               K. Hoeper
                                                Motorola Solutions, Inc.
                                                               July 2012


                        Channel-Binding Support
          for Extensible Authentication Protocol (EAP) Methods

Abstract

   This document defines how to implement channel bindings for
   Extensible Authentication Protocol (EAP) methods to address the
   "lying Network Access Service (NAS)" problem as well as the "lying
   provider" problem.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6677.



















Hartman, et al.              Standards Track                    [Page 1]
^L
RFC 6677                   EAP Channel Binding                 July 2012


Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

























Hartman, et al.              Standards Track                    [Page 2]
^L
RFC 6677                   EAP Channel Binding                 July 2012


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Problem Statement  . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Channel Bindings . . . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Types of EAP Channel Bindings  . . . . . . . . . . . . . .  8
     4.2.  Channel Bindings in the Secure Association Protocol  . . .  9
     4.3.  Channel-Binding Scope  . . . . . . . . . . . . . . . . . . 10
   5.  Channel-Binding Process  . . . . . . . . . . . . . . . . . . . 12
     5.1.  Protocol Operation . . . . . . . . . . . . . . . . . . . . 12
     5.2.  Channel-Binding Consistency Check  . . . . . . . . . . . . 14
     5.3.  EAP Protocol . . . . . . . . . . . . . . . . . . . . . . . 15
       5.3.1.  Channel-Binding Codes  . . . . . . . . . . . . . . . . 17
       5.3.2.  Namespace Identifiers  . . . . . . . . . . . . . . . . 17
       5.3.3.  RADIUS Namespace . . . . . . . . . . . . . . . . . . . 18
   6.  System Requirements  . . . . . . . . . . . . . . . . . . . . . 18
     6.1.  General Transport Protocol Requirements  . . . . . . . . . 18
     6.2.  EAP Method Requirements  . . . . . . . . . . . . . . . . . 19
   7.  Channel-Binding TLV  . . . . . . . . . . . . . . . . . . . . . 19
     7.1.  Requirements for Lower-Layer Bindings  . . . . . . . . . . 19
     7.2.  EAP Lower-Layer Attribute  . . . . . . . . . . . . . . . . 20
   8.  AAA-Layer Bindings . . . . . . . . . . . . . . . . . . . . . . 20
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 21
     9.1.  Trust Model  . . . . . . . . . . . . . . . . . . . . . . . 21
     9.2.  Consequences of Trust Violation  . . . . . . . . . . . . . 23
     9.3.  Bid-Down Attacks . . . . . . . . . . . . . . . . . . . . . 24
     9.4.  Privacy Violations . . . . . . . . . . . . . . . . . . . . 24
   10. Operations and Management Considerations . . . . . . . . . . . 25
   11. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 25
     11.1. EAP Lower Layers Registry  . . . . . . . . . . . . . . . . 26
     11.2. RADIUS Registration  . . . . . . . . . . . . . . . . . . . 26
   12. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 27
   13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27
     13.1. Normative References . . . . . . . . . . . . . . . . . . . 27
     13.2. Informative References . . . . . . . . . . . . . . . . . . 27
   Appendix A.  Attacks Prevented by Channel Bindings . . . . . . . . 29
     A.1.  Enterprise Subnetwork Masquerading . . . . . . . . . . . . 29
     A.2.  Forced Roaming . . . . . . . . . . . . . . . . . . . . . . 29
     A.3.  Downgrading Attacks  . . . . . . . . . . . . . . . . . . . 30
     A.4.  Bogus Beacons in IEEE 802.11r  . . . . . . . . . . . . . . 30
     A.5.  Forcing False Authorization in IEEE 802.11i  . . . . . . . 30









Hartman, et al.              Standards Track                    [Page 3]
^L
RFC 6677                   EAP Channel Binding                 July 2012


1.  Introduction

   The so-called "lying NAS" problem is a well-documented problem with
   the current Extensible Authentication Protocol (EAP) architecture
   [RFC3748] when used in pass-through authenticator mode.  Here, a
   Network Access Server (NAS), or pass-through authenticator, may
   represent one set of information (e.g., network identity,
   capabilities, configuration, etc) to the backend Authentication,
   Authorization, and Accounting (AAA) infrastructure, while
   representing contrary information to EAP peers.  Another possibility
   is that the same false information could be provided to both the EAP
   peer and EAP server by the NAS.  A "lying" entity can also be located
   anywhere on the AAA path between the NAS and the EAP server.

   This problem results when the same credentials are used to access
   multiple services that differ in some interesting property.  The EAP
   server learns which client credentials are in use.  The client knows
   which EAP credentials are used, but cannot distinguish between
   servers that use those credentials.  For methods that distinguish
   between client and server credentials, either using different server
   credentials for access to the different services or having client
   credentials with access to a disjoint set of services can potentially
   defend against the attack.

   As a concrete example, consider an organization with two different
   IEEE 802.11 wireless networks.  One is a relatively low-security
   network for accessing the web, while the other has access to valuable
   confidential information.  An access point on the web network could
   act as a lying NAS, sending the Service Set Identifier (SSID) of the
   confidential network in its beacons.  This access point could gain an
   advantage by doing so if it tricks clients that intend to connect to
   the confidential network to connect to it and disclose confidential
   information.

   A similar problem can be observed in the context of roaming.  Here,
   the lying entity is located in a visited service provider network,
   e.g., attempting to lure peers to connect to the network based on
   falsely advertised roaming rates.  This is referred to as the "lying
   provider" problem in the remainder of this document.  The lying
   entity's motivation often is financial; the entity may be paid
   whenever peers roam to its service.  However, a lying entity in a
   provider network can also gain access to traffic that it might not
   otherwise see.

   This document defines and implements EAP channel bindings to solve
   the "lying NAS" and the "lying provider" problems, using a process in
   which the EAP peer gives information about the characteristics of the
   service provided by the authenticator to the AAA server protected



Hartman, et al.              Standards Track                    [Page 4]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   within the EAP method.  This allows the server to verify the
   authenticator is providing information to the peer that is consistent
   with the information received from this authenticator as well as the
   information stored about this authenticator.  "AAA Payloads" defined
   in [AAA-PAY] served as the starting point for the mechanism proposed
   in this specification to carry this information.

2.  Terminology

   In this document, several words are used to signify the requirements
   of the specification.  These words are often capitalized.  The key
   words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
   "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document
   are to be interpreted as described in [RFC2119].

3.  Problem Statement

   In an EAP authentication compliant with [RFC4017], the EAP peer and
   EAP server mutually authenticate each other, and derive keying
   material.  However, when operating in pass-through mode, the EAP
   server can be far removed from the authenticator both in terms of
   network distance and number of entities who need to be trusted in
   order to establish trusted communication.  A malicious or compromised
   authenticator may represent incorrect information about the network
   to the peer in an effort to affect its operation in some way.
   Additionally, while an authenticator may not be compromised, other
   compromised elements in the network (such as proxies) could provide
   false information to the authenticator that it could simply be
   relaying to EAP peers.  Hence, the goal must be to ensure that the
   authenticator is providing correct information to the EAP peer during
   the initial network discovery, selection, and authentication.

   There are two different types of networks to consider: enterprise
   networks and service provider networks.  In enterprise networks,
   assuming a single administrative domain, it is feasible for an EAP
   server to have information about all the authenticators in the
   network.  In service provider networks, global knowledge is
   infeasible due to indirection via roaming.  When a peer is outside
   its home administrative domain, the goal is to ensure that the level
   of service received by the peer is consistent with the contractual
   agreement between the two service providers.  The same EAP server may
   need to support both types of networks.  For example an enterprise
   may have a roaming agreement permitting its users to use the networks
   of third-party service providers.  In these situations, the EAP
   server may authenticate for an enterprise and provider network.






Hartman, et al.              Standards Track                    [Page 5]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   The following are example attacks possible by presenting false
   network information to peers.

   o  Enterprise network: A corporate network may have multiple virtual
      LANs (VLANs) available throughout their campus network, and have
      IEEE 802.11 access points connected to each VLAN.  Assume one VLAN
      connects users to the firewalled corporate network, while the
      other connects users to a public guest network.  The corporate
      network is assumed to be free of adversarial elements, while the
      guest network is assumed to possibly have malicious elements.
      Access points on both VLANs are serviced by the same EAP server,
      but broadcast different SSIDs to differentiate.  A compromised
      access point connected to the guest network but not the corporate
      network could advertise the SSID of the corporate network in an
      effort to lure peers to connect to a network with a false sense of
      security regarding their traffic.  Conditions and further details
      of this attack can be found in the appendix.

   o  Enterprise network: The EAP Generic Security Service Application
      Program Interface (GSS-API) mechanism [GSS-API-EAP] mechanism
      provides a way to use EAP to authenticate to mail servers, instant
      messaging servers, and other non-network services.  Without EAP
      channel binding, an attacker could trick the user into connecting
      to a relatively untrusted service instead of a relatively trusted
      service.  For example, the instant messaging service could
      impersonate the mail server.

   o  Service provider network: An EAP-enabled mobile phone provider
      could advertise very competitive flat rates but send per-minute
      rates to the home server, thus luring peers to connect to their
      network and overcharging them.  In more elaborate attacks, peers
      can be tricked into roaming without their knowledge.  For example,
      a mobile phone provider operating along a geopolitical boundary
      could boost their cell towers' transmission power and advertise
      the network identity of the neighboring country's indigenous
      provider.  This would cause unknowing handsets to associate with
      an unintended operator, and consequently be subject to high
      roaming fees without realizing they had roamed off their home
      provider's network.  These types of scenarios can be considered as
      the "lying provider" problem, because here the provider configures
      its NAS to broadcast false information.  For the purpose of
      channel bindings as defined in this document, it does not matter
      which local entity (or entities) is "lying" in a service provider
      network (local NAS, local authentication server, and/or local
      proxies), because the only information received from the visited
      network that is verified by channel bindings is the information
      the home authentication server received from the last hop in the
      communication chain.  In other words, channel bindings enable the



Hartman, et al.              Standards Track                    [Page 6]
^L
RFC 6677                   EAP Channel Binding                 July 2012


      detection of inconsistencies in the information from a visited
      network, but cannot enable the determination of which entity is
      lying.  Naturally, channel bindings for EAP methods can only
      verify the endpoints; if desirable, intermediate hops need to be
      protected by the employed AAA protocol.

   o  Enterprise and provider networks: In a situation where an
      enterprise has roaming agreements with providers, a compromised
      access point in a provider network could masquerade as the
      enterprise network in an attempt to gain confidential information.
      Today this could potentially be solved by using different
      credentials for internal and external access.  Depending on the
      type of credential, this may introduce usability or man-in-the-
      middle security issues.

   To address these problems, a mechanism is required to validate
   unauthenticated information advertised by EAP authenticators.

4.  Channel Bindings

   EAP channel bindings seek to authenticate previously unauthenticated
   information provided by the authenticator to the EAP peer by allowing
   the peer and server to compare their perception of network properties
   in a secure channel.

   It should be noted that the definition of EAP channel bindings
   differs somewhat from channel bindings documented in [RFC5056], which
   seek to securely bind together the endpoints of a multi-layer
   protocol, allowing lower layers to protect data from higher layers.
   Unlike [RFC5056], EAP channel bindings do not ensure the binding of
   different layers of a session; rather, they ensure the accuracy of
   the information advertised to an EAP peer by an authenticator acting
   as the pass-through device during an EAP execution.  The term
   "channel bindings" was independently adopted for these two related
   concepts; by the time the conflict was discovered, a wide body of
   literature existed for each usage.  EAP channel bindings could be
   used to provide [RFC5056] channel bindings.  In particular, an inner
   EAP method could be bound to an outer method by including the
   [RFC5056] channel-binding data for the outer channel in the inner EAP
   method's channel bindings.  Doing so would provide a facility similar
   to EAP cryptographic binding, except that a man-in-the-middle could
   not extract the inner method from the tunnel.  This specification
   does not weigh the advantages of doing so nor specify how to do so;
   the example is provided only to illustrate how EAP channel binding
   and [RFC5056] channel binding overlap.






Hartman, et al.              Standards Track                    [Page 7]
^L
RFC 6677                   EAP Channel Binding                 July 2012


4.1.  Types of EAP Channel Bindings

   There are two categories of approach to EAP channel bindings:

   o  After keys have been derived during an EAP execution, the peer and
      server can, in an integrity-protected channel, exchange plaintext
      information about the network with each other and verify
      consistency and correctness.

   o  The peer and server can both uniquely encode their respective view
      of the network information without exchanging it, resulting into
      an opaque blob that can be included directly into the derivation
      of EAP session keys.

   Both approaches are only applicable to key-deriving EAP methods and
   both have advantages and disadvantages.  Various hybrid approaches
   are also possible.  Advantages of exchanging plaintext information
   include:

   o  It allows for policy-based comparisons of network properties,
      rather than requiring precise matches for every field, which
      achieves a policy-defined consistency, rather than bitwise
      equality.  This allows network operators to define which
      properties are important and even verifiable in their network.

   o  EAP methods that support extensible, integrity-protected channels
      can easily include support for exchanging this network
      information.  In contrast, direct inclusion into the key
      derivation would require more extensive revisions to existing EAP
      methods or a wrapper EAP method.

   o  Given it doesn't affect the key derivation, this approach
      facilitates debugging, incremental deployment, backward
      compatibility, and a logging mode in which verification results
      are recorded but do not have an effect on the remainder of the EAP
      execution.  The exact use of the verification results can be
      subject to the network policy.  Additionally, consistent
      information canonicalization and formatting for the key derivation
      approach would likely cause significant deployment problems.

   The following are advantages of directly including channel-binding
   information in the key derivation:

   o  EAP methods not supporting extensible, integrity-protected
      channels could still be supported, either by revising their key
      derivation, revising EAP, or wrapping them in a universal method
      that supports channel binding.




Hartman, et al.              Standards Track                    [Page 8]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   o  It can guarantee proper channel information, since subsequent
      communication would be impossible if differences in channel
      information yield different session keys on the EAP peer and
      server.

4.2.  Channel Bindings in the Secure Association Protocol

   This document describes channel bindings performed by transporting
   channel-binding information as part of an integrity-protected
   exchange within an EAP method.  Alternatively, some future document
   could specify a mechanism for transporting channel bindings within
   the lower layer's secure association protocol.  Such a specification
   would need to describe how channel bindings are exchanged over the
   lower-layer protocol between the peer and authenticator.  In
   addition, since the EAP exchange concludes before the secure
   association protocol begins, a mechanism for transporting the channel
   bindings from the authenticator to the EAP server needs to be
   specified.  A mechanism for transporting a protected result from the
   EAP server, through the authenticator, back to the peer needs to be
   specified.

   The channel bindings MUST be transported with integrity protection
   based on a key known only to the peer and EAP server.  The channel
   bindings SHOULD be confidentiality protected using a key known only
   to the peer and EAP server.  For the system to function, the EAP
   server or AAA server needs access to the channel-binding information
   from the peer as well as the AAA attributes and a local database
   described later in this document.

   The primary advantage of sending channel bindings as part of the
   secure association protocol is that EAP methods need not be changed.
   The disadvantage is that a new AAA exchange is required, and secure
   association protocols need to be changed.  As the results of the
   secure association protocol change, every NAS needs to be upgraded to
   support channel bindings within the secure association protocol.

   For many deployments, changing all the NASes is expensive, and adding
   channel-binding support to enough EAP methods to meet the goals of
   the deployment will be cheaper.  However for deployment of new
   equipment, or especially deployment of a new lower-layer technology,
   changing the NASes may be cheaper than changing EAP methods.
   Especially if such a deployment needed to support a large number of
   EAP methods, sending channel bindings in the secure association
   protocol might make sense.  Sending channel bindings in the secure
   association protocol can work even with the EAP Re-authentication
   Protocol (ERP) [RFC5296] in which previously established EAP key
   material is used for the secure association protocol without carrying
   out any EAP method during re-authentication.



Hartman, et al.              Standards Track                    [Page 9]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   If channel bindings using a secure association protocol are
   specified, semantics as well as the set of information that peers
   exchange can be shared with the mechanism described in this document.

4.3.  Channel-Binding Scope

   The scope of EAP channel bindings differs somewhat depending on the
   type of deployment in which they are being used.  In enterprise
   networks, they can be used to authenticate very specific properties
   of the authenticator (e.g., Medium Access Control (MAC) address,
   supported link types and data rates, etc.), while in service provider
   networks they can generally only authenticate broader information
   about a roaming partner's network (e.g., network name, roaming
   information, link security requirements, etc.).  The reason for the
   difference has to do with the amount of information about the
   authenticator and/or network to which the peer is connected the home
   EAP server is expected to have access to.  In roaming cases, the home
   server is likely to only have access to information contained in
   their roaming agreements.

   With any multi-hop AAA infrastructure, many of the NAS-specific AAA
   attributes are obscured by the AAA proxy that's decrypting,
   reframing, and retransmitting the underlying AAA messages.
   Especially service provider networks are affected by this, and the
   AAA information received from the last hop may not contain much
   verifiable information after transformations performed by AAA
   proxies.  For example, information carried in AAA attributes such as
   the NAS IP address may have been lost in transition and thus are not
   known to the EAP server.  Even worse, information may still be
   available but be useless, for example, representing the identity of a
   device on a private network or a middlebox.  This affects the ability
   of the EAP server to verify specific NAS properties.  However, often
   verification of the MAC or IP address of the NAS is not useful for
   improving the overall security posture of a network.  More often, the
   best approach is to make policy decisions about services being
   offered to peers.  For example, in an IEEE 802.11 network, the EAP
   server may wish to ensure that peers connecting to the corporate
   intranet are using secure link-layer encryption, while link-layer
   security requirements for peers connecting to the guest network could
   be less stringent.  These types of policy decisions can be made
   without knowing or being able to verify the IP address of the NAS
   through which the peer is connecting.

   The properties of the network that the peer wishes to validate depend
   on the specific deployment.  In a mobile phone network, peers
   generally don't care what the name of the network is, as long as they
   can make their phone call and are charged the expected amount for the
   call.  However, in an enterprise network, the administrators of a



Hartman, et al.              Standards Track                   [Page 10]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   peer may be more concerned with specifics of where their network
   traffic is being routed and what VLAN is in use.  To establish
   policies surrounding these requirements, administrators would capture
   some attribute such as SSID to describe the properties of the network
   they care about.  Channel bindings could validate the SSID.  The
   administrator would need to make sure that the network guarantees
   that when an authenticator trusted by the AAA infrastructure to offer
   a particular SSID to clients does offer this SSID, that network has
   the intended properties.  Generally, it is not possible for channel
   bindings to detect lying NAS behavior when the NAS is authorized to
   claim a particular service.  That is, if the same physical
   authenticator is permitted to advertise two networks, the AAA
   infrastructure is unlikely to be able to determine when this
   authenticator lies.

   As discussed in the next section, some of the most important
   information to verify cannot come from AAA attributes but instead
   comes from local configuration.  For example, in the mobile phone
   case, the expected roaming rate cannot come from the roaming provider
   without being verified against the contract between the two
   providers.  Similarly, in an enterprise, the SSID that a particular
   access point is expected to advertise comes from configuration rather
   than an AAA exchange (which can be confirmed with channel binding).

   The peer and authenticator do not initially have a basis for trust.
   The peer has a credential with the EAP server that forms a basis for
   trust.  The EAP server and authenticator have a potentially indirect
   trust path using the AAA infrastructure.  Channel binding leverages
   the trust between the peer and EAP server to build trust in certain
   attributes between the peer and authenticator.

   Channel bindings can be important for forming areas of trust,
   especially when provider networks are involved, and exact information
   is not available to the EAP server.  Without channel bindings, all
   entities in the system need to be held to the standards of the most
   trusted entity that could be accessed using the EAP credential.
   Otherwise, a less trusted entity can impersonate a more trusted
   entity.  However when channel bindings are used, the EAP server can
   use information supplied by the peer, AAA protocols and local
   database to distinguish less trusted entities from more trusted
   entities.  One possible deployment involves being able to verify a
   number of characteristics about relatively trusted entities while for
   other entities simply verifying that they are less trusted.

   Any deployment of channel bindings should take into consideration
   both what information the EAP server is likely to know or have access
   to, and what type of network information the peer would want and need
   authenticated.



Hartman, et al.              Standards Track                   [Page 11]
^L
RFC 6677                   EAP Channel Binding                 July 2012


5.  Channel-Binding Process

   This section defines the process for verifying channel-binding
   information during an EAP authentication.  The protocol uses the
   approach where plaintext data is exchanged, since it allows channel
   bindings to be used more flexibly in varied deployment models (see
   Section 4.1).  In the first subsection, the general communication
   infrastructure is outlined, the messages used for channel-binding
   verifications are specified, and the protocol flows are defined.  The
   second subsection explores the difficulties of checking the different
   pieces of information that are exchanged during the channel-binding
   protocol for consistency.  The third subsection describes the
   information carried in the EAP exchange.

5.1.  Protocol Operation

   Channel bindings are always provided between two communication
   endpoints (here, the EAP peer and the EAP server), who communicate
   through an authenticator typically in pass-through mode.
   Specifications treat the AAA server and EAP server as distinct
   entities.  However, there is no standardized protocol for the AAA
   server and EAP server to communicate with each other.  For the
   channel-binding protocol presented in this document to work, the EAP
   server needs to be able to access information from the AAA server
   that is utilized during the EAP session (i2 below) and a local
   database.  For example, the EAP server and the local database can be
   co-located with the AAA server, as illustrated in Figure 1.  An
   alternate architecture would be to provide a mechanism for the EAP
   server to inform the AAA server what channel-binding attributes were
   supplied and the AAA server to inform the EAP server about what
   channel-binding attributes it considered when making its decision.

                                        + -------------------------+
     --------        -------------      |   ----------     ______  |
    |EAP peer|<---->|Authenticator|<--> |  |EAP Server|___(______) |
     --------        -------------      |   ----------    | DB   | |
        .                 .             |AAA              (______) |
        .       i1        .             +--------------------------+
        .<----------------.      i2     .       .
        .                 .------------>        .
        .                  i1                   .
        .-------------------------------------->.
        .     CB_success/failure(i1, i2,info)   .
        .<--------------------------------------.


              Figure 1: Overview of Channel-Binding Protocol




Hartman, et al.              Standards Track                   [Page 12]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   During network advertisement, selection, and authentication, the
   authenticator presents unauthenticated information, labeled i1, about
   the network to the peer.  Message i1 could include an authenticator
   identifier and the identity of the network it represents, in addition
   to advertised network information such as offered services and
   roaming information.  Information (such as the type of media in use)
   may be communicated implicitly in i1.  As there is no established
   trust relationship between the peer and authenticator, there is no
   way for the peer to validate this information.

   Additionally, during the transaction the authenticator presents a
   number of information properties in the form of AAA attributes about
   itself and the current request.  These AAA attributes may or may not
   contain accurate information.  This information is labeled i2.
   Message i2 is the information the AAA server receives from the last
   hop in the AAA proxy chain which is not necessarily the
   authenticator.

   AAA hops between the authenticator and AAA server can validate some
   of i2.  Whether the AAA server will be able to rely on this depends
   significantly on the business relationship executed with these
   proxies and on the structure of the AAA network.

   The local database is perhaps the most important part of this system.
   In order for the EAP server or AAA server to know whether i1 and i2
   are correct, they need access to trustworthy information, since an
   authenticator could include false information in both i1 and i2.
   Additional reasons why such a database is necessary for channel
   bindings to work are discussed in the next subsection.  The
   information contained within the database could involve wildcards.
   For example, this could be used to check whether IEEE 802.11 access
   points on a particular IP subnet all use a specific SSID.  The exact
   IP address is immaterial, provided it is on the correct subnet.

   During an EAP method execution with channel bindings, the peer sends
   i1 to the EAP server using the mechanism described in Section 5.3.
   The EAP server verifies the consistency of i1 provided by the peer,
   i2 provided by the authenticator, and the information in the local
   database.  Upon the check, the EAP server sends a message to the peer
   indicating whether the channel-binding validation check succeeded or
   failed and includes the attributes that were used in the check.  The
   message flow is illustrated in Figure 1.

   Above, the EAP server is described as performing the channel-binding
   validation.  In most deployments, this will be a necessary
   implementation constraint.  The EAP exchange needs to include an
   indication of channel-binding success or failure.  Most existing
   implementations do not have a way to have an exchange between the EAP



Hartman, et al.              Standards Track                   [Page 13]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   server and another AAA entity during the EAP server's processing of a
   single EAP message.  However, another AAA entity can provide
   information to the EAP server to make its decision.

   If the compliance of i1 or i2 information with the authoritative
   policy source is mandatory and a consistency check failed, then after
   sending a protected indication of failed consistency, the EAP server
   MUST send an EAP-Failure message to terminate the session.  If the
   EAP server is otherwise configured, it MUST allow the EAP session to
   complete normally and leave the decision about network access up to
   the peer's policy.  If i1 or i2 does not comply with policy, the EAP
   server MUST NOT list information that failed to comply in the set of
   information used to perform channel binding.  In this case, the EAP
   server SHOULD indicate channel-binding failure; this requirement may
   be upgraded to a MUST in the future.

5.2.  Channel-Binding Consistency Check

   The validation check that is the core of the channel-binding protocol
   described in the previous subsection consists of two parts in which
   the server checks whether:

   1.  the authenticator is lying to the peer, i.e., i1 contains false
       information, and

   2.  the authenticator or any entity on the AAA path to the AAA server
       provides false information in form of AAA attributes, i.e., i2
       contains false information.

   These checks enable the EAP server to detect lying NASes or
   authenticators in enterprise networks and lying providers in service
   provider networks.

   Checking the consistency of i1 and i2 is nontrivial, as has been
   pointed out already in [HC07].  First, i1 can contain any type of
   information propagated by the authenticator, whereas i2 is restricted
   to information that can be carried in AAA attributes.  Second,
   because the authenticator typically communicates over different link
   layers with the peer and the AAA infrastructure, different types of
   identifiers and addresses may have been presented to both
   communication endpoints.  Whether these different identifiers and
   addresses belong to the same device cannot be directly checked by the
   EAP server or AAA server without additional information.  Finally, i2
   may be different from the original information sent by the
   authenticator because of en route processing or malicious
   modifications.  As a result, in the service provider model, typically
   the i1 information available to the EAP server can only be verified
   against the last-hop portion of i2 or against values propagated by



Hartman, et al.              Standards Track                   [Page 14]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   proxy servers.  In addition, checking the consistency of i1 and i2
   alone is insufficient because an authenticator could lie to both the
   peer and the EAP server, i.e., i1 and i2 may be consistent but both
   contain false information.

   A local database is required to leverage the above-mentioned
   shortcomings and support the consistency and validation checks.  In
   particular, information stored for each NAS/authenticator (enterprise
   scenario) or each roaming partner (service provider scenario) enables
   a comparison of any information received in i1 with AAA attributes in
   i2 as well as additionally stored AAA attributes that might have been
   lost in transition.  Furthermore, only such a database enables the
   EAP server and AAA server to check the received information against
   trusted information about the network including roaming agreements.

   Section 7 describes lower-layer-specific properties that can be
   exchanged as a part of i1.  Section 8 describes specific AAA
   attributes that can be included and evaluated in i2.  The EAP server
   reports back the results from the channel-binding validation check
   that compares the consistency of all the values with those in the
   local database.  The challenges of setting up such a local database
   are discussed in Section 10.

5.3.  EAP Protocol

   EAP methods supporting channel binding consistent with this
   specification provide a mechanism for carrying channel-binding data
   from the peer to the EAP server and a channel-binding response from
   the EAP server to the peer.  The specifics of this mechanism are
   dependent on the method, although the content of the channel-binding
   data and channel-binding response are defined by this section.

   Typically the lower layer will communicate a set of attributes to the
   EAP implementation on the peer that should be part of channel
   binding.  The EAP implementation may need to indicate to the lower
   layer that channel-binding information cannot be sent.  Reasons for
   failing to send channel-binding information include an EAP method
   that does not support channel binding is selected, or channel-binding
   data is too big for the EAP method selected.  Peers SHOULD provide
   appropriate policy controls to select channel binding or mandate its
   success.

   The EAP server receives the channel-binding data and performs the
   validation.  The EAP method provides a way to return a response; the
   channel-binding response uses the same basic format as the channel-
   binding data.





Hartman, et al.              Standards Track                   [Page 15]
^L
RFC 6677                   EAP Channel Binding                 July 2012


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |             Length            |      NSID     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       NS-Specific...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Length            |      NSID     | NS-Specific...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 2: Channel-Binding Encoding

   Both the channel-binding data and response use the format illustrated
   in Figure 2.  The protocol starts with a one-byte code; see
   Section 5.3.1.  Then, for each type of attribute contained in the
   channel-binding data, the following information is encoded:

   Length:  Two octets of length in network byte order, indicating the
      length of the NS-Specific data.  The NSID and length octets are
      not included.

   NSID:  Namespace identifier.  One octet describing the namespace from
      which the attributes are drawn.  See Section 5.3.3 for a
      description of how to encode RADIUS attributes in channel-binding
      data and responses.  RADIUS uses a namespace identifier of 1 .

   NS-Specific:  The encoding of the attributes in a manner specific to
      the type of attribute.

   A given NSID MUST NOT appear more than once in a channel-binding data
   or channel-binding response.  Instead, all NS-Specific data for a
   particular NSID must occur inside one set of fields (NSID, Length,
   and NS-Specific).  This set of fields may be repeated if multiple
   namespaces are included.

   In channel-binding data, the code is set to 1 (channel-binding data),
   and the full attributes and values that the peer wishes the EAP
   server to validate are included.

   In a channel-binding response, the server selects the code; see
   Section 5.3.1.  For successful channel binding, the server returns
   code 2.  The set of attributes that the EAP server returns depend on
   the code.  For success, the server returns the attributes that were
   considered by the server in making the determination that channel
   bindings are successfully validated; attributes that the server is
   unable to check or that failed to validate against what is sent by



Hartman, et al.              Standards Track                   [Page 16]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   the peer MUST NOT be returned in a success response.  Generally,
   servers will not return a success response if any attributes were
   checked and failed to validate those specified by the peer.  Special
   circumstances such as a new attribute being phased in at a server MAY
   require servers to return success when such an attribute fails to
   validate.  The server returns the value supplied by the peer when
   returning an attribute in channel-binding responses.

   For channel-binding failure (code 3), the server SHOULD include any
   attributes that were successfully validated.  This code means that
   server policy indicates that the attributes sent by the client do not
   accurately describe the authenticator.  Servers MAY include no
   attributes in this response; for example, if the server checks the
   attributes supplied by the peer and they fail to be consistent, it
   may send a response without attributes.

   Peers MUST treat unknown codes as channel-binding failure.  Peers
   MUST ignore differences between attribute values sent in the channel-
   binding data and those sent in the response.  Peers and servers MUST
   ignore any attributes contained in a field with an unknown NSID.
   Peers MUST ignore any attributes in a response not present in the
   channel-binding data.

5.3.1.  Channel-Binding Codes

               +------+-----------------------------------+
               | Code | Meaning                           |
               +------+-----------------------------------+
               | 1    | Channel-binding data from client  |
               | 2    | Channel-binding response: success |
               | 3    | Channel-binding response: failure |
               +------+-----------------------------------+

5.3.2.  Namespace Identifiers

            +-----+--------------------------+---------------+
            | ID  | Namespace                | Reference     |
            +-----+--------------------------+---------------+
            | 1   | RADIUS                   | Section 5.3.3 |
            | 255 | Reserved for Private Use |               |
            +-----+--------------------------+---------------+










Hartman, et al.              Standards Track                   [Page 17]
^L
RFC 6677                   EAP Channel Binding                 July 2012


5.3.3.  RADIUS Namespace

   RADIUS attribute-value pairs (AVPs) are encoded with a one-octet
   attribute type followed by a one-octet length followed by the value
   of the RADIUS attribute being encoded.  The length includes the type
   and length octets; the minimum legal length is 3.  Attributes are
   concatenated to form the namespace-specific portion of the packet.

       0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |     Type      |    Length     |  Value ...
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

                       Figure 3: RADIUS AVP Encoding

   The full value of an attribute is included in the channel-binding
   data and response.

6.  System Requirements

   This section defines requirements on components used to implement the
   channel-bindings protocol.

   The channel-binding protocol defined in this document must be
   transported after keying material has been derived between the EAP
   peer and server, and before the peer would suffer adverse affects
   from joining an adversarial network.  This document describes a
   protocol for performing channel binding within EAP methods.  As
   discussed in Section 4.2, an alternative approach for meeting this
   requirement is to perform channel bindings during the secure
   association protocol of the lower layer.

6.1.  General Transport Protocol Requirements

   The transport protocol for carrying channel-binding information MUST
   support end-to-end (i.e., between the EAP peer and server) message
   integrity protection to prevent the adversarial NAS or AAA device
   from manipulating the transported data.  The transport protocol
   SHOULD provide confidentiality.  The motivation for this is that the
   channel bindings could contain private information, including peer
   identities, which SHOULD be protected.  If confidentiality cannot be
   provided, private information MUST NOT be sent as part of the
   channel-binding information.

   Any transport needs to be careful not to exceed the MTU for its
   lower-layer medium.  In particular, if channel-binding information is
   exchanged within protected EAP method channels, these methods may or



Hartman, et al.              Standards Track                   [Page 18]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   may not support fragmentation.  In order to work with all methods,
   the channel-binding messages must fit within the available payload.
   For example, if the EAP MTU is 1020 octets, and EAP - Generalized
   Pre-Shared Key (EAP-GPSK) is used as the authentication method, and
   maximal-length identities are used, a maximum of 384 octets is
   available for conveying channel-binding information.  Other methods,
   such as EAP Tunneled Transport Layer Security (EAP-TTLS), support
   fragmentation and could carry significantly longer payloads.

6.2.  EAP Method Requirements

   When transporting data directly within an EAP method, the method MUST
   be able to carry integrity-protected data from the EAP peer to server
   and from EAP server to peer.  EAP methods MUST exchange channel-
   binding data with the AAA subsystem hosting the EAP server.  EAP
   methods MUST be able to import channel-binding data from the lower
   layer on the EAP peer.

7.  Channel-Binding TLV

   This section defines some channel-binding TLVs.  While message i1 is
   not limited to AAA attributes, for the sake of tangible attributes
   that are already in place, this section discusses AAA AVPs that are
   appropriate for carrying channel bindings (i.e., data from i1 in
   Section 5).

   For any lower-layer protocol, network information of interest to the
   peer and server can be encapsulated in AVPs or other defined payload
   containers.  The appropriate AVPs depend on the lower-layer protocol
   as well as on the network type (i.e., enterprise network or service
   provider network) and its application.

7.1.  Requirements for Lower-Layer Bindings

   Lower-layer protocols MUST support EAP in order to support EAP
   channel bindings.  These lower layers MUST support EAP methods that
   derive keying material, as otherwise no integrity-protected channel
   would be available to execute the channel-bindings protocol.  Lower-
   layer protocols need not support traffic encryption, since this is
   independent of the authentication phase.

   The data conveyed within the AVP type MUST NOT conflict with the
   externally defined usage of the AVP.  Additional TLV types MAY be
   defined for values that are not communicated within AAA attributes.

   In general, lower layers will need to specify what information should
   be included in i1.  Existing lower layers will probably require new
   documents to specify this information.  Lower-layer specifications



Hartman, et al.              Standards Track                   [Page 19]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   need to include sufficient information in i1 to uniquely identify
   which lower layer is involved.  The preferred way to do this is to
   include the EAP-Lower-Layer attribute defined in the next section.
   This MUST be included in i1 unless an attribute specific to a
   particular lower layer is included in i1.

7.2.  EAP Lower-Layer Attribute

   A new RADIUS attribute is defined to carry information on which EAP
   lower layer is used for this EAP authentication.  This attribute
   provides information relating to the lower layer over which EAP is
   transported.  This attribute MAY be sent by the NAS to the RADIUS
   server in an Access-Request or an Accounting-Request packet.  A
   summary of the EAP-Lower-Layer attribute format is shown below.  The
   fields are transmitted from left to right.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |             Value
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             Value (cont.)         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   The code is 163, the length is 6, and the value is a 32-bit unsigned
   integer in network byte order.  The value specifies the EAP lower
   layer in use.  Values are taken from the IANA registry established in
   Section 11.1.

8.  AAA-Layer Bindings

   This section discusses which AAA attributes in a AAA Access-Request
   message can and should be validated by a EAP server (i.e., data from
   i2 in Section 5).  As noted before, this data can be manipulated by
   AAA proxies either to enable functionality (e.g., removing realm
   information after messages have been proxied) or to act maliciously
   (e.g., in the case of a lying provider).  As such, this data cannot
   always be easily validated.  However, as thorough of a validation as
   possible should be conducted in an effort to detect possible attacks.

   NAS-IP-Address:  This value is typically the IP address of the
      authenticator; however, in a proxied connection, it likely will
      not match the source IP address of an Access-Request.  A
      consistency check MAY verify the subnet of the IP address was
      correct based on the last-hop proxy.





Hartman, et al.              Standards Track                   [Page 20]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   NAS-IPv6-Address:  This value is typically the IPv6 address of the
      authenticator; however, in a proxied connection, it likely will
      not match the source IPv6 address of an Access-Request.  A
      consistency check MAY verify the subnet of the IPv6 address was
      correct based on the last-hop proxy.

   NAS-Identifier:  This is an identifier populated by the NAS to
      identify the NAS to the AAA server; it SHOULD be validated against
      the local database.

   NAS-Port-Type:  This specifies the underlying link technology.  It
      SHOULD be validated against the value received from the peer in
      the information exchange and against a database of authorized
      link-layer technologies.

9.  Security Considerations

   This section discusses security considerations surrounding the use of
   EAP channel bindings.

9.1.  Trust Model

   In the considered trust model, EAP peer and authentication server are
   honest, while the authenticator is maliciously sending false
   information to peer and/or server.  In the model, the peer and server
   trust each other, which is not an unreasonable assumption,
   considering they already have a trust relationship.  The following
   are the trust relationships:

   o  The server trusts that the channel-binding information received
      from the peer is the information that the peer received from the
      authenticator.

   o  The peer trusts the channel-binding result received from the
      server.

   o  The server trusts the information contained within its local
      database.

   In order to establish the first two trust relationships during an EAP
   execution, an EAP method MUST provide the following:

   o  mutual authentication between peer and server

   o  derivation of keying material including a key for integrity
      protection of channel-binding messages known to the peer and EAP
      server but not the authenticator




Hartman, et al.              Standards Track                   [Page 21]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   o  transmission of the channel-binding request from peer to server
      over an integrity-protected channel

   o  transmission of the channel-binding result from server to peer
      over an integrity-protected channel

   This trust model is a significant departure from the standard EAP
   model.  In many EAP deployments today, attacks where one
   authenticator can impersonate another are not a significant concern
   because all authenticators provide the same service.  A authenticator
   does not gain significant advantage by impersonating another
   authenticator.  The use of EAP in situations where different
   authenticators provide different services may give an attacker who
   can impersonate a authenticator greater advantage.  The system as a
   whole needs to be analyzed to evaluate cases where one authenticator
   may impersonate another and to evaluate the impact of this
   impersonation.

   One attractive implementation strategy for channel binding is to add
   channel-binding support to a tunnel method that can tunnel an inner
   EAP authentication.  This way, channel binding can be achieved with
   any method that can act as an inner method even if that inner method
   does not have native channel-binding support.  The requirement for
   mutual authentication and key derivation is at the layer of EAP that
   actually performs the channel binding.  Tunnel methods sometimes use
   cryptographic binding, a process where a peer proves that the peer
   for the outer method is the same as the peer for an inner method to
   tie authentication at one layer together with an inner layer.
   Cryptographic binding does not always provide mutual authentication;
   its definition does not require the server to prove that the inner
   server and outer server are the same.  Even when cryptographic
   binding does attempt to confirm that the inner and outer server are
   the same, the Master Session Key (MSK) from the inner method is
   typically used to protect the binding.  An attacker such as an
   authenticator that wishes to subvert channel binding could establish
   an outer tunnel terminating at the authenticator.  If the outer
   method tunnel terminates on the authenticator, the MSK is disclosed
   to the authenticator, which can typically attack cryptographic
   binding.  If the authenticator controls cryptographic binding, then
   it typically controls the channel-binding parameters and results.  If
   the channel-binding process is used to differentiate one
   authenticator from another, then the authenticator can claim to
   support services that it was not authorized to.  This attack was not
   in scope for existing threat models for cryptographic binding because
   differentiated authenticators was not a consideration.  Thus,
   existing cryptographic binding does not typically provide mutual
   authentication of the inner-method server required for channel
   binding.  Other methods besides cryptographic binding are available



Hartman, et al.              Standards Track                   [Page 22]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   to provide mutual authentication required by channel binding.  As an
   example, if server certificates are validated and names checked,
   mutual authentication can be provided directly by the tunnel.

9.2.  Consequences of Trust Violation

   If any of the trust relationships listed in Section 9.1 are violated,
   channel binding cannot be provided.  In other words, if mutual
   authentication with key establishment as part of the EAP method as
   well as protected database access are not provided, then achieving
   channel binding is not feasible.

   Dishonest peers can only manipulate the first message i1 of the
   channel-binding protocol.  In this scenario, a peer sends i1' to the
   server.  If i1' is invalid, the channel-binding validation will fail.
   On the other hand, if i1' passes the validation, either the original
   i1 was wrong and i1' corrected the problem, or both i1 and i1'
   constitute valid information.  A peer could potentially gain an
   advantage in auditing or charging if both are valid and information
   from i1' is used for auditing or charging.  Such peers can be
   detected by including the information in i2 and checking i1 against
   i2.

   If information from i1 does not validate, an EAP server cannot
   generally determine whether the authenticator advertised incorrect
   information or whether the peer is dishonest.  This should be
   considered before using channel-binding validation failures to
   determine the reputation either of the peer or authenticator.

   Dishonest servers can send EAP-Failure messages and abort the EAP
   authentication even if the received i1 is valid.  However, servers
   can always abort any EAP session, independent of whether or not
   channel binding is offered.  On the other hand, dishonest servers can
   claim a successful validation even if i1 contains invalid
   information.  This can be seen as collaboration of authenticator and
   server.  Channel binding can neither prevent nor detect such attacks.
   In general, such attacks cannot be prevented by cryptographic means
   and should be addressed using policies that make servers liable for
   their provided information and services.

   Additional network entities (such as proxies) might be on the
   communication path between peer and server and may attempt to
   manipulate the channel-binding protocol.  If these entities do not
   possess the keying material used for integrity protection of the
   channel-binding messages, the same threat analysis applies as for the
   dishonest authenticators.  Hence, such entities cannot manipulate a
   single channel-binding message or the outcome.  On the other hand,
   entities with access to the keying material must be treated like a



Hartman, et al.              Standards Track                   [Page 23]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   server in a threat analysis.  Hence, such entities are able to
   manipulate the channel-binding protocol without being detected.
   However, the required knowledge of keying material is unlikely since
   channel binding is executed before the EAP method is completed, and
   thus before keying material is typically transported to other
   entities.

9.3.  Bid-Down Attacks

   EAP methods that add channel binding will typically negotiate its
   use.  Even for entirely new EAP methods designed with channel binding
   from the first version, some deployments may not use it.  It is
   desirable to protect against attacks on the negotiation of channel
   bindings.  An attacker including the NAS SHOULD NOT be able to
   prevent a peer and server who support channel bindings from using
   them.

   Unfortunately, existing EAP methods may make it difficult or
   impossible to protect against attacks on negotiation.  For example,
   many EAP state machines will accept a success message at any point
   after key derivation to terminate authentication.  EAP success
   messages are not integrity protected; an attacker who could insert a
   message can generate one.  The NAS is always in a position to
   generate a success message.  Common EAP servers take advantage of
   state machines accepting success messages even in cases where an EAP
   method might support a protected indication of success.  It may be
   challenging to define channel-binding support for existing EAP
   methods in a manner that permits peers to distinguish an old EAP
   server that sends a success indication and does not support channel
   binding from an attacker injecting a success indication.

9.4.  Privacy Violations

   While the channel-binding information exchanged between EAP peer and
   EAP server (i.e., i1 and the result message) must always be integrity
   protected, it may not be encrypted.  In the case that these messages
   contain identifiers of peer and/or network entities, the privacy
   property of the executed EAP method may be violated.  Hence, in order
   to maintain the privacy of an EAP method, the exchanged channel-
   binding information must be encrypted.  If encryption is not
   available, private information is not sent as part of the channel-
   binding information, as described in Section 6.1.

   Privacy implications of attributes selected for channel binding need
   to be considered.  Consider channel binding the username attribute.
   A peer sends a privacy protecting anonymous identifier in its EAP
   identity message, but sends the full username in the protected i1
   message.  However, the authenticator would like to learn the full



Hartman, et al.              Standards Track                   [Page 24]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   username.  It makes a guess and sends that in i2 rather than the
   anonymous identifier.  If the EAP server validates this attribute and
   fails when the username from the peer mismatches i2, then the EAP
   server confirms the authenticator's guess.  Similar privacy exposures
   may result whenever one party is in a position to guess channel-
   binding information provided by another party.

10.  Operations and Management Considerations

   As with any extension to existing protocols, there will be an impact
   on existing systems.  Typically, the goal is to develop an extension
   that minimizes the impact on both development and deployment of the
   new system, subject to the system requirements.  This section
   discusses the impact on existing devices that currently utilize EAP,
   assuming the channel-binding information is transported within the
   EAP method execution.

   The EAP peer will need an API between the EAP lower layer and the EAP
   method that exposes the necessary information from the NAS to be
   validated to the EAP peer, which can then feed that information into
   the EAP methods for transport.  For example, an IEEE 802.11 system
   would need to make available the various information elements that
   require validation to the EAP peer, which would properly format them
   and pass them to the EAP method.  Additionally, the EAP peer will
   require updated EAP methods that support transporting channel-binding
   information.  While most method documents are written modularly to
   allow incorporating arbitrary protected information, implementations
   of those methods would need to be revised to support these
   extensions.  Driver updates are also required so methods can access
   the required information.

   No changes to the pass-through authenticator would be required.

   The EAP server would need an API between the database storing NAS
   information and the individual EAP server.  The database may already
   exist on the AAA server, in which case the EAP server passes the
   parameters to the AAA server for validation.  The EAP methods need to
   be able to export received channel-binding information to the EAP
   server so it can be validated.

11.  IANA Considerations

   A new top-level registry has been created for "Extensible
   Authentication Protocol (EAP) Channel Binding Parameters".  This
   registry consists of several sub-registries.






Hartman, et al.              Standards Track                   [Page 25]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   The "EAP Channel-Binding Codes" sub-registry defines values for the
   code field in the channel-binding data and channel-binding response
   packet.  See the table in Section 5.3.1 for initial registrations.
   This registry requires Standards Action [RFC5226] for new
   registrations.  Early allocation [RFC4020] is allowed.  An additional
   reference column has been added to the table for the registry,
   pointing all codes in the initial registration to this specification.
   Valid values in this sub-registry range from 0-255; 0 is reserved.

   The "EAP Channel-Binding Namespaces" sub-registry contains
   registrations for the NSID field in the channel-binding data and
   channel-binding response.  Initial registrations are found in the
   table in Section 5.3.2.  Registrations in this registry require IETF
   Review.  Valid values range from 0-255; 0 is reserved.  As with the
   "EAP Channel-Binding Codes" sub-registry, a reference column has been
   included to point to this document for initial registrations.

11.1.  EAP Lower Layers Registry

   A new sub-registry in the EAP Numbers registry at
   http://www.iana.org/assignments/eap-numbers has been created for EAP
   Lower Layers.  Registration requires Expert Review [RFC5226]; the
   primary role of the expert is to prevent multiple registrations for
   the same lower layer.

   The following table gives the initial registrations for this
   registry.

            +-------+----------------------------------------+
            | Value | Lower Layer                            |
            +-------+----------------------------------------+
            | 1     | Wired IEEE 802.1X                      |
            | 2     | IEEE 802.11 (no-pre-auth)              |
            | 3     | IEEE 802.11 (pre-authentication)       |
            | 4     | IEEE 802.16e                           |
            | 5     | IKEv2                                  |
            | 6     | PPP                                    |
            | 7     | PANA (no pre-authentication) [RFC5191] |
            | 8     | GSS-API [GSS-API-EAP]                  |
            | 9     | PANA (pre-authentication) [RFC5873]    |
            +-------+----------------------------------------+

11.2.  RADIUS Registration

   A new RADIUS attribute is registered with the name EAP-Lower-Layer;
   163.  The RADIUS attributes are in the registry at
   http://www.iana.org/assignments/radius-types.




Hartman, et al.              Standards Track                   [Page 26]
^L
RFC 6677                   EAP Channel Binding                 July 2012


12.  Acknowledgments

   The authors and editor would like to thank Bernard Aboba, Glen Zorn,
   Joe Salowey, Stephen Hanna, and Klaas Wierenga for their valuable
   inputs that helped to improve and shape this document over the time.

   Sam Hartman's work on this specification is funded by JANET(UK).

   The EAP-Lower-Layer attribute was taken from "RADIUS Attributes for
   IEEE 802 Networks" [RADIUS-WLAN].

13.  References

13.1.  Normative References

   [RFC2119]      Bradner, S., "Key words for use in RFCs to Indicate
                  Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3748]      Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and
                  H. Levkowetz, "Extensible Authentication Protocol
                  (EAP)", RFC 3748, June 2004.

   [RFC4020]      Kompella, K. and A. Zinin, "Early IANA Allocation of
                  Standards Track Code Points", BCP 100, RFC 4020,
                  February 2005.

   [RFC5226]      Narten, T. and H. Alvestrand, "Guidelines for Writing
                  an IANA Considerations Section in RFCs", BCP 26,
                  RFC 5226, May 2008.

13.2.  Informative References

   [AAA-PAY]      Clancy, T., Lior, A., Ed., Zorn, G., and K. Hoeper,
                  "EAP Method Support for Transporting AAA Payloads",
                  Work in Progress, May 2010.

   [GSS-API-EAP]  Hartman, S., Ed. and J. Howlett, "A GSS-API Mechanism
                  for the Extensible Authentication Protocol", Work in
                  Progress, June 2012.

   [HC07]         Hoeper, K. and L. Chen, "Where EAP Security Claims
                  Fail", Institute for Computer Sciences, Social
                  Informatics and Telecommunications Engineering
                  (ICST), The Fourth International Conference on
                  Heterogeneous Networking for Quality, Reliability,
                  Security and Robustness (QShine 2007), August 2007.





Hartman, et al.              Standards Track                   [Page 27]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   [RADIUS-WLAN]  Aboba, B., Malinen, J., Congdon, P., and J. Salowey,
                  "RADIUS Attributes for IEEE 802 Networks", Work in
                  Progress, October 2011.

   [RFC4017]      Stanley, D., Walker, J., and B. Aboba, "Extensible
                  Authentication Protocol (EAP) Method Requirements for
                  Wireless LANs", RFC 4017, March 2005.

   [RFC5056]      Williams, N., "On the Use of Channel Bindings to
                  Secure Channels", RFC 5056, November 2007.

   [RFC5191]      Forsberg, D., Ohba, Y., Patil, B., Tschofenig, H., and
                  A. Yegin, "Protocol for Carrying Authentication for
                  Network Access (PANA)", RFC 5191, May 2008.

   [RFC5296]      Narayanan, V. and L. Dondeti, "EAP Extensions for EAP
                  Re-authentication Protocol (ERP)", RFC 5296,
                  August 2008.

   [RFC5873]      Ohba, Y. and A. Yegin, "Pre-Authentication Support for
                  the Protocol for Carrying Authentication for Network
                  Access (PANA)", RFC 5873, May 2010.





























Hartman, et al.              Standards Track                   [Page 28]
^L
RFC 6677                   EAP Channel Binding                 July 2012


Appendix A.  Attacks Prevented by Channel Bindings

   In the following appendix, it is demonstrated how the presented
   channel bindings can prevent attacks by malicious authenticators
   (representing the "lying NAS" problem) as well as malicious visited
   networks (representing the "lying provider" problem).  This document
   only provides part of the solution necessary to realize a defense
   against these attacks.  In addition, lower-layer protocols need to
   describe what attributes should be included in channel-binding
   requests.  EAP methods need to be updated in order to describe how
   the channel-binding request and response are carried.  In addition,
   deployments may need to decide what information is populated in the
   local database.  The following sections describe types of attacks
   that can be prevented by this framework with appropriate lower-layer
   attributes carried in channel bindings, EAP methods with channel-
   binding support, and appropriate local database information at the
   EAP server.

A.1.  Enterprise Subnetwork Masquerading

   As outlined in Section 3, an enterprise network may have multiple
   VLANs providing different levels of security.  In an attack, a
   malicious NAS connecting to a guest network with lesser security
   protection could broadcast the SSID of a subnetwork with higher
   protection.  This could lead peers to believe that they are accessing
   the network over secure connections and, e.g., transmit confidential
   information that they normally would not send over a weakly protected
   connection.  This attack works under the conditions that peers use
   the same set of credentials to authenticate to the different kinds of
   VLANs and that the VLANs support at least one common EAP method.  If
   these conditions are not met, the EAP server would not authorize the
   peers to connect to the guest network, because the peers used
   credentials and/or an EAP method that is associated with the
   corporate network.

A.2.  Forced Roaming

   Mobile phone providers boosting their cell towers' transmission power
   to get more users to use their networks have occurred in the past.
   The increased transmission range combined with a NAS sending a false
   network identity lures users to connect to the network without being
   aware that they are roaming.

   Channel bindings would detect the bogus network identifier because
   the network identifier sent to the authentication server in i1 will
   match neither information i2 nor the stored data.  The verification
   fails because the info in i1 claims to come from the peer's home
   network, while the home authentication server knows that the



Hartman, et al.              Standards Track                   [Page 29]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   connection is through a visited network outside the home domain.  In
   the same context, channel bindings can be utilized to provide a "home
   zone" feature that notifies users every time they are about to
   connect to a NAS outside their home domain.

A.3.  Downgrading Attacks

   A malicious authenticator could modify the set of offered EAP methods
   in its beacon to force the peer to choose from only the weakest EAP
   method(s) accepted by the authentication server.  For instance,
   instead of having a choice between the EAP MD5 Challenge Handshake
   Authentication Protocol (EAP-MD5-CHAP), the Flexible Authentication
   via Secure Tunneling EAP (EAP-FAST), and some other methods, the
   authenticator reduces the choice for the peer to the weaker EAP-MD5-
   CHAP method.  Assuming that weak EAP methods are supported by the
   authentication server, such a downgrading attack can enable the
   authenticator to attack the integrity and confidentiality of the
   remaining EAP execution and/or break the authentication and key
   exchange.  The presented channel bindings prevent such downgrading
   attacks, because peers submit the offered EAP method selection that
   they have received in the beacon as part of i1 to the authentication
   server.  As a result, the authentication server recognizes the
   modification when comparing the information to the respective
   information in its policy database.  This presumes that all
   acceptable EAP methods support channel binding and that an attacker
   cannot break the EAP method in real-time.

A.4.  Bogus Beacons in IEEE 802.11r

   In IEEE 802.11r, the SSID is bound to the TSK calculations, so that
   the TSK needs to be consistent with the SSID advertised in an
   authenticator's beacon.  While this prevents outsiders from spoofing
   a beacon, it does not stop a "lying NAS" from sending a bogus beacon
   and calculating the TSK accordingly.

   By implementing channel bindings, as described in this document, in
   IEEE 802.11r, the verification by the authentication server would
   detect the inconsistencies between the information the authenticator
   has sent to the peer and the information the server received from the
   authenticator and stores in the policy database.

A.5.  Forcing False Authorization in IEEE 802.11i

   In IEEE 802.11i, a malicious NAS can modify the beacon to make the
   peer believe it is connected to a network different from the one the
   peer is actually connected to.





Hartman, et al.              Standards Track                   [Page 30]
^L
RFC 6677                   EAP Channel Binding                 July 2012


   In addition, a malicious NAS can force an authentication server into
   authorizing access by sending an incorrect Called-Station-ID that
   belongs to an authorized NAS in the network.  This could cause the
   authentication server to believe it had granted access to a different
   network or even provider than the one the peer got access to.

   Both attacks can be prevented by implementing channel bindings,
   because the server can compare the information sent to the peer, the
   information it received from the authenticator during the AAA
   communication, and the information stored in the policy database.

Authors' Addresses

   Sam Hartman (editor)
   Painless Security
   356 Abbott St.
   North Andover, MA  01845
   USA

   EMail: hartmans-ietf@mit.edu


   T. Charles Clancy
   Virginia Polytechnic Institute and State University
   Electrical and Computer Engineering
   900 North Glebe Road
   Arlington, VA  22203
   USA

   EMail: tcc@vt.edu


   Katrin Hoeper
   Motorola Solutions, Inc.
   1301 E. Algonquin Road
   Schaumburg, IL  60196
   USA

   EMail: khoeper@motorolasolutions.com












Hartman, et al.              Standards Track                   [Page 31]
^L