<?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>Authentication &#8211; privacyID3A</title>
	<atom:link href="https://www.privacyidea.org/tag/authentication/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.privacyidea.org</link>
	<description>flexible, Open Source Multi Factor Authentication (2FA)</description>
	<lastBuildDate>Tue, 12 Sep 2023 09:24:32 +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>Authentication &#8211; privacyID3A</title>
	<link>https://www.privacyidea.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>privacyIDEA 3.9 available</title>
		<link>https://www.privacyidea.org/privacyidea-3-9-released/</link>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Tue, 12 Sep 2023 07:00:00 +0000</pubDate>
				<category><![CDATA[release]]></category>
		<category><![CDATA[Application Specific Password]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Credential Management]]></category>
		<category><![CDATA[Day Password]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=2325</guid>

					<description><![CDATA[We are pleased to be able to release privacyIDEA 3.9. This release is an example of how privacyIDEA is ment to centrally manage all you authentication in one place - since successful authentication is a matter of smooth workflows.]]></description>
										<content:encoded><![CDATA[
<p><strong>Manage Login data in the most flexible way</strong></p>



<figure class="wp-block-image size-large"><a href="https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2.png"><img fetchpriority="high" decoding="async" width="1024" height="666" src="https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2-1024x666.png" alt="We pleased to be able to release privacyIDEA 3.9. This release is an example of how privacyIDEA is ment to centrally manage all you authentication in one place - since successful authentication is a matter of smooth workflows." class="wp-image-2329" srcset="https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2-1024x666.png 1024w, https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2-300x195.png 300w, https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2-768x499.png 768w, https://www.privacyidea.org/wp-content/uploads/2023/09/Privacy-Pressemitteil_SSH-Ueberarbeitet-rev2.png 1103w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><em>We are pleased to be able to release privacyIDEA 3.9. This release is an example of how privacyIDEA is ment to centrally manage all you authentication in one place &#8211; since successful authentication is a matter of smooth workflows.</em></p>



<p>privacyIDEA aims to be a management system where the administrator can easily manage the authentication topic for the users. You as an administrator can manage the OTP tokens (TOTP, HOTP apps, Yubikeys), tokentype like SMS or Email, even FIDO2. All you need for two factor authentication.</p>



<p>And privacyIDEA is able to also verify the first factor. The static password.</p>



<h2 class="wp-block-heading">Old authentication &#8211; new token types</h2>



<p>But sometimes you might see, that two factor authentication does not work out as expected. That applications do not play well with FIDO2/WebAuthn. Yes, sometimes applications do not play well even with OTP tokens. Take an Email client, that caches the user password and sends it, every time it fetches the emails from the server. The request will fail if it is sent with the same OTP value a second time.</p>



<p>Successful Authentication is not always a matter of choose the most modern cryptographic algorithm or the latest authentication method. </p>



<p>Sometimes there is an old, nasty application that refuses to work well with the 2FA method you are enrolling in your company. But privacyIDEA wants to help you as administrator to manage all these challenges in one system.</p>



<p>With privacyIDEA 3.9 we introduce two new token types which might sound old and insecure, but which are supposed to enable you to take a step forward, even if some old applications want to hold you back.</p>



<p>The<strong> application specific password</strong> token is simply a static password that can be bound to a specific application. The old application will send an authentication request against privacyIDEA and privacyIDEA will realize, that this auth request originated from this application and allow such application specific password tokens enrolled for this application to be used for authentication. A user can have a specific password for e.g. his email client, save this in his smartphone and privacyIDEA will accept this only for login requests by this email client resp. mail server. <br>You may check the conceptual evolution of this feature on <a href="https://github.com/privacyidea/privacyidea/issues/3260" data-type="URL" data-id="https://github.com/privacyidea/privacyidea/issues/3260">Github</a>.</p>



<p>The <strong>day password</strong> token is a similar quirky thing. In certain situations having an OTP token that changes all 30 seconds or 60 seconds may be to changeable for some users or use cases. But using no second factor and relying on a never changing static password is also not an option.</p>



<p>Why not have a token, that can be used for one hour? Or one day? The day password token in privacyIDEA 3.9 is a token type with a variable time window between one second and many days. During this time window the given code is valid during the whole time window and can be used as often as needed. It is similar to TOTP (in fact it is inherited from the TOTP token class), but has the above mentioned special effects. <br><br>This token type has its counter part in the privacyIDEA Authenticator App, which you can find in the <a rel="noreferrer noopener" href="https://play.google.com/store/apps/details?id=it.netknights.piauthenticator&amp;hl=de&amp;gl=US" data-type="URL" data-id="https://play.google.com/store/apps/details?id=it.netknights.piauthenticator&amp;hl=de&amp;gl=US" target="_blank">Google Play Store</a> and <a rel="noreferrer noopener" href="https://apps.apple.com/de/app/privacyidea-authenticator/id1445401301" data-type="URL" data-id="https://apps.apple.com/de/app/privacyidea-authenticator/id1445401301" target="_blank">Apple App Store</a>. The day password token is supported in the privacyIDEA Authenticator App starting with version 4.2.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort.png"><img decoding="async" src="https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-473x1024.png" alt="" class="wp-image-2341" width="202" height="437" srcset="https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-473x1024.png 473w, https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-139x300.png 139w, https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-768x1663.png 768w, https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-709x1536.png 709w, https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort-946x2048.png 946w, https://www.privacyidea.org/wp-content/uploads/2023/09/Tagespasswort.png 960w" sizes="(max-width: 202px) 100vw, 202px" /></a><figcaption>The privacyIDEA Authenticator App supports the new day password token.</figcaption></figure></div>



<p></p>



<p></p>



<h2 class="wp-block-heading">Improving SSH Key Management</h2>



<p>Managing SSH keys has been a bit cumbersome in the past. You as the administrator had to assign each SSH server to the SSH key, so that the user could use the SSH key to log to this server.</p>



<p>With privacyIDEA 3.9 you can now define service identifiers, which represent the servers. E.g. you could define an identifier &#8220;web servers&#8221; and assign SSH keys to this identifier. </p>



<p>Now you can simply have the SSH server identify as &#8220;web servers&#8221; to allow the login with this SSH key. This way it is easy as configuring the corresponding server, to add a new SSH server to the &#8220;web servers&#8221;.</p>



<p>The helper script <a href="https://github.com/privacyidea/privacyidea/blob/master/tools/privacyidea-authorizedkeys" data-type="URL" data-id="https://github.com/privacyidea/privacyidea/blob/master/tools/privacyidea-authorizedkeys" target="_blank" rel="noreferrer noopener">privacyidea-authorizedkeys</a>, which is supposed to run on the SSH servers has been modified so that it queires privacyIDEA for the corresponding service identifier.</p>



<h2 class="wp-block-heading">Changelog</h2>



<p>A new event handler can set the application assignment during enrollment. This helps with definding HOTP tokens as Offline-Tokens for the <a rel="noreferrer noopener" href="https://github.com/privacyidea/privacyidea-credential-provider/releases/tag/v3.4.0" data-type="URL" data-id="https://github.com/privacyidea/privacyidea-credential-provider/releases/tag/v3.4.0" target="_blank">privacyIDEA Credential Provider</a>. The PUSH token can do a decline, so that the authentication process is cancelled.</p>



<p>You can find the complete changelog at <a rel="noreferrer noopener" href="https://github.com/privacyidea/privacyidea/blob/master/Changelog" target="_blank">Github</a>.</p>



<h2 class="wp-block-heading">Install and Update</h2>



<p>You can download and update privacyIDEA 3.9 via the community repositories for <a href="https://privacyidea.readthedocs.io/en/latest/installation/ubuntu.html" data-type="URL" data-id="https://privacyidea.readthedocs.io/en/latest/installation/ubuntu.html" target="_blank" rel="noreferrer noopener">Ubuntu 20.04LTS and Ubuntu 22.04LTS</a> or via the <a href="https://privacyidea.readthedocs.io/en/latest/installation/pip.html" data-type="URL" data-id="https://privacyidea.readthedocs.io/en/latest/installation/pip.html" target="_blank" rel="noreferrer noopener">Python Package Index.</a></p>



<p>If you want to get involved, you can join the <a href="https://community.privacyidea.org" data-type="URL" data-id="https://community.privacyidea.org" target="_blank" rel="noreferrer noopener">discussion at the Forum</a> or coding at <a href="https://github.com/privacyidea/privacyidea" data-type="URL" data-id="https://github.com/privacyidea/privacyidea" target="_blank" rel="noreferrer noopener">Github</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is it really faster? Measuring the performance of authentication requests</title>
		<link>https://www.privacyidea.org/measuring-the-performance-of-authentication-requests/</link>
		
		<dc:creator><![CDATA[Friedrich Weber]]></dc:creator>
		<pubDate>Wed, 31 May 2017 10:11:04 +0000</pubDate>
				<category><![CDATA[release]]></category>
		<category><![CDATA[Whatsup]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Performance]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=1214</guid>

					<description><![CDATA[Some days ago, we released the new version 2.19 of the privacyIDEA authentication system. As explained in the release notes, we worked on improving the performance of authentication requests and managed to reduce the time needed to handle one authentication request by up to 71%! If such claims make you suspicious, we totally understand your [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280.jpg"><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1215" src="https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280-300x200.jpg" alt="" width="300" height="200" srcset="https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280-300x200.jpg 300w, https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280-768x512.jpg 768w, https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280-1024x682.jpg 1024w, https://www.privacyidea.org/wp-content/uploads/2017/05/group-of-people-1645356_1280.jpg 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>Some days ago, we released the <a href="https://www.privacyidea.org/privacyidea-2-19-u2f-secure-smartphone-apps/">new version 2.19</a> of the privacyIDEA authentication system. As explained in the release notes, we worked on improving the performance of authentication requests and managed to reduce the time needed to handle one authentication request by up to 71%! If such claims make you suspicious, we totally understand your concerns. This is why we will explain our benchmark approach in this blog post, so you can see for yourself where our numbers come from.</p>
<p>The first question we asked ourselves was: What exactly do we want to find out? As we worked a lot on optimizing the LDAP resolver, we first wanted to know if privacyIDEA 2.19 by itself processes authentication requests faster than privacyIDEA 2.18.1. The next question was whether performance can be further improved by enabling the new user cache feature of privacyIDEA 2.19. Here, we wanted to differentiate between a worst-case scenario with an empty cache and a best-case scenario with an already-populated cache. For each scenario, we wanted to get an idea of the time that privacyIDEA needs to handle an incoming authentication request. Having cleared our objective, the next step was creating a suitable lab environment that resembles the real world as closely as possible to run our benchmarks in.</p>
<h2>Our lab environment</h2>
<p>We created a lab environment as follows. First, we set up an <a href="https://www.univention.com/products/ucs/">Univention Corporate Server</a> and added 1000 users to its directory, which we simply called <code>user000</code> to <code>user999</code>, as well as a privacyIDEA service account. In the same network, we prepared two Ubuntu 16.04 virtual machines and installed privacyIDEA 2.18.1 on the first and privacyIDEA 2.19-dev5 on the second machine. On both instances, we added a realm with a LDAP resolver connecting to the Univention Corporate Server via LDAPS.</p>
<p>In order to keep our environment as close to the real world as possible, we would need to enroll HOTP or TOTP tokens for our 1000 users. However, we ultimately decided against it. For one, we suspected that the time spent calculating and checking the next OTP value on the server is relatively small in comparison to the time spent communicating with the LDAP server. Enrolling real OTP tokens would also require us to keep track of secrets and counter values on our benchmark client, which would complicate our setup a lot. To keep things simple, we instead decided to enroll one <a href="http://privacyidea.readthedocs.io/en/latest/configuration/tokens/spass.html">simple password (SPASS)</a> token for each user.</p>
<h2>Our benchmarking approach</h2>
<p>Now, we had set up two privacyIDEA instances with 1000 tokens. The next question was: How exactly do we now measure the performance of one authentication request? We decided to settle on the following approach: One benchmark consists of 2000 successful authentication requests, performed one after another for the users <code>user000</code> to <code>user999</code>. This means that each user is authenticated twice during one benchmark. For each authentication request, we measured the time from sending the request until receiving the response using a simple benchmarking script in Python based on <a href="http://docs.python-requests.org/en/master/">python-requests</a>. We copied the script to the virtual machines and performed all authentication requests against <code>https://localhost</code> in order to exclude the network delay from our measurements. Running the script then produces 2000 measurements of response time, of which we computed the median response time.</p>
<p>We decided to measure the response times for the following scenarios:</p>
<ul>
<li>Scenario #1: Authentication against privacyIDEA 2.18.1</li>
<li>Scenario #2: Authentication against privacyIDEA 2.19, with the user cache feature disabled</li>
<li>Scenario #3: Authentication against privacyIDEA 2.19, with the user cache enabled and initially empty</li>
<li>Scenario #4: Authentication against privacyIDEA 2.19, with an already-populated user cache. This means<br />
that the user cache contains valid 1000 entries, one for each user from <code>user000</code> to<br />
<code>user999</code>.</li>
</ul>
<p>The scenarios 2, 3 and 4 were carried out on the privacyIDEA 2.19 machine. For scenarios 3 and 4, we enabled the user cache with a timeout of one day (corresponding to 86400 seconds).</p>
<h2>Our results</h2>
<p>Now, we had everything in place to start our benchmarks! In total, running the benchmark for all four scenarios took roughly one hour and we obtained the following results.</p>
<table>
<tbody>
<tr>
<th>scenario#</th>
<th>description</th>
<th>median response time</th>
</tr>
<tr>
<td>#1</td>
<td>privacyIDEA 2.18.1</td>
<td>716ms</td>
</tr>
<tr>
<td>#2</td>
<td>privacyIDEA 2.19, disabled user cache</td>
<td>306ms</td>
</tr>
<tr>
<td>#3</td>
<td>privacyIDEA 2.19, enabled but initially empty user cache</td>
<td>268ms</td>
</tr>
<tr>
<td>#4</td>
<td>privacyIDEA 2.19, enabled and populated user cache</td>
<td>203ms</td>
</tr>
</tbody>
</table>
<p>Interesting! According to our measurements, an update to privacyIDEA 2.19 alone seems to reduce the median response time by roughly 57% (Scenario #2), even without enabling the user cache. This speedup can probably be attributed to some performance improvements in the LDAP resolver (see issues <a href="https://github.com/privacyidea/privacyidea/issues/655">655</a> and <a href="https://github.com/privacyidea/privacyidea/issues/664">664</a>).</p>
<p>Furthermore, if the user cache is enabled and fully populated (Scenario #4), the median response time is reduced by another 33%. In comparison to privacyIDEA 2.18.1, this corresponds to a reduction by 71%. Of course, this models a best-case scenario in which the LDAP server does not need to be queried any more at all. This may not be the case in the real world, e.g. if <a href="http://privacyidea.readthedocs.io/en/latest/policies/authentication.html#otppin">an otppin=userstore policy</a> is enabled.</p>
<p>Scenario #3 is quite interesting, as the user cache is initially empty and is subsequently populated during the first 1000 authentication requests. For the second round of 1000 authentications, privacyIDEA can rely on the user cache instead of querying the LDAP server. We can also observe this if we plot our measurements:</p>
<p><a href="https://www.privacyidea.org/wp-content/uploads/2017/05/run1-pi2.19-usercache.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-1217" src="https://www.privacyidea.org/wp-content/uploads/2017/05/run1-pi2.19-usercache-300x225.png" alt="" width="300" height="225" srcset="https://www.privacyidea.org/wp-content/uploads/2017/05/run1-pi2.19-usercache-300x225.png 300w, https://www.privacyidea.org/wp-content/uploads/2017/05/run1-pi2.19-usercache.png 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>The horizontal axis denotes our measurements and the vertical axis gives the median response time in milliseconds. We can observe that the median response time drops dramatically after the thousandth measurement, from which we can conclude that the user cache does have a measurable positive impact on the performance of authentication requests.</p>
<p>Of course, our benchmark is not perfect and leaves room for improvement due to multiple reasons. Firstly, the measurements also include the round-trip time between LDAP server and privacyIDEA instance, which significantly depends on the network setup. Secondly, we have only enrolled SPASS tokens and no real OTP tokens. Thirdly, we have not performed any concurrent requests and cannot, for example, say anything about the maximum number of authentication requests per second. Finally, two authentication requests by the same user are several minutes apart. If the same user sends two authentication requests during the timespan configured by the <em>cache timeout</em> option of the LDAP resolver (which defaults to 2 minutes), privacyIDEA queries an in-memory cache, which may be even faster than the query to the local database performed by the user cache.</p>
<p>However, we believe that our benchmark shows that privacyIDEA 2.19 improves the performance of authentication requests quite significantly even without the user cache. Additionally, enabling the user cache may bring significant performance improvements in case a large number of users are expected to send authentication requests over a large timespan. Finally, we noticed that the LDAP connection in our test setup is quite fast (a LDAP search takes just unter 30 milliseconds), so the user cache may provide an even better speedup in case of slower LDAP servers or connections. You are welcome to try it out for yourself! If you have any further questions, pleask ask them on our <a href="https://community.privacyidea.org/">community site</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>privacyIDEA and the abolition of cash money</title>
		<link>https://www.privacyidea.org/privacyidea-abolition-cash-money/</link>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Wed, 05 Apr 2017 21:24:54 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[bank]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=1179</guid>

					<description><![CDATA[What does privacyIDEA have to do with the abolition of cash money? Usually we do no political blogging here, but this is a great case to give you a deeper understand of the idea behind privacyIDEA. Cash Money In Germany certain disoriented politicians suggest the abolition of cash money. Arguing that cash money is used [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.privacyidea.org/wp-content/uploads/2017/04/euro-1863441_640.jpg"><img loading="lazy" decoding="async" class="size-medium wp-image-1185 alignleft" src="https://www.privacyidea.org/wp-content/uploads/2017/04/euro-1863441_640-300x222.jpg" alt="" width="300" height="222" srcset="https://www.privacyidea.org/wp-content/uploads/2017/04/euro-1863441_640-300x222.jpg 300w, https://www.privacyidea.org/wp-content/uploads/2017/04/euro-1863441_640.jpg 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>What does privacyIDEA have to do with the abolition of cash money? Usually we do no political blogging here, but this is a great case to give you a deeper understand of the idea behind privacyIDEA.</p>
<h2>Cash Money</h2>
<p>In Germany certain disoriented politicians suggest the abolition of cash money. Arguing that cash money is used by criminals and terrorists. Abolishing cash money and only allowing electronical transactions, these transactions can be tracked and controlled. Crimes will be avoided and terrorism ended. Luckily there are other <a href="http://www.spiegel.de/wirtschaft/soziales/brigitte-zypries-gegen-wolfgang-schaeubles-obergrenzen-vorschlag-in-bargeld-debatte-a-1141955.html" target="_blank">prominent statements</a> to <a href="https://www.heise.de/newsticker/meldung/Gutachter-Bargeld-sichert-die-informationelle-Selbstbestimmung-3676128.html" target="_blank">contradict this wired ideas</a>.</p>
<p>But what does the abolition of cash money have to do with privacyIDEA?</p>
<h2>Central Book Keeping</h2>
<p>In the European Union we usually like to travel to other EU countries and pay with the same Euro, not having to change money or bother about any exchange rate. Usually this is very convenient.</p>
<p>Electronic transactions could be great and convenient, too. We do not need to care about bringing enough money, everything would be smooth and easy and one central book keeping instance would take care to transfer 100 credits from person A to person B. After the transfer is approved and completed, person B could hand person A the goods of interest.</p>
<p>But such a central book keeping instance would not only know, what money was spent by whom on what, but it could also restrict the amount of money person A is allowed to spent or person B is allowed to receive. Even worse this controlling instance could also disallow person A to spent money for certain goods or to buy from certain sellers at all. Thus people could be banned from buying cigarettes, certain medicine or unpleasant newspapers.</p>
<p>Again, what does this have to do with privacyIDEA?</p>
<h2>No Central Book Keeping</h2>
<p>We do not like to be controlled and we do not want you to be controlled either. Many two factor authentication services are running two factor authentication as &#8212; guess what &#8212; a service.  This in fact is such a central book keeping. Such a central service knows, who of your users authenticated where and when. And they could easily allow or disallow access based on other decisions than the right OTP value sent by your smartphone. You do not know and do not control the algorithms used.</p>
<p>This is why we offer privacyIDEA to run on premise. Under your control. With no central book keeping and with no fear, that conditions or laws might change tomorrow.</p>
<p>And this is why it makes me shiver, when I read about any idea for centrally controlled anything or the abolition of cash money.</p>
<p>Fight for your informational self-determination and stand up to keep your cash money!</p>
<p>&#8230;and use privacyIDEA!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The truth behind privacyIDEA and ownCloud two factor authentication</title>
		<link>https://www.privacyidea.org/truth-behind-privacyidea-owncloud-two-factor-authentication/</link>
					<comments>https://www.privacyidea.org/truth-behind-privacyidea-owncloud-two-factor-authentication/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Sun, 24 Jul 2016 21:48:59 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Whatsup]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[ownCloud]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=993</guid>

					<description><![CDATA[I understand there is a bit of confusion about two factor authentication with privacyIDEA for ownCloud. Comments in ownCloud blogpost and in the privacyIDEA Youtube channel indicate this. To do openess and transparancy the honour I would like to elaborate on what has happened. The empire strikes back The subdirectory authmodules in the privacyIDEA github repository contained [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I understand there is a bit of confusion about two factor authentication with privacyIDEA for ownCloud. <a href="https://owncloud.org/blog/new-in-owncloud-9-1/#comment-78325" target="_blank">Comments in ownCloud blogpost</a> and in the <a href="https://www.youtube.com/watch?v=Lgum_cTY_Y8" target="_blank">privacyIDEA Youtube channel</a> indicate this.</p>
<p>To do openess and transparancy the honour I would like to elaborate on <strong>what has happened</strong>.</p>
<h3>The empire strikes back</h3>
<p>The subdirectory <a href="https://github.com/privacyidea/privacyidea/tree/master/authmodules" target="_blank"><em>authmodules</em> in the privacyIDEA github repository</a> contained a module for ownCloud. In ownCloud speak an &#8220;app&#8221;. This tried to support ownCloud 8. It failed with ownCloud 9. This was due to the fact, that ownCloud &lt;= 9 had no concept or API for attaching two factor authentication system. It even had no concept of passing authentication to another module. It only allowed to change the <em>complete</em> user module. I.e. authentication, user existance and authorization was not separated like you would be used to e.g. from PAM. And this is why providing a module for two factor authentication for ownCloud 8 and 9 was the biggest pain in the ass I ever experienced.</p>
<p>Now several simple users came around and popped up on the mailing list or at github. I call them simple, because they were not able to look behind the scenes, analyze problems, look at a line of code or even add a line of code. I experienced several occasions when such users complained about, that the old privacyIDEA &#8220;app&#8221; for 8 and 9 was not working as <em>they</em> expected.</p>
<p>Finally I got really sick of those users with this simple cosuming attitude. I got sick of claiming having a two factor solution for an application, which did not provide a decently designed and documented authentication interface. And this is why I happily deleted the old ownCloud plugin from the privacyIDEA github repository.</p>
<h3>A new hope</h3>
<p>Finally, ownCloud 9.1 was said to come with a new authentication API &#8211; <strong>which unfortunately again was designed without asking someone, who knows some things about two factors &#8212; like me! Big mistake!</strong> Nevertheless &#8211; I decided to give it a second chance. Thanks to the help of <a href="https://twitter.com/ChristophWurst" target="_blank">Christoph Wurst</a> and <a href="https://twitter.com/Deep_Diver_1975" target="_blank">Thomas Müller</a> I was able to implement a <a href="https://www.youtube.com/watch?v=Lgum_cTY_Y8" target="_blank">new privacyIDEA ownCloud</a> app for ownCloud 9.1.</p>
<p>As I am still very disappointed in any kind of &#8220;community&#8221; regarding the old ownCloud app (for privacyIDEA itself it is a complete other picture!!!), the privacyIDEA ownCloud App for 9.1 is not publically available, yet. I don&#8217;t want to hear any comsumers complaining about things they don&#8217;t understand or are not willing to dive into! But this is no problem. ownCloud users with a handful of accounts can happily use the TOTP app which probably willl run very well for them.</p>
<p>These words might sound hard to some of you. But you may appreciate that they are the real truth of mine!</p>
<h3>The return of the Jedi</h3>
<p>Power users or companies with many users have different requirements. They will also do two factor authentication a the firewall, at portals, terminal servers or the VPN. In this case it makes no sense to manage TOTP tokens within ownCloud. Because these tokens can not be used for the VPN. Other tokens would again have to be managed for the VPN somewhere else&#8230; And for the terminal servers&#8230;</p>
<p>Enterprise environments require to manage the tokens of the users at one central place. All users, for all applications. In this case privacyIDEA and the privacyIDEA ownCloud app make absolute sense. Customers should <a href="https://netknights.it/en/unternehmen/kontakt/" target="_blank">contact NetKnights GmbH</a>, because this is the place <a href="https://netknights.it/en/produkte/privacyidea-owncloud-app/" target="_blank">where they will receive the privacyIDEA ownCloud App</a>!</p>
<p>Kind regards</p>
<p>Cornelius</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/truth-behind-privacyidea-owncloud-two-factor-authentication/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bug in passOnNoUser policy allows arbitrary authentication</title>
		<link>https://www.privacyidea.org/bug-passonnouser-policy-allows-arbitrary-authentication/</link>
					<comments>https://www.privacyidea.org/bug-passonnouser-policy-allows-arbitrary-authentication/#comments</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Wed, 04 May 2016 12:48:42 +0000</pubDate>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[passOnNoUser]]></category>
		<category><![CDATA[Policy]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=923</guid>

					<description><![CDATA[A bug in the passOnNoUser policy allows authentication with an arbitrary password. Affected version: up to privacyIDEA 2.11.2 Propability: Medium Security Severity: High Technical Background The passOnNoUser policy is supposed to check if an authenticating user exists. If the user exists, normal authentication is performed. If the user does not exist in the user store authentication is immediately successful. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A bug in the passOnNoUser policy allows authentication with an arbitrary password.</p>
<ul>
<li>Affected version: up to privacyIDEA 2.11.2</li>
<li>Propability: Medium</li>
<li><strong>Security Severity: High</strong></li>
</ul>
<h2>Technical Background</h2>
<p>The passOnNoUser policy is supposed to check if an authenticating user exists. If the user exists, normal authentication is performed. If the user does not exist in the user store authentication is immediately successful. This is useful in special scenarios, where the Application has several levels of authentication and privacyIDEA is just the second level. Users that do not exist in privacyIDEA will only authenticate with the first level and users, that have an account in privacyIDEA will need to authenticate with the second level.</p>
<p>The Bug: If the policy passOnNoUser is set, it is not checked, if the user exists. <strong>I.e. even users that do exist are successfully authenticated, without checking their OTP value or password.</strong></p>
<h2>Advisory</h2>
<p>You need to disable a policy containing the passOnNoUser action or remove the passOnNoUser action from you policies immediately.</p>
<h2>Fix</h2>
<p>You should update to version 2.11.3 which is released today.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/bug-passonnouser-policy-allows-arbitrary-authentication/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>RedHat 7.2 SSSD offline functionalities</title>
		<link>https://www.privacyidea.org/redhat-7-2-sssd-offline-functionalities/</link>
					<comments>https://www.privacyidea.org/redhat-7-2-sssd-offline-functionalities/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Wed, 24 Feb 2016 15:34:26 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[PAM]]></category>
		<category><![CDATA[sssd]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=897</guid>

					<description><![CDATA[Dmitri Pal blogged about the offline functionalities of the SSSD with RHEL 7.2. These SSSD offline functionalities is intended to increase performance to not contact the IdM server all the time. I wonder if the timeout can not only set to some seconds but also to go offline with the client. The same blog post also [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://rhelblog.redhat.com/2016/02/23/new-identity-management-features-in-rhel-7-2/" target="_blank">Dmitri Pal blogged about the offline functionalities of the SSSD with RHEL 7.2</a>.</p>
<p>These SSSD offline functionalities is intended to increase performance to not contact the IdM server all the time. I wonder if the timeout can not only set to some seconds but also to go offline with the client.</p>
<p>The same blog post also talks about OTP multistep prompting. But when going offline you do not want to decrease security by just requiring the first factor. This is why <a href="https://privacyidea.readthedocs.org/en/latest/machines/index.html#application-offline" target="_blank">privacyIDEA provides the hashed OTP values to the client to be able to authenitcate with two factors while offline</a>.</p>
<p>Admitted, going online again is a bit tricky, since the concept of resynchronizating the offline client with the authentication backend also contains possible attack vectors.</p>
<p>I am curious how SSSD will face this problem.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/redhat-7-2-sssd-offline-functionalities/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Data Privacy Day with privacyIDEA</title>
		<link>https://www.privacyidea.org/data-privacy-day-with-privacyidea/</link>
					<comments>https://www.privacyidea.org/data-privacy-day-with-privacyidea/#respond</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Thu, 28 Jan 2016 10:49:48 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Authentication]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=863</guid>

					<description><![CDATA[Today is the Data Privacy Day. In Europe it is called Data Protection Day. Data Privacy Day This day is foremost ment to sensitize companies and users to take care when handling with private data. Especially in social media. But you can not devide your social life from your work life. Many attacks may start [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Today is the <a href="https://en.wikipedia.org/wiki/Data_Privacy_Day" target="_blank">Data Privacy Day</a>. In Europe it is called Data Protection Day.</p>
<h2>Data Privacy Day</h2>
<p>This day is foremost ment to sensitize companies and users to take care when handling with private data. Especially in social media. But you can not devide your social life from your work life. Many attacks may start in social networks and end up in the heart of the company where the original victim is employed.</p>
<p>This is why you should protect information, that can be used to initiate attacks. This can be personal information, that only you and your personal contacts know, addresses (<a href="http://www.blackmoreops.com/2016/01/27/social-engineering-amazon-customer-service/" target="_blank">Read this very interesting story</a>), dates, usernames and of course any hints to passwords.</p>
<h2>Data Privacy with privacyIDEA</h2>
<p><a href="https://www.privacyidea.org/wp-content/uploads/2016/01/door-1089560_640.jpg" rel="attachment wp-att-867"><img loading="lazy" decoding="async" class="wp-image-867 alignleft" src="https://www.privacyidea.org/wp-content/uploads/2016/01/door-1089560_640-300x200.jpg" alt="door-1089560_640" width="206" height="137" srcset="https://www.privacyidea.org/wp-content/uploads/2016/01/door-1089560_640-300x200.jpg 300w, https://www.privacyidea.org/wp-content/uploads/2016/01/door-1089560_640.jpg 640w" sizes="auto, (max-width: 206px) 100vw, 206px" /></a>The job of privacyIDEA is to keep the data in your organization safe. privacyIDEA does this by introducing a second factor for authentication. Credentials for any account gained from social engineering in social networks or phishing will not get the attacker in. If you are using a hardware second factor like a <a href="https://netknights.it/produkte/yubikey/" target="_blank">Yubikey</a> or a <a href="https://netknights.it/produkte/smartdisplayer/" target="_blank">Smartdisplayer OTP card</a> the classic cracker is in a mess, since he would have to get out and perform a real life action like stealing the hardware possession.</p>
<p>When using privacyIDEA it respects your privacy. privacyIDEA is 100% Open Source and 100% Back door free. This way you can know every second what the system is doing and all your data and all your authentication decisions belong to you!</p>
<h2>Also do Encryption</h2>
<p>An additional measure to protect your data is encryption. To get help with <a href="https://netknights.it/en" target="_blank">authentication and encryption you may ask the company NetKnights</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/data-privacy-day-with-privacyidea/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>
<p><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>
<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>
<p><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>
<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>SSH Keys and OTP: Really strong two factor authentication</title>
		<link>https://www.privacyidea.org/ssh-keys-and-otp-really-strong-two-factor-authentication/</link>
					<comments>https://www.privacyidea.org/ssh-keys-and-otp-really-strong-two-factor-authentication/#comments</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Thu, 29 Oct 2015 11:00:29 +0000</pubDate>
				<category><![CDATA[documentation]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Yubikey]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=771</guid>

					<description><![CDATA[This blog will show how you can use privacyIDEA to secure your SSH login. In this case users need to provide an SSH Key and in addition an OTP token and an optional password. Thus you have the following authentication factors: SSH Key (soft possession factor &#8211; copyable!) optional passphrase on the SSH Key, which is [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This blog will show how you can use privacyIDEA to secure your SSH login. In this case users need to provide an SSH Key and in addition an OTP token and an optional password.</p>
<p>Thus you have the following authentication factors:</p>
<ol>
<li>SSH Key (soft <strong>possession</strong> factor &#8211; copyable!)</li>
<li>optional passphrase on the SSH Key, which is not controlled by the server! (<strong>knowledge</strong>)</li>
<li>OTP token <a href="http://privacyidea.readthedocs.org/en/latest/configuration/token_config.html#supported-tokentypes" target="_blank">supported by privacyIDEA</a> like Google Authenticator or preferable a Yubikey (hard <strong>possession</strong> factor &#8211; not copyable)</li>
<li>an optional OTP PIN controlled by privacyIDEA (<strong>knowledge</strong>)</li>
</ol>
<h2>Connect SSH to privacyIDEA</h2>
<p>Connecting SSH to privacyIDEA is described in this <a href="https://www.youtube.com/watch?v=tNoHzrajtcg&amp;t=1m52s" target="_blank">video</a>. It uses the privacyIDEA PAM Module in the <a href="http://privacyidea.readthedocs.org/en/latest/application_plugins/index.html#pluggable-authentication-module">online documentation</a>.</p>
<p>In the SSH configuration you need to set</p>
<pre>UsePAM yes</pre>
<p>This way SSH will authenticate the user against the PAM stack using <em>/etc/pam.d/sshd</em>.</p>
<p>This howto will assume you are using a Ubuntu system. Other systems like CentOS use slightly different PAM configuration, but the idea is the same.</p>
<h3>Install privacyIDEA PAM</h3>
<p>To use PAM with privacyIDEA you need the privacyIDEA <a href="https://github.com/privacyidea/pam_python">PAM authentication module</a>. On a Ubuntu 14.04 you can install it like</p>
<pre>add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install privacyidea-pam</pre>
<p>In other cases you can get it from github with the above mentioned link.</p>
<h3>Configure SSH PAM</h3>
<p>Now lets take a look at the PAM config for SSH. The file <em>/etc/pam.d/sshd</em> contains a line</p>
<pre>@include common-auth</pre>
<p>Change this line to</p>
<pre>@include common-auth-pi</pre>
<p>By creating such a new file it is easier for us to add two factors to every PAM enabled service.</p>
<p>Copy the file <em>/etc/pam.d/common-auth</em> to <em>/etc/pam.d/common-auth-pi</em>. The file<em> /etc/pam.d/common-auth-pi</em> will look like this:</p>
<pre>auth     [success=1 default=ignore] pam_python.so /lib/security/privacyidea_pam.py url=https://yourserver \ 
                                                  nosslverify debug
auth    requisite   pam_deny.so
auth    required    pam_permit.so
auth    optional    pam_cap.so</pre>
<p>In the file <em>common-auth-pi</em> we replace <em>pam_unix.so</em> with <em>privacyidea_pam</em>. You need to specify the URL of your privacyIDEA server. If everything is working out fine, you can remove the <em>debug</em> parameter. If you have a trusted certificate you can remove <em>nosslverify</em>.</p>
<blockquote><p>Please assure, that you are logged in to your system or that you have other mean to login like ssh keys. Modifying the PAM stack for SSH can result in not being able to login with a password via SSH anymore.</p></blockquote>
<p>Now that you have configured</p>
<ul>
<li>/etc/ssh/sshd_config</li>
<li>/etc/pam.d/common-auth-pi</li>
<li>/etc/pam.d/sshd</li>
</ul>
<p>you can restart the SSH server for the changes to take effect.</p>
<p>When you now try to login via SSH, the username and password will be sent to privacyIDEA for verification. You can not use you OTP PIN and Yubikey to login.</p>
<blockquote><p>If you experience any problems, take a look at <em>/var/log/auth.log</em>.</p></blockquote>
<p>If everything is working fine, you are now authenticating with:</p>
<ol>
<li>OTP token <a href="http://privacyidea.readthedocs.org/en/latest/configuration/token_config.html#supported-tokentypes" target="_blank">supported by privacyIDEA</a> like Google Authenticator or preferable a Yubikey (hard <strong>possession</strong> factor &#8211; not copyable)</li>
<li>an optional OTP PIN controlled by privacyIDEA (<strong>knowledge</strong>)</li>
</ol>
<h2>Add SSH Keys</h2>
<p>You may realize, that if you have an SSH key in the authorized_keys you will not be asked for the OTP. At the moment you either login with SSH key or with OTP. Let&#8217;s change this now, that you can use SSH key <strong>and</strong> OTP.</p>
<p>The current OpenSSH comes with the options <strong>AuthenticationMethods</strong>. This is used to concatenate required authentication methods. See the man page of sshd_config for more details.</p>
<p>In the file<em> /etc/ssh/sshd_config</em> we add this line:</p>
<pre>AuthenticationMethods publickey,password</pre>
<p>This means that SSH will require that you pass a trusted SSH key and after this ask you for a password (PIN+OTP), which will be verified by privacyIDEA.</p>
<p>The login will look like this:</p>
<pre>root@gawain ~ # ssh root@privacyidea
Authenticated with partial success.
root@privacyidea's password: 
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-66-generic x86_64)</pre>
<p>The &#8220;Authenticated with partial success&#8221; means, that the authentication with the SSH key succeeded. Now you need to specify the One Time Password to be sent to privacyIDEA.</p>
<blockquote><p>Note: If you want to login as user &#8220;root&#8221;, be sure to add &#8220;PermitRootLogin yes&#8221; to your<em> sshd_config</em>.</p></blockquote>
<p>Finally we managed to authenticate the users with:</p>
<ol>
<li>SSH Key (soft <strong>possession</strong> factor &#8211; copyable!)</li>
<li>optional passphrase on the SSH Key, which is not controlled by the server! (<strong>knowledge</strong>)</li>
<li>OTP token <a href="http://privacyidea.readthedocs.org/en/latest/configuration/token_config.html#supported-tokentypes" target="_blank">supported by privacyIDEA</a> like Google Authenticator or preferable a Yubikey (hard <strong>possession</strong> factor &#8211; not copyable)</li>
<li>an optional OTP PIN controlled by privacyIDEA (<strong>knowledge</strong>)</li>
</ol>
<h2>Manage SSH Keys with privacyIDEA</h2>
<p>Wait! Are you still there? One thing might still strike you:</p>
<p>While all OTP tokens are centrally managed by privacyIDEA, users still put their public SSH keys on all the machines and you are wondering where the SSH keys of all the users are floating around.</p>
<p>There is no easy way for you to revoke a compromized SSH key.</p>
<p>But you can also solve this with privacyIDEA. Users can upload their public SSH keys to privacyIDEA with the tokentype <a href="http://privacyidea.readthedocs.org/en/latest/configuration/tokens/sshkey.html" target="_blank">SSH Key</a>.</p>
<p>This way you can also manage all SSH keys in privacyIDEA. In sshd_config you need to use the AuthorizedKeysCommand to retrieve the SSH keys from privayyIDEA just in time. Deleting an SSH key in privacyIDEA will deny access for this user immediatly.</p>
<p>You can read <a href="https://www.howtoforge.com/tutorial/ssh-key-management-with-privacyidea/" target="_blank">SSH Key Management with privacyIDEA</a> to set this up.</p>
<p>This way you have three strong factors to secure the access to SSH.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/ssh-keys-and-otp-really-strong-two-factor-authentication/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Two-Factor-Authentication with OTP on CentOS 7</title>
		<link>https://www.privacyidea.org/two-factor-authentication-with-otp-on-centos-7/</link>
					<comments>https://www.privacyidea.org/two-factor-authentication-with-otp-on-centos-7/#comments</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Mon, 12 Oct 2015 19:14:47 +0000</pubDate>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[RADIUS]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[FreeRADIUS]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=757</guid>

					<description><![CDATA[Attention: This HowTo is outdated! There is an improved HowTo included in the privacyIDEA documentation This Howto describes the setup of privacyIDEA on CentOS 7 including a FreeRADIUS 3 configuration. This Howto is provided by Patrick Hirschbühl. Thanks a lot for this contribution! privacyIDEA + MySQL on CentOS 7 Minimal Installation of CentOS 7 yum [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="background-color: #ffffe0; border-radius: 10px; padding: 20px; margin: 20px; border: 1px solid black;"><strong>Attention:</strong> This HowTo is outdated! There is an improved HowTo included in the <a href="https://privacyidea.readthedocs.io/en/latest/installation/centos.html">privacyIDEA documentation</a></p>
<p>This Howto describes the setup of privacyIDEA on CentOS 7 including a FreeRADIUS 3 configuration.</p>
<p>This Howto is provided by Patrick Hirschbühl. Thanks a lot for this contribution!</p>
<h1>privacyIDEA + MySQL on CentOS 7</h1>
<h2>Minimal Installation of CentOS 7</h2>
<pre>yum -y install net-tools
yum -y install wget NetworkManager-tui</pre>
<p>Example for /etc/hosts</p>
<pre> 192.168.1.2 privacyideaserver privacyideaserver.domain</pre>
<p>/etc/selinux/config</p>
<pre>SELINUX=disabled</pre>
<p>Install necessary software:</p>
<pre>rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
yum -y install yum-priorities</pre>
<p>Edit /etc/yum.repos.d/epel.repo</p>
<pre>[epel]
 name=Extra Packages for Enterprise Linux 7 - $basearch
 #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&amp;arch=$basearch
 failovermethod=priority
 priority=10
 enabled=1
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7</pre>
<p>Install further software:</p>
<pre>yum update
yum -y groupinstall 'Development Tools'
yum -y install open-vm-tools net-tools; reboot
yum install ntp -y</pre>
<p>Optional Tools:</p>
<pre>yum install links nmap rkhunter</pre>
<h2>privacyIDEA</h2>
<pre>yum install mariadb-server httpd mod_wsgi mod_ssl python-devel gcc mariadb-devel libjpeg-devel \
freeradius freeradius-utils freeradius-perl openldap-devel perl-libwww-perl perl-Config-IniFiles \
perl-Try-Tiny perl-Data-Dump perl-JSON perl-LWP-Protocol-http* python-virtualenv libffi-devel \
freetype-devel libpng-devel postgresql-devel

 systemctl enable radiusd.service
 systemctl start radiusd
 systemctl enable mariadb.service
 systemctl start mariadb
 systemctl enable httpd.service
 systemctl start httpd</pre>
<h3>Create Database</h3>
<pre>mysql_secure_installation
echo 'create database privacyidea;' | mysql -u root -p
echo 'grant all privileges on privacyidea.* to "privacyidea"@"localhost" identified by "unknown";' \
   | mysql -u root -p</pre>
<h3>Install privacyIDEA</h3>
<pre>virtualenv /opt/privacyIDEA
cd /opt/privacyIDEA
source bin/activate</pre>
<p>Install further requirements for building packages with pip:</p>
<pre>yum -y install libxslt-devel libxml2-devel</pre>
<p>Download requirements.txt from <a href="https://github.com/privacyidea/privacyidea/blob/master/requirements.txt">https://github.com/privacyidea/privacyidea/blob/master/requirements.txt</a></p>
<pre>pip install -r requirements.txt
pip install MySQL-python
pip install privacyidea
mkdir /etc/privacyidea
mkdir /var/log/privacyidea</pre>
<p>Edit /etc/privacyidea/pi.cfg:</p>
<pre># The realm, where users are allowed to login as administrators
SUPERUSER_REALM = ['super', 'administrators']
# Your database
SQLALCHEMY_DATABASE_URI = 'mysql://privacyidea:unknown@localhost/privacyidea'
# This is used to encrypt the auth_token
SECRET_KEY = 't0p s3cr3t'
# This is used to encrypt the admin passwords
PI_PEPPER = "Never know..."
# This is used to encrypt the token data and token passwords
PI_ENCFILE = '/etc/privacyidea/enckey'
# This is used to sign the audit log
PI_AUDIT_KEY_PRIVATE = '/etc/privacyidea/private.pem'
PI_AUDIT_KEY_PUBLIC = '/etc/privacyidea/public.pem'
PI_LOGFILE = '/var/log/privacyidea/privacyidea.log'
# PI_LOGLEVEL = 20
# PI_INIT_CHECK_HOOK = 'your.module.function'</pre>
<p>Run further commands:</p>
<pre>pi-manage.py create_enckey
pi-manage.py create_audit_keys
pi-manage.py createdb
pi-manage.py admin add admin -e admin@localhost</pre>
<h3>Add firewall rules</h3>
<pre>firewall-cmd --permanent --zone=public --add-service=http --add-service=https --add-service=radius
firewall-cmd --reload
firewall-cmd --zone=public --list-all</pre>
<h3>Test</h3>
<pre>systemctl stop httpd
pi-manage.py runserver -h Hostname-or-IP -p 80
systemctl start httpd</pre>
<h3>Create user</h3>
<pre>useradd -r -m privacyidea -d /opt/privacyIDEA</pre>
<h3>Fix rights privacyIDEA</h3>
<pre>chown -R privacyidea:root /etc/privacyidea
/opt/privacyIDEA/bin/privacyidea-fix-access-rights -f /etc/privacyidea/pi.cfg -u privacyidea
chmod 400 /etc/privacyidea/enckey
chmod 400 /etc/privacyidea/*.pem
chown -R privacyidea:root /var/log/privacyidea</pre>
<h3>privacyIDEA Apache config</h3>
<pre>mkdir -p /var/run/wsgi
cp /opt/privacyIDEA/etc/privacyidea/privacyideaapp.wsgi /etc/privacyidea
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.disabled</pre>
<p>Edit /etc/httpd/conf/httpd.conf:</p>
<p>ServerName Hostname-or-IP:80</p>
<p>Edit /etc/httpd/conf.d/privacyidea.conf:</p>
<pre>TraceEnable off
ServerSignature Off
ServerTokens Prod
WSGIPythonHome /opt/privacyIDEA
WSGISocketPrefix /var/run/wsgi

&lt;VirtualHost _default_:80&gt;
  ServerAdmin webmaster@localhost
  ServerName localhost
  RewriteEngine On
  RewriteCond %{HTTPS} !=On
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
&lt;/VirtualHost&gt;

&lt;VirtualHost _default_:443&gt;
  ServerAdmin webmaster@localhost
  ServerName localhost
  DocumentRoot /var/www
  &lt;Directory /&gt;
    Require all granted
    Options FollowSymLinks
    AllowOverride None
  &lt;/Directory&gt;
  # The daemon is running as user 'privacyidea'
  # This user should have access to the encKey database encryption file
  WSGIDaemonProcess privacyidea python-path=/etc/privacyidea:/opt/privacyIDEA/lib/python2.7/site-packages processes=1 threads=15 display-name=%{GROUP} user=privacyidea
  WSGIProcessGroup privacyidea
  WSGIPassAuthorization On
  WSGIScriptAlias / /etc/privacyidea/privacyideaapp.wsgi
  SSLEngine On
  SSLProtocol All -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCipherSuite EECDH+AES256:DHE+AES256:EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5
  SSLCertificateFile /etc/pki/tls/certs/privacyideaserver.pem
  SSLCertificateKeyFile /etc/pki/tls/private/privacyideaserver.key
&lt;/VirtualHost&gt;</pre>
<p>Enable Apache config:</p>
<pre>/opt/privacyIDEA/bin/privacyidea-create-certificate -f /etc/httpd/conf.d/privacyidea.conf
apachectl configtest
systemctl restart httpd</pre>
<h2>Config Freeradius 3 for privacyIDEA</h2>
<pre>cp /opt/privacyIDEA/lib64/privacyidea/authmodules/FreeRADIUS/privacyidea_radius.pm \
  /etc/raddb/mods-config/perl/</pre>
<p>Edit /etc/raddb/mods-available/perl:</p>
<pre>perl {
 filename = ${modconfdir}/${.:instance}/privacyidea_radius.pm
}</pre>
<pre>ln -s /etc/raddb/mods-available/perl /etc/raddb/mods-enabled/</pre>
<p>Edit /etc/raddb/clients.conf:</p>
<pre>client Radius-Client {
  ipaddr = 192.168.1.1/32
  secret = shared_secret_key
  require_message_authenticator = no
  nas_type = other
}</pre>
<p>Edit /etc/raddb/sites-available/privacyidea:</p>
<pre>server default {
 listen {
   type = auth
   ipaddr = *
   port = 0
   limit {
      max_connections = 16
      lifetime = 0
      idle_timeout = 30
   }
 }
 listen {
   ipaddr = *
   port = 0
   type = acct
   limit {
   }
 }

authorize {
   preprocess
   digest
   suffix
   ntdomain
   files
   expiration
   logintime
   pap
   update control {
      Auth-Type := Perl
   }
}

authenticate {
   Auth-Type Perl {
     perl
   }
   digest
}

preacct {
   suffix
   files
}

accounting {
   detail
}

session {
}
post-auth {
}
pre-proxy {
}
post-proxy {
}
}</pre>
<pre>ln -s /etc/raddb/sites-available/privacyidea /etc/raddb/sites-enabled/
rm /etc/raddb/sites-enabled/default
rm /etc/raddb/sites-enabled/inner-tunnel</pre>
<p>Edit /etc/privacyidea/rlm_perl.ini:</p>
<pre>[Default]
URL = https://127.0.0.1/validate/check
#REALM = someRealm
#RESCONF = someResolver
SSL_CHECK = false
#DEBUG = true</pre>
<p>Edit /etc/raddb/mods-config/perl/privacyidea_radius.pm</p>
<pre>our $CONFIG_FILE = “/etc/privacyidea/rlm_perl.ini”;
cp /opt/privacyIDEA/etc/privacyidea/dictionary /etc/raddb/</pre>
<h3>Test Freeradius</h3>
<pre>systemctl stop radiusd
radiusd -X
echo "User-Name=user, User-Password=password" | radclient -sx localhost auth testing123
systemctl restart radiusd</pre>
<h3>Fix rights privacyIDEA and Freeradius</h3>
<pre>chown -R privacyidea:root /etc/privacyidea
chgrp -R radiusd /etc/raddb
cd /etc/raddb
ll -Z
restorecon /etc/raddb/*</pre>
<p>reboot <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Change Password Admin User</h3>
<pre>cd /opt/privacyIDEA
source bin/activate
pi-manage.py admin change -p admin</pre>
<h3>Update privacyIDEA</h3>
<pre>cd /opt/privacyIDEA
source bin/activate
pip install --upgrade cffi
pip install --upgrade bcrypt
pip install --upgrade privacyidea</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/two-factor-authentication-with-otp-on-centos-7/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
