<?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>SimonGaniere.ch &#187; CDSA</title>
	<atom:link href="http://www.simonganiere.ch/tag/cdsa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simonganiere.ch</link>
	<description></description>
	<lastBuildDate>Sun, 04 Jul 2010 20:25:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>L&#8217;architecture sécurité de Mac OS X &#8211; Introduction</title>
		<link>http://www.simonganiere.ch/2009/12/30/architecture-securit-mac-osx-introduction/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=architecture-securit-mac-osx-introduction</link>
		<comments>http://www.simonganiere.ch/2009/12/30/architecture-securit-mac-osx-introduction/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 13:01:47 +0000</pubDate>
		<dc:creator>Simon Ganiere</dc:creator>
				<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[CDSA]]></category>
		<category><![CDATA[CSSM]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.simonganiere.ch/wp/?p=58</guid>
		<description><![CDATA[Les services sécurité de Mac OS X sont basés sur deux standards OpenSource: BSD (Berkeley Software Distribution) CDSA (Common Data Security Architecture) Historiquement, BSD était considéré comme une branche d&#8217;UNIX (BSD UNIX puisqu&#8217;il partageait une base commune au niveau du code et du design avec le système d&#8217;exploitation original AT&#38;T UNIX). Dès les années 1980, [...]]]></description>
			<content:encoded><![CDATA[<p>Les services sécurité de Mac OS X sont basés sur deux standards OpenSource:</p>
<ul>
<li>BSD (Berkeley Software Distribution)</li>
<li>CDSA (Common Data Security Architecture)</li>
</ul>
<p>Historiquement, BSD était considéré comme une branche d&#8217;UNIX (BSD UNIX puisqu&#8217;il partageait une base commune au niveau du code et du design avec le système d&#8217;exploitation original AT&amp;T UNIX). Dès les années 1980, le BSD a été adopté par plusieurs vendeurs sous des formes propriétaires (DEC ULTRIX ou Sun Microsystems SunOS). Comme vous le savez Mac OS X est issu du noyau Mach et dérivé du BSD implémenté par Nextstep.<br />
CDSA est composé de plusieurs services sécurités (organisés par couche) et de frameworks relatifs à la cryptographie. Pour être plus précis il s&#8217;agit d&#8217;un middleware qui offre la possibilité aux développeurs d&#8217;implémenter des éléments de sécurité au sein des applications. A noter que dans le cadre de Mac OS X, il est impossible d&#8217;appeler l&#8217;API CDSA directement. Apple considérant que l&#8217;API CDSA était trop compliqué et ne suivait pas les conventions de programmation, a préféré placer ces propres API sécurités qui se chargeront d&#8217;appeler ceux de CDSA.</p>
<p>L&#8217;architecture sécurité de Mac OS X est  donc basée sur plusieurs couches (layered architecture). BSD au plus bas niveau, CDSA au milieu (middleware), les API sécurités de Mac OS X puis les applications.</p>
<p style="text-align: center;"><a title="Architecture Sécurité" href="http://www.simonganiere.ch/wp-content/uploads/2008/08/layered_arch_simple.jpg" rel="lightbox[58]"><img class="size-medium wp-image-63  aligncenter" title="Architecture Sécurité" src="http://www.simonganiere.ch/wp-content/uploads/2008/08/layered_arch_simple-300x194.jpg" alt="Architecture Sécurité" /></a></p>
<p><strong>BSD et Mach</strong><br />
Le noyau de Mac OS X (le coeur du système) est basé sur BSD et sur Mac. Entre autres choses, BSD fournit un système de fichier basic, service de réseau et implémente un schéma d&#8217;identification pour les utilisateurs et les groupes. Ce dernier point consiste en la mise en application des restrictions d&#8217;accès aux fichiers et aux ressources système, le tout en se basant sur l&#8217;utilisateur et le groupe. C&#8217;est la fameuse nouvelle gestion des accès basés sur UNIX. Il est possible de restreindre l&#8217;accès selon trois points: l&#8217;utilisateur, le groupe et les autres (sous entendu tout le monde). Chacun de ces trois points définit un accès en lecture, écriture et exécution.<br />
De son côté Mach apporte la gestion de la mémoire, des threads, l&#8217;abstraction matérielle et la communication interprocessus.  Mach permet donc de contrôler, quelle tâche envoie un message à quel port Mach (ou autres ressources Mach).</p>
<p>Ces deux éléments sont primordiaux à la sécurité de Mac OS X, mais ils sont également intimement liés. Si on arrive à casser la sécurité de l&#8217;un ou obtient accès à l&#8217;autre automatiquement. Attention tout de fois, BSD et Mach ne suffisent pas à implémenter un système sécurisé. Si BSD peut restreindre l&#8217;accès à un fichier ou une ressources mais par contre BSD ne permet pas de vérifier les mots de passe (et donc de s&#8217;assurer que la personne qui demande l&#8217;accès est bien celle qu&#8217;elle prétend). De manière similaire, Mach donne les droits à une tâche pour en contrôler une autre mais ne contrôle pas les données auxquelles la tâche accède.</p>
<p><strong>CDSA</strong><br />
CDSA est une architecture sécurité Open Source adoptée comme un standard par <a title="Open Group" href="http://www.opengroup.org/security/cdsa.htm" target="_blank">l&#8217;Open Group</a>. Apple c&#8217;est permis de développer sa propre implémentation de CDSA, le tout étant disponible dans le cadre de <a title="Darwin - Security Project" href="http://developer.apple.com/darwin/projects/security/" target="_blank">Darwin</a>. Au coeur de CDSA, se trouve le CSSM (Common Security Services Manager) qui définit plusieurs modules ainsi qu&#8217;un API appeler CSSM API. Cet API permet d&#8217;accéder aux services de cryptographie, certificats, stockage sécurisé de données, ainsi que d&#8217;autre service de sécurités appelé &#8220;Apple CDSA Plug-ins&#8221;.</p>
<p>Mac OS X implémente une grande majorité des fonctionnalités de CSSM, ainsi qu&#8217;un ensemble de services sécurité qui permettent aux développeurs d&#8217;avoir une interface de programmation standardisée. A noter également que dans le but d&#8217;augmenter la sécurité des opérations sensibles, Mac OS X utilise un démon (daemon) appelé &#8220;Security Server&#8221;. Ce démon lance un processus distinct appelé, Security Agent, qui représente l&#8217;interface utilisateur du &#8220;Security Server.&#8221;</p>
<p style="text-align: center;"><a href="http://www.simonganiere.ch/wp-content/uploads/2009/12/layered_arch_complete.jpg" rel="lightbox[58]"><img class="size-medium wp-image-208" title="Mac OS X Implementation of CDSA" src="http://www.simonganiere.ch/wp-content/uploads/2009/12/layered_arch_complete-300x264.jpg" alt="" width="300" height="264" /></a></p>
<p>Le schéma ci-dessus illustre l&#8217;implémentation de CDSA dans Mac OS X. A noter que CDSA définit quatre couches dans son architecture et que cette illustration ne montre que le trois premières: les plug-ins CDSA, CSSM ainsi que les API sécurités de Mac OS X.</p>
<p><strong>Conclusion</strong></p>
<p>Ce bref article introduit l&#8217;architecture de base de la sécurité de Mac OS X. Comme vous pouvez le constater cette architecture est basée sur des bases solides. Plusieurs articles suivront pour introduire plus en détail certains concepts cités dans cet article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonganiere.ch/2009/12/30/architecture-securit-mac-osx-introduction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
