summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1898.txt
blob: fe8a18c98c85573eca49aa805f290dabaf2f61b8 (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
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
Network Working Group                                    D. Eastlake 3rd
Request for Comments: 1898                                     CyberCash
Category: Informational                                        B. Boesch
                                                               CyberCash
                                                              S. Crocker
                                                               CyberCash
                                                                M. Yesil
                                                               CyberCash
                                                           February 1996


               CyberCash Credit Card Protocol Version 0.8

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Abstract

   CyberCash is developing a general payments system for use over the
   Internet.  The structure and communications protocols of version 0.8
   are described.  This version includes credit card payments only.
   Additional capabilities are planned for future versions.

   This document covers only the current CyberCash system which is one
   of the few operational systems in the rapidly evolving area of
   Internet payments. CyberCash is committed to the further development
   of its system and to cooperation with the Internet Engineering Task
   Force and other standards organizations.

Acknowledgements

   The significant contributions of the following persons (in alphabetic
   order) to this protocol are gratefully acknowledged:

        Bruce Binder, Judith Grass, Alden Hart, Steve Kiser, Steve
        Klebe, Garry Knox, Tom Lee, Bob Lindenberg, Jim Lum, Bill
        Melton, Denise Paredes, Prasad Chintamaneni, Fred Silverman,
        Bruce Wilson, Garland Wong, Wei Wu, Mark Zalewski.

   In addition, Jeff Stapleton and Peter Wagner made useful comments on
   the first version of this memo.







Eastlake, et al              Informational                      [Page 1]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


History

   For historic purposes, it should be noted that this document was
   first posted as an Internet draft, and thus made publicly available,
   on 8 July 1995.

Table of Contents

      1. Overall System..........................................3
      1.1 System Overview........................................3
      1.2 Security Approach......................................5
      1.2.1 Authentication and Persona Identity..................5
      1.2.2 Privacy..............................................6
      1.3 Credit Card Operation..................................6
      2. General Message Wrapper Format..........................7
      2.1 Message Format.........................................7
      2.2 Details of Format......................................8
      2.3 Body Parts.............................................8
      2.4 Transparent Part.......................................9
      2.5 Opaque Part...........................................10
      2.6 Trailer...............................................10
      2.7 Example Messages......................................11
      3. Signatures and Hashes..................................12
      3.1 Digital Signatures....................................12
      3.2 Hash Codes............................................13
      4. Specific Message Formats...............................13
      4.1 Persona Registration and Application Retrieval........14
      4.1.1 R1 - registration...................................14
      4.1.2 R2 - registration-response..........................15
      4.1.3 GA1 - get-application...............................16
      4.1.4 GA2 - get-application-response......................17
      4.2 Binding Credit Cards..................................18
      4.2.1 BC1 - bind-credit-card..............................18
      4.2.2 BC4 - bind-credit-card-response.....................20
      4.3 Customer Credit Card Purchasing Messages..............21
      4.3.1 PR1 - payment-request...............................21
      4.3.2 CH1 - credit-card-payment...........................23
      4.3.3 CH2 - charge-card-response..........................24
      4.4 Merchant Credit Card Purchasing Messages..............25
      4.4.1 CM1 - auth-only.....................................26
      4.4.2 CM2 - auth-capture..................................28
      3.4.3 CM3 - post-auth-capture.............................28
      4.4.4 CM4 - void..........................................30
      4.4.5 CM5 - return........................................32
      4.4.6 CM6 - charge-action-response........................32
      4.4.7 The MM* Message Series..............................34
      4.4.8 CD1 - card-data-request.............................35
      4.4.9 CD2 - card-data-response............................37



Eastlake, et al              Informational                      [Page 2]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


      4.5 Utility and Error Messges.............................38
      4.5.1 P1 - ping...........................................39
      4.5.2 P2 - ping-response..................................39
      4.5.3 TQ1 - transaction-query.............................40
      4.5.4 TQ2 - transaction-cancel............................41
      4.5.5 TQ3 - transaction-response..........................42
      4.5.6 UNK1 - unknown-error................................44
      4.5.7 DL1 - diagnostic-log................................46
      4.5.8 DL2 - merchant-diagnostic-log.......................47
      4.6 Table of Messages Described...........................48
      5. Future Development.....................................49
      5.1 The Credit Card Authorization/Clearance Process.......49
      5.2 Lessons Learned.......................................50
      6. Security Considerations................................51
      References................................................51
      Authors' Addresses........................................52

1. Overall System

   CyberCash, Inc. of Reston, Virginia was founded in August of 1994 to
   partner with financial institutions and providers of goods and
   services to deliver a safe, convenient and inexpensive system for
   making payments on the Internet.  The CyberCash approach is based on
   establishing a trusted link between the new world of cyberspace and
   the traditional banking world.  CyberCash serves as a conduit through
   which payments can be transported quickly, easily and safely between
   buyers, sellers and their banks.  Significantly - much as it is the
   real world of commerce - the buyer and seller need not have any prior
   existing relationship.

   As a neutral third party whose sole concern is ensuring the delivery
   of payments from one party to another, CyberCash is the linchpin in
   delivering spontaneous consumer electronic commerce on the Internet.

1.1 System Overview

   The CyberCash system will provide several separate payment services
   on the Internet including credit card and electronic cash.  To gain
   access to CyberCash services, consumers need only a personal computer
   with a network connection.  Similarly, merchants and banks need make
   only minimal changes to their current operating procedures in order
   to process CyberCash transactions, enabling them to more quickly
   integrate safe on-line payments into their existing service
   offerings.  Communications with banks are over existing financial
   communications networks.






Eastlake, et al              Informational                      [Page 3]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   To get started, consumers download free software from CyberCash on
   the Internet.  This software establishes the electronic link between
   consumers, merchants and their banks as well as between individuals.
   To make gaining access to the CyberCash system even easier, CyberCash
   "PAY" buttons may be incorporated into popular on-line service and
   software graphical user interfaces so that consumers using these
   products can easily enter the CyberCash system when they are ready to
   make payments for goods and services.  Consumers need not have any
   prior relationship with CyberCash to use the CyberCash system.  They
   can easily set up their CyberCash persona on-line.

   Transactions are automated in that once the consumer enters
   appropriate information into his own computer, no manual steps are
   required to process authorization or clearance transactions through
   the entire system.  The consumer need only initiate payment for each
   transaction by exercising the pay option on an electronic form.
   Transactions are safe in that they are cryptographicly protected from
   tampering and modification by eavesdroppers. And they are private in
   that information about the consumer not relevant to the transaction
   is not visible to the merchant.

      +------------+            +------------+
      |            |            |            |
      |  Internet  |            |  Internet  |
      |  customer  +------------+  merchant  +
      |            |            |  /         |
      +------------+            +------------+
                                /
                               /
                   +------------|-+
                   | CyberCash  | |
                   |     server | |
                   +-----+------|-+
                         |      |
                         |      |
          +--------------+------|---------+
          | +--------+       +--+-------+ |
          | | card   +-------+ / charge | |
          | | issuer |       | acquirer | |
          | +--------+       +----------+ |
          |                               |
          |      The Banking System       |
          +-------------------------------+

                   SYSTEM OVERVIEW






Eastlake, et al              Informational                      [Page 4]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


1.2 Security Approach

   The CyberCash system pays special attention to security issues.  It
   uses encryption technology from the world's leading sources of
   security technology and is committed over time to employing new
   security technologies as they emerge.

1.2.1 Authentication and Persona Identity

   Authentication of messages is based on Public Key encryption as
   developed by RSA.  The CyberCash Server maintains records of the
   public key associated with every customer and merchant persona.  It
   is thus able to authenticate any information digitally signed by a
   customer or merchant regardless of the path the data followed on its
   way to the server.  The corresponding private key, which is needed to
   create such digital signatures, will be held by the customer or
   merchant and never revealed to other parties.  In customer software,
   the private key is only stored in an encrypted form protected by a
   passphrase.

   While the true CyberCash identity of a customer or merchant is
   recognized by their public/private key pair, such keys are too
   cumbersome (over 100 hex digits) to be remembered or typed by people.
   So, the user interface utilizes short alphanumeric ID's selected by
   the user or merchant for purposes of specifying a persona.  CyberCash
   adds check digits to the requested ID to minimize the chance of
   accidental wrong persona selection.  Persona IDUs are essentially
   public information.  Possession of an persona ID without the
   corresponding private key is of no benefit in the current system.

   Individuals or organizations may establish one or more CyberCash
   customer personas directly with CyberCash.  Thus, an individual may
   have several unrelated CyberCash personas or share a CyberCash
   persona with other individuals.  This approach provides a degree of
   privacy consistent with Internet presence generally and with cash
   transactions specifically.  However, persona holders who wish to use
   a credit card for purchases in conjunction with their CyberCash
   persona must first meet such on-line identification criteria as the
   card issuing organization requires.

   Control over a CyberCash persona is normally available only to an
   entity that possesses the private key for that persona.  However, a
   special provision is made to associate an emergency close out
   passphrase with a CyberCash persona.  On receipt of the emergency
   close out passphrase, even if received over insecure channels such as
   a telephone call or ordinary email, CyberCash will suspend activity
   for the CyberCash persona.  This emergency close-out passphrase can
   be stored separately from and with somewhat less security than the



Eastlake, et al              Informational                      [Page 5]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   private key for the persona since the emergency passphrase can not be
   used to divert funds to others. This provides some protection against
   loss or misappropriation of the private key or the passphrase under
   which the private key in kept encrypted.  In the cash system, the
   emergency close-out passpharase may also transfer the persona balance
   to a designated bank account.

1.2.2 Privacy

   Encryption of messages use the Digital Encryption Standard (DES),
   commonly used in electronic payment systems today.  It is planned to
   superencrypt (i.e., encrypted more than one level) particularly
   sensitive information, such as PIN numbers, and handle them so that
   the plain text readable version never exists in the CyberCash system
   except momentarily, within special purpose secure cryptographic
   hardware that is part of the server, before being re-encrypted under
   another key.

   The processing of card charges through the CyberCash system is
   organized so that the merchant never learns the customerUs credit
   card number unless the merchantUs bank chooses to release this
   information to the merchant or it is required for dispute resolution.
   In addition, the server maintains no permanent storage of card
   numbers.  They are only present while a transaction involving that
   card is in progress.  These practices greatly reduce the chance of
   card number misappropriation.

1.3 Credit Card Operation

   Using the CyberCash system for credit card transactions, once price
   has been negotiated and the consumer is ready to purchase, the
   consumer simply clicks on the CyberCash "PAY" button displayed on the
   merchant interface, which invokes the merchant CyberCash software.
   The merchant sends the consumer an on-line invoice that includes
   relevant purchase information which appears on the customerUs screen.
   (See PR1 message.)  The consumer adds his credit card number and
   other information by simply selecting from a list of credit cards he
   has registered to his CyberCash persona.  All this information is
   digitally signed by the customer's CyberCash software, encrypted, and
   passed, along with a hash code of the invoice as seen by the
   customer, to the merchant.  (See CH1 message.)

   Upon receipt, the merchant adds additional authorization information
   which is then encrypted, electronically signed by the merchant, and
   sent to the CyberCash Server.  (See CM1 & CM2 messages.)  The
   CyberCash Server can authenticate all the signatures and be sure that
   the customer and merchant agree on the invoice and charge amount.
   The CyberCash Server then forwards the relevant information to the



Eastlake, et al              Informational                      [Page 6]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   acquiring bank along with a request on behalf of the merchant for a
   specific banking operation such as charge authorization.  The bank
   decrypts and then processes the received data as it would normally
   process a credit card transaction.  The bank's response is returned
   to the CyberCash Server which returns an electronic receipt to the
   merchant (see CM6 message) part of which the merchant is expected to
   forward to the customer (see CH2 message).  The transaction is
   complete.

2. General Message Wrapper Format

   Version 0.8 of the external format for the encoding of CyberCash
   messages is described below.  CyberCash messages are stylized
   documents for the transmission of financial data over the Internet.

   While there are numerous schemes for sending information over the
   Internet (HTTP, SMTP, and others), each is attached to a specific
   transmission mechanism.  Because CyberCash messages will need to
   travel over each of these media (as well as others) a transmission
   independent mechanism is needed.

2.1 Message Format

   CyberCash messages consist of the following components:

   1. Header - defines the start of the CyberCash message and includes
      version information.

   2. Transparent Part - contains information that is not private.

   3. Opaque Part(s) - contains the financial information in the
      message and is both privacy protected as well as tamper protected.
      An opaque part is not present in some messages. When present, the
      opaque part usually provides tamper protection for the transparent
      part.

   4. Trailer - defines the end of the CyberCash message and includes a
      check value to enable the receiver to determine that the message
      has arrived undamaged. Note: this check value is intended only to
      detect accidental damage to the message, not deliberate tampering.

      No null characters (zero value) or characters with the eighth bit
      on are permitted inside a CyberCash message.  "Binary" quantities
      that might have such byte values in them are encoded in base64 as
      described in RFC 1521.






Eastlake, et al              Informational                      [Page 7]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


2.2 Details of Format

   The header consists of a single line which looks approximately like
   this

        $$-CyberCash-0.8-$$

   or like this

        $$-CyberCash-1.2.3-Extra-$$

   It includes a number of fields separated with the minus character "-"

   1. "$$" - the literal string with the initial $ in column 1.

   2. "CyberCash" - the literal string (case insensitive)

   3. x.y or x.y.z - the version number of the message format.  x is the
   primary version number.  y is a subversion number.  z, if present, is
   a subsubversion number.

   4. "Extra" - an optional additional alphanumeric string.

   5.  "$$" - the literal string

   Version numbers start at 0.7 and count up.  The ".z" is omitted when
   z is zero.  0.7 and 0.8 are the test and initial shipped version of
   the credit card system. 0.9 and 1.0 are expected to also incorporate
   the test and initial shipped versions of the cash facilities as well
   as improvements to the credit card system.

   The "Extra" string is used within secure environments so that one
   subcomponent can scribble a note to another with minimum overhead.
   For example, a server firewall could put "HTTP" or "SMTP" here before
   forwarding the message to the core server within the firewall
   perimeter.

2.3 Body Parts

   The body parts of the message (both transparent and opaque) consist
   of attribute value pairs in formats that are reminiscent of the
   standard electronic mail header (RFC822) format. However, there are
   some differences.

   Attribute names start with and are composed predominantly of letters
   and internal hyphens except that they sometimes end with a hyphen
   followed by a number.  Such a trailing number is used when there is
   logically an indexed vector of values.  Attribute names are



Eastlake, et al              Informational                      [Page 8]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   frequently referred to as labels.

   If the label ends with a ":", then RFC822 processing is done.  While
   the existence of trailing white space is significant, all leading
   white space on continuation lines is stripped.  Such lines are
   wrapped at 64 characters in length, excluding any line termination
   character(s).

   However, if the label is terminated with a ";", this indicates a
   free-form field where new-line characters and any leading white
   space, after the initial space that indicates a continuation line, is
   significant.  Such lines should not be wrapped except that, to avoid
   other processing problems, they are forcibly wrapped at 200
   characters.

   Blank lines are ignored and do not signify a change  to  a  different
   mode of line handling.

   Another way of looking at the above is as follows: after having found
   an initial $$ start line, you can treat any following lines according
   to the first character.  If it is alphanumeric, it is a new label
   which should be terminated with a ":" or ";" and indicates a new
   label-value pair.  If it is a white space character, it indicates the
   continuation of the value for the preceding new label line.  (Exactly
   how the continuation is processed depends on the label termination
   character.)  If it is "$", it should be the end line for the message.
   If it is #, it is a comment line and should be ignored.  Other
   initial characters are undefined.  (As of this date, no software
   sends CyberCash messages with # lines but they are convenient for
   commenting messages stored in files.)

2.4 Transparent Part

   The transparent part includes any clear-text data associated with the
   financial transaction as well as information needed by CyberCash and
   others to decrypt the opaque part(s).  It always includes a
   transaction field which is the transaction number generated by the
   requester and which is repeated in the response.  It always includes
   a date field that is the local date and time at the requester and is
   repeated in the response.  In all cases other than an initial
   registration to establish a persona ID, it includes the requester's
   persona ID.

   On messages bound for the server, there is a "cyberkey:" field that
   identifies which server public key was used to encrypt the session
   key.





Eastlake, et al              Informational                      [Page 9]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


2.5 Opaque Part

   The opaque part consists of a single block of characters encoded
   using base64 encoding (see RFC 1521). The data in the opaque section
   is always encrypted before encoding.

   The label "opaque" or "merchant-opaque" precedes the opaque part
   depending on whether the data was encrypted by the client or merchant
   software.

   On messages inbound to the server, the data to be opaqued is DES CBC
   encrypted under a random transacton key and then that DES key is RSA
   encrypted under one of the server's public keys.  The RSA encrypted
   DES key appears as the first part of the base64 encoded field and is
   not broken out as a separate value in the message.  The corresponding
   outbound reply from the server can simply be DES encrypted under this
   transaction key as there is enough plain text information to identify
   the transaction and the customer or merchant will have remembered the
   transaction key from the inbound message.

   A signature is not generally necessary in the opaque part of a reply
   message.  Knowledge of the transaction key is adequate
   authentication.  In order for someone to forge the response, they
   would have to know the server's private key to be able to get at the
   transaction key.  It is assumed that if anyone tampered with the
   response opaque part, the probability that it would decrypt to
   something that would parse is insignificant.  (Just the fact that the
   8th bit has to be off means a chance of 1 in 2**n where there are n
   characters and that's ignoring the rest of the formatting.)  While
   someone can tamper with the transparent part, this usually either has
   no effect or means that the client won't find the transaction key, in
   which case it's just a particular example of denial of service by
   damaging a message.

2.6 Trailer

   The trailer is intended to close the message and provide a definitive
   and parseable end of the message.

   The trailer consists of several fields separated by "-" as in header.

   1. "$$" - literal string.

   2. "CyberCash" - literal string (case insensitive).

   3. "End" - literal string (case insensitive).

   4. transmission checksum.



Eastlake, et al              Informational                     [Page 10]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   5.  "$$" - literal string.

   The transmission checksum is the MD5 has of all printable characters
   in the version number in the start line and those appearing after the
   second $$ of the start line and before the first $$ of the trailer
   line as transmitted.  Note that all white space is left out of this
   hash, including any new-lines, spaces, tabs, carriage returns, etc.
   The exact label terminators actually used (: or ;) are included as
   would any # comment line.  Note that the optional "Extra" string in
   the $ start line is not included.  The idea is to check correct
   transmission while avoiding sensitivity to gateways or processing
   that might change the line terminator sequence, convert tabs to
   spaces, or the like.

2.7 Example Messages

   Simple message from a client:

   $$-CyberCash-0.8-$$
   id: DONALD-69
   transaction: 918273645
   date: 199512250102
   cyberkey:CC1001
   opaque:
    GpOJvDpLH62z+eZlbVkhZJXtTneZH32Qj4T4IwJqv6kjAeMRZw6nR4f0OhvbTFfPm+GG
    aXmoxyUlwVnFkYcOyTbSOidqrwOjnAwLEVGJ/wa4ciKKI2PsNPA4sThpV2leFp2Vmkm4
    elmZdS0Qe350g6OPrkC7TKpqQKHjzczRRytWbFvE+zSi44wMF/ngzmiVsUCW01FXc8T9
    EB8KjHEzVSRfZDn+lP/c1nTLTwPrQ0DYiN1lGy9nwM1ImXifijHR19LZIHlRXy8=
   $$-End-CyberCash-End-jkn38fD3+/DFDF3434mn10==-$$


   Message from a merchant:

   $$-CyberCash-a.b.c-extra-$$
   merchant-ccid: acme-69
   merchant-date: 19951231115959
   merchant-transaction: 987654321
   label: value

   labelx: multiple line
      value...
   # comment
   # another comment line
   label; text with a real
     multi-line
        format !
   merchant-cyberkey: CC1001
   merchant-opaque:



Eastlake, et al              Informational                     [Page 11]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    C1Q96lU7n9snKN5nv+1SWpDZumJPJY+QNXGAm3SPgB/dlXlTDHwYJ4HDWKZMat+VIJ8y
    /iomz6/+LgX+Dn0smoAge7W+ESJ6d6Ge3kRAQKVCSpbOVLXF6E7mshlyXgQYmtwIVN2J
    66fJMQpo31ErrdPVdtq6MufynN8rJyJtu8xSNolXlqIYNQy5G2I3XCc6D3UnSErPx1VJ
    6cbwjLuIHHv58Nk+xxt/FyW7yAMwUb9YNcmOj//6Ru0NiOA9P/IiWczDe2mJRK1uqVpC
    sDrWehG/UbFTPD26trlYRnnY
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

3. Signatures and Hashes

   Inbound CyberCash request messages normally have a signature, as
   described below, of all of the messages fields outside of the
   signature.  This signature is transmitted inside the opaque part of
   the message.  It enables the server to authenticate the source of the
   message.

   Messages from a merchant to a client initiating a purchase sequence
   have fields signed by the merchant.  These fields and this signature
   are included by the client in the opaque part of their card purchase
   message to the merchant so that, when all is passed on to the server,
   it can verify that the client saw the information the merchant
   intended.

   More information on CyberCash signatures and the hash codes they are
   based on, is given below.

3.1 Digital Signatures

   Digital signatures are a means of authenticating information.  In
   CyberCash messages, they are calculated by first taking the hash of
   the data to be authenticated, as described below, and then encoding
   the hash using an RSA private key.

   Anyone possessing the corresponding public key can then decrypt the
   hash and compare it with the message hash.  If they match, then you
   can be sure that the signature was generated by someone possessing
   the private key which corresponded with the public key you used and
   that the message was not tampered with.

   In the CyberCash system, clients, merchants, and the server have
   public-private key pairs.  By keeping the private key secret and
   registering their public key with the server (for a merchant or
   client) or publishing their public key or keys (for the server), they
   can provide high quality authentication by signing parts of messages.

   An RSA digital signature is approximately the size of the modulus
   used.  For example, if that is 768 bits long, then the binary digital
   signature would be 768 bits or 96 bytes long and its base 64 encoding
   would be 128 bytes.



Eastlake, et al              Informational                     [Page 12]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


3.2 Hash Codes

   The hashes used in CyberCash messages are message digests.  That is,
   a non-invertable fingerprint of a message such that it is
   computationally infeasible to find an alternate message with the same
   hash.  Thus the relatively small hash can be used to secure a larger
   message.  If you are confident in the authenticity of the hash and
   are presented with a message which matches the hash, you can be sure
   it is the original message, at least as regards all aspects that have
   been included in the hash.

   The hash is calculated using the MD5 algorithm (see RFC 1321) on a
   synthetic message.  The synthetic message is composed of the labels
   and values specified in a list for the particular hash.  Since the
   hash is input order dependent, it is essential that the label-value
   pairs be assembled in the order specified.  In some cases, a range of
   matching labels is specified.  For example, "card*" to match card-
   number, card-expiration-date, and all other labels starting with
   "card".  In such cases, all existing matching labels are used in
   ascending alphabetic order by ASCII character code.

   If a label is specified in a signature list but is not present in the
   label-value data on which the hash is being calculated, it is not
   included in the hash at all.  That is, even the label and label
   terminator are omitted from the synthetic message.

   Before being hashed, the text of the synthetic message is processed
   to remove all "white space" characters.  White space characters are
   defined as any with an ASCII value of 32 (space) or less or 127
   (rubout) or greater.  Thus all forms of new-line/carriage-return and
   distinctions such as blank lines, trailing spaces, replacement of a
   horizontal tab character by multiple spaces, etc., are ignored for
   hash purposes.

   MD5 hashes are 16 bytes long.  This means that the base 64 encoding
   of such a hash will be 24 characters (of which the last two will
   always be padding equal signs).

4. Specific Message Formats

   This section describes the formats of the Verison 0.8 CyberCash
   messages by example with comments.  The reader in assumed to be
   familiar with terms such as "acquirer", "PAN" (primary account
   number), etc., defined in ISO 8583, and currency designations as
   defined in ISO 4217. A few fields not relevant to current operations
   have been removed to simplify this exposition.





Eastlake, et al              Informational                     [Page 13]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   In the following example messages, signatures, hashes, and encrypted
   sections are fake nonsense text and ids are fictitious.

4.1 Persona Registration and Application Retrieval

   The first step in customer use of CyberCash is registering a persona
   using the customer application.  This is done with the R1 message
   defined below.  The CyberCash server responds with the R2 message.

   When the customer application learns that it is out of date, it can
   use the GA1 request message to the server and its GA2 response to
   download a new signed version of itself.

4.1.1 R1 - registration

   Description: This is the initial message sent to create a new
       CyberCash persona.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   transaction: 123123213
   date: 19950121100505.nnn
   cyberkey: CC1001
   opaque:
    FrYOQrD16lEfrvkrqGWkajM1IZOsLbcouB43A4HzIpV3/EBQM5WzkRJGzYPM1r3noBUc
    MJ4zvpG0xlroY1de6DccwO9j/0aAZgDi9bcQWV4PFLjsN604j3qxWdYn9evIGQGbqGjF
    vn1qI1Ckrz/4/eT1oRkBBILbrWsuwTltFd84plvTy+bo5WE3WnhVKsCUJAlkKpXMaX73
    JRPoOEVQ3YEmhmD8itutafqvC90atX7ErkfUGDNqcB9iViRQ7HSvGDnKwaihRyfirkgN
    +lhOg6xSEw2AmYlNiFL5d/Us9eNG8cZM5peTow==
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################

   Opaque Key: Generated using CyberCash encrypting public key
       identified in CyberKey.

   #####################################################################
   Opaque Section Contents:

   type: registration
   swversion: 0.8win
   content-language: en-us
   requested-id: MyRequestedCCID



Eastlake, et al              Informational                     [Page 14]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   email: myemail@myemailhost.com
   pubkey:
    0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX
    E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94
   signature:
    v6JGmxIwRiB6iXUK7XAIiHZRQsZwkbLV0L0OpVEvan9l59hVJ3nia/cZc/r5arkLIYEU
    dw6Uj/R4Z7ZdqO/fZZHldpd9+XPaqNHw/y8Arih6VbwrO5pKerLQfuuPbIom

   #####################################################################
   signature is of the following fields: transaction, date, cyberkey,
       type, swversion, content-language, requested-id, email, pubkey

   #####################################################################
   Explanation:
   content-language is taken from the MIME header field (see RFC1766)
       and is the language text messages should be generated in.  (only
       en-us implemented at this time.
   swversion used to check if client application is old.


4.1.2 R2 - registration-response

   Description: This message gives the success/failure response to R1.

   #####################################################################
   Sender: CyberServer
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   transaction: 12312313
   date: 19950121100505.nnn
   opaque:
    r1XfjSQt+KJYUVOGU60r7voFrm55A8fP5DjJZuPzWdPQjGBIu3B6Geya8AlJfHsW11u8
    dIv1yQeeYj/+l9TD1dXW21/1cUDFFK++J2gUMVv8mX1Z6Mi4OU8AfsgoCliwSkWmjSOb
    kE62sAlZTnw998cKzMFp70TSlI3PEBtvIfpLq5lDCNbWidX8vFZV0ENUmMQ9DTP3du9w
    fsFGvz1mvtHLT/Gj8GNQRYKF4xiyx4HYzTkSMhgU5B/QDLPS/SawIJuR86b9X0mwsr0a
    gbGTzECPJTiKkrhxxMG/eymptsVQSLqNaTCx6w==
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: Same as session key for R1 for same Transaction and
       connection (there may be no ID!).

   #####################################################################
   Opaque Section Contents:




Eastlake, et al              Informational                     [Page 15]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   type: registration-response
   server-date: 19950121100506.nnn
   requested-id: MyRequestedCCID
   response-id: CyberCashHandle
   email: myemail@myemailhost.com
   response-code: success/failure/etc.
   pubkey:
    0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX
    E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94
   swseverity: fatal/warning  [absent if ok]
   swmessage; Tells CyberApp that it is obsolete.  Display this
    text to the user.  [only present if SWSeverity present]
   message;
          Free text of the error/success condition.
          This text is to be displayed to the person
          by the CyberCash application...

          In general this includes: duplicate-id, bad-signature,
          or ill-formed-registration

   #####################################################################
   Signature is of the following fields: no-signature

   #####################################################################
   Explanation:
   responseid is used to suggest a unique ID if the failure was due
       to the requested ID being already in use... If the reason for
       failure was not due to duplicate ID then this field may be
       omitted.
   responseid gives the actual ID with check characters appended if
       success.
   swseverity can warn user of old client application or indicate
       failure due to old or known buggy version.


4.1.3 GA1 - get-application

   Description: Used by CyberApp to get an updated version.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   transaction: 123123213
   date: 19950121100505.nnn



Eastlake, et al              Informational                     [Page 16]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   cyberkey: CC1001
   opaque:
    VHMS611wGkUmR6bKoI+ODoSbl7L5PKtEo6aM88LCidqN+H/8B4xM3LxdwUiLn7rMPkZi
    xOGb+5d1lRV7WeTp21QYlqJr8emc6FAnGd5c0csPmcnEpTFh9xZDJaStarxxmSEwm2mw
    l2VjEUODH6321vjoMAOFQWn7ER0o
   $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

   #####################################################################
   Opaque Key: Generated using CyberCash encrypting public key identified
      in CyberKey.

   #####################################################################
   Opaque Section Contents:

   type: get-application
   swversion: 0.8win

   #####################################################################
   Signature is of the following fields: no signature

   #####################################################################
   Explanation:
   There may not be a customer persona so there is no ID.  There
       may not be a customer public/private key pair so there is
       no signature.  The swversion is mandatory so the server can
       tell what to return.


4.1.4 GA2 - get-application-response

   Description: Return success and URL of up to date copy of CyberApp
       or failure.

   #####################################################################
   Sender: CyberServer
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   transaction: 12312313
   date: 19950110102333.nnn
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==



Eastlake, et al              Informational                     [Page 17]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$


   #####################################################################
   Opaque Key: session key from GA1

   #####################################################################
   Opaque Section Contents:

   type: get-application-response
   server-date: 19950110102334.nnn
   response-code: success/failure/etc.
   message; Text message to be displayed to the user providing more
       information on the success/failure.
   swversion: 0.8win
   application-url: http://foo.cybercash.com/server/0.8WIN.EXE
   application-hash: lSLzs/vFQ0BXfU98LZNWhQ==

   #####################################################################
   Signature: none.

   #####################################################################
   Explanation:
   application-hash is the MD5 of the binary of the application.
   application-url & application-hash omitted on failure.
   swversion is the version being transmitted to the customer.


4.2 Binding Credit Cards

   The CyberCash system is design to give the card issuing organization
   control over whether a card may be used via the CyberCash system.
   The customer, after having registered a persona with CyberCash as
   described above, can then bind each credit card they wish to use to
   their CyberCash persona.  This is done via the BC1 message from the
   customer to their CyberCash server and the BC4 response from the
   server.

4.2.1 BC1 - bind-credit-card

   Description: This is the initial message in the process of binding a
       credit card to a CyberCash persona.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:



Eastlake, et al              Informational                     [Page 18]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   $$-CyberCash-0.8-$$
   id: MyCyberCashID
   date: 19950121100505.nnn
   transaction: 12312314
   cyberkey: CC1001
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: generated from CyberCash encryption key identified in
       CyberKey

   #####################################################################
   Opaque Section Contents:

   type: bind-credit-card
   swversion: 0.8win
   card-number: 1234567887654321
   card-type: mastercard
   card-salt: 46735210
   card-expiration-date: 05/99
   card-name: John Q. Public
   card-street:
   card-city:
   card-state:
   card-postal-code:
   card-country:
   signature:
    tX3odBF2xPHqvhN4KVQZZBIXDveNi0eWA7717DNfcyqh2TpXqgCxlDjcKqdJXgsNLkY7
    GkyuDyTF/m3SZif64giCLjJRKg0I6mqI1k/Dcm58D9hKCUttz4rFWRqhlFaj

   #####################################################################
   signature is of the following fields: id, date, transaction,
       cyberkey, type, swversion, card-number, card-salt,
       card-expiration-date, card-name, card-street, card-city,
       card-state, card-postal-code, card-country

   #####################################################################
   Explanation:
   salt is needed so that the hash stored at the server is less
       informative.  Server just remembers the "prefix" of the card
       number and the hash of the combined card number and salt. If it
       just hashed the card number, it would be recoverable with modest



Eastlake, et al              Informational                     [Page 19]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


       effort by trying to hash all plausible numbers.  We don't want
       to store the card numbers on the server because it would make
       the server files too valuable to bad guys.


4.2.2 BC4 - bind-credit-card-response

   Description: Indicates that the process of binding a credit card
       terminated.  Returns success or failure.

   #####################################################################
   Sender: CyberServer
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   id: mycybercashid
   transaction: 12312314
   date: 19950121100505.nnn
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: Session key from BC1 with same Transaction and ID

   #####################################################################
   Opaque Section Contents:

   type: bind-credit-card-response
   server-date: 19950121100506.nnn
   swseverity: fatal/warning  [absent if ok]
   swmessage; message about obsoleteness of customer software
       to be shown to the customer.  [only present if SWSeverity present]
   response-code: success/failure/etc.
   card-number: 1234567887654321
   card-type: visa
   card-salt: 47562310
   card-expiration-date: 01/99
   card*: [other card* lines to also be given in CH.1 message]
   message; Plain text for the user
       can be multiple lines




Eastlake, et al              Informational                     [Page 20]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   #####################################################################
   Signature is of the following fields: no-signature

   #####################################################################
   Explanation: All the card* lines can be saved as a blob to be
       submitted in CH.1.  card-expiration-date, card-number, card-salt,
       and card-type should always be present.
   Depending on reason for failure, not all fields may be present.


4.3 Customer Credit Card Purchasing Messages

   In general, CyberCash involvement in the credit card purchasing cycle
   starts after the user has determined what they are buying.  When they
   click on the CyberCash payment button, a PR1 message is sent by the
   merchant to the customer as the body of a message of MIME type
   application/cybercash.

   If the customer wishes to proceed, they respond to the merchant  with
   a  CH1.   The merchant responds with a CH2 but between the receipt of
   the CH1 and issuance of the CH2, the  merchant  usually  communicates
   with the CyberCash server via the CM* messages.


4.3.1 PR1 - payment-request

   Description: This message is the first message that is defined
       by CyberCash in the purchase-from-a-merchant process. The
       shopping has completed.  Now we are at the point of paying
       for the purchases.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   type: payment-request
   merchant-ccid: ACME-012
   merchant-order-id: 1231-3424-234242
   merchant-date: 19950121100505.nnn
   note;
     ACME Products

     Purchase of 4 pairs "Rocket Shoes" at $39.95 ea.
     Shipping and handling $5.00




Eastlake, et al              Informational                     [Page 21]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


     Total Price: 164.80

     Ship to:
          Wily Coyote
          1234 South St.
          Somewhere, VA 12345
   merchant-amount: usd 164.80
   accepts: visa:CC001, master:CC001,amex:CC001,JCPenny:VK005,macy:VK006
   url-pay-to: http://www.ACME.com/CybercashPayment
   url-success: http://www.ACME.com/ordersuccess
   url-fail: http://www.ACME.com/orderfail
   merchant-signed-hash:
    a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh
    Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD
   $$-CyberCash-End-lSLzs/vFQ0BXfU98LZNWhQ==-$$

   #####################################################################
   Opaque Key: no opaque section

   #####################################################################
   Opaque Section Contents: no opaque section

   #####################################################################
   merchant-signed-hash is the signature under the merchant's
       private key of the hash of the following fields: type,
       merchant-ccid, merchant-order-id, date, note, merchant-amount,
       accepts, url-pay-to, url-success, url-fail

   #####################################################################
   Explanation:
   This message is signed by the merchant but the customer cannot
       directly verify this signature. When the payment is made, the
       Customer includes the signature with the hash (derived by the
       customer directly) in the payment. If these do not match, the
       CyberCash will not perform the payment function.
   accepts: The client software will only recognized single word card
   name in the accepts field of PR1. For example,
     MasterCard
     AmericanExpress
   are recognized where as
     Master card
     American express
   are not recognized. MasterCard and masterCard are both
   recognized as master card.
   Card type followed by key designator.  For main line credit cards,
       this will be a CC*.  Client can use or ignore the * number as
       it chooses.  For proprietary card, this will be VK* where * is
       the CheckFree key to use (1 based).  Cards separated by comma,



Eastlake, et al              Informational                     [Page 22]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


       key designator follows card type and colon.
   url-pay-to is where the CH1 should be sent.  url-fail and url-success
       are where the browser should look after failure or success.


4.3.2 CH1 - credit-card-payment

   Description: This message represents the presentation of a "credit
       card for payment".

   #####################################################################
   Sender: CyberApp
   Receiver: MerchantApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   type: card-payment
   id: myCyberCashID
   order-id: 1231-3424-234242
   merchant-ccid: ACME-012
   transaction: 78784567
   date: 19950121100505.nnn
   pr-hash: c77VU/1umPKH2kpMR2QVKg==
   pr-signed-hash:
    a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh
    Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD
   cyberkey: CC1001
   opaque:
    iff/tPf99+Tm5P7s3d61jOWK94nq9/+1jOWK9+vr9+b+94n3tYzmiveJ9/+09/334ubg
    3rWM5Ir3ier3/7WM5Ir36+v35v73ife1jOWK94n3/7T3/ffm5uD+7N339/f39/eq3ff3
    9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3
    5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw
    3ard3Q==
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Opaque Key: Created using CyberCash encrypting public key in
       CyberKey.

   #####################################################################
   Opaque Section Contents:
   swversion: 0.8win
   amount: usd 10.00
   card*: [from successful BC4 (includes card-expiration-date,
       card-number, card-type, and card-salt)]
   signature:
    meO38aULnoP09VhTS2E56tnuZBRRlGfbwqaleZ9zNnv7YjExJKBFxuaqYTUDEj427HHh



Eastlake, et al              Informational                     [Page 23]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    mm9BVmHRwCq6+8ylZXixGHI1I9A/ufAMrpqMIi6DS3PRlc8WC3CCWoAHyAqr

   #####################################################################
   signature is under client private key of the following fields:
       type, id, order-id, merchant-ccid, transaction, date,
       pr-hash, pr-signed-hash, cyberkey, swversion, amount,
       card*

   #####################################################################
   Explanation:
   The pr-signed-hash field is the same as the merchant-signed-hash in
       the PR1 message but has a different name for historic reasons.


4.3.3 CH2 - charge-card-response

   Description: Return to customer from a CH1 attempt to pay via credit
       card.  Indicates success/failure.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   type: charge-card-response
   merchant-ccid: ACME-012
   id: myCyberCashID
   transaction: 78784567
   date: 1995121100500.nnn
   merchant-date: 19950121100505.nnn
   merchant-response-code: failure/success/etc.
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==
   pr-signed-hash:
    a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh
    Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD
   merchant-message; This is a message to display to the user from the
       merchant. Can be multiple lines...  Is not secure.
   opaque:  [might not be present, see explanation]
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################



Eastlake, et al              Informational                     [Page 24]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   Opaque Key:   Same customer session key from CH1 passed through CM1
       for ID and Transaction

   #####################################################################
   Opaque Section Contents (from CM.6):

   server-date: 19950121100706.nnn
   amount: usd 10.00
   order-id: 1231-3424-234242
   card*:  [from successful BC4]
   response-code: failure/success/etc.
   swseverity: fatal/warning
   swmessage; Tells CyberApp that it is obsolete.  Display this
    text to the user.  [only present if SWSeverity present]
   message;
          Free text of the error/success condition.
          This text is to be displayed to the customer
          by the CyberCash application...

   #####################################################################
   Signature is of the following fields: no signature

   #####################################################################
   Explanation:
   Opaque section optional because the CH1 to the merchant can fail due
       to bad order-id, date, wrong merchant-ccid, etc., etc. So the
       server may not be involved at all in which case there is no
       mechanism for generating a secure opaque section.  (It could even
       be that merchant attempt to contact the server times out.)
   If transaction makes it through server (via CM*) then
       Response-Code at top level should mirror response-code to
       merchant from server. (Hopefully the same as the
       response-code to customer from server but the merchant can't
       tell that.)
   Note that there can be two messages, one from merchant and one
       from the server.


4.4 Merchant Credit Card Purchasing Messages

   The merchant presents credit card purchases, makes adjustments, and
   the like via the CM* series.  In general, the credit card cycle is
   one of getting authorization for a purchase, then capturing the
   purchase in a batch for clearance, then performing the clearance.  It
   is also possible to void a capture (i.e., remove an item from a
   batch), and process credits (returns). (See section 5.1.)





Eastlake, et al              Informational                     [Page 25]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   Authorizations always come from an acquirer via the response to a CM1
   or CM2 message. If capture is being performed by the acquirer or some
   entity between the CyberCash server and the acquirer, this is done
   via a CM3 or CM2 message depending on the arrangement between the
   merchant and the entity doing the capture.  Returns (credits) are
   handled via message CM5.  Message CM4 is provided for voiding a
   capture or return before the batch is cleared.  CM6 is the message
   format used for responses to all the other CM* messages.

   An MM* series has also been implemented for purely merchant
   originated CyberCash charges as described in section 3.4.7

   Current credit card dispute resolution systems assume that the
   merchant knows the card number.  Thus, to work with these systems,
   special bypass messages have been set up that allow the merchant to
   obtain, for a particular transaction, the information that CyberCash
   otherwise goes to lengths to hide from the merchant.  See sections
   3.4.8 and 3.4.9.  This makes the obtaining os such information by the
   merchant an auditable event.

   Many present day merchants operate in a "terminal capture" mode where
   the authorizations are captured by the merchant and the merchant
   later submits the settlement batch.  Messages have been defined and
   are being implemented so that such merchant captured batches can be
   submitted via CyberCash.


4.4.1 CM1 - auth-only

   Description: This message is used by the merchant to perform an
       authorization operation on the credit card sent in by the
       customer.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-69
   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   merchant-cyberkey: CC1001
   cyberkey: CC1001
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV



Eastlake, et al              Informational                     [Page 26]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   merchant-opaque:
    6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf
    aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO
    dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj
    j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84
    F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ
    mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr
    mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Merchant-Opaque Section Contents:

   type: auth-only
   order-id: 12313424234242
   merchant-amount: usd 10.00
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==
   pr-signed-hash:
    a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh
    Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn
   merchant-signature:
    v4qZMe2d7mUXztVdC3ZPMmMgYHlBA7bhR96LSehKP15ylqR/1KwwbBAX8CEqns55UIYY
    GGMwPMGoF+GDPM7GlC6fReQ5wyvV1PnETSVO9/LAyRz0zzRYuyVueOjWDlr5

   #####################################################################
   merchant-opaque key is generated from the CyberCash encrypting public
        key identified in merchant-cyberkey.

   Customer opaque section (Opaque) - see CH1.

   #####################################################################
   Opaque Section Contents & Signature:  (exactly as in CH1)

   swversion: 0.8win
   amount: usd 10.00
   card*: [from successful BC4 (includes card-expiration-date,
       card-number, and card-salt)]
   signature:
    48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK
    +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

   #####################################################################



Eastlake, et al              Informational                     [Page 27]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   merchant-signature is on the following fields: merchant-ccid,
       merchant-transaction, merchant-date, merchant-cyberkey, type,
       order-id, merchant-amount, pr-hash, pr-signed-hash, id,
       transaction, date, cyberkey

   Customer Signature: see CH1

   #####################################################################
   Explanation:
   The merchant signature ensures integrity of the majority of the
       message.  validation of the customer signature ensures that the
       customer opaque part was not tampered or replaced.


4.4.2 CM2 - auth-capture

   Description: Do authorization and actually enters charge for
       clearance. Message just like CM1 except for different
       type.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   [exactly the same as CM1 except

   type: auth-capture

   ]


4.4.3 CM3 - post-auth-capture

   Description: Captures a charge previously authorized. Message is
       the same as CM1 except that it also has an authorization-code
       field (which is also included in the signature) and the type
       is different.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-012



Eastlake, et al              Informational                     [Page 28]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   merchant-cyberkey: CC1001
   cyberkey: CC1001
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   merchant-opaque:
    6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf
    aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO
    dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj
    j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84
    F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ
    mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr
    mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Merchant-Opaque Section Contents:

   type: post-auth-capture
   authorization-code: a12323
   order-id: 1231-3424-234242
   merchant-amount: usd 10.00
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==
   pr-signed-hash:
    a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh
    Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn
   merchant-signature:
    vxyEF1ZHn5Rgmtms3H3t/+UB6RAvZQA1AdddjvlS0H75N1x83FyJuh8V9Ok6t4EUQQZ6
    Mnptzc6phJi3Ar0s0oumELsdc8upJdXpNpJV021PGJXfDKfHP0heJIWLodXr

   #####################################################################
   merchant-opaque key is generated from the CyberCash encrypting public
        key identified in merchant-cyberkey.

   Customer opaque section (Opaque) - see CH1.

   #####################################################################
   Opaque Section Contents & Signature:  (exactly as in CH1)

   swversion: 0.8win



Eastlake, et al              Informational                     [Page 29]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   amount: usd 10.00
   card*: [from successful BC4 (includes card-salt, card-number,
       and card-expiration)]
   signature:
    48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK
    +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

   #####################################################################
   merchant-signature is on the following fields: merchant-ccid,
       merchant-transaction, merchant-date, merchant-cyberkey, type,
       authorization-code, order-id, merchant-amount, pr-hash,
       pr-signed-hash, id, transaction, date, cyberkey

   #####################################################################
   Explanation:
   The merchant signature ensures integrity of the majority of the
       message validation of the customer signature ensures that the
       customer opaque part was not tampered or replaced.


4.4.4 CM4 - void

   Description: Voids out a charge/return if received before
       clearance.  Message is the same as CM1 except that it also has
       a retrieval-reference-number field (which is also included in the
       signature) and the type is different.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-012
   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   merchant-cyberkey: CC1001
   cyberkey: CC1001
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   merchant-opaque:
    6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf
    aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO



Eastlake, et al              Informational                     [Page 30]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj
    j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84
    F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ
    mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr
    mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Merchant-Opaque Section Contents:

   type: void
   retrieval-reference-number: 432112344321
   order-id: 1231-3424-234242
   merchant-amount: usd 10.00
   pr-hash: WATCQuH2q17lRuoxD78YBg==
   pr-signed-hash:
    8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC
    kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn
   Merchant-Signature: lkjladjslkjflsakjflkjsdljflsakjflkjsdljflsakjflkj
       flsakjflkjsdljflsakjflkjsdljflsajflksdjflksdjflsdjssf=

   #####################################################################
   Merchant-Opaque key is generated from the CyberCash encrypting public
        key identified in Merchant-CyberKey.

   Customer opaque section (Opaque) - see CH1.

   #####################################################################
   Opaque Section Contents & Signature:  (exactly as in CH1)

   swversion: 0.8win
   amount: usd 10.00
   card*: [from successful bc4 (includes card-salt, card-number,
       and card-expiration)]
   signature:
    48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK
    +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

   #####################################################################
   merchant-signature is on the following fields: merchant-ccid,
       merchant-transaction, merchant-date, merchant-cyberkey, type,
       retrieval-reference-number, order-id, merchant-amount, pr-hash,
       pr-signed-hash, id, transaction, date, cyberkey

   #####################################################################



Eastlake, et al              Informational                     [Page 31]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   Explanation:
   The merchant signature ensures integrity of the majority of the
       message.  Validation of the customer signature ensures that the
       customer opaque part was not tampered or replaced.


4.4.5 CM5 - return

   Description: Reverse a previous charge.  Really sort of a negative
       charge.  Message just like CM1 except for different type.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   [exactly the same as CM1 except

   type: return

   ]


4.4.6 CM6 - charge-action-response

   Description: This receipt is given to the merchant as a receipt
       for a completed charge action.  Indicates success/failure/etc.

   #####################################################################
   Sender: CyberServer
   Receiver: MerchantApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-012
   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   merchant-opaque:
    6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf
    aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO



Eastlake, et al              Informational                     [Page 32]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj
    j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84
    F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ
    mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr
    mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Merchant-Opaque Key: Session key same as that of CM1/2/3/4/5 for
       same Merchant-Transaction and Merchant-CCID.

   Opaque Key:  Same customer session key from CH1 passed through CM*
       for ID and Transaction

   #####################################################################
   Merchant-Opaque Section Contents:

   type: charge-action-response
   server-date: 19950121100706.nnn
   action-code: XXX  [per ISO 8583]
   response-code: failure/success/etc.
   order-id: 1231-3424-234242
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==
   pr-signed-hash:
    8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC
    kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov
   retrieval-reference-number: 432112344321
   authorization-code: a12323
   card-hash: 7Tm/djB05pLIw3JAyy5E7A==
   {
   card-prefix: nnxxxx  [Returned if merchant is not full-PAN]
   }
       or
   {
   card-number: 1234567890123456  [Returned if merchant is full-PAN]
   }
   expiration-date: 12/34  [always present]
   merchant-swseverity: fatal/warning
   merchant-swmessage; Message for merchant about out of date
       protocol number in $$ start line of merchant message.
   merchant-message;
          Free text of the error/success condition.
          This text is for the merchant from the server...
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn

   Opaque (Customer) contents:



Eastlake, et al              Informational                     [Page 33]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   server-date: 19950121100706.nnn
   amount: usd 10.00
   order-id: 1231-3424-234242
   card*: [from successful BC4]
   response-code: failure/success/etc.
   swseverity: fatal/warning
   swmessage; Tells CyberApp that it is obsolete display this
    text to the user.  [only present if SWSeverity present]
   message;
          Free text of the error/success condition.
          This text is to be displayed to the customer
          by the CyberCash application...

   #####################################################################
   Signature is of the following fields: no signature

   #####################################################################
   Explanation:
   retrieval-reference-number is needed for voids. authorization-code
       is needed for post-auth-capture.  These fields are each only
       present in the CM6 if they were returned by the bank which
       depends on what operation was being done.
   card-prefix is first two and last four digits of card-number.
   At merchant's bank's discretion the card-number or card-prefix is
       returned.
   card-hash is really the hash of the full card number and the salt
       provided by the customer.  card-hash is needed so the merchant
       can, if they wish, sort customer transactions by card without
       knowing the card number.
   card* is the card* fields delivered in the CM* messages being
       responded to.  They appear in alphabetic order.
   server-date duplicated in customer opaque area for security.
   {}'s in column one just for clarity of alternatives and do not
       actually appear in the message.
   []ed comments appear after some fields.


4.4.7 The MM* Message Series

   The CM* message series above is the primary CyberCash credit card
   purchase system for securely handling charges from CyberCash
   customers.  However, merchants, who are authorized by their acquiring
   bank to accept such charges, may also receive telephone, mail, and
   over-the-counter sales.  To avoid any necessity for the merchant to
   have a second parallel system to handle these charges, an MM1 through
   MM6 message series is defined and has been implemented for these less
   secure transactions.




Eastlake, et al              Informational                     [Page 34]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   The MM* messages look very similar to the CM* series but the
   "customer opaque" section is actually signed by the merchant and no
   separate customer CyberCash ID or prior card binding is required.
   The MM* message examples are omitted here in the interests of
   brevity.

4.4.8 CD1 - card-data-request

   Description: Used by merchant to get card-number, etc., if
       information needed by merchant to resolve a dispute.

   #####################################################################
   Sender: MerchantApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-69
   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   merchant-cyberkey: CC1001
   cyberkey: CC1001
   opaque:
    EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb
    nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV
    4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs
    rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo
    QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==
   merchant-opaque:
    6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf
    aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO
    dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj
    j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84
    F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ
    mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr
    mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Merchant-Opaque Section Contents:

   type: card-data-request
   password: xyzzy
   server-date: 19950121100505.nnn  [optional]
   order-id: 12313424234242
   merchant-amount: usd 10.00
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==



Eastlake, et al              Informational                     [Page 35]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   pr-signed-hash:
    IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy
    +X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn
   merchant-signature:
    8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC
    kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

   #####################################################################
   merchant-opaque key is generated from the CyberCash encrypting public
        key identified in merchant-cyberkey.

   Customer opaque section (Opaque) - see CH1.

   #####################################################################
   Opaque Section Contents & Signature:  (exactly as in CH1)

   swversion: 0.8win
   amount: usd 10.00
   card*: [from successful BC4 (includes card-expiration-date,
       card-number, and card-salt)]
   signature:
    48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK
    +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

   #####################################################################
   merchant-signature is on the following fields: merchant-ccid,
       merchant-transaction, merchant-date, merchant-cyberkey, type,
       password, server-date, order-id, merchant-amount, pr-hash,
       pr-signed-hash, id, transaction, date, cyberkey

   Customer Signature: see CH1

   #####################################################################
   Explanation:
   [see also CM1 explanation]
   The merchant may need to know the card involved and other
       information in order to resolve a disputed transaction.  This
       information is all contained in the original CH1 embedded in the
       CM1 for the transaction.  If the merchant saves the CM1 and other
       transaction information, they can send this CD1 message to the
       server.  While this reduces the pass through confidentiality of
       the system, the merchant is then on record as asking for this
       particular credit card number and excessive CD1's from a merchant
       can be flagged.
   password is an extra level of security intended to be manually entered



Eastlake, et al              Informational                     [Page 36]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


       at the merchant to authorize the unusual action.  Server stores a
       hash of the merchant-ccid and the password.


4.4.9 CD2 - card-data-response

   Description: Respond to CD1 with failure or with success and card
       data.

   #####################################################################
   Sender: CyberServer
   Receiver: MerchantApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: ACME-012
   merchant-transaction: 123123
   merchant-date: 19950121100705.nnn
   merchant-opaque:
    t731/86R72ZLrqHLIf0VG6m3ybvs+dG6K705L8LFKEXgCti0NGjK83CwDsUdiso7U1JP
    2Z0BClVHLmhIBY7+QXx5iCEGHy8JKC9IWyNNi2O/OOIDgLeJAkMSZYbNQrSKViY34imS
    0s7Q6uDk9wV0fixjvRBuNO2B7urWWsqfkLOYDnHy0RvhyUzYxLrMaTX+/6IkyU5Z0lH3
    BXYBUNV8DgitEjgLXmyWuXRDlEBN02yeZgsFRm9GmuBHfCTySm2XqnifizpmKMUa9UiH
    onNx9W86fuBdcJF7CJgH5Gct2M/dx/f2VpoRkmeSmWxFrYi8wgtvddSXF9my40NZ8WZz
    CEUEvQhcmruopwEeehv+bejc3fDDZ23JKrbhlZ17lSvFR14PKFsi32pXFqTO0ej9GTc5
    L6c8nM3tI1qdHNCe0N5f7ASdKS0tYSxAYJLIR6MqPrXjNJEaRx7Vu1odMlkgrzGOV1fo
    5w33BQHK3U2h+1e5zYBeHY3ZYG4nmylYYXIye4xpuPN4QU0dGrWZoImYE44QOwjd5ozl
    xulPBjj6cpEI/9wTwR3tpkBb4ZfYirxxnoj9JUkPK9Srv9iJ
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Opaque Key: session key from CD1.

   #####################################################################
   Opaque Section Contents:

   type: card-data-response
   server-date: 19950121100706.nnn
   response-code: failure/success/etc.
   order-id: 1231-3424-234242
   pr-hash: 7Tm/djB05pLIw3JAyy5E7A==
   pr-signed-hash:
    IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy
    +X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK
   card-hash: 7Tm/djB05pLIw3JAyy5E7A==
   card-number: 4811123456781234
   card-type: visa



Eastlake, et al              Informational                     [Page 37]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   card-name: John Q. Public
   expiration-date: 01/99
   merchant-swseverity: fatal/warning
   merchant-swmessage; Message for merchant about out of date
       protocol number in $$ start line of merchant message.
   merchant-message;
          Free text of the error/success condition.
          This text is for the merchant from the server...
   id: myCyberCashID
   transaction: 78784567
   date: 19950121100505.nnn

   #####################################################################
   Signature is of the following fields: no signature.

   #####################################################################
   Explanation:
   This normally returns selected fields from the decoding of the
       opaque part of a CH1 as sent to the server in a CD1.


4.5 Utility and Error Messges

   A number of utility, status query, and special error reporting
   messages have also been found necessary in implementing the CyberCash
   system.

   It is desirable to be able to test connectivity, roughly synchronize
   clocks, and get an initial determination of what client protocol and
   software versions are accepted.  This is done via the P1 client to
   server message and its P2 server to client response.

   Clients need to be able to determine the status of earlier
   transactions when the client or merchant has crashed during or has
   suffered data loss since the transaction.  Two transaction query
   messages are defined, TQ1 and TQ2.  One just queries and the other
   also cancels the transaction, if it has not yet completed.  The
   response to both of these messages is a TQ3 response from the server.

   Since the system operates in a query response mode, there are two
   cases where special error messages are needed.  If a query seems to
   be of an undeterminable or unknown type, the UNK1 response error
   message is sent.  If a response seems to be of an undeterminable or
   unknown type or other serious error conditions occur at the client or
   merchant which should be logged at the CyberCash server, the DL1 or
   DL2 diagnostic log message is submitted by the client or merchant in
   question respectively.




Eastlake, et al              Informational                     [Page 38]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


4.5.1 P1 - ping

   Description: Very light weight check that we have connectivity from
       the customer to the server.  Does no crypto to minimize
       overhead.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:
   $$-CyberCash-0.8-$$
   type: ping
   id: myCyberCashID  [optional]
   transaction: 123123213
   date: 19950121100505.nnn
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Explanation:
   id optional as persona may not have been set up yet.


4.5.2 P2 - ping-response

   Description: Response to the P1 light weight ping.  Does no
       crypto to minimize overhead.

   #####################################################################
   Sender: CyberServer
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   type: ping-response
   id: myCyberCashID  [if present in P1]
   transaction: 12312313
   date: 19950121100505.nnn
   server-date: 19950121100506.nnn
   swseverity: fatal/warning  [absent if ok]
   swmessage; Tells CyberApp that it is using an obsolete protocol.
        Display this text to the user.  [only present if SWSeverity
       present]
   response-code: success/failure/etc.
   message;
          Free text of the error/success condition.
          This text is to be displayed to the sender



Eastlake, et al              Informational                     [Page 39]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


          by their CyberCash application...
   supported-versions: 08.win, 0.81win, 0.8mac
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Explanation:
   swversion does not appear in P1 for security reasons so
       swseverity and swmessage appear only if the server can tell
       that things are old from the $$ header protocol version.
   supported-versions lets client know as soon as possible what
       versions are supported and, by implication, which are not. Does
       not compromise security by having client say what version it
       is.


4.5.3 TQ1 - transaction-query

   Description: Client query to server for Transaction status.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   id: MyCyberCashID
   date: 19950121100505.nnn
   transaction: 12312314
   cyberkey: CC1001
   opaque:
    VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl
    21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V
    L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur
    3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c
    bnf+muO0+kiNPXVvEzRrO8o=
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: generated from CyberCash encryption key identified in
       CyberKey

   #####################################################################
   Opaque Section Contents:

   type: transaction-query
   swversion: 0.8win
   begin-transaction: 1234



Eastlake, et al              Informational                     [Page 40]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   end-transaction: 4321
   signature:
    jJfFsKvOxLaV87gxu7lIPet3wIDwh1H2F61reYC9jmUrS6WAtUVFG9aCNuTEBoMixF0X
    vD5oPfyheJRIlnL6i0c4o/bfyO3edKAacmWjTmKt6/4y9p3qgvKkSX8r9aym

   #####################################################################
   signature is of the following fields: id, date, transaction,
       cyberkey, type, swversion, begin-transaction,
       end-transaction

   #####################################################################
   Explanation:
   This is a client status query of a previous transaction or
       transactions.
   begin-transaction and end-transaction can be the same.


4.5.4 TQ2 - transaction-cancel

   Description: Client query to server for Transaction
       cancellation/status.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   id: MyCyberCashID
   date: 19950121100505.nnn
   transaction: 12312314
   cyberkey: CC1001
   opaque:
    VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl
    21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V
    L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur
    3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c
    bnf+muO0+kiNPXVvEzRrO8o=
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: generated from CyberCash encryption key identified in
       CyberKey

   #####################################################################
   Opaque Section Contents:




Eastlake, et al              Informational                     [Page 41]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   type: transaction-cancel
   swversion: 0.8win
   begin-transaction: 1234
   end-transaction: 4321
   signature:
    kD7DEav2uLQIYMtP9gbhYaBUpB2a5whNwnK2eXbbyTCf56F6dl3DIVf7D8Z4WxbY2YZn
    ByRIKeqlhmss7fbdnBiDYmKfOuc+I4bi/Oslml5riaciQhTd2JdHG+PCcHwZ

   #####################################################################
   signature is of the following fields: id, date, transaction,
       cyberkey, type, swversion, begin-transaction, end-transaction

   #####################################################################
   Explanation:
   This is a client attempt to cancel a previous transaction or
       transactions.
   begin-transaction and end-transaction can be the same.

   The transaction-cancel transaction (TQ.2) is defined between the
   client and the server.  This transaction permits the client to
   query the status of an operation and to stop the operation from
   occurring if it has not already occurred.


4.5.5 TQ3 - transaction-response

   Description: Reports generated by a TQ1 or TQ2

   #####################################################################
   Sender: CyberServer
   Receiver: CyberApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   id: mycybercashid
   date: 19950121100505.nnn
   transaction: 12312314
   server-date: 19950121100505.nnn
   opaque:
    eFXRL+H0J5q318M21wRdtcbhu9WCyLysQkeF9oIcjtbstymx343bbt0EAtU1gcJaUKJZ
    3skgvwrhcxU4bFcE68OPlUXAvLq10I3MczPYPsiGrsU0K4bZtQvDZmn727QQAfONBm5s
    s1yjIha+Fj481BJQs0CTYc3ju90lAjCYgirXtnnR6yJXoDO75b7UjthvHSnrTWVZvktX
    PvTuUCYzbXSFoYvwFM3Y+yHqSHlmWutYKQpYze8zbUSDQfmwTCJyw3aY2JasZ+xMP/CD
    JWbCA+gCLBYCnvzM/ExKTZTFD3xr5JBfNbV4p6CiK6lsfRFD7maAK6TSVnWjwCEJNpOv
    fyllfWD04fT7LINQcjJiQK1Pk/912Tk6Q35eRaQZorwv2hnY/7By2OkPyFdAqFL+D0H6
    TqzxmdEjEFKxi/PPT1+Cs/Nszy8wZzaGg8iWATfARY6stl+02dDhwOoFXSBNvchlVrcI
    IlvhumSIQs29Pntj3DbkYo4IEmmN/qi1vnzld22q7lA1q/CQakyc7jlQUFISx76buqwy



Eastlake, et al              Informational                     [Page 42]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


    35XiC9Yn8flE4Va14UxMf2RCR1B/XoV6AEd64KwPeCYyOYvwbRcYpRMBXFLyYgWM+ME1
    +yp7c66SrCBhW4Q8AJYQ+5j5uyO7uKyyq7OhrV0IMpRDPjiQXZMooLZOifJPmpvJ66hC
    VZuWMuA6LR+TJzWUm4sUP9Zb6zMQShedUyOPrtw1vkJXU1vZ5aI8OJAgUcLEitcD+dsY
    Df4CzA00fC10POkJ58HZB/pSBfUrHAa+IqMHyZkV/HBi9TjTwmktJi+8T9orXS0jSvor
    dMTGWn0ifETy2VXt
   $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$


   #####################################################################
   Opaque Key: Session key from TQ1/TQ2 with same Transaction and ID.

   #####################################################################
   Opaque Section Contents:

   type: transaction-response
   response-code: success/failure/etc.
   message; general free form text message from server to
       customer....
   swseverity: fatal/warning
   swmessage; Message indicating that CyberApp software is obsolete.
       May be multiple lines.
   report-fee: usd 0.15  [if non-zero]

   transaction-1: old-transaction-number
   transaction-status-1: success/failure/pending/cancelled/etc.
   server-date-1: 19951212125959.nnn
   date-1: 19950121100505.nnn
   type-1: auth-only/etc.

   #####################################################################
   Signature is of the following fields:  no signature

   #####################################################################
   Explanation:
   Report-fee is the notification that this report cost a fee and is
       only present if there is a fee.
   There can be multiple transaction for the same transaction number as
       there could have been a auth, post-auth-capture, void, etc.

   Terms
       "original transaction" refers to the payment or other transaction
   that is being queried or canceled.
          Note: this transaction may not actually reside at the server.
       "request" refers to the requesting TQ.2 or TQ.1 message

   id: id from the request message
   date: date from the request message
   transaction: transaction from the request message



Eastlake, et al              Informational                     [Page 43]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   server-date: current date/time
   type: transaction-response
   response-code: response code for request message, can be one of:
       "success" means the request message was processed.  Does not imply
       query or cancellation status of the request.
       "failure-hard" means that the request message was not processed
       due to being ill-formed or otherwise inoperable.
       "failure-swversion" means that the request message was not
       processed due to software revision problems.
   message: the message applies only to the TQ transaction, not to the
       status of the transactions being queried or canceled.  The
       message is provided according to the response-code as: "success"
       - message is omitted. "failure-hard" - use standard hard failure
       message. "failure-swversion" - use standard swversion message for
       fatal
   swseverity: applies to request message
   swmessage: applies to request message
    -- per query/cancel fields ('N' is a series from 1 to N) --
   transaction-N: transaction number of original transaction, or if
       the original transaction is not present in server the transaction
       number that the query / cancel request refers to
   transaction-status-N: status of original transaction, may be one of:
       "success" the original transaction was successfully processed.
       If request was TQ.2, cancellation is not performed.
       "failure" the original transaction was not successfully processed.
        If request was TQ.2, cancellation is not performed (however,
       there is nothing to cancel, so it's all the same to the customer
       app).
       "pending" the original transaction is still being processed and
       final disposition is not known.
   "canceled" the original transaction has been canceled by the server.
       Later arrival of the original transaction will not be processed,
       but will be returned with a "failure-canceled" returned.
   server-date-1: server-date field from original transaction or
       omitted if original transaction is not present in the server"
   date-1: date field from original transaction or omitted if original
       transaction is not present in the server"
   type-1: type field from original transaction or omitted if original
       transaction is not present in the server"


4.5.6 UNK1 - unknown-error

   Description: This is the response sent when the request is so
       bad off you can't determine what type it is or the type is
       unknown to you.  Sent from Merchant to Client or from Server
       to Merchant or from Server to Client.




Eastlake, et al              Informational                     [Page 44]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   #####################################################################
   Sender: MerchantApp or CyberServer
   Receiver: CyberApp or MerchantApp
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   type: unknown-error
   unknown-error-message:
       Text message of error condition to display to user.  (CyberCash
       wrapper not found, wrapper integrity check fails, unknown protocol
       version specified, unknown type specified, etc.)
   {
   server-date: 19950121100506.nnn  [if sent by server]
   }
       or
   {
   merchant-date: 19950121100506.nnn  [if sent by merchant]
   }
   x-id: mycybercashID
   x-transaction: 123123213
   x-date: 19950121100505.nnn
   x-cyberkey: CC1001
   x-opaque:
    2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G
    9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7
    TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw
    5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX
    GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm
    lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy
    Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW
   $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

   #####################################################################
   Opaque Key: see explanation

   #####################################################################
   Opaque Section Contents: see explanation

   #####################################################################
   Signature is of the following fields: see explanation

   #####################################################################
   Explanation:
   This message is sent as a response when you can't find or understand
       even the type of a message to you.  It will always have type and
       unknown-error-message fields at the beginning.  Any fields from
       the request that are parseable are simply echoed back in the UNK1



Eastlake, et al              Informational                     [Page 45]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


       message with "x-" prefixed to it.  Thus, if an x-opaque appears,
       it was whatever the opaque was in the original request, etc.  If
       you can decrypt the opaque section, you don't want to put the
       results here in the clear!
   {}'s in the first column are to group alternatives only and do not
       appear in the message.
   Since the customer originates exchanges with merchant and server
       and merchant originates exchanges with server, this message
       will only be emitted from the merchant to the customer or the
       server to the customer or merchant. It should generally just
       be logged for debugging purposes.
   You may need to watch out for denial of service via forged or
       replayed UNK1 messages.


4.5.7 DL1 - diagnostic-log

   Description: Client diagnostic log of bad message from either
       merchant or server.

   #####################################################################
   Sender: CyberApp
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   id: MyCyberCashID
   date: 19950121100505.nnn
   transaction: 1234
   cyberkey: CC1001
   opaque:
    2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G
    9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7
    TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw
    5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX
    GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm
    lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy
    Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################
   Opaque Key: generated from CyberCash encryption key identified in
       CyberKey

   #####################################################################
   Opaque Section Contents:




Eastlake, et al              Informational                     [Page 46]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   type: diagnostic-log
   message: incorrect order-id
   swversion: 0.8win

   x-type: original-message-type
   x-transaction: original-transaction-number
   x-opaque: [if can't decrypt]
    9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3
    5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

   #####################################################################
   Explanation:
   Client application does not expect a response for this message. The
       decrypted original message will be in the opaque section unless
       decryption fails. If decryption fails then un-decrypted opaque
       in the original will be sent.
   This message will be sent to a different script or socket or host
       than normal messages so that it will just be absorbed and never
       generate an UNK1 response or anything, even if this message
       itself is screwed up.


4.5.8 DL2 - merchant-diagnostic-log

   Description: Merchant diagnostic log of bad message from  server.

   #####################################################################
   Sender: CyberMerchant
   Receiver: CyberServer
   #####################################################################
   Sample Message:

   $$-CyberCash-0.8-$$
   merchant-ccid: MyCyberCashID
   merchant-transaction: 1234
   merchant-date: 19950121100505.nnn
   merchant-cyberkey: CC1001
   merchant-opaque:
    2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G
    9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7
    TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw
    5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX
    GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm
    lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy
    Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW
   $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

   #####################################################################



Eastlake, et al              Informational                     [Page 47]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   Opaque Key: generated from CyberCash encryption key identified in
       CyberKey

   #####################################################################
   Opaque Section Contents:

   type: merchant-diagnostic-log
   server-date:  19950121100505.nnn  [optional]
   message: incorrect order-id

   x-type: original-message-type
   x-transaction: original-transaction-number
   x-opaque: [if can't decrypt]
    9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3
    5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

   #####################################################################
   Explanation:
   Merchant application does not expect a response for this message. The
       decrypted original message will be in the opaque section unless
       decryption fails. If decryption fails then un-decrypted message
       will be sent.
   This message will be sent to a different script or socket or host
       than normal messages so that it will just be absorbed and never
       generate an UNK1 response or anything even if this message
       itself is screwed up.


4.6 Table of Messages Described

   The following 31 messages are described in this document.

   C = Customer App, M = Merchant App, S = CyberCash Server

   FLOW  SECTION  NAME

   C->S   4.2.1   BC.1 bind-credit-card
   S->C   4.2.2   BC.4 bind-credit-card-response

   C->M   4.3.2   CH.1 credit-card-payment
   M->C   4.3.3   CH.2 credit-card-response

   M->S   4.4.8   CD.1 card-data-request
   S->M   4.4.9   CD.2 card-data-response

   M->S   4.4.1   CM.1 auth-only
   M->S   4.4.2   CM.2 auth-capture
   M->S   4.4.3   CM.3 post-auth-capture



Eastlake, et al              Informational                     [Page 48]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   M->S   4.4.4   CM.4 void
   M->S   4.4.5   CM.5 return
   S->M   4.4.6   CM.6 charge-action-response

   C->S   4.5.7   DL.1 diagnostic-log
   M->S   4.5.7   DL.2 merchant-diagnostic-log

   C->S   4.1.3   GA.1 get-application
   S->C   4.1.4   GA.2 get-application-response

   M->S   4.4.7   MM.1 merchant-auth-only
   M->S   4.4.7   MM.2 merchant-auth-capture
   M->S   4.4.7   MM.3 merchant-post-auth-capture
   M->S   4.4.7   MM.4 merchant-void
   M->S   4.4.7   MM.5 merchant-return
   S->M   4.4.7   MM.6 merchant-charge-action-response

   C->S   4.5.1   P.1 ping
   S->C   4.5.2   P.2 ping-response

   M->C   4.3.1   PR.1 payment-request

   C->S   4.1.1   R.1 registration
   S->C   4.1.2   R.2 registration-response
   C->S   4.5.3   TQ.1 transaction-query
   C->S   4.5.4   TQ.2 transaction-cancel
   S->C   4.5.5   TQ.3 transaction-response

   S->C, S->M, M->C
          4.5.6   UNK.1 unknown-error

5. Future Development

   CyberCash is extending the facilities available through the CyberCash
   system.  We are committed to implementing a full cash system,
   including efficient transfer of small amounts of money, the extension
   of the credit card system to handle terminal capture and clearances,
   and other improvements.

5.1 The Credit Card Authorization/Clearance Process

   There are six steps in credit card processing as listed below.  The
   first four are always involved if a transacation is completed.  The
   fifth and sixth are optional.

   (1) authorization: merchant contacts their acquiring back which
       normally contacts the card issung bank and returns to the
       merchant an approval/guarantee or a disapproval.  This



Eastlake, et al              Informational                     [Page 49]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


       temporarily decreases the available credit on the card.
   (2) capture: the charge information for a purchase is entered by
       the merchant into a batch.
   (3) clearance: a batch of items is processed.  This actually causes
       the items in the batch to appear on credit card statements as
       sent by the issuing bank to its carholders.
   (4) settlement: the actual interbank transfer of net funds.
   (5) void: the merchant undoes step 2 (or 6) and causes a charge (or
       credit) to be removed from a batch.  Must be done before the
       batch is processed.
   (6) credit: the merchant causes a "negative charge" or credit to be
       entered into a batch.  This will appear on the cardholders
       statement.

   The fourth step, settlement, is entirely within the banking community
   and does not concern us here.  CyberCash 0.8 provides messages to do
   1, 1&2, 2, 5, and 6.  This is adequate for credit card processor
   systems where the batch is accumulated at the bank or between the
   bank and the merchant.  CyberCash 0.8 supports such "host capture"
   systems.  Other credit card processor systems require the merchant to
   accumulate the batch.  Such systems are frequently referred to as
   "terminal capture".  This makes actions 2, 5, and 6 internal to the
   merchant but requires messages to perform action 3.  Such batch
   clearance messages will be included in future versions of the
   CyberCash merchant and server software.

5.2 Lessons Learned

   The continuing rapid development of the CyberCash system is an
   interesting experience.  The system must deal with many existing
   browsers and legacy banking systems.  Existing credit card processors
   that convey transactions to acquiring banks have complex and varied
   interfaces.  The sophistication of security attacks on the Internet
   is growing rapidly.

   In the face of such a rapidly changing environment, it was essential
   to adopt a general message framework so that messages and fields
   could be added as they were found necessary.  Any attempt to reduce
   the system to a small number of perfectly opimized messages in
   advance would have doomed the system to failure.  (As of mid-October
   1995, the total number of CyberCash messages defined, including those
   planned for cash and microcash, enhancements to the credit card
   system, and some old messages being phased out in favor of improved
   replacements, is just over a hundred.)

   Flexible operational and error handing facilities are also, as usual,
   the bulk of the system.  Version numbering and tracking has proved to
   be quite important and merchant versioning is being added.



Eastlake, et al              Informational                     [Page 50]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   Use of text for messages has proven very beneficial.  This makes it
   possible to easily deal with messages using common everyday tools
   such as text editors and spead sheets.  Use of binary TLV (type,
   length, value) encoding or the like is certainly possible but imposes
   a significantly higher level of complexity on every tool that has to
   deal with the messages.

   Encryption and decryption impose some difficulties in development.
   Any confusion about decryption keys or algorithms will render
   encrypted material meaningless and tools are needed to provide
   decyrption for debugging outside of normal program operation.  But
   this pales compared with the stringencies imposed by signatures.  All
   parts of the system must have absolutely identical ideas as to the
   exact bit patterns to be hashed or signed and their exact order.
   Seemingly trivial differences in capitalization, punctuation,
   framing, order, or the like, in addition to any disagreement about
   keys or algorithms, will lead to frustrating failures of signatures
   to match.  Passing signatures through an intermediate system and
   checking them at a third system, as is done when a customer's
   signature is passed through a merchant and checked at the CyberCash
   server, compounds the problem.

6. Security Considerations

   The CyberCash Version 0.8 Credit Card system provides substantial
   protection to payment messages as described above in sections 1.2,
   2.2.4, and 2.2.5.  However, it provides no privacy to the shopping
   interaction which is essentially outside of its purview.  It also
   provides no protection against dishonest merchants other than those
   normally available with credit card purchases.  Care must be taken to
   avoid loss of control of the machines on which parts of this system
   runs or security may be compromised.

   Current credit card dispute  resolution  systems  require  deliberate
   bypasses be implemented for some of the security normally established
   by CyberCash as described in section 3.4.

References

   [ISO 4217] - Codes for the representation of currencies and funds

   [ISO 8583] - Financial transaction card originated messages -
   Interchange message specifications, 1993-12-15.

   [RFC 822] - Crocker, D., "Standard for the format of ARPA Internet
   text messages", STD 11, RFC 822, UDEL, August 1982.





Eastlake, et al              Informational                     [Page 51]
^L
RFC 1898                 CyberCash Version 0.8             February 1996


   [RFC 1521] - Borenstein, N., and N. Freed, "MIME (Multipurpose
   Internet Mail Extensions) Part One: Mechanisms for Specifying and
   Describing the Format of Internet Message Bodies", RFC 1521,
   Bellcore, Innosoft, September 1993.

   [RFC 1766] - Alvestrand, H., "Tags for the Identification of
   Languages", UNINETT, March 1995.

Authors' Addresses

   Donald E. Eastlake 3rd
   CyberCash, Inc.
   318 Acton Street
   Carlisle, MA 01741 USA

   Phone:   +1 508 287 4877
   EMail:   dee@cybercash.com


   Brian Boesch
   CyberCash, Inc.
   2100 Reston Parkway, Suite 430
   Reston, VA 22091 USA

   Phone:   +1 703-620-4200
   EMail:   boesch@cybercash.com


   Steve Crocker
   CyberCash, Inc.
   2100 Reston Parkway, Suite 430
   Reston, VA 22091 USA

   Phone:   +1 703-620-4200
   EMail:   crocker@cybercash.com


   Magdalena Yesil
   CyberCash, Inc.
   555 Twin Dolphin Drive, Suite 570
   Redwood City, CA 94065 USA

   Phone:   +1 415-594-0800
   EMail:   magdalen@cybercash.com







Eastlake, et al              Informational                     [Page 52]
^L