25 Apr 2007

Windows Mobile Security Policy

Windows Mobile 5.0 implémente une gestion de la sécurité basée sur l'authentification, c'est une notion essentielle à prendre en compte pour développer des applications pour Windows Mobile. Pour mieux appréhender la sécurité sous Windows Mobile, voici la description d'un lab qui permet l'utilisation de l'application Device Security Manager. Un outil bien pratique que j'ai découvert il y a peu de temps et qui permet de gérer les paramètres de sécurité de son PPC depuis son PC. Le device Security Manager peut être téléchargé à l'adresse suivante : http://www.microsoft.com/downloads/details.aspx?FamilyID=7e92628c-d587-47e0-908b-09fee6ea517a&DisplayLang=en



Une fois l'application installée, vous pouvez configurer les paramètres suivants :

  • Déterminer le niveau de sécurité actuel du device
  • Changer le niveau de configuration du device
  • Gérer la certification des applications
  • Signer une application native ou managée avec les certificats
  • Approvisionner le device en certificats (OEM, opérateur ou MS Mobile2Market)

Description des niveaux de privilège sous Windows Mobile
Une application peut disposer de deux types d’accès au système :
- mode normal
- mode Privilège : autorise l’appel à des APIs qui accèdent à la registry ou au file system.

Les différents niveaux de sécurité

  • security off policy
    Les applications non signées peuvent être lancées sans avertissement à l’utilisateur. Ce modèle est pratique pour le développement, les tests et les démos. Mais, une telle configuration peut être dangereuse car n’importe quelle application peut être installée sans en avertir l’utilisateur et avoir accès sans aucune limitation au device.
  • one-tier prompt security policy
    Les applications signées peuvent être lancées sans avertissement à l’utilisateur en mode privilège. En revanche, pour les application non signées, un message d‘alerte est affichée à l‘utilisateur. Une fois que l’application a été lancée une première fois et le message validé, le message ne sera plus affiché lors des prochains lancements. C’est a priori la configuration par défaut des devices Pocket PC.
  • two-tier prompt security policy
    Les applications signées peuvent être lancées sans avertissement à l’utilisateur. En revanche, pour les application non signées, un message d‘alerte est affichée à l‘utilisateur. La différence avec le modèle précédent est qu’il existe deux types de certificats :
    - certificat donnant accès au système en mode normal
    - certificat donnant accès au système en mode privilège
  • Mobile2Market locked policy.
    Uniquement les applications signées par un certificat Mobile2Market issu de MS, de l'OEM, d'un opérateur peuvent être exécutées. A l’instar du modèle précédent, deux types de certificat sont disponibles:
    - certificat donnant accès au système en mode normal
    - certificat donnant accès au système en mode privilège


Parallèlement, il est possible de modifier ces informations en base de registre manuellement, soit via le Remote Registry Editor, soit via une application si celle-ci dispose de droits suffisants.
Les valeurs de registre ayant attrait à la sécurité sous WM sont dans la clé suivante: HKLM\Security\Policies\Policie

Toutes ces valeurs sont décrites dans ce lien:
http://msdn2.microsoft.com/en-us/library/aa455966.aspx

Voici un exemple :

  • Unsigned Prompt Policy
    Cette valeur indique si l’utilisateur est averti ou non lorsqu’il exécute un .ex, une dll ou un cab non signé.
    - 0 l’utilisateur est averti
    - 1 l’utilisateur n’est pas averti
    Supprimer les messages d’avertissement : attribuer la valeur 1 à la clé 0000101A (4122 en décimal dans le tableau de description sur le lien MSDN ci-dessus).
  • RAPI policy
    Cette valeur indique l’accès RAPI autorisé depuis le PC.
    - 0 accès restreint
    - 1 accès illimité au device depuis le PC via RAPI

    Autoriser l’accès non retreint de RAPI : attribuer la valeur 1 à la clé 00001001 (4097 en décimal dans le tableau de description sur le lien MSDN ci-dessus).


Les détails du LAB sur la « security policy » : http://msdn2.microsoft.com/en-us/library/bb278107.aspx
Avec ces quelques informations, vous devriez pouvoir mettre un premier pas dans la gestion de la « security policy » sous Windows Mobile. Les liens MSDN en anglais détaillent toutes les informations, donc n’hésitez pas à les consulter.
Vos commentaires ou questions les bienvenus…


----------------------------------------------------


Windows Mobile 5.0-based devices implement an application security model that is based on authentication. As an application developer who wants to target Windows Mobile-based devices, you need to understand the Windows Mobile application security model and the different policy options a mobile operator has when bringing a Windows Mobile-based device to market. This lab helps you to understand the Device Security Manager.
For details and HOL description:
http://msdn2.microsoft.com/en-us/library/bb278107.aspx

In parallel, it is possible to manually modify this information in registry, either via Remote Registry Editor, or via an application if this one has sufficient rights. The values of register having attracted with safety under WM are in the following key: HKLM\Security\Policies\Policie

All these values are described in: http://msdn2.microsoft.com/en-us/library/aa455966.aspx

Here it is some examples:

  • Unsigned Prompt Policy : user will not be prompted.

Set value 1 to the key 0000101A (4122 into decimal in the MSDN table).

  • RAPI policy : access unlimited to the device since the PC via RAPI

Set value 1 to key 00001001 (4097 into decimal in the MSDN table).

Lab details: http://msdn2.microsoft.com/en-us/library/bb278107.aspx

Feel free to post comments and questions...

24 Apr 2007

What is Silverlight ?


Microsoft Launching Flash Competitor: Silverlight.
Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of media experiences and rich interactive applications (RIAs) for the Web. Silverlight is the new name of "WPF/E."

