<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Sharing SharePoint</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/laurasa/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/laurasa/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:17:21 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Information Security - Digital Signature ElGamal and DSS - Algorithm and Examples</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/information-security-digital-signature-elgamal-and-dss-algorithm-and-examples</link>
      <pubDate>Mon, 01 Oct 2012 14:18:32 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/10/01/information-security-digital-signature-elgamal-and-dss-algorithm-and-examples/</guid>
      <description><![CDATA[ElGamal Digital Signature Protocol

The El Gamal digital signature protocol was defined in 1985...]]></description>
      <content:encoded><![CDATA[<p style="text-align: center;"><strong><span style="color: #0000ff; font-family: times new roman,times; font-size: large;">ElGamal Digital Signature Protocol</span></strong></p>
<p style="text-align: left;"><strong><span style="color: #0000ff; font-family: times new roman,times; font-size: large;"><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"></span></span></span></strong></p>
<p align="LEFT">The El Gamal digital signature protocol was defined in 1985 ([4]). It is not a deterministic protocol, which means that for given message we can have more valid signatures. The verification function will accept as valid all these signatures. In the following, we utilize Alice, as the sender and Bob, as the receiver. Alice has the pair of keys (<i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">X</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span lang="JA" style="font-family: rtxmi;" face="rtxmi">, </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">) and Bob has the pair of keys (</span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">X</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">B</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span lang="JA" style="font-family: rtxmi;" face="rtxmi">, </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">B</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">).</span></p>
<p align="LEFT">Definition</p>
<p align="LEFT">We consider the public parameters are: p, g, <i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">. They are defined as follows.</span></p>
<p align="LEFT">We take p a big prime number for which the discrete logarithm problem is di<span style="font-family: rtxr;" face="rtxr">ffi</span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">cult </span>in <span style="font-family: txsyb;" face="txsyb">Z</span><i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">p</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">.</span></p>
<p align="LEFT">We consider g <span lang="KO" style="font-family: txsy;" face="txsy">&isin; </span><span style="font-family: txsyb;" face="txsyb">Z</span><span lang="KO" style="font-family: txsy; font-size: xx-small;" face="txsy" size="1"><span lang="KO" style="font-family: txsy; font-size: xx-small;" face="txsy" size="1">&lowast;</span></span>p <span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">with order p-1 modulo p, being a prime factor for p-1.</span></p>
<p align="LEFT">Alice has the pair of keys (<i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">X</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">, </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">). </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">X</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">is the private key and </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">is the public key.</span></p>
<p align="LEFT">X<span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A </span></span><span lang="KO" style="font-family: txsy;" face="txsy">&isin; </span><span style="font-family: txsyb;" face="txsyb">Z</span><span lang="KO" style="font-family: txsy; font-size: xx-small;" face="txsy" size="1"><span lang="KO" style="font-family: txsy; font-size: xx-small;" face="txsy" size="1">&lowast;</span></span>p <span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">with </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">X</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">does not divide p-1.</span></p>
<p align="LEFT">Alice&rsquo;s public key is calculated function of Alice&rsquo;s private key, <i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">Y</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"></span></span><span style="font-family: rtxr;" face="rtxr">= </span><i><span style="font-family: NimbusRomNo9L-ReguItal;" face="NimbusRomNo9L-ReguItal">g^</span><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: NimbusRomNo9L-ReguItal; font-size: xx-small;" face="NimbusRomNo9L-ReguItal" size="1">XA </span></span></i>mod p</p>
<p align="LEFT"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/0525.ElG1.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/0525.ElG1.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/0525.ElG1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/0525.ElG1.jpg" border="0" /></a></p>
<p><span style="font-family: times new roman,times; font-size: medium;">We provide here 4 examples for ElGamal digital signature.</span></p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">Example 1</span></p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">We consider p <span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">467; g </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">2; </span><i><span face="NimbusRomNo9L-ReguItal">X</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">127.</span></span></p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">Now <i><span face="NimbusRomNo9L-ReguItal">Y</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu">is calculated: </span><i><span face="NimbusRomNo9L-ReguItal">Y</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="rtxr">= </span><i><span face="NimbusRomNo9L-ReguItal">g^</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">X</span></span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">A </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu">mod p </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">2^</span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">127 </span></span><span face="NimbusRomNo9L-Regu">mod 467 </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">132.</span></span></p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">So the Alice&rsquo;s pair of keys is (127, 132).</span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">We take message m<span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">100 and x </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">213 for the signature of this message.</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">Here we notice that (213, 466)<span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">1</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">We calculate 213^<span lang="KO" face="txsy" size="1"><span lang="KO" face="txsy" size="1">&minus;</span></span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">1 </span></span><span face="NimbusRomNo9L-Regu">mod 466 </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">431</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">Having these parameters, we can start to calculate the signature of Alice on the message m, which is represented by the pair (r, s).</span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">r<span face="rtxr">= </span><i><span face="NimbusRomNo9L-ReguItal">g^</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">x </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu">mod p </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">2^</span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">213 </span></span><span face="NimbusRomNo9L-Regu">mod 467 </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">29</span></span></p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">s<span face="rtxr">= [</span><i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">m</span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span lang="KO" face="txsy" size="1"><span lang="KO" face="txsy" size="1">&minus;</span></span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">(</span></span><i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">X</span></span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">A</span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span lang="KO" face="txsy" size="1"><span lang="KO" face="txsy" size="1">&lowast;</span></span><i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">r</span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">)] / </span></span>x <span face="NimbusRomNo9L-Regu">mod p </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">(100-127*29) * 431 mod 466 </span><span face="rtxr">= </span><span face="NimbusRomNo9L-Regu">51</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">Verification step:</span></p>
<p><span style="font-family: times new roman,times; font-size: medium;"><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"><span style="font-family: Arial;" face="Arial">g^</span>m </span></span><span face="rtxr">= </span><i><span face="NimbusRomNo9L-ReguItal">Ya^</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">r </span></span></i>* <i><span face="NimbusRomNo9L-ReguItal">r^</span><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">s </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu">mod p</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">132^<span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">29 </span></span><span face="NimbusRomNo9L-Regu">* 29^</span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">51 </span></span><span lang="KO" face="txsy">&equiv; </span><span face="NimbusRomNo9L-Regu">189 (mod 467)</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">2^<span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">100 </span></span><span lang="KO" face="txsy">&equiv; </span><span face="NimbusRomNo9L-Regu">189 (mod 467)</span></span></p>
<p><span style="font-family: times new roman,times; font-size: medium;">The verification confirms that the signature is valid.</span></p>
<p><span style="font-family: times new roman,times; font-size: medium;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8117.ElG2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8117.ElG2.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8117.ElG2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8117.ElG2.jpg" border="0" /></a></span></p>
<p align="LEFT"><span style="color: #000000;"><span style="font-family: times new roman,times; font-size: large;">Example 4</span></span></p>
<p align="LEFT"><span style="color: #000000;"><span style="font-family: times new roman,times; font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/0830.ElG3.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/0830.ElG3.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/0830.ElG3.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/0830.ElG3.jpg" border="0" /></a></span></span></p>
<p style="text-align: center;"><span style="color: #0000ff;"><strong><span style="font-family: times new roman,times; font-size: large;"></span></strong></span>&nbsp;</p>
<p style="text-align: center;"><span style="color: #0000ff;"><strong><span style="font-family: times new roman,times; font-size: large;">DSS - Digital Signature Standard</span></strong></span></p>
<p><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"></span></span>&nbsp;</p>
<p align="LEFT"><span style="font-family: times new roman,times; font-size: medium;">The Digital Signature Algorithm (DSA) is a Federal Information Processing Standard (FIPS) for digital signatures. It was proposed by the National Institute of Standards and Technology (NIST) in August 1991 for use in their Digital Signature Standard (DSS). DSA has been accepted and included in DSS in December 1994, supporting one modification: the message m has been replaced by the mark SHA1(m). Digital Signature Standard - DSS - is a variant of ElGamal digital signature protocol having the property that the length of the signature is reduced. The main di<span face="rtxr">ff</span><span face="NimbusRomNo9L-Regu">erence between DSA and ElGamal digital signature is </span>that DSA provides a digital signature of 320 bits on a message of 160 bits, using Z<i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1">p </span></span></i><span face="NimbusRomNo9L-ReguItal" size="1"><span face="NimbusRomNo9L-ReguItal" size="1"></span></span><span face="NimbusRomNo9L-Regu">where p has 512 bits, o</span><span face="rtxr">ff</span><span face="NimbusRomNo9L-Regu">ering operations in a field with 2^</span><span face="NimbusRomNo9L-Regu" size="1"><span face="NimbusRomNo9L-Regu" size="1">160 </span></span><span face="NimbusRomNo9L-Regu">elements.</span></span></p>
<p align="LEFT"><span style="font-size: small;"><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu">&nbsp;&nbsp;</span></span><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5265.DSS1.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5265.DSS1.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5265.DSS1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5265.DSS1.jpg" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3034.DSS2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3034.DSS2.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3034.DSS2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3034.DSS2.jpg" border="0" /></a></span></p>
<p><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8306.DSS3.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8306.DSS3.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8306.DSS3.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8306.DSS3.jpg" border="0" /></a></span></p>
<p><span style="font-family: NimbusRomNo9L-Regu;" face="NimbusRomNo9L-Regu"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8233.DSS4.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8233.DSS4.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8233.DSS4.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8233.DSS4.jpg" border="0" /></a></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Malawi 2.0 – Microsoft CSS working to provide clean water</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/malawi-2-0-microsoft-css-working-to-provide-clean-water</link>
      <pubDate>Mon, 10 Sep 2012 12:59:24 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/09/10/malawi-2-0-microsoft-css-working-to-provide-clean-water/</guid>
      <description><![CDATA[A team of 10 volunteers from Microsoft Customer Service and Support in Europe and North America have...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: medium;"><span size="2">A team of 10 volunteers from Microsoft Customer Service and Support in Europe and North America have just set off for Malawi as the &ldquo;On the Ground&rdquo; team of the 2012 Microsoft Customer Service and Support Malawi Citizenship project. The aim of the project is to improve access to clean water for the Malawi population in the Thyolo district. The project is split into two parts &ndash; a fundraising team and an on the ground team assisting with the installation of water pumps. The fundraising project is run in partnership with </span><a href="https://www.concern-universal.org"><span size="2">Concern Universal</span></a><span size="2">, a non-governmental humanitarian aid organization and the aim is to fund additional boreholes and water pumps to supply clean water for 2500 people.&nbsp; The on the ground team are helping to provide IT skills and knowledge through hands on training to students and teachers.</span></span></p>
<p><span style="font-size: medium;"><span size="2">You can visit the </span><a href="https://www.facebook.com/MicrosoftEmeaCssMalawi20"><span size="2">facebook page for the project</span></a><span size="2"> to learn more and stay up to date with what is happening.</span></span></p>
<p align="left"><span style="font-size: medium;" size="2">If you would like to contribute financially you can find the fundraising page here:</span></p>
<p align="left"><span style="font-size: medium;"><a title="https://www.justgiving.com/company/microsoft-waterislife/" href="https://www.justgiving.com/company/microsoft-waterislife/"><span size="3">https://www.justgiving.com/company/microsoft-waterislife/</span></a></span></p>
<p><span style="font-size: medium;" size="2">Below is a map showing the existing pump locations:</span></p>
<p></p>
<div id="mapviewer"><iframe id="map" height="400" src="https://www.bing.com/maps/embed/?v=2&amp;cp=-16.094380~35.039860&amp;lvl=6&amp;dir=0&amp;sty=h&amp;cid=1C55F50AAB75B4C1!17346&amp;form=LMLTEW&amp;emid=4eb73155-2859-cc34-cbe6-cf1be4bc6e64" frameborder="0" width="500" scrolling="no"></iframe>
<div style="line-height: 20px;" id="LME_maplinks"><a style="margin: 0px 7px;" id="LME_largerMap" href="https://www.bing.com/maps/?v=2&amp;cp=-16.094380~35.039860&amp;lvl=6&amp;dir=0&amp;sty=b&amp;cid=1C55F50AAB75B4C1!17346&amp;form=LMLTEW" target="_blank">View Larger Map</a><a style="margin: 0px 7px;" id="LME_directions" href="https://www.bing.com/maps/?v=2&amp;cp=-16.094380~35.039860&amp;lvl=6&amp;dir=0&amp;sty=b&amp;cid=1C55F50AAB75B4C1!17346&amp;form=LMLTEW&amp;rtp=%7Epos.-16.09438_35.03985999999998_" target="_blank">Driving Directions</a></div>
</div>
<p></p>
<p></p>
<p><span style="font-size: x-small;" size="2">You can watch this inspiring video to find out what last year's CSS Malawi team got up to:</span></p>
<p></p>
<p><iframe height="315" src="https://www.youtube.com/embed/s9rzvijdI5k" frameborder="0" width="560" allowfullscreen="allowfullscreen"></iframe></p>
<p></p>
<p><span style="font-size: x-small;" size="2"></span></p>
<p><span style="font-size: x-small;" size="2">Thank you for your support!</span></p>
<p><span style="font-size: x-small;" size="2"></span>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Charms in Windows 8 Applications developed with Visual Studio</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/charms-in-windows-8-applications-developed-with-visual-studio</link>
      <pubDate>Wed, 08 Aug 2012 05:47:23 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/08/08/charms-in-windows-8-applications-developed-with-visual-studio/</guid>
      <description><![CDATA[&nbsp;
1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Search contract
The search contract lets your users search...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><b>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><b>Search contract</b></p>
<p>The search contract lets your users search through your app&rsquo;s content from anywhere in the system.</p>
<p>Using the Search charm helps you:</p>
<ul>
<li>Take advantage of muscle memory that users have built by using the Search charm in the system and in other apps</li>
<li>Ensure that users have a consistent and predictable experience when they search and when they change search settings</li>
<li>Make your app more visible by placing it at the top of the list of searchable apps if the user searches your app frequently</li>
</ul>
<p>To have a great search experience, follow the <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465233">guidelines for search</a><br />.</p>
<p>If the applications implements search contract:</p>
<p>Repeat the steps below:</p>
<ol>
<li>When the target app is the current main app</li>
<li>When the target app is not started</li>
<li>When the target app is in snapped state.</li>
</ol>
<p>How to make the test:</p>
<ol>
<li>Test empty query string.</li>
<li>Start to enter a valid query string check for suggestions or recommendations and validate (e.g. No more than 5 suggestions, images, etc.)</li>
<li>Commit the query string.<ol>
<li>Review the search results and check if they are meaningful.</li>
<li>Verify that filtering, query string highlighting, etc. is working as expected.</li>
<li>Navigate back and forth from the search and other pages of the app<ol>
<li>Verify that the navigation works as expected. <br />That is, you should be able to navigate back to the view from where you invoked the search contract.</li>
<li>Verify that the search state is preserved.</li>
<li>Verify that the state of other pages is preserved when the search contract is opened (e.g. in a mail app a started e-mail should be preserved).</li>
</ol></li>
</ol></li>
</ol>
<p>Specific to snapped view look for issues with layout changes (results page)</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="111">
<p>Reference</p>
</td>
<td valign="top" width="528">
<p><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465233">https://msdn.microsoft.com/en-us/library/windows/apps/hh465233</a><br />&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><b>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><b>Share target contract&nbsp; </b></p>
<p>Users will always have information they want to share.</p>
<p>If your app implements the share target contract, it will always be one swipe away for the user.</p>
<p>If you want to increase the usage for your app, and have scenarios that can consume data from other apps, implement the share target contract.&nbsp;<br />Windows does most of the heavy lifting with sharing the data, you simply have to receive it and let the user access it within your app. <br /><br /><br />For more details, check the <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465251">guidelines for sharing</a>.</p>
<p>&nbsp;</p>
<p>Check Manifest for declaration &lt;ShareTarget&gt;</p>
<p>Execute a share operation using the app as the target application and then ensure that:</p>
<ol>
<li>The look and feel is kept between that target and source application. Target should display shared data without changing formatting and content received from source.</li>
<li>Navigation is implemented by the existing structure that supplies a default back-button</li>
<li>No light fly-outs are used to avoid user confusion because the Share UI already uses light dismiss.</li>
<li>Acknowledge user actions by letting the user know the system is responding for example through an inline message before closing the share pane.</li>
<li>The share action buttons should be on the right side of the screen so that users can reach them with their thumbs. These buttons allow the target to specify which type of data to consume. With exception of navigation button these should be the only ones present.</li>
<li>Data consumed should not be modified.</li>
</ol>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="111">
<p>Reference</p>
</td>
<td valign="top" width="528">
<p><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465251">https://msdn.microsoft.com/en-us/library/windows/apps/hh465251</a><br />&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><b>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><b>Share source contract</b></p>
<p>An easy way to extend your application and connect it to any other application or service is to implement the share contract. Participating in the Share contract means that you don't have to write extra code or provide other developers with an SDK for your app just to share content. <br /><br />You will be adding value and exposing it in the consistent, safe way that all Windows 8 users will expect.</p>
<p>For details on sharing, check the <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465251">guidelines for sharing</a>.</p>
<p>Install SDK sample target and check the below items:</p>
<ul>
<li>Check that only selected items are shared.</li>
<li>When possible create links to online content for sharing.</li>
<li>Ask if they using datapackage.datapackagepropertyset this will allow more a sharing experience.<br />There are specific properties for example title, description, thumbnail, etc.</li>
<li>Show errors inline</li>
<li>Check that selections are preserved after a share operation.</li>
<li>Ask what formats (dataset) they share and test target that it is visible.</li>
</ul>
<p>Only share through the share charm.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="111">
<p>Reference</p>
</td>
<td valign="top" width="528">
<p><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465251">https://msdn.microsoft.com/en-us/library/windows/apps/hh465251</a><br />&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><b>4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><b>Leverages file pickers</b></p>
<p>A Metro style app can call a file picker window to let the user browse their system and pick files or folders for the app to operate on or to let the user save a file using a new name, file type, or location ("save as"). Apps can also use file pickers as an interface that enables them to provide other apps with files, a save location, or even file updates.</p>
<p>Leverage file pickers within your app if you want to interact with user data that is stored in files.</p>
<p>To learn more about file pickers and follow the <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465182">guidelines for file pickers</a>.</p>
<p>Ask if they use file picker and have demo. Appropriates uses cases are:</p>
<ul>
<li>Access user-specified files and folders.</li>
<li>Add "save as" to your app.</li>
<li>Provide files.</li>
<li>Provide a save location.</li>
<li>Provide real-time file updates.</li>
</ul>
<p>Check for inappropriate use:</p>
<ul>
<li>Don't use a file picker to explore, consume, or manage file content.
<ul>
<li><br />For example, a photo gallery app should provide a customized, dedicated page and UI that lets users organize and view picture files within the app. The app can then customize this UI to best suit the user&rsquo;s needs. When the user wants to add files to the gallery, it would call the file picker to provide a page and UI that is specialized for that purpose.</li>
<li><br />Don't use a file picker to save a file if a unique, user-specified file name or location is not needed.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="111">
<p>Reference</p>
</td>
<td valign="top" width="528">
<p><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465182">https://msdn.microsoft.com/en-us/library/windows/apps/hh465182</a><br />&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Defend Your Code with Top Ten Security Tips Every Developer Must Know</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/defend-your-code-with-top-ten-security-tips-every-developer-must-know</link>
      <pubDate>Wed, 25 Jul 2012 12:06:56 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/07/25/defend-your-code-with-top-ten-security-tips-every-developer-must-know/</guid>
      <description><![CDATA[Defend Your Code with Top Ten Security Tips Every Developer Must Know
by Michael Howard and Keith...]]></description>
      <content:encoded><![CDATA[<p><span style="color: #000080; font-size: large;"><strong>Defend Your Code with Top Ten Security Tips Every Developer Must Know</strong></span></p>
<p style="text-align: left;" align="right">by Michael Howard and Keith Brown</p>
<p>Security is a multidimensional issue. Security risks can come from anywhere. You could write bad error handling code or be too generous with permissions. You could forget what services are running on your server. You could accept all user input.</p>
<p>1. Trust User Input at Your Own Peril</p>
<p>2. Protect Against Buffer Overruns</p>
<p>3. Prevent Cross-site Scripting</p>
<p>4. Don't Require sa Permissions</p>
<p>5. Watch that Crypto Code!</p>
<p>6. Reduce Your Attack Profile</p>
<p>7. Employ the Principle of Least Privilege</p>
<p>8. Pay Attention to Failure Modes</p>
<p>9.Impersonation is Fragile</p>
<p>10. Write Apps that Non-admins Can Actually Use</p>
<p>&nbsp;</p>
<ol></ol>
<p><span style="color: #000080; font-size: medium;"><b>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b><b>Trust User Input at Your Own Peril</b></span></p>
<p>Always remember one thing: "don't trust user input." If you always assume that data is well formed and good, then your troubles are about to begin. Most security vulnerabilities revolve around<br />the attacker providing malformed data to the server machine. Trusting that input is well formed can lead to buffer overruns, cross-site scripting attacks, SQL injection attacks, and more.</p>
<p><span style="color: #000080; font-size: medium;"><b>2. Protect Against Buffer Overruns</b></span></p>
<p>A buffer overrun occurs when the data provided by the attacker is bigger than what the application expects, and overflows into internal memory space. Buffer overruns are primarily a C/C++ issue. The overflow causes corruption of other data structures in memory, and this corruption can often lead to the attacker running malicious code. There are also buffer underflows and buffer overruns caused by array indexing mistakes, but they are less common. Take a look to the following source code example:</p>
<p>void DoSomething(char *cBuffSrc, DWORD cbBuffSrc) {</p>
<p>&nbsp;&nbsp;&nbsp; char cBuffDest[32];</p>
<p>&nbsp;&nbsp;&nbsp; memcpy(cBuffDest,cBuffSrc,cbBuffSrc);</p>
<p>}</p>
<p>If the data comes from an untrusted source and has not been validated, then the attacker (the untrusted source) could easily make cBuffSrc larger than cBuffDest, and also set cbBuffSrc to be larger than cBuffDest. When memcpy copies the data into cBuffDest, the return address from DoSomething is clobbered because cBuffDest is next to the return address on the function's<br />stack frame, and the attacker makes the code perform malicious operations.</p>
<p>The way to fix this is to distrust user input and not to believe any data held in cBuffSrc and cbBuffSrc:</p>
<p>void DoSomething(char *cBuffSrc, DWORD cbBuffSrc) {</p>
<p>&nbsp;&nbsp;&nbsp; const DWORD cbBuffDest = 32;</p>
<p>&nbsp;&nbsp;&nbsp; char cBuffDest[cbBuffDest];</p>
<p>#ifdef<br />_DEBUG</p>
<p>&nbsp;&nbsp;&nbsp; memset(cBuffDest, 0x33, cbBuffSrc);</p>
<p>#endif</p>
<p>&nbsp;&nbsp;&nbsp; memcpy(cBuffDest, cBuffSrc, min(cbBuffDest,<br />cbBuffSrc));</p>
<p>}</p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: medium;"><b>3. Prevent Cross-site Scripting</b></span></p>
<p>Cross-site scripting vulnerabilities are Web-specific issues and can compromise a client's data through a flaw in a single Web page. Imagine the following ASP.NET code fragment:</p>
<p>&lt;script language=c#&gt;</p>
<p>&nbsp;&nbsp;&nbsp; Response.Write("Hello, " +<br />Request.QueryString("name"));</p>
<p>&lt;/script&gt;</p>
<p>How many of you have seen code like this? You may be surprised to learn it's buggy! Normally, a user would access this code using a URL that looks like this:</p>
<p>https://explorationair.com/welcome.aspx?name=Michael</p>
<p>The C# code assumes that the data is always well formed and contains nothing more than a name. Attackers, however, abuse this code and provide script and HTML as the name. If you typed the following URL</p>
<p>https://northwindtraders.com/welcome.aspx?name=&lt;script&gt;alert('hi!');</p>
<p>&lt;/script&gt;</p>
<p>you'd get a Web page that displays a dialog box, saying "hi!" "So what?" you say. Imagine that the attacker convinces a user to click on a link like this, but the querystring contains some really nasty script and HTML to get your cookie and post it to a site that the attacker owns; the attacker now has your private cookie information or worse.</p>
<p>Here is a way of avoiding this:</p>
<p>Regex r = new Regex(@"^[\w]{1,40}$");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<br />(r.Match(strName).Success) {</p>
<p>&nbsp;&nbsp;&nbsp; // Cool! The string is ok</p>
<p>} else {</p>
<p>&nbsp;&nbsp;&nbsp; // Not cool! Invalid string</p>
<p>}</p>
<p>&nbsp;</p>
<p>This code uses a regular expression to verify that a string contains between 1 and 40 alphanumeric characters and nothing else. This is the only safe way to determine whether a value is correct.</p>
<p>The second defense is to HTML-encode all input when it is used as output. This will reduce dangerous HTML tags to more secure escape characters. You can escape any strings that might be a problem in ASP.NET with HttpServerUtility.HtmlEncode, or in ASP with Server.HTMLEncode.</p>
<p><span style="color: #000080; font-size: medium;"><b>4. Don't Require sa Permissions</b></span></p>
<p>The last kind of input trust attack we want to discuss is SQL injection. Many developers write code that takes input and uses that input to build SQL queries to communicate with a back-end data store, such as Microsoft&reg; SQL Server&trade; or Oracle.</p>
<p>Take a look at the following code snippet:</p>
<p>void DoQuery(string Id) {</p>
<p>&nbsp;&nbsp;&nbsp; SqlConnection sql=new<br />SqlConnection(@"data source=localhost;" +</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;"user id=sa;password=password;");</p>
<p>&nbsp;&nbsp;&nbsp; sql.Open();</p>
<p>&nbsp;&nbsp;&nbsp; sqlstring= "SELECT hasshipped" +</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " FROM shipping WHERE<br />id='" + Id + "'";</p>
<p>&nbsp;&nbsp;&nbsp; SqlCommand cmd = new<br />SqlCommand(sqlstring,sql);</p>
<p>&nbsp;</p>
<p>This code is seriously flawed for three reasons:</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the connection is made from the Web Service to SQL Server as the system administrator account, sa.</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the clever use of "password" as the password for the sa account</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the string concatenation that builds the SQL statement. If a user enters an ID of 1001, then you get the following SQL statement, which is perfectly valid and well formed.</p>
<p>SELECT<br />hasshipped FROM shipping WHERE id = '1001'</p>
<p>However, attackers are more creative than this. They would enter an ID of "'1001' DROP table shipping --", which would execute the following query:</p>
<p>SELECT<br />hasshipped FROM</p>
<p>shipping<br />WHERE id = '1001'&nbsp;</p>
<p>DROP<br />table shipping -- ';</p>
<p><b>&nbsp;</b></p>
<p><span style="color: #000080; font-size: medium;"><b>5. Watch that Crypto Code!</b></span></p>
<p>The most common mistake is homegrown encryption code, which is typically quite fragile and easy to break. Never create your own encryption code; you won't get it right. Don't think that just because you've created your own cryptographic algorithm people won't figure it out. Attackers have access to debuggers, and they have both the time and the knowledge to determine<br />exactly how these systems work&mdash;and often break them in a matter of hours. Rather, you should use the CryptoAPI for Win32&reg; applications, and the System.Security.Cryptography namespace has a wealth of well-written and well-tested cryptographic algorithms.</p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: medium;"><b>6. Reduce Your Attack Profile</b></span></p>
<p>If a feature is not required by 90 percent of clients, then it should not be installed by default. Where services that you don't use are running, you don't pay attention to them and they can be exploited. If the feature is installed by default, then it should operate under the principle of least privilege. In other words, do not require the app to run with administrative rights if they<br />are not required.</p>
<p><span style="color: #000080; font-size: medium;"><b>7. Employ the Principle of Least Privilege</b></span></p>
<p>The operating system and the common language runtime (CLR) have a security policy for several reasons. The security policy is there to put walls around code so that intentional or (just as frequently) unintentional actions by users don't wreak havoc on the network. For instance, an attachment downloaded via e-mail and executed on Alice's machine is restricted to only accessing resources that Alice can access. If the attachment contains a Trojan horse, a good security policy will limit the damage it can do. When you design, build, and deploy server applications, you cannot assume that every request will come from a legitimate user. If a bad guy manages to send you a malformed request that causes your code to behave badly, you want every possible wall around your application to limit the damage. The principle of least privilege says that any given privilege should be granted to the least amount of code necessary, for the least amount of time necessary. In other words, at any given time, try to erect as many walls around your code as possible.</p>
<p><span style="color: #000080; font-size: medium;"><b>8. Pay Attention to Failure Modes</b></span></p>
<p>There are so many ways a piece of code can fail; it's just depressing thinking about it. Sadly, this is not a safe frame of mind. We need to pay much closer attention to failure modes in code. These bits of code are often written with little attention to detail and often go completely untested. Untested code often leads to security vulnerabilities. There are three things you can do to help alleviate this problem:</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pay just as much attention to those little error handlers as you do your normal code. Think about the state of the system when your error-handling code is executing. Are you leaving the system in a valid and secure state?</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;once you write a function, step your debugger through it several times, ensuring that you hit every error handler. Note that even this technique may not uncover subtle timing errors. You may need to pass bad arguments to your function or adjust the state of the system in some way that causes your error handlers to execute</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;make sure your test suites force your functions to fail. Try to have test suites that exercise every line of code in your function. These can help you discover regression, especially if you automate your tests and run them after every build.</p>
<p>Be sure that if your code fails, it leaves the system in the most secure state possible.</p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: medium;"><b>9. Impersonation is Fragile</b></span></p>
<p><b>&nbsp;</b>Impersonation allows each thread in a process to run in a distinct security context, typically the client's security context. This is all well and good for simple gateways like the file system redirector. However, impersonation is often used in other, more complex applications. Take a Web application for instance. If you're writing a classic unmanaged ASP application, ISAPI extension, or an ASP.NET application which specifies</p>
<p>&lt;identity impersonate='true'&gt;</p>
<p>in its Web.config file, you are running in an environment with two different security contexts: you have a process token and a thread token, and generally speaking, the thread token will be used for access checks. Say you are writing an ISAPI application that runs inside the Web server process. Your thread token is likely IUSR_MACHINE, given that most requests are unauthenticated. But your process token is SYSTEM! Say your code is compromised by a bad guy via a buffer overflow exploit. Do you think the bad guy will be content with running as IUSR_MACHINE? No way. It's very likely that his attack code will call RevertToSelf to remove the impersonation token, hoping to elevate his privilege level. In this case, he'll succeed quite nicely. Another thing he can do is call CreateProcess. The token for that new process will be copied not from the impersonation token, but from the process token, so the new process runs as SYSTEM.</p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: medium;"><b>10. Write Apps that Non-admins Can Actually Use</b></span></p>
<p><b>&nbsp;</b>This really is a corollary of the principal of least privilege. Quit running as an administrator yourself. Check out Keith's Web site for more info on how developers can easily run as non-admins at <a href="https://www.develop.com/kbrown/">https://www.develop.com/kbrown</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: small;"><a title="Collapse" href="javascript:void(0)"><span style="color: #000080;">Security Vulnerability</span></a></span></p>
<p>A security vulnerability is a weakness in a product that makes it impossible to prevent an attacker's malicious activities, even when the product is used correctly. Here are some possible malicious activities:</p>
<ul>
<li>Obtaining permissions on a computer that are higher than those of the user.</li>
<li>Taking over the operation of a user's computer.</li>
<li>Compromising data on a user's computer.</li>
</ul>
<p>Note:<br />Never assume that your application will be run only in specific environments. Your application might be used in settings that you did not expect, especially when the application becomes popular. Assume instead that your code will run in hostile environments, and design, write, and test your code accordingly.</p>
<p>A secure product helps protect the following:</p>
<ul>
<li>Confidentiality, integrity, and availability of a customer's information.</li>
<li>Integrity and availability of the processing resources under the control of the system owner or administrator.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Papers Presented at It Security for the Next Generation</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/papers-presented-at-it-security-for-the-next-generation</link>
      <pubDate>Wed, 29 Feb 2012 04:48:41 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/02/29/papers-presented-at-it-security-for-the-next-generation/</guid>
      <description><![CDATA["An effective attack method based on&nbsp; information exposed by search engines" by...]]></description>
      <content:encoded><![CDATA[<table style="width: 100%;" border="1" cellpadding="0">
<tbody>
<tr>
<td width="99%">
<p align="center">"An effective attack method based on<br />&nbsp; information exposed by search engines" by <strong>Antonios Gouglidis</strong>,<br />&nbsp; University of Macedonia</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Eavesdropping on encrypted VoIP<br />&nbsp; conversations: phrase spotting attack and defense approaches" by <strong>Vasily Prokopov</strong>, KTH Royal Institute<br />&nbsp; of Technology</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Schnorr signcryption" by <strong>Laura Savu</strong>, University of<br />&nbsp; Bucharest</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Security techniques for protecting data<br />&nbsp; in the cloud" by <strong>Venkata Sravan Kumar<br />&nbsp; Maddineni</strong>, Blekinge Institute of Technology</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Concept and development of a Facebook<br />&nbsp; application to raise security and risk awareness regarding social<br />&nbsp; engineering" by <strong>Iwan Gulenko</strong>,<br />&nbsp; Technical University Munich</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Fingerprinting Tor" by <strong>Pablo Carballude Gonz&aacute;lez</strong>,<br />&nbsp; University of Birmingham</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"The state of industrial control systems<br />&nbsp; security and national critical infrastructure protection" by <strong>Adesina Tinuade</strong>, Lulea<br />&nbsp; University of Technology</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"A mobile application for preventing<br />&nbsp; online sexual exploitation attacks" by <strong>Dimitrios<br />&nbsp; Michalopoulos</strong>, University of Macedonia</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Detecting flooding attacks using<br />&nbsp; power" by <strong>Jean Tajer</strong>,<br />&nbsp; University of Paris Descartes (via skype)</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Knowledge of information security<br />&nbsp; issues &ndash; a senior management and educational perspective" by <strong>Sarfraz Iqbal</strong>, Lulea<br />&nbsp; University of Technology</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Key factors and challenges for the<br />&nbsp; successful development of the e-security aspect of an organization&rsquo;s security<br />&nbsp; policy: an IS design and e-services approach" by <strong>Ali Mohammad Padyab</strong>, Lulea<br />&nbsp; University of Technology</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">"Design of a security protocol for the<br />&nbsp; mTAN procedure" by <strong>Daniel Zelle</strong>,<br />&nbsp; University of Paderborn</p>
</td>
</tr>
<tr>
<td width="99%">
<p align="center">&nbsp;</p>
<p align="center">Panel Discussion: <strong>"The Future of the Internet"</strong><strong></strong></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-size: large;">An effective attack method based on&nbsp;information exposed by search engines</span></p>
<p><span style="font-size: large;"><em>Web 2.0 consists one of the most emergent technologies of the World Wide Web. This type of technologies can be made available to consumers through a series of web services. Nevertheless, as a relative new approach, it is prone to various security issues. One of these is the potential to use web services provided by search engines such as Google&rsquo;s and Microsoft&rsquo;s Bing, in order to identify and attack vulnerable systems. In this paper, we describe a 3-step methodology that can be fully automated in order to deploy massive attacks against vulnerable systems. The methodology described takes advantage of the Google Hacking technique and extends it with two more steps that of information manipulation and the deployment of an exploit. An implementation of a python script demonstrates the applicability and the efficiency of the proposed attack. A real-world example, taking advantage of the JBoss JMX Management Console faulty configuration, indicates the extension of the problem. We anticipate this initiative to help in the identification of similar attack methods and the development of newly and more effective countermeasures against this type of attack methods.</em></span></p>
<p><span style="font-size: large;"><em></em></span>&nbsp;</p>
<p><span style="color: #0000ff; font-size: large;"><em>Eavesdropping on encrypted VoIP&nbsp;conversations: phrase spotting attack and defense approaches</em></span></p>
<p align="LEFT"><span style="font-size: large;">Voice over IP (VoIP) has recently become an important part of our day to day life. As VoIP technology evolves, matures and becomes increasingly popular, it also gains the attention of attackers who wish to eavesdrop on VoIP conversations.</span></p>
<p align="LEFT"><span style="font-size: large;">In this paper we first describe an attack that can identify phrases spoken within encrypted VoIP calls under certain (but commonly occurring) circumstances. Then we propose and analyze several methods to protect against phrase spotting attack. Finally, we introduce a model of a voice coder (vocoder) protected from this type of attack.</span></p>
<p align="LEFT"><span style="color: #0000ff; font-size: large;"></span></p>
<p><span style="color: #0000ff; font-size: large;"><em>Schnorr signcryption</em></span></p>
<p><span style="font-size: large;"><i>This article presents a new signcryption scheme which is based on the Schnorr digital signature algorithm. The new scheme represents my personal contribution to signcryption area. I have implemented the algorithm in a program and here are provided the steps of the algorithm, the results and some examples. The paper also contains the presentation of the original Signcryption scheme, based on ElGamal digital signature and discusses the practical applications of Signcryption in real life. The purpose of the study is to combine the public key encryption with Schnor digital signature in order to obtain less computational and communicational costs. Signcryption primitive is a better approach then Encrypt-then-Sign or Sign-then-Encrypt methods regarding the costs. All these algorithms offer the possibility to transmit a message over an insecure channel providing both authenticity and confidentiality.</i></span></p>
<p><span style="color: #0000ff; font-size: large;"><em></em></span></p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Concept and development of a Facebook application to raise security and risk awareness regarding social engineering</span></span></strong></span></p>
<p><span style="font-size: large;"><b>Social engineering</b>, in the context of security, is understood to mean the art of manipulating people into performing actions or divulging confidential information.<sup> </sup>While it is similar to a confidence trick or simple fraud, the term typically applies to trickery or deception for the purpose of information gathering, fraud, or computer system access; in most cases the attacker never comes face-to-face with the victims.</span></p>
<p><span style="font-size: large;">"Social engineering" as an act of psychological manipulation was popularized by hacker-turned-consultant Kevin Mitnick. The term had previously been associated with the social sciences, but its usage has caught on among computer professionals</span></p>
<p><strong><span style="color: #0000ff; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"></span></span></strong></p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Fingerprinting Tor</span></span></span></strong></span></p>
<p><span style="color: #000000; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Website fingerprinting is the act of recognizing web traffic through surveillance despite the use of encryption or anonymizing software. The general idea is to leverage the fact that many web sites have specific fixed request patterns and response byte counts that are known beforehand. This information can be used to recognize your web traffic despite attempts at encryption or tunneling. Websites that have an abundance of static content and a fixed request structure tend to be&nbsp; vulnerable to this type of surveillance. Unfortunately, there is enough static content on most websites for this to be the case.</span></span></span></p>
<p><strong><span style="color: #0000ff; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"></span></span></span></strong>&nbsp;</p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Detecting flooding attacks using power</span></span></span></strong></span></p>
<p><span style="color: #000000; font-size: large;">A <b>UDP flood attack</b> is a denial-of-service (DoS) attack using the User Datagram Protocol (UDP), a sessionless/connectionless computer networking protocol.</span></p>
<p><span style="color: #000000; font-size: large;">Using UDP for denial-of-service attacks is not as straightfforward as with the Transmission Control Protocol (TCP). However, a UDP flood attack can be initiated by sending a large number of UDP packets to random ports on a remote host. As a result, the distant host will:</span></p>
<ul>
<li><span style="color: #000000; font-size: large;">Check for the application listening at that port;</span></li>
<li><span style="color: #000000; font-size: large;">See that no application listens at that port;</span></li>
<li><span style="color: #000000; font-size: large;">Reply with an ICMP Destination Unreachable packet.</span></li>
</ul>
<p><span style="color: #000000; font-size: large;">Thus, for a large number of UDP packets, the victimized system will be forced into sending many ICMP packets, eventually leading it to be unreachable by other clients. The attacker may also spoof the IP address of the UDP packets, ensuring that the excessive ICMP return packets do not reach him, and anonymizing the attacker's network location(s).</span></p>
<p><span style="color: #000000; font-size: large;">This attack can be managed by deploying firewalls at key points in a network to filter out unwanted network traffic. The potential victim never receives and never responds to the malicious UDP packets because the firewall stops them.</span></p>
<p><strong><span style="color: #0000ff; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"></span></span></span></strong></p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Knowledge of information security issues &ndash; a senior management and educational perspective</span></span></span></span></strong></span></p>
<p><span style="color: #000000; font-size: large;"><b>Information security</b> means protecting information and information systems from unauthorized access, use, disclosure, disruption, modification, perusal, inspection, recording or destruction.</span></p>
<p><span style="color: #000000; font-size: large;">The terms information security, computer security and information assurance are frequently used interchangeably. These fields are interrelated often and share the common goals of protecting the confidentiality, integrity and availability of information; however, there are some subtle differences between them.</span></p>
<p><span style="color: #000000; font-size: large;">These differences lie primarily in the approach to the subject, the methodologies used, and the areas of concentration. Information security is concerned with the confidentiality, integrity and availability of data regardless of the form the data may take: electronic, print, or other forms. Computer security can focus on ensuring the availability and correct operation of a computer system without concern for the information stored or processed by the computer. Information assurance focuses on the reasons for assurance that information is protected, and is thus reasoning about information security.</span></p>
<p><span style="color: #000000; font-size: large;">Governments, military, corporations, financial institutions, hospitals, and private businesses amass a great deal of confidential information about their employees, customers, products, research, and financial status. Most of this information is now collected, processed and stored on electronic computers and transmitted across networks to other computers.</span></p>
<p><span style="color: #000000; font-size: large;"></span></p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Key factors and challenges for the successful development of the e-security aspect of an organization&rsquo;s security policy: an IS design and e-services approach</span></span></span></span></span></strong></span></p>
<p><span style="color: #000000; font-size: large;"><b>Information security</b> means protecting information and information systems from unauthorized access, use, disclosure, disruption, modification, perusal, inspection, recording or destruction.</span></p>
<p><span style="color: #000000; font-size: large;">The terms information security, computer security and information assurance are frequently used interchangeably. These fields are interrelated often and share the common goals of protecting the confidentiality, integrity and availability of information; however, there are some subtle differences between them.</span></p>
<p><span style="color: #000000; font-size: large;">These differences lie primarily in the approach to the subject, the methodologies used, and the areas of concentration. Information security is concerned with the confidentiality, integrity and availability of data regardless of the form the data may take: electronic, print, or other forms. Computer security can focus on ensuring the availability and correct operation of a computer system without concern for the information stored or processed by the computer. Information assurance focuses on the reasons for assurance that information is protected, and is thus reasoning about information security.</span></p>
<p><strong><span style="color: #0000ff; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"></span></span></span></span></span></strong></p>
<p><span style="font-size: large;"><strong><span style="color: #0000ff;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US">Design of a security protocol for the mTAN procedure</span></span></span></span></span></span></strong></span></p>
<p><span style="font-size: large;">A <b>Transaction authentication number</b>, <b>TAN</b> or <b>T.A.N.</b> is used by some online banking services as a form of <i>single use</i> one-time passwords to authorize financial transactions. TANs are a second layer of security above and beyond the traditional single-password authentication. </span></p>
<p><span style="font-size: large;">TANs are believed to provide additional security because they act as a form of two-factor authentication. Should the physical document or token containing the TANs be stolen, it will be of little use without the password; conversely, if the login data are obtained, no transactions can be performed without a valid TAN.</span></p>
<p><strong><span style="color: #0000ff; font-size: large;"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN-US"></span></span></span></span></span></span></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Signcryption - Related Work</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/signcryption-related-work</link>
      <pubDate>Wed, 29 Feb 2012 03:43:00 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/02/29/signcryption-related-work/</guid>
      <description><![CDATA[ElGamal Signcryption
The original signcryption scheme that has been introduced by Youliang Zheng in...]]></description>
      <content:encoded><![CDATA[<p><span style="color: #0000ff; font-size: xx-large;">ElGamal Signcryption</span></p>
<p><span style="font-size: large;">The original signcryption scheme that has been introduced by Youliang Zheng in 1997 is created on a derivation of ElGamal digital signature standard, combined with a public key encryption scheme.&nbsp;</span></p>
<p><span style="font-size: large;">Based on discrete algorithm problem, ElGamal Signcryption cost is:</span></p>
<div><span style="font-size: large;">&bull;58% less in average computation time</span></div>
<div><span style="font-size: large;">&bull;70% less in message expansion</span></div>
<p><span style="font-size: large;">Here is the detailed presentation of the fifth algorithms that make up the ElGamal signcryption scheme.</span></p>
<p><span style="font-size: large;">1)Setup</span></p>
<p><span style="font-size: large;">Signcryption parameters:</span></p>
<p><span style="font-size: large;">p = a large prime number, public to all;&nbsp; q = a large prime factor of p-1, public to all;</span><br /><span style="font-size: large;">g = an integer with order q modulo p, in [1,&hellip; , p-1], public to all </span></p>
<p><span style="font-size: large;">hash = a one-way hash function; </span></p>
<p><span style="font-size: large;">KH = a keyed one-way hash function = KHk(m) = hash(k, m)</span></p>
<p><span style="font-size: large;">(E, D) = the algorithms which are used for encryption and decryption of a private key cipher.</span></p>
<p><span style="font-size: large;">Alice sends a message to Bob.</span></p>
<p><span style="font-size: large;">2)KeyGen sender</span></p>
<p><span style="font-size: large;">Alice has the pair of keys (Xa, Ya):</span></p>
<p><span style="font-size: large;">Xa = Alice&rsquo;s private key, chosen randomly from [1, .., q-1];</span><br /><span style="font-size: large;">Ya=Alice&rsquo;s public key =&nbsp; mod p</span></p>
<p>&nbsp;</p>
<p><span style="font-size: large;">3)KeyGen receiver</span></p>
<p><span style="font-size: large;">Bob has the pair of keys(Xb, Yb):</span></p>
<p><span style="font-size: large;">Xb = Bob&rsquo;s private key, chosen randomly from [1, .., q-1];</span><br /><span style="font-size: large;">Yb = Bob&rsquo;s public key =&nbsp; mod p.</span></p>
<p><span style="font-size: large;">4)Signcryption</span></p>
<p><span style="font-size: large;">In order to signcrypt a message m to Bob, Alice has to accomplish the following operations:</span></p>
<p><span style="font-size: large;">Calculate</span></p>
<p><span style="font-size: large;">Split k in k1 and k2 of appropriate length.</span></p>
<p><span style="font-size: large;">Calculate r = KHk2(m) = hash(k2, m)</span></p>
<p><span style="font-size: large;">Calculate s = x/(r+Xa) mod q, if SDSS1 is used</span></p>
<p><span style="font-size: large;">Calculate s = x/(1+Xa ∙ r) mod q, if SDSS2 is used</span></p>
<p><span style="font-size: large;">Calculate c = Ek1(m) = the encryption of the message m with the key k1.</span></p>
<p><span style="font-size: large;">Alice sends to Bob the values (r, s, c).</span></p>
<p><span style="font-size: large;">5)Unsigncryption</span></p>
<p><span style="font-size: large;">In order to unsigncrypt a message from Alice, Bob has to accomplish the following operations:</span></p>
<p><span style="font-size: large;">Calculate k using r, s, g, p, Ya and Xb</span></p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/7103.10ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/7103.10ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/7103.10ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/7103.10ks.jpg" width="212" height="86" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;"></span></span></p>
<p><span style="font-size: large;">Split k in k1 and k2 of appropriate length.</span></p>
<p><span style="font-size: large;">Calculate m using the decryption algorithm m = Dk1(c).</span></p>
<p><span style="font-size: large;">Accept m as a valid message only if KHk2(m) = r.</span></p>
<p><span style="font-size: large;"></span>&nbsp;</p>
<p><span style="color: #0000ff; font-size: xx-large;">ECC&nbsp;Signcryption</span></p>
<p><span style="color: #0000ff; font-size: xx-large;"><span style="color: #0000ff; font-size: xx-large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3731.11ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3731.11ks.jpg"></a></span></span>&nbsp;<span style="font-size: medium;">The first signcryption scheme was introduced by Yuliang Zheng in 1997. Zheng also proposed an elliptic curve-based signcryption scheme that saves 58% of computational and 40% of communication costs when it is compared with the traditional elliptic curve-based signature-then-encryption schemes . </span></p>
<p><span style="font-size: medium;">The elliptic curve-based schemes are usually based on difficulty of Elliptic Curve Discrete Logarithm Problem (ECDLP) that is computationally infeasible under certain circumstances. The elliptic curve-based systems can attain to a desired security level with significantly smaller keys than those of required by their exponential-based counterparts. This can enhance the speed and leads to efficient use of power, bandwidth, and storage that are the basic limitations of resource-constrained devices</span></p>
<p><span style="color: #0000ff; font-size: xx-large;"></span>&nbsp;</p>
<p><span style="color: #0000ff; font-size: xx-large;">SECURITY MODELS FOR SIGNCRYPTION</span></p>
<p><span style="font-size: large;">1) TWO-USERS SECURITY MODEL</span></p>
<p><span style="font-size: large;">In the symmetric setting, there is only one specific pair of users who </span></p>
<p><span style="font-size: large;">(1) share a single key;</span></p>
<p><span style="font-size: large;">(2) trust each other;</span></p>
<p><span style="font-size: large;">(3) &ldquo;know who they are&rdquo;;</span></p>
<p><span style="font-size: large;">(4) only care about being protected from &ldquo;the rest of the world.&rdquo;</span></p>
<p>&nbsp;</p>
<p><span style="font-size: large;">&nbsp; 2) MULTI-USER SECURITY MODEL</span></p>
<p><span style="font-size: large;">A central difference between the multi-user model and the two-user models is the extra power of the adversary. In the multi-user model, the attacker may choose receiver (resp. sender) public keys when accessing the attacked users&rsquo; signcryption (resp. unsigncryption) oracles. For signcryption schemes that share some functionality between the signature and the encryption components, such as are the case for Zheng&rsquo;s Signcryption scheme and Schnorr Signcryption scheme, the extra power of the adversary in the multi-user model may be much more significant, and a careful case-by-case analysis is required to establish security of such schemes in the multi-user model.</span></p>
<p><span style="font-size: large;">As in the two-user setting, the multi-user setting also has two types of models depending on the identity of the attacker: an insider model and an outsider model.</span></p>
<p><span style="color: #0000ff; font-size: xx-large;"></span><span style="color: #0000ff; font-size: xx-large;"></span>&nbsp;</p>
<p><span style="color: #0000ff; font-size: xx-large;">Practical implementation of Signcryption in real life</span></p>
<p><span style="font-size: large;">The shared secret key between the parties makes possible an unlimited number of applications. Among these applications, one can first think of the following three:</span></p>
<p><span style="font-size: large;">&bull;secure and authenticated key establishment,</span></p>
<div class="O0"><span style="font-size: large;">&bull;secure multicasting, and </span></div>
<div class="O0"><span style="font-size: large;">&bull;authenticated key recovery.</span></div>
<p><span style="font-size: large;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A number of signcryption-based security protocols have been proposed for aforementioned networks and similar environments. These include:</span></p>
<p><span style="font-size: large;">&bull;secure ATM networks,</span></p>
<p><span style="font-size: large;">&bull;secure routing in mobile ad hoc networks,</span></p>
<p><span style="font-size: large;">&bull;secure voice over IP (VoIP) solutions,</span></p>
<p><span style="font-size: large;">&bull;encrypted email authentication by firewalls,</span></p>
<p><span style="font-size: large;">&bull;secure message transmission by proxy, and</span></p>
<p><span style="font-size: large;">&bull;mobile grid web services.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: large;">There are also various applications of signcryption in electronic commerce, where its security properties are very useful. Analyzing this security scheme from an application-oriented point of view, can be observed that a great amount of electronic commerce can take advantage of signcryption to provide efficient security solutions in the following areas: </span></p>
<div class="O0"><span style="font-size: large;">&bull;electronic payment,</span></div>
<p><span style="font-size: large;">&bull;electronic toll collection system,</span></p>
<p><span style="font-size: large;">&bull;authenticated and secured transactions with smart cards.</span></p>
<p><span style="color: #0000ff; font-size: xx-large;"></span></p>
<p><span style="font-size: large;"></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Targetted attacks and Signcryption</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/targetted-attacks-and-signcryption</link>
      <pubDate>Wed, 29 Feb 2012 03:17:40 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/02/29/targetted-attacks-and-signcryption/</guid>
      <description><![CDATA[&nbsp;

How we protect now: signatures +

&nbsp;
&nbsp;
Signcryption
Signcryption is the...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/7128.7ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/7128.7ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/7128.7ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/7128.7ks.jpg" width="624" height="423" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1732.8ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1732.8ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1732.8ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1732.8ks.jpg" width="627" height="377" /></a></p>
<p>&nbsp;</p>
<p align="LEFT"></p>
<p style="text-align: left;"><span style="color: #0000ff; font-size: x-large;">How we protect now: signatures +</span></p>
<p style="text-align: left;"><span style="color: #0000ff; font-size: x-large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1050.9ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1050.9ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1050.9ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1050.9ks.jpg" width="625" height="326" /></a></span></p>
<p><b><span style="font-size: x-large;" size="6"></span></b><span style="font-size: x-large;" size="6"></span>&nbsp;</p>
<p><span style="font-size: x-large;" size="6"></span>&nbsp;</p>
<p><span style="color: #0000ff; font-size: xx-large;" size="6">Signcryption</span></p>
<p><span style="font-size: medium;">Signcryption is the primitive that combines public key encryption and digital signature in a single logical step for obtaining less computational and communicational cost.</span></p>
<p><span style="font-size: medium;">Data confidentiality and data integrity are two of the most important functions of modern cryptography. Confidentiality can be achieved using encryption algorithms or ciphers, whereas integrity can be provided by the use of authentication techniques. Encryption algorithms fall into one of two broad groups:&nbsp; private key encryption and public key encryption. Likewise, authentication techniques can be categorized by private key authentication algorithms and public key digital signatures.</span></p>
<p><span style="font-size: medium;">Signcryption is&nbsp; the primitive that has been proposed by Youliang Zheng in 1997 and combines public key encryption with digital signature in a single logical step, obtaining a less cost for both communication and computation.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;">Signcryption has the intention that the primitive should satisfy the condition &ldquo;Cost(Signature &amp; Encryption)&lt;&lt; Cost(Signature) +Cost(Encryption).&rdquo;</span></p>
<p><span style="font-size: medium;">This inequality can be interpreted in a number of ways:</span></p>
<p><span style="font-size: medium;">&bull; A signcryption scheme should be more computationally efficient than a native combination of public-key encryption and digital signatures.</span></p>
<p><span style="font-size: medium;">&bull; A signcryption scheme should produce a signcryption &ldquo;ciphertext&rdquo; which is shorter than a naive combination of a public-key encryption ciphertext and a digital signature.</span></p>
<p><span style="font-size: medium;">&bull; A signcryption scheme should provide greater security guarantees and/or&nbsp; greater functionality than a native combination of public-key encryption and digital signatures.</span></p>
<p><span style="color: #0000ff; font-size: medium;" size="6"></span>&nbsp;</p>
<p><span style="font-size: medium;">A signcryption scheme typically consists of five algorithms, Setup, KeyGenS, KeyGenR, Signcrypt, Unsigncrypt:</span></p>
<p><span style="font-size: medium;">1) Setup - takes as input a security parameter 1^ k and outputs any common parameters param required by the signcryption schemes. This may include the security parameter 1^ k , the description of a group G and a generator g for that group,&nbsp;&nbsp;&nbsp;&nbsp; choices for hash functions or symmetric encryption schemes, etc.</span></p>
<p><span style="font-size: medium;">2) Key Generation S(Gen) - generates a pair of keys for the sender&nbsp; </span></p>
<p><span style="font-size: medium;">3) KeyGeneration R(Gen) - generates a pair of keys for the receiver </span></p>
<p><span style="font-size: medium;">4) Signcryption (SC) - is a probabilistic algorithm</span></p>
<p><span style="font-size: medium;">5) Unsigncryption (USC) - is a deterministic algorithm.</span></p>
<p><span style="font-size: medium;">A public key encryption scheme consists of three polynomial-time algorithms (EncKeyGen, Encrypt, Decrypt).</span></p>
<p><span style="font-size: medium;">EncKeyGen - Key generation is a probabilistic algorithm that takes as input a security parameter 1^ k and outputs a key pair (skenc, pkenc), written (skenc, pkenc)R&larr;EncKeyGen(1^k ). The public encryption key pkenc is widely distributed, while the private decryption key skenc should be kept secret. The public key defines a message m &isin; M and a ciphertext &isin; C.</span></p>
<p><span style="font-size: medium;">Encrypt - Encryption is a probabilistic algorithm that takes a message m &isin; M and the public key pkenc as input and outputs a ciphertext C &isin; C, written C &larr;Encrypt(pkenc,m)</span></p>
<p><span style="font-size: medium;">Decrypt&nbsp; - Decryption is a deterministic algorithm that takes a ciphertext C &isin; C and the private key skenc as input and outputs either a message m &isin;M or the failure symbol &perp;, written m &larr; Decrypt(skenc,C).</span></p>
<p><span style="font-size: large;">A signcryption scheme is a combination between a public key encryption algorithm and a digital signature scheme.</span></p>
<p><span style="color: #0000ff; font-size: xx-large;" size="6"></span></p>]]></content:encoded>
    </item>
    <item>
      <title>The Malware Threat Landscape</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/the-malware-threat-landscape</link>
      <pubDate>Wed, 29 Feb 2012 02:45:59 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/02/29/the-malware-threat-landscape/</guid>
      <description><![CDATA[What to watch for in 2012 


A whole new generation of more organized and more malevolent malware...]]></description>
      <content:encoded><![CDATA[<p style="text-align: center;" align="LEFT"><span style="color: #0000ff; font-size: xx-large;">What to watch for in 2012</span> <span style="font-size: large;"><strong></strong></span></p>
<ul>
<li>
<div align="LEFT"><span style="font-size: large;"><strong>A whole new generation of more organized and more malevolent malware writers</strong></span></div>
</li>
<li><span style="font-size: large;"><strong> Malware attacks targeting information as well as for financial gain</strong></span></li>
<li><span style="font-size: large;"><strong> Information becoming the target of the new breed of cybercriminals and another source of income for those already in the game</strong></span></li>
<li><span style="font-size: large;"><strong> Steal Everything! </strong></span><span style="font-size: large;"><strong><span size="5">The emergence of Spyware 2.0, a new class of malware that steals users' personal data (identity theft) plus other type of data it can find. Spyware 2.0 becoming a popular tool for both new and old players alike </span></strong></span></li>
<li><span style="font-size: large;"><strong> An increasing number of attacks on corporate users by traditional cybercriminals and the gradual decline in direct attacks on everyday users</strong></span></li>
<li><span style="font-size: large;"><strong> Vulnerabilities remaining the principal method of carrying out attacks and a significant increase in the scope and speed with which they are used</strong></span></li>
</ul>
<p><span style="font-size: large;"><strong></strong></span>&nbsp;</p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5722.1ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5722.1ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5722.1ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5722.1ks.jpg" width="551" height="402" /></a></span></p>
<p><span style="font-size: large;"></span>&nbsp;</p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/4336.2ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/4336.2ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/4336.2ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/4336.2ks.jpg" /></a></span></p>
<p><span style="font-size: large;"></span>&nbsp;</p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3632.3ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3632.3ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3632.3ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3632.3ks.jpg" /></a></span></p>
<p><span style="font-size: large;"></span>&nbsp;</p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1157.4ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1157.4ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/1157.4ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/1157.4ks.jpg" /></a></span></p>
<p><span style="font-size: large;"></span>&nbsp;</p>
<p><span style="font-size: large;"></span></p>
<p align="LEFT"><span style="color: #0000ff; font-size: x-large;">Scareware </span></p>
<p align="LEFT"><span style="color: #0000ff; font-size: x-large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/2500.5ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/2500.5ks.jpg"></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3157.5ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3157.5ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/3157.5ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/3157.5ks.jpg" /></a></span></p>
<p><span style="font-size: large;"><b><span style="font-size: x-large;" size="6"></span></b><span style="font-size: x-large;" size="6"></span><span style="color: #0000ff; font-size: x-large;"></span></span>&nbsp;</p>
<p><span style="font-size: large;"><span style="color: #0000ff; font-size: x-large;">Scareware for Mac</span></span></p>
<p><span style="font-size: large;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/4628.6ks.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/4628.6ks.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/4628.6ks.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/4628.6ks.jpg" /></a></span></p>]]></content:encoded>
    </item>
    <item>
      <title>"It Security for the Next Generation" Kaspersky Conference Prague February 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/it-security-for-the-next-generation-kaspersky-conference-prague-february-2012</link>
      <pubDate>Tue, 28 Feb 2012 11:38:00 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2012/02/28/it-security-for-the-next-generation-kaspersky-conference-prague-february-2012/</guid>
      <description><![CDATA[This conference brings together students, experts, scientists and researchers in a collaborative...]]></description>
      <content:encoded><![CDATA[<p>This conference brings together students, experts, scientists and researchers in a collaborative environment to present and discuss issues relating to cybercrime. It provides a platform for the next generation to share their respective knowledge and experiences and to develop new ideas to improve the level of security in information technology.</p>
<p><a href="https://www.kaspersky.com/educational-events/it_security_conference_2012">https://www.kaspersky.com/educational-events/it_security_conference_2012</a></p>
<p>&nbsp;</p>
<h3>Conference Topics:</h3>
<ol>
<li style="list-style-type: none; list-style-image: none;">
<h3>Technical nomination</h3>
</li>
<li>Trends in Anti-Spam Development &ndash; Techniques, Methods in the &ldquo;Spam Arms Race&rdquo; and new Innovations</li>
<li>Dangers of an increasingly Networked World</li>
<li>'In the Cloud' Security</li>
<li>Future Technologies for Detecting and Combating Malware (e.g. artificial intelligence, fuzzy systems, p2p networks)</li>
</ol><ol>
<li style="list-style-type: none; list-style-image: none;">
<h3>Social, economic and legal nomination</h3>
</li>
<li>Emerging Threats (e.g. social network security, embedded systems security, mobile security, online banking security)</li>
<li>Challenges and Opportunities for IT-Security Companies within the next 10 years</li>
<li>Impact of technologies on Data Protection, Copy and Intellectual Property Rights and Jurisdiction</li>
<li>Education in IT Security - Trends and Questions</li>
</ol>
<p>&nbsp;</p>
<p align="LEFT"></p>
<p>　</p>
<p><b><span style="font-size: xx-large;" size="7">The Malware Threat Landscape 2012 &amp; Beyond </span></b></p>
<p align="LEFT"></p>
<p><strong>Malicious software</strong></p>
<p>Viruses</p>
<p>&bull;Spread from file to file</p>
<p>Worms</p>
<p>&bull;Spread from computer to computer</p>
<p>Trojans</p>
<p>&bull;No self-replication</p>
<p>Malicious tools</p>
<p>&bull;Used by malware authors</p>
<p>&bull;e.g. Packers, constructors, exploits</p>
<p>&nbsp;</p>
<p align="LEFT"></p>
<p><span style="color: #0000ff; font-size: large;">How and where to detect malware</span></p>
<p><b><span style="font-size: medium;" size="4">On-Site (Local Anti-Virus Engine) </span></b></p>
<p>All round protection</p>
<p><span style="color: #ff9900;">CPU intensive</span></p>
<p><span style="color: #ff9900;">Requires frequent updates</span></p>
<p>&nbsp;</p>
<p><strong><span style="font-size: medium;">Cloud</span></strong></p>
<p>No updates</p>
<p>Fast detection</p>
<p>Able to use in-house technologies without revealing it (better protection)</p>
<p><span style="color: #ff9900;">No protection without Internet connectivity</span></p>
<p><span style="color: #ff9900;">Problems with latency</span></p>
<p>&nbsp;<span style="font-size: small;"><strong>Optimum solution:Hybrid (on site + cloud)</strong></span></p>
<p><span style="font-size: small;"><strong></strong></span>&nbsp;</p>
<p></p>
<p><span style="color: #0000ff; font-size: large;"><strong>Top countries with harmful hostings by Web Anti-Virus</strong></span></p>
<p><span style="font-family: Arial,Arial; font-size: xx-large;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial; font-size: xx-large;" face="Arial,Arial" size="7"></span></span>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8585.1K.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8585.1K.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8585.1K.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8585.1K.jpg" /></a></p>
<p>&nbsp;</p>
<p><strong><span style="color: #0000ff; font-family: Arial,Arial; font-size: large;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial;" face="Arial,Arial" size="7">Top countries with the highest share of attacks on users&rsquo; computers (Web-Antivirus)</span></span></strong></p>
<p><strong><span style="color: #0000ff; font-family: Arial,Arial; font-size: large;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial;" face="Arial,Arial" size="7"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8322.2K.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8322.2K.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/8322.2K.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/8322.2K.jpg" /></a></span></span></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="color: #0000ff; font-size: xx-large;">Nature of Threats</span></strong></p>
<p><span style="color: #0000ff;">Drive-by downloads</span></p>
<p>Recipe</p>
<p>1.Find a vulnerable server</p>
<p>2.Obfuscate your code to prevent easy analysis</p>
<p>3.Insert your script onto the website</p>
<p>4.Redirect users of the infected website to your malicious website</p>
<p>5.Download malware to victims machine</p>
<p align="LEFT"><br /><span style="color: #0000ff;">Botnet &ndash; robot (zombie) network</span></p>
<p>&bull;A number of comprised machines controlled remotely</p>
<p><strong><span style="color: #0000ff; font-family: Arial,Arial; font-size: large;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial; font-size: x-large;" face="Arial,Arial" size="6"><span style="font-family: Arial,Arial; font-size: x-large;" face="Arial,Arial" size="6"></span></span></span></span></strong>&nbsp;</p>
<p><strong><span style="color: #0000ff; font-family: Arial,Arial; font-size: large;" face="Arial,Arial" size="7"><span style="font-family: Arial,Arial;" face="Arial,Arial" size="7">Conclusion thoughts of the conference</span></span></strong></p>
<p>Cybercrime is here to stay</p>
<p>So we need to find ways to mitigate the risks</p>
<p>&lsquo;Follow me&rsquo; security</p>
<p><span style="font-size: medium;" size="4">All devices </span></p>
<p><span style="font-size: medium;" size="4">All types of threat </span></p>
<p><span style="font-size: medium;" size="4">Manageable </span></p>
<p>We need to foster a culture of security awareness. Education of security threats, policies and safe surfing habits</p>
<p><br />&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5658.3MS.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5658.3MS.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/36/91/5658.3MS.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-36-91/5658.3MS.jpg" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Navigation using Object Model</title>
      <link>https://docs.microsoft.com/archive/blogs/laurasa/sharepoint-navigation-using-object-model</link>
      <pubDate>Tue, 22 Jun 2010 05:04:42 GMT</pubDate>
      <dc:creator><![CDATA[laurasa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/laurasa/2010/06/22/sharepoint-navigation-using-object-model/</guid>
      <description><![CDATA[When we run SPWeb.CurrentNavigationNodes or PublishingWeb. CurrentNavigationNodes &nbsp;to get nodes...]]></description>
      <content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;"><span style="font-family: Calibri;">When we run SPWeb.CurrentNavigationNodes or PublishingWeb. CurrentNavigationNodes &nbsp;to get nodes collection we are getting it from database<o:p></o:p></span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;"><span style="font-family: Calibri;">But the publishing portal&rsquo;s navigation does not enter newly created nodes into database unless we do some activity on the navigation provider via &nbsp;_layouts\AreaNavigationSettings.aspx. </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;"><span style="font-family: Calibri;">I also tried to move/hide the nodes before fetching it using a similar console application ; Just to see if I get those newly added nodes. But I don&rsquo;t and it&rsquo;s because when I do &nbsp;SPNavigationNode.MoveToLast I am sorting or moving the database nodes and not the one which are there in Memory which will trigger entries of new nodes in database.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;"><span style="font-family: Calibri;"></span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;"><span style="font-family: Calibri;"></span></span></span></p>
<p><span style="color: #1f497d;"><span style="font-family: Calibri;">
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><b><span style="color: #1f497d;"><span style="font-size: small;">Workaround <o:p></o:p></span></span></b></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">The workaround to this issue is to use PortalSiteMapProvider class, get the provider that is being used and iterate, you will get all nodes, sorted the way you see in the Quick Launch<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">I have also attached this same code (.cs) in the attachment to this email as well.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">The only issue here is that this code will only run in web context (httpcontext), so if you want to use in an ASPX page, you can create a user control or a webpart and add it in a page.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">If you have a standalone tool which needs to access navigation nodes, then I suppose you will have to put this code in a webservice and consume it.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">Here is the code<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">try<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortalSiteMapProvider sitemapprovider = (PortalSiteMapProvider)SiteMap.Providers["CurrentNavSiteMapProvider"];<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SiteMapNode rootNode = sitemapprovider.CurrentNode;<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteLine(rootNode.Title + "&lt;br&gt;");<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (rootNode.ChildNodes.Count &gt; 0)<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (SiteMapNode childNode in rootNode.ChildNodes)<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteLine(" - " + childNode.Title + "&lt;br&gt;");<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteLine("Error: " + e.Message + System.Environment.NewLine +&nbsp; "Stack trace: " + e.StackTrace);<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></span></p>
<span style="color: #1f497d;"><font face="Calibri">
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><o:p></o:p></p>
</font></span></span>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">&nbsp;</p>
</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>