<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Google Authenticator &#8211; privacyID3A</title>
	<atom:link href="https://www.privacyidea.org/tag/google-authenticator/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.privacyidea.org</link>
	<description>flexible, Open Source Multi Factor Authentication (2FA)</description>
	<lastBuildDate>Tue, 01 Nov 2016 07:43:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.privacyidea.org/wp-content/uploads/2016/06/cropped-only-logo-white-background-32x32.png</url>
	<title>Google Authenticator &#8211; privacyID3A</title>
	<link>https://www.privacyidea.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Create your own user portal</title>
		<link>https://www.privacyidea.org/create-user-portal/</link>
					<comments>https://www.privacyidea.org/create-user-portal/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Tue, 01 Nov 2016 07:43:33 +0000</pubDate>
				<category><![CDATA[documentation]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Google Authenticator]]></category>
		<category><![CDATA[REST API]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=1089</guid>

					<description><![CDATA[Sometimes it is important to add user self service functionalities to your own portal or create a stripped down version of the privacyIDEA user selfservice. You can strip down the rights for users in a very detailed manner using policies. You can also define an enrollment wizard policy, so that enrolling tokens gets even more [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Sometimes it is important to add user self service functionalities to your own portal or create a stripped down version of the privacyIDEA user selfservice. You can strip down the rights for users in a very detailed manner <a href="http://privacyidea.readthedocs.io/en/latest/policies/user.html" target="_blank">using policies</a>. You can also <a href="https://www.youtube.com/watch?v=diAGbsiG8_A" target="_blank">define an enrollment wizard policy</a>, so that enrolling tokens gets even more simpler. But sometimes even this is not enough.<a href="https://www.privacyidea.org/wp-content/uploads/2016/11/rest-api.png"><img decoding="async" class=" wp-image-1090 alignright" src="https://www.privacyidea.org/wp-content/uploads/2016/11/rest-api-300x256.png" alt="rest-api" width="177" height="151" srcset="https://www.privacyidea.org/wp-content/uploads/2016/11/rest-api-300x256.png 300w, https://www.privacyidea.org/wp-content/uploads/2016/11/rest-api.png 649w" sizes="(max-width: 177px) 100vw, 177px" /></a></p>
<h2>privacyIDEA REST API</h2>
<p>privacyIDEA provides a great and <a href="http://privacyidea.readthedocs.io/en/latest/modules/api.html" target="_blank">simple REST API</a> which lets you automate and integrate all tasks into other workflows. In fact the privacyIDEA Web UI as a single page application uses this REST API. Thus you could easily open the developer tools of your browser and monitor the HTTP requests that are sent.</p>
<h3>Authenticating a user</h3>
<p>A user needs to authenticate at the Web UI and also at the REST API. This is done by issuing the request</p>
<figure id="attachment_1092" aria-describedby="caption-attachment-1092" style="width: 152px" class="wp-caption alignright"><a href="https://www.privacyidea.org/wp-content/uploads/2016/11/auth-request.png"><img decoding="async" class=" wp-image-1092" src="https://www.privacyidea.org/wp-content/uploads/2016/11/auth-request-300x215.png" alt="Auth-Request in the Chrome developer tools." width="152" height="109" srcset="https://www.privacyidea.org/wp-content/uploads/2016/11/auth-request-300x215.png 300w, https://www.privacyidea.org/wp-content/uploads/2016/11/auth-request.png 593w" sizes="(max-width: 152px) 100vw, 152px" /></a><figcaption id="caption-attachment-1092" class="wp-caption-text">Auth-Request in the Chrome developer tools.</figcaption></figure>
<pre>POST /auth</pre>
<p><a href="http://privacyidea.readthedocs.io/en/latest/modules/api/auth.html#post--auth" target="_blank">The auth request</a> takes the username and the users password. Which password the user needs to provide, depends on the <em>login_mode</em> policy in the <em>WebUI</em> scope. The auth request returns an <em>authorization token</em> which needs to be added to each subsequent request.</p>
<p>You can also issue a test request using <em>httpie</em> from the command line like this:</p>
<pre>% http --verify no --pretty all --json POST https://localhost/auth username=secureuser password=test
/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:794: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
 InsecureRequestWarning)
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 843
Content-Type: application/json
Date: Tue, 01 Nov 2016 07:28:55 GMT
Server: nginx/1.10.0 (Ubuntu)

{
 "id": 1, 
 "jsonrpc": "2.0", 
 "result": {
 "status": true, 
 "value": {
 "default_tokentype": "totp", 
 "log_level": 30, 
 "logout_time": 120, 
 "menus": [], 
 "policy_template_url": "https://raw.githubusercontent.com/privacyidea/policy-templates/master/templates/", 
 "realm": "secure", 
 "rights": [], 
 "role": "user", 
 "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNlY3VyZXVzZXIiLCJub25jZSI6IjQyYjhhMWIzNDEzYTA5ZmQzMDljMDI3NzY3Mjc4N2I5MmFiNWI2ZWUiLCJhdXRodHlwZSI6InBhc3N3b3JkIiwicmVhbG0iOiJzZWN1cmUiLCJyaWdodHMiOltdLCJyb2xlIjoidXNlciIsImV4cCI6MTQ3Nzk4ODkzNX0.vCXNNV4Bmt2UuC0FMuc2qMbr8i_8zweROadvfLYcJzU", 
 "token_page_size": 15, 
 "token_wizard": false, 
 "token_wizard_2nd": false, 
 "user_details": false, 
 "user_page_size": 15, 
 "username": "secureuser"
 }
 }, 
 "time": 1477985335.376939, 
 "version": "privacyIDEA 2.16.dev3", 
 "versionnumber": "2.16.dev3"
}</pre>
<p>Using the authorization token</p>
<p>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNlY3VyZXVzZXIiLCJub25jZSI6IjQyYjhhMWIzNDEzYTA5ZmQzMDljMDI3NzY3Mjc4N2I5MmFiNWI2ZWUiLCJhdXRodHlwZSI6InBhc3N3b3JkIiwicmVhbG0iOiJzZWN1cmUiLCJyaWdodHMiOltdLCJyb2xlIjoidXNlciIsImV4cCI6MTQ3Nzk4ODkzNX0.vCXNNV4Bmt2UuC0FMuc2qMbr8i_8zweROadvfLYcJzU</p>
<p>for subsequent call.</p>
<h3>Enrolling a token</h3>
<p>Now the user can enroll a token using the <a href="http://privacyidea.readthedocs.io/en/latest/modules/api/token.html" target="_blank">token endpoints</a>. You need to issue a /token/init request.</p>
<p>To enroll an TOTP token the user would have to issue such a request:</p>
<pre>http --verify no --pretty all --json POST https://localhost/token/init \
     PI-Authorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNlY3VyZXVzZXIiLCJub25jZSI6IjQyYjhhMWIzNDEzYTA5ZmQzMDljMDI3NzY3Mjc4N2I5MmFiNWI2ZWUiLCJhdXRodHlwZSI6InBhc3N3b3JkIiwicmVhbG0iOiJzZWN1cmUiLCJyaWdodHMiOltdLCJyb2xlIjoidXNlciIsImV4cCI6MTQ3Nzk4ODkzNX0.vCXNNV4Bmt2UuC0FMuc2qMbr8i_8zweROadvfLYcJzU \
     type=totp genkey=1 otplen=6</pre>
<p>The secret and also the image of the QR code to be scanned with a smartphone app is contained in the response:</p>
<pre> "googleurl": {
 "description": "URL for google Authenticator", 
 "img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeoAAAHqAQAAAADjFjCXAAAD90lEQVR4nO2dTY6jSBBGXwxItQSpD+Cj4JuN6khzAziKbwBLS6CYRWaQ6epZGUaW218sEJR5SqUUiv+kzDkg019HaBAuXLhw4cKFCxd+Lm5ZWuzKZkw9MKVHsOtS7uLV63mrC/80HHd3Z3B397lx9xmgc2fwNd/Rxd0wN14R41vvXfir8SWbL7t2Kz4CTH3jDDczoHGGeTMAzKw9eXXhn4W3P559MrDh1q4M49Y6rC3DCA6Nw3Lq6sKFAzDMjee4rm/crkuLf/cAi9n/vrrwj8I7dx8JD+t+txzh7c41KSHg7uvJqwv/SHwyM7MeYGmx6/KVzBxAfvx7BmBLKeypqwv/MDwpVmmL+XTJhsxZNvPpsuKwpkfoHjtob7134a/Co3ISRZNUFxkBH2myig0zJIc7+Ir73KhyIvwMfDOzy4pdSSbNk66N3Yp/X1ZySWX5cqZ+k4cVfkCictKtLcM/X85kjdtwM5zubs7y5ZZeW3qM7m4++BbYW+9d+Kvw7GEh27XsTZObbTzZurHbXwEgpbnysMKflRLIAdERG2bIHTEeumSlVaa4TvjzEtkElGZsJBeNl/ShqKMXkdYJfx7374t71X2YerArAMuXA1tqxuYGrfqwwo9JMVwM1SVGAKqSyhxhXlVheeu9C38V/pA5QK7I5fQh+9pcQ2FXPVSvE35IstZ1/ptUypWS26yYOcyT1gl/WrL+zECaZeo8HGlys8XDQsk1ZOuEH5Bi61Idboy54VC9ukFWzJy0TvgBiSrx7j4jrsuXsH/p5fyoep3wQ1JZsxLN7XoVZeH9h4j1pHXCD0j4y1wRybLnsLA7170jIQ8r/Bj+0Gno9kkTGi9tsTrh6B7t31vvXfir8Lpysg/UVWU5Qv8i4Nt7s9I64U9LZBNF/1bKVEnKZpNznR9eka0T/rwU9xljTLuvjZmT/N4M+Tw26ogJPyRVbpD1L8py46P+7YlsXch7670LfxX+4EjnaLf+R4RXXdyldcIPSVYf4pzr8Gjr9kDuR29CWif8gFS2rrT7PSadqiGn6qJZYuEn4O63Frt2ax7ZzHObUTnJh8I2g+5umuoUfl4fNs8yVVavLtDlBhmgcxPCD+LV2X+HNX/Oaf9byGbO8mtlGMGmfo4f33rvwl+Ll291Ml3u9WfqhqpLAbC0MNzkYYWfgA+lVBzHc1JZeOqhfDAxVYmn/uTVhX8Y/nAyMc7j1DMnUTQpbYmCKa4Tfh4eZ1/zecQ8bjdDjKU0iuuEH5Eftq7MDVcTxOkzieWT2MphhR+Tug9bHfFv6t7sGKNN0TnTpJPwQxL1OmAvC5ejiOzzdWHhVnRGTPhB3PTf64QLFy5cuHDhwv8I/F/uK4F3xSCgRwAAAABJRU5ErkJggg==", 
 "value": "otpauth://totp/TOTP0008C54E?secret=ND2QFT6LIMFXCEARWIMTBT456NY6K7H5&amp;counter=1&amp;digits=6&amp;issuer=privacyIDEA"
 },</pre>
<p>In the same way you could let the user manage his tokens, delete them, reset PINs etc&#8230;</p>
<p>For more information see the <a href="http://privacyidea.readthedocs.io/en/latest/modules/api.html" target="_blank">complete REST API documentation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/create-user-portal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Choose required Security Level with privacyIDEA</title>
		<link>https://www.privacyidea.org/choose-required-security-level-with-privacyidea/</link>
					<comments>https://www.privacyidea.org/choose-required-security-level-with-privacyidea/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Wed, 20 Jan 2016 11:22:09 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Google Authenticator]]></category>
		<category><![CDATA[security level]]></category>
		<category><![CDATA[SMS OTP]]></category>
		<category><![CDATA[Token Types]]></category>
		<category><![CDATA[Yubikey]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=852</guid>

					<description><![CDATA[With SMS OTP a one time password is sent to a mobile phone. The user is supposed to enter this one time password in addition to his static password. This way, the authenticating party thinks to verify, that the user is in the possession of the mobile phone. This is a cheap way to establish [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>With SMS OTP a one time password is sent to a mobile phone. The user is supposed to enter this one time password in addition to his static password. This way, the authenticating party thinks to verify, that the user is in the possession of the mobile phone.</p>
<p>This is a cheap way to establish two-factor authentication with something you know and something you have.</p>
<h2>Several attack vectors for Two-Factor Authentication with SMS OTP</h2>
<figure id="attachment_856" aria-describedby="caption-attachment-856" style="width: 300px" class="wp-caption alignright"><a href="https://www.privacyidea.org/wp-content/uploads/2016/01/mobile-phone-991494_640.jpg" rel="attachment wp-att-856"><img loading="lazy" decoding="async" class="size-medium wp-image-856" src="https://www.privacyidea.org/wp-content/uploads/2016/01/mobile-phone-991494_640-300x167.jpg" alt="Your OTP on the mobile is vulnarable." width="300" height="167" srcset="https://www.privacyidea.org/wp-content/uploads/2016/01/mobile-phone-991494_640-300x167.jpg 300w, https://www.privacyidea.org/wp-content/uploads/2016/01/mobile-phone-991494_640.jpg 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-856" class="wp-caption-text">Your OTP on the mobile is vulnarable.</figcaption></figure>
<p>But lateley there are again some news about the vularability of OTP values sent via SMS. There are different attack vectors. In one scenario <a href="http://mobilemarketingmagazine.com/97087-2/" target="_blank">the attacker can reroute or &#8220;steal&#8221; the SIM card by doing social engineering at the telephone provider</a>. In another scenario <a href="http://www.businessinsider.de/malware-discovered-that-defeats-two-factor-authentication-symantec-2016-1" target="_blank">a malicious software is installed on the smartphone, that can sniff the OTP value</a>.</p>
<p>Yes, privacyIDEA also supports sending OTP values via SMS and privacyIDEA is also vulnarable to these attacks &#8211; since it is the basic concept that lacks the necessary security.</p>
<h2>Security is shades of grey &#8212; or white</h2>
<figure id="attachment_855" aria-describedby="caption-attachment-855" style="width: 300px" class="wp-caption alignleft"><a href="https://www.privacyidea.org/wp-content/uploads/2016/01/mixing-desk-351478_640.jpg" rel="attachment wp-att-855"><img loading="lazy" decoding="async" class="size-medium wp-image-855" src="https://www.privacyidea.org/wp-content/uploads/2016/01/mixing-desk-351478_640-300x199.jpg" alt="Security is shades of grey. Some volume between 0 and 99%." width="300" height="199" srcset="https://www.privacyidea.org/wp-content/uploads/2016/01/mixing-desk-351478_640-300x199.jpg 300w, https://www.privacyidea.org/wp-content/uploads/2016/01/mixing-desk-351478_640.jpg 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-855" class="wp-caption-text">Security is shades of grey. Some volume between 0 and 99%.</figcaption></figure>
<p>But you might have heard that &#8220;there is no 100% security&#8221;. And that &#8220;security is a process&#8221;. And now I add to these idioms &#8220;Security is Shades of Grey&#8221;.</p>
<p>You gain security by using a password on your account to lock the desktop. But are you secure? You gain further security by adding a second factor during authentication. But is your data secure, now? You gain further security by encrypting the harddisk (a.k.a. your data) of your desktop. But is it secure?</p>
<p>Yes, it is good to use a password. You should not use none.</p>
<p>And yes, it is goot to use SMS OTP. It is better than to not use it. In certain cases it might be OK to use SMS OTP being aware of the possible risks.</p>
<p>But there are further steps or other possiblities to increase security.</p>
<h2>Choice of Security Level</h2>
<p>With privacyIDEA you have the choice, which security level you are going to use. And this may even depend on the application and the client.</p>
<p>You may use <a href="https://www.privacyidea.org/about/features/">SMS OTP, Email OTP, Smartphone Apps like the Google Authenticator, hardware key fobs and seedable tokens</a> like the <a href="https://www.privacyidea.org/privacyidea-admin-client-for-yubikey-mass-enrollment/">Yubikey</a>. Using privacyIDEA&#8217;s policy definitions, <a href="https://www.privacyidea.org/enforcing-security-policies-security-levels-with-different-otp-token-types/">you can define which token type is allowed to be used for authentication at which application</a>. This way you can accept the risk of using e.g. SMS OTP for low security applications and hardware devices like the yubikey for applications requiring higher confidentiality.</p>
<p>See the <a href="http://privacyidea.readthedocs.org/en/latest/policies/index.html" target="_blank">online documentation on policies</a> for more information or come to the <a href="https://groups.google.com/forum/#!forum/privacyidea" target="_blank">Google Group mailing list</a>.</p>
<p>If you require any <a href="https://netknights.it/en" target="_blank">professional assistance you may contact the maintainer of privacyIDEA</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/choose-required-security-level-with-privacyidea/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>f*** the smartphone</title>
		<link>https://www.privacyidea.org/f-the-smartphone/</link>
					<comments>https://www.privacyidea.org/f-the-smartphone/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Tue, 07 Jul 2015 19:13:44 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[FreeOTP]]></category>
		<category><![CDATA[Google Authenticator]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Token Security]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=674</guid>

					<description><![CDATA[I am really puzzled and scared by many modern &#8220;security&#8221; consultants who claim the smartphone to be the next security device or even my identification object. Knowing that the smartphone has more cores than most desktop computers, is connected faster to the internet (thanks to LTE) than most land line bound computers and most older [&#8230;]]]></description>
										<content:encoded><![CDATA[<figure id="attachment_689" aria-describedby="caption-attachment-689" style="width: 121px" class="wp-caption alignright"><a href="https://www.privacyidea.org/wp-content/uploads/2015/07/smartphone-153650_1280.png"><img loading="lazy" decoding="async" class=" wp-image-689" src="https://www.privacyidea.org/wp-content/uploads/2015/07/smartphone-153650_1280-194x300.png" alt="by OpenClipartVectors @pixabay" width="121" height="187" srcset="https://www.privacyidea.org/wp-content/uploads/2015/07/smartphone-153650_1280-194x300.png 194w, https://www.privacyidea.org/wp-content/uploads/2015/07/smartphone-153650_1280-661x1024.png 661w, https://www.privacyidea.org/wp-content/uploads/2015/07/smartphone-153650_1280.png 826w" sizes="auto, (max-width: 121px) 100vw, 121px" /></a><figcaption id="caption-attachment-689" class="wp-caption-text">by OpenClipartVectors @pixabay</figcaption></figure>
<p>I am really puzzled and scared by many modern &#8220;security&#8221; consultants who claim the smartphone to be the next security device or even my identification object. Knowing that</p>
<ul>
<li>the smartphone has more cores than most desktop computers,</li>
<li>is connected faster to the internet (thanks to LTE) than most land line bound computers</li>
<li>and most older smartphones get no software updates fixing security issues,</li>
</ul>
<p>this is a really scary scenario.</p>
<p>And the scariest thing of all is, that most users are not aware of this and are installing third party applications (belittling it as &#8220;App&#8221;) by a blink of an eye or the touch of a finger tip. Waving through all rights and access grants such an &#8220;App&#8221; wants to get.</p>
<p>Knowing this I am getting sick reading sentences like that on a daily basis:</p>
<blockquote><p>We can achieve the same level of security as from a physical token using a simple app and a public algorithm to generate Time-based One-Time Passwords (TOTP), for example.</p></blockquote>
<p style="text-align: right;"><a href="http://www.businesscomputingworld.co.uk/the-end-of-the-password-as-we-know-it/">http://www.businesscomputingworld.co.uk/the-end-of-the-password-as-we-know-it/</a></p>
<p>This in fact is not true. A hardware token has NOT far as many attack vectors like a smartphone, from which you can steal the secret key, that is used to calculate the OTP values. TOTP (<a href="https://tools.ietf.org/html/rfc6238#section-1.2" target="_blank">RFC6238</a>) is based on HOTP (RFC4226) which relies on a secret shared key. This secret key is used to generate the OTP value. If the secret key is stolen from the smartphone either by</p>
<ul>
<li>physical access to the smartphone or</li>
<li>by remote access via a trojan</li>
</ul>
<p>the key is also known to the attacker.</p>
<p>And now comes the nasty part with TOTP: As TOTP only relies on the secret key and the time (which is known to everyone), an attacker can impersonate the user WITHOUT him NOTICING it. The OTP value an attacker generates will be a valid OTP value. The OTP value, the user generates a few minutes later, will also be a valid OTP value. The user will only experience a small &#8220;hickup&#8221; if he would try to authenticate within 29 seconds after the attacker did. Would the user care? Or would he just try a second time?</p>
<p>Don&#8217;t get me wrong. The smartphone with a Google Authenticator or FreeOTP is a great device to increase security in an easy and CHEAP! way. But it has those problems a hardware token does not.</p>
<p>A preseeded hardware token of course has the problem, that the secret key was installed at the vendors site and I do not ask you to trust the vendor.</p>
<p>But there are also hardware tokens that you can initialize yourself. Then you are the only one who knows the secret key and the secret key can not get extracted from the hardware remotely.</p>
<p>So it is important to know what you are doing and decide which level of security you want to achieve. But it is a sham telling that a smartphone will get you the same level of security as a hardware token does!</p>
<p>Luckily you can choose what level of security you want to achieve, when using privacyIDEA.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/f-the-smartphone/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enforcing security policies: Security Levels with different OTP token types</title>
		<link>https://www.privacyidea.org/enforcing-security-policies-security-levels-with-different-otp-token-types/</link>
					<comments>https://www.privacyidea.org/enforcing-security-policies-security-levels-with-different-otp-token-types/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Mon, 07 Jul 2014 16:08:28 +0000</pubDate>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Google Authenticator]]></category>
		<category><![CDATA[mass enrollment]]></category>
		<category><![CDATA[security level]]></category>
		<category><![CDATA[server farm]]></category>
		<category><![CDATA[Yubikey]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=262</guid>

					<description><![CDATA[There are some good howtos around, so that you may already have secured your SSH login to your single server using Google Authenticator as described here. Or did you set up a Yubico validation server and configured Yubikey authentication for a bunch of hosts via RADIUS? Today I will show you, how you can setup [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>There are some good howtos around, so that you may already have secured your SSH login to your single server using Google Authenticator as described <a href="http://www.blackmoreops.com/2014/06/26/securing-ssh-two-factor-authentication-using-google-authenticator/" target="_blank">here.</a> Or did you set up a Yubico validation server and configured Yubikey authentication for a <a href="http://www.andybotting.com/using-the-yubikey-for-two-factor-authentication-on-linux" target="_blank">bunch of hosts</a> via RADIUS?</p>
<p>Today I will show you, how you can setup a scenario, where users can authenticate with Yubikey and/or Google Authenticator and you can define centrally, for which server the users need a Yubikey to authenticate and for which other server a Google Authenticator would be sufficient. Thus you can enforce security levels, meaning servers carrying more sensitive data can only be accessed with a hardware device like the Yubikey while others are ok to be accessed with a software token like the Google Authenticator.</p>
<h2>Unique user, two tokens, many machines</h2>
<p>You should already have read about <a href="http://www.howtoforge.com/how-to-enroll-and-use-a-yubikey-with-pivacyidea" target="_blank">enrolling yubikeys</a> and how to use privacyIDEA for  <a href="http://www.howtoforge.com/manage-two-factor-authentication-in-your-serverfarm-with-privacyidea" target="_blank">two factor authentication to your server farm</a>. So I assume, that you have a running installation.</p>
<p>You should have enrolled two tokens to the user root as depicted below:</p>
<figure id="attachment_264" aria-describedby="caption-attachment-264" style="width: 300px" class="wp-caption alignnone"><a href="https://www.privacyidea.org/wp-content/uploads/2014/07/two-otp-tokens.png"><img loading="lazy" decoding="async" class="wp-image-264 size-medium" src="https://www.privacyidea.org/wp-content/uploads/2014/07/two-otp-tokens-300x170.png" alt="two-otp-tokens" width="300" height="170" srcset="https://www.privacyidea.org/wp-content/uploads/2014/07/two-otp-tokens-300x170.png 300w, https://www.privacyidea.org/wp-content/uploads/2014/07/two-otp-tokens.png 923w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-264" class="wp-caption-text">One user with two tokens of different type</figcaption></figure>
<p>The user root has a Google Authenticator (serial OATH&#8230;, OTP PIN &#8220;google&#8221;) and a Yubikey (serial UBOM&#8230;, OTP PIN &#8220;yubi&#8221;) token.</p>
<p>Both tokens can be used to authenticate from all configured clients. From localhost (172.16.200.41):</p>
<pre><strong>[root@centos6 ~]#</strong> echo "User-Name=root, Password=google977398" | radclient -sx localhost auth testing123
Sending Access-Request of id 167 to 127.0.0.1 port 1812
 User-Name = "root"
 Password = "google977398"
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=167, length=48
 Reply-Message = "privacyIDEA access granted"
Total approved auths: 1
 Total denied auths: 0
 Total lost auths: 0
</pre>
<pre>[root@centos6 ~]# echo "User-Name=root, Password=yubi899739" | radclient -sx localhost auth testing123
Sending Access-Request of id 100 to 127.0.0.1 port 1812
 User-Name = "root"
 Password = "yubi899739"
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=100, length=48
 Reply-Message = "privacyIDEA access granted"
Total approved auths: 1
 Total denied auths: 0
 Total lost auths: 0</pre>
<p>Or from a remote host (172.16.200.106):</p>
<pre><strong>cornelius@puckel</strong> ~ % echo "User-Name=root, Password=google308786" | radclient -sx 172.16.200.41 auth testing123
Sending Access-Request of id 11 to 172.16.200.41 port 1812
    User-Name = "root"
    Password = "google308786"
rad_recv: Access-Accept packet from host 172.16.200.41 port 1812, id=11, length=48
    Reply-Message = "privacyIDEA access granted"

       Total approved auths:  1
       Total denied auths:  0
       Total lost auths:  0</pre>
<pre>cornelius@puckel ~ % echo "User-Name=root, Password=yubi867011" | radclient -sx 172.16.200.41 auth testing123
Sending Access-Request of id 47 to 172.16.200.41 port 1812
    User-Name = "root"
    Password = "yubi867011"
rad_recv: Access-Accept packet from host 172.16.200.41 port 1812, id=47, length=48
    Reply-Message = "privacyIDEA access granted"

       Total approved auths:  1
       Total denied auths:  0
       Total lost auths:  0
</pre>
<h2>The idea</h2>
<p>The idea is to allow access on the machine 172.16.200.106 only with yubikeys. This is the machine that carries tons of sensitive data and we do not want users to authenticate with their Google Authenticator.</p>
<h2>The host with the higher security level</h2>
<p>To accomplish this privacyIDEA provides a special <a href="https://privacyidea.org/doc/1.1/policies/authorization.html#serial" target="_blank">authorization policy</a> that will only grant access, if the the authentication was performed with the correct token.</p>
<p>So lets configure a policy:</p>
<figure id="attachment_272" aria-describedby="caption-attachment-272" style="width: 500px" class="wp-caption alignnone"><a href="https://www.privacyidea.org/wp-content/uploads/2014/07/sensitive.png"><img loading="lazy" decoding="async" class="wp-image-272" src="https://www.privacyidea.org/wp-content/uploads/2014/07/sensitive-300x159.png" alt="sensitive" width="500" height="266" srcset="https://www.privacyidea.org/wp-content/uploads/2014/07/sensitive-300x159.png 300w, https://www.privacyidea.org/wp-content/uploads/2014/07/sensitive-1024x544.png 1024w, https://www.privacyidea.org/wp-content/uploads/2014/07/sensitive.png 1025w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-272" class="wp-caption-text">A policy restricting the access to the system to Yubikey token types.</figcaption></figure>
<figure id="attachment_274" aria-describedby="caption-attachment-274" style="width: 284px" class="wp-caption alignright"><a href="https://www.privacyidea.org/wp-content/uploads/2014/07/system-config.png"><img loading="lazy" decoding="async" class="wp-image-274 size-medium" src="https://www.privacyidea.org/wp-content/uploads/2014/07/system-config-284x300.png" alt="system-config" width="284" height="300" srcset="https://www.privacyidea.org/wp-content/uploads/2014/07/system-config-284x300.png 284w, https://www.privacyidea.org/wp-content/uploads/2014/07/system-config.png 608w" sizes="auto, (max-width: 284px) 100vw, 284px" /></a><figcaption id="caption-attachment-274" class="wp-caption-text">Override the client interformation</figcaption></figure>
<p>This policy tells the system, that if the client 172.16.200.106 issues an authentication request, it should only be approved, if the serial number of the authenticating token contains the string &#8220;UBOM&#8221;.</p>
<p><strong>Note: </strong>As we are using RADIUS the client 172.16.200.106 issues a radius request to the RADIUS server 172.16.200.41 and the RADIUS server issues the request to the privacyIDEA server 172.16.200.41/127.0.01. Thus the request that arrives at the privacyIDEA server will always be issued by the RADIUS server. So we need to allow the RADIUS server to overwrite the client information &#8211; thus the RADIUS server will tell the privacyIDEA server, what the calling RADIUS client was.</p>
<p>We can set this in the <strong>system config</strong>.</p>
<p>We set the localhost and the eth0 IP of the RADIUS server in a comma seperated list: <strong>127.0.0.1, 172.16.200.41</strong>.</p>
<p>The yubikey now can successfully authenticate at the sensitive host:</p>
<pre><strong>cornelius@puckel</strong> ~ % echo "User-Name=root, Password=yubi773998" | radclient -sx 172.16.200.41 auth testing123
Sending Access-Request of id 88 to 172.16.200.41 port 1812
 User-Name = "root"
 Password = "yubi773998"
rad_recv: Access-Accept packet from host 172.16.200.41 port 1812, id=88, length=48
 Reply-Message = "privacyIDEA access granted"
<strong> Total approved auths: 1</strong>
 Total denied auths: 0
 Total lost auths: 0</pre>
<p>while the Google Authenticator fails to do so:</p>
<pre><strong>cornelius@puckel</strong> ~ % echo "User-Name=root, Password=google850707" | radclient -sx 172.16.200.41 auth testing123
Sending Access-Request of id 24 to 172.16.200.41 port 1812
 User-Name = "root"
 Password = "google850707"
rad_recv: Access-Reject packet from host 172.16.200.41 port 1812, id=24, length=55
 Reply-Message = "privacyIDEA server denied access!"
 Total approved auths: 0
<strong> Total denied auths: 1</strong>
 Total lost auths: 0</pre>
<p>We can see this in the privacyIDEA audit log:</p>
<figure id="attachment_277" aria-describedby="caption-attachment-277" style="width: 300px" class="wp-caption alignnone"><a href="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-fail.png"><img loading="lazy" decoding="async" class="wp-image-277 size-medium" src="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-fail-300x34.png" alt="Google Authenticator fails to authenticate on the server 172.16.200.106 with the sensitive data." width="300" height="34" srcset="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-fail-300x34.png 300w, https://www.privacyidea.org/wp-content/uploads/2014/07/audit-fail-1024x116.png 1024w, https://www.privacyidea.org/wp-content/uploads/2014/07/audit-fail.png 1296w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-277" class="wp-caption-text">Google Authenticator fails to authenticate on the server 172.16.200.106 with the sensitive data.</figcaption></figure>
<h2>Google Authenticator is still good for default servers</h2>
<p>But we can still use the Google Authenticator for the default server with lower security level:</p>
<pre>[root@centos6 ~]# echo "User-Name=root, Password=google069728" | radclient -sx 172.16.200.41 auth testing123
Sending Access-Request of id 162 to 172.16.200.41 port 1812
    User-Name = "root"
    Password = "google069728"
rad_recv: Access-Accept packet from host 172.16.200.41 port 1812, id=162, length=48
    Reply-Message = "privacyIDEA access granted"

       Total approved auths:  1
         Total denied auths:  0
           Total lost auths:  0</pre>
<p>We can check this in the audit log, again:</p>
<figure id="attachment_279" aria-describedby="caption-attachment-279" style="width: 300px" class="wp-caption alignnone"><a href="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-success.png"><img loading="lazy" decoding="async" class="wp-image-279 size-medium" src="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-success-300x31.png" alt="Successfull authenticate on low security server 172.16.200.41" width="300" height="31" srcset="https://www.privacyidea.org/wp-content/uploads/2014/07/audit-success-300x31.png 300w, https://www.privacyidea.org/wp-content/uploads/2014/07/audit-success-1024x106.png 1024w, https://www.privacyidea.org/wp-content/uploads/2014/07/audit-success.png 1154w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-279" class="wp-caption-text">Successfull authenticate on low security server 172.16.200.41</figcaption></figure>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>privacyIDEA can be used to enroll many different authenticators to your users and mange these devices centrally.</p>
<p>In a second step you can decide <strong>who</strong> authenticates <strong>where</strong> with <strong>which</strong> device without bothering to reenroll any device.</p>
<p>Thus you can enforce your security policies easily. Additionally the audit log keeps track of all events that do not comply to your security policy.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/enforcing-security-policies-security-levels-with-different-otp-token-types/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
