Knowledge

Information flow (information theory)

Source đź“ť

22: 1602: 141:. For example, access control lists of file systems prevent unauthorized file access, but they do not control how the data is used afterwards. Similarly, cryptography provides a means to exchange information privately across a non-secure channel, but no guarantees about the confidentiality of the data are given once it is decrypted. 1348: 2443:"No sensitive upgrade" halts the program whenever a High variable affects the value of a Low variable. Since it simply looks for expressions where an information leakage might happen, without looking at the context, it may halt a program that, despite having potential information leakage, never actually leaks information. 2475:
Permissive-upgrade introduces an extra security class P which will identify information leaking variables. When a High variable affects the value of a Low variable, the latter is labeled P. If a P labeled variable affects a Low variable the program would be halted. To prevent the halting the Low and
610:
Non-interference is a policy that enforces that an attacker should not be able to distinguish two computations from their outputs if they only vary in their secret inputs. However, this policy is too strict to be usable in realistic programs. The classic example is a password checker program that, in
2423:
An implicit flow occurs when code whose conditional execution is based on private information updates a public variable. This is especially problematic when multiple executions are considered since an attacker could leverage the public variable to infer private information by observing how its value
631:
is one that enforces information flow policies. Several methods to enforce information flow policies have been proposed. Run-time mechanisms that tag data with information flow labels have been employed at the operating system level and at the programming language level. Static program analyses have
635:
Both static and dynamic analysis for current programming languages have been developed. However, dynamic analysis techniques cannot observe all execution paths, and therefore cannot be both sound and precise. In order to guarantee noninterference, they either terminate executions that might release
2484:
Privatization inference extends permissive upgrade to automatically apply the privatization function to any variable that might leak information. This method should be used during testing where it will convert most variables. Once the program moves into production the permissive-upgrade should be
144:
In low level information flow analysis, each variable is usually assigned a security level. The basic model comprises two distinct levels: low and high, meaning, respectively, publicly observable information, and secret information. To ensure confidentiality, flowing information from high to low
2414:
declassification policy regulates when the information can be released. Policies of this kind can be used to verify programs that implement, for example, controlled release of secret information after payment, or encrypted secrets which should not be released in a certain time given polynomial
639:
A prominent way to enforce information flow policies in a program is through a security type system: that is, a type system that enforces security properties. In such a sound type system, if a program type-checks, it meets the flow policy and therefore contains no improper information flows.
1354: 1111: 2433:
The naĂŻve approach consists on enforcing the confidentiality property on all variables whose value is affected by other variables. This method leads to partially leaked information due to on some instances of the application a variable is Low and in others
1117: 2223:
As shown previously, non-interference policy is too strict for use in most real-world applications. Therefore, several approaches to allow controlled releases of information have been devised. Such approaches are called information declassification.
1712: 117:. Not all flows may be desirable; for example, a system should not leak any confidential information (partially or not) to public observers—as it is a violation of privacy on an individual level, or might cause major loss on a corporate level. 2617:
M. Krohn, A. Yip, M. Brodsky, N. Cliffer, M. Kaashoek, E. Kohler and R. Morris. Information flow control for standard OS abstractions. In ACM Special Interest Group on Operating Systems (SIGOPS) Symposium on Operating systems principles
949: 1805: 499:
Information flows can be divided in two major categories. The simplest one is explicit flow, where some secret is explicitly leaked to a publicly observable variable. In the following example, the secret in the variable
553:
Another side channel flow is the implicit information flow, which consists in leakage of information through the program control flow. The following program (implicitly) discloses the value of the secret variable
1597:{\displaystyle \quad {\frac {\vdash exp\;:\;sc\quad \vdash C_{1}\quad \vdash C_{2}}{\vdash {\textbf {if}}\ exp\ {\textbf {then}}\ C_{1}\ {\textbf {else}}\ C_{2}}}\qquad {\frac {\vdash C}{\vdash C}}} 2561:
Thomas H. Austin and Cormac Flanagan. Efficient purely-dynamic information flow analysis, Proc. of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security, ACM, 2009.
955: 2636:
J. Bacon, D. Eyers, T. Pasquier, J. Singh, I. Papagiannis and P. Pietzuch. Information Flow Control for secure cloud computing. In IEEE Transactions on Network and Service Management 2014.
2368:
construct proposed in. This construct takes a flow policy (in this case, variables in H are allowed to flow to variables in L) and a command, which is run under the given flow policy.
1343:{\displaystyle \quad {\frac {\vdash C_{1}\quad \vdash C_{2}}{\vdash C_{1}\;;\;C_{2}}}\qquad {\frac {\vdash exp\;:\;sc\quad \vdash C}{\vdash {\textbf {while}}\ exp\ {\textbf {do}}\ C}}} 2476:
P variables should be converted to High using a privatization function to ensure no information leakage can occur. On subsequent instances the program will run without interruption.
691: 2627:
N. Zeldovich, S. Boyd-Wickizer and D. Mazieres. Securing Distributed Systems with Information Flow Control. In USENIX Symposium on Networked Systems Design and Implementation 2008.
2467:
In this case the program would be halted since—syntactically speaking—it uses the value of a High variable to change a Low variable, despite the program never leaking information.
611:
order to be useful, needs to disclose some secret information: whether the input password is correct or not (note that the information that an attacker learns in case the program
2100: 1612: 773: 738: 219: 2396: 441: 412: 2361:
declassification policy regulates where the information can be released, for example, by controlling in which lines of the source code information can be released.
125:
Securing the data manipulated by computing systems has been a challenge in the past years. Several methods to limit the information disclosure exist today, such as
2129: 1990: 1961: 1909: 2155: 2050: 2016: 1935: 717: 2493:
Beyond applications to programming language, information flow control theories have been applied to operating systems, distributed systems, and cloud computing.
823: 816: 2227:
Robust declassification requires that an active attacker may not manipulate the system in order to learn more secrets than what passive attackers already know.
1848: 1828: 793: 485: 465: 379: 359: 339: 319: 299: 279: 259: 239: 193: 173: 111: 91: 2213: 2184: 1880: 43: 1724: 2552:
Andrei Sabelfeld and David Sands. Dimensions and Principles of Declassification. In Proc. of the IEEE Computer Security Foundations Workshop, 2005.
2514:
Andrei Sabelfeld and Andrew C. Myers. Language-Based Information-Flow Security. IEEE Journal on Selected Areas in Communications, 21(1), Jan. 2003.
137:. However, although these methods do impose limits on the information that is released by a system, they provide no guarantees about information 2588:
A. Sabelfeld and A. C. Myers. A model for delimited information release. In Proc. of International Symposium on Software Security (ISSS) 2003.
2608:
A. Almeida Matos and G. Boudol. On declassification and the non-disclosure policy. In Proc. IEEE Computer Security Foundations Workshop 2005.
2579:
S. Zdancewic. Challenges for information-flow security. In Workshop on the Programming Language Interference and Dependence (PLID’04) 2004.
2485:
used to halt the program in case of an information leakage and the privatization functions can be updated to prevent subsequent leaks.
30: 529:, the system leaks information through, respectively, the time or power it takes to perform an action depending on a secret value. 1106:{\displaystyle \quad \vdash {\textbf {skip}}\qquad \vdash h\;:=\;exp\qquad {\frac {\vdash exp\;:\;low}{\vdash l\;:=\;exp}}} 2646:
Pasquier, Thomas; Singh, Jatinder; Eyers, David; Bacon, Jean (2015). "CamFlow: Managed Data-sharing for Cloud Services".
2258:
declassification policy controls which information (partial or not) may be released to a publicly observable variable.
145:
variables should not be allowed. On the other hand, to ensure integrity, flows to high variables should be restricted.
2307:(i.e., who) can access a given piece of information. This kind of policy has been implemented in the Jif compiler. 2019: 2523:
Dorothy Denning. A lattice model of secure information flow. Communications of the ACM, 19(5):236-242, 1976.
658: 2705: 605: 2055: 1707:{\displaystyle \vdash \ {\textbf {if}}\ l=42\ {\textbf {then}}\ h\;:=\;3\ {\textbf {else}}\ l\;:=\;0} 632:
also been developed that ensure information flows within programs are in accordance with policies.
35: 743: 655:
Following is a simple security type system from that enforces non-interference. The notation
722: 198: 2381: 420: 391: 2665: 944:{\displaystyle \quad \vdash exp:high\qquad {\frac {h\notin Vars(exp)}{\vdash exp\;:\;low}}} 130: 2105: 1966: 1940: 1885: 8: 2230:
Information declassification constructs can be classified in four orthogonal dimensions:
2134: 2029: 1995: 1914: 696: 652:
every expression carries both a type (such as boolean, or integer) and a security label.
518: 126: 2669: 798: 2681: 2655: 2304: 1833: 1813: 778: 470: 450: 364: 344: 324: 304: 284: 264: 244: 224: 178: 158: 114: 96: 76: 67: 2269:
is explicitly allowed by the programmer to flow into the publicly observable variable
2189: 2160: 1856: 2685: 2673: 1800:{\displaystyle l\;:=\;0\ ;\ {\textbf {while}}\ l<h\ {\textbf {do}}\ l\;:=\;l+1} 488: 149: 71: 2310:
The following example allows Bob to share its secret contained in the variable
526: 2699: 2677: 1882:
is a subsumption rule, which means that any command that is of security type
522: 134: 2533:
Smith, Geoffrey (2007). "Principles of Secure Information Flow Analysis".
636:
sensitive information or they ignore updates that might leak information.
2023: 649: 2570:
J. S. Fenton. Memoryless Subsystems, Comput. J. 17(2): 143-147 (1974)
2660: 532:
In the following example, the attacker can deduce if the value of
2597: 2418: 21: 384:
Throughout this article, the following notation is used:
2265:
construct from. In this code, the value of the variable
1810:
is ill-typed, as it will disclose the value of variable
2645: 536:
is one or not by the time the program takes to finish:
148:
More generally, the security levels can be viewed as a
152:
with information flowing only upwards in the lattice.
2384: 2192: 2163: 2137: 2108: 2058: 2032: 1998: 1969: 1943: 1917: 1888: 1859: 1836: 1816: 1727: 1615: 1357: 1120: 958: 826: 801: 781: 746: 725: 699: 661: 566:
variable is boolean, all the bits of the variable of
473: 453: 423: 394: 367: 347: 327: 307: 287: 267: 247: 227: 201: 181: 161: 99: 79: 2314:
with Alice through the commonly accessible variable
648:
In a programming language augmented with a security
494: 2488: 2390: 2207: 2178: 2149: 2123: 2094: 2044: 2010: 1984: 1955: 1929: 1903: 1874: 1842: 1822: 1799: 1706: 1596: 1342: 1105: 943: 810: 787: 767: 732: 711: 685: 479: 459: 435: 406: 373: 353: 333: 313: 293: 273: 253: 233: 213: 187: 167: 105: 85: 2446:In the following example x is High and y is Low. 414:(low) shall denote a publicly observable variable 2697: 615:the password is that the attempted password is 2537:. Vol. 27. Springer US. pp. 291–307. 2419:Declassification approaches for implicit flows 550:(* do some time-consuming work *) l := 0 70:context is the transfer of information from a 2621: 2548: 2546: 2544: 2510: 2508: 2506: 155:For example, considering two security levels 2639: 2573: 504:flows into the publicly observable variable 622: 2582: 2541: 2503: 2479: 1787: 1783: 1735: 1731: 1700: 1696: 1676: 1672: 1606:Well-typed commands include, for example, 1396: 1392: 1259: 1255: 1225: 1221: 1090: 1086: 1053: 1049: 1023: 1019: 928: 924: 726: 679: 675: 662: 2659: 2630: 2611: 2238:is authorized to access the information, 570:is disclosed (at the end of the program, 2517: 487:are the only two security levels in the 46:of all important aspects of the article. 2602: 2438: 2364:The following example makes use of the 2303:declassification policy controls which 2026:. Similarly, the type of an expression 643: 2698: 2526: 686:{\displaystyle \;\vdash exp\;:\;\tau } 42:Please consider expanding the lead to 2532: 2470: 2427: 2424:changes over time or with the input. 443:(high) shall denote a secret variable 2648:IEEE Transactions on Cloud Computing 15: 2261:The following code example shows a 2218: 1772: 1750: 1685: 1661: 1639: 1519: 1496: 1474: 1326: 1304: 995: 795:is typable in the security context 599: 341:would be allowed, while flows from 13: 2331:b 2324:ab 14: 2717: 2242:the information is released, and 2095:{\displaystyle h\notin Vars(exp)} 2535:Advances in Information Security 495:Explicit flows and side channels 20: 2489:Application in computer systems 1540: 1429: 1403: 1376: 1266: 1239: 1168: 1139: 1033: 1000: 977: 873: 845: 120: 34:may be too short to adequately 2591: 2564: 2555: 2202: 2193: 2173: 2164: 2089: 2077: 1869: 1860: 1628: 1616: 1582: 1570: 1559: 1544: 1466: 1457: 1439: 1430: 1413: 1404: 1373: 1358: 1296: 1287: 1276: 1267: 1205: 1196: 1178: 1169: 1152: 1143: 1136: 1121: 1077: 1065: 1010: 1001: 987: 978: 974: 959: 907: 895: 842: 827: 756: 747: 521:category. For example, in the 517:The other flows fall into the 44:provide an accessible overview 1: 2496: 2246:the information is released. 578:is true, and 42 otherwise). 7: 606:Non-interference (security) 10: 2722: 2598:Jif: Java information flow 693:means that the expression 603: 562:. In this case, since the 2234:information is released, 2678:10.1109/TCC.2015.2489211 2352: 1718:Conversely, the program 768:{\displaystyle \vdash C} 629:information flow control 623:Information flow control 2480:Privatization inference 2405: 2249: 775:means that the command 733:{\displaystyle \;\tau } 214:{\displaystyle L\leq H} 68:information theoretical 2392: 2391:{\displaystyle \prec } 2294: 2209: 2180: 2151: 2125: 2096: 2046: 2012: 1986: 1957: 1931: 1905: 1876: 1844: 1824: 1801: 1708: 1598: 1344: 1107: 945: 812: 789: 769: 734: 713: 687: 481: 461: 437: 436:{\displaystyle h\in H} 408: 407:{\displaystyle l\in L} 375: 355: 335: 315: 295: 275: 255: 235: 215: 189: 169: 107: 87: 2452:x, y y := false 2415:computational power. 2393: 2210: 2181: 2152: 2126: 2097: 2047: 2013: 1987: 1958: 1932: 1906: 1877: 1845: 1825: 1802: 1709: 1599: 1345: 1108: 946: 813: 790: 770: 735: 714: 688: 527:power analysis attack 482: 462: 438: 409: 376: 356: 336: 316: 296: 276: 256: 236: 216: 190: 170: 108: 88: 2439:No sensitive upgrade 2382: 2190: 2161: 2135: 2124:{\displaystyle high} 2106: 2056: 2030: 1996: 1985:{\displaystyle high} 1967: 1956:{\displaystyle h:=1} 1941: 1915: 1904:{\displaystyle high} 1886: 1857: 1834: 1814: 1725: 1613: 1355: 1118: 956: 824: 799: 779: 744: 723: 697: 659: 644:Security type system 471: 451: 421: 392: 365: 345: 325: 305: 285: 265: 245: 225: 199: 179: 159: 127:access control lists 97: 77: 2670:2015arXiv150604391P 2150:{\displaystyle low} 2045:{\displaystyle exp} 2011:{\displaystyle low} 1930:{\displaystyle low} 1853:Note that the rule 712:{\displaystyle exp} 195:(low and high), if 2706:Information theory 2471:Permissive upgrade 2428:The naĂŻve approach 2388: 2348:(* {Alice, Bob} *) 2346:(b, {Alice, Bob}) 2326:(* {Alice, Bob} *) 2205: 2176: 2147: 2121: 2092: 2042: 2008: 1982: 1953: 1927: 1901: 1872: 1840: 1820: 1797: 1704: 1594: 1340: 1103: 941: 811:{\displaystyle sc} 808: 785: 765: 730: 709: 683: 491:being considered. 477: 457: 433: 404: 371: 351: 331: 311: 291: 271: 251: 231: 211: 185: 165: 103: 83: 2018:. This is called 1843:{\displaystyle l} 1823:{\displaystyle h} 1779: 1774: 1769: 1757: 1752: 1747: 1741: 1692: 1687: 1682: 1668: 1663: 1658: 1646: 1641: 1636: 1592: 1538: 1526: 1521: 1516: 1503: 1498: 1493: 1481: 1476: 1338: 1333: 1328: 1323: 1311: 1306: 1237: 1101: 997: 939: 788:{\displaystyle C} 514:l, h l := h 480:{\displaystyle H} 460:{\displaystyle L} 374:{\displaystyle L} 354:{\displaystyle H} 334:{\displaystyle H} 314:{\displaystyle L} 294:{\displaystyle H} 274:{\displaystyle H} 254:{\displaystyle L} 234:{\displaystyle L} 188:{\displaystyle H} 168:{\displaystyle L} 106:{\displaystyle y} 86:{\displaystyle x} 61: 60: 2713: 2690: 2689: 2663: 2643: 2637: 2634: 2628: 2625: 2619: 2615: 2609: 2606: 2600: 2595: 2589: 2586: 2580: 2577: 2571: 2568: 2562: 2559: 2553: 2550: 2539: 2538: 2530: 2524: 2521: 2515: 2512: 2435: 2397: 2395: 2394: 2389: 2219:Declassification 2214: 2212: 2211: 2208:{\displaystyle } 2206: 2185: 2183: 2182: 2179:{\displaystyle } 2177: 2156: 2154: 2153: 2148: 2130: 2128: 2127: 2122: 2101: 2099: 2098: 2093: 2051: 2049: 2048: 2043: 2017: 2015: 2014: 2009: 1991: 1989: 1988: 1983: 1962: 1960: 1959: 1954: 1936: 1934: 1933: 1928: 1910: 1908: 1907: 1902: 1881: 1879: 1878: 1875:{\displaystyle } 1873: 1849: 1847: 1846: 1841: 1829: 1827: 1826: 1821: 1806: 1804: 1803: 1798: 1777: 1776: 1775: 1767: 1755: 1754: 1753: 1745: 1739: 1713: 1711: 1710: 1705: 1690: 1689: 1688: 1680: 1666: 1665: 1664: 1656: 1644: 1643: 1642: 1634: 1603: 1601: 1600: 1595: 1593: 1591: 1568: 1542: 1539: 1537: 1536: 1535: 1524: 1523: 1522: 1514: 1513: 1512: 1501: 1500: 1499: 1491: 1479: 1478: 1477: 1455: 1454: 1453: 1428: 1427: 1378: 1349: 1347: 1346: 1341: 1339: 1337: 1331: 1330: 1329: 1321: 1309: 1308: 1307: 1285: 1241: 1238: 1236: 1235: 1234: 1220: 1219: 1194: 1193: 1192: 1167: 1166: 1141: 1112: 1110: 1109: 1104: 1102: 1100: 1063: 1035: 999: 998: 950: 948: 947: 942: 940: 938: 910: 875: 817: 815: 814: 809: 794: 792: 791: 786: 774: 772: 771: 766: 739: 737: 736: 731: 718: 716: 715: 710: 692: 690: 689: 684: 627:A mechanism for 619:the valid one). 600:Non-interference 558:to the variable 486: 484: 483: 478: 466: 464: 463: 458: 442: 440: 439: 434: 413: 411: 410: 405: 380: 378: 377: 372: 360: 358: 357: 352: 340: 338: 337: 332: 320: 318: 317: 312: 300: 298: 297: 292: 280: 278: 277: 272: 260: 258: 257: 252: 240: 238: 237: 232: 220: 218: 217: 212: 194: 192: 191: 186: 174: 172: 171: 166: 112: 110: 109: 104: 92: 90: 89: 84: 64:Information flow 56: 53: 47: 24: 16: 2721: 2720: 2716: 2715: 2714: 2712: 2711: 2710: 2696: 2695: 2694: 2693: 2644: 2640: 2635: 2631: 2626: 2622: 2616: 2612: 2607: 2603: 2596: 2592: 2587: 2583: 2578: 2574: 2569: 2565: 2560: 2556: 2551: 2542: 2531: 2527: 2522: 2518: 2513: 2504: 2499: 2491: 2482: 2473: 2465: 2460:y := true 2441: 2432: 2430: 2421: 2408: 2403: 2383: 2380: 2379: 2355: 2350: 2297: 2292: 2252: 2221: 2191: 2188: 2187: 2162: 2159: 2158: 2136: 2133: 2132: 2107: 2104: 2103: 2057: 2054: 2053: 2052:that satisfies 2031: 2028: 2027: 1997: 1994: 1993: 1968: 1965: 1964: 1942: 1939: 1938: 1937:. For example, 1916: 1913: 1912: 1887: 1884: 1883: 1858: 1855: 1854: 1835: 1832: 1831: 1815: 1812: 1811: 1771: 1770: 1749: 1748: 1726: 1723: 1722: 1684: 1683: 1660: 1659: 1638: 1637: 1614: 1611: 1610: 1569: 1543: 1541: 1531: 1527: 1518: 1517: 1508: 1504: 1495: 1494: 1473: 1472: 1456: 1449: 1445: 1423: 1419: 1379: 1377: 1356: 1353: 1352: 1325: 1324: 1303: 1302: 1286: 1242: 1240: 1230: 1226: 1215: 1211: 1195: 1188: 1184: 1162: 1158: 1142: 1140: 1119: 1116: 1115: 1064: 1036: 1034: 994: 993: 957: 954: 953: 911: 876: 874: 825: 822: 821: 800: 797: 796: 780: 777: 776: 745: 742: 741: 724: 721: 720: 698: 695: 694: 660: 657: 656: 646: 625: 608: 602: 597: 551: 515: 497: 472: 469: 468: 452: 449: 448: 422: 419: 418: 393: 390: 389: 366: 363: 362: 346: 343: 342: 326: 323: 322: 306: 303: 302: 286: 283: 282: 266: 263: 262: 246: 243: 242: 226: 223: 222: 200: 197: 196: 180: 177: 176: 160: 157: 156: 123: 98: 95: 94: 78: 75: 74: 57: 51: 48: 41: 29:This article's 25: 12: 11: 5: 2719: 2709: 2708: 2692: 2691: 2654:(3): 472–484. 2638: 2629: 2620: 2610: 2601: 2590: 2581: 2572: 2563: 2554: 2540: 2525: 2516: 2501: 2500: 2498: 2495: 2490: 2487: 2481: 2478: 2472: 2469: 2448: 2440: 2437: 2429: 2426: 2420: 2417: 2407: 2404: 2387: 2370: 2354: 2351: 2320: 2296: 2293: 2275: 2251: 2248: 2220: 2217: 2215:respectively. 2204: 2201: 2198: 2195: 2175: 2172: 2169: 2166: 2146: 2143: 2140: 2120: 2117: 2114: 2111: 2091: 2088: 2085: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2041: 2038: 2035: 2007: 2004: 2001: 1981: 1978: 1975: 1972: 1952: 1949: 1946: 1926: 1923: 1920: 1900: 1897: 1894: 1891: 1871: 1868: 1865: 1862: 1839: 1819: 1808: 1807: 1796: 1793: 1790: 1786: 1782: 1766: 1763: 1760: 1744: 1738: 1734: 1730: 1716: 1715: 1703: 1699: 1695: 1679: 1675: 1671: 1655: 1652: 1649: 1633: 1630: 1627: 1624: 1621: 1618: 1590: 1587: 1584: 1581: 1578: 1575: 1572: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1534: 1530: 1511: 1507: 1490: 1487: 1484: 1471: 1468: 1465: 1462: 1459: 1452: 1448: 1444: 1441: 1438: 1435: 1432: 1426: 1422: 1418: 1415: 1412: 1409: 1406: 1402: 1399: 1395: 1391: 1388: 1385: 1382: 1375: 1372: 1369: 1366: 1363: 1360: 1336: 1320: 1317: 1314: 1301: 1298: 1295: 1292: 1289: 1284: 1281: 1278: 1275: 1272: 1269: 1265: 1262: 1258: 1254: 1251: 1248: 1245: 1233: 1229: 1224: 1218: 1214: 1210: 1207: 1204: 1201: 1198: 1191: 1187: 1183: 1180: 1177: 1174: 1171: 1165: 1161: 1157: 1154: 1151: 1148: 1145: 1138: 1135: 1132: 1129: 1126: 1123: 1099: 1096: 1093: 1089: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1062: 1059: 1056: 1052: 1048: 1045: 1042: 1039: 1032: 1029: 1026: 1022: 1018: 1015: 1012: 1009: 1006: 1003: 992: 989: 986: 983: 980: 976: 973: 970: 967: 964: 961: 937: 934: 931: 927: 923: 920: 917: 914: 909: 906: 903: 900: 897: 894: 891: 888: 885: 882: 879: 872: 869: 866: 863: 860: 857: 854: 851: 848: 844: 841: 838: 835: 832: 829: 807: 804: 784: 764: 761: 758: 755: 752: 749: 729: 708: 705: 702: 682: 678: 674: 671: 668: 665: 645: 642: 624: 621: 604:Main article: 601: 598: 580: 538: 510: 496: 493: 476: 456: 445: 444: 432: 429: 426: 415: 403: 400: 397: 370: 350: 330: 310: 290: 270: 250: 230: 210: 207: 204: 184: 164: 122: 119: 102: 93:to a variable 82: 59: 58: 38:the key points 28: 26: 19: 9: 6: 4: 3: 2: 2718: 2707: 2704: 2703: 2701: 2687: 2683: 2679: 2675: 2671: 2667: 2662: 2657: 2653: 2649: 2642: 2633: 2624: 2614: 2605: 2599: 2594: 2585: 2576: 2567: 2558: 2549: 2547: 2545: 2536: 2529: 2520: 2511: 2509: 2507: 2502: 2494: 2486: 2477: 2468: 2463: 2459: 2455: 2451: 2447: 2444: 2436: 2425: 2416: 2413: 2401: 2385: 2377: 2373: 2369: 2367: 2362: 2360: 2349: 2345: 2341: 2337: 2334: 2330: 2327: 2323: 2319: 2317: 2313: 2308: 2306: 2302: 2290: 2286: 2282: 2278: 2274: 2272: 2268: 2264: 2259: 2257: 2247: 2245: 2241: 2237: 2233: 2228: 2225: 2216: 2199: 2196: 2170: 2167: 2157:according to 2144: 2141: 2138: 2118: 2115: 2112: 2109: 2086: 2083: 2080: 2074: 2071: 2068: 2065: 2062: 2059: 2039: 2036: 2033: 2025: 2021: 2005: 2002: 1999: 1979: 1976: 1973: 1970: 1950: 1947: 1944: 1924: 1921: 1918: 1898: 1895: 1892: 1889: 1866: 1863: 1851: 1837: 1817: 1794: 1791: 1788: 1784: 1780: 1764: 1761: 1758: 1742: 1736: 1732: 1728: 1721: 1720: 1719: 1701: 1697: 1693: 1677: 1673: 1669: 1653: 1650: 1647: 1631: 1625: 1622: 1619: 1609: 1608: 1607: 1604: 1588: 1585: 1579: 1576: 1573: 1565: 1562: 1556: 1553: 1550: 1547: 1532: 1528: 1509: 1505: 1488: 1485: 1482: 1469: 1463: 1460: 1450: 1446: 1442: 1436: 1433: 1424: 1420: 1416: 1410: 1407: 1400: 1397: 1393: 1389: 1386: 1383: 1380: 1370: 1367: 1364: 1361: 1350: 1334: 1318: 1315: 1312: 1299: 1293: 1290: 1282: 1279: 1273: 1270: 1263: 1260: 1256: 1252: 1249: 1246: 1243: 1231: 1227: 1222: 1216: 1212: 1208: 1202: 1199: 1189: 1185: 1181: 1175: 1172: 1163: 1159: 1155: 1149: 1146: 1133: 1130: 1127: 1124: 1113: 1097: 1094: 1091: 1087: 1083: 1080: 1074: 1071: 1068: 1060: 1057: 1054: 1050: 1046: 1043: 1040: 1037: 1030: 1027: 1024: 1020: 1016: 1013: 1007: 1004: 990: 984: 981: 971: 968: 965: 962: 951: 935: 932: 929: 925: 921: 918: 915: 912: 904: 901: 898: 892: 889: 886: 883: 880: 877: 870: 867: 864: 861: 858: 855: 852: 849: 846: 839: 836: 833: 830: 819: 805: 802: 782: 762: 759: 753: 750: 740:. Similarly, 727: 706: 703: 700: 680: 676: 672: 669: 666: 663: 653: 651: 641: 637: 633: 630: 620: 618: 614: 607: 596:l := 42 595: 591: 587: 583: 579: 577: 574:will be 3 if 573: 569: 565: 561: 557: 549: 545: 541: 537: 535: 530: 528: 524: 523:timing attack 520: 513: 509: 507: 503: 492: 490: 474: 454: 430: 427: 424: 416: 401: 398: 395: 387: 386: 385: 382: 368: 348: 328: 308: 288: 268: 248: 228: 221:, flows from 208: 205: 202: 182: 162: 153: 151: 146: 142: 140: 136: 132: 128: 118: 116: 100: 80: 73: 69: 65: 55: 52:February 2018 45: 39: 37: 32: 27: 23: 18: 17: 2651: 2647: 2641: 2632: 2623: 2613: 2604: 2593: 2584: 2575: 2566: 2557: 2534: 2528: 2519: 2492: 2483: 2474: 2466: 2461: 2457: 2453: 2449: 2445: 2442: 2431: 2422: 2411: 2409: 2402:l := h 2399: 2375: 2371: 2365: 2363: 2358: 2356: 2347: 2343: 2339: 2335: 2332: 2328: 2325: 2321: 2315: 2311: 2309: 2300: 2298: 2288: 2284: 2280: 2276: 2270: 2266: 2262: 2260: 2255: 2253: 2243: 2239: 2235: 2231: 2229: 2226: 2222: 2102:can be both 2020:polymorphism 1963:can be both 1911:can also be 1852: 1809: 1717: 1605: 1351: 1114: 952: 820: 654: 647: 638: 634: 628: 626: 616: 612: 609: 593: 592:l := 3 589: 585: 581: 575: 571: 567: 563: 559: 555: 552: 547: 543: 539: 533: 531: 519:side channel 516: 511: 505: 501: 498: 446: 383: 154: 147: 143: 138: 135:cryptography 124: 121:Introduction 63: 62: 49: 33: 31:lead section 2342:ab := 2333:(* {Bob} *) 2024:type theory 650:type system 381:would not. 139:propagation 113:in a given 2661:1506.04391 2497:References 2344:declassify 2305:principals 2289:declassify 2287:l := 2263:declassify 525:or in the 2456:x = true 2386:≺ 2063:∉ 1632:⊢ 1586:⊢ 1563:⊢ 1470:⊢ 1443:⊢ 1417:⊢ 1381:⊢ 1368:− 1300:⊢ 1280:⊢ 1244:⊢ 1209:⊢ 1182:⊢ 1156:⊢ 1131:− 1081:⊢ 1038:⊢ 1014:⊢ 991:⊢ 969:− 913:⊢ 881:∉ 847:⊢ 837:− 760:⊢ 728:τ 719:has type 681:τ 664:⊢ 588:h = true 428:∈ 417:variable 399:∈ 388:variable 206:≤ 131:firewalls 36:summarize 2700:Category 2686:11537746 72:variable 2666:Bibcode 2338:ab = 1 613:rejects 489:lattice 261:, from 150:lattice 115:process 2684:  2462:return 2283:l = 1 1778:  1768:  1756:  1746:  1740:  1691:  1681:  1667:  1657:  1645:  1635:  1525:  1515:  1502:  1492:  1480:  1332:  1322:  1310:  546:h = 1 447:Where 301:, and 133:, and 66:in an 2682:S2CID 2656:arXiv 2618:2007. 2464:true 2434:High. 2374:l, h 2359:where 2353:Where 2279:l, h 2240:where 1830:into 1751:while 1305:while 584:l, h 542:l, h 2458:then 2412:when 2406:When 2376:flow 2366:flow 2340:then 2291:(h) 2285:then 2256:what 2250:What 2244:when 2232:what 2186:and 2131:and 1992:and 1762:< 1686:else 1662:then 1520:else 1497:then 996:skip 594:else 590:then 548:then 467:and 175:and 2674:doi 2450:var 2372:var 2329:var 2322:var 2301:who 2295:Who 2277:var 2236:who 2022:in 617:not 582:var 540:var 512:var 361:to 321:to 281:to 241:to 2702:: 2680:. 2672:. 2664:. 2650:. 2543:^ 2505:^ 2454:if 2410:A 2400:in 2398:L 2378:H 2357:A 2336:if 2318:. 2316:ab 2299:A 2281:if 2273:. 2254:A 1948::= 1850:. 1785::= 1773:do 1733::= 1698::= 1674::= 1654:42 1640:if 1475:if 1327:do 1088::= 1021::= 818:. 586:if 544:if 508:. 129:, 2688:. 2676:: 2668:: 2658:: 2652:5 2312:b 2271:l 2267:h 2203:] 2200:2 2197:E 2194:[ 2174:] 2171:1 2168:E 2165:[ 2145:w 2142:o 2139:l 2119:h 2116:g 2113:i 2110:h 2090:) 2087:p 2084:x 2081:e 2078:( 2075:s 2072:r 2069:a 2066:V 2060:h 2040:p 2037:x 2034:e 2006:w 2003:o 2000:l 1980:h 1977:g 1974:i 1971:h 1951:1 1945:h 1925:w 1922:o 1919:l 1899:h 1896:g 1893:i 1890:h 1870:] 1867:7 1864:C 1861:[ 1838:l 1818:h 1795:1 1792:+ 1789:l 1781:l 1765:h 1759:l 1743:; 1737:0 1729:l 1714:. 1702:0 1694:l 1678:3 1670:h 1651:= 1648:l 1629:] 1626:w 1623:o 1620:l 1617:[ 1589:C 1583:] 1580:w 1577:o 1574:l 1571:[ 1566:C 1560:] 1557:h 1554:g 1551:i 1548:h 1545:[ 1533:2 1529:C 1510:1 1506:C 1489:p 1486:x 1483:e 1467:] 1464:c 1461:s 1458:[ 1451:2 1447:C 1440:] 1437:c 1434:s 1431:[ 1425:1 1421:C 1414:] 1411:c 1408:s 1405:[ 1401:c 1398:s 1394:: 1390:p 1387:x 1384:e 1374:] 1371:7 1365:6 1362:C 1359:[ 1335:C 1319:p 1316:x 1313:e 1297:] 1294:c 1291:s 1288:[ 1283:C 1277:] 1274:c 1271:s 1268:[ 1264:c 1261:s 1257:: 1253:p 1250:x 1247:e 1232:2 1228:C 1223:; 1217:1 1213:C 1206:] 1203:c 1200:s 1197:[ 1190:2 1186:C 1179:] 1176:c 1173:s 1170:[ 1164:1 1160:C 1153:] 1150:c 1147:s 1144:[ 1137:] 1134:5 1128:4 1125:C 1122:[ 1098:p 1095:x 1092:e 1084:l 1078:] 1075:w 1072:o 1069:l 1066:[ 1061:w 1058:o 1055:l 1051:: 1047:p 1044:x 1041:e 1031:p 1028:x 1025:e 1017:h 1011:] 1008:c 1005:s 1002:[ 988:] 985:c 982:s 979:[ 975:] 972:3 966:1 963:C 960:[ 936:w 933:o 930:l 926:: 922:p 919:x 916:e 908:) 905:p 902:x 899:e 896:( 893:s 890:r 887:a 884:V 878:h 871:h 868:g 865:i 862:h 859:: 856:p 853:x 850:e 843:] 840:2 834:1 831:E 828:[ 806:c 803:s 783:C 763:C 757:] 754:c 751:s 748:[ 707:p 704:x 701:e 677:: 673:p 670:x 667:e 576:h 572:l 568:h 564:h 560:l 556:h 534:h 506:l 502:h 475:H 455:L 431:H 425:h 402:L 396:l 369:L 349:H 329:H 309:L 289:H 269:H 249:L 229:L 209:H 203:L 183:H 163:L 101:y 81:x 54:) 50:( 40:.

Index


lead section
summarize
provide an accessible overview
information theoretical
variable
process
access control lists
firewalls
cryptography
lattice
lattice
side channel
timing attack
power analysis attack
Non-interference (security)
type system
polymorphism
type theory
principals






Jif: Java information flow
arXiv
1506.04391
Bibcode

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