Windows Mobile devices will normally be supported, but still nothing to announce right now.

See more details:http://www.microsoft.com/silverlight/

21 Apr 2007

Windows Mobile Briefing à Paris le 26 Avril 2007

Microsoft organise un évènement pour les développeurs mobilité le 26 Avril à La Défense :
Les équipes Microsoft Mobile et Embedded Devices de Microsoft Corp et de Microsoft France ont le plaisir de vous inviter à un jour de découverte du développement pour la plateforme Windows Mobile !
Vous découvrirez comment Windows Mobile 5.0 et Visual Studio 2005 peuvent fonctionner ensemble pour développer vos applications et services. La nouvelle version Windows Mobile 6 vous sera par ailleurs aussi dévoilée à cette occasion.
L’ensemble de la session sera en anglais.
Plus d'informations ici : http://www.microsoft.com/france/windowsmobile/briefing.mspx

Automated Testing for Windows Mobile 6.0

If you search an automated testing solution, check out mVerify MTS for Windows Mobile 6.0. There is a Promotion Offer. Chek out this link:

http://www.mverify.com/crossbow/

19 Apr 2007

News in Windows Mobile 6.0

Windows Mobile 6.0 offers new functionalities, here they are the most interesting...

Simplify deployment:
  • The .NET Compact Framework 2.0 Service Pack 1 (SP1) and Microsoft SQL Server™ 2005 Compact Edition are in the ROM of all Windows Mobile 6 devices.

The new emulation states of the device emulator including:

  • AC power and battery power, and changes in battery charge level.
  • A new Global Position System (GPS) test utility, FakeGPS .
  • A new Cellular Emulator to test your application's behaviour in a variety of cellular scenarios such as incoming phone calls, incoming SMS messages, dropped phone calls, and dropped data connectivity.
  • A Phone Profile Emulation supports three new phone profiles: headset, speakerphone, and car kit.

The new APIs:

  • A newly added lightweight version of the Tablet PC's inking API, Windows Ink Services for Pen (WISP), allows you to incorporate ink-based features into your applications.
  • The new sound API gives you the ability to play a variety of sound formats : MID, WMA, MP3, and WAV.
  • The ScreenLib class is designed for reusability and build a application that dynamically adapts to device form factor differences.

The new system naming conventions:

  • Windows Mobile 5.0 for Smartphone <-> Windows Mobile 6 Standard
  • Windows Mobile 5.0 for Pocket PC Phone Edition <-> Windows Mobile 6 Professional
  • Windows Mobile 5.0 for Pocket PC <-> Windows Mobile 6 Classic

The tools:

  • Hopper
    This utility provides a way to perform this kind of stress testing.
  • Local Server Framework
    The Local Server Framework is tools and classes designed to simplify testing mobile applications that rely on communication with remote servers (set up a virtual network...).
New Device State Information:
  • WM5.0 SNAPI + information for (VoIP) phone calls including the phone number, operator name, and more.
  • device locking information.
  • possibilities to change keypad lock state, device lock state, and SIM lock state.

For more details check out this link:

http://msdn2.microsoft.com/en-us/library/bb278115.aspx

10 Apr 2007

State and Notification Broker API

If you need to monitor the various aspects of the state of a Windows Mobile or Smartphone, you can use SNAPI...
Here they are the more interesting on WM5.0 SDK, you need to:


  • Get ActiveSync's current state : ActiveSyncStatus
    - Error -None -Synchronizing
  • Get if a camera is attached and enabled : CameraPresent
  • Get the number of network connections that are currently connected. Very interesting if you want to know if you are connected to a WIFI network : ConnectionsNetworkCount
  • Get the orientation of the display : DisplayRotation
  • Get the number of unread SMS messages : MessagingSmsUnread
  • Get the mobile device phone number : OwnerPhoneNumber
  • Get the phone GPRS coverage : PhoneGprsCoverage
  • Get if the SIM is valid or not : PhoneInvalidSim
  • Get if there is new missed call : PhoneMissedCall
  • Get the number of missed phone calls : PhoneMissedCalls
  • Get if the SIM is installed in the mobile device : PhoneNoSim
  • Get the name of the mobile operator : PhoneOperatorName
  • Get if the phone is currently in roaming mode : PhoneRoaming
  • Get the phone signal strength : PhoneSignalStrength
  • Get the battery power level : PowerBatteryStrength
  • Get information relating to Calendar, Contacts, and Tasks, a lot of properties and events associated are available...




To use State and Notification Broker API, you will need to add two assemblies to your project : Microsoft.WindowsMobile and Microsoft.WindowsMobile.Status.



An other interesting thing with SNAPI is you can add an event handler when a property changed and obtain the new value. Here an example of code below: (this example of code can be transposed for the other properties).

SystemState batteryStrength = new SystemState(SystemProperty.PowerBatteryStrength);
private void Form1_Load(object sender, EventArgs e)
{
batteryStrength.Changed += new ChangeEventHandler(batteryStrength_Changed);
}
void batteryStrength_Changed(object sender, ChangeEventArgs args)
{
BatteryLevel batteryLevel = (BatteryLevel)args.NewValue;
}

4 Apr 2007

First Post

Hi,

My name is Fabien Decret and I'm a developer in ADENEO France. I'm working on projects using the Microsoft Compact Framework on Windows Mobile and Windows CE platforms...

In this blog, I will post tips, tutorials and examples for newbie or experts relating to .NET CF (Compact Framework) in particular for Windows Mobile API.

Feel free to post comments

Best regards

Fabien